[ROZWIĄZANE] DSI reklamowanie stron www / pl
Najlepsza odpowiedź kukla1910 09.04.2014 23:24
spróbuj:
#include <amxmodx> #include <regex> new pCvar[5], iCvar[5], zareklamowal[33] new Powod[64], Flagi[12], Domyslnie[128] new PlikAllowed[] = "addons/amxmodx/configs/allowed.ini"; new NazwySlow[192][32] new IloscDozwolonych public plugin_init() { register_plugin("Don't say IPs", "1.0", "naXe") register_clcmd("say", "hook_say") register_clcmd("say_team", "hook_say") pCvar[0] = register_cvar("dsi_check_times", "3") // po ilu reklamach ma banowac (w tym przypadku za 4 (+1)) pCvar[1] = register_cvar("dsi_ban_time", "30") // czas bana za reklame pCvar[2] = register_cvar("dsi_immunitet_flags", "a") // mozna laczyc kilka flag np. "abcde" pCvar[3] = register_cvar("dsi_ban_reason", "Reklama IP") // powod bana za reklame pCvar[4] = register_cvar("dsi_default_say", "Musze to powiedziec... Ten serwer jest za***isty!") // na co zamieniac reklame if(!file_exists(PlikAllowed)) { log_message("Plik %s nie zostal odnaleziony", PlikAllowed) return } new iLen while(IloscDozwolonych < 192 && read_file(PlikAllowed, IloscDozwolonych, NazwySlow[IloscDozwolonych][1], 30, iLen)) { if(NazwySlow[IloscDozwolonych][0] == ';') continue NazwySlow[IloscDozwolonych][0] = iLen ++IloscDozwolonych } } public plugin_cfg() { iCvar[0] = get_pcvar_num(pCvar[0]) iCvar[1] = get_pcvar_num(pCvar[1]) get_pcvar_string(pCvar[2], Flagi, 11) get_pcvar_string(pCvar[3], Powod, 63) get_pcvar_string(pCvar[4], Domyslnie, 127) } public hook_say(id) { new said[1024], cmd[32], g_blad[64], zwrocona_wartosc, bool:znalaziono, pos, i read_args(said, 1023) read_argv(0, cmd, 31) while(i < IloscDozwolonych) { if((pos = containi(said, NazwySlow[i][1])) != -1) { new len = NazwySlow[i][0] while(len--) said[pos++] = '*' znalaziono = true continue } ++i } new Regex:g_result = regex_match(said, "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9][pl]?)", zwrocona_wartosc, g_blad, 63) switch(g_result) { case REGEX_MATCH_FAIL: { log_amx("REGEX_MATCH_FAIL! %s", g_blad) return 0 } case REGEX_PATTERN_FAIL: { log_amx("REGEX_PATTERN_FAIL! %s", g_blad) return 0 } case REGEX_NO_MATCH: return 0 default: { if(znalaziono || get_user_flags(id) & read_flags(Flagi)) return 0 else { if(++zareklamowal[id] > iCvar[0]) { engclient_cmd(id, cmd, "%s", Domyslnie) server_cmd("amx_ban %d #%d ^"%s^"", iCvar[1], get_user_userid(id), Powod) return 1 } regex_free(g_result) } return 1 } } return 0 }Przejdź do postu
Shaxu
07.04.2014
Witam Serdecznie wszystkich.
Mam następujący problem ze swoim pluginem, problem polega na tym że gracze mogą reklamować swoje strony internetowe.
Chciałbym prosić aby ktoś mi pomógł w edycji tego pluginu i dodał funkcję blokującą poszczególnych fraz takich jak www / eu / pl itp.
#include <amxmodx> #include <regex> new pCvar[5], iCvar[5], zareklamowal[33] new Powod[64], Flagi[12], Domyslnie[128] new PlikAllowed[] = "addons/amxmodx/configs/allowed.ini"; new NazwySlow[192][32] new IloscDozwolonych public plugin_init() { register_plugin("Don't say IPs", "1.0", "naXe") register_clcmd("say", "hook_say") register_clcmd("say_team", "hook_say") pCvar[0] = register_cvar("dsi_check_times", "3") // po ilu reklamach ma banowac (w tym przypadku za 4 (+1)) pCvar[1] = register_cvar("dsi_ban_time", "30") // czas bana za reklame pCvar[2] = register_cvar("dsi_immunitet_flags", "a") // mozna laczyc kilka flag np. "abcde" pCvar[3] = register_cvar("dsi_ban_reason", "Reklama IP") // powod bana za reklame pCvar[4] = register_cvar("dsi_default_say", "Musze to powiedziec... Ten serwer jest za***isty!") // na co zamieniac reklame if(!file_exists(PlikAllowed)) { log_message("Plik %s nie zostal odnaleziony", PlikAllowed) return } new iLen while(IloscDozwolonych < 192 && read_file(PlikAllowed, IloscDozwolonych, NazwySlow[IloscDozwolonych][1], 30, iLen)) { if(NazwySlow[IloscDozwolonych][0] == ';') continue NazwySlow[IloscDozwolonych][0] = iLen ++IloscDozwolonych } } public plugin_cfg() { iCvar[0] = get_pcvar_num(pCvar[0]) iCvar[1] = get_pcvar_num(pCvar[1]) get_pcvar_string(pCvar[2], Flagi, 11) get_pcvar_string(pCvar[3], Powod, 63) get_pcvar_string(pCvar[4], Domyslnie, 127) } public hook_say(id) { new said[1024], cmd[32], g_blad[64], zwrocona_wartosc, bool:znalaziono, pos, i read_args(said, 1023) read_argv(0, cmd, 31) while(i < IloscDozwolonych) { if((pos = containi(said, NazwySlow[i][1])) != -1) { new len = NazwySlow[i][0] while(len--) said[pos++] = '*' znalaziono = true continue } ++i } new Regex:g_result = regex_match(said, "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)", zwrocona_wartosc, g_blad, 63) switch(g_result) { case REGEX_MATCH_FAIL: { log_amx("REGEX_MATCH_FAIL! %s", g_blad) return 0 } case REGEX_PATTERN_FAIL: { log_amx("REGEX_PATTERN_FAIL! %s", g_blad) return 0 } case REGEX_NO_MATCH: return 0 default: { if(znalaziono || get_user_flags(id) & read_flags(Flagi)) return 0 else { if(++zareklamowal[id] > iCvar[0]) { engclient_cmd(id, cmd, "%s", Domyslnie) server_cmd("amx_ban %d #%d ^"%s^"", iCvar[1], get_user_userid(id), Powod) return 1 } regex_free(g_result) } return 1 } } return 0 }
Za udzieloną pomoc serdecznie dziękuję, pozdrawiam !
Najlepsza odpowiedź
kukla1910
09.04.2014
spróbuj:
#include <amxmodx> #include <regex> new pCvar[5], iCvar[5], zareklamowal[33] new Powod[64], Flagi[12], Domyslnie[128] new PlikAllowed[] = "addons/amxmodx/configs/allowed.ini"; new NazwySlow[192][32] new IloscDozwolonych public plugin_init() { register_plugin("Don't say IPs", "1.0", "naXe") register_clcmd("say", "hook_say") register_clcmd("say_team", "hook_say") pCvar[0] = register_cvar("dsi_check_times", "3") // po ilu reklamach ma banowac (w tym przypadku za 4 (+1)) pCvar[1] = register_cvar("dsi_ban_time", "30") // czas bana za reklame pCvar[2] = register_cvar("dsi_immunitet_flags", "a") // mozna laczyc kilka flag np. "abcde" pCvar[3] = register_cvar("dsi_ban_reason", "Reklama IP") // powod bana za reklame pCvar[4] = register_cvar("dsi_default_say", "Musze to powiedziec... Ten serwer jest za***isty!") // na co zamieniac reklame if(!file_exists(PlikAllowed)) { log_message("Plik %s nie zostal odnaleziony", PlikAllowed) return } new iLen while(IloscDozwolonych < 192 && read_file(PlikAllowed, IloscDozwolonych, NazwySlow[IloscDozwolonych][1], 30, iLen)) { if(NazwySlow[IloscDozwolonych][0] == ';') continue NazwySlow[IloscDozwolonych][0] = iLen ++IloscDozwolonych } } public plugin_cfg() { iCvar[0] = get_pcvar_num(pCvar[0]) iCvar[1] = get_pcvar_num(pCvar[1]) get_pcvar_string(pCvar[2], Flagi, 11) get_pcvar_string(pCvar[3], Powod, 63) get_pcvar_string(pCvar[4], Domyslnie, 127) } public hook_say(id) { new said[1024], cmd[32], g_blad[64], zwrocona_wartosc, bool:znalaziono, pos, i read_args(said, 1023) read_argv(0, cmd, 31) while(i < IloscDozwolonych) { if((pos = containi(said, NazwySlow[i][1])) != -1) { new len = NazwySlow[i][0] while(len--) said[pos++] = '*' znalaziono = true continue } ++i } new Regex:g_result = regex_match(said, "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9][pl]?)", zwrocona_wartosc, g_blad, 63) switch(g_result) { case REGEX_MATCH_FAIL: { log_amx("REGEX_MATCH_FAIL! %s", g_blad) return 0 } case REGEX_PATTERN_FAIL: { log_amx("REGEX_PATTERN_FAIL! %s", g_blad) return 0 } case REGEX_NO_MATCH: return 0 default: { if(znalaziono || get_user_flags(id) & read_flags(Flagi)) return 0 else { if(++zareklamowal[id] > iCvar[0]) { engclient_cmd(id, cmd, "%s", Domyslnie) server_cmd("amx_ban %d #%d ^"%s^"", iCvar[1], get_user_userid(id), Powod) return 1 } regex_free(g_result) } return 1 } } return 0 }