Witam.
Mam prośbę, może ktoś użyć tej samej funkcji wyszukiwania IP co w pluginie do antyreklamy w SAY w antyreklamie NICK. Chodzi mi o to, że w pluginie do anty nick blokuje tylko wpisane liczby, a czesto jest tak, że ktoś spamuje ip bez cyfr ktore sa podane w tym pluginie i antyreklama nie działa. Lub połączyć te dwa pluginy.
Miałem plugin anticomerce ale bardzo serwer mi obciążał
AntyReklama NICK
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #define PLUGIN "Zakaz reklamy w nicku" #define VERSION "1.0.1" #define AUTHOR "Mochi, edycja by Nesk" new cvar,zezwolone[32],kara new const reklama[][] = { ".ru" , ".waw", ".waw.", ".biz", ".eu", ".info", ".co", ".cn", ".de", "89.", "91.", "83.", "193.", "212.", "194.", "195.", "216.", "79.", "80.", "91.", "213.", "77.", "79.", "178.", "188.", "94.", "153.", ":27000", ":27001", ":27002", ":27003", ":27004", ":27005", ":27006", ":27007", ":27008", ":27009", ":27010", ":27011", ":27012", ":27013", ":27014", ":27015", ":27016", ":27017", ":27018", ":27019", ":27020", ":14000", ":27026", ":27025", ":27077", ":27033", ":27164", ":27070", ":27022", ":27041", ":27222", ":27122", ":27030", ":27276", ":27365", ":27196", ":27606", ":29023", ":27053", ":27068", ":27066", ":27088", ":27146", ":27039", "27094", "193.", "91.", "27216", "27021", "27729", "weed-cs.pl", "hardplay.pl", "cspukawka.eu", "xaa.pl", "CSBydgoszcz.PL", "dream.pl", "Deagle.pl" } public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) cvar = register_cvar("amx_reklama_www","CsClub.pl") kara = register_cvar("amx_reklama_sp","1") } public client_putinserver(id) { new name[32] get_user_name(id,name,31); get_pcvar_string(cvar,zezwolone,31) if(containi(name,zezwolone) != -1) { return PLUGIN_HANDLED } for(new i = 0; i < sizeof(reklama); i++) { if(containi(name, reklama[i]) != -1) { if(kara == 1) { server_cmd("kick #%d Reklama! Zmien nick!",get_user_userid(id)) } else { set_user_info(id,"name","CsClub.pl") } } } return PLUGIN_CONTINUE } public client_infochanged(id) { new name[32] get_user_info(id, "name", name,31) get_pcvar_string(cvar,zezwolone,31) if(containi(name,zezwolone) != -1) { return PLUGIN_HANDLED } for(new i = 0; i < sizeof(reklama); i++) { if(containi(name, reklama[i]) != -1) { if(kara == 1) { server_cmd("kick #%d Reklama! Zmien nick!",get_user_userid(id)) } else { set_user_info(id,"name","CsClub.pl") } } } return PLUGIN_CONTINUE }
AntyReklama SAY
#define PLUGINNAME "Don't say IPs" #define VERSION "0.1" #define AUTHOR "JGHG" /* Copyleft 2005 Plugin topic: http://www.amxmodx.org/forums/viewtopic.php?p=90172 Don't say IPs ============= Messages like "hey join my server 213.34.231.23" are automatically blocked... and another message is printed instead. :-P Or, you can choose to just ban violators by setting cvar ip_banviolators to 1 and ip_banminutes to how many minutes the violator should be banned. 0 is permanent, 5 is default. /JGHG VERSIONS ======== 050204 0.1 First version CREDITS ======= Requested by lord_inuyasha88. */ #include <amxmodx> #include <regex> #define PATTERN "(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]?)" // \b #define REASON "IP advertising" #define CVAR_BANMINUTES "ip_banminutes" #define CVAR_BANVIOLATORS "ip_banviolators" // Globals below new Regex:g_result new g_returnvalue new g_error[64] new g_allArgs[1024] // Globals above public plugin_modules() { require_module("regex") } public hook_say(id, level, cid) { read_args(g_allArgs, 1023) g_result = regex_match(g_allArgs, PATTERN, g_returnvalue, g_error, 63) switch (g_result) { case REGEX_MATCH_FAIL: { log_amx("REGEX_MATCH_FAIL! %s", g_error) return PLUGIN_CONTINUE } case REGEX_PATTERN_FAIL: { log_amx("REGEX_PATTERN_FAIL! %s", g_error) return PLUGIN_CONTINUE } case REGEX_NO_MATCH: { return PLUGIN_CONTINUE } default: { if (get_cvar_num(CVAR_BANVIOLATORS)) { new userid = get_user_userid(id) new minutesString[10] get_cvar_string(CVAR_BANMINUTES, minutesString, 9) new temp[64], banned[16], minutes = get_cvar_num(CVAR_BANMINUTES) if (minutes) format(temp, 63, "%L", id, "FOR_MIN", minutesString) else format(temp, 63, "%L", id, "PERM") format(banned, 15, "%L", id, "BANNED") new authid[32] get_user_authid(id, authid, 31) new name[32] get_user_name(id, name, 31) log_amx("%s (%s), %s %s because of advertising an IP address. This was written: ^"%s^"", name, authid, banned, temp, g_allArgs) server_cmd("kick #%d ^"%s (%s %s)^";wait;banid ^"%d^" ^"%s^";wait;writeid", userid, REASON, banned, temp, minutes, authid) } else { client_cmd(id, "say ^"CsClub.pl - Zapraszamy do rejestracji^"") } regex_free(g_result) return PLUGIN_HANDLED // block msg } } return PLUGIN_CONTINUE } public plugin_init() { register_plugin(PLUGINNAME, VERSION, AUTHOR) register_clcmd("say", "hook_say") register_cvar(CVAR_BANVIOLATORS, "0") register_cvar(CVAR_BANMINUTES, "30") register_dictionary("admincmd.txt") }