public OnPlayerText(playerid, text[])
{
for(new Z; Z < sizeof(Badwords); Z++)
{
if(strcmp(text, Badwords[Z], true) == 0)
{
new
str[128],
Nome[24]
;
GetPlayerName(playerid, Nome, sizeof(Nome));
Avisos[playerid] ++;
if(Avisos[playerid] < 2)
{
format(str, sizeof(str), "( Palavreado ) o jogador %s foi avisado, Motivo: Palavrгo. Avisos: [%d/2]", Nome, Avisos[playerid]);
SendClientMessageToAll(0x00CDD8AA, str);
return 0;
}
else if(Avisos[playerid] >= 2)
{
format(str, sizeof(str), "( Palavreado ) O jogador %s foi kickado, Motivo: Palavrгo. Avisos: [%d/2]", Nome, Avisos[playerid]);
SendClientMessageToAll(0x00CDD8AA, str);
GameTextForPlayer(playerid, "~r~kickado", 3000, 1);
Kick(playerid);
Avisos[playerid] = 0;
return 1;
}
}
}
Olб, eu possuo um anti-palavхes, que por sua vez estб com pequeno problema. O player sу й punido se o palavreado estiver no primeiro local do texto...
Exemplo; FdPoooxa vocк й chato. ( O player й punido, pois o FdPoooxa, estб no primeiro local do texto. ) Agora se for assim; Vocк й muito chato seu FdPoooxa ( Nгo funciona, pois estб em outro local, fora da primeira palavra ). Alguйm poderia me ajudar? Cуdigo: pawn Код:
|
Mercъrio, tente usar strfind no OnPlayerText, Acho que darб certo.
Eu mesmo estou tentando montar um para meu servidor. |
public OnPlayerText(playerid, text[])
{
static
Nome[24],
str[128]
;
Nome[0] = EOS;
str[0] = EOS;
for(new Z; Z < sizeof(Badwords); Z++)
{
if(strfind(text, Badwords[Z], true) != -1)
{
GetPlayerName(playerid, Nome, sizeof(Nome));
Avisos[playerid] ++;
if(Avisos[playerid] < 2)
{
format(str, sizeof(str), "( Palavreado ) o jogador %s foi avisado, Motivo: Palavrгo. Avisos: [%d/2]", Nome, Avisos[playerid]);
SendClientMessageToAll(0x00CDD8AA, str);
return 0;
}
else if(Avisos[playerid] >= 2)
{
format(str, sizeof(str), "( Palavreado ) O jogador %s foi kickado, Motivo: Palavrгo. Avisos: [%d/2]", Nome, Avisos[playerid]);
SendClientMessageToAll(0x00CDD8AA, str);
GameTextForPlayer(playerid, "~r~kickado", 3000, 1);
Kick(playerid);
Avisos[playerid] = 0;
return 1;
}
}
}