dialog help please -
Lajko1 - 18.12.2009
guys i know mybe this is wrong topic but i need help with those dialogs i read tutorial how to make dialog ''DIALOG_LIST'' but it wont work for me,here is the code OnPlayerEnterStreamedCheckpoint and OnDialogResponse
enter cp
Код:
public OnPlayerEnterStreamedCheckpoint(playerid, streamid)
{
if(streamid == CopSaleCP)
{
if(gTeam[playerid] != TEAM_COP)
{
SendClientMessage(playerid,0xFF9900AA,"Nothing For You Here Sir!");
return 1;
}
new string2[256];
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
format(string2,sizeof string2,"Welcome Officer %s ! Anything for You ?",playername);
ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,string2,"Tazer $355\nDonut $30\nShotgun $156\nArrmor $100","Buy","Cancel");
return 1;
}
and here is the code OnDialogResponse
Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1)
{
if(response)
{
new message[256+1];
if(listitem == 0) // TAZER
{
if(GetPlayerMoney(playerid) <= TazerPrice)
{
SendClientMessage(playerid, 0xFF9900AA,"You Don't Have Enough Money To Buy A Tazer!");
return 1;
}
if(HaveTazer[playerid] == true)
{
SendClientMessage(playerid,0xFF9900AA,"You Already Have Tazer!");
return 1;
}
if(GetPlayerMoney(playerid) >= TazerPrice)
{
format(message, 256, "You Bought A Tazer Now You Can Use /taze [playerid] On Wanted Players!", listitem);
SendClientMessage(playerid,0x33CCFFAA,message);
GivePlayerMoney(playerid,-TazerPrice);
HaveTazer[playerid] = true;
return 1;
}
if(listitem == 1) // DONUT
{
if(GetPlayerMoney(playerid) <= DonutPrice)
{
SendClientMessage(playerid, 0xFF9900AA,"You Don't Have Enough Money To Buy A Donut!");
return 1;
}
if(GetPlayerMoney(playerid) >= DonutPrice)
{
format(message, 256, "You Bought A Donut Now You Can Use /donut To Eat A Donut And It Will Refill Your Health!", listitem);
SendClientMessage(playerid, 0x33CCFFAA, message);
GivePlayerMoney(playerid,-DonutPrice);
return 1;
}
if(listitem == 2) // SHOTGUN
{
if(GetPlayerMoney(playerid) <= ShotgunPrice)
{
SendClientMessage(playerid, 0xFF9900AA,"You Don't Have Enough Money To Buy A Shotgun!");
return 1;
}
if(GetPlayerMoney(playerid) >= ShotgunPrice)
{
format(message, 256, "You Bought A 15 Shotgun Bullets,Be Careful This Is Not A Toy!", listitem);
SendClientMessage(playerid, 0x33CCFFAA, message);
GivePlayerWeapon(playerid,25,15);
GivePlayerMoney(playerid,-DonutPrice);
return 1;
}
if(listitem == 3) // ARRMOR
{
new Float:PlayersArmour;
GetPlayerArmour(playerid, PlayersArmour);
if(GetPlayerMoney(playerid) <= ArrmorPrice)
{
SendClientMessage(playerid, 0xFF9900AA,"You Don't Have Enough Money To Buy Arrmor!");
return 1;
}
if(PlayersArmour >= 100)
{
SendClientMessage(playerid,0xFF9900AA,"Your Arrmor Is Full!");
return 1;
}
else
{
format(message, 256, "You Bought Arrmor!", listitem);
SendClientMessage(playerid, 0x33CCFFAA, message);
SetPlayerArmour(playerid,100);
GivePlayerMoney(playerid,-ArrmorPrice);
return 1;
}
}
}
}
}
}
}
return 1;
}
when i enter a Checkpoint it shows me the DIALOG - thats OK,when i buy TAZER i get it - Thats OK , but when i want to buy ''Donut'',''Shotgun'',''Arrmor'' There is no messages and effects ... nothing happens if i want to buy those 3 things it only work for tazer,can u help pelase guys, cuz i really need this
Ty for any help!
Re: dialog help please -
Joe Staff - 18.12.2009
Because of your poor indenting skills, I assumed you didn't notice that you're not closing this conditional:
pawn Код:
if(listitem == 0) // TAZER
Re: dialog help please -
Lajko1 - 18.12.2009
yeah lol ^^ ty i fix now there is effect but still problem , now if i click tazer it buy it - this is OK! But Still if i want to buy Donut,Shotgun or Arrmor now it just write ''You Allready Have A Tazer'' and there nothing happens... i know the problem is where i have if(havetazer bla bla == 1) but i dont know how to fix that so i ask u for help again
here is the code again
Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1)
{
if(response)
{
new message[256+1];
if(listitem == 0) // TAZER
{
if(GetPlayerMoney(playerid) <= TazerPrice)
{
SendClientMessage(playerid, 0xFF9900AA,"You Don't Have Enough Money To Buy A Tazer!");
return 1;
}
}
if(HaveTazer[playerid] == true)
{
SendClientMessage(playerid,0xFF9900AA,"You Already Have Tazer!");
return 1;
}
if(GetPlayerMoney(playerid) >= TazerPrice)
{
format(message, 256, "You Bought A Tazer Now You Can Use /taze [playerid] On Wanted Players!", listitem);
SendClientMessage(playerid,0x33CCFFAA,message);
GivePlayerMoney(playerid,-TazerPrice);
HaveTazer[playerid] = true;
return 1;
}
if(listitem == 1) // DONUT
{
if(GetPlayerMoney(playerid) <= DonutPrice)
{
SendClientMessage(playerid, 0xFF9900AA,"You Don't Have Enough Money To Buy A Donut!");
return 1;
}
}
if(GetPlayerMoney(playerid) >= DonutPrice)
{
format(message, 256, "You Bought A Donut Now You Can Use /donut To Eat A Donut And It Will Refill Your Health!", listitem);
SendClientMessage(playerid, 0x33CCFFAA, message);
GivePlayerMoney(playerid,-DonutPrice);
return 1;
}
if(listitem == 2) // SHOTGUN
{
if(GetPlayerMoney(playerid) <= ShotgunPrice)
{
SendClientMessage(playerid, 0xFF9900AA,"You Don't Have Enough Money To Buy A Shotgun!");
return 1;
}
}
if(GetPlayerMoney(playerid) >= ShotgunPrice)
{
format(message, 256, "You Bought A 15 Shotgun Bullets,Be Careful This Is Not A Toy!", listitem);
SendClientMessage(playerid, 0x33CCFFAA, message);
GivePlayerWeapon(playerid,25,15);
GivePlayerMoney(playerid,-DonutPrice);
return 1;
}
if(listitem == 3) // ARRMOR
{
if(GetPlayerMoney(playerid) <= ArrmorPrice)
{
SendClientMessage(playerid, 0xFF9900AA,"You Don't Have Enough Money To Buy Arrmor!");
return 1;
}
}
new Float:PlayersArmour;
GetPlayerArmour(playerid, PlayersArmour);
if(PlayersArmour >= 100)
{
SendClientMessage(playerid,0xFF9900AA,"Your Arrmor Is Full!");
return 1;
}
else
{
format(message, 256, "You Bought Arrmor!", listitem);
SendClientMessage(playerid, 0x33CCFFAA, message);
SetPlayerArmour(playerid,100);
GivePlayerMoney(playerid,-ArrmorPrice);
return 1;
}
}
}
return 1;
}
ty for help
Re: dialog help please -
Joe Staff - 18.12.2009
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1)
{
if(response)
{
new message[256+1];
if(listitem == 0) // TAZER
{
//if(GetPlayerMoney(playerid) <= TazerPrice)//<--WRONG
if(GetPlayerMoney(playerid) < TazerPrice)//<--RIGHT!
{
SendClientMessage(playerid, 0xFF9900AA,"You Don't Have Enough Money To Buy A Tazer!");
return 1;
}
//} //WRONG!
if(HaveTazer[playerid] == true)
{
SendClientMessage(playerid,0xFF9900AA,"You Already Have Tazer!");
return 1;
}
//if(GetPlayerMoney(playerid) >= TazerPrice)
//{<--WRONG
//format(message, 256, "You Bought A Tazer Now You Can Use /taze [playerid] On Wanted Players!", listitem);
//SendClientMessage(playerid,0x33CCFFAA,message);<--WRONG
SendClientMessage(playerid,0x33CCFFAA,"You Bought A Tazer Now You Can Use /taze [playerid] On Wanted Players!");<--RIGHT
GivePlayerMoney(playerid,-TazerPrice);
HaveTazer[playerid] = true;
return 1;
//}
} //<-------- RIGHT!
if(listitem == 1) // DONUT
{
//if(GetPlayerMoney(playerid) < DonutPrice)//<--WRONG
if(GetPlayerMoney(playerid) < DonutPrice)//<--RIGHT
{
SendClientMessage(playerid, 0xFF9900AA,"You Don't Have Enough Money To Buy A Donut!");
return 1;
}
//}//<--WRONG
//if(GetPlayerMoney(playerid) >= DonutPrice)//<--WRONG
//{
//format(message, 256, "You Bought A Donut Now You Can Use /donut To Eat A Donut And It Will Refill Your Health!", listitem);
//SendClientMessage(playerid, 0x33CCFFAA, message);<--WRONG
SendClientMessage(playerid, 0x33CCFFAA, "You Bought A Donut Now You Can Use /donut To Eat A Donut And It Will Refill Your Health!");<--RIGHT
GivePlayerMoney(playerid,-DonutPrice);
//HaveDonut[playerid]=1//??You didn't add some variable to determine if the player has a donut or not??
return 1;
//}
}<--RIGHT!
if(listitem == 2) // SHOTGUN
{
//if(GetPlayerMoney(playerid) <= ShotgunPrice)//<--WRONG
if(GetPlayerMoney(playerid) < ShotgunPrice)//<--RIGHT
{
SendClientMessage(playerid, 0xFF9900AA,"You Don't Have Enough Money To Buy A Shotgun!");
return 1;
}
//}//<--WRONG
//if(GetPlayerMoney(playerid) >= ShotgunPrice)//<--WRONG!
//format(message, 256, "You Bought A 15 Shotgun Bullets,Be Careful This Is Not A Toy!", listitem);
//SendClientMessage(playerid, 0x33CCFFAA, message);//<--WRONG!
SendClientMessage(playerid, 0x33CCFFAA, "You Bought A 15 Shotgun Bullets,Be Careful This Is Not A Toy!");//<--RIGHT! As far as your grammar tells you
GivePlayerWeapon(playerid,25,15);
//GivePlayerMoney(playerid,-DonutPrice);//<--WRONG!
GivePlayerMoney(playerid,-ShotgunPrice);//<--RIGHT
return 1;
}//<--RIGHT!
if(listitem == 3) // ARRMOR
{
//if(GetPlayerMoney(playerid) <= ArrmorPrice)//<--WRONG!
if(GetPlayerMoney(playerid) < ArrmorPrice)//<--RIGHT!
{
SendClientMessage(playerid, 0xFF9900AA,"You Don't Have Enough Money To Buy Arrmor!");//Stupid Spelling Error
return 1;
}
//}//<--WRONG!
new Float:PlayersArmour;
GetPlayerArmour(playerid, PlayersArmour);
if(PlayersArmour >= 100)
{
SendClientMessage(playerid,0xFF9900AA,"Your Arrmor Is Full!");//"arrmor" is spelled A-R-M-O-R!! Or Armour for you Europeans
return 1;
}
else
{
//format(message, 256, "You Bought Arrmor!", listitem);
//SendClientMessage(playerid, 0x33CCFFAA,message);//<--WRONG
SendClientMessage(playerid, 0x33CCFFAA,"You Bought Armor!");//<--RIGHT!
SetPlayerArmour(playerid,100);
GivePlayerMoney(playerid,-ArrmorPrice);
return 1;
}
}//<--RIGHT!
}
}
return 1;
}
Out of boredom I've decided to
clean your script, and found multiple bugs in the process.
Re: dialog help please -
Lajko1 - 18.12.2009
uf thank you i fix it with ur help
but i dont udnerstand this
''Out of boredom I've decided to clean your script, and found multiple bugs in the process.'' what do u wanna tell me ?
and mybe 1 more ask , i have little admins script , just enum,register,login how i can make when player buy donut he get +1 donut and its saved in database ? can u help with this thing ? ye i am using dini
ty for help joe
<3