samp.directory
← Инструменты

Конструктор диалогов

Выберите стиль, напишите заголовок, текст и кнопки, попробуйте диалог как игрок и скопируйте код, который его показывает и обрабатывает ответ.

Стиль

Каждая строка — отдельный пункт; {RRGGBB} задаёт ему цвет.

Задать ID через

Предпросмотр

Нажмите на строку, чтобы выбрать её, и на кнопку (или дважды на строку), чтобы ответить. Стрелки, Enter и Esc работают как в игре.

Teleports
Los Santos
San Fierro
Las Venturas
Mount Chiliad
Back
Нажмите кнопку в предпросмотре, чтобы увидеть, что получит OnDialogResponse.

В пределах ограничений клиента.

Код

Код для

SA-MP и open.mp принимают этот код как есть: выбор лишь задаёт инклуды, с которыми он компилируется.

Показать диалог

#define DIALOG_TELEPORTS 3

ShowPlayerDialog(playerid, DIALOG_TELEPORTS, DIALOG_STYLE_LIST, "Teleports", "Los Santos\nSan Fierro\nLas Venturas\n{FFFF00}Mount Chiliad\n{AAAAAA}Back", "Go", "Close");

Обработать ответ (если у вас уже есть OnDialogResponse, добавьте в него этот if)

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if (dialogid == DIALOG_TELEPORTS)
    {
        if (!response)
        {
            // "Close" or Esc
            return 1;
        }
        switch (listitem)
        {
            case 0: // Los Santos
            {
            }
            case 1: // San Fierro
            {
            }
            case 2: // Las Venturas
            {
            }
            case 3: // Mount Chiliad
            {
            }
            case 4: // Back
            {
            }
        }
        return 1;
    }
    return 0;
}
Вставьте ShowPlayerDialog, чтобы его отредактировать

Как работают диалоги SA-MP

Конструктор диалогов SA-MP: предпросмотр и код ShowPlayerDialog | samp.directory