#include #include #include #include new SprawdzPcvar, MaxInterpPcvar new const NazwyCvarow[][] = { "cl_updaterate", "cl_cmdrate", "rate" } new const WartosciCvarow[sizeof(NazwyCvarow)] = { 101, 101, 25000 } new Trie:IndexZmiennej new bool:SprawdzCzas[33] public plugin_init() { register_plugin("Sprawdzanie Ratow", "3.5", "naXe/Exolent") RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1) IndexZmiennej = TrieCreate() for(new i = 0; i < sizeof(NazwyCvarow); i++) TrieSetCell(IndexZmiennej, NazwyCvarow[i], i) SprawdzPcvar = register_cvar("sr_sprawdz", "1") MaxInterpPcvar = register_cvar("sr_maxinterp", "0.01") } public plugin_end() TrieDestroy(IndexZmiennej) public client_authorized(id) { if(SprawdzanieRatow_SprawdzGracza(id) == 0) return PLUGIN_HANDLED for(new i = 0; i < sizeof(NazwyCvarow); i++) client_cmd(id, "%s %d", NazwyCvarow[i], WartosciCvarow[i]) SprawdzCzas[id] = false set_task(1.0, "SprawdzRaty", id) return PLUGIN_CONTINUE } public Odrodzenie(id) { SprawdzCzas[id] = true new gID = register_forward(FM_CmdStart, "CmdStart", 1) set_task(0.01, "WylaczForward", gID) } public WylaczForward(gID) unregister_forward(FM_CmdStart, gID, 1) public CmdStart(id, uc_handle, seed) { if(SprawdzCzas[id]) { new Wartosc = get_uc(uc_handle, UC_LerpMsec) if(float(Wartosc) / 1000.0 > get_pcvar_float(MaxInterpPcvar) + 0.005) { client_cmd(id, "ex_interp %0.2f", get_pcvar_float(MaxInterpPcvar)) } SprawdzCzas[id] = false } } public client_disconnect(id) remove_task(id) public SprawdzRaty(id) query_client_cvar(id, NazwyCvarow[0], "SprawdzRaty_Funkcja") public SprawdzRaty_Funkcja(id, const NazwaCvara[], const WartoscCvara[]) { if(SprawdzanieRatow_SprawdzGracza(id) == 0 || SprawdzanieRatow_PoprawnaLiczba(WartoscCvara) == 0) return PLUGIN_HANDLED new cvar; TrieGetCell(IndexZmiennej, NazwaCvara, cvar) new DozwolonaWartosc = WartosciCvarow[cvar] if(str_to_num(NazwaCvara) < DozwolonaWartosc) { for(new i = 0; i < sizeof(NazwyCvarow); i++) client_cmd(id, "%s %d", NazwyCvarow[i], WartosciCvarow[i]) } query_client_cvar(id, NazwyCvarow[(cvar + 1) % sizeof(NazwyCvarow)], "SprawdzRaty_Funkcja") return PLUGIN_CONTINUE } public SprawdzanieRatow_PoprawnaLiczba(const numstr[]) { new Liczba; Liczba = str_to_num(numstr) if(Liczba == 0) if(!numstr[0]) return 0 return 1 } public SprawdzanieRatow_SprawdzGracza(id) { if(get_pcvar_num(SprawdzPcvar) == 0 || is_user_bot(id) || is_user_hltv(id)) return 0 return 1 }