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); }
}
}