首先我们看到OnPlayerRunCmd
OnPlayerRunCmd · sdktools_hooks · SourceMod Scripting API Reference (alliedmods.net)
他的意思是在处理客户端移动按钮时调用,对不对
现在我写一个,在shift触发的时候,我们就在聊天框输出一句话
#include <sourcemod>
int iButton[MAXPLAYERS+1]; //创建变量
public Action OnPlayerRunCmd(int client, int& buttons, int& impulse, float vel[3], float angles[3], int& weapon, int& subtype, int& cmdnum, int& tickcount, int& seed, int mouse[2])
{
if((buttons & IN_SPEED) && !(iButton[client]) & IN_SPEED)
{
PrintToChat(client,"按shift静步键就会打印出这条信息");
//如果你自己按一次静步键,就会在聊天框中打印出这一条信息
}
iButton[client] = buttons;
return Plugin_Continue;
}
除了静步键,还有射击键,就是鼠标的左键调用;
可以在\steamapps\common\Counter-Strike Global Offensive\csgo\cfg\config-default.cfg中找到
我们看到这这种动作的;
静步键,是shift吧,后面的是+speed,也就是动作的调用
我们判断就是,if(buttons & IN_SPEED)
蹲键,ctrl,后面的是+duck,
我们的判断就是 , if(buttons & IN_DUCK)
鼠标左键和右键,射击键位和开镜
+attack , +attack2 , 还有+attack3
我们判断就是
if(buttons & IN_ATTACK)
if(buttons & IN_ATTACK2)
if(buttons & IN_ATTACK3)
等等等等。
一般来说,我们看到的+,和-号,都是动作键位
比如我们的e键位,拆包开门,按照炸弹等等,都是使用吧
我们的判断就是
if(buttons & IN_USE)