#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 ^" ^x04^cs-idiot.pl Najlepsza serwerownia!"") } 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") }
mam takie błędy przy kompilacji
dontsayips.sma(86) : error 027: invalid character constant
dontsayips.sma(86) : error 027: invalid character constant
dontsayips.sma(86 -- 87) : warning 215: expression has no effect