Portal SAMP
[Pedido] Chat Local anti flood - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Pedido] Chat Local anti flood (/showthread.php?tid=2322)



Chat Local anti flood - Morfeu_BMW - 24/04/2022

bom n estou conseguindo por anti flood por segundos no meu chat local fica bugando 


a mensagem de flood aparece em cima da mensagem q eu digito n sei oq fazer aki o comando

Código:
public OnPlayerText(playerid, text[])
{
new Name[MAX_PLAYER_NAME], String[144], Float:X, Float:Y, Float:Z;
GetPlayerName(playerid, Name, sizeof(Name));
GetPlayerPos(playerid, X, Y, Z);

if(gettime() < GetPVarInt(playerid, "AntFloodTextD")) return SCM(playerid, -1, "AntFlood - Aguarde alguns segundos para enviar duvida novamente.");
    SetPVarInt(playerid, "AntFloodTextD", gettime()+6);
   
format(String, sizeof(String), "{B1ABAB} %s [%d] diz: {FFFFFF}%s", Name, playerid, text);
for(new i = 0; i < MAX_PLAYERS; i++)
{
    if(IsPlayerInRangeOfPoint(playerid, 20.0, X, Y, Z))
    {
        SendClientMessage(i, -1, String);
}
}
return 0;
}



RE: Chat Local anti flood - White_Blue - 24/04/2022

Opa, a solução está em você colocar o sistema de anti flood abaixo do sistema de chat local espero ter ajudado.


RE: Chat Local anti flood - Morfeu_BMW - 24/04/2022

(24/04/2022 07:20)White_Blue Escreveu: Opa, a solução está em você colocar o sistema de anti flood abaixo do sistema de chat local espero ter ajudado.

eu fiz um bem bolado consegui olha ai vlw pela ajuda
Código:
public OnPlayerText(playerid, text[])
{
    if(Flood[playerid] > GetTickCount())
    {
    SendClientMessage(playerid,-1,"{FF0000}ERRO: {FFFFFF}Você Só pode falar de 5 á 5 segundos"); // Messagem mandada por falar antes de 5 Segundos
    return 0;
    }
    Flood[playerid] = GetTickCount() + 5000;
    
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);

    new Texto[256];
    new VerificarSeTemPlayer[MAX_PLAYERS];


    format(Texto, sizeof(Texto), "{0000FF}Local {FF0000}%s {FFFFFF}Diz: {FFFFFF}%s",                        PlayerName(playerid), text);


    for(new i;i <= MAX_PLAYERS;i++)
    {
        if(IsPlayerInRangeOfPoint(i, 35.0, X, Y, Z)) //25.0 da pra mudar pra outro numero por exemplo 150.0 é a distancia..
        {
            VerificarSeTemPlayer[playerid]++;
        }
    }

    if(VerificarSeTemPlayer[playerid] == 1)
    {
        SendClientMessage(playerid, 0x0000FFFF, ">> {FFFFFF}Não tem ninguém proximo para te escutar !");
    }
    else if(VerificarSeTemPlayer[playerid] >= 2)
    {
        for(new i;i <= MAX_PLAYERS;i++)
        {
            SendClientMessage(i, -1, Texto);
        }
    }

    return 0;
}