финдит но не матчит

coldplugg.

Участник
Автор темы
180
22
Версия MoonLoader
.026-beta
есть диалог, из него нужно брать значения, код сам есть, если к примеру запринтить то все нормально, а если в переменные, то когда ее выводишь, оказывается nil.
Lua:
if dialogTitle:find('История наказания') and otdamhouse then
                for line in dialogText:gmatch('[^\n]+') do
                    if line:find('Администратор (.+)%[(%d+)%] посадил игрока (.+)%[(%d+)%] в деморган на (%d+) минут%. Причина: Опру дом %№(%d+)') then
                        local nickadm, idadm, nicklovec, idlovec, timeopra, idhouse = line:match('Администратор (.+)%[(%d+)%] посадил игрока (.+)%[(%d+)%] в деморган на (%d+) минут%. Причина: Опру дом %№(%d+)')
                        --sendInput('/a я уебище')
                    end   
                end
                return false
            end
что в сендинпуте - проверял, все нормально
1673782792861.png
 
Решение
ладно, посмеялся и хватит
Lua:
local text = "Администратор CoolidgeBot[0] посадил игрока Cold[2] в деморган на 2999 минут. Причина: Опру дом №121 (1.64сек.)"

if text:find("Администратор %S+%[%d+%] посадил игрока %S+%[%d+%] в деморган на %d+ минут%. Причина: Опру дом №%d+ %(%d+%p%d+сек") then
    local AdminNick, AdminID, PlayerNick, PlayerId, Time, HouseId = text:match("Администратор (%S+)%[(%d+)%] посадил игрока (%S+)%[(%d+)%] в деморган на (%d+) минут%. Причина: Опру дом №(%d+) %(%d+%p%d+сек")
    print(AdminNick, AdminID, PlayerNick, PlayerId, Time, HouseId)
end
1673787731676.png

shawtyglock.

Активный
188
63
Lua:
local text = 'Администратор CoolidgeBot[0] посадил игрока Cold[2] в деморган на 2999 минут. Причина: Опру дом №121 (1.64сек.)'
if text:find('Администратор (.+)%[(%d+)%] посадил игрока (.+)%[(%d+)%] в деморган на %d+ минут%. Причина: Опру дом №(%d+) %((.+)сек%.%)*') then
    local AdminNick, AdminID, PlayerNick, PlayerId, jailTime, HouseId, Time = text:match('Администратор (.+)%[(%d+)%] посадил игрока (.+)%[(%d+)%] в деморган на (%d+) минут%. Причина: Опру дом №(%d+) %((.+)сек%.%)*')
    print('Ник админа: ', AdminNick, 'Айди админа: ', AdminID, 'Ник игрока: ', PlayerNick, 'Айди игрока:', PlayerId, 'Деморган:', jailTime, 'Дом:', HouseId, 'Словил за:', Time)
end

1673788289789.png


В твоем коде ошибка:

Lua:
if dialogTitle:find('История наказания') and otdamhouse then
    for line in dialogText:gmatch('[^\n]+') do
        if line:find('Администратор (.+)%[(%d+)%] посадил игрока (.+)%[(%d+)%] в деморган на (%d+) минут%. Причина: Опру дом %№(%d+)') then -- Не нужно экранизировать №
            local nickadm, idadm, nicklovec, idlovec, timeopra, idhouse = line:match('Администратор (.+)%[(%d+)%] посадил игрока (.+)%[(%d+)%] в деморган на (%d+) минут%. Причина: Опру дом %№(%d+)')
            --sendInput('/a я уебище')
        end
    end
    return false
end
 
Последнее редактирование:

coldplugg.

Участник
Автор темы
180
22
Lua:
local text = "Администратор CoolidgeBot[0] посадил игрока Cold[2] в деморган на 2999 минут. Причина: Опру дом №121 (1.64сек.)"

if text:find("Администратор %S+%[%d+%] посадил игрока %S+%[%d+%] в деморган на %d+ минут%. Причина: Опру дом №%d+ %(%d+%p%d+сек") then
    local AdminNick, AdminID, PlayerNick, PlayerId, Time, HouseId = text:match("Администратор (%S+)%[(%d+)%] посадил игрока (%S+)%[(%d+)%] в деморган на (%d+) минут%. Причина: Опру дом №(%d+) %(%d+%p%d+сек")
    print(AdminNick, AdminID, PlayerNick, PlayerId, Time, HouseId)
end
Посмотреть вложение 186081
сяб