[SNIPPET] Block Keys
If anybody has improvents please tell me.
PHP Code:
#include <sourcemod> #include <sdktools>
enum keys { KEY_IN_ALT1 = 0, KEY_IN_ALT2, KEY_IN_ATTACK, KEY_IN_ATTACK2, KEY_IN_BACK, KEY_IN_BULLRUSH, KEY_IN_CANCEL, KEY_IN_DUCK, KEY_IN_FORWARD, KEY_IN_GRENADE1, KEY_IN_GRENADE2, KEY_IN_JUMP, KEY_IN_LEFT, KEY_IN_MOVELEFT, KEY_IN_MOVERIGHT, KEY_IN_RELOAD, KEY_IN_RIGHT, KEY_IN_RUN, KEY_IN_SCORE, KEY_IN_SPEED, KEY_IN_USE, KEY_IN_WALK, KEY_IN_WEAPON1, KEY_IN_WEAPON2, KEY_IN_ZOOM //24 }
new bool:Blocked_Keys[32];
public Plugin:myinfo = { name = "KeyBlock", author = "ZipcoreQQ", description = "type sm_keyblock KEY to lock keys, unlock by typing sm_removekeyblock KEY", version = "1.0", url = "zipcore#googlmail.com" }
public OnPluginStart() { RegAdminCmd("sm_removekeyblock", Command_Block, ADMFLAG_ROOT); RegAdminCmd("sm_keyblock", Command_RemoveBlock, ADMFLAG_ROOT); RegAdminCmd("sm_keylist", Command_KeyList, ADMFLAG_ROOT); }
public OnMapStart() { for(new i=0;i<=sizeof(Blocked_Keys);i++) { Blocked_Keys[i] = false; } }
public Action:Command_Block(client,args) { new String:blockkey[32]; new bool:changed = false; if (args > 0) { GetCmdArg(1,blockkey,sizeof(blockkey)); if (StrEqual(blockkey, "alt1", false)) { Blocked_Keys[KEY_IN_ALT1] = true; changed = true; } else if (StrEqual(blockkey, "alt2", false)) { Blocked_Keys[KEY_IN_ALT2] = true; changed = true; } else if (StrEqual(blockkey, "attack", false)) { Blocked_Keys[KEY_IN_ATTACK] = true; changed = true; } else if (StrEqual(blockkey, "attack2", false)) { Blocked_Keys[KEY_IN_ATTACK2] = true; changed = true; } else if (StrEqual(blockkey, "back", false)) { Blocked_Keys[KEY_IN_BACK] = true; changed = true; } else if (StrEqual(blockkey, "bullrush", false)) { Blocked_Keys[KEY_IN_BULLRUSH] = true; changed = true; } else if (StrEqual(blockkey, "cancel", false)) { Blocked_Keys[KEY_IN_CANCEL] = true; changed = true; } else if (StrEqual(blockkey, "duck", false)) { Blocked_Keys[KEY_IN_DUCK] = true; changed = true; } else if (StrEqual(blockkey, "forward", false)) { Blocked_Keys[KEY_IN_FORWARD] = true; changed = true; } else if (StrEqual(blockkey, "grenade1", false)) { Blocked_Keys[KEY_IN_GRENADE1] = true; changed = true; } else if (StrEqual(blockkey, "grenade2", false)) { Blocked_Keys[KEY_IN_GRENADE2] = true; changed = true; } else if (StrEqual(blockkey, "jump", false)) { Blocked_Keys[KEY_IN_JUMP] = true; changed = true; } else if (StrEqual(blockkey, "left", false)) { Blocked_Keys[KEY_IN_LEFT] = true; changed = true; } else if (StrEqual(blockkey, "moveleft", false)) { Blocked_Keys[KEY_IN_MOVELEFT] = true; changed = true; } else if (StrEqual(blockkey, "moveright", false)) { Blocked_Keys[KEY_IN_MOVERIGHT] = true; changed = true; } else if (StrEqual(blockkey, "reload", false)) { Blocked_Keys[KEY_IN_RELOAD] = true; changed = true; } else if (StrEqual(blockkey, "right", false)) { Blocked_Keys[KEY_IN_RIGHT] = true; changed = true; } else if (StrEqual(blockkey, "run", false)) { Blocked_Keys[KEY_IN_RUN] = true; changed = true; } else if (StrEqual(blockkey, "score", false)) { Blocked_Keys[KEY_IN_SCORE] = true; changed = true; } else if (StrEqual(blockkey, "speed", false)) { Blocked_Keys[KEY_IN_SPEED] = true; changed = true; } else if (StrEqual(blockkey, "use", false)) { Blocked_Keys[KEY_IN_USE] = true; changed = true; } else if (StrEqual(blockkey, "walk", false)) { Blocked_Keys[KEY_IN_WALK] = true; changed = true; } else if (StrEqual(blockkey, "weapon1", false)) { Blocked_Keys[KEY_IN_WEAPON1] = true; changed = true; } else if (StrEqual(blockkey, "weapon2", false)) { Blocked_Keys[KEY_IN_WEAPON2] = true; changed = true; } else if (StrEqual(blockkey, "zoom", false)) { Blocked_Keys[KEY_IN_ZOOM] = true; changed = true; } if(changed) PrintToConsole(client, "KeyBlock: %s", blockkey); } return Plugin_Handled; }
public Action:Command_RemoveBlock(client,args) { new String:blockkey[32]; new bool:changed = false; if (args > 0) { GetCmdArg(1,blockkey,sizeof(blockkey)); if (StrEqual(blockkey, "alt1", false)) { Blocked_Keys[KEY_IN_ALT1] = false; changed = true; } else if (StrEqual(blockkey, "alt2", false)) { Blocked_Keys[KEY_IN_ALT2] = false; changed = true; } else if (StrEqual(blockkey, "attack", false)) { Blocked_Keys[KEY_IN_ATTACK] = false; changed = true; } else if (StrEqual(blockkey, "attack2", false)) { Blocked_Keys[KEY_IN_ATTACK2] = false; changed = true; } else if (StrEqual(blockkey, "back", false)) { Blocked_Keys[KEY_IN_BACK] = false; changed = true; } else if (StrEqual(blockkey, "bullrush", false)) { Blocked_Keys[KEY_IN_BULLRUSH] = false; changed = true; } else if (StrEqual(blockkey, "cancel", false)) { Blocked_Keys[KEY_IN_CANCEL] = false; changed = true; } else if (StrEqual(blockkey, "duck", false)) { Blocked_Keys[KEY_IN_DUCK] = false; changed = true; } else if (StrEqual(blockkey, "forward", false)) { Blocked_Keys[KEY_IN_FORWARD] = false; changed = true; } else if (StrEqual(blockkey, "grenade1", false)) { Blocked_Keys[KEY_IN_GRENADE1] = false; changed = true; } else if (StrEqual(blockkey, "grenade2", false)) { Blocked_Keys[KEY_IN_GRENADE2] = false; changed = true; } else if (StrEqual(blockkey, "jump", false)) { Blocked_Keys[KEY_IN_JUMP] = false; changed = true; } else if (StrEqual(blockkey, "left", false)) { Blocked_Keys[KEY_IN_LEFT] = false; changed = true; } else if (StrEqual(blockkey, "moveleft", false)) { Blocked_Keys[KEY_IN_MOVELEFT] = false; changed = true; } else if (StrEqual(blockkey, "moveright", false)) { Blocked_Keys[KEY_IN_MOVERIGHT] = false; changed = true; } else if (StrEqual(blockkey, "reload", false)) { Blocked_Keys[KEY_IN_RELOAD] = false; changed = true; } else if (StrEqual(blockkey, "right", false)) { Blocked_Keys[KEY_IN_RIGHT] = false; changed = true; } else if (StrEqual(blockkey, "run", false)) { Blocked_Keys[KEY_IN_RUN] = false; changed = true; } else if (StrEqual(blockkey, "score", false)) { Blocked_Keys[KEY_IN_SCORE] = false; changed = true; } else if (StrEqual(blockkey, "speed", false)) { Blocked_Keys[KEY_IN_SPEED] = false; changed = true; } else if (StrEqual(blockkey, "use", false)) { Blocked_Keys[KEY_IN_USE] = false; changed = true; } else if (StrEqual(blockkey, "walk", false)) { Blocked_Keys[KEY_IN_WALK] = false; changed = true; } else if (StrEqual(blockkey, "weapon1", false)) { Blocked_Keys[KEY_IN_WEAPON1] = false; changed = true; } else if (StrEqual(blockkey, "weapon2", false)) { Blocked_Keys[KEY_IN_WEAPON2] = false; changed = true; } else if (StrEqual(blockkey, "zoom", false)) { Blocked_Keys[KEY_IN_ZOOM] = false; changed = true; } if(changed) PrintToConsole(client, "RemoveKeyBlock: %s", blockkey); } return Plugin_Handled; }
public Action:Command_KeyList(client,args) { PrintToConsole(client, "alt1, alt2, attack, attack2, back, bullrush, cancel, duck, forward, grenade1, grenade2, jump, left, moveleft, moveright, reload, right, run, score, speed, use, walk, weapon1, weapon2, zoom"); return Plugin_Handled; }
public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon) { new iInitialButtons = buttons; if(buttons & IN_ALT1 && Blocked_Keys[KEY_IN_ALT1]) { buttons &= ~IN_ALT1; } if(buttons & IN_ALT2 && Blocked_Keys[KEY_IN_ALT2]) { buttons &= ~IN_ALT2; } if(buttons & IN_ATTACK && Blocked_Keys[KEY_IN_ATTACK]) { buttons &= ~IN_ATTACK; } if(buttons & IN_ATTACK2 && Blocked_Keys[KEY_IN_ATTACK2]) { buttons &= ~IN_ATTACK2; } if(buttons & IN_BACK && Blocked_Keys[KEY_IN_BACK]) { buttons &= ~IN_BACK; } if(buttons & IN_BULLRUSH && Blocked_Keys[KEY_IN_BULLRUSH]) { buttons &= ~IN_BULLRUSH; } if(buttons & IN_CANCEL && Blocked_Keys[KEY_IN_CANCEL]) { buttons &= ~IN_CANCEL; } if(buttons & IN_DUCK && Blocked_Keys[KEY_IN_DUCK]) { buttons &= ~IN_DUCK; } if(buttons & IN_FORWARD && Blocked_Keys[KEY_IN_FORWARD]) { buttons &= ~IN_FORWARD; } if(buttons & IN_GRENADE1 && Blocked_Keys[KEY_IN_GRENADE1]) { buttons &= ~IN_GRENADE1; } if(buttons & IN_GRENADE2 && Blocked_Keys[KEY_IN_GRENADE2]) { buttons &= ~IN_GRENADE2; } if(buttons & IN_JUMP && Blocked_Keys[KEY_IN_JUMP]) { buttons &= ~IN_JUMP; } if(buttons & IN_LEFT && Blocked_Keys[KEY_IN_LEFT]) { buttons &= ~IN_LEFT; } if(buttons & IN_MOVELEFT && Blocked_Keys[KEY_IN_MOVELEFT]) { buttons &= ~IN_MOVELEFT; } if(buttons & IN_MOVERIGHT && Blocked_Keys[KEY_IN_MOVERIGHT]) { buttons &= ~IN_MOVERIGHT; } if(buttons & IN_RELOAD && Blocked_Keys[KEY_IN_RELOAD]) { buttons &= ~IN_RELOAD; } if(buttons & IN_RIGHT && Blocked_Keys[KEY_IN_RIGHT]) { buttons &= ~IN_RIGHT; } if(buttons & IN_RUN && Blocked_Keys[KEY_IN_RUN]) { buttons &= ~IN_RUN; } if(buttons & IN_SCORE && Blocked_Keys[KEY_IN_SCORE]) { buttons &= ~IN_SCORE; } if(buttons & IN_SPEED && Blocked_Keys[KEY_IN_SPEED]) { buttons &= ~IN_SPEED; } if(buttons & IN_USE && Blocked_Keys[KEY_IN_USE]) { buttons &= ~IN_USE; } if(buttons & IN_WALK && Blocked_Keys[KEY_IN_WALK]) { buttons &= ~IN_WALK; } if(buttons & IN_WEAPON1 && Blocked_Keys[KEY_IN_WEAPON1]) { buttons &= ~IN_WEAPON1; } if(buttons & IN_WEAPON2 && Blocked_Keys[KEY_IN_WEAPON2]) { buttons &= ~IN_WEAPON2; } if(iInitialButtons != buttons) return Plugin_Changed return Plugin_Continue; }
|