forum profesional pentru pion-scripting

Casete de dialog (tipuri / funcții)

Bună ziua tuturor. Asta a decis să se stabilească aici casetele de dialog de funcții, și așa mai departe un subiect aici nu este găsit. Dar am găsit o mulțime de întrebări cu privire la dialog. Inclusiv astăzi am creat o temă despre caseta de dialog.

Toate acțiunile sunt dialogurile pablike "OnDialogResponse (playerid, dialogid, ca răspuns, listitem, inputtext [])"
Public inițial arată astfel:

OnDialogResponse publice (playerid. Dialogid. Răspuns. Listitem. Inputtext # 91; # 93;)
<
întoarce 1;
>

Aici vom intra în dialogurile de acțiune.
Deci, nu avem neapărat nevoie să știe cum să sun / spectacol, sau că caseta de dialog.
Iată un exemplu:

Funcția în sine:

ShowPlayerDialog (playerid. Dialogid. Stil. Legendă # 91; # 93;, informatii # 91; # 93;, button1 # 91; # 93;, BUTTON2 # 91; # 93;);

Să analizăm totul în ordine:
playerid - ID Player care vom afișa o casetă de dialog
ID-ul de dialog care de fapt va fi afișat / activat - dialogid
stil - stilul casetei de dialog (mai multe despre el va fi scris de mai jos)
legendă [] - titlul ferestrei (scris în ghilimele)
info [] - conținutul ferestrei (este scris în ghilimele)
Button1 [] - textul de pe butoanele №1 (scrise în ghilimele)
BUTTON2 [] - textul pe butoanele nr.2 (scrise în ghilimele)

Până în prezent, nu pare atât de dificil, nu-i așa?
Aici este un exemplu al ferestrei pe care am făcut-o


Dacă faceți clic pe Da

Dacă faceți clic pe Nu

Iată codul să-l arate la player-ul:

ShowPlayerDialog (. Playerid 113. DIALOG_STYLE_MSGBOX "Prima fereastra noastră", "faceți clic pe Da sau pe Nu", "Da", "Nu" ....);

if (== dialogid 113)
<
if (răspuns)
<
SendClientMessage (.. playerid 0xF60000AA "Ați apăsat butonul da");
>
altfel
<
SendClientMessage (. Playerid 0xF60000AA "Ați apăsat un buton nu.");
>
>

if (== dialogid 113) // dacă ID-ul de dialog 113
<
în cazul în care (răspuns) // în cazul în care jucătorul apăsat butonul numărul 1 (în acest caz, da) forma, atunci jucatorul va fi derivat mesajul „Ați dat clic pe da“
<
SendClientMessage (.. playerid 0xF60000AA "Ați apăsat butonul da"); // mesaj de afișare
>
altfel // dacă jucătorul și a apăsat butonul 2 (în acest caz, există un buton) obținem un mesaj „Ați făcut clic pe butonul nu există“
<
SendClientMessage (. Playerid 0xF60000AA "Ați apăsat un buton nu."); // mesaj de afișare
>
>

Astfel, a devenit mult mai clar.
Acum, să ne uităm la casetele de dialog stiluri, un total de 4

DIALOG_STYLE_MSGBOX - cea mai ușoară formă de casete de dialog (utilizat în exemplul de mai sus)

DIALOG_STYLE_LIST - fereastră cu o listă (apăsăm și selectați)

forum profesional pentru pion-scripting

Cum de a arăta:

ShowPlayerDialog (. Playerid 113. DIALOG_STYLE_LIST "Prima noastră casetă (o listă a)" "Bună ziua \ închis în timp ce \ nUrya !!!" "Select", "Cancel" ....);

if (== dialogid 113) // dacă ID-ul de dialog 113
<
în cazul în care (răspuns) // în cazul în care jucătorul apăsat butonul numărul 1 (în acest caz, da) și.
<
în cazul în care (listitem == 0) // jucatorul a selectat elementul în caseta 1
<
SendClientMessage (playerid 0xF60000AA "Bună ziua!" ..); // afișează un mesaj
>
în cazul în care (listitem == 1) // jucatorul a selectat elementul 2 în fereastra
<
SendClientMessage (playerid 0xF60000AA "La revedere!" ..); // afișează un mesaj
>
în cazul în care (listitem == 2) // jucatorul a selectat elementul 2 în fereastra
<
SendClientMessage (playerid 0xF60000AA "Urya!" ..); // afișează un mesaj
>
>
altfel // dacă jucătorul și a apăsat butonul 2 (în acest caz, butonul Revocare)
<
// nici o ieșire
>
>

Bună presat, el a scris într-un chat

listitem - este numărul de puncte pe care jucatorul a ales (Notă: începe de la 0 și declară în continuare că nu este necesară o nouă listitem, nu este nevoie să scrie.!)
Puteți alege 2 moduri:
1. Apăsați 1 dată pe element, apoi faceți clic pe OK
2. Dă clic pe elementul de 2 ori
Probabil că aveți o întrebare: „Care este \ n“
Acest lucru va fi scris de mai jos.

DIALOG_STYLE_INPUT - o fereastră în care puteți introduce text (va fi un câmp pentru introducerea textului)

Cum de a arăta:

ShowPlayerDialog (playerid 113. DIALOG_STYLE_INPUT „Prima noastră fereastră (deja cu o intrare de linie),“ „Introduceți textul în caseta de mai jos, apoi faceți clic pe OK“ „OK“ „Cancel“ .....);

if (== dialogid 113) // dacă ID-ul de dialog 113
<
în cazul în care (răspuns) // în cazul în care jucătorul apăsat butonul numărul 1 (în acest caz, c) jucatorul va fi afișat un mesaj
<
text nou # 91; 128 # 93 ;; // declara o variabilă
Format (text 128. "Ai scris -% s" inputtext..); // formează textul
SendClientMessage (playerid textul 0xF60000AA ..); // afișează mesajul / textul
>
altfel
<
// nici o ieșire
>
>

El a introdus și apăsat OK

DIALOG_STYLE_PASSWORD - o fereastră în care puteți introduce text (. Copie DIALOG_STYLE_INPUT, deși textul de intrare este ascuns sub cercurile, un punct este numit după cum doriți)

Cum de a arăta:

ShowPlayerDialog (playerid DIALOG_STYLE_PASSWORD 3. „Supliment la DIALOG_STYLE_INPUT dialogului“ „Ceea ce de intrare va fi închis cercurile“ „Enter“ „Anulează“ ......);

if (== dialogid 113) // dacă ID-ul de dialog 113
<
if (răspuns)
<
noi tmp # 91; 61 # 93 ;;
Format (. tmp sizeof (tmp), "Ați introdus:% s" inputtext.);
SendClientMessage (playerid, - 1. tmp);
>
altfel
<
// Dacă apăsați „Cancel“
>
întoarce 1;
>

Introduceți textul și apăsați Enter

Poate că ați observat inputtext schimbare.
Explică. De fapt, este o matrice în care este înregistrată și apoi vom intra (nu este nevoie să declare că noul inputtext [256]! Nu este necesar să se scrie)
Acum, misterios \ n
\ N o caracteristică opțională funcționează cu text (și nu doar l vezi. Lista de mai jos)

\ N - linie nouă - o nouă linie
\ R - retur de car
\ B - backspae - sacrificare
\ F - Formular de alimentare - pagina de traducere
\ „- un singur citat
„- ghilimele duble
\? - semn de întrebare
\ T - fila

Și mai mult.
conținutul text poate decora, și aici este un exemplu de cod

ShowPlayerDialog (playerid 113. DIALOG_STYLE_MSGBOX "Prima fereastra noastră", "Acum am umeyudelat aici sunt ferestrele" "Select", "Cancel" .....);

if (== dialogid 113)
<
if (răspuns)
<
SendClientMessage (playerid 0xF60000AA "Umnichka !!" ..); // afișează un mesaj
>
>