Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <amxmisc>
- #include <fakemeta>
- #include <colorchat>
- #define SETTING_SHOWKYES "SHOWKYES"
- new g_iPlayerKeys[33];
- new Float:fShowKeyTime = 0.0;
- new g_showkeys;
- new g_SyncShowKeys;
- new g_iMaxPlayers;
- new bool:g_bShowKeys[33];
- public plugin_init()
- {
- register_plugin("Showkeys", "1.1", "vato loco & medusa");
- register_clcmd("say /showkeys", "ClientShowKeys");
- register_clcmd("say_team /showkeys", "ClientShowKeys");
- register_clcmd("say /sk", "ClientShowKeys");
- register_clcmd("say_team /sk", "ClientShowKeys");
- register_forward(FM_StartFrame, "fw_StartFrame");
- g_showkeys = register_cvar("hns_showkeys","1");
- g_SyncShowKeys = CreateHudSyncObj();
- g_iMaxPlayers = get_maxplayers();
- }
- public ClientShowKeys(id)
- {
- g_bShowKeys[id] = g_bShowKeys[id] ? false : true;
- ColorChat(id, RED, "^1[^4HNS^1] ShowKeys in spectators has been %s", g_bShowKeys[id] ? "^4enable" : "^3disable");
- return PLUGIN_HANDLED;
- }
- public change_setting_value (id, const setting[], const value[])
- {
- if (!strcmp (setting, SETTING_SHOWKYES))
- g_bShowKeys[id] = bool:str_to_num (value);
- }
- public fw_StartFrame()
- {
- if(!get_pcvar_num(g_showkeys))
- return FMRES_IGNORED;
- static Float:fGameTime, Float:fDelay;
- fGameTime = get_gametime();
- fDelay = 0.06;
- if((fShowKeyTime + fDelay) <= fGameTime)
- {
- show_keyinfo();
- fShowKeyTime = fGameTime;
- }
- static id;
- for(id = 1; id <= g_iMaxPlayers; id++)
- {
- if(is_user_alive(id))
- {
- new Button = pev(id, pev_button)
- if(Button & IN_FORWARD)
- g_iPlayerKeys[id] |= IN_FORWARD;
- if(Button & IN_BACK)
- g_iPlayerKeys[id] |= IN_BACK;
- if(Button & IN_MOVELEFT)
- g_iPlayerKeys[id] |= IN_MOVELEFT;
- if(Button & IN_MOVERIGHT)
- g_iPlayerKeys[id] |= IN_MOVERIGHT;
- if(Button & IN_DUCK)
- g_iPlayerKeys[id] |= IN_DUCK;
- if(Button & IN_JUMP )
- g_iPlayerKeys[id] |= IN_JUMP;
- }
- }
- return FMRES_IGNORED;
- }
- stock show_keyinfo()
- {
- static id;
- for(id = 1; id <= g_iMaxPlayers; id++)
- {
- if(!is_user_alive(id) && g_bShowKeys[id])
- {
- new specmode = pev(id, pev_iuser1);
- if(specmode == 2 || specmode == 4)
- {
- new target = pev(id, pev_iuser2);
- if(target != id)
- {
- if(!is_user_alive(target))
- g_iPlayerKeys[target] = 0;
- static plr_key[64];
- set_hudmessage(0, 64, 39, -1.0, 0.54, 0, 0.0, 0.04, 0.08, 0.16, -1);
- formatex(plr_key, 63, "%s^n%s %s^n%s^n%s %s",
- g_iPlayerKeys[target] & IN_FORWARD ? "W" : " ",
- g_iPlayerKeys[target] & IN_MOVELEFT ? "A" : " ",
- g_iPlayerKeys[target] & IN_MOVERIGHT ? "D" : " ",
- g_iPlayerKeys[target] & IN_BACK ? "S" : " ",
- g_iPlayerKeys[target] & IN_JUMP ? "JUMP" : "␠ ",
- g_iPlayerKeys[target] & IN_DUCK ? "DUCK" : " ␠");
- ShowSyncHudMsg(id, g_SyncShowKeys, "%s", plr_key);
- }
- }
- }
- if(id == g_iMaxPlayers)
- {
- arrayset(g_iPlayerKeys, 0, 32);
- }
- }
- return PLUGIN_CONTINUE;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement