Again, the method is not efficient, but if you still want to use i you can use my old plugin.
Add all cvars in a file, pay attention to not put 2 cvars twice.
Quote:
|
Originally Posted by amxmodx/configs/hacks_prefixes.ini
"kzh_bhop"
"zhy_bhop"
"kyk_bhop"
"kxk_bhop"
"xhz_bhop"
"yhz_bhop"
"v0n_bhop"
"xyz_bhop"
"kid_bhop"
"fpt_bhop"
"fuh_bhop"
"omg_bhop"
"voo_bhop"
"xHack_bhop"
"xKz_bhop"
"xkz_bhop"
"001_bhop"
"002_bhop"
"Trk_bhop"
"m3c_bhop"
"m4c_bhop"
"zhyk_bhop"
"xcfgbhop"
"zhe_bhop"
"^^_^^<bhop"
"n1k<bhop"
"nkz_bhop"
"nik_bhop"
"str_bhop"
"vip_bhop"
"xhack_bhop"
|
etc...
PHP Code:
#include <amxmodx>
#define VERSION "0.0.1"
#define PLUGIN "KZH Checker"
enum _:playerTasks ( += 33 )
{
CVAR_CHECKER,
}
new g_szFirstCvar[32]
new Trie:g_tNextCvar
new g_pCvarBanTime
public plugin_init()
{
register_plugin(PLUGIN, VERSION, "ConnorMcLeod")
g_pCvarBanTime = register_cvar("kz_hack_bantime", "0")
new szCvarsFile[128], szOldCvar[32], szNewCvar[32]
get_localinfo("amxx_configsdir", szCvarsFile, charsmax(szCvarsFile))
add(szCvarsFile, charsmax(szCvarsFile), "/hacks_prefixes.ini")
new fp = fopen(szCvarsFile, "rt")
if( fp && file_size(szCvarsFile, 1) >= 2 )
{
g_tNextCvar = TrieCreate()
while( !feof(fp) )
{
fgets(fp, szNewCvar, charsmax(szNewCvar))
trim( szNewCvar )
remove_quotes( szNewCvar )
if( szOldCvar[0] && TrieKeyExists(g_tNextCvar, szOldCvar) )
{
TrieSetString(g_tNextCvar, szOldCvar, szNewCvar)
}
else
{
copy(g_szFirstCvar, charsmax(g_szFirstCvar), szNewCvar)
}
copy(szOldCvar, charsmax(szOldCvar), szNewCvar)
}
TrieSetString(g_tNextCvar, szOldCvar, g_szFirstCvar)
}
if( fp )
{
fclose( fp )
}
}
public client_putinserver( id )
{
remove_task(id + CVAR_CHECKER)
if( !is_user_bot(id) && !is_user_hltv(id) )
{
if( g_tNextCvar )
{
set_task(0.1, "Task_CheckCheatCvar", id + CVAR_CHECKER)
}
}
}
public Task_CheckCheatCvar(id)
{
id %= 33
if( is_user_connected(id) )
{
query_client_cvar(id, g_szFirstCvar, "ClientCvarResult")
}
}
public ClientCvarResult(id, const szCvar[], const szValue[])
{
if( is_user_connected(id) )
{
if( szValue[0] != 'B' )
{
new szName[32], szAuthid[32], szReason[14]
if( equal(szCvar, "kzh", 3) )
{
szReason = "KZHack"
}
else
{
szReason = "KZHack Custom"
}
get_user_name(id, szName, charsmax(szName))
get_user_authid(id, szAuthid, charsmax(szAuthid))
server_cmd("amx_ban ^"%s^" %d ^"%s^"", szAuthid, get_pcvar_num(g_pCvarBanTime), szReason)
}
static szNextCvar[9]
if( TrieGetString(g_tNextCvar, szCvar, szNextCvar, charsmax(szNextCvar)) )
{
query_client_cvar(id, szNextCvar, "ClientCvarResult")
}
}
}
__________________