Párbeszéd panelek, dialogusok, létrehozása
forrás:Scream,SAMP FÓRUM
Üdvözlök mindenkit.
Tudom, ZeRo már írt egy ilyesfajta leckét, de mivel törölve lett, így úgy gondoltam, jó lenne, ha újra itt lenne,
és segítene a szkriptereknek / magán embereknek a leírás.
( Ez saját! )
Előszó
Mit is jelent a dialógus?
A dialógus az angol dialog (U.S.A) és a dialogue (Brit) szóból keletkezett. Jelentése: párbeszédek, párbeszéd panelek
Milyen célt szolgál a dialógus?
Például, a 0.2.x -es időszakban (és ezelött) a szokásos SendClientMessage() (üzenet-küldéses)
függvényt használtuk a játékos üdvözlésére.
A 0.3 -as időszak tehát már itt van, elérkezett. Így tehát, az üzenet dobozt is használhatjuk üzenet küldés helyett
, ami sokkal megkönnyíti a mindennapi szkripter dolgainkat.
Bevezetés: A párbeszéd panelek
A dialógus fajtái: Üzenet doboz (Message Box), Adatkezelő doboz (Input Box) és Választó doboz (vagyis: Lista,
kiválasztó doboz, angolul pedig: List)
Ezekre mind írni fogok leírást, és példát egyaránt.
Az üzenet doboz:
Az üzenet doboz azt teszi elérhetővé számunkra, hogy a játékosnak a párbeszéd panellel együtt üzenetet küldjünk neki.
A kiválasztó/lista doboz:
A kiválasztó, illetve a lista doboz azt teszi elérhetővé számunkra, hogy a játékosnak a
párbeszéd panellel együtt üzenetet küldjünk neki, s majd a megadott szövegekből kattintásra opciót választhat. (például autót kérhet le)
Az adatkezelő/beviteli szöveg kezelő doboz:
Az adatkezelő, illetve a beviteli szöveg kezelő doboz azt teszi elérhetővé számunkra, hogy a játékosnak
a párbeszéd panellel együtt egy olyan üzenet küldjünk neki, amelybe ő bekell írjon 1, vagy több számot, kódot, stb.
A párbeszéd paneleknek saját függvényük/funkciójuk van.
- Funkció: ShowPlayerDialog( paraméterek );
- Függvény: OnDialogResponse( paraméterek );
Ezeket később bővebben kifejtem.
Egy példa az adatkezelő párbeszéd panelre:
ShowPlayerDialog(playerid, DIALÓGUS_AZONOSÍTÓ, DIALOG_STYLE_INPUT, "Bejelentkező ablak","Írd be a jelszavad!","Bejelentkez", "Mégse");
Elemezzük!
ShowPlayerDialog
playerid
DIALÓGUS_AZONOSÍTÓ
- Ez a párbeszéd paneled azonosítója. Ha több dialógusod van, és nem akarod hogy összekeveredj bennük,
akkor itt egy kód részlet, amit a módod/szkripted tetejére másold be, és használd fel!
Kiegészítő:
#define DIALOG_0 (0) #define DIALOG_1 (1) #define DIALOG_2 (2)
A kiegészítő után, elemezzük tovább a példa szkriptet!
További párbeszéd panel defíniciók:
DIALOG_STYLE_MSGBOX - Üzenet doboz
DIALOG_STYLE_LIST - Lista doboz (Kiválasztó doboz)
Bejelentkező ablak
Írd be a jelszavad!
Bejelentkez
Mégse
További példák:
Példa az üzenet küldős párbeszéd panelre:
ShowPlayerDialog(playerid, DIALOG_0, DIALOG_STYLE_MSGBOX, "Józska gyerek", "Csumika tesóka.\nNézd meg te is a Gollam Show -t a jú tyúbon!","Megnézem","Vissza!");
Ebben a példában találunk egy
\n
További hasonló kombinációk: \t Jelentése: Kihagyást készít a sorok közt. (Ugyanaz, mintha a PAWNO -ban megnyomnád a TAB gombot)
Példa a lista / kiválasztó párbeszéd panelre:
ShowPlayerDialog(playerid, DIALOG_1, DIALOG_STYLE_LIST, "Válaszd ki a harc stílusod!", "Kung-Fu\nBox\nElkapás és rúgás","Kiválaszt","Mégse");
És, ugyebár mivel a gombok még gyakorlatilag semmit sem csinálnak, így ezt is nekünk megkell csinálnunk.
Egy példa erre, s majd elemzés:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == DIALOG_0) { if(response == 1) { SendClientMessage(playerid, SAJT_SZIN, "Szép jó estét!"); } else { SendClientMessage(playerid, PIROSKA, "A Mégsére kattintottál :("); } return 1; } return 0; }
Elemezzük!
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
if(dialogid == DIALOG_0)
if(response == 1)
Ami az else szó alatt van, az azt jelenti, hogy a játékos a 2. gombra ment rá. tehát általában ez a nemet, vagy a mégsét jelenti.
Komplett szkript:
A kezdőknek ez elengedhetetlen, mivel csak így fogják megtanulni a párbeszéd panelek használatát.
Példa szkript tartalma: 3 db müködő párbeszéd panel
LETÖLTÉS.....
Utószó
HAMAROSAN KÉPEK VÁRHATÓAK!
A komplett szkript alapján kérek mindenkit, hogy tanulmányozza a párbeszéd panel készítést!
Valamint, ha valami probléma lenne a leírással, akkor nyugodtan szóljatok, javítom.
Ezek után, kívánok mindenkinek kellemes párbeszéd panel készítést!
{color id} pl: Piros: {FF0000} ezt a szöveg elé pl.:
{FF0000}Ez egy Piros szöveg!
„ Anyi kérdésem lene hogy hogy lehet a dialógusban a szövegeket szinezni???
Ez érdelekhet mást is az egyebekhez vagy valakova ahol megtalálható fel kéne rakni.
Mert tudom hogy lehet mert látam csak netom hogy!!!