Anti-spam no bloquea el mensaje con espacios?
Hola a todos bueno aqui tengo un anti-spam, funca bien y bloquea las ips con puntos y todo pero se la pasan haciendome spam de esta forma 123 456 789 100 27019
Ven no le ponen puntos si no espacios y no bloquea el mensaje aqui el code
Ven no le ponen puntos si no espacios y no bloquea el mensaje aqui el code
PHP Code:
#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
new pCvar_Max, pCvar_Kick
enum{
NUM = 0,
POINT = 1,
DPOINT = 2,
WWW = 3 ,
TOTAL_LTS
}
public plugin_init()
{
register_plugin("Anti-Spam", "1.0", "Click post title for more details.")
register_clcmd("say_team", "hook_say")
register_clcmd("say", "hook_say")
pCvar_Kick = register_cvar("check_mode","1") //0 desactivado, 1 kickear, 2 cambiar el nombre/borrar say
pCvar_Max = register_cvar("check_maxdigits","10") //cantidad de numeros permitidos en nick
register_message(get_user_msgid("SayText"), "MessageNameChange")
}
public client_connect(id)
{
new szName[32]
get_user_name( id, szName, 31 )
check_name(id,szName)
}
check_name(id,const szName[])
{
new Count
new iValue = get_pcvar_num(pCvar_Kick)
if(!iValue)
{
return PLUGIN_HANDLED
}
for(new i = 0; i < strlen(szName) ; i++)
& nbsp; {
if(48 <= szName[i] <= 57)
{
Count++
}
}
if( Count >= get_pcvar_num(pCvar_Max) )
{
switch(clamp(iValue,1,2))
&n bsp; {
case 1:
{
emessage_begin( MSG_ONE, SVC_DISCONNECT, _, id )
ewrite_string("Nick detectado como spam.")
emessage_end()
}
case 2:
&n bsp; {
set_user_info(id,"name","[Spam]")
}
}
}
return PLUGIN_CONTINUE
}
public client_putinserver(id)
check_user_name(id)
public client_infochanged(id)
{
new oldname[32], newname[32]
get_user_name(id, oldname, 31)
get_user_info(id, "name", newname, 31)
if( !equal(oldname, newname) )
check_user_name(id, newname)
}
stock check_user_name(id, const name[32] = "")
{
new plrname< span>[32]
if(equal(name, ""))
{
get_user_name(id, plrname, 31)
}
else
{
plrname = name
}
new g_returnvalue, g_error[64]
new Regex:g_result = regex_match(plrname, PATTERN, g_returnvalue, g_error, 63)
switch(g_result)
{case REGEX_MATCH_FAIL, REGEX_PATTERN_FAIL:
{
return log_amx("REGEX ERROR! %s", g_error)
}
case REGEX_NO_MATCH:
{
return 0
}
default:
{
new name[33]
get_user_name(id, name, 32)
client_cmd(id, "name ^"Intento Spammear^"; disconnect; echo ^"Fuiste kickeado por hacer spam.^"")< br />
client_print(0, print_chat, "%s Fue Expulsado por ponerse una IP en el Nombre.", name)
server_cmd("kick %s", name)
return 1
}
}
return -1
}
public MessageNameChange(msgid, dest, id)
{
new szInfo[64]
get_msg_arg_string(2, szInfo, 63)
if(!equali(szInfo, "#Cstrike_Name_Change"))
{
return PLUGIN_CONTINUE
}
return PLUGIN_HANDLED
}
public hook_say(id)
{
new args[192], contador[TOTAL_LTS]
read_args(args, 191)
replace_all(args, 191, " ", "")
for( new i = 0; i& nbsp;< strlen(args) ; i++)
{
switch(args[i])
{
case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' : contador[NUM]++
case '.' : contador[POINT]++
case ':' : contador[DPOINT]+ +
case 'w' : contador[WWW]++
}
}
if(contador[NUM] >= 5 && contador[POINT] || (contador[WWW] >= 3 && containi(args,".com")))
{
client_print(id, print_chat, "Mensaje Bloqueado. Considerado Spam.")
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
Orignal From: Anti-spam no bloquea el mensaje con espacios?
Post a Comment