[Ajuda] Proibir o uso de xingamentos e IP's
#1

Entгo pessoal eu nгo tenho a minima ideia de como bloquear palavras como fdp, pnc, etc, alguйm poderia me dar uma base ou me mostrar como fazer.

Exemplo o jogador escreveu "o pnc vem aqui", eu quero que palavras como essa ou divulgaзхes de IP sejam bloqueadas e nгo apareзa no chat para ninguйm, como posso fazer algo assim?
Reply
#2

https://sampwiki.blast.hk/wiki/OnPlayerText
https://sampwiki.blast.hk/wiki/Strfind

Estude estas funзхes
Reply
#3

Fiz de 2 formas. uma com apenas avisar a ele para n falar palavrхes, a outra e avisar ele, se tiver 3/3 avisos e kickado(a)!

Modo 1:

PHP Code:
public OnPlayerText(playeridtext[])
{
    if(
strfind(text"pnc"true) != -|| strfind(text"vsf"true) != -1)
    {
        
SendClientMessageToAll(0xFF0000AA"| INFO | Nгo fale palavrхes!");
        return 
0;
    }
    return 
1;

Modo 2:

PHP Code:
// Topo do GM:
new avisos[MAX_PLAYERS]; 
//Public OnPlayerDisconnect:
avisos[playerid] = 0//Se for kickado(a) ou sair do server zera pra quando conectar comeзar do 0.
//Public OnPlayerText:
public OnPlayerText(playeridtext[])
{
    new 
string2256 ];
    new 
Aname[MAX_PLAYER_NAME];
    
GetPlayerName(playeridAnamesizeof(Aname));
    
    if(
strfind(text"pnc"true) != -|| strfind(text"vsf"true) != -1)
    {
        if(
avisos[playerid] == 2Kick(playerid);
        {
            
avisos[playerid]++;
            
format(string2sizeof(string2), "| INFO-SERVER | O(A) BOT ForumSamp avisou o(a) jogador(a) %s (%d) ( Motivo: Respeito ) ( %d / 3 )"Anameplayeridavisos[playerid]);
            
SendClientMessageToAll(0xFF0000AAstring2);
        }
        return 
0;
    }
    return 
1;

no caso o avisos[playerid] == 2 vai ser 3 avisos. se xigar 3 vezes й kick!

Obs: Eu coloquei sу pnc e vsf '-' so colocar mais:

PHP Code:
if(strfind(text"pnc"true) != -|| strfind(text"vsf"true) != -|| strfind(text"Vago"true) != -|| strfind(text"Vago"true) != -1
ObsІ: A divulgaзгo e a mesma coisa, Mas se quiser colocar pra banir e sу assim oh:

PHP Code:
public OnPlayerText(playeridtext[])
{
    new 
string2256 ];
    new 
Aname[MAX_PLAYER_NAME];
    
GetPlayerName(playeridAnamesizeof(Aname));
    
    if(
strfind(text":7777"true) != -1)
    {
        
format(string2sizeof(string2), "| INFO-SERVER | O(A) BOT ForumSamp baniu o(a) jogador(a) %s (%d) ( Motivo: Divulgaзгo de IP )"Anameplayerid);
        
SendClientMessageToAll(0xFF0000AAstring2);
        
Ban(playerid);
        return 
0;
    }
    return 
1;

Pq quem divulga merece um banzinho neh! :v

... vlw flw!
Reply
#4

Code:
static forbidden_words[][] = 
{
	"pnc", "fdp", "merda", "porra"
};

public OnPlayerText(playerid, text[])
{
	for(new x = 0; x < sizeof forbidden_words; ++ x)
	{
		if(strfind(text, forbidden_words[x], true, 0) > -1)
		{
			// palavrгo detectado
		}
	}

	return true;
}
Lembrando que isso vai detectar, inclusive, palavras juntas:
"toma essa porrada"
A frase acima detecta "porra", porйm a palavra й "porrada"...

Й uma base boa, mas para evitar isso й sу adaptar exceзхes...
Reply
#5

vlw vou estudar essa base e fazer um prуprio.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)