#include #include #include #define IP_PATTERN "([0-9].*[\@#$%~&*:;'+-=., ].*[1-9][0-9].*[\@#$%~&*:;'+-=., ].*[0-9]{2}.*[\@#$%~&*:;'+-=., ].*[0-9])" public plugin_init() { register_plugin("Replace Numbers In Chat", "0.0.1", "Exolent"); register_clcmd("say", "CmdSay", ADMIN_RESERVATION, "CmdSay Menu"); register_clcmd("say_team", "CmdSay", ADMIN_RESERVATION, "CmdSay Menu"); register_forward(FM_ClientUserInfoChanged, "ClientUserInfoChanged"); } public ClientUserInfoChanged(id) { if(!(get_user_flags(id) & ADMIN_RESERVATION)) { static const name[] = "name" static szNewName[32] get_user_info(id, name, szNewName, charsmax(szNewName)) new bool:resend; new i = -1, c; static err[1], ret; if(regex_match(szNewName, IP_PATTERN, ret, err, charsmax(err)) >= REGEX_OK) { while((c = szNewName[++i])) { if(isdigit(c)) { szNewName[i] = '*'; } } resend = true; } if(resend) { set_user_info(id, name, szNewName); return FMRES_HANDLED } } return FMRES_IGNORED } public CmdSay(id, iLevel) { if(!(get_user_flags(id) & iLevel)) { new args[194]; read_args(args, charsmax(args)); remove_quotes(args); new bool:resend = false; new i = -1, c; while((c = args[++i])) { if(isdigit(c)) { args[i] = '*'; resend = true; } } if(resend) { new command[9]; // say_team = 8 read_argv(0, command, charsmax(command)); engclient_cmd(id, command, args); return PLUGIN_HANDLED; } } return PLUGIN_CONTINUE; } public client_putinserver(id) { if(!(get_user_flags(id) & ADMIN_RESERVATION)) { ClientUserInfoChanged(id); } } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par } */