OnDialogResponse - Данная функция вызывается сервером, когда игрок выбирает любую кнопку в диалоге
Описание:
Данная функция вызывается сервером, когда игрок выбирает любую кнопку/пункт в созданном диалоге ShowPlayerDialog путём нажатия ENTER/ESC либо двойным кликом по кнопке/пункту (если используется DIALOG_STYLE_LIST).
playerid | ID игрока, который совершил действие с диалогом |
dialogid | ID диалога, в котором игрок совершил действие. |
response | Возвращает 1 — при выборе первой кнопки и 0 при выборе второй кнопки (если показана только одна кнопка, то всегда 1) |
listitem | ID выбранного пункта из списка (начинаются с 0) (только при использовании стиля списка, при иных возвращает -1) |
inputtext[] | Текст, введенный игроком в поле ввода или текст из выбранного пункта списка |
Возвращаемые значения:
Возвращая 0 в этом обратном вызове, это передаст диалог в другие скрипты, если он не соответствует ни одному из условий данного обратного вызова.
- Это всегда вызывается первым из filterscript'ов, так что вернув 1 это не позволит увидеть его вызов в следующем filterscript'е.
Примечание | Диалоги для игроков не скрывается при перезапуске мода, что может являться причиной сообщения от сервера "Warning: PlayerDialogResponse PlayerId: 0 dialog ID doesn't match last sent dialog ID", если игрок ответил на прежнее незакрытое диалоговое окно после рестарта. |
Совет | Разумно использовать 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;
}