Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <amxmisc>
- #include <fakemeta>
- #include <colorchat>
- new WarDuck[33];
- public plugin_init()
- {
- register_plugin("SGS and DD run Hack Detector","1.0","Seroff");
- register_forward(FM_PlayerPreThink, "Player_PreThink");
- }
- public Player_PreThink(id)
- {
- if(is_user_alive(id))
- {
- static Buttons;Buttons = pev(id, pev_button);
- static OldButtons;OldButtons = pev(id, pev_oldbuttons);
- static OldDuckCount[33],OldGroundFrame[33];
- static Float:Speed[3],GroundFrame[33],DuckCount[33];
- if(Buttons & IN_DUCK && !(OldButtons & IN_DUCK)) DuckCount[id]++;
- if(pev(id, pev_flags) & FL_ONGROUND) GroundFrame[id]++;
- else if(GroundFrame[id] && !IsUserSurfing(id))
- {
- pev(id, pev_velocity, Speed); Speed[2] = 0.0;
- if(DuckCount[id] == OldDuckCount[id]
- && GroundFrame[id] == OldGroundFrame[id] && vector_length(Speed) > 250.0)
- {
- if(++WarDuck[id] >= 9)
- {
- static szName[32],szIP[32];
- get_user_name(id, szName, charsmax(szName));
- get_user_ip(id, szIP, charsmax(szIP));
- WarDuck[id] = 0;
- user_kill(id,1);
- server_cmd("amx_ban 0 %s ^"Gstrafe Hack Detected^"",szIP);
- ColorChat(0,NORMAL,"[^3Анти-Чит^1]Игрок ^4%s ^1Использует ^1[^4Gstrafe Hack^1]",szName);
- }
- }
- else WarDuck[id] = 0;
- OldDuckCount[id] = DuckCount[id];
- OldGroundFrame[id] = GroundFrame[id];
- DuckCount[id] = 0; GroundFrame[id] = 0;
- }
- }
- return FMRES_IGNORED;
- }
- IsUserSurfing(id)
- {
- if(is_user_alive(id))
- {
- new Flags;Flags = pev(id, pev_flags);
- if(Flags & FL_ONGROUND) return 0;
- new Float:origin[3], Float:dest[3];
- pev(id, pev_origin, origin)
- dest[0] = origin[0];
- dest[1] = origin[1];
- dest[2] = origin[2] - 1.0;
- new ptr = create_tr2();
- engfunc(EngFunc_TraceHull, origin, dest, 0, Flags & FL_DUCKING ? HULL_HEAD : HULL_HUMAN, id, ptr);
- new Float:flFraction;
- get_tr2(ptr, TR_flFraction, flFraction);
- if(flFraction >= 1.0)
- {
- free_tr2(ptr);
- return 0;
- }
- get_tr2(ptr, TR_vecPlaneNormal, dest);
- free_tr2(ptr);
- return dest[2] <= 0.7;
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment