Portal SAMP
[Ajuda] Flood SendClientMessageToAll - 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: [Ajuda] Flood SendClientMessageToAll (/showthread.php?tid=884)

Páginas: 1 2


Flood SendClientMessageToAll - LeleziiN - 10/03/2021

Bom teria alguém para mim ajuda a resolver esse bug? Pois essas mensagens faz o servidor fechar. Já olhei o sistema inteiro para ver oq estava de errado mais não encontrei nada, pelo menos eu acho. Se poderem mim ajuda agradeço muito +rep

[Imagem: sa-mp-403.png?width=690&height=390]


RE: Resolver esse Bug - Gustaf_LeanBR - 10/03/2021

Procura o codigo em que esta essa mensagem e poste aqui, só assim vamos conseguir saber qual é o problema.


RE: Resolver esse Bug - LeleziiN - 11/03/2021

Tá ir mais conseguir resolver
Código PHP:
forward LiberaCandidatura();
public 
LiberaCandidatura()
{
    new 
d[128];
    
dini_Set("Presidente.txt""TempoInscricao","86400000");
    
dini_Set("Presidente.txt""TempoVotacao","0");
    for(new 
0TOTALVAGASPRESIDENTE++)
    {
    
    format(d,sizeof(d),"Vaga%d",I);
        
dini_Set("Presidente.txt"d"Ninguem");
        
format(d,sizeof(d),"Numero%d",I);
        
dini_Set("Presidente.txt"d"0");
        
format(d,sizeof(d),"Votos%d",I);
        
dini_Set("Presidente.txt"d"0");
    }
    
SendClientMessageToAll(verde"| INFO | O lançamento de candidaturas à presidencia foi liberado, confira no Palácio Presidencial TSVR!");
    
dini_Set("Presidente.txt""Data""0");
    return 
1;




RE: Resolver esse Bug - xbruno1000x - 11/03/2021

(11/03/2021 09:07)LeleziiN Escreveu: Tá ir mais conseguir resolver
Código PHP:
forward LiberaCandidatura();
public 
LiberaCandidatura()
{
    new 
d[128];
    
dini_Set("Presidente.txt""TempoInscricao","86400000");
    
dini_Set("Presidente.txt""TempoVotacao","0");
    for(new 
0TOTALVAGASPRESIDENTE++)
    {
    
    format(d,sizeof(d),"Vaga%d",I);
        
dini_Set("Presidente.txt"d"Ninguem");
        
format(d,sizeof(d),"Numero%d",I);
        
dini_Set("Presidente.txt"d"0");
        
format(d,sizeof(d),"Votos%d",I);
        
dini_Set("Presidente.txt"d"0");
    }
    
SendClientMessageToAll(verde"| INFO | O lançamento de candidaturas à presidencia foi liberado, confira no Palácio Presidencial TSVR!");
    
dini_Set("Presidente.txt""Data""0");
    return 
1;


Deixe a solução no tópico para ajudar outros membros com esse problema futuramente


RE: Flood SendClientMessageToAll - LeleziiN - 11/03/2021

Era essa parte que estava faltando no sistema, mais toda pessoa que entrava no servidor aparecia essa mensagem
Código PHP:
if(strcmp(dini_Get("Presidente.txt""Atual"), PlayerName(playerid)) == 0)
    {
    
    new A[128];
    
    format(Asizeof(A), "| INFO | O(A) presidente %s acabou de spawnar!"PlayerName(playerid));
    
    SendClientMessageToAll(COR_ORKUTA);
    
    SetPlayerColor(playeridCOLOR_PRESIDENTE);//COLOR_PREFEITO
    
    //SetPlayerPos(playerid, 1481.1006,-1768.9030,18.7958);
    
    SetPlayerPos(playerid1485.3932,-1781.7405,21.0903);
    } 

ai tive que criar a profissão e por essa parte 
Código PHP:
dini_Int("Presidente.txt""Atual"); 

No local do spawn da profissão


RE: Flood SendClientMessageToAll - LeleziiN - 12/03/2021

Bom achei que avia resolvido esse problema mais não resolve, se poderem mim ajuda postarei o código inteiro


RE: Flood SendClientMessageToAll - k2bi_YT - 12/03/2021

Onde essa callback está sendo chamada?

Código PHP:
LiberaCandidatura() 



RE: Flood SendClientMessageToAll - LeleziiN - 13/03/2021

Está sendo chama aqui
Código PHP:
public TempoLimiteXxX()
{
    new 
T[128];
    if(
dini_Int("Presidente.txt","TempoInscricao") >= 1000)
    {
        
format(Tsizeof(T), "%d", (dini_Int("Presidente.txt","TempoInscricao") - 1000));
           dini_Set("Presidente.txt""TempoInscricao"T);
           if(dini_Int("Presidente.txt","TempoInscricao") == 0)
           {
               SendClientMessageToAll(verde"| INFO | O tempo para lançamento das candidaturas terminou, as votações foram iniciadas no Palácio Presidencial TSVR!");
               dini_Set("Presidente.txt""TempoVotacao","86400000");
        }
    }
    else if(
dini_Int("Presidente.txt","TempoVotacao") >= 1000)
    {
        
format(Tsizeof(T), "%d", (dini_Int("Presidente.txt","TempoVotacao") - 1000));
           dini_Set("Presidente.txt""TempoVotacao"T);
           if(dini_Int("Presidente.txt","TempoVotacao") == 0)
           {
               SendClientMessageToAll(verde"| INFO | O tempo para votação à presidente terminou, confira o resultado no Palácio Presidencial TSVR!");
            for(new 
0MAX_PLAYERS++)
            {
            
    if(strcmp(dini_Get("Presidente.txt""Atual"), PlayerName(I)) == 0)
                {
                    
SetPlayerColor(IBranco);
                }
            }
               new VI 0VA = -1;
            for(new 
0TOTALVAGASPRESIDENTE++)
             {
             
    new d[20];
             
    format(d,sizeof(d),"Votos%d",I);
             
    new VJ dini_Int("Presidente.txt"d);
             
    if(VJ VI)
             
    {
                    
VI VJ;
                     
VA I;
                 }
            }

            new 
d[50];
            new 
Dia,Mes,Ano;
            
getdate(Ano,Mes,Dia);
            
Mes ++;
            
Dia --;
            if(
Mes == 13Mes 1;
            if(
Dia == 0Dia 30;
            
format(d,sizeof(d),"%02d/%02d/%02d",Dia,Mes,Ano);
             
dini_Set("Presidente.txt""Data"d);
             
dini_Set("Presidente.txt""TempoInscricao","0");
             
dini_Set("Presidente.txt""TempoVotacao","0");
             
dini_Set("Presidente.txt""Imposto","0");
             
dini_Set("Presidente.txt""RendaExtra","0");
             
dini_Set("Presidente.txt""TempoRespawn","30");
             
dini_Set("Presidente.txt""Veiculo","0");
             
dini_Set("Presidente.txt""Cor1","0");
             
dini_Set("Presidente.txt""Cor2","0");
             
dini_Set("Presidente.txt""Mensagem","Nada");
             
dini_Set("Presidente.txt""NomeVeiculo","Nenhum");
             
dini_Set("Presidente.txt""VeiculoTrancado","1");
        
    dini_Set("Presidente.txt""Icone""58");

            for(new 
0MAX_PLAYERS++)
            {
                if(
IsPlayerConnected(I))
                {
    
                RemovePlayerMapIcon(I29);
    
                SetPlayerMapIcon(I291481.0585,-1771.6819,18.7958dini_Int("Presidente.txt""Icone"), 1); //Palácio TSVR
                
}
    
          }
            if(
VA == -1LiberaCandidatura();
            else
            {
            
    format(d,sizeof(d),"Vaga%d"VA);
            
    dini_Set("Presidente.txt""Atual"dini_Get("Presidente.txt"d));
            }
             for(new 
0TOTALVAGASPRESIDENTE++)
             {
             
    format(d,sizeof(d),"Vaga%d",I);
                 
dini_Set("Presidente.txt"d"Ninguem");
                 
format(d,sizeof(d),"Numero%d",I);
                 
dini_Set("Presidente.txt"d"0");
                 
format(d,sizeof(d),"Votos%d",I);
                 
dini_Set("Presidente.txt"d"0");
            }
        }
    }
     new 
tmp[256], tmpx[256];
    new 
Dia,Mes,Ano;
    
getdate(Ano,Mes,Dia);
    
format(tmpsizeof(tmp), "%s"dini_Get("Presidente.txt""Data"));
    
format(tmpxsizeof(tmpx),"%02d/%02d/%02d",Dia,Mes,Ano);
    if(
strcmp(tmptmpx) == 0LiberaCandidatura();
    return 
1;




RE: Flood SendClientMessageToAll - k2bi_YT - 13/03/2021

Você criou variáveis que nem estão sendo utilizadas em outra parte. No caso, a variável "VI" está sendo usada somente para armazenar o um valor dentro do loop, e o valor não é inteiro e sim uma string. Reveja essa parte e faça novamente com um bom seguimento de uso.
Código PHP:
for(new 0TOTALVAGASPRESIDENTE++)
             {
                 new 
d[20];
                 
format(d,sizeof(d),"Votos%d",I);
                 new 
VJ dini_Int("Presidente.txt"d);
                 if(
VJ VI)
                 {
                    
VI VJ;
                     
VA I;
                 }
            } 

A callback está sendo chamada 2x nessa função e nada está interrompendo ela:

Aqui:
Código PHP:
if(VA == -1LiberaCandidatura(); 

E aqui:
Código PHP:
if(strcmp(tmptmpx) == 0LiberaCandidatura(); 
// Essa função não está sendo usado corretamente

Isso faz ela aparecer a mensagem que há nela 2x.

Você deve revisar/refazer essa função TempoLimiteXxX e checar onde ela também está sendo chamada. Dependendo da callback onde ela foi citada por Exemplo: OnPlayerUpDate ela ficara sendo solicitada constantemente. Verificar também se ela não está dentro de algum loop.


RE: Flood SendClientMessageToAll - LeleziiN - 13/03/2021

(13/03/2021 09:59)k2bi_YT Escreveu: Você criou variáveis que nem estão sendo utilizadas em outra parte. No caso, a variável "VI" está sendo usada somente para armazenar o um valor dentro do loop, e o valor não é inteiro e sim uma string. Reveja essa parte e faça novamente com um bom seguimento de uso.
Código PHP:
for(new 0TOTALVAGASPRESIDENTE++)
             {
                 new d[20];
                 format(d,sizeof(d),"Votos%d",I);
                 new VJ dini_Int("Presidente.txt"d);
                 if(VJ VI)
                 {
                    VI VJ;
                     VA I;
                 }
            

A callback está sendo chamada 2x nessa função e nada está interrompendo ela:

Aqui:
Código PHP:
if(VA == -1LiberaCandidatura(); 

E aqui:
Código PHP:
if(strcmp(tmptmpx) == 0LiberaCandidatura(); 
// Essa função não está sendo usado corretamente

Isso faz ela aparecer a mensagem que há nela 2x.

Você deve revisar/refazer essa função TempoLimiteXxX e checar onde ela também está sendo chamada. Dependendo da callback onde ela foi citada por Exemplo: OnPlayerUpDate ela ficara sendo solicitada constantemente. Verificar também se ela não está dentro de algum loop.

Bom eu olhuei se tinha alguma coisa dela no OnPlayerUpDate e não tem nada, e procurei TempoLimiteXxX pra ver se estava sendo chama em algun outro lugar e tbm nada, só tem o settimer dela no OnGameModeInit

Código PHP:
TempoPresidente SetTimer("TempoLimiteXxX"10001);