mdialog
GitHub
Описание
Библиотека, которая даёт возможность организовать код диалогов в стиле zcmd.
Функции
Открыть диалог
Dialog_Open(playerid, function[], style, caption[], info[], button1[], button2[]);
Закрыть диалог
Dialog_Close(playerid);
Статус открытости диалога
Dialog_IsOpen(playerid);
Открыть специально подготовленный диалог
Dialog_Show(playerid, function[]);
Открыть диалог сообщения
Dialog_Message(playerid, caption[], info[], button1[]);
Открыть диалог сообщения с собственным обработчиком нажатия
Dialog_MessageEx(playerid, response[], caption[], info[], button1[], button2[]);
Поддержка zlang
Если перед подключением mdialog задефайнить MDIALOG_ZLANG_MODE то некоторые функции приобретут новый вид.
Открыть диалог
Dialog_Open(playerid, function[], style, caption[], info[], button1[], button2[], {Float, _}:...);
Открыть диалог сообщения
Dialog_Message(playerid, caption[], info[], button1[], {Float, _}:...);
Открыть диалог сообщения с собственным обработчиком нажатия
Dialog_MessageEx(playerid, response[], caption[], info[], button1[], button2[], {Float, _}:...);
Поддержка тэгов
Вы можете использовать теги для стилизации вашего текста:
Тег Описание\\c Центрирует текст \\r Выравнивает текст по правому краю
Использование
Вы можете использовать DialogCreate: и DialogResponse: префиксы:
DialogCreate:test(playerid) { Dialog_Open(playerid, Dialog:test, DIALOG_STYLE_MSGBOX, "Hello", "Are you ok?", "Yes", "No"); } DialogResponse:test(playerid, response, listitem, inputtext[]) { if (!response) { Dialog_Show(playerid, Dialog:test); return 1; } return 1; }
Использовать DialogCreate: не обязательно, можно напрямую вызывать диалог с помощью Dialog_Open. Использование DialogCreate полностью себя оправдывает при создании вложенных диалогов, где один и тот же диалог приходится вызывать более, чем один раз. Да и в целом код читать удобнее, когда функция создания и функция обработки располагаются рядом.
Использование в режиме zlang
Использование библиотеки в режиме zlang немного отличается:
#define MDIALOG_ZLANG_MODE #include "mdialog" DialogCreate:test(playerid) { Dialog_Open(playerid, Dialog:test, DIALOG_STYLE_MSGBOX, "Hello", "LANG_ARE_YOU_OK", "Yes", "BUTTON_NO", playerid); } DialogResponse:test(playerid, response, listitem, inputtext[]) { if (!response) { Dialog_Show(playerid, Dialog:test); return 1; } return 1; }
Содержимое языкового файла:
LANG_ARE_YOU_OK = Hey id %d, are you ok? BUTTON_NO = No
Скачать
- Последнюю версию вы всегда можете найти на странице релизов GitHub.