- 8
- 87
LiveDialogs
UPDATE 14.11.2024
— Убраны DIALOG_BACK_BACK... остался только DIALOG_BACK который открывает диалог на уровень ниже;
— Убраны лишние функции;
— Кэш удаляется только в том случае, если пользователь будет ниже кэша, кэш высокого уровня - удаляется;
было не логичным каждый DIALOG_REOPEN отправлять запрос если пользователь находился в диалоге с DialogQuery;
— Добавлен DialogGoto который перемещает пользователя в указанный диалог !!! только в низ !!!
— Удалены теги string.
— Добавлена функция Dialog_GetDeep(playerid);
Пожалуйста, обновите LiveDialogs и перед использованием посмотрите примеры реализованные с помощью дополнения!
Диалоговый движок позволяющий описывать всю логику в одной функции.
C:
CMD:livedialogs(playerid)
{
Dialog_Create(playerid, Dialog:Main);
}
C:
static query_top_10[] = "\
SELECT `nickname`, `money` \
FROM `accounts` \
ORDER BY `money` desc LIMIT 10;\
";
dialog PlayersTopMoney(playerid)
{
Create:<"Топ 10 богатых игроков">
{
ResponseRight:return DIALOG_CLOSE;
DialogQuery:<mysqlconnect, query_top_10>;
new rows = cache_num_rows();
if(rows == 0) {
DialogMessgbox:<"В таблице `accounts` нет записей"> {
return DIALOG_CLOSE;
}
}
// сделаем список DIALOG_STYLE_TABLIST_HEADER
DialogHead:<"Игрок\tСумма">;
for(new i; i<rows; i++)
{
cache_get_value_name(i, "nickname", nickname);
cache_get_value_int(i, "money", money);
if(i < 3)
{
// покрасим топ 3 в жёлтый цвет
ListItem:<"{FFCC47}%d{FFFFFF}. %s\t%d$", i+1, nickname, money>
{
SendClientMessage(playerid, -1, "Игрок %s входит в топ 3 богатейших игроков, занимая %d место.", nickname, i+1);
return DIALOG_REOPEN;
);
}
}
else
{
ListItem:<"%d. %s\t%d$", i+1, nickname, money>
{
SendClientMessage(playerid, -1, "Игрок %s входит в топ 10 богатейших игроков, занимая %d место.", nickname, i+1);
return DIALOG_REOPEN;
}
}
}
}
Button:<"Выбрать", "Закрыть">;
}
А так же позволяет быть модульным:
C:
dialog Main(playerid)
{
Create:<"LiveDialogs - информация">
{
ResponseRight:return DIALOG_CLOSE;
MessageBox:<"Всё это написано в одной функции">
{
Create:<"LiveDialogs - возврат на уровень ниже">
{
ResponseRight:return DIALOG_BACK;
MessageBox:<"Нажми назад и ты вернёшся">
{
ResponseRight:return DIALOG_BACK;
Create:<"LiveDialogs - возможность вернуться в главное окно">
{
ResponseRight:return DIALOG_MAIN;
MessageBox:<"Нажми \"Главная\" и ты вернёшься в главное меню!">
{
return PlayersTopMoney(playerid) ;
}
Button:<"Далее", "Главная">;
}
}
}
Button:<"Далее", "Назад">;
}
}
Button:<"Далее", "Закрыть">;
}
Ссылка: https://github.com/vawylon/LiveDialogs
Пример игрового мода в репозитории с регистрацией и меню /menu
Создан в команде разработчиков LiveRussia Mobile
Последнее редактирование: