Как сделать выбор пункта в Listbox

Mercyline

Новичок
Автор темы
23
0
Здравствуйте, подскажите пожалуйста как сделать выбор пункта с выводом в чат что игрок выбрал пример:
<< Script >> Вы выбрали пункт (6) лицензия на оружие!
<< Script >> Лицензия на один месяц будет стоит 1000000$!
<< Script >> Лицензия на два месяца будет стоит 1090000$!
<< Script >> Лицензия на три месяца будет стоит 1150000$!
rOrCKkh.png


Сразу скажу, функция sampGetListboxItemText хавает только колонку лицензии, но при этом колоки 1 месяц, 2 месяца и 3 месяца не хвает :(

@Cosmo @chapo подскажите пж
 
Последнее редактирование:

chapo

tg/inst: @moujeek
Модератор
9,079
12,065
В теории это должно выглядеть примерно так, но не уверен что верно написал регулярка
Lua:
local licenseInfo = {
    dialogId = -1,
    list = {}
};
local pattern = '%d%. На \'(.+)\'.+\t%$(%d+)\t%$(%d+)\t%$(%d+)'
function onShowDialog(id, style, title, b1, b2, text)
    if (title:find('Продажа лицензии')) then
        text = text:gsub('{......}', '');
        licenseInfo.dialogId = id;
        licenseInfo.list = {};
        local lineIndex = -1;
        for line in text:gmatch('[^\n]+') do
            if (line:find(pattern)) then
                lineIndex = lineIndex + 1;
                local type, price1, price3, price6 = line:match(pattern);
                print('parsed line', type, price1, price3, price6)
                table.insert(licenseInfo.list, {
                    type = type,
                    price1 = price1,
                    price3 = price3,
                    price6 = price6
                });
            end
        end
    end
end

function sampev.onSendDialogResponse(id, btn, list)
    if (id == licenseInfo.dialogId and btn == 1) then
        if (licenseInfo.list[list]) then
            local selected = licenseInfo.list[list];
            print('ты выбрал', selected.type, selected.price1);
        else
            print('че?');
        end
    end
end