SA-MP Forums Archive
Dialog issues - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Dialog issues (/showthread.php?tid=450843)



Dialog issues - itsCody - 14.07.2013

I made a simple dialog, but every time you close it it keeps popping back up :l I have no idea what I'm missing or what I left out, it really irritates the players and me

pawn Код:
if(dialogid == DIALOG_AMMUN)
        {
        if(response)
        {
        if(listitem == 0)
        {
        if(GetPlayerMoney(playerid) > 250)
        {
                GivePlayerMoney(playerid,-250);
                GivePlayerWeapon(playerid, 22, 60);
        }else{SendClientMessage(playerid, COLOR_ERROR, "You don't have enough money to purchase this item.");}
        }
        if(listitem == 1)
        {
        if(GetPlayerMoney(playerid) > 250)
        {
                GivePlayerMoney(playerid,-250);
                GivePlayerWeapon(playerid, 23, 60);
        }else{SendClientMessage(playerid, COLOR_ERROR, "You don't have enough money to purchase this item.");}
        }
        if(listitem == 2)
        {
        if(GetPlayerMoney(playerid) > 500)
        {
                GivePlayerMoney(playerid,-500);
                GivePlayerWeapon(playerid, 24, 30);
        }else{SendClientMessage(playerid, COLOR_ERROR, "You don't have enough money to purchase this item.");}
        }
        if(listitem == 3)
        {
        if(GetPlayerMoney(playerid) > 550)
        {
                GivePlayerMoney(playerid,-550);
                GivePlayerWeapon(playerid, 26, 160);
        }else{SendClientMessage(playerid, COLOR_ERROR, "You don't have enough money to purchase this item.");}
        }
        if(listitem == 4)
        {
        if(GetPlayerMoney(playerid) > 625)
        {
                GivePlayerMoney(playerid,-625);
                GivePlayerWeapon(playerid, 27, 160);
        }else{SendClientMessage(playerid, COLOR_ERROR, "You don't have enough money to purchase this item.");}
        }
        if(listitem == 5)
        {
        if(GetPlayerMoney(playerid) > 700)
        {
                GivePlayerMoney(playerid,-700);
                GivePlayerWeapon(playerid, 28, 160);
        }else{SendClientMessage(playerid, COLOR_ERROR, "You don't have enough money to purchase this item.");}
        }
        if(listitem == 6)
        {
        if(GetPlayerMoney(playerid) > 725)
        {
                GivePlayerMoney(playerid,-725);
                GivePlayerWeapon(playerid, 32, 160);
        }else{SendClientMessage(playerid, COLOR_ERROR, "You don't have enough money to purchase this item.");}
        }
        if(listitem == 7)
        {
        if(GetPlayerMoney(playerid) > 750)
        {
                GivePlayerMoney(playerid,-750);
                GivePlayerWeapon(playerid, 29, 160);
        }else{SendClientMessage(playerid, COLOR_ERROR, "You don't have enough money to purchase this item.");}
        }
        if(listitem == 8)
        {
        if(GetPlayerMoney(playerid) > 825)
        {
                GivePlayerMoney(playerid,-825);
                GivePlayerWeapon(playerid, 30, 160);
        }else{SendClientMessage(playerid, COLOR_ERROR, "You don't have enough money to purchase this item.");}
        }
        if(listitem == 9)
        {
        if(GetPlayerMoney(playerid) > 900)
        {
                GivePlayerMoney(playerid,-900);
                GivePlayerWeapon(playerid, 31, 160);
        }else{SendClientMessage(playerid, COLOR_ERROR, "You don't have enough money to purchase this item.");}
        }
        if(listitem == 10)
        {
        if(GetPlayerMoney(playerid) > 1500)
        {
                GivePlayerMoney(playerid,-1500);
                SetPlayerArmour(playerid,100);
        }else{SendClientMessage(playerid, COLOR_ERROR, "You don't have enough money to purchase this item.");}
        }
        }
        }



Re: Dialog issues - Vexus - 15.07.2013

Okay, for one, that is messy code, OCD attack.

The problem is you forgot to return it under "if(response)"

You'll need to do something like this.

JUST AN EXAMPLE.

pawn Код:
if(dialogid == DIALOG_BLEH)
{
    if(response)
    {
        if(listitem == 0)
        {
            ClearAnimations(playerid);
        }
    }
    return 1; //This thing right here, will close the dialog!
}
So basically, if the response is the second button, then it will return it, and close the dialog!

If this helps, let me know.