VVWVV
11.12.2016, 20:06
TDW Dialog library
библиотека для удобной работы с диалогами
Описание
Библиотека разработана для удобной работы с обычными диалогами. Теперь появилась возможность обрабатывать значения диалогов в отдельных друг от друга функциях. Данная возможность обеспечивает достаточно хорошую читаемость. Кроме того, данная библиотека поддерживает и другие библиотеки, например, библиотеку y_hooks (из проекта YSI).
Документация
Создание обработчика
Особенностью данной библиотеки является её синтаксис. Он достаточно гибкий, поскольку в любой момент можно добавить собственный функционал.
dialog [<атрибуты>] название_функции(аргументы)
{
// код..
}
Квадратные скобки и атрибуты в них могут не использоваться.
Вместо "dialog" можно использовать "Dialog:", "DialogResponse:".
Доступные атрибуты:
hook
nohook
template - генерирует функцию-шаблон.
Добавление нового атрибута
Для добавления нового атрибута его сначала необходимо зарегистрировать, а уже после - использовать. Пример регистрации атрибута:
// Регистрация нового атрибута "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".
Функции
НазваниеОписание
OpenDialog/Dialog_Open (https://github.com/TDW-org/samp-include-dialog/blob/bfed7d81711beb7b0e71f414143f64eca3cb6f39/tdw_dialog.inc#L117-L118)Позволяет открыть диалоговое окно.
CloseDialog/Dialog_Close (https://github.com/TDW-org/samp-include-dialog/blob/bfed7d81711beb7b0e71f414143f64eca3cb6f39/tdw_dialog.inc#L129)Закрывает диалоговое окно для игрока.
ShowDialog/Dialog_Show (https://github.com/TDW-org/samp-include-dialog/blob/bfed7d81711beb7b0e71f414143f64eca3cb6f39/tdw_dialog.inc#L146)
Показывает шаблон для игрока.
IsPlayerInDialog (https://github.com/TDW-org/samp-include-dialog/blob/bfed7d81711beb7b0e71f414143f64eca3cb6f39/tdw_dialog.inc#L141)
Возвращает состояние игрока. 1 - игрок находиться в диалоговом окне, иначе нуль.
Пример использования:
#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 (https://github.com/TDW-org/samp-include-dialog/tree/master)
Перейдите в репозиторий на github (ссылка выше).
Для скачивания на открывшейся странице нажмите на кнопку "Clone or download" (зелёного цвета) и в открывшемся меню - "Download ZIP".
Все файлы библиотеки перемести в папку '/pawno/includes/'.
Скомпилировать изменённые вами скрипты.
Благодарность:
$continue$ (http://pro-pawn.ru/member.php?3392) - тестирование библиотеки.
Автор:
VVWVV (http://pro-pawn.ru/member.php?4348)
Лицензия
Библиотека доступна по лицензии Zlib.
библиотека для удобной работы с диалогами
Описание
Библиотека разработана для удобной работы с обычными диалогами. Теперь появилась возможность обрабатывать значения диалогов в отдельных друг от друга функциях. Данная возможность обеспечивает достаточно хорошую читаемость. Кроме того, данная библиотека поддерживает и другие библиотеки, например, библиотеку y_hooks (из проекта YSI).
Документация
Создание обработчика
Особенностью данной библиотеки является её синтаксис. Он достаточно гибкий, поскольку в любой момент можно добавить собственный функционал.
dialog [<атрибуты>] название_функции(аргументы)
{
// код..
}
Квадратные скобки и атрибуты в них могут не использоваться.
Вместо "dialog" можно использовать "Dialog:", "DialogResponse:".
Доступные атрибуты:
hook
nohook
template - генерирует функцию-шаблон.
Добавление нового атрибута
Для добавления нового атрибута его сначала необходимо зарегистрировать, а уже после - использовать. Пример регистрации атрибута:
// Регистрация нового атрибута "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".
Функции
НазваниеОписание
OpenDialog/Dialog_Open (https://github.com/TDW-org/samp-include-dialog/blob/bfed7d81711beb7b0e71f414143f64eca3cb6f39/tdw_dialog.inc#L117-L118)Позволяет открыть диалоговое окно.
CloseDialog/Dialog_Close (https://github.com/TDW-org/samp-include-dialog/blob/bfed7d81711beb7b0e71f414143f64eca3cb6f39/tdw_dialog.inc#L129)Закрывает диалоговое окно для игрока.
ShowDialog/Dialog_Show (https://github.com/TDW-org/samp-include-dialog/blob/bfed7d81711beb7b0e71f414143f64eca3cb6f39/tdw_dialog.inc#L146)
Показывает шаблон для игрока.
IsPlayerInDialog (https://github.com/TDW-org/samp-include-dialog/blob/bfed7d81711beb7b0e71f414143f64eca3cb6f39/tdw_dialog.inc#L141)
Возвращает состояние игрока. 1 - игрок находиться в диалоговом окне, иначе нуль.
Пример использования:
#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 (https://github.com/TDW-org/samp-include-dialog/tree/master)
Перейдите в репозиторий на github (ссылка выше).
Для скачивания на открывшейся странице нажмите на кнопку "Clone or download" (зелёного цвета) и в открывшемся меню - "Download ZIP".
Все файлы библиотеки перемести в папку '/pawno/includes/'.
Скомпилировать изменённые вами скрипты.
Благодарность:
$continue$ (http://pro-pawn.ru/member.php?3392) - тестирование библиотеки.
Автор:
VVWVV (http://pro-pawn.ru/member.php?4348)
Лицензия
Библиотека доступна по лицензии Zlib.