Tehát, most nincs idõm megírni egy komplett teleport scriptet, de így nézne ki a struktúrája:
(ZCMD-vel írom)
Elõször is a parancs:
CMD:tele(playerid,params[])
{
ShowPlayerDialog(playerid,0,DIALOG_STYLE_LIST,\"Teleport menü\",\"Csoport1\\nCsoport2\",\"OK\",\"Kilépés\");
return 1;
}
Mi a lényege?
Ha beírjuk a \"/tele\" parancsot, akkor megjelenik egy dialog, aminek az azonosítója nulla, a típusa pedig lista. A fejlécében megjelenik a \"Teleport menü\" szöveg, magában a dialogban pedig egymás alatt a \"Csoport1\" és a \"Csoport2\". A \"\\n\" a sortörést jelöli. Természetesen ott a két gomb, az \"OK\" és a \"Kilépés\".
Most pedig:
public OnDialogResponse(dialogid,listitem,response,inputtext[])
{
if(dialogid == 0 && response)
{
if(listitem == 0) return ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,\"Teleport menü\",\"Tele1\\nTele2\\nTele3\\nTele4\\nTele5\",\"OK\",\"Kilépés\");
else if(listitem == 1) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_LIST,\"Teleport menü\",\"Tele1\\nTele2\\nTele3\\nTele4\\nTele5\",\"OK\",\"Kilépés\");
}
return 1;
}
Ha a dialog ID-je nulla és az \"OK\" gombra kattintanak, akkor kijön a dialog másik része, a pontosított teleport.
Szerintem érthetõ.
Ezután pedig folytatod.
Ha például a dialog ID-je egy (1), és a harmadik menüpontra kattint(listitem == 2), akkor írsz egy \"SetPlayerPos\" függvényt, ami a játékost a \"Tele3\" menüpont alapján fogja eltelézni.