Всё плохо с регулярными выражениями

Dewize

Известный
Автор темы
437
88
Неуместный контент
Версия MoonLoader
.027.0-preview
У меня всё плохо с регулярными выражениями, по этому вопрос таков.


Есть код

123:
for line in text:gmatch("[^\n]+") do
        if line:find('- Текущая стоимость: [$(%d+)%] в 1 минуту') then
            money = line:match('- Текущая стоимость: [$(%d+)%] в 1 минуту ')
            sampAddChatMessage(money, -1)
        end
    end

Но чёт нихуя не работает.

- Текущая стоимость: $0 в 1 минуту
Вот строка, захукать надо стоимость
 
Последнее редактирование модератором:
Решение
а понял чёта. ну так а как присвоить окончательное значение для переменной?
Lua:
for line in text:gmatch("[^\n]+") do
    local money = line:match('%- Текущая стоимость: %$(%d+) в 1 минуту')
    if money and tonumber(money) <= ТВОЙИНПУТ[0] then
        sampAddChatMessage(money, -1)
    end
end

Dewize

Известный
Автор темы
437
88
не работает ыыы
1695215402989.png


МБ так проще будет
 
Последнее редактирование:

Rice.

Известный
Модератор
1,697
1,461
не работает ыыы
Посмотреть вложение 215579

МБ так проще будет
Ну так потому что у тебя цвет есть в строчке
Открой диалог вместе с этим скриптом
 

kyrtion

Известный
676
249
Lua:
-- onShowDialog function
-- после проверки на ид диалога и тд, вставить это:
local changedText = text:gsub('{%x+}', '') -- убираем hex
for line in changedText:gmatch('[^\n]+') do
    local money, min = line:match('Текущая стоимость: %$?(%d+)%$? в (%d+) минуту') -- на всякий случай, если будут доллары
    if money then
        -- money, min = tonumber(money), tonumber(min)
        sampAddChatMessage(string.format('[Info Dialog] Money: %s, Min: %s', money, min), -1)
    end
end

Если так?
 

Rice.

Известный
Модератор
1,697
1,461

Dewize

Известный
Автор темы
437
88
Lua:
for line in text:gmatch("[^\n]+") do
    local money = line:gsub('{......}', ''):match('%- Текущая стоимость: %$(%d+) в 1 минуту')
    if money then sampAddChatMessage(money, -1) end
end
так попробуй
Вроде как круто, работает. Терь вопросик маленький и всё. Как сравнить чёто с числом из mimgui, сперва я понял что .v нахуй не нудна используем [0]. Терь ток пишет про
attempt to compare number with nil
stack traceback:

123:
if EnableAAC[0] then
        if dialogId == 25194 and title:match("Подтверждение") then
            for line in text:gmatch("[^\n]+") do
                local money = line:gsub('{......}', ''):match('%- Текущая стоимость аренды: %$(%d+) в 1 минуту')
                if money <= LimitAAC[0] then
                    sampAddChatMessage('хуй', -1)
                end
            end
        end
    end
 

Rice.

Известный
Модератор
1,697
1,461
Вроде как круто, работает. Терь вопросик маленький и всё. Как сравнить чёто с числом из mimgui, сперва я понял что .v нахуй не нудна используем [0]. Терь ток пишет про
attempt to compare number with nil
stack traceback:

123:
if EnableAAC[0] then
        if dialogId == 25194 and title:match("Подтверждение") then
            for line in text:gmatch("[^\n]+") do
                local money = line:gsub('{......}', ''):match('%- Текущая стоимость аренды: %$(%d+) в 1 минуту')
                if money <= LimitAAC[0] then
                    sampAddChatMessage('хуй', -1)
                end
            end
        end
    end
Lua:
if tonumber(money) <= LimitAAC[0] then
 

Dewize

Известный
Автор темы
437
88
attempt to call global 'str' (a nil value)
stack traceback:
Попробуй if tonumber(money) <= str(LimitAAC) then
И проверь существование переменной money

ну так потому что нужно сначала проверить существование переменной money, а потом только её сравнивать
то есть? Я тупой как ишак