block speed hack bug
hey i find found speedhack detector and edit it
why start a different round this plugin ban me....i'm not a speed hack!
PHP Code:
#include <amxmodx> #include <engine> const MaxSlots = 32 const FL_ONGROUND2 = (FL_CONVEYOR|FL_ONGROUND|FL_PARTIALGROUND|FL_INWATER|FL_FLOAT) new gUserAlive[MaxSlots+1] new gUserWarning[MaxSlots+1] new gOldPosition[3][MaxSlots+1] new gCvarMaxDistance new gCvarMaxWarnings new gCvarPunishType new gCacheCvarMaxDistance new gCacheCvarMaxWarnings new gCacheCvarPunishType new gMaxPlayers public plugin_init() { register_plugin("Speed Hack Detector", "0.1.1a", "fezh") register_event("HLTV", "event_round_start", "a", "1=0", "2=0") register_logevent("logevent_round_start", 2, "1=Round_Start") register_logevent("logevent_round_end", 2, "1=Round_End") register_event("DeathMsg", "event_deathmsg", "a") gCvarMaxDistance = register_cvar("shd_max_distance", "300") gCvarMaxWarnings = register_cvar("shd_max_warnings", "3") gCvarPunishType = register_cvar("shd_punish_type", "3") /* 1slay, 2kick, 3banIP*/ gMaxPlayers = get_maxplayers() set_task(1.0, "event_round_start") } public client_putinserver(id) { gUserWarning[id] = 0 gOldPosition[0][id] = 0 gOldPosition[1][id] = 0 gOldPosition[2][id] = 0 } public event_round_start() { gCacheCvarMaxDistance = get_pcvar_num(gCvarMaxDistance) gCacheCvarMaxWarnings = get_pcvar_num(gCvarMaxWarnings) gCacheCvarPunishType = get_pcvar_num(gCvarPunishType) } public logevent_round_start() { static id for (id = 1; id <= gMaxPlayers; id++) { if (is_user_alive(id)) { gUserAlive[id] = true set_task(0.1, "check_speed_hack", id, _, _, "b"); } } } public logevent_round_end() { static id for (id = 1; id <= gMaxPlayers; id++) remove_task(id) } public event_deathmsg() { gUserAlive[read_data(2)] = false remove_task(read_data(2)) } public check_speed_hack(id) { if (gUserAlive[id]) { static Origin[3] static OldOrigin[3] static Distance get_user_origin(id, Origin, 0); OldOrigin[0] = gOldPosition[0][id] OldOrigin[1] = gOldPosition[1][id] OldOrigin[2] = gOldPosition[2][id] Distance = get_distance(Origin, OldOrigin) if (Distance > gCacheCvarMaxDistance && (entity_get_int(id, EV_INT_flags) & FL_ONGROUND2) && !(entity_get_int(id, EV_INT_button) & IN_JUMP)) { gUserWarning[id]++ if (gUserWarning[id] >= gCacheCvarMaxWarnings) punish_player(id); } gOldPosition[0][id] = Origin[0] gOldPosition[1][id] = Origin[1] gOldPosition[2][id] = Origin[2]; } } punish_player(id) { static name[32] get_user_name(id, name, 31) switch (gCacheCvarPunishType) { case 1: { server_cmd("amx_slay %s 100 ^"Speed Hack^"", name); } case 2: { server_cmd("amx_kick %s ^"Speed Hack^"", name); } case 3: { server_cmd("amx_banip %s 180 ^"Speed Hack^"", name); } } }
|