OnDialogResponse RU

From SA-MP Wiki

Jump to: navigation, search

OnDialogResponse

OnDialogResponse RU добавлено в 0.3a Этот обратный вызов был добавлен в SA-MP 0.3a и не работает в более ранних версиях!


Описание:

Данная функция вызывается сервером, когда игрок выбирает любую кнопку/пункт в созданном диалоге ShowPlayerDialog путём нажатия ENTER/ESC либо двойным кликом по кнопке/пункту (если используется DIALOG_STYLE_LIST).


Параметры:
(playerid, dialogid, response, listitem, inputtext[])
playeridID игрока, который совершил действие с диалогом
dialogidID диалога, в котором игрок совершил действие.
responseВозвращает 1 - при выборе первой кнопки и 0 при выборе второй кнопки (если показана только одна кнопка, то всегда 1)
listitemID выбранного пункта из списка (начинаются с 0) (только при использовании стиля списка, при иных возвращает -1)
inputtext[]Текст, введенный игроком в поле ввода или текст из выбранного пункта списка


Возвращаемые значения:

Возвращая 0 в этом обратном вызове, это передаст диалог в другие скрипты, если он не соответствует ни одному из условий данного обратного вызова.
  • Это всегда вызывается первым из filterscript'ов, так что вернув 1 это не позволит увидеть его вызов в следующем filterscript'е.


Image:32px-Ambox_warning_orange.png

Примечание

Диалоги для игроков не скрывается при перезапуске мода, что может являться причиной сообщения от сервера "Warning: PlayerDialogResponse PlayerId: 0 dialog ID doesn't match last sent dialog ID", если игрок ответил на прежнее незакрытое диалоговое окно после рестарта.


Совет

Image:Light_bulb_icon.png

Разумно использовать switch для поиска нужного диалога, если вы имеете их много.


Пример использования:

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(!IsPlayerAdmin(playerid)) return 0; // только для администратора
    if(dialogid == 1)
    {
        if(!response) SendClientMessage(playerid, 0xFFFFFFFF, "Вы отменили действие!");
        new message[196];
        format(message, sizeof(message), "Вы ввели: %s", inputtext);
        SendClientMessage(playerid, 0xFFFFFFFF, message);
        return 1;
    }
    return 0;
}


Связанные функции

Следующие функции могут быть полезны, т.к. они так или иначе связаны с текущей функцией.

Personal tools
Navigation
Toolbox