Anti Insultos
#1
Bueno, es un plugin que hice hace un mes apróximado que le robe la idea a @Chema de un plugin "anti insultos".. lo hice rápido, le di poco testeo, lo vi como "original" por eso lo puse acá jaja, emm, bueno, poco que decir, cualquier cosa que este mal me lo dicen!
Aclaración
-Poco testeo.
-Poco uso.

Lo que vi es que funcionaba como yo quiero pacman y bueno, lo publico para joder un rato jajaja.

Cita: Versión 1.0 -> Release!

Código PHP:
#include < amxmodx >
#include < amxmisc >
#include < ColorChat >

new const PLUGIN [ ] = "Anti Insultos"
new const VERSION [ ] = "1.0";
new const 
AUTHOR [ ] = "heNK'";

new 
Trie:tMensajes;

new const 
szPrefix[] = "^4[AMXMODX]^1";

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_clcmd("say""HookSay");
    
register_clcmd("say_team""HookSay");
    
    
register_concmd("amx_reload_config""ReloadConfig"ADMIN_BAN"< Recarga el archivo insultos.ini >");
    
    
tMensajes TrieCreate();
}


public 
plugin_cfg(){
    
    new 
iFile[64];
    
copy(iFile63"addons/amxmodx/configs/Insultos.ini");
    
    if(!
file_exists(iFile)){    
        
write_file(iFile"; [AMXX] Anti Insultos v1.0 by heNK'");
        
write_file(iFile"; Colocar palabras unas debajo de otras!");
        
    }
    
    new 
szFile fopen(iFile"rt");
    
    if(
szFile){
        while(!
feof(szFile)){
            static 
szBuffer[256];
            
fgets(szFileszBuffersizeof(szBuffer));
            
            if(
szBuffer[0] == ';' || szBuffer[0] == '/' && szBuffer[1] == '/' || !szBuffer[0])
                continue;
                
            
replace_all(szBuffersizeof(szBuffer), "^n""");
            
replace_all(szBuffersizeof(szBuffer), "^"", "");
            replace_all(szBuffer, sizeof(szBuffer), "
\\", "");
            
            
            TrieSetCell(tMensajes, szBuffer, 1);
            //TrieSetString(tMensajes, szBuffer, szBuffer);
        }
    }        
    
    fclose(szFile);
    
    
    server_cmd("
amx_pausecfg add ^"%s^"", PLUGIN);
}

public ReloadConfig(id, level, cid){
    if(!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED;
        
    
    if(read_argc())
        console_print(id, "
[AMXXRecargaste la lista de insultos");
        
    plugin_cfg();
    
    return PLUGIN_CONTINUE;
    
}

public HookSay(id){
    
    new say[192];
    read_args(say, 191);
    remove_quotes(say);
    trim(say);
    
    //new iText[31];
    
    if(TrieKeyExists(tMensajes, say)){
        ColorChat(id, GREEN, "
%s No puedes decir la palabra ^4%s", szPrefix, say);
        return PLUGIN_HANDLED;
        
    }
    
    
    /*
    if(TrieGetString(tMensajes, say, iText, sizeof(iText))){
        
        ColorChat(id, GREEN, "
%s No puedes decir la palabra ^4%s", szPrefix, iText);
        return PLUGIN_HANDLED;
    }
    */
    
    return PLUGIN_CONTINUE;
    
}


public plugin_end()
    TrieDestroy(tMensajes); 
Responder
#2
No se que decir, jaja saludos

Responder
#3
No sé sí reír o llorar xdxd pacman

Buen aporte henkidama, aportaré mí versión. Crab
Responder
#4
Si yo pongo "pedazo de puto" y "puto" está en el archivo lo bloquea?

Edit: Lo que dijo el entrerriano https://forums.alliedmods.net/showthread.php?p=1055491
Responder
#5
Buen aporte Whatever
[Imagen: 76561198350936449.png]

Cita:Los precios en la moneda venezolana se fijarán a partir de la reconversión monetaria y valdrá mucho menos de lo que cuesta una Cachapa con queso.
Responder
#6
que diferencia tiene con algún antispam que anda dando vuelta? mas bien seria un aporte no un plugin nuevo, saludos.
Ingeniero agrónomo y desarrollador de Software.

tutoriales-allied
buscas un zp?

"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#7
Es tan facil como poner

p e l o t u d o.

y bypassearlo....
Responder
#8
quien es henk? pacman



si queres un buen anti insultos o spam es la misma vaina solo que disfrazada xdxd .. quitale todos los espacios a la cadena del say y del archivo que cargas con las palabras luego en el say haces tus condiciones para buscar la palabra en la cadena ignorando . , | @ osea signos especiales etc etc etc hay te dejo la idea abierta.. yo hice uno hace un milenio y de esa forma me funciono xdxd


si yo te escribo "tu.jeva - fu/ e mía" igual no lo detecta pero con la idea que te doy si podrás

igual los acentos, números etc .. fín te puedo echar una mano si quieres
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

(18/11/2014, 05:47 PM)Neeeeeeeeeel.- escribió: Por qué necesitan una guía para todo? Meté mano y que salga lo que salga... es la mejor forma de aprender.

(16/05/2016, 11:08 PM)kikizon2 escribió: No cabe duda que tienen mierda en vez de cerebro, par de pendejos v:
Responder
#9
Hace varios años arme una native para detectar insultos en el (say,adminchat,votemenu)
detecta cosas como put0 put@, p e lo t u 2
Código PHP:
new const badwords[][] = {
    
" puta"" puto""put0",
    
"pelotud"" gil"
    
" pta"" pto""boludin",
    
"boludit""putit""mogolic"
}

register_native("oa_filter_badwords""native_filter_badwords")

public 
native_filter_badwords(iPluginiParams// native oa_filter_badwords(string[], mask=1, strict=0)
{
    new 
string[256], org_pos[256], ijposmaskcountstrictmask
    
    get_string
(1stringcharsmax(string))
    
mask get_param(2)
    
strict get_param(3)
    
    
copy(g_buff,  charsmax(g_buff), string)
    
strtolower(g_buff)
    
    if(
strict)
    {
        static const 
_replace[][2] = {
        { 
'@''a' }, { '$''s' }, { 'z''s' }, { 'x''s' }, { '3''e' }, { '1''i' },
        { 
'4''a' }, { '0''o' }, { '7''t' }, { '6''g' }, { '8''b' }, { '|''i' }
        }
        
        for(
i=pos=0g_buff[i]; i++)
        {
            for(
j=0sizeof _replacej++)
            {
                if(
_replace[j][0] != g_buff[i])
                    continue
                    
                
g_buff[i] = _replace[j][1]
                
= -1
                
break
            }

            if(
!= -&& g_buff[i] == ' ' || !('a' <= g_buff[i] <= 'z' || '0' <= g_buff[i] <= '9') || (&& g_buff[i-1] == g_buff[i]))
                continue
        
            
g_buff[pos] = g_buff[i]
            
org_pos[pos] = i
            pos
++
        }
        
g_buff[pos] = 0
        
        replace_all
(g_buffcharsmax(g_buff), "2""do")
    }
    
    
maskcount 0
    
    
for(i=0sizeof badwordsi++)
    {
        
0
        
if(badwords[i][0] == ' ')
        {
            
pos contain(g_buffbadwords[i][1])
            if(
pos == -1) continue
            
            if(
strict == 1)
            {
                if(
org_pos[pos] && isalpha(string[org_pos[pos]-1]))
                    continue
            }
            else if(!
strict)
            {
                if(
pos && isalpha(g_buff[pos-1]))
                    continue
            }
            
            
j++
            
pos--
        }
        else if((
pos contain(g_buffbadwords[i])) == -1)
            continue
        
        if(
mask <= maskcount++)
            return 
2
        
        
for(; badwords[i][j]; j++)
        {
            if(
strictg_buff[pos+j] = string[org_pos[pos+j]] = '*'
            
else g_buff[pos+j] = string[pos+j] = '*'
        
}
                
        
i--
    }
    
    if(
maskcount)
    {
        
set_string(1stringstrlen(string))
        return 
1
    
}
        
    return 
0

Responder
#10
Que tremendo choclo de código Destro, tenés que aprender a usar expresiones regulares!

Respecto al plugin, creo que hay mejores formas de hacerlo y siquiera subiste el código como un archivo adjunto.

Además de que el OP está baneado. No recuerdo si temporal o permanente pero da igual. Si hacés un buen update y lo querés nuevamente en plugins nuevos mandame un mp.
[Imagen: paypalqr.png]
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)