#define PLUGINNAME "Don't say IPs by Pavulon" #define VERSION "0.2" #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 <fakemeta> #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 PATTERN "([0-9].*[., ].*[0-9].*[., ].*[0-9].*[., ].*[0-9])" #define PATTERN "([0-9].*[., ].*[0-9].*[., ].*[0-9].*[., ].*[0-9])|(www.)|(.pl)|(.com)|(.ru)|(.de)|(.net)|(.info)|(.org)|(.biz)|(.nl)|(.lt)|(.eu)|(.name)" #define REASON "reklama IP" #define CVAR_BANMINUTES "ip_banminutes" #define CVAR_BANVIOLATORS "ip_banviolators" #define CVAR_BANTIMES "ip_bantimes" #define TEKST "Ale ten serwer jest za***isty!" // Globals below new Regex:g_result new g_returnvalue new g_error[64] new times[32] new g_allArgs[1024] new banuids[33] new banname[33][32] new const g_name[] = "name" new /* const */ g_name_change[] = "#Cstrike_Name_Change" new g_msgid_saytext // Globals above public plugin_init() { register_plugin(PLUGINNAME, VERSION, AUTHOR) register_clcmd("say", "hook_say") register_clcmd("say_team", "hook_say") register_cvar(CVAR_BANVIOLATORS, "1") register_cvar(CVAR_BANMINUTES, "30") register_cvar(CVAR_BANTIMES, "3") register_dictionary("admincmd.txt") register_forward(FM_ClientUserInfoChanged, "forward_client_userinfochanged") g_msgid_saytext = get_user_msgid("SayText") } public plugin_modules() { require_module("regex") } public forward_client_userinfochanged(id, buffer) { if (!is_user_connected(id)) return FMRES_IGNORED static name[32] engfunc(EngFunc_InfoKeyValue, buffer, g_name, name, sizeof name - 1) if (get_user_flags(id)&ADMIN_RESERVATION) return FMRES_IGNORED look4(name,id, 2) return FMRES_SUPERCEDE } msg_name_change(id, /* const */ oldname[]) { client_cmd(id,"name ^"%s^"",TEKST) message_begin(MSG_BROADCAST, g_msgid_saytext) write_byte(id) write_string(g_name_change) write_string(oldname) write_string(TEKST) message_end() } public hook_say(id, level, cid) { if ( (get_user_flags(id)&ADMIN_RESERVATION) || !id ) return PLUGIN_CONTINUE read_args(g_allArgs, 1023) if (look4(g_allArgs,id, 1)==1) return PLUGIN_HANDLED return PLUGIN_CONTINUE } public look4(g_allArgs[],id, type) { g_result = regex_match(g_allArgs, PATTERN, g_returnvalue, g_error, 63, "i") 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 (type==1) times[id]++ new authid[32] get_user_authid(id, authid, 31) new name[32] get_user_name(id, name, 31) if (get_cvar_num(CVAR_BANVIOLATORS)&×[id]>=get_cvar_num(CVAR_BANTIMES) || get_cvar_num(CVAR_BANVIOLATORS)&&type==2) { banuids[id] = get_user_userid(id) format(banname[id], 31, "%s", g_allArgs) 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") log_amx("%s (%s), %s %s %s. This was written: ^"%s^"", name, authid, banned, temp, REASON, g_allArgs) new userid[1] userid[0] = id set_task(0.1,"cmd_ban",id, userid, 1) } if (type==1) { client_print(0, print_chat, "%s: %s", name, TEKST) server_cmd("amx_chat %s (%s): ^"%s^"", name, authid, g_allArgs) regex_free(g_result) return 1 // block msg } else if (type==2) { new username[32] get_user_name(id, username, 31) msg_name_change(id, username) server_cmd("amx_chat %s (%s): ^"%s^"", username, authid, name) } } } return PLUGIN_CONTINUE } public cmd_ban(userid[]) { new id = userid[0] new username[32] get_user_name(id, username, 31) if (!equal(username, banname[id])) { new minutes = get_cvar_num(CVAR_BANMINUTES) server_cmd("amx_ban %d #%d %s", minutes, banuids[id], REASON) } else set_task(1.0,"cmd_ban",id, userid, 1) } public client_connect(id) { times[id]=0 format(banname[id], 32, "") } public client_disconnect(id) { times[id]=0 format(banname[id], 32, "") }
Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Guest Message by DevFuse
dontsayips problem
Temat rozp. EliteF!ghter, 22.09.2009 21:16
Brak odpowiedzi do tego tematu
#1
Napisano 22.09.2009 21:16
Witam, ostatnio wgrałem plugin dontsayips. Plugin nie działa prawidłowo(wyświetla się reklama i podmianka tekstu z pluginu) Cvary są dodane. Wiecie co jest nie tak? To sma
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych