SA-MP Forums Archive
como hago un Anti nombre de servidores - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: como hago un Anti nombre de servidores (/showthread.php?tid=562432)



como hago un Anti nombre de servidores - Thewin - 08.02.2015

como hago un sistema que por ejemplo mencionan "Feni""""", y simplemente no le sale lo mencionado por canal IC,OOC(/b) o por el canal de dudas...


Respuesta: como hago un Anti nombre de servidores - aoEXE - 08.02.2015

pawn Код:
new const PalabrasProhibidas[][] =
{
    {"texto1"},{"texto2"},{"texto3"}
};

for(new s = 0, r = sizeof(PalabrasProhibidas); s < r; s++)
{
    new p;
    while((p = strfind(string,PalabrasProhibidas[s],false)) != -1)
    {
        for(new i = p, j = p + strlen(PalabrasProhibidas[s]); i < j; i++)
        {
            string[i] = '*';
        }
    }
}
pones lo que no quieres que salga en el texto en el array y antes de mostrar el string aplicas el bucle


Respuesta: como hago un Anti nombre de servidores - Zume - 08.02.2015

El ejemplo de aoexe estб muy bien, este es otro: http://forum.sa-mp.com/showpost.php?...66&postcount=8

cambiarнan la palabra prohibida por cierto carбcteres censurбndolo,

Pero si en definitiva quieres que el mensaje que tenga una palabra prohibida no se envнe.

Se me ocurriу esto:

PHP код:
new LastWordForbidden[MAX_PLAYERS][32],
    
LastWorldTime[MAX_PLAYERS];
stock AntiSPAM(playeridstr[])
{
    if(!
IsPlayerConnected(playerid))
        return 
0;
    static const 
WordsForbidden[][16] =
    {
        
// Servidores o palabras prohibidas de nombrar
        
{"Servidor1"},    {"Servidor2"},    {"Servidor3"}, {"Servidor4"}, {"Servidor5"},
        {
"Servidor6"},     {"Servidor7"},     {"Servidor8"}, {"Servidor9"}, {"Servidor10"}
    };
    if(
LastWorldTime[playerid] > gettime())
    {
        if(
strfind(strLastWordForbidden[playerid], true))
        {
            return 
1;
        }
    }
    for(new 
i!= sizeof(WordsForbidden) ; i++)
    {
         if(
strfind(strWordsForbidden[i], true) == -1)
             continue;
           
strunpack(LastWordForbidden[playerid], WordsForbidden[i]);
        
LastWorldTime[playerid] = gettime()+60;
        return 
1;
    }
    return 
0;
}
public 
OnPlayerText(playeridtext[])
{
    if(
AntiSPAM(playeridtext))
    {
        
SendClientMessage(playerid, -1"No hagas SPAM!");
        return 
0// Evita que envie el mensaje si es una palabra prohibida.
    
}
    return 
1;




Respuesta: como hago un Anti nombre de servidores - Thewin - 08.02.2015

Quote:
Originally Posted by _Zume
Посмотреть сообщение
El ejemplo de aoexe estб muy bien, este es otro: [url]https://sampforum.blast.hk/showthread.php?pid=331#pid331
No me servio el cуdigo, se sigue enviando los mensajes prohibido en los chats.


Respuesta: como hago un Anti nombre de servidores - DesingMyCry - 09.02.2015

Zume, la funciуn que citas que escribн hace un tiempo, tambiйn retorna la cantidad de palabras reemplazadas, por lo que si se hace una condiciуn como:

pawn Код:
if(detectar(cadena))
{
    // Se ejecutarб si se detectaron palabras que deben ser censuradas.
}
Y voilа.