[LUA SAMP] Как достать цифру из диалога?

GasikPasik

Участник
Автор темы
50
4
Версия MoonLoader
.027.0-preview
[LUA SAMP] Как достать цифру из диалога?
Мне нужно достать информацию и о балансе в разных счетах.
Перепробовал очень много чего, но всё как об стенку. Может я тупой, а может мало инфы.
Не сложно вытащить AZ COINS или Деньги:[$....], а вот дальше.. Как достать последующие вариант я не знаю. Просьба помочь и если можно подробнее объяснить. Заранее, просто нереально спасибо :D

(( Вот достал из кода функцию, которая делает это ))
Lua:
function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    sampAddChatMessage(dialogId, -1)
    if dialogId == 235 then
        print(text)
        mats = string.match(text, "[банке:]+%s+$(%d+)")
        sampAddChatMessage(mats, -1)

    end
end

1604693458376.png
1604693467054.png
 
Последнее редактирование:
  • Влюблен
Реакции: bet.io
Решение
Спасибо и за это.
Я дописал пару команд(вывода переменных) и в случае не совпадение мне выводило в чат № else.
Как итог не одного совпадение не нашлось и в чат мне зафлудило 25 раз "else"(ровно столько же, сколько строк в самом диалоге),
Я начинаю думать, что тут каким-нибудь каверзным путём написан диалог и скрипт не воспринимает "Деньги в банке: [$34234]", как одну строчку.

Хотя большая вероятность, что в ниже приведённом скрипте есть ошибки. Но всё ровно, спасибо, что отписались
(в консоли ошибок не было)

Код:
function sampev.onShowDialog(dialogId,s,t,b1,b2,text)
    local value = 0
    for line in text:gmatch("[^\n]+") do -- разбиваем чтобы искать по строкам
        if line:find('Деньги в банке: %[$(%d+)%]') then -- Пример...

GasikPasik

Участник
Автор темы
50
4
Команда помощников собралась.
Lua:
function ev.onShowDialog(dialogId,s,t,b1,b2,text)
    for line in text:gmatch("[^\n]+") do -- разбиваем чтобы искать по строкам
        if line:find('Деньги в банке: %[$(%d+)%]') then -- Пример строки Деньги в банке: [$21]
            money = line:match('Деньги: %[$(%d+)%]') -- запишет в переменную money цифру 21
        end
     end
end

Спасибо и за это.
Я дописал пару команд(вывода переменных) и в случае не совпадение мне выводило в чат № else.
Как итог не одного совпадение не нашлось и в чат мне зафлудило 25 раз "else"(ровно столько же, сколько строк в самом диалоге),
Я начинаю думать, что тут каким-нибудь каверзным путём написан диалог и скрипт не воспринимает "Деньги в банке: [$34234]", как одну строчку.

Хотя большая вероятность, что в ниже приведённом скрипте есть ошибки. Но всё ровно, спасибо, что отписались
(в консоли ошибок не было)

Код:
function sampev.onShowDialog(dialogId,s,t,b1,b2,text) 
    local value = 0
    for line in text:gmatch("[^\n]+") do -- разбиваем чтобы искать по строкам
        if line:find('Деньги в банке: %[$(%d+)%]') then -- Пример строки Деньги в банке: [$21]
            money = line:match('Деньги в банке: %[$(%d+)%]') -- запишет в переменную money цифру 21
            sampAddChatMessage(money, -1)
        else
            value = value + 1
            sampAddChatMessage(value.."else", -1)
            print(text)
        end
     end
end

p.s. Тоже не работает(аналогично выше написанному)

Код:
function sampev.onShowDialog(dialogId,s,t,b1,b2,text)
    for line in text:gmatch("[^\n]+") do -- разбиваем чтобы искать по строкам
        if line:find('Деньги в банке: %[$(%d+)%]') then -- Пример строки Деньги в банке: [$21]
            money = line:match('Деньги: %[$(%d+)%]') -- запишет в переменную money цифру 21
            sampAddChatMessage(money, -1)
        end
     end
end

Кто знает, пожалуйста помогите!
 

Fott

Простреленный
3,461
2,378
Спасибо и за это.
Я дописал пару команд(вывода переменных) и в случае не совпадение мне выводило в чат № else.
Как итог не одного совпадение не нашлось и в чат мне зафлудило 25 раз "else"(ровно столько же, сколько строк в самом диалоге),
Я начинаю думать, что тут каким-нибудь каверзным путём написан диалог и скрипт не воспринимает "Деньги в банке: [$34234]", как одну строчку.

Хотя большая вероятность, что в ниже приведённом скрипте есть ошибки. Но всё ровно, спасибо, что отписались
(в консоли ошибок не было)

Код:
function sampev.onShowDialog(dialogId,s,t,b1,b2,text)
    local value = 0
    for line in text:gmatch("[^\n]+") do -- разбиваем чтобы искать по строкам
        if line:find('Деньги в банке: %[$(%d+)%]') then -- Пример строки Деньги в банке: [$21]
            money = line:match('Деньги в банке: %[$(%d+)%]') -- запишет в переменную money цифру 21
            sampAddChatMessage(money, -1)
        else
            value = value + 1
            sampAddChatMessage(value.."else", -1)
            print(text)
        end
     end
end

p.s. Тоже не работает(аналогично выше написанному)

Код:
function sampev.onShowDialog(dialogId,s,t,b1,b2,text)
    for line in text:gmatch("[^\n]+") do -- разбиваем чтобы искать по строкам
        if line:find('Деньги в банке: %[$(%d+)%]') then -- Пример строки Деньги в банке: [$21]
            money = line:match('Деньги: %[$(%d+)%]') -- запишет в переменную money цифру 21
            sampAddChatMessage(money, -1)
        end
     end
end

Кто знает, пожалуйста помогите!
Lua:
function sampev.onShowDialog(dialogId,s,t,b1,b2,text)
    for line in text:gmatch("[^\n]+") do -- разбиваем чтобы искать по строкам
        if line:find('Деньги в банке: %{......%}%[$(%d+)%]') then -- Поиск текста в строке. |  Пример строки Деньги в банке: [$21]
            money = line:match('Деньги в банке: %{......%}%[$(%d+)%]') -- запишет в переменную money цифру 21
            sampAddChatMessage(money, -1) -- выведет в чат значение переменной money
        end
     end
end
 
Последнее редактирование: