Easy Dialogs v. 1.1 by White_116
Здравствуйте, уважаемые пользователи форума. Хочу представить вам результат моей проделанной работы.
За основу бралась следующая работа: easydialog.inc by Emmet_
Описание:
Данный инклуд предназначен для того чтобы упростить создание диалогов.
Смысл заключается в том, что используя данный инклуд вам не придётся указывать ид диалога, запоминать его и создовать огромные конструкции в OnDialogResponse, вы должны будите писать всего лишь название диалога. Используя инклуд вы полностью забудите об OnDialogResponse, и о громадном скоплениее if(dialogid == ****).Для каждого диалога вы должны создать собственный callback, если он вам нужен, иначе можно и не создавать. Ещё одно достоинство является конструкция вызова callback-а, так как оно очень схоже с zcmd, порядка 90% . Тесты скорости я не проводил, если ваша душа не угомона и требует циферки, то делайте замеры сами.
Старый код:
PHP код:
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 код:
Dialog:Test()
{
if (response)
{
SendClientMessageToAll(-1, inputtext);
}
else SendClientMessage(playerid, -1, "Вы закрыли диалог");
return 1;
}
ShowDialog(playerid, D:Test, DIALOG_STYLE_INPUT, "Проверка", "Напишите любой текст", "Отправить", "Закрыть");
Как вы заметили, удобство ощутимо. Так же PVar-ы дают преимущество выраженная в совместимости мода и различных подключаемых ФС, подключаемые даже во время работы.
Были добавлены две новые функции:
PHP код:
native HideDialog(playerid);-Скрыть диалог
native ShowDialog(playerid, dialog[], style, caption[], info[], button1[], button2[]);-Показать диалог
Так же сохранено использование старых диалогов.Примечание: dialogid должен быть больше 256!
Установка:
-Закинуть EasyDialogs.inc в папку include котороя расположена pawno/include/.
-Подключить инклуд в начале мода и ФС после строки #include <a_samp>
Пример установки для шибко умных:
PHP код:
#include <a_samp>
#include <EasyDialogs>
Скачать v. 1.1:
Ссылка №1: PASTEBIN
Ссылка №2: SolidFiles
Версия 1.0
Ссылка №1: PASTEBIN
Ссылка №2: SolidFiles
Изменения:
v. 1.1
- Устранено падение сервера когда первым вызывался стандартный диалог.
- Вызывается подменённый OnDialogResponse
- Теперь действительно работает отовсюду