Функционал системы:
Основные функции: [Показать]
Создать диалог. Вызывается при использовании функции Dialog_Open
DialogCreate:Name(playerid)

■ Name - имя диалога
■ playerid - идентификатор игрока
Вызывается когда игрок нажимает одну из кнопок диалога
DialogResponse:Name(playerid)

■ Name - имя диалога
■ playerid - идентификатор игрока
Вызывается перед показом диалога игроку. При возвращаемом значении INVALID_DIALOG_ID - диалог открыт не будет
DialogReceived:Name(playerid)

■ Name - имя диалога
■ playerid - идентификатор игрока
Вызывается перед показом диалога игроку, при открытом диалоге Name. При возвращаемом значении INVALID_DIALOG_ID - диалог закрыт не будет
DialogInterrupt:Name(playerid)

■ Name - имя диалога
■ playerid - идентификатор игрока
Функции связанные с игроком: [Показать]
Открыть диалог игроку
Dialog_Open(playerid, const dialog[]="", const style=INVALID_DIALOG_ID, const caption[]="", const info[]="", const left[]="", const right[]="", const min=INVALID_DIALOG_ID, const max=INVALID_DIALOG_ID)

■ playerid - идентификатор игрока
■ dialog - имя диалога. Если не указывать, будет повторно вызван нынешний CreateDialog: (min и max время не сбивается)
■ style - стиль диалога. Если указан, имеет приоритет над тем, что передаётся в ShowDialog
■ caption - название диалога. Если указан, имеет приоритет над тем, что передаётся в ShowDialog
■ info - содержимое диалога. Если указан, имеет приоритет над тем, что передаётся в ShowDialog
■ left - левая кнопка диалога. Если указан, имеет приоритет над тем, что передаётся в ShowDialog
■ right - правая кнопка диалога. Если указан, имеет приоритет над тем, что передаётся в ShowDialog
■ min - время в миллисекундах. Если указан, имеет приоритет над тем, что передаётся в ShowDialog
■ max - время в миллисекундах. Если указан, имеет приоритет над тем, что передаётся в ShowDialog
Узнать открыт ли какой-либо диалог у игрока
Dialog_IsOpen(playerid)

■ playerid - идентификатор игрока
Получить имя открытого диалога у игрока
Dialog_Get(playerid, string[])

■ playerid - идентификатор игрока
■ string - массив для записи результата
Закрыть диалог игроку
Dialog_Close(playerid)

■ playerid - идентификатор игрока
Функции вызываемые внутри «DialogCreate:» [Показать]
Задать предыдущий диалог
Dialog_SetBack(dialog[])

■ dialog - имя диалога. Указывается перед Dialog_SetNext, так как очищает всю цепочку
Задать следующий диалог
Dialog_SetNext(dialog[])

■ dialog - имя диалога
Установить минимальное время открытого диалога
Dialog_SetMinimum(time) / Dialog_Min(time)

■ time - время в миллисекундах
Установить максимальное время открытого диалога
Dialog_SetMaximum(time) / Dialog_SetMax(time)

■ time - время в миллисекундах
Запретить оставлять поле для ввода диалога пустым (для левой кнопки диалога)
Dialog_DisableEmpty()

Отобразить диалог игроку
Dialog_Show(const playerid, const style, const caption[], const info[], const left[], const right[])

■ playerid - идентификатор игрока
■ style - стиль диалога
■ caption - название диалога
■ info - содержимое диалога
■ left - левая кнопка диалога
■ right - правая кнопка диалога (обязательно к указанию, если нужно скрыть кнопку, укажите «""»)
Функции вызываемые внутри «DialogResponse:» [Показать]
Узнать нажал ли игрок левую клавишу
Dialog_IsLeft()

Узнать нажал ли игрок правую клавишу
Dialog_IsRight()

Узнать была ли показана правая клавиша
Dialog_IsEnableRight()

Получить выбранную строку в диалоге
Dialog_GetListitem()

Получить введённый (выбранный) текст в диалоге
Dialog_GetInputtext()

Получить введённый (выбранный) символ в диалоге в указанной ячейке
Dialog_GetInputsymbol(index)

■ index - номер ячейки введённого текста
Открыть предыдущий заданный диалог игроку
Dialog_OpenBack(playerid)

■ playerid - идентификатор игрока
Открыть следующий заданный диалог игроку, под указанным индексом
Dialog_OpenNext(playerid, index)

■ playerid - идентификатор игрока
■ index - индекс следующего диалога (от 0)
Константы: [Показать]
DIALOG_TREE_ID 30000

INVALID_DIALOG_ID -1

MAX_DIALOG_NAME 31 // от 1 до 60

SIZE_DIALOG_NAME (MAX_DIALOG_NAME+1)

MAX_DIALOG_NEXT 5 // от 1

MAX_DIALOG_CAPTION 64

SIZE_DIALOG_CAPTION (MAX_DIALOG_CAPTION+1)

MAX_DIALOG_INFO 4096

SIZE_DIALOG_INFO (MAX_DIALOG_INFO+1)

MAX_DIALOG_BUTTON 28

SIZE_DIALOG_BUTTON (MAX_DIALOG_BUTTON+1)

MAX_DIALOG_INPUTTEXT 128

SIZE_DIALOG_INPUTTEXT (MAX_DIALOG_INPUTTEXT+1)

Пример использования: [Показать]
DialogCreate:Main(playerid) { Dialog_SetBack(Dialog:Back); Dialog_SetNext(Dialog:Next1); Dialog_SetNext(Dialog:Next2); Dialog_SetNext(Dialog:Next3); Dialog_SetNext(Dialog:Next4); Dialog_SetNext(Dialog:Next5); Dialog_SetMinimum(3_000); Dialog_SetMaximum(15_000); Dialog_DisableEmpty(); new string[256]; for(new i = 1; i <= MAX_DIALOG_NEXT; i++) { format(string, sizeof string, "%sNext %i\n", string, i); } return Dialog_Show(playerid, DIALOG_STYLE_LIST, "Main", string, "Выбрать", "Назад"); } DialogCreate:Back(playerid) { return Dialog_Show(playerid, DIALOG_STYLE_MSGBOX, "Back", "Предыдущий диалог", "Закрыть", ""); } DialogCreate:Next1(playerid) { SetBackDialog(Dialog:Main); return Dialog_Show(playerid, DIALOG_STYLE_MSGBOX, "Next 1", "Следующий диалог 1", "Закрыть", "Назад"); } DialogCreate:Next2(playerid) { SetBackDialog(Dialog:Main); return Dialog_Show(playerid, DIALOG_STYLE_MSGBOX, "Next 2", "Следующий диалог 2", "Закрыть", "Назад"); } DialogCreate:Next3(playerid) { SetBackDialog(Dialog:Main); return Dialog_Show(playerid, DIALOG_STYLE_MSGBOX, "Next 3", "Следующий диалог 3", "Закрыть", "Назад"); } DialogCreate:Next4(playerid) { SetBackDialog(Dialog:Main); return Dialog_Show(playerid, DIALOG_STYLE_MSGBOX, "Next 4", "Следующий диалог 4", "Закрыть", "Назад"); } DialogCreate:Next5(playerid) { SetBackDialog(Dialog:Main); return Dialog_Show(playerid, DIALOG_STYLE_MSGBOX, "Next 5", "Следующий диалог 5", "Закрыть", "Назад"); } DialogResponse:Main(playerid) { if(Dialog_IsRight()) return Dialog_OpenBack(playerid); return Dialog_OpenNext(playerid, Dialog_GetListitem()); } DialogResponse:Back(playerid) { return 1; } DialogResponse:Next1(playerid) { if(Dialog_IsRight()) Dialog_OpenBack(playerid); return 1; } DialogResponse:Next2(playerid) { if(Dialog_IsRight()) Dialog_OpenBack(playerid); return 1; } DialogResponse:Next3(playerid) { if(Dialog_IsRight()) Dialog_OpenBack(playerid); return 1; } DialogResponse:Next4(playerid) { if(Dialog_IsRight()) Dialog_OpenBack(playerid); return 1; } DialogResponse:Next5(playerid) { if(Dialog_IsRight()) Dialog_OpenBack(playerid); return 1; }

Скачать:

Сообщение отредактировал M I S T E V: 06 июля 2025 - 12:33