Получение данных с диалогового окна

w99zzl1

Участник
Автор темы
101
10
Версия MoonLoader
.026-beta
Товарищи, подскажите пожалуйста, что я делаю не так:
Вот само окно:
1732928586968.png

Я хочу сделать так, чтобы при запуске этого окна, скрипт получал информацию с него, и выводил в чат, сколько я набрал очков, и сколько мне ещё нужно набрать. Я хотел взять для теста первую строчку (1, Случайный приз, Пройден, 1000 из 1000), Вроде заполнил все как надо, а скрипт не выводит ничего в чат. Пишет везде "0"

Код:

Lua:
require "lib.sampfuncs"
local sampev = require 'lib.samp.events'

function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end
    while not isSampAvailable() do wait(100) end
    wait(-1)
end

function sampev.onShowDialog(dialogId, dialogStyle, dialogTitle, button1, button2, text)
    if dialogId == 651 then
        local moiOchki = 0
        local trebOchkiObshie = 0

        for lvl, priz, status, tekOchki, trebOchki in string.gmatch(text, "(%d+)%s+([%w%s]+)%s+([%w%s]+)%s*(%d+)%s+iz%s+(%d+)") do
            local tek = tonumber(tekOchki)
            local treb = tonumber(trebOchki)

            if tek and treb then
                moiOchki = moiOchki + tek
                trebOchkiObshie = trebOchkiObshie + treb
                sampAddChatMessage("Уровень: " .. lvl, 0x66C2FF)
                sampAddChatMessage("Приз: " .. priz, 0x66C2FF)
                sampAddChatMessage("Статус: " .. status, 0x66C2FF)
                sampAddChatMessage("Набрано очков: " .. tek .. " / Требуется: " .. treb, 0x66C2FF)
            else
                sampAddChatMessage("Ошибка при извлечении очков на уровне " .. lvl, 0xFF0000)
            end
        end

        sampAddChatMessage("Суммарно набрано очков: " .. moiOchki, 0xFFFF00)
        sampAddChatMessage("Суммарно требуемых очков: " .. trebOchkiObshie, 0xFFFF00)
    end
end
 

chromiusj

Известный
Модератор
5,616
3,914
попробуй использовать перебор каждой строки через \n\r:
string.gmatch(text, "(%d+)%s+([%w%s]+)%s+([%w%s]+)%s*(%d+)%s+iz%s+(%d+)")
ну и вопрос к выделенному тексту