Tehát:
Eleinte úgy szokták hogy a dialogid-ket definálják.
ez esetben a dialogid neve lesz a DIALOG_ELEM.
#define DIALOG_ELEM 2400
dialogid értéke 2400 lesz, ez bármilyen érték lehet az a lényeg hogy ne ütközzenek a dialog-ok egymásba, ajánlatos ezres értéket használni.
Következik a dialog létrehozása.
(playerid, dialogid, stílus, felsonev[], info[], 1gomb[], 2gomb[])
Ha a dialogot lista típusra akarjuk állítani a stílushoz a DIALOG_STYLE_LIST-et kell majd írni.
Így néz ki a dialogunk:
ShowPlayerDialog(playerid,DIALOG_ELEM,DIALOG_STYLE_LIST,\"Menü\",\"Burger\\nKrumpli\\nGyrosz\",\"Választ\",\"Mégsem\");
Ha ez megvan már csak az utasításokat kell megírnunk.
Taláható olyan callback hogy OnDialogResponse.
itt tudod a dialogoknak az utasításokat megírni.
ez alá felkell venni a dialog-ot.
if(dialogid == DIALOG_ELEM) // Ha a dialogid egyenlõ a DIALOG_ELEM-el
ebbe, ha az elsõ gombra kattint:
if(response)
ha pedig a másodikra:
if(!response)
ez alá kerül a listák.
Tehát ha az elsõ listán van és az elsõ gombra kattint akkor jön elõ ez:
if(listitem == 0)
Azért 0 az értéke mert onnan kezdõdik, ez elég bosszantó ha pl. a 2-ra kattint akkor az értékének 1.-nek kell lennie.És ez alá kerülnek az utasítások.
Teljes szkript:
#define DIALOG_ELEM 2400
ShowPlayerDialog(playerid, DIALOG_ELEM, DIALOG_STYLE_LIST,\"Menü\",\"Burger\\nKrumpli\\nGirosz\",\"Választ\",\"Mégsem\"); //az \\n funkció rakja a következõ sorba
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_ELEM)
{
if(response) //Ha a \"választ\" gombra kattint:
{
if(listitem == 0)
{
SendClientMessage(playerid,-1,\"A Burgerre kattintottál\");
}
if(listitem == 1)
{
SendClientMessage(playerid,-1,\"A Krumplira kattintottál\");
}
if(listitem == 2)
{
SendClientMessage(playerid,-1,\"A Giroszra kattintottál\");
}
}
if(!response) //Ha a \"mégse\" gombra kattint:
{
SendClientMessage(playerid,-1,\"Kiléptél a menübõl\");
}
return 1;
}
return 1;
}