Dialog errors?
#1

I've been having issues with my dialog and I'm trying to script an ammunation system so you can buy weapons with /buy inside an ammunation. I've done it all except the dialog appearing where I get two errors.

The command which shows players the selected dialog:
pawn Код:
CMD:buy(playerid,params[])
{
    if(IsPlayerInRangeOfPoint(playerid,45.0,308.059,-141.153,999.601)) // ammunation
    {
        if(PlayerInfo[playerid][pWepLicense] == 0) return SendClientMessage(playerid,COLOR_GREY,"You require a weapons license before purchasing weapons.");
        else
        ShowPlayerDialog(playerid,5,DIALOG_STYLE_LIST,"Ammunation","Colt .45 - $350\nGlock .17 - $1200\nRemington 1100 - $550\n.223 HMR Rifle - $600","Purchase","Exit");
        return 1;
    }
    return 1;
}
^^ Works fine I believe -- no errors.

pawn Код:
if(dialogid == 5) // LINE 989
        {
            if(response)
            switch(listitem)
            {
                    case 0:
                    {
                        if(GetPlayerMoney(playerid) >= 350) return SendClientMessage(playerid,COLOR_GREY,"You cannot afford this weapon.");
                        GivePlayerMoney(playerid,-350);
                        GivePlayerWeapon(playerid,22,200);
                        SendClientMessage(playerid,COLOR_GREY,"You have purchased a Colt .45!");
                        return 1;
                        }
                    case 1:
                    {
                        if(GetPlayerMoney(playerid) >= 1200) return SendClientMessage(playerid,COLOR_GREY,"You cannot afford this weapon.");
                        GivePlayerMoney(playerid,-1200);
                        GivePlayerWeapon(playerid,24,150);
                        SendClientMessage(playerid,COLOR_GREY,"You have purchased a Glock .17!");
                        return 1;
                        }
                    case 2:
                    {
                        if(GetPlayerMoney(playerid) >= 550) return SendClientMessage(playerid,COLOR_GREY,"You cannot afford this weapon.");
                        GivePlayerMoney(playerid,-550);
                        GivePlayerWeapon(playerid,25,50);
                        SendClientMessage(playerid,COLOR_GREY,"You have purchased a Remington 1100!");
                        return 1;
                        }
                    case 3:
                    {
                        if(GetPlayerMoney(playerid) >= 600) return SendClientMessage(playerid,COLOR_GREY,"You cannot afford this weapon.");
                        GivePlayerMoney(playerid,-600);
                        GivePlayerWeapon(playerid,33,90);
                        SendClientMessage(playerid,COLOR_GREY,"You have purchased a .223 HMR Rifle!");
                        return 1;
                        }
                }
            }
        return 1;
}
I haven't shown the whole OnDialogResponse because 2/3 of it is my register system but if it's required then I will post it.

Errors:
pawn Код:
C:\Users\Jack\Desktop\SF RP\gamemodes\sfrp.pwn(989) : error 002: only a single statement (or expression) can follow each "case"
C:\Users\Jack\Desktop\SF RP\gamemodes\sfrp.pwn(989 -- 990) : error 029: invalid expression, assumed zero
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.
Any help will certainly be appreciated and I'm willing to rep them.
Reply
#2

Using a good indentation, would help you in this case.

You've just forgot an opening bracket, right after if(response).
Reply
#3

After I placed the opening bracket after if(response)

pawn Код:
C:\Users\Jack\Desktop\SF RP\gamemodes\sfrp.pwn(989) : error 002: only a single statement (or expression) can follow each "case"
C:\Users\Jack\Desktop\SF RP\gamemodes\sfrp.pwn(989 -- 990) : error 029: invalid expression, assumed zero
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.
Reply
#4

Here is the full OnDialogResponse code if necessary:

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch( dialogid )
    {
        case DIALOG_REGISTER:
        {
            if (!response) return Kick(playerid);
            if(response)
            {
                if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Register", "You have entered an invalid password.", "Register", "Quit");
                new INI:File = INI_Open(UserPath(playerid));
                INI_SetTag(File,"data");
                INI_WriteInt(File,"Password",udb_hash(inputtext));
                INI_WriteInt(File,"Cash",0);
                INI_WriteInt(File,"Admin",0);
                INI_WriteInt(File,"Kills",0);
                INI_WriteInt(File,"Deaths",0);
                INI_WriteInt(File,"Hours",0);
                INI_WriteInt(File,"Skin",0);
                INI_WriteInt(File,"Level",0);
                INI_WriteInt(File,"Health",0);
                INI_WriteInt(File,"Armour",0);
                INI_WriteInt(File,"Weapon License",0);
                INI_WriteInt(File,"Weapon0",0);
                INI_WriteInt(File,"Ammo0",0);
                INI_WriteInt(File,"Weapon1",0);
                INI_WriteInt(File,"Ammo1",0);
                INI_WriteInt(File,"Weapon2",0);
                INI_WriteInt(File,"Ammo2",0);
                INI_WriteInt(File,"Weapon3",0);
                INI_WriteInt(File,"Ammo3",0);
                INI_WriteInt(File,"Weapon4",0);
                INI_WriteInt(File,"Ammo4",0);
                INI_WriteInt(File,"Weapon5",0);
                INI_WriteInt(File,"Ammo5",0);
                INI_WriteInt(File,"Weapon6",0);
                INI_WriteInt(File,"Ammo6",0);
                INI_WriteInt(File,"Weapon7",0);
                INI_WriteInt(File,"Ammo7",0);
                INI_WriteInt(File,"Weapon8",0);
                INI_WriteInt(File,"Ammo8",0);
                INI_WriteInt(File,"Weapon9",0);
                INI_WriteInt(File,"Ammo9",0);
                INI_WriteInt(File,"Weapon10",0);
                INI_WriteInt(File,"Ammo10",0);
                INI_WriteInt(File,"Weapon11",0);
                INI_WriteInt(File,"Ammo11",0);
                INI_WriteInt(File,"Weapon12",0);
                INI_WriteInt(File,"Ammo12",0);
                INI_Close(File);
                SpawnPlayer(playerid);
                SetCameraBehindPlayer(playerid);
            }
        }

        case DIALOG_LOGIN:
        {
            if ( !response ) return Kick ( playerid );
            if( response )
            {
                if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
                {
                    INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
                    GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
                    SpawnPlayer(playerid);
                    SetCameraBehindPlayer(playerid);
                    SetPlayerColor(playerid, -1);
                    SetPlayerHealth(playerid,PlayerInfo[playerid][pHealth]);
                    SetPlayerArmour(playerid,PlayerInfo[playerid][pArmour]);
                    SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]);
                }
                else
                {
                    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "The password you entered is incorrect.", "Login", "Quit");
                }
                return 1;
            }
        }
        // ammunation dialog
        if(dialogid == 5)
        {
            if(response)
            {
                switch(listitem)
                {
                    case 0:
                    {
                        if(GetPlayerMoney(playerid) >= 350) return SendClientMessage(playerid,COLOR_GREY,"You cannot afford this weapon.");
                        GivePlayerMoney(playerid,-350);
                        GivePlayerWeapon(playerid,22,200);
                        SendClientMessage(playerid,COLOR_GREY,"You have purchased a Colt .45!");
                        return 1;
                        }
                    case 1:
                    {
                        if(GetPlayerMoney(playerid) >= 1200) return SendClientMessage(playerid,COLOR_GREY,"You cannot afford this weapon.");
                        GivePlayerMoney(playerid,-1200);
                        GivePlayerWeapon(playerid,24,150);
                        SendClientMessage(playerid,COLOR_GREY,"You have purchased a Glock .17!");
                        return 1;
                        }
                    case 2:
                    {
                        if(GetPlayerMoney(playerid) >= 550) return SendClientMessage(playerid,COLOR_GREY,"You cannot afford this weapon.");
                        GivePlayerMoney(playerid,-550);
                        GivePlayerWeapon(playerid,25,50);
                        SendClientMessage(playerid,COLOR_GREY,"You have purchased a Remington 1100!");
                        return 1;
                        }
                    case 3:
                    {
                        if(GetPlayerMoney(playerid) >= 600) return SendClientMessage(playerid,COLOR_GREY,"You cannot afford this weapon.");
                        GivePlayerMoney(playerid,-600);
                        GivePlayerWeapon(playerid,33,90);
                        SendClientMessage(playerid,COLOR_GREY,"You have purchased a .223 HMR Rifle!");
                        return 1;
                        }
                    }
                if(!response) return ShowPlayerDialog(playerid,-1,DIALOG_STYLE_MSGBOX,"caption","info","button1","button2");
            }
        }
        return 1;
}
Reply
#5

Bump
Reply
#6

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch( dialogid )
    {
        case DIALOG_REGISTER:
        {
            if (!response) return Kick(playerid);
            if(response)
            {
                if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Register", "You have entered an invalid password.", "Register", "Quit");
                new INI:File = INI_Open(UserPath(playerid));
                INI_SetTag(File,"data");
                INI_WriteInt(File,"Password",udb_hash(inputtext));
                INI_WriteInt(File,"Cash",0);
                INI_WriteInt(File,"Admin",0);
                INI_WriteInt(File,"Kills",0);
                INI_WriteInt(File,"Deaths",0);
                INI_WriteInt(File,"Hours",0);
                INI_WriteInt(File,"Skin",0);
                INI_WriteInt(File,"Level",0);
                INI_WriteInt(File,"Health",0);
                INI_WriteInt(File,"Armour",0);
                INI_WriteInt(File,"Weapon License",0);
                INI_WriteInt(File,"Weapon0",0);
                INI_WriteInt(File,"Ammo0",0);
                INI_WriteInt(File,"Weapon1",0);
                INI_WriteInt(File,"Ammo1",0);
                INI_WriteInt(File,"Weapon2",0);
                INI_WriteInt(File,"Ammo2",0);
                INI_WriteInt(File,"Weapon3",0);
                INI_WriteInt(File,"Ammo3",0);
                INI_WriteInt(File,"Weapon4",0);
                INI_WriteInt(File,"Ammo4",0);
                INI_WriteInt(File,"Weapon5",0);
                INI_WriteInt(File,"Ammo5",0);
                INI_WriteInt(File,"Weapon6",0);
                INI_WriteInt(File,"Ammo6",0);
                INI_WriteInt(File,"Weapon7",0);
                INI_WriteInt(File,"Ammo7",0);
                INI_WriteInt(File,"Weapon8",0);
                INI_WriteInt(File,"Ammo8",0);
                INI_WriteInt(File,"Weapon9",0);
                INI_WriteInt(File,"Ammo9",0);
                INI_WriteInt(File,"Weapon10",0);
                INI_WriteInt(File,"Ammo10",0);
                INI_WriteInt(File,"Weapon11",0);
                INI_WriteInt(File,"Ammo11",0);
                INI_WriteInt(File,"Weapon12",0);
                INI_WriteInt(File,"Ammo12",0);
                INI_Close(File);
                SpawnPlayer(playerid);
                SetCameraBehindPlayer(playerid);
            }
        }

        case DIALOG_LOGIN:
        {
            if ( !response ) return Kick ( playerid );
            if( response )
            {
                if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
                {
                    INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
                    GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
                    SpawnPlayer(playerid);
                    SetCameraBehindPlayer(playerid);
                    SetPlayerColor(playerid, -1);
                    SetPlayerHealth(playerid,PlayerInfo[playerid][pHealth]);
                    SetPlayerArmour(playerid,PlayerInfo[playerid][pArmour]);
                    SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]);
                }
                else
                {
                    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "The password you entered is incorrect.", "Login", "Quit");
                }
                return 1;
            }
        }
        // ammunation dialog
        if(dialogid == 5)
        {
            if(response)
            {
                switch(listitem)
                {
                    case 0:
                    {
                        if(GetPlayerMoney(playerid) >= 350) return SendClientMessage(playerid,COLOR_GREY,"You cannot afford this weapon.");
                        GivePlayerMoney(playerid,-350);
                        GivePlayerWeapon(playerid,22,200);
                        SendClientMessage(playerid,COLOR_GREY,"You have purchased a Colt .45!");
                        return 1;
                        }
                    case 1:
                    {
                        if(GetPlayerMoney(playerid) >= 1200) return SendClientMessage(playerid,COLOR_GREY,"You cannot afford this weapon.");
                        GivePlayerMoney(playerid,-1200);
                        GivePlayerWeapon(playerid,24,150);
                        SendClientMessage(playerid,COLOR_GREY,"You have purchased a Glock .17!");
                        return 1;
                        }
                    case 2:
                    {
                        if(GetPlayerMoney(playerid) >= 550) return SendClientMessage(playerid,COLOR_GREY,"You cannot afford this weapon.");
                        GivePlayerMoney(playerid,-550);
                        GivePlayerWeapon(playerid,25,50);
                        SendClientMessage(playerid,COLOR_GREY,"You have purchased a Remington 1100!");
                        return 1;
                        }
                    case 3:
                    {
                        if(GetPlayerMoney(playerid) >= 600) return SendClientMessage(playerid,COLOR_GREY,"You cannot afford this weapon.");
                        GivePlayerMoney(playerid,-600);
                        GivePlayerWeapon(playerid,33,90);
                        SendClientMessage(playerid,COLOR_GREY,"You have purchased a .223 HMR Rifle!");
                        return 1;
                        }
                    }
                if(!response) return ShowPlayerDialog(playerid,-1,DIALOG_STYLE_MSGBOX,"caption","info","button1","button2");
            }
        }
   }//close the main switch
        return 1;
}
Reply
#7

I done that and got these..

pawn Код:
C:\Users\Jack\Desktop\SF RP\gamemodes\sfrp.pwn(989) : error 002: only a single statement (or expression) can follow each "case"
C:\Users\Jack\Desktop\SF RP\gamemodes\sfrp.pwn(989 -- 990) : error 029: invalid expression, assumed zero
C:\Users\Jack\Desktop\SF RP\gamemodes\sfrp.pwn(1031) : warning 209: function "S@@_OnDialogResponse" should return a value
C:\Users\Jack\Desktop\SF RP\gamemodes\sfrp.pwn(1032) : error 010: invalid function or declaration
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


3 Errors.
Reply
#8

Show me the lines with errors..
Reply
#9

pawn Код:
if(dialogid == 5) // 989
        {                         // 990
            if(response)
            {
                switch(listitem)
                {
                    case 0:
                    {
                        if(GetPlayerMoney(playerid) >= 350) return SendClientMessage(playerid,COLOR_GREY,"You cannot afford this weapon.");
                        GivePlayerMoney(playerid,-350);
                        GivePlayerWeapon(playerid,22,200);
                        SendClientMessage(playerid,COLOR_GREY,"You have purchased a Colt .45!");
                        return 1;
                        }
                    case 1:
                    {
                        if(GetPlayerMoney(playerid) >= 1200) return SendClientMessage(playerid,COLOR_GREY,"You cannot afford this weapon.");
                        GivePlayerMoney(playerid,-1200);
                        GivePlayerWeapon(playerid,24,150);
                        SendClientMessage(playerid,COLOR_GREY,"You have purchased a Glock .17!");
                        return 1;
                        }
                    case 2:
                    {
                        if(GetPlayerMoney(playerid) >= 550) return SendClientMessage(playerid,COLOR_GREY,"You cannot afford this weapon.");
                        GivePlayerMoney(playerid,-550);
                        GivePlayerWeapon(playerid,25,50);
                        SendClientMessage(playerid,COLOR_GREY,"You have purchased a Remington 1100!");
                        return 1;
                        }
                    case 3:
                    {
                        if(GetPlayerMoney(playerid) >= 600) return SendClientMessage(playerid,COLOR_GREY,"You cannot afford this weapon.");
                        GivePlayerMoney(playerid,-600);
                        GivePlayerWeapon(playerid,33,90);
                        SendClientMessage(playerid,COLOR_GREY,"You have purchased a .223 HMR Rifle!");
                        return 1;
                        }
                    }
                if(!response) return ShowPlayerDialog(playerid,-1,DIALOG_STYLE_MSGBOX,"caption","info","button1","button2");
            }
        }

   }//close the main switch // 1032
        return 1; // 1033
}
Reply
#10

ah right... change this:
pawn Код:
if(dialogid == 5)
on this
pawn Код:
case 5:
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)