Професионален форум за пешка-скриптове

Диалогови кутии (видове / функции)

Здравейте на всички. Това е решил да изложи тук диалогови прозорци функция, и така нататък такава тема тук не е намерен. Но аз намерих много въпроси за диалога. Включително и днес съм създал тема за диалоговия прозорец.

Всички действия диалози са pablike "OnDialogResponse (playerid, dialogid, отговор, Редовете, inputtext [])"
Публична първоначално изглежда така:

обществен OnDialogResponse (playerid. dialogid. отговор. Редовете. inputtext # 91; # 93)
<
върне 1;
>

Той е тук, ние ще влезем диалоговите прозорци за действие.
Така че ние непременно трябва да знаят как да се обадя / шоу, или че диалогов прозорец.
Ето един пример:

Самата функция:

ShowPlayerDialog (playerid. Dialogid. Стил. Надпис # 91; # 93;, информация # 91; # 93;, button1 # 91; # 93;, BUTTON2 # 91; # 93);

Нека да анализираме всичко, за да:
playerid - ID Player, че ние ще се покаже диалогов прозорец
dialogid - ID диалог, който всъщност ще бъде показан / активиран
стил - стилът на диалоговия прозорец (повече за него ще бъде написано по-долу)
надпис [] - заглавието на прозореца (написани в кавички)
информация [] - съдържанието на прозореца (това е написано в кавички)
button1 [] - текстът на бутоните №1 (написани в кавички)
BUTTON2 [] - текстът на бутоните №2 (написани в кавички)

Досега тя не изглежда толкова трудно, нали?
Ето един пример на прозореца, което направих


Ако кликнете Yes

Ако кликнете Не

Ето кода, за да го покаже на играча:

ShowPlayerDialog (. Playerid 113. DIALOG_STYLE_MSGBOX "Нашата Първо Window", "върху Да или натиснете Не," "Да" "Не" ....);

ако (dialogid == 113)
<
ако (отговор)
<
SendClientMessage (.. Playerid 0xF60000AA "Ти натискане на бутона да");
>
още
<
SendClientMessage (. Playerid 0xF60000AA "Ти натисна един бутон не.");
>
>

ако (dialogid == 113) // ако диалогов ID 113
<
ако (отговор) // ако играчът натисне номера на бутон 1 (в този случай да) след това играчът ще бъдат получени под формата на съобщение "Вие кликнали да"
<
SendClientMessage (.. Playerid 0xF60000AA "Ти натискане на бутона да"); // съобщение дисплей
>
останало // ако играча и натискане на бутона 2 (в този случай, има бутон) получаваме съобщение "Вие кликнали върху бутона няма"
<
SendClientMessage (. Playerid 0xF60000AA "Ти натисна един бутон не."); // съобщение дисплей
>
>

Така че това става много по-ясно.
Сега нека да разгледаме диалогови стилове кутии, общо 4

DIALOG_STYLE_MSGBOX - лесният форма на диалогови прозорци (използван в горния пример)

DIALOG_STYLE_LIST - прозорец със списък (ние бутон и изберете)

Професионален форум за пешка-скриптове

Как да се покаже:

ShowPlayerDialog (. Playerid 113. DIALOG_STYLE_LIST "Нашата първа кутия (списък с)" "Здравей \ затворен, докато \ nUrya !!!" "Избор", "Отказ" ....);

ако (dialogid == 113) // ако диалогов ID 113
<
ако (отговор) // ако играчът натисне номера на бутон 1 (в този случай да) и.
<
ако (Редовете == 0) // играчът е избрал елемента в полето 1
<
SendClientMessage (playerid 0xF60000AA "Hello!" ..); // покаже съобщение
>
ако (Редовете == 1) // играчът е избрал т.2 в прозореца
<
SendClientMessage (playerid 0xF60000AA "Чао!" ..); // покаже съобщение
>
ако (Редовете == 2) // играчът е избрал т.2 в прозореца
<
SendClientMessage (playerid 0xF60000AA "Urya!" ..); // покаже съобщение
>
>
останало // ако играча и натискане на бутона 2 (в този случай, на бутона Отказ)
<
// не изход
>
>

Здравейте натиснат, той пише в чат

Редовете - е броят на точките, които играчът е избрал (Забележка: започва от 0 и по-нататък да декларира, че не е необходимо ново Редовете; не е необходимо да се напише.!)
Можете да изберете 2 начина:
1. Натиснете 1 път върху елемента и след това върху OK
2. Кликнете върху елемент 2 пъти
Може би имам един въпрос: "Какво е \ Н"
Това ще бъде написано по-долу.

DIALOG_STYLE_INPUT - прозорец, в който можете да въведете текст (ще има поле за въвеждане на текст)

Как да се покаже:

ShowPlayerDialog (playerid 113. DIALOG_STYLE_INPUT "Нашата първа прозорец (вече с линеен вход)", "Въведете текста от полето по-долу и след това върху OK" "OK" "Отказ" .....);

ако (dialogid == 113) // ако диалогов ID 113
<
ако (отговор) // ако играчът натисне номера на бутон 1 (в този случай в) на играча ще бъде показано съобщение
<
нов текст # 91; 128 # 93 ;; // декларира променлива
формат (текст 128. "Ти си написал -% и" inputtext..); // образуват текста
SendClientMessage (playerid 0xF60000AA текст ..); // показване на съобщение / текст
>
още
<
// не изход
>
>

Той представи и натисна ОК

DIALOG_STYLE_PASSWORD - прозорец, в който можете да въведете текст (. Копирате DIALOG_STYLE_INPUT, макар входния текст е скрит под кръгове, точка се нарича, както искате)

Как да се покаже:

ShowPlayerDialog (playerid DIALOG_STYLE_PASSWORD 3. "Допълнение към диалог DIALOG_STYLE_INPUT" "Това, което вход ще бъдат затворени кръгове" "Enter", "Отказ" ......);

ако (dialogid == 113) // ако диалогов ID 113
<
ако (отговор)
<
новият ПТУ # 91; 61 # 93 ;;
формат (. ПТУ sizeof (ПТУ), "Въвели:% S" inputtext.);
SendClientMessage (playerid, - 1. TMP);
>
още
<
// Ако натиснете "Отказ"
>
върне 1;
>

Въведете текста и натиснете Enter

Може би сте забелязали, inputtext на климата.
Обяснете. В действителност това е масив, в който е записан и след това въведете (няма нужда да декларирате, че новата inputtext [256]! Не е необходимо да се напише)
Сега мистериозната \ н
\ N допълнителна функция работи с текст (а не само да го види. Списъкът по-долу)

\ N - нов ред - нов ред
\ R - за връщане
\ B - backspae - клане
\ F - Форма на фуражите - страница превод
\ "- един-единствен цитат
"- двойни кавички
\? - въпросителен знак
\ T - таб

И още.
Текст съдържание може да украсите и тук е един пример код

ShowPlayerDialog (playerid 113. DIALOG_STYLE_MSGBOX "Нашата Първо Window", "Сега umeyudelat тук са прозорците" "Избор", "Отказ" .....);

ако (dialogid == 113)
<
ако (отговор)
<
SendClientMessage (playerid 0xF60000AA "Umnichka !!" ..); // покаже съобщение
>
>