Originally Posted by ConnorMcLeod
(Post 1731888)
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.
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") } } }
|