dialog help please
#1

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!

Reply
#2

Because of your poor indenting skills, I assumed you didn't notice that you're not closing this conditional:
pawn Код:
if(listitem == 0) // TAZER
Reply
#3

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
Reply
#4

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.
Reply
#5

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
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)