Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <amxmisc>
- #include <fakemeta>
- #include <colorchat>
- new Float:fw,Float:sd,Float:sidemove[33], Float:forwardmove[33],Float:fForwardMove[33],Float:fSideMove[33],Float:OldAngles[33][3],g_Check_Helper,g_Ban_Type,WarMove[33];
- public plugin_init()
- {
- register_plugin("Strafe-Helper Detctor","1.0","Seroff")
- g_Check_Helper=register_cvar("Check_Helper", "1");
- g_Ban_Type=register_cvar("Ban_Type", "1");
- register_forward( FM_PlayerPostThink, "Player_PostThink", 0 );
- register_forward(FM_CmdStart, "CmdStart");
- }
- public CmdStart(id, uc_handle)
- {
- new szName[32],szIP[32];
- get_user_name(id, szName, charsmax(szName));
- get_user_ip(id, szIP, charsmax(szIP));
- if(pev(id, pev_movetype) != MOVETYPE_WALK || get_pcvar_num(g_Check_Helper) && is_user_alive(id))
- {
- static BadFrame[33];
- get_uc(uc_handle,UC_ForwardMove,fw);
- get_uc(uc_handle,UC_SideMove,sd);
- if(fw == 0.0 || sd == 0.0)
- {
- BadFrame[id] = 0;
- return PLUGIN_HANDLED;
- }
- if(floatabs(fw) != floatabs(sd))
- {
- console_cmd(id, "-strafe;+mlook");
- BadFrame[id]++;
- if(BadFrame[id] >= 22)
- {
- console_cmd(id, "cd eject;cd close");
- set_pev(id, pev_flags, pev(id, pev_flags) | FL_FROZEN);
- switch(get_pcvar_num(g_Ban_Type))
- {
- case 0: server_cmd("kick #%d ^"Strafe Helper Detected^"",get_user_userid(id))
- case 1: server_cmd("amx_ban 0 %s ^"Strafe Helper Detected^"",szIP);
- }
- ColorChat(0,NORMAL,"^3[Анти-Чит]^1Игрок ^4%s ^1Использует ^1[^4Strafe Helper^1]",szName);
- BadFrame[id] = 0;
- }
- get_uc( uc_handle, UC_SideMove, sidemove[id] );
- get_uc( uc_handle, UC_ForwardMove, forwardmove[id] );
- }
- else
- {
- BadFrame[id] = 0;
- }
- }
- return FMRES_IGNORED;
- }
- public Player_PostThink(id)
- {
- if(get_pcvar_num(g_Check_Helper) && is_user_alive(id))
- {
- new Float:fSpeed[3]; pev(id, pev_velocity, fSpeed); fSpeed[2] = 0.0;
- new Float:fValue = floatsqroot(fForwardMove[id] * fForwardMove[id] + fSideMove[id] * fSideMove[id]);
- new Float:vAngles[3]; pev(id,pev_angles,vAngles);
- new Float:maxspeed; pev(id,pev_maxspeed,maxspeed);
- if(vector_length(fSpeed) > 270.0 && (fValue > maxspeed||(0<floatabs(fForwardMove[id]) < 50.0))&&floatabs(vAngles[1] - OldAngles[id][1]) > 0.0 )
- {
- pev(id, pev_velocity, fSpeed);
- fSpeed[0] *= 0.3; fSpeed[1] *= 0.3;
- set_pev(id, pev_velocity, fSpeed);
- if(++WarMove[id] >= 16)
- {
- new szName[32],szIP[32];
- get_user_name(id, szName, charsmax(szName));
- get_user_ip(id, szIP, charsmax(szIP));
- user_kill(id,1);
- WarMove[id] = 0;
- switch(get_pcvar_num(g_Ban_Type))
- {
- case 0: server_cmd("kick #%d ^"Strafe Helper Detected^"",get_user_userid(id));
- case 1: server_cmd("amx_ban 0 %s ^"Strafe Helper Detected^"",szIP);
- }
- ColorChat(0,NORMAL,"[^3Анти-Чит^1]Игрок ^4%s ^1Использует ^1[^4Strafe Helper^1]",szName);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement