Dialog errors? -
jackx3rx - 11.03.2014
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.
Re: Dialog errors? -
arakuta - 11.03.2014
Using a good indentation, would help you in this case.
You've just forgot an opening bracket, right after
if(response).
Re: Dialog errors? -
jackx3rx - 11.03.2014
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.
Re: Dialog errors? -
jackx3rx - 11.03.2014
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;
}
AW: Dialog errors? -
jackx3rx - 11.03.2014
Bump
Re: Dialog errors? -
Matess - 11.03.2014
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;
}
Re: Dialog errors? -
jackx3rx - 11.03.2014
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.
Re: Dialog errors? -
Matess - 11.03.2014
Show me the lines with errors..
Re: Dialog errors? -
jackx3rx - 11.03.2014
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
}
Re: Dialog errors? -
Matess - 11.03.2014
ah right... change this:
on this