Easy Dialogs -
White_116 - 22.02.2013
Easy Dialogs v. 1.1 by White_116
Здравствуйте, уважаемые пользователи форума. Хочу представить вам результат моей проделанной работы.
За основу бралась следующая работа:
easydialog.inc by Emmet_
Описание:
Данный инклуд предназначен для того чтобы упростить создание диалогов.
Смысл заключается в том, что используя данный инклуд вам не придётся указывать ид диалога, запоминать его и создовать огромные конструкции в
OnDialogResponse, вы должны будите писать всего лишь название диалога. Используя инклуд вы полностью забудите об
OnDialogResponse, и о громадном скоплениее
if(dialogid == ****).Для каждого диалога вы должны создать собственный
callback, если он вам нужен, иначе можно и не создавать. Ещё одно достоинство является конструкция вызова
callback-а, так как оно очень схоже с
zcmd, порядка 90%

. Тесты скорости я не проводил, если ваша душа не угомона и требует циферки, то делайте замеры сами.
Старый код:
PHP Code:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if (dialogid == 1)
{
if (response)
{
SendClientMessageToAll(-1, inputtext);
}
else SendClientMessage(playerid, -1, "Вы закрыли диалог");
}
return 1;
}
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Проверка", "Напишите любой текст", "Отправить", "Закрыть");
Новый код:
PHP Code:
Dialog:Test()
{
if (response)
{
SendClientMessageToAll(-1, inputtext);
}
else SendClientMessage(playerid, -1, "Вы закрыли диалог");
return 1;
}
ShowDialog(playerid, D:Test, DIALOG_STYLE_INPUT, "Проверка", "Напишите любой текст", "Отправить", "Закрыть");
Как вы заметили, удобство ощутимо. Так же PVar-ы дают преимущество выраженная в совместимости мода и различных подключаемых ФС, подключаемые даже во время работы.
Были добавлены две новые функции:
PHP Code:
native HideDialog(playerid);-Скрыть диалог
native ShowDialog(playerid, dialog[], style, caption[], info[], button1[], button2[]);-Показать диалог
Так же сохранено использование старых диалогов.
Примечание: dialogid должен быть
больше 256!
Установка:
-Закинуть
EasyDialogs.inc в папку
include котороя расположена
pawno/include/.
-Подключить инклуд в начале мода и ФС после строки
#include <a_samp>
Пример установки для шибко умных:
PHP Code:
#include <a_samp>
#include <EasyDialogs>
Скачать v. 1.1:
Ссылка №1:
PASTEBIN
Ссылка №2:
SolidFiles
Версия 1.0
Ссылка №1: PASTEBIN
Ссылка №2: SolidFiles
Изменения:
v. 1.1
- Устранено падение сервера когда первым вызывался стандартный диалог.
- Вызывается подменённый OnDialogResponse
- Теперь действительно работает отовсюду
Re: Easy Dialogs -
Den_Bellik - 22.02.2013
Норм, но предпочитаю define и #define Sa-Mp 9000
case Sa-Mp+2: // Мне так кажеться удобней, ну для меня
Re: Easy Dialogs -
Fireline - 23.02.2013
это уже какой по счёту диалоговый процессор? 5-й?
Re: Easy Dialogs -
devil77771 - 23.02.2013
Quote:
Originally Posted by Den_Bellik
Норм, но предпочитаю define и #define Sa-Mp 9000
case Sa-Mp+2: // Мне так кажеться удобней, ну для меня 
|
Ты не понял суть этой темы, по-видимому..
Re: Easy Dialogs -
Mance - 23.02.2013
не думаю что это быстрей перебора (switch), а так отличная работа!
Re: Easy Dialogs -
Jon_De - 23.02.2013
а смысл этой конструкции?
Re: Easy Dialogs -
Richard_Gere - 23.02.2013
Quote:
Originally Posted by Jon_De
а смысл этой конструкции?
|
Облегчить работу с диалогами.
Re: Easy Dialogs -
Jon_De - 23.02.2013
Quote:
Originally Posted by Richard_Gere
Облегчить работу с диалогами.
|

и в чем она легче стала?
Re: Easy Dialogs -
Richard_Gere - 25.02.2013
Quote:
Originally Posted by Jon_De
 и в чем она легче стала?
|
Кому-то удобно выводить функции каждого диалога в отдельный паблик, а кому-то просто в OnDialogResponse.
У Y-Less'a в библиотеке YSI есть инклюд y_dialog, так там будет более удобно, но мало кто его разработками пользуется.
P.S: Сам я не Easy Dialogs, не y_dialog не пользуюсь
Re: Easy Dialogs -
Mance - 25.02.2013
Quote:
Originally Posted by Richard_Gere
У Y-Less'a в библиотеке YSI есть инклюд y_dialog, так там будет более удобно, но мало кто его разработками пользуется.
|
Мало кто?

На его библиотеках построены практически все зарубежные игровые моды.