Sziasztok,kicsit unatkoztam,és ezért gondoltam megírom,hogy hogyan lehet dialogot létrehozni.
1.Élõsszõr is hozzuk létre a dialog ID-jét definiálással.
#define DIALOG_0 100 //itt a dialog ID az 100
2.Ha ez megvan keressük meg,hogy milyen parancsnál vagy függvénynél jelenjen meg a dialog,és írjuk be,hogy melyik típusú dialogot szeretnénk használni.
Típusok:
0 - DIALOG_STYLE_MSGBOX
1 - DIALOG_STYLE_INPUT
2 - DIALOG_STYLE_LIST
Pl.:
public OnPlayerConnect(playerid)
{
ShowPlayerDialog(playerid, DIALOG_0, DIALOG_STYLE_LIST, \"SAMPFÓRUM\", \"Tutorial\\nTutorial\\nTutorial\\nTutorial\\nTutorial\\nTutorial\", \"Rendben\", \"Kilép\");//én a DIALOG_STYLE_LIST-t használtam
}
Magyarázat:
playerid Akinek mutatni szeretnénk a dialogot
dialogid Dialog ID-je,és ne használjatok negatív számokat(Max ID:32767).
style Dialog stílusa.
caption[] A dialog címe,ami a legtetején,fent van.
info[] Ide kell a szöveget írni,ami bekerüljön a dialogba. Használd az \\n betût új sor kezdéséhez,és \\t -t a tabulátorhoz.
button1[] A bal gomb szövege.
button2[] A jobb gomb szövege.Hagyd üresen,ha el akarod rejteni.
3.Ha meg vagyunk vele,csináljuk meg,hogy mi történjen ha rákkantint egy gombra.
Hozzuk létre az
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
callback-t.
Majd rakjuk be alá ezt:
if(dialogid == DIALOG_0)
{
if(response)
{
if(listitem == 0) //ha rákattintasz az 1. gombra mi történjen....
{
SendClientMessage(playerid, 0x400000FF, \"Dialog tutorial\");//üzenetet küld
}
if(listitem == 1) //ha rákattintasz az 2. gombra mi történjen....
{
SendClientMessage(playerid, 0x400000FF, \"sampforum.hu\");
}
if(listitem == 2) //ha rákattintasz az 2. gombra mi történjen....
{
SetPlayerHealth(playerid, 100);//feltõlti a játékos életét
}
if(listitem == 3) //ha rákattintasz az 4. gombra mi történjen....
{
SetPlayerArmour(playerid, 100);//feltõlti a játékos pajzsát
}
if(listitem == 4) //ha rákattintasz az 5. gombra mi történjen....
{
new vehicleid = GetPlayerVehicleID(playerid);
SetVehicleHealth(vehicleid, 1000.0);
SendClientMessage(playerid, COLOUR_WHITE, \"Jármû megjavítva\"); //megjavítja a kocsit
}
if(listitem == 5) //ha rákattintasz az 6. gombra mi történjen....
{
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_SPRUNK);//példáúl kap egy animot
GivePlayerMoney(playerid, -100);//levesz a pénzébõl $100-t
}
}
}else{//ellentétben
SendClientMessage(playerid, 0x400000FF, \"Kiléptél a dialogból\");
}
}
return 1;
}
Ha a másik gombot szeretnétek szabályozni,akkor az if(response) részt tagadni kell,vagyis:
if(!response)
if(dialogid == DIALOG_0)
{
if(!response)
{
SendClientMessage(playerid, 0x400000FF, \"Kiléptél a dilaogból!l\");
}
}
Ennyi lett volna a tutorial,remélem érthetõ volt.