Otóż urodził mi się w głowie taki pomysł i mam 2 opcje. Chciałbym, aby w miarę możliwości ktoś mi pomógł.
#include <amxmodx> #define MIN_TIME 1.0 new gcvarMinInterp,gcvarMaxInterp,gcvarPunish,gcvarPunishDelay; new gcvarShowTut; #include "colorChat.inl" public plugin_init(){ register_plugin("Pokaz interp","1.2","grankee&r3x") gcvarMinInterp= register_cvar("amx_mininterp","0.01",0,0.01); gcvarMaxInterp=register_cvar("amx_maxinterp","0.01",0,0.01); gcvarPunish=register_cvar("amx_baninterp_punish","0"); gcvarPunishDelay=register_cvar("amx_baninterp_delay","30.0"); gcvarShowTut=register_cvar("amx_show_tutorial","1"); pokaz() } public pokaz(){ new players[32],count get_players(players,count) for(new i=0;i<count;i++){ if(is_user_bot(players[i])) continue; query_client_cvar(players[i],"ex_interp","interp"); } set_task(10.0, "pokaz"); } public interp(id,const cvar[],const value[]){ new Float:val=str_to_float(value); new Float:fMin=get_pcvar_float(gcvarMinInterp); new Float:fMax=get_pcvar_float(gcvarMaxInterp); if(val<fMin||val>fMax){ new name[32] get_user_name(id,name,31); ColorChat(0, GREEN,"[Interp]^x01 Gracz ^x04%s^x01 ma zly interp (%s)",name,value); if(get_pcvar_num(gcvarShowTut)>0){ ColorChat(id, GREEN,"[Interp]^x01 Interp dozwolony na tym serwerze to zakres od ^x04%4.2f^x01 do ^x04%4.2f",fMin+0.0001,fMax+0.0001); ColorChat(id, GREEN,"[Interp]^x01 Aby zmienic swoj interp na dozwolony na tym serwerze wpisz w consoli gry:"); ColorChat(id, GREEN,"[Interp]^x01 ex_interp ^"wartosc^""); } if(get_pcvar_num(gcvarPunish)){ if(!task_exists(id)){ set_task(floatmax(get_pcvar_float(gcvarPunishDelay),MIN_TIME),"kickuj",id); } } } } public kickuj(id){ new Float:fMin=get_pcvar_float(gcvarMinInterp)+0.0001; new Float:fMax=get_pcvar_float(gcvarMaxInterp)+0.0001; console_print(id,"---------------------------------------"); console_print(id,"[Interp] Interp dozwolony na tym serwerze to zakres od %4.2f do %4.2f",fMin,fMax); console_print(id,"[Interp] Aby zmienic swoj interp na dozwolony na tym serwerze wpisz w consoli gry:"); console_print(id,"[Interp] ex_interp ^"wartosc^""); console_print(id,"---------------------------------------"); server_cmd("amx_kick #%d ^"Zmien ex_interp (czytaj w konsoli)^"",get_user_userid(id)); }
Plugin jest fajny, ale prosił bym w pierwszej kolejności o przerobienie go:
- aby wiadomość, która jest wypisywana dla wszystkich (czyli tak o tym, że dany gracz ma zły interp) wyświetlała się tylko dla adminów - nie musi być kolorowa - może być żółta - oby tylko nie była spamem - najlepiej przy początku rundy albo coś
Druga wersja takiego pluginu jest bardziej skomplikowana, ponieważ chciałbym, aby:
- admin z np. ADMIN_KICK miał możliwość sprawdzenia interpu graczowi, poprzez wpisanie chociażby amx_interp
- ewentualnie jeśli umie ktoś coś takiego zrobić, aby podłączyć to do amxmodmenu - to byłoby super.
- no i wchodzi w grę jeszcze opcja zmienienia interpu danemu graczowi - ale naprawdę nie wiem czy to jest możliwe do wykonania...
Ważne jest dla mnie, aby nie było to z wykorzystaniem tej śmiesznej biblioteki "colorChat.inl" - ponieważ albo gdzieś tu jest błąd albo ja nie znalazłem kompilatora, który by to posiadał.
autorem tego pluginu jest moderator z tego forum grankee - do niego idzie PW - może będzie chętny edytować go.
no nic - pozdrawiam i czekam na jakiegoś gotowca od ludzi, którzy siedzą głębiej niż ja w pisaniu pluginów.
pozdro