[fixed]Dialog Help -
TheKnown - 25.09.2015
So i have made a dialog and every time i enter the checkpoint the dialog shows up but doesn't go away. Anyone know a fix to this?
Код:
new StoreBuyCP;
StoreBuyCP = CreateCheckpoint(-1,-22.5904,-55.3651,1003.5469,1.5,5.0);
if(CPiD == StoreBuyCP)
{
ShowPlayerDialog(playerid,dStore,DIALOG_STYLE_LIST, "24/7 Menu", "Wallet - $3000\nCondom - $2500\nRadio Jammer - $2000\nRopes - $2500", "Select", "Cancel");
return 1;
}
Btw i am using a self made checkpoint streamer because the streamer plugin doesn't work for me.
Re: Dialog Help -
nezo2001 - 25.09.2015
Show OnDialogResponse
Re: Dialog Help -
TheKnown - 25.09.2015
Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == dStore)
{
if(response)
{
if(listitem == 0)
{
if(GetPlayerMoney(playerid) < 3000)
{
SendClientMessage(playerid, COLOR_RED, "[ElderBot]:You Don't Have Enough Money!");
}
else if(GetPlayerMoney(playerid) >= 3000)
{
SendClientMessage(playerid, COLOR_PINK, "[ElderBot]:You Have Purchassed x2 Wallets from 24/7");
Wallets[playerid] += 2;
GivePlayerMoney(playerid, -3000);
}
}
if(listitem == 1)
{
if(GetPlayerMoney(playerid) < 2500)
{
SendClientMessage(playerid, COLOR_RED, "[ElderBot]:You Don't Have Enough Money!");
}
else if(GetPlayerMoney(playerid) >= 2500)
{
SendClientMessage(playerid, COLOR_PINK, "[ElderBot]:You Have Purchassed x2 Condoms from 24/7");
Condoms[playerid] += 2;
GivePlayerMoney(playerid, -2500);
}
}
if(listitem == 2)
{
if(GetPlayerMoney(playerid) < 2000)
{
SendClientMessage(playerid, COLOR_RED, "[ElderBot]:You Don't Have Enough Money!");
}
else if(GetPlayerMoney(playerid) >= 2000)
{
SendClientMessage(playerid, COLOR_PINK, "[ElderBot]:You Have Purchassed x1 Radio Jammer from 24/7");
RADIO[playerid] += 1;
GivePlayerMoney(playerid, -2000);
}
}
if(listitem == 3)
{
if(GetPlayerMoney(playerid) < 2500)
{
SendClientMessage(playerid, COLOR_RED, "[ElderBot]:You Don't Have Enough Money!");
}
else if(GetPlayerMoney(playerid) >= 2500)
{
SendClientMessage(playerid, COLOR_PINK, "[ElderBot]:You Have Purchassed x1 Rope from 24/7");
Ropes[playerid] += 1;
GivePlayerMoney(playerid, -2500);
}
}
}
}
return 1;
}
Re: Dialog Help -
nezo2001 - 25.09.2015
Try
PHP код:
if(!response) return 0; //before if(response)
Re: Dialog Help -
TheKnown - 25.09.2015
doesn't work
Re: Dialog Help -
TheKnown - 26.09.2015
help?
Re: Dialog Help -
rappy93 - 26.09.2015
Make use of
https://sampwiki.blast.hk/wiki/OnPlayerLeaveCheckpoint to remove/hide the dialog when the player exits the checkpoint.
Re: Dialog Help -
TheKnown - 26.09.2015
i don't know how to hide the dialog and the problem is that when i press cancel i shows up again you can't go away from the CP
Re: Dialog Help -
rappy93 - 26.09.2015
I think this problem is caused by the fact that you don't disable the checkpoint.
The following code should disable the checkpoint after the dialog is called.
PHP код:
if(dialogid == dStore)
{
DisablePlayerCheckpoint(playerid); // This will disable the checkpoint
if(response)
{
if(listitem == 0)
{
if(GetPlayerMoney(playerid) < 3000)
{
SendClientMessage(playerid, COLOR_RED, "[ElderBot]:You Don't Have Enough Money!");
}
else if(GetPlayerMoney(playerid) >= 3000)
{
SendClientMessage(playerid, COLOR_PINK, "[ElderBot]:You Have Purchassed x2 Wallets from 24/7");
Wallets[playerid] += 2;
GivePlayerMoney(playerid, -3000);
}
}
if(listitem == 1)
{
if(GetPlayerMoney(playerid) < 2500)
{
SendClientMessage(playerid, COLOR_RED, "[ElderBot]:You Don't Have Enough Money!");
}
else if(GetPlayerMoney(playerid) >= 2500)
{
SendClientMessage(playerid, COLOR_PINK, "[ElderBot]:You Have Purchassed x2 Condoms from 24/7");
Condoms[playerid] += 2;
GivePlayerMoney(playerid, -2500);
}
}
if(listitem == 2)
{
if(GetPlayerMoney(playerid) < 2000)
{
SendClientMessage(playerid, COLOR_RED, "[ElderBot]:You Don't Have Enough Money!");
}
else if(GetPlayerMoney(playerid) >= 2000)
{
SendClientMessage(playerid, COLOR_PINK, "[ElderBot]:You Have Purchassed x1 Radio Jammer from 24/7");
RADIO[playerid] += 1;
GivePlayerMoney(playerid, -2000);
}
}
if(listitem == 3)
{
if(GetPlayerMoney(playerid) < 2500)
{
SendClientMessage(playerid, COLOR_RED, "[ElderBot]:You Don't Have Enough Money!");
}
else if(GetPlayerMoney(playerid) >= 2500)
{
SendClientMessage(playerid, COLOR_PINK, "[ElderBot]:You Have Purchassed x1 Rope from 24/7");
Ropes[playerid] += 1;
GivePlayerMoney(playerid, -2500);
}
}
}
}
return 1;
Also, you could try to place DisablePlayerCheckpoint(playerid); under OnPlayerEnterCheckpoint as well.
Re: Dialog Help -
Aly - 26.09.2015
It shows up again because of your checkpoint system, your CP system still detects the player as being into the CP.
You can do something like this.Add a new variable,let's call it:
PHP код:
new bool:EnteredCP[MAX_PLAYERS];
Under OnPlayerConnect:
PHP код:
EnteredCP[playerid] = false;
Then where you have this code replace it with this:
PHP код:
if(CPiD == StoreBuyCP)
{
if(!EnteredCP[playerid])
{
EnteredCP[playerid] = true;
ShowPlayerDialog(playerid,dStore,DIALOG_STYLE_LIST, "24/7 Menu", "Wallet - $3000\nCondom - $2500\nRadio Jammer - $2000\nRopes - $2500", "Select", "Cancel");
return 1;
}
}
And in the end when the player leaves that place make the variable false again:
PHP код:
EnteredCP[playerid] = false;