26.12.2014, 16:10
Hello this is my tutorial on how to make a simple (adjustable) teleport menu in dialog. Let's begin.
Download ZCMD and place in your pawno > includes folder. Then add this at the top of your script:
Under that include we'll define the dialogs ID so we don't forget it, something memorable, we'll go for TPMENU.
Let's start creating the command, we'll begin by scripting the following:
Having 'return 1;' is very important, it makes sure the command 'exists' so once typed it doesn't give an UNKNOWN COMMAND message to the player.
Now we want it to bring up a dialog list of all the places we want to teleport to, for this we'll use the function 'ShowPlayerDialog'.
What does this mean then? TPMENU is our dialogs ID which we defined earlier, duh! DIALOG_STYLE_LIST is the type of dialog which pops up, in our case a list. "Teleport Menu" is the title of the dialog which shows at the very top of the dialog. "Police Department\nGym\nGrove Street... ETC" is the actual list, '\n' means a new line. "Go" is the left button and finally "Exit" is the right button.
This may help: ShowPlayerDialog(player, dialogid, dialogtype, title, textbody, leftbutton, rightbutton);
Now once we've made it pop up the dialog, we want it to teleport them to the locations we want. Now CNTRL F and type 'OnDialogResponse' then press enter.
Now we want to say, if they clicked 'Police Department' on dialog TPMENU, then teleport them. So we'll script that now.
Now we want to say, if they clicked the button 'Go' or double clicked a place on the list then teleport them.
'switch(listitem)' switches between the places on the list, this basically means we're scripting about a list menu.
Now we will add the cases, we always begin with 0 NOT 1.
Now we can add the actual coordinates of where we want them to teleport to, we add that right after each case.
So there, thats it.
I hope I helped and I give permission if you want to copy and use this because either way, I did help you. But rather than copying it I do advise reading through it to learn it yourself.
Download ZCMD and place in your pawno > includes folder. Then add this at the top of your script:
pawn Код:
#include <zcmd>
pawn Код:
#include <zcmd>
#define TPMENU 1
// Change '1' to whatever dialog ID you want it to be.
pawn Код:
CMD:teleport(playerid, params[]) // When we type /teleport
{
return 1;
}
Now we want it to bring up a dialog list of all the places we want to teleport to, for this we'll use the function 'ShowPlayerDialog'.
pawn Код:
CMD:teleport(playerid, params[])
{
ShowPlayerDialog(playerid, TPMENU, DIALOG_STYLE_LIST, "Teleport Menu", "Police Department\nGym\nGrove Street\nGlen Park\nLas Venturas\nSan Fierro", "Go", "Exit");
return 1;
}
This may help: ShowPlayerDialog(player, dialogid, dialogtype, title, textbody, leftbutton, rightbutton);
Now once we've made it pop up the dialog, we want it to teleport them to the locations we want. Now CNTRL F and type 'OnDialogResponse' then press enter.
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
return 0;
}
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == TPMENU)
{
}
return 0;
}
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == TPMENU)
{
if(response) // Clicked 'Go'
{
switch(listitem)
{
}
}
}
return 0;
}
Now we will add the cases, we always begin with 0 NOT 1.
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == TPMENU)
{
if(response) // Clicked 'Go'
{
switch(listitem)
{
case 0: // PD
case 1: // Gym
case 2: // Grove
case 3: // Glen Park
case 4: // LV
case 5: // SF
}
}
}
return 0;
}
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == TPMENU)
{
if(response) // Clicked 'Go'
{
switch(listitem)
{
case 0: SetPlayerPos(playerid,1530,-1674,14); // PD
case 1: SetPlayerPos(playerid,2228,-1741, 14); // Gym
case 2: SetPlayerPos(playerid,2485,1666,14); // Grove
case 3: SetPlayerPos(playerid,1973,-1195,26); // Glen Park
case 4: SetPlayerPos(playerid,2067,1320,11); // LV
case 5: SetPlayerPos(playerid,-2009,164,28); // SF
}
}
}
return 0;
}
I hope I helped and I give permission if you want to copy and use this because either way, I did help you. But rather than copying it I do advise reading through it to learn it yourself.