Konta dla zmiennych IP - brak infa w konsoli
Turtle
19.03.2012
Witam serdecznie,
mam problem z wyświetleniem infa w konsoli po otrzymaniu kicka z serwera,
próbowałem już wiele opcji jednak nadal nic,
dlatego prosiłbym was o drobną pomoc.
Chodzi o to że nie ukazuję się w konsoli napis "* * * Masz zmienne IP !"
Reszta działa jak należy.
Z góry dziękuje za okazaną pomoc
mam problem z wyświetleniem infa w konsoli po otrzymaniu kicka z serwera,
próbowałem już wiele opcji jednak nadal nic,
dlatego prosiłbym was o drobną pomoc.
#include <amxmodx> #include <amxmisc> #include <netdb> #define PLUGIN "Konta IP" #define VERSION "2.0" #define AUTHOR "Sn!ff3r" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_cvar("amx_konto_msg", "Zablokowane IP - sprawdz konsole! ") } public client_authorized(id) { if(get_user_flags(id) & ADMIN_RESERVATION) return PLUGIN_CONTINUE if(access(id,ADMIN_LEVEL_H) && access(id,ADMIN_USER)) { remove_user_flags(id,ADMIN_LEVEL_H) return PLUGIN_CONTINUE } new authid[32] get_user_authid(id, authid, 35) if(have_user_nonsteam(authid)) { new ip[16], host[50] get_user_ip(id,ip , 15 , 1) netdb_gethostbyaddr(ip,host,49) if( ( contain(host,"adsl") != -1 || contain(host,"dynamic") != -1 && contain(host,"dynamic.chello") == -1 ) { new kickmsg[512] get_cvar_string("amx_konto_msg", kickmsg, 512) client_print(id, print_console, "* * * Masz zmienne IP !") server_cmd("wait;wait;wait;wait;wait;kick #%d ^"%s^"", get_user_userid(id), kickmsg) } } return PLUGIN_CONTINUE } stock have_user_nonsteam(authid[]) { if(containi(authid, "VALVE_ID") != -1 || containi(authid, "STEAM_ID") != -1 || containi(authid, "STEAM_0:3") != -1 || containi(authid, "STEAM_0:4") != -1 || containi(authid, "VALVE_0:") != -1) return 1; return 0; }
Chodzi o to że nie ukazuję się w konsoli napis "* * * Masz zmienne IP !"
Reszta działa jak należy.
Z góry dziękuje za okazaną pomoc
ogieR8
19.03.2012
Można prosić netdb.inl / netdb.inc ? Bo tak to nawet nie skompiluje by sprawdzić swoje postępy w pomocy ; d
sebul
19.03.2012
Nie wyświetlisz graczowi czegoś w konsoli dopóki nie wybierze on jakiejś drużyny, czy tam dopóki nie zniknie mu powitalne motd, dokładnie nie wiem jak to jest, ale w każdym razie najlepszym sposobem będzie tutaj task.
Zamieniłem też stock odpowiedzialny za sprawdzanie, czy gracz posiada steama.
#include <amxmodx>
#include <amxmisc>
#include <netdb>
#define PLUGIN "Konta IP"
#define VERSION "2.0"
#define AUTHOR "Sn!ff3r"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_cvar("amx_konto_msg", "Zablokowane IP - sprawdz konsole!");
}
public client_putinserver(id) {
set_task(5.0, "sprawdz_gracza", id);
}
public sprawdz_gracza(id) {
if(!is_user_connected(id) || get_user_flags(id) & ADMIN_RESERVATION)
return PLUGIN_CONTINUE;
if(access(id,ADMIN_LEVEL_H) && access(id,ADMIN_USER)) {
remove_user_flags(id, ADMIN_LEVEL_H);
return PLUGIN_CONTINUE;
}
new authid[32]; get_user_authid(id, authid, 31);
if(!is_steam(authid)) {
new ip[16], host[50];
get_user_ip(id,ip , 15 , 1);
netdb_gethostbyaddr(ip, host, 49);
if((contain(host, "adsl") != -1 || contain(host, "dynamic") != -1) && contain(host, "dynamic.chello") == -1) {
new kickmsg[512];
get_cvar_string("amx_konto_msg", kickmsg, 511);
console_print(id, "* * * Masz zmienne IP !");
server_cmd("wait;wait;wait;wait;wait;kick #%d %s", get_user_userid(id), kickmsg);
}
}
return PLUGIN_CONTINUE;
}
stock bool:is_steam(auth[]) {
if(contain(auth, "STEAM_0:0:") != -1 || contain(auth, "STEAM_0:1:") != -1)
return true;
return false;
}
Zamieniłem też stock odpowiedzialny za sprawdzanie, czy gracz posiada steama.
Turtle
19.03.2012
netdb pobrałem już skompilowane, więc nie mam tej wersji bibliotek.
powyższe rozwiązanie działa w 100% dzięki wielkie!
mam jeszcze jedno pytanie, bo czasem zdarzają się ISP którzy nie mają hostów,
więc rodzi się pytanie czy dało by rade dopisać dane pule adresowe, aby były także blokowane poza tymi hostami co są teraz?
np 83.9.0.0-83.9.255.255 ??
Użytkownik Turtle edytował ten post 19.03.2012 22:28
powyższe rozwiązanie działa w 100% dzięki wielkie!
mam jeszcze jedno pytanie, bo czasem zdarzają się ISP którzy nie mają hostów,
więc rodzi się pytanie czy dało by rade dopisać dane pule adresowe, aby były także blokowane poza tymi hostami co są teraz?
np 83.9.0.0-83.9.255.255 ??
Użytkownik Turtle edytował ten post 19.03.2012 22:28
sebul
19.03.2012
W sumie jeden warunek dla mnie jest tutaj trochę dziwny, "dynamic.chello" należy do stałych ip? Spróbuj może zamienić
na
if((contain(host, "adsl") != -1 || contain(host, "dynamic") != -1) && contain(host, "dynamic.chello") == -1) {
na
if(containi(host, "adsl") != -1 || containi(host, "dynamic") != -1) {
Turtle
20.03.2012
jest dobrze, dynamic chello jest zmieniane raz na rok, lub poprzez jedną wymuszoną próbę pobierając nowy adres przez modem.
a da rade blokować zakresy?
a da rade blokować zakresy?