прегледах всички теми в форума и тествах почти всички плъгини срещу реклама на IP адреси, но никой не функционира правилно, особено с комбинация от GagSystem на TheRedShoko.. Пробвах този плъгин, но той премахва всяко едно число, дори и да не е IP адрес.. Може ли някой да даде добре работещ такъв плъгин?
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <fakemeta>
#include <regex>
#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);
}
}