#include #include #include #define PREFIX "^4[ ^3HideNSeek ^4]^1" new g_count[33]; new g_fps[33]; new g_warn[33]; enum _:Cvars { PUNISH_TYPE, MAX_FPS, MAX_WARNS, IMMUNITY, SLAP_PWR, BAN_TIME }; enum _:PunishTypes { NONE, SLAP, SLAY, KICK, BANID }; new g_iCvar[Cvars]; new const g_punishes[PunishTypes][] = { "", "Slaped", "Slayed", "Kicked", "Banned" }; public plugin_init() { register_plugin("Anti Developer","v1.0","Hyuna"); register_clcmd("say","SayHandler"); register_clcmd("say_team","SayHandler"); g_iCvar[PUNISH_TYPE] = register_cvar("amx_punishtype","3"); g_iCvar[MAX_FPS] = register_cvar("amx_maxfps","120"); g_iCvar[MAX_WARNS] = register_cvar("amx_maxwarns","10"); g_iCvar[IMMUNITY] = register_cvar("amx_immunity","1"); g_iCvar[SLAP_PWR] = register_cvar("amx_slappower","99"); g_iCvar[BAN_TIME] = register_cvar("amx_bantime","60"); set_task(45.0,"Adv_Task",.flags="b"); } // by Empower public client_PostThink(client){ g_count[client]++ static lastendtime[33]; // dclient second passed? if (floatround(get_gametime()) == lastendtime[client]) return; lastendtime[client] = floatround(get_gametime()); g_fps[client] = g_count[client]; g_count[client] = 0; if (g_fps[client] > get_pcvar_num(g_iCvar[MAX_FPS]) && is_user_alive(client)) { if (get_pcvar_num(g_iCvar[PUNISH_TYPE]) != NONE) { if ((get_user_flags(client) & ADMIN_IMMUNITY || get_user_flags(client) & ADMIN_BAN) && get_pcvar_num(g_iCvar[IMMUNITY])) return; g_warn[client]++; if(g_warn[client] <= get_pcvar_num(g_iCvar[MAX_WARNS])) client_print_color(client,client,"%s Please set your FPS to ^4%d^1 (or lower) or you'll be ^3%s^1! This is your ^4%d^1/^4%d^1 warning!",PREFIX,get_pcvar_num(g_iCvar[MAX_FPS]),g_punishes[get_pcvar_num(g_iCvar[PUNISH_TYPE])],g_warn[client],get_pcvar_num(g_iCvar[MAX_WARNS])); else { punishPlayer(client); g_warn[client] = 0; } } } } public Adv_Task(){ client_print_color(0,print_team_red,"%s This server is running ^4Anti-Developer^1 by ^4Hyuna^1 aka ^4HiyoriX^1.",PREFIX); client_print_color(0,print_team_red,"%s ^3Max FPS^1 allowed is: ^4%d^1",PREFIX,get_pcvar_num(g_iCvar[MAX_FPS])); } public client_putinserver(client) g_warn[client] = 0; public SayHandler(client){ new Args[64],Args2[16],Args3[32]; read_argv(1,Args,charsmax(Args)); parse(Args,Args2,charsmax(Args2),Args3,charsmax(Args3)); if(equali(Args2,"/fps")) { if (!(get_user_flags(client) & ADMIN_KICK)) { client_print_color(client,client,"%s ^3Only VIP's Or Admin's Can Check Out Players FPS...",PREFIX); return 1; } new player = cmd_target(client,Args3,CMDTARGET_NO_BOTS); if(!player) { client_print_color(client,client,"%s ^3Type: /fps ",PREFIX); return 1; } static szName[32]; get_user_name(player,szName,charsmax(szName)); client_print_color(client,client,"%s ^3Player Nick^1: ^4%s^1 | ^3FPS^1: ^4%d^1 ",PREFIX,szName,g_fps[player]); return 1; } return 0; } punishPlayer(index){ static szName[32],msg[64],szAuth[35]; get_user_name(index,szName,charsmax(szName)); switch(get_pcvar_num(g_iCvar[PUNISH_TYPE])) { case SLAP: user_slap(index,get_pcvar_num(g_iCvar[SLAP_PWR]),1); case SLAY: user_silentkill(index); case KICK: { formatex(msg,charsmax(msg),"You have been kicked for overFPS (%d/%d)",g_fps[index],get_pcvar_num(g_iCvar[MAX_FPS])); message_begin(MSG_ONE,SVC_DISCONNECT,.player=index); write_string(msg); message_end(); } case BANID: { formatex(msg,charsmax(msg),"You have been banned for %d minutes^nReason: overFPS (%d/%d)",get_pcvar_num(g_iCvar[BAN_TIME]),g_fps[index],get_pcvar_num(g_iCvar[MAX_FPS])); message_begin(MSG_ONE,SVC_DISCONNECT,.player=index); write_string(msg); message_end(); get_user_authid(index,szAuth,charsmax(szAuth)); server_cmd("banid %d %s;wait;writeid",get_pcvar_num(g_iCvar[BAN_TIME]),szAuth); } } client_print_color(0,print_team_red,"%s ^3%s^1 has been ^4%s^1 for overFPS (^3%d^1/^4%d^1)!",PREFIX,szName,g_punishes[get_pcvar_num(g_iCvar[PUNISH_TYPE])],g_fps[index],get_pcvar_num(g_iCvar[MAX_FPS])); }