[Ajuda] Mensagem floodando
#1

Pessoal estou com um problema que nгo consigo resolver,

Coloquei duas mensagens no Onplayerspawn e elas estгo flodando.

AMOR
AMOR

COVARDE
COVARDE

Desta maneira

Nгo sei o motivo... Quem poder dar uma forзa!

pawn Код:
if(JogadorQMorreu[playerid] == true && INFO_P[playerid][JOGADOR_PRESO_P] == 0) // Hospital pуs morte
    {
        if(INFO_P[playerid][PLANO_DE_SAUDE_P] == 0)
        {
            SetPlayerInterior(playerid, 0);
            new randmaca = random(sizeof(MacaAposMorrer));
            SetPlayerPos(playerid, MacaAposMorrer[randmaca][0], MacaAposMorrer[randmaca][1], MacaAposMorrer[randmaca][2]);
            SetPlayerFacingAngle(playerid, MacaAposMorrer[randmaca][3]);
            SendClientMessage(playerid, 0x95FF00FF, "[HOSPITAL]: "Branco"Vocк se acidentou e como nгo tem um plano de saъde, ficarб 30 segundos na maca atй se recuperar.");
            TextDrawShowForPlayer(playerid, Texto_Tempo_Hospital[playerid]);
            Jogador_Serecuperando[playerid] = true;
            Minutos_TempoHospital[playerid] = 0;
            Segundos_TempoHospital[playerid] = 30;
            ClearAnimations(playerid);
            ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
            Salvar_Contas(playerid);
            return true;
        }
        if(INFO_P[playerid][PLANO_DE_SAUDE_P] == 1)
        {
            new randrecuperar = random(sizeof(MacaAposSeRecuperar));
            SetPlayerPos(playerid, MacaAposSeRecuperar[randrecuperar][0], MacaAposSeRecuperar[randrecuperar][1], MacaAposSeRecuperar[randrecuperar][2]);
            SetPlayerFacingAngle(playerid, MacaAposSeRecuperar[randrecuperar][3]);
            SendClientMessage(playerid, 0x95FF00FF, "[HOSPITAL]: "Branco"Vocк se acidentou e o seu plano de saъde arcou com todas as despesas.");
        }
    }
Reply
#2

OnPlayerSpawn estб sendo chamada duas vezes, ja vi isto ocorrendo aqui nesta board sу nгo me lembro aonde..
Reply
#3

uma pergunta ta usando settimer pra alguma coisa?
Reply
#4

Quote:
Originally Posted by LiiPe
Посмотреть сообщение
uma pergunta ta usando settimer pra alguma coisa?
Nгo estou usando settime, e eu percebi que onplayerspawn estб setando duas veses

olha meu onplayerspawn completo

pawn Код:
public OnPlayerSpawn(playerid)
{
    TogglePlayerSpectating(playerid, false);
    SkinsJogadores(playerid);
    Cores_jogadores(playerid);
   
    if(INFO_P[playerid][LOCAL_NASCIMENTO_P] == 0 && INFO_P[playerid][JOGADOR_PRESO_P] == 0) // SPAWN CIVIL
    {
        SetPlayerInterior(playerid, 0);
        SetPlayerPos(playerid, 1338.7610, -1820.8293, 13.5572);
        SetPlayerFacingAngle(playerid, 267.9267);
    }
    else if(INFO_P[playerid][LOCAL_NASCIMENTO_P] == 1 && INFO_P[playerid][JOGADOR_PRESO_P] == 0) // ULTIMO LOCAL
    {
        SetPlayerInterior(playerid, INFO_P[playerid][ULTIMO_INTERIOR_P]);
        SetSpawnInfo(playerid, 1, SkinsJogadores(playerid), INFO_P[playerid][ULTIMA_POSX_P], INFO_P[playerid][ULTIMA_POSY_P], INFO_P[playerid][ULTIMA_POSZ_P], INFO_P[playerid][ULTIMO_ANGULO_P], 0, 0, 0, 0, 0, 0);
    }
    else if(INFO_P[playerid][LOCAL_NASCIMENTO_P] == 2 && INFO_P[playerid][JOGADOR_PRESO_P] == 0) // HQ - PROFISSOES
    {
        if(INFO_P[playerid][PROFISSAO_P] == 1) //pizzaboy
        {
            SetPlayerInterior(playerid, 5);
            SetPlayerPos(playerid, 368.7952, -115.1770, 1001.4922);
            SetPlayerFacingAngle(playerid, 180.4866);
            SkinsJogadores(playerid);
            Cores_jogadores(playerid);
        }
        else if(INFO_P[playerid][PROFISSAO_P] == 2) //cet
        {
            SetPlayerInterior(playerid, 0);
            SetPlayerPos(playerid, 2773.2039, -1625.8854, 10.9272);
            SetPlayerFacingAngle(playerid, 355.7406);
            SkinsJogadores(playerid);
            Cores_jogadores(playerid);
        }
    }
    else if(INFO_P[playerid][LOCAL_NASCIMENTO_P] == 3 && INFO_P[playerid][JOGADOR_PRESO_P] == 0) // CASAS
    {

    }
    if(JogadorQMorreu[playerid] == true && INFO_P[playerid][JOGADOR_PRESO_P] == 0) // Hospital pуs morte
    {
        if(INFO_P[playerid][PLANO_DE_SAUDE_P] == 0)
        {
            SetPlayerInterior(playerid, 0);
            new randmaca = random(sizeof(MacaAposMorrer));
            SetPlayerPos(playerid, MacaAposMorrer[randmaca][0], MacaAposMorrer[randmaca][1], MacaAposMorrer[randmaca][2]);
            SetPlayerFacingAngle(playerid, MacaAposMorrer[randmaca][3]);
            SendClientMessage(playerid, 0x95FF00FF, "[HOSPITAL]: "Branco"Vocк se acidentou e como nгo tem um plano de saъde, ficarб 30 segundos na maca atй se recuperar.");
            TextDrawShowForPlayer(playerid, Texto_Tempo_Hospital[playerid]);
            Jogador_Serecuperando[playerid] = true;
            Minutos_TempoHospital[playerid] = 0;
            Segundos_TempoHospital[playerid] = 30;
            ClearAnimations(playerid);
            ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
            Salvar_Contas(playerid);
            return true;
        }
        if(INFO_P[playerid][PLANO_DE_SAUDE_P] == 1)
        {
            new randrecuperar = random(sizeof(MacaAposSeRecuperar));
            SetPlayerPos(playerid, MacaAposSeRecuperar[randrecuperar][0], MacaAposSeRecuperar[randrecuperar][1], MacaAposSeRecuperar[randrecuperar][2]);
            SetPlayerFacingAngle(playerid, MacaAposSeRecuperar[randrecuperar][3]);
            SendClientMessage(playerid, 0x95FF00FF, "[HOSPITAL]: "Branco"Vocк se acidentou e o seu plano de saъde arcou com todas as despesas.");
        }
    }
    if(INFO_P[playerid][JOGADOR_PRESO_P] == 1)
    {
        TextDrawShowForPlayer(playerid, TempoCadeiaT[playerid]);
        if(INFO_P[playerid][LOCAL_PRESO_P] == 1)
        {
            SetPlayerInterior(playerid, 1);
            SetPlayerPos(playerid, 2146.8123, 1611.1268, 1000.9688);
            SetPlayerFacingAngle(playerid, 11.2993);
        }
    }
    return true;
}
Reply
#5

Isso acontece por causa do toggleplayerspectating que chama a funзгo onplayerspawn quando tu sai de spec.
Reply
#6

Quote:
Originally Posted by PT
Посмотреть сообщение
Isso acontece por causa do toggleplayerspectating que chama a funзгo onplayerspawn quando tu sai de spec.
mas pq ele chamaria 2 vzs se ele ta retornando a false ? n entendi !
Reply
#7

Quote:
Originally Posted by Petrick™
Посмотреть сообщение
Nгo estou usando settime, e eu percebi que onplayerspawn estб setando duas veses

olha meu onplayerspawn completo

pawn Код:
public OnPlayerSpawn(playerid)
{
    TogglePlayerSpectating(playerid, false);
    SkinsJogadores(playerid);
    Cores_jogadores(playerid);
   
    if(INFO_P[playerid][LOCAL_NASCIMENTO_P] == 0 && INFO_P[playerid][JOGADOR_PRESO_P] == 0) // SPAWN CIVIL
    {
        SetPlayerInterior(playerid, 0);
        SetPlayerPos(playerid, 1338.7610, -1820.8293, 13.5572);
        SetPlayerFacingAngle(playerid, 267.9267);
    }
    else if(INFO_P[playerid][LOCAL_NASCIMENTO_P] == 1 && INFO_P[playerid][JOGADOR_PRESO_P] == 0) // ULTIMO LOCAL
    {
        SetPlayerInterior(playerid, INFO_P[playerid][ULTIMO_INTERIOR_P]);
        SetSpawnInfo(playerid, 1, SkinsJogadores(playerid), INFO_P[playerid][ULTIMA_POSX_P], INFO_P[playerid][ULTIMA_POSY_P], INFO_P[playerid][ULTIMA_POSZ_P], INFO_P[playerid][ULTIMO_ANGULO_P], 0, 0, 0, 0, 0, 0);
    }
    else if(INFO_P[playerid][LOCAL_NASCIMENTO_P] == 2 && INFO_P[playerid][JOGADOR_PRESO_P] == 0) // HQ - PROFISSOES
    {
        if(INFO_P[playerid][PROFISSAO_P] == 1) //pizzaboy
        {
            SetPlayerInterior(playerid, 5);
            SetPlayerPos(playerid, 368.7952, -115.1770, 1001.4922);
            SetPlayerFacingAngle(playerid, 180.4866);
            SkinsJogadores(playerid);
            Cores_jogadores(playerid);
        }
        else if(INFO_P[playerid][PROFISSAO_P] == 2) //cet
        {
            SetPlayerInterior(playerid, 0);
            SetPlayerPos(playerid, 2773.2039, -1625.8854, 10.9272);
            SetPlayerFacingAngle(playerid, 355.7406);
            SkinsJogadores(playerid);
            Cores_jogadores(playerid);
        }
    }
    else if(INFO_P[playerid][LOCAL_NASCIMENTO_P] == 3 && INFO_P[playerid][JOGADOR_PRESO_P] == 0) // CASAS
    {

    }
    if(JogadorQMorreu[playerid] == true && INFO_P[playerid][JOGADOR_PRESO_P] == 0) // Hospital pуs morte
    {
        if(INFO_P[playerid][PLANO_DE_SAUDE_P] == 0)
        {
            SetPlayerInterior(playerid, 0);
            new randmaca = random(sizeof(MacaAposMorrer));
            SetPlayerPos(playerid, MacaAposMorrer[randmaca][0], MacaAposMorrer[randmaca][1], MacaAposMorrer[randmaca][2]);
            SetPlayerFacingAngle(playerid, MacaAposMorrer[randmaca][3]);
            SendClientMessage(playerid, 0x95FF00FF, "[HOSPITAL]: "Branco"Vocк se acidentou e como nгo tem um plano de saъde, ficarб 30 segundos na maca atй se recuperar.");
            TextDrawShowForPlayer(playerid, Texto_Tempo_Hospital[playerid]);
            Jogador_Serecuperando[playerid] = true;
            Minutos_TempoHospital[playerid] = 0;
            Segundos_TempoHospital[playerid] = 30;
            ClearAnimations(playerid);
            ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
            Salvar_Contas(playerid);
            return true;
        }
        if(INFO_P[playerid][PLANO_DE_SAUDE_P] == 1)
        {
            new randrecuperar = random(sizeof(MacaAposSeRecuperar));
            SetPlayerPos(playerid, MacaAposSeRecuperar[randrecuperar][0], MacaAposSeRecuperar[randrecuperar][1], MacaAposSeRecuperar[randrecuperar][2]);
            SetPlayerFacingAngle(playerid, MacaAposSeRecuperar[randrecuperar][3]);
            SendClientMessage(playerid, 0x95FF00FF, "[HOSPITAL]: "Branco"Vocк se acidentou e o seu plano de saъde arcou com todas as despesas.");
        }
    }
    if(INFO_P[playerid][JOGADOR_PRESO_P] == 1)
    {
        TextDrawShowForPlayer(playerid, TempoCadeiaT[playerid]);
        if(INFO_P[playerid][LOCAL_PRESO_P] == 1)
        {
            SetPlayerInterior(playerid, 1);
            SetPlayerPos(playerid, 2146.8123, 1611.1268, 1000.9688);
            SetPlayerFacingAngle(playerid, 11.2993);
        }
    }
    return true;
}
Acho que seria isto, tenta remover e testa para ver..

PHP код:
SetSpawnInfo(playerid1SkinsJogadores(playerid), INFO_P[playerid][ULTIMA_POSX_P], INFO_P[playerid][ULTIMA_POSY_P], INFO_P[playerid][ULTIMA_POSZ_P], INFO_P[playerid][ULTIMO_ANGULO_P], 000000); 
Reply
#8

Quote:
Originally Posted by LiiPe
Посмотреть сообщение
mas pq ele chamaria 2 vzs se ele ta retornando a false ? n entendi !
Й muito simples de entender, pensa comigo.

O que acontece quando tu sai de spec?

Tu literalmente que spawna de novo, dai o motivo de chamar 2x.

Como fixar?

PHP код:
public OnPlayerSpawn(playerid)
{
    if(
INFO_P[playerid][JOGADOR_LOGADO_P] == false)
    {
        
TogglePlayerSpectating(playeridfalse);
    }
    else
    {
        
SkinsJogadores(playerid);
        
Cores_jogadores(playerid);
        
        if(
INFO_P[playerid][LOCAL_NASCIMENTO_P] == && INFO_P[playerid][JOGADOR_PRESO_P] == 0// SPAWN CIVIL
        
{
            
SetPlayerInterior(playerid0);
            
SetPlayerPos(playerid1338.7610, -1820.829313.5572);
            
SetPlayerFacingAngle(playerid267.9267);
        }
        else if(
INFO_P[playerid][LOCAL_NASCIMENTO_P] == && INFO_P[playerid][JOGADOR_PRESO_P] == 0// ULTIMO LOCAL
        
{
            
SetPlayerInterior(playeridINFO_P[playerid][ULTIMO_INTERIOR_P]);
            
SetSpawnInfo(playerid1SkinsJogadores(playerid), INFO_P[playerid][ULTIMA_POSX_P], INFO_P[playerid][ULTIMA_POSY_P], INFO_P[playerid][ULTIMA_POSZ_P], INFO_P[playerid][ULTIMO_ANGULO_P], 000000);
        }
        else if(
INFO_P[playerid][LOCAL_NASCIMENTO_P] == && INFO_P[playerid][JOGADOR_PRESO_P] == 0// HQ - PROFISSOES
        
{
            if(
INFO_P[playerid][PROFISSAO_P] == 1//pizzaboy
            
{
                
SetPlayerInterior(playerid5);
                
SetPlayerPos(playerid368.7952, -115.17701001.4922);
                
SetPlayerFacingAngle(playerid180.4866);
                
SkinsJogadores(playerid);
                
Cores_jogadores(playerid);
            }
            else if(
INFO_P[playerid][PROFISSAO_P] == 2//cet
            
{
                
SetPlayerInterior(playerid0);
                
SetPlayerPos(playerid2773.2039, -1625.885410.9272);
                
SetPlayerFacingAngle(playerid355.7406);
                
SkinsJogadores(playerid);
                
Cores_jogadores(playerid);
            }
        }
        else if(
INFO_P[playerid][LOCAL_NASCIMENTO_P] == && INFO_P[playerid][JOGADOR_PRESO_P] == 0// CASAS
        
{
        }
        if(
JogadorQMorreu[playerid] == true && INFO_P[playerid][JOGADOR_PRESO_P] == 0// Hospital pуs morte
        
{
            if(
INFO_P[playerid][PLANO_DE_SAUDE_P] == 0)
            {
                
SetPlayerInterior(playerid0);
                new 
randmaca random(sizeof(MacaAposMorrer));
                
SetPlayerPos(playeridMacaAposMorrer[randmaca][0], MacaAposMorrer[randmaca][1], MacaAposMorrer[randmaca][2]);
                
SetPlayerFacingAngle(playeridMacaAposMorrer[randmaca][3]);
                
SendClientMessage(playerid0x95FF00FF"[HOSPITAL]: "Branco"Vocк se acidentou e como nгo tem um plano de saъde, ficarб 30 segundos na maca atй se recuperar.");
                
TextDrawShowForPlayer(playeridTexto_Tempo_Hospital[playerid]);
                
Jogador_Serecuperando[playerid] = true;
                
Minutos_TempoHospital[playerid] = 0;
                
Segundos_TempoHospital[playerid] = 30;
                
ClearAnimations(playerid);
                
ApplyAnimation(playerid"CRACK""crckdeth2"4.010000);
                
Salvar_Contas(playerid);
                return 
true;
            }
            if(
INFO_P[playerid][PLANO_DE_SAUDE_P] == 1)
            {
                new 
randrecuperar random(sizeof(MacaAposSeRecuperar));
                
SetPlayerPos(playeridMacaAposSeRecuperar[randrecuperar][0], MacaAposSeRecuperar[randrecuperar][1], MacaAposSeRecuperar[randrecuperar][2]);
                
SetPlayerFacingAngle(playeridMacaAposSeRecuperar[randrecuperar][3]);
                
SendClientMessage(playerid0x95FF00FF"[HOSPITAL]: "Branco"Vocк se acidentou e o seu plano de saъde arcou com todas as despesas.");
            }
        }
        if(
INFO_P[playerid][JOGADOR_PRESO_P] == 1)
        {
            
TextDrawShowForPlayer(playeridTempoCadeiaT[playerid]);
            if(
INFO_P[playerid][LOCAL_PRESO_P] == 1)
            {
                
SetPlayerInterior(playerid1);
                
SetPlayerPos(playerid2146.81231611.12681000.9688);
                
SetPlayerFacingAngle(playerid11.2993);
            }
        }
    }
    return 
true;

O que mudei?

Criei uma nova variavel que ele vai ter de usar para quando o player spawnar pela primeira vez completamente no servidor ou seja apos colocar a senha mas antes de spawnar "INFO_P[playerid][JOGADOR_LOGADO_P]" para assim evitar ser chamada 2x.

p.s: testa la Patrick e depois me da algum feedback.
Reply
#9

Quote:
Originally Posted by PT
Посмотреть сообщение
Й muito simples de entender, pensa comigo.

O que acontece quando tu sai de spec?

Tu literalmente que spawna de novo, dai o motivo de chamar 2x.

Como fixar?

PHP код:
public OnPlayerSpawn(playerid)
{
    if(
INFO_P[playerid][JOGADOR_LOGADO_P] == false)
    {
        
TogglePlayerSpectating(playeridfalse);
    }
    else
    {
        
SkinsJogadores(playerid);
        
Cores_jogadores(playerid);
        
        if(
INFO_P[playerid][LOCAL_NASCIMENTO_P] == && INFO_P[playerid][JOGADOR_PRESO_P] == 0// SPAWN CIVIL
        
{
            
SetPlayerInterior(playerid0);
            
SetPlayerPos(playerid1338.7610, -1820.829313.5572);
            
SetPlayerFacingAngle(playerid267.9267);
        }
        else if(
INFO_P[playerid][LOCAL_NASCIMENTO_P] == && INFO_P[playerid][JOGADOR_PRESO_P] == 0// ULTIMO LOCAL
        
{
            
SetPlayerInterior(playeridINFO_P[playerid][ULTIMO_INTERIOR_P]);
            
SetSpawnInfo(playerid1SkinsJogadores(playerid), INFO_P[playerid][ULTIMA_POSX_P], INFO_P[playerid][ULTIMA_POSY_P], INFO_P[playerid][ULTIMA_POSZ_P], INFO_P[playerid][ULTIMO_ANGULO_P], 000000);
        }
        else if(
INFO_P[playerid][LOCAL_NASCIMENTO_P] == && INFO_P[playerid][JOGADOR_PRESO_P] == 0// HQ - PROFISSOES
        
{
            if(
INFO_P[playerid][PROFISSAO_P] == 1//pizzaboy
            
{
                
SetPlayerInterior(playerid5);
                
SetPlayerPos(playerid368.7952, -115.17701001.4922);
                
SetPlayerFacingAngle(playerid180.4866);
                
SkinsJogadores(playerid);
                
Cores_jogadores(playerid);
            }
            else if(
INFO_P[playerid][PROFISSAO_P] == 2//cet
            
{
                
SetPlayerInterior(playerid0);
                
SetPlayerPos(playerid2773.2039, -1625.885410.9272);
                
SetPlayerFacingAngle(playerid355.7406);
                
SkinsJogadores(playerid);
                
Cores_jogadores(playerid);
            }
        }
        else if(
INFO_P[playerid][LOCAL_NASCIMENTO_P] == && INFO_P[playerid][JOGADOR_PRESO_P] == 0// CASAS
        
{
        }
        if(
JogadorQMorreu[playerid] == true && INFO_P[playerid][JOGADOR_PRESO_P] == 0// Hospital pуs morte
        
{
            if(
INFO_P[playerid][PLANO_DE_SAUDE_P] == 0)
            {
                
SetPlayerInterior(playerid0);
                new 
randmaca random(sizeof(MacaAposMorrer));
                
SetPlayerPos(playeridMacaAposMorrer[randmaca][0], MacaAposMorrer[randmaca][1], MacaAposMorrer[randmaca][2]);
                
SetPlayerFacingAngle(playeridMacaAposMorrer[randmaca][3]);
                
SendClientMessage(playerid0x95FF00FF"[HOSPITAL]: "Branco"Vocк se acidentou e como nгo tem um plano de saъde, ficarб 30 segundos na maca atй se recuperar.");
                
TextDrawShowForPlayer(playeridTexto_Tempo_Hospital[playerid]);
                
Jogador_Serecuperando[playerid] = true;
                
Minutos_TempoHospital[playerid] = 0;
                
Segundos_TempoHospital[playerid] = 30;
                
ClearAnimations(playerid);
                
ApplyAnimation(playerid"CRACK""crckdeth2"4.010000);
                
Salvar_Contas(playerid);
                return 
true;
            }
            if(
INFO_P[playerid][PLANO_DE_SAUDE_P] == 1)
            {
                new 
randrecuperar random(sizeof(MacaAposSeRecuperar));
                
SetPlayerPos(playeridMacaAposSeRecuperar[randrecuperar][0], MacaAposSeRecuperar[randrecuperar][1], MacaAposSeRecuperar[randrecuperar][2]);
                
SetPlayerFacingAngle(playeridMacaAposSeRecuperar[randrecuperar][3]);
                
SendClientMessage(playerid0x95FF00FF"[HOSPITAL]: "Branco"Vocк se acidentou e o seu plano de saъde arcou com todas as despesas.");
            }
        }
        if(
INFO_P[playerid][JOGADOR_PRESO_P] == 1)
        {
            
TextDrawShowForPlayer(playeridTempoCadeiaT[playerid]);
            if(
INFO_P[playerid][LOCAL_PRESO_P] == 1)
            {
                
SetPlayerInterior(playerid1);
                
SetPlayerPos(playerid2146.81231611.12681000.9688);
                
SetPlayerFacingAngle(playerid11.2993);
            }
        }
    }
    return 
true;

O que mudei?

Criei uma nova variavel que ele vai ter de usar para quando o player spawnar pela primeira vez completamente no servidor ou seja apos colocar a senha mas antes de spawnar "INFO_P[playerid][JOGADOR_LOGADO_P]" para assim evitar ser chamada 2x.

p.s: testa la Patrick e depois me da algum feedback.
tendi Vlw
Reply
#10

Continua o mesmo problema..
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)