[Ajuda] Problema com SendClientMessage - Flood.
#1

Bom eu tentei de diversas maneira, porйm ele sempre faz flood.

pawn Код:
if(fexist(Arquivo2))
    {
        if(DOF2_GetInt(Arquivo2, "ano") <= Ano && DOF2_GetInt(Arquivo2, "mes") <= Mes && DOF2_GetInt(Arquivo2, "day") <= Dia)
        {
                DOF2_RemoveFile(Arquivo2);
                SendClientMessage(playerid, COR_DARKVERDE, "Vocк foi desbanido do servidor.");
                format(string, 128, "Motivo do Ban: [%s] / Admin Ban [%s]", DOF2_GetString(Arquivo2, "Relato"), DOF2_GetString(Arquivo2, "ADM"));
                SendClientMessage(playerid, COR_LIMA, string);
                return 0;
            }
            else
        {
        Kick(playerid);
       
        GameTextForPlayer(playerid, "~b~Voce foi banido ~n~~r~pelo Anti xiter!.", 10000, 3);
        SetPlayerPos(playerid, 1175.6014,-1179.9524,87.0427);
       
        if(IsPlayerConnected(playerid))
        {
        Kick(playerid);
        format(str, sizeof(str),"Data do desbanimento [%s]", DOF2_GetString(Arquivo2, "DiaDesban"));
        format(str2, sizeof(str2),"Motivo do Banimento [%s]", DOF2_GetString(Arquivo2, "Relato"));
       
        SendClientMessage(playerid, COR_VERMELHO2, str);
        SendClientMessage(playerid, COR_VERMELHO2, str2);

        return Kick(playerid);
        }
        }
    }
Alguйm sabe um jeito para evitar isso ?
Reply
#2

@Perdгo, erro meu. Mas como assim floodando?
Reply
#3

@Edit: Ele flooda exemplo:
Data do desbanimento ...
Motivo do Banimento ...
Data do desbanimento ...
Motivo do Banimento ...
Data do desbanimento ...
Motivo do Banimento ...
Data do desbanimento ...
Motivo do Banimento ...
Data do desbanimento ...
Motivo do Banimento ...
Data do desbanimento ...
Motivo do Banimento ...

Server Close the Connect.



Ele acaba demorando um pouco pra kika o player que acaba fazendo um flood.
Reply
#4

pawn Код:
if(fexist(Arquivo2))
    {
        if(DOF2_GetInt(Arquivo2, "ano") <= Ano && DOF2_GetInt(Arquivo2, "mes") <= Mes && DOF2_GetInt(Arquivo2, "day") <= Dia)
        {
                DOF2_RemoveFile(Arquivo2);
                SendClientMessage(playerid, COR_DARKVERDE, "Vocк foi desbanido do servidor.");
                format(string, 128, "Motivo do Ban: [%s] / Admin Ban [%s]", DOF2_GetString(Arquivo2, "Relato"), DOF2_GetString(Arquivo2, "ADM"));
                SendClientMessage(playerid, COR_LIMA, string);
                return 0;
            }
            else
        {
        Kick(playerid);
       
        GameTextForPlayer(playerid, "~b~Voce foi banido ~n~~r~pelo Anti xiter!.", 10000, 3);
        SetPlayerPos(playerid, 1175.6014,-1179.9524,87.0427);
        format(str, sizeof(str),"Data do desbanimento [%s]", DOF2_GetString(Arquivo2, "DiaDesban"));
        format(str2, sizeof(str2),"Motivo do Banimento [%s]", DOF2_GetString(Arquivo2, "Relato"));
       
        SendClientMessage(playerid, COR_VERMELHO2, str);
        SendClientMessage(playerid, COR_VERMELHO2, str2);

        return 1;
        }
    }
Reply
#5

Agora ele nгo manda nenhuma mensagem, ele kika antes.
Reply
#6

essa funзгo estб funcionando dentro de algum loop?
Reply
#7

pawn Код:
if(fexist(Arquivo2))
    {
        if(DOF2_GetInt(Arquivo2, "ano") <= Ano && DOF2_GetInt(Arquivo2, "mes") <= Mes && DOF2_GetInt(Arquivo2, "day") <= Dia)
        {
                DOF2_RemoveFile(Arquivo2);
                SendClientMessage(playerid, COR_DARKVERDE, "Vocк foi desbanido do servidor.");
                format(string, 128, "Motivo do Ban: [%s] / Admin Ban [%s]", DOF2_GetString(Arquivo2, "Relato"), DOF2_GetString(Arquivo2, "ADM"));
                SendClientMessage(playerid, COR_LIMA, string);
                return 0;
            }
            else
        {
       
        GameTextForPlayer(playerid, "~b~Voce foi banido ~n~~r~pelo Anti xiter!.", 10000, 3);
        SetPlayerPos(playerid, 1175.6014,-1179.9524,87.0427);
        format(str, sizeof(str),"Data do desbanimento [%s]", DOF2_GetString(Arquivo2, "DiaDesban"));
        format(str2, sizeof(str2),"Motivo do Banimento [%s]", DOF2_GetString(Arquivo2, "Relato"));
       
        SendClientMessage(playerid, COR_VERMELHO2, str);
        SendClientMessage(playerid, COR_VERMELHO2, str2);
        Kick(playerid);
        return 1;
        }
    }
Reply
#8

Tente criar uma booleana quando o comando/funзгo for executada...

Exemplo:

PHP код:
new bool:SemFlood[MAX_PLAYERS]; 
PHP код:
if(fexist(Arquivo2))
{
   if(
DOF2_GetInt(Arquivo2"ano") <= Ano && DOF2_GetInt(Arquivo2"mes") <= Mes && DOF2_GetInt(Arquivo2"day") <= Dia)
   {
      
DOF2_RemoveFile(Arquivo2);
      
SendClientMessage(playeridCOR_DARKVERDE"Vocк foi desbanido do servidor.");
      
format(string128"Motivo do Ban: [%s] / Admin Ban [%s]"DOF2_GetString(Arquivo2"Relato"), DOF2_GetString(Arquivo2"ADM"));
      
SendClientMessage(playeridCOR_LIMAstring);
      return 
0;
   }
   else
   {
      
      if(
SemFlood[playerid] == true) return 1// Se a booleana estiver ativada, nгo executar o comando a seguir. 
      
GameTextForPlayer(playerid"~b~Voce foi banido ~n~~r~pelo Anti xiter!."100003);
      
SetPlayerPos(playerid1175.6014,-1179.9524,87.0427);
      
format(strsizeof(str),"Data do desbanimento [%s]"DOF2_GetString(Arquivo2"DiaDesban"));
      
format(str2sizeof(str2),"Motivo do Banimento [%s]"DOF2_GetString(Arquivo2"Relato"));
       
      
SendClientMessage(playeridCOR_VERMELHO2str);
      
SendClientMessage(playeridCOR_VERMELHO2str2);
      
SemFlood[playerid] = true// Ativa a booleana.
      
Kick(playerid);
      return 
1;
   }

Creio que irб funcionar, poderб adicionar:
PHP код:
SemFlood[playerid] = false
Quando o usuбrio deslogar do servidor, boa sorte.
Reply
#9

Quote:
Originally Posted by Ley
Посмотреть сообщение
Tente criar uma booleana quando o comando/funзгo for executada...

Exemplo:

PHP код:
new bool:SemFlood[MAX_PLAYERS]; 
PHP код:
if(fexist(Arquivo2))
{
   if(
DOF2_GetInt(Arquivo2"ano") <= Ano && DOF2_GetInt(Arquivo2"mes") <= Mes && DOF2_GetInt(Arquivo2"day") <= Dia)
   {
      
DOF2_RemoveFile(Arquivo2);
      
SendClientMessage(playeridCOR_DARKVERDE"Vocк foi desbanido do servidor.");
      
format(string128"Motivo do Ban: [%s] / Admin Ban [%s]"DOF2_GetString(Arquivo2"Relato"), DOF2_GetString(Arquivo2"ADM"));
      
SendClientMessage(playeridCOR_LIMAstring);
      return 
0;
   }
   else
   {
      
      if(
SemFlood[playerid] == true) return 1// Se a booleana estiver ativada, nгo executar o comando a seguir. 
      
GameTextForPlayer(playerid"~b~Voce foi banido ~n~~r~pelo Anti xiter!."100003);
      
SetPlayerPos(playerid1175.6014,-1179.9524,87.0427);
      
format(strsizeof(str),"Data do desbanimento [%s]"DOF2_GetString(Arquivo2"DiaDesban"));
      
format(str2sizeof(str2),"Motivo do Banimento [%s]"DOF2_GetString(Arquivo2"Relato"));
       
      
SendClientMessage(playeridCOR_VERMELHO2str);
      
SendClientMessage(playeridCOR_VERMELHO2str2);
      
SemFlood[playerid] = true// Ativa a booleana.
      
Kick(playerid);
      return 
1;
   }

Creio que irб funcionar, poderб adicionar:
PHP код:
SemFlood[playerid] = false
Quando o usuбrio deslogar do servidor, boa sorte.
Bom depois de todas as tentativas, a sua funcionou da seguinte maneira,ele estava kikando antes da mensagem.
Coloquei um settime com 0 Segundos, e deu para mandar a mensagem corretamente.
Dei REP pra todos por tentarem/me ajudarem!
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)