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


Dodatki SourceMod



Temat jest zamknięty









