SA-MP Forums Archive
[Ajuda] Erro: Menssagem Dupla - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Erro: Menssagem Dupla (/showthread.php?tid=349700)



[Ajuda] Erro: Menssagem Dupla - F_Cinco - 09.06.2012

Bom, ao comprar uma arma na minha loja de armas, dps de escolhida e comprada a SendClientMessage й mostrada 2x, pq isso?

Imagem:


pawn Код:
//===========Loja de Armas Norte===========//
    if(dialogid == LojaDeArmas2)
    {
    if(response)
    {
    if(listitem == 0)
    {
    if(GetPlayerMoney(playerid) < 150) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
    GivePlayerMoney(playerid, -150);
    GivePlayerWeapon(playerid, 24, 100);
    SendClientMessage(playerid, azul,"[LOJA] Vocк comprou uma Desert Eagle.");
    }}}

    if(listitem == 1)
    {
    if(GetPlayerMoney(playerid) < 310) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
    GivePlayerMoney(playerid, -310);
    GivePlayerWeapon(playerid,29,300);
    SendClientMessage(playerid, azul,"[LOJA] Vocк comprou uma MP5.");
    }

    if(listitem == 2)
    {
    if(GetPlayerMoney(playerid) < 1000) return  SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
    GivePlayerMoney(playerid, -1000);
    GivePlayerWeapon(playerid,31,260);
    SendClientMessage(playerid, azul, "[LOJA] Vocк comprou uma M4A1.");
    }

    if(listitem == 3)
    {
    if(GetPlayerMoney(playerid) < 970) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
    GivePlayerMoney(playerid, -970);
    GivePlayerWeapon(playerid,30,210);
    SendClientMessage(playerid, azul,"[LOJA] Vocк comprou uma AK-47.");
    }

    if(listitem == 4)
    {
    if(GetPlayerMoney(playerid) < 1900) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
    GivePlayerMoney(playerid, -1900);
    GivePlayerWeapon(playerid, 34,40);
    SendClientMessage(playerid,azul,"[LOJA] Vocк comprou uma Sniper.");
    }
   
    if(listitem == 5)
    {
    if(GetPlayerMoney(playerid) < 400) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
    GivePlayerMoney(playerid, -400);
    SetPlayerArmour(playerid,80);
    SendClientMessage(playerid, azul, "[LOJA] Vocк comprou um Colete.");
    }
    return 1;
    }



Re: [Ajuda] Erro: Menssagem Dupla - Crueliz0n - 09.06.2012

tente assim:
pawn Код:
//===========Loja de Armas Norte===========//
    if(dialogid == LojaDeArmas2)
    {
    if(response)
    {
    if(listitem == 0)
    {
    if(GetPlayerMoney(playerid) < 150) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
    GivePlayerMoney(playerid, -150);
    GivePlayerWeapon(playerid, 24, 100);
    SendClientMessage(playerid, azul,"[LOJA] Vocк comprou uma Desert Eagle.");
    }

    if(listitem == 1)
    {
    if(GetPlayerMoney(playerid) < 310) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
    GivePlayerMoney(playerid, -310);
    GivePlayerWeapon(playerid,29,300);
    SendClientMessage(playerid, azul,"[LOJA] Vocк comprou uma MP5.");
    }

    if(listitem == 2)
    {
    if(GetPlayerMoney(playerid) < 1000) return  SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
    GivePlayerMoney(playerid, -1000);
    GivePlayerWeapon(playerid,31,260);
    SendClientMessage(playerid, azul, "[LOJA] Vocк comprou uma M4A1.");
    }

    if(listitem == 3)
    {
    if(GetPlayerMoney(playerid) < 970) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
    GivePlayerMoney(playerid, -970);
    GivePlayerWeapon(playerid,30,210);
    SendClientMessage(playerid, azul,"[LOJA] Vocк comprou uma AK-47.");
    }

    if(listitem == 4)
    {
    if(GetPlayerMoney(playerid) < 1900) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
    GivePlayerMoney(playerid, -1900);
    GivePlayerWeapon(playerid, 34,40);
    SendClientMessage(playerid,azul,"[LOJA] Vocк comprou uma Sniper.");
    }

    if(listitem == 5)
    {
    if(GetPlayerMoney(playerid) < 400) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
    GivePlayerMoney(playerid, -400);
    SetPlayerArmour(playerid,80);
    SendClientMessage(playerid, azul, "[LOJA] Vocк comprou um Colete.");
    }
    }
    return 1;
    }



Re: [Ajuda] Erro: Menssagem Dupla - mau.tito - 09.06.2012

Coloca a Mensagem Antes Da Funзao!


Re: [Ajuda] Erro: Menssagem Dupla - F_Cinco - 09.06.2012

Quote:
Originally Posted by BlackDonelly
Посмотреть сообщение
tente assim:
pawn Код:
//===========Loja de Armas Norte===========//
    if(dialogid == LojaDeArmas2)
    {
    if(response)
    {
    if(listitem == 0)
    {
    if(GetPlayerMoney(playerid) < 150) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
    GivePlayerMoney(playerid, -150);
    GivePlayerWeapon(playerid, 24, 100);
    SendClientMessage(playerid, azul,"[LOJA] Vocк comprou uma Desert Eagle.");
    }

    if(listitem == 1)
    {
    if(GetPlayerMoney(playerid) < 310) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
    GivePlayerMoney(playerid, -310);
    GivePlayerWeapon(playerid,29,300);
    SendClientMessage(playerid, azul,"[LOJA] Vocк comprou uma MP5.");
    }

    if(listitem == 2)
    {
    if(GetPlayerMoney(playerid) < 1000) return  SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
    GivePlayerMoney(playerid, -1000);
    GivePlayerWeapon(playerid,31,260);
    SendClientMessage(playerid, azul, "[LOJA] Vocк comprou uma M4A1.");
    }

    if(listitem == 3)
    {
    if(GetPlayerMoney(playerid) < 970) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
    GivePlayerMoney(playerid, -970);
    GivePlayerWeapon(playerid,30,210);
    SendClientMessage(playerid, azul,"[LOJA] Vocк comprou uma AK-47.");
    }

    if(listitem == 4)
    {
    if(GetPlayerMoney(playerid) < 1900) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
    GivePlayerMoney(playerid, -1900);
    GivePlayerWeapon(playerid, 34,40);
    SendClientMessage(playerid,azul,"[LOJA] Vocк comprou uma Sniper.");
    }

    if(listitem == 5)
    {
    if(GetPlayerMoney(playerid) < 400) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
    GivePlayerMoney(playerid, -400);
    SetPlayerArmour(playerid,80);
    SendClientMessage(playerid, azul, "[LOJA] Vocк comprou um Colete.");
    }
    }
    return 1;
    }
Nгo funciona assim, pq tenho q feixar as "if" antes de comeзar os 'listitem'.

Quote:
Originally Posted by mau.tito
Посмотреть сообщение
Coloca a Mensagem Antes Da Funзao!
Se colocar o SendClientMessage antes, quando realizar a compra, n aparecerб que comprou, ou provavelmente irб aparecer quando abrir o dialog.


Re: [Ajuda] Erro: Menssagem Dupla - Crueliz0n - 09.06.2012

os if do dialogid e do reponse fecham antes do ultimo return 1;


Re: [Ajuda] Erro: Menssagem Dupla - EditPawn - 09.06.2012

pawn Код:
//===========Loja de Armas Norte===========//
    if(dialogid == LojaDeArmas2)
    {
        if(!response) return 1;
        switch(listitem)
        {
            case 0:
            {
                if(GetPlayerMoney(playerid) < 150) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
                GivePlayerMoney(playerid, -150);
                GivePlayerWeapon(playerid, 24, 100);
                SendClientMessage(playerid, azul,"[LOJA] Vocк comprou uma Desert Eagle.");
            }
            case 1:
            {
                if(GetPlayerMoney(playerid) < 310) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
                GivePlayerMoney(playerid, -310);
                GivePlayerWeapon(playerid,29,300);
                SendClientMessage(playerid, azul,"[LOJA] Vocк comprou uma MP5.");
            }
            case 2:
            {
                if(GetPlayerMoney(playerid) < 1000) return  SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
                GivePlayerMoney(playerid, -1000);
                GivePlayerWeapon(playerid,31,260);
                SendClientMessage(playerid, azul, "[LOJA] Vocк comprou uma M4A1.");
            }
            case 3:
            {
                if(GetPlayerMoney(playerid) < 970) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
                GivePlayerMoney(playerid, -970);
                GivePlayerWeapon(playerid,30,210);
                SendClientMessage(playerid, azul,"[LOJA] Vocк comprou uma AK-47.");
            }
            case 4:
            {
                if(GetPlayerMoney(playerid) < 1900) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
                GivePlayerMoney(playerid, -1900);
                GivePlayerWeapon(playerid, 34,40);
                SendClientMessage(playerid,azul,"[LOJA] Vocк comprou uma Sniper.");
            }
            case 5:
            {
                if(GetPlayerMoney(playerid) < 400) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
                GivePlayerMoney(playerid, -400);
                SetPlayerArmour(playerid,80);
                SendClientMessage(playerid, azul, "[LOJA] Vocк comprou um Colete.");
            }
        }
        return 1;
    }



Re: [Ajuda] Erro: Menssagem Dupla - F_Cinco - 09.06.2012

Quote:
Originally Posted by BlackDonelly
Посмотреть сообщение
os if do dialogid e do reponse fecham antes do ultimo return 1;
Ok! Feixei eles antes do return 1; como vc falou. mais aн ficou 5 "}" totalizadas, e compilou normal. Dps irei testar, pois agora tenho q sair, quando ao flood n sei, dps testo.

Abraзo!
e vlws pela ajuda.


Re: [Ajuda] Erro: Menssagem Dupla - F_Cinco - 09.06.2012

Quote:
Originally Posted by EditPawn
Посмотреть сообщение
pawn Код:
//===========Loja de Armas Norte===========//
    if(dialogid == LojaDeArmas2)
    {
        if(!response) return 1;
        switch(listitem)
        {
            case 0:
            {
                if(GetPlayerMoney(playerid) < 150) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
                GivePlayerMoney(playerid, -150);
                GivePlayerWeapon(playerid, 24, 100);
                SendClientMessage(playerid, azul,"[LOJA] Vocк comprou uma Desert Eagle.");
            }
            case 1:
            {
                if(GetPlayerMoney(playerid) < 310) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
                GivePlayerMoney(playerid, -310);
                GivePlayerWeapon(playerid,29,300);
                SendClientMessage(playerid, azul,"[LOJA] Vocк comprou uma MP5.");
            }
            case 2:
            {
                if(GetPlayerMoney(playerid) < 1000) return  SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
                GivePlayerMoney(playerid, -1000);
                GivePlayerWeapon(playerid,31,260);
                SendClientMessage(playerid, azul, "[LOJA] Vocк comprou uma M4A1.");
            }
            case 3:
            {
                if(GetPlayerMoney(playerid) < 970) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
                GivePlayerMoney(playerid, -970);
                GivePlayerWeapon(playerid,30,210);
                SendClientMessage(playerid, azul,"[LOJA] Vocк comprou uma AK-47.");
            }
            case 4:
            {
                if(GetPlayerMoney(playerid) < 1900) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
                GivePlayerMoney(playerid, -1900);
                GivePlayerWeapon(playerid, 34,40);
                SendClientMessage(playerid,azul,"[LOJA] Vocк comprou uma Sniper.");
            }
            case 5:
            {
                if(GetPlayerMoney(playerid) < 400) return SendClientMessage(playerid, vermelho, "[LOJA] Dinheiro Insuficiente!");
                GivePlayerMoney(playerid, -400);
                SetPlayerArmour(playerid,80);
                SendClientMessage(playerid, azul, "[LOJA] Vocк comprou um Colete.");
            }
        }
        return 1;
    }
oL, por switch parece ser muito mais organizado e descomplicado... ao chegar da Igreja irei testar essa opзгo.

Abraзo!

@EDIT


Fiz em Switch e funcionou perfeitamente, sem bug algum.
Vlws pelas ajudas.

@Closed.