Error with dialog.
#1

Im on a roll at first and then i get an error : >
error:
Код:
:\Users\iLcke\Desktop\zomg\gamemodes\IRP1.pwn(23515) : error 030: compound statement not closed at the end of file (started at line 23466)
(The error line is in bold)
Dialog:
Код:
if(dialogid == BUY_WEAPON) // Buy Weapon at ammunation
{
if(response)
{
if(listitem == 0)
{
if(GetPlayerMoney(playerid) < 1200) return SendClientMessage(playerid, 0xFFFFFF, "You don't have enough cash.");
AntiHack(playerid, -1200);
GivePlayerWeapon(playerid, 24, 100);
}
else if(listitem == 1)
{
if(GetPlayerMoney(playerid) < 600) return SendClientMessage(playerid, 0xFFFFFF, "You don't have enough cash.");
AntiHack(playerid, -600);
GivePlayerWeapon(playerid, 23, 100);
}
else if(listitem == 2)
{
if(GetPlayerMoney(playerid) < 1000) return SendClientMessage(playerid, 0xFFFFFF, "You don't have enough cash.");
AntiHack(playerid, -1000);
GivePlayerWeapon(playerid, 25, 100);
}
else if(listitem == 3)
{
if(GetPlayerMoney(playerid) < 1500) return SendClientMessage(playerid, 0xFFFFFF, "You don't have enough cash.");
AntiHack(playerid, -1500);
GivePlayerWeapon(playerid, 29, 100);
}
else if(listitem == 4)
{
if(GetPlayerMoney(playerid) < 2000) return SendClientMessage(playerid, 0xFFFFFF, "You don't have enough cash.");
AntiHack(playerid, -2000);
GivePlayerWeapon(playerid, 31, 100);
}
else if(listitem == 5)
{
if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid, 0xFFFFFF, "You don't have enough cash.");
AntiHack(playerid, -100);
SetPlayerArmour(playerid, 100);
}
else if(listitem == 6)
{
if(PlayerInfo[playerid][pJob] != 12){SendClientMessage(playerid, COLOR_RED, "ERROR: Gun Dealer's Only!");
if(PlayerInfo[playerid][pCash] < 10000){SendClientMessage(playerid, COLOR_RED, "ERROR: Not enough money!");
if(materials[playerid] >= 10){SendClientMessage(playerid, COLOR_RED, "ERROR: You already have maximum supplies!");
AntiHack(playerid, -10000);
materials[playerid] = 10;
SendClientMessage(playerid, COLOR_RED, "You bought 10 Boxes of supplies");
}
}
}
return 1;
}
Thanks to the ones who atleast try to help also.
Reply
#2

try taking out a bracket or moving the brackets with the tab button
Reply
#3

did, didnt work.
Reply
#4

Double post, i found what it was, after i did some editting to it, i broke the following up;
if(PlayerInfo[playerid][pJob] != 12){SendClientMessage(playerid, COLOR_RED, "ERROR: Gun Dealer's Only!");
if(PlayerInfo[playerid][pCash] < 10000){SendClientMessage(playerid, COLOR_RED, "ERROR: Not enough money!");
if(materials[playerid] >= 10){SendClientMessage(playerid, COLOR_RED, "ERROR: You already have maximum supplies!");

and found i was missing 3 } thanks anyway
Reply
#5

You're missing one bracket, to my belief. And you need to close up the statements at the end.

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == BUY_WEAPON) // Buy Weapon at ammunation
    {
        if(response)
        {
            if(listitem == 0)
            {

                GivePlayerWeapon(playerid, 24, 100);
            }
            else if(listitem == 1)
            {

                GivePlayerWeapon(playerid, 23, 100);
            }
            else if(listitem == 2)
            {

                GivePlayerWeapon(playerid, 25, 100);
            }
            else if(listitem == 3)
            {

                GivePlayerWeapon(playerid, 29, 100);
            }
            else if(listitem == 4)
            {

                GivePlayerWeapon(playerid, 31, 100);
            }
            else if(listitem == 5)
            {

                SetPlayerArmour(playerid, 100);
            }
            else if(listitem == 6)
            {

            }
        }
    }
    return 1;
}
And I suggest switching over to case.

pawn Код:
if(dialogid == 5 && response)
    {
        switch(listitem)
        {
             case 0: // bla bla
             {
                 return 1;
             }
             case 1: // bla bla
             {
                 return 1;
             }
             case 2: // bla bla
             {
                 return 1;
            }
            case 3: // bla bla
            {
                return 1;
            }
            case 4: // bla bla
            {
                return 1;
            }
            case 5: // bla bla
            {
                return 1;
            }
        } // end switch
    } // end if dialogid == 5
Reply
#6

It was the } brackets i was talking about, with out them it would look like this;
Код:
if(PlayerInfo[playerid][pJob] != 12)
{
SendClientMessage(playerid, COLOR_RED, "ERROR: Gun Dealer's Only!");
if(PlayerInfo[playerid][pCash] < 10000)
{
SendClientMessage(playerid, COLOR_RED, "ERROR: Not enough money!");
if(materials[playerid] >= 10)
{
SendClientMessage(playerid, COLOR_RED, "ERROR: You already have maximum supplies!");
But meh


and @ case's, i usally use listitem, but, would that actually effect performance?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)