TDW Dialog library
библиотека для удобной работы с диалогами
Описание
Библиотека разработана для удобной работы с обычными диалогами. Теперь появилась возможность обрабатывать значения диалогов в отдельных друг от друга функциях. Данная возможность обеспечивает достаточно хорошую читаемость. Кроме того, данная библиотека поддерживает и другие библиотеки, например, библиотеку y_hooks (из проекта YSI).
Документация
Создание обработчика
Особенностью данной библиотеки является её синтаксис. Он достаточно гибкий, поскольку в любой момент можно добавить собственный функционал.
PHP код:
dialog [<атрибуты>] название_функции(аргументы)
{
// код..
}
- Квадратные скобки и атрибуты в них могут не использоваться.
- Вместо "dialog" можно использовать "Dialog:", "DialogResponse:".
Доступные атрибуты:
- hook
- nohook
- template - генерирует функцию-шаблон.
Добавление нового атрибута
Для добавления нового атрибута его сначала необходимо зарегистрировать, а уже после - использовать. Пример регистрации атрибута:
PHP код:
// Регистрация нового атрибута "symbol". Макрос получает
// название функции (параметр 1), аргументы (параметр 2),
// флаги (ещё не реализованы).
#define r@symbol:%8$%1(%2)(%3) %8$// код реализации...
Опции и значения по умолчанию
Кроме того, библиотека позволяет определять значения по умолчанию.
Название |
Описание |
TDW_DIALOG_DEFAULT_HOOK |
Позволяет использовать hook'и по умолчанию. Стоит отметить, что данная возможность работает только при включении библиотеки y_hooks. |
TDW_DIALOG_SKIP_ARGS |
С данной опцией появляется возможность пропускать аргументы. Предупреждение: данная опция может увеличить размер кода. Кроме того, запрещает использовать иные названия аргументов (то есть только: playerid, response, listitem, inputtext[]) |
TDW_DIALOG_ID |
Содержит идентификатор диалога, который будет использоваться для обработки. По умолчанию имеет значение "32767". |
Функции
Пример использования:
PHP код:
#include <a_samp>
#define TDW_DIALOG_SKIP_ARGS
#include <dialog\tdw_dialog>
dialog [hook] register(playerid)
{
}
dialog [template] register(playerid)
{
OpenDialog(playerid, dfunc:register, DIALOG_STYLE_MSGBOX,
"Register",
"Hello!",
"Register", "Cancel"
);
}
public OnPlayerConnect(playerid)
{
ShowDialog(playerid, dfunc:register);
return 1;
}
Скачать
- Перейдите в репозиторий на github (ссылка выше).
- Для скачивания на открывшейся странице нажмите на кнопку "Clone or download" (зелёного цвета) и в открывшемся меню - "Download ZIP".
- Все файлы библиотеки перемести в папку '/pawno/includes/'.
- Скомпилировать изменённые вами скрипты.
Благодарность:
Автор:
Лицензия
Библиотека доступна по лицензии Zlib.