Обработка диалога dialog_style_list

Sidney31

Известный
Автор темы
1,132
385
Версия SA-MP
  1. Любая
Приветствую. Есть диалог типа dialog_style_list:
Dialog_style_list.png

Как реализовать систему выбора определенного пункта, подходящего под некое условие?
 
Решение
sampSendDialogResponse(int id, int button, int listitem, zstring input) - отправляет RPC о взаимодействии с диалогом, если идет речь о серверных диалогах.
button - кнопка ок (1) или отмена (0)
listitem - номер пункта начиная с нуля
input - для окон с вводом, без, указываешь пустую строчку ''

Lua:
-- dText - это некая переменная, которая хранит текст диалога. К примеру, полученная через функцию sampGetDialogText() либо через событие onShowDialog.
function getDialogItem(dText, findLine) -- Своя функция, которая возвращает номер пункта, начиная с нуля, если пункт совпадает или содержит текст findLine
    local i = -1
    for line in dText:gmatch('([^\n\r]+)') do
        i = i + 1
        if line:find(findLine) then
            return...

Sidney31

Известный
Автор темы
1,132
385

Hatiko

Известный
Проверенный
1,472
611
sampSendDialogResponse(int id, int button, int listitem, zstring input) - отправляет RPC о взаимодействии с диалогом, если идет речь о серверных диалогах.
button - кнопка ок (1) или отмена (0)
listitem - номер пункта начиная с нуля
input - для окон с вводом, без, указываешь пустую строчку ''

Lua:
-- dText - это некая переменная, которая хранит текст диалога. К примеру, полученная через функцию sampGetDialogText() либо через событие onShowDialog.
function getDialogItem(dText, findLine) -- Своя функция, которая возвращает номер пункта, начиная с нуля, если пункт совпадает или содержит текст findLine
    local i = -1
    for line in dText:gmatch('([^\n\r]+)') do
        i = i + 1
        if line:find(findLine) then
            return i
        end
    end
    return -1
end
 
Последнее редактирование:
  • Влюблен
Реакции: Sidney31