Помогите допилить парсер переводов для mimgui – не видит сообщения в чате

SADISTCORE

Известный
Автор темы
107
27
Версия MoonLoader
.027.0-preview
Не могу завершить свой скрипт для мониторинга переводов, уже всю голову сломал.

Суть задачи:
Нужно парсить сообщения типа:
Код:
[Информация] {FFFFFF}Вы перевели 10.000.000 руб. игроку Имя Фамилия(22) на счет
и выводить в меню (Дата, Ник, Сумма). Но скрипт вообще не реагирует на эти сообщения.

Главная проблема:
Даже базовый print() не срабатывает – значит, сообщения вообще не детектятся.




Часть кода:
Lua:
local transfers = {}

function main()
    sampRegisterChatCommand('mtlog', function() show = not show end)
    
    while true do
        wait(0)
        local result, msg = sampGetChatString(0) -- Проверяю 0 слой
        if result and msg:find("Вы перевели") then
            -- Парсинг должен быть тут, но сюда код не заходит ВООБЩЕ
            print("Сообщение найдено!") -- Это не выводится :(
        end
    end
end




Что уже пробовал:
  1. Перебрал все слои чата (0-3) в sampGetChatString()
  2. Убирал цветовые коды {FFFFFF} через gsub
  3. Переписывал регулярку 10 раз по-разному
  4. Добавлял debug-сообщения в игровой чат




Главные вопросы:
1. Где я проебался?
2. Как правильно ловить именно системные сообщения о переводах?
3. Есть ли альтернатива sampGetChatString для этой задачи?

Заранее спасибо за помощь! Если видите очевидную ошибку – тыкните носом, для меня это важно.
 

Вложения

  • MoneyTransfer.lua
    2.5 KB · Просмотры: 0

chromiusj

Стань той переменой, которую хочешь увидеть в мире
Модератор
5,742
4,048
Как правильно ловить именно системные сообщения о переводах
в плане системные сообщения? это в любом случае серверные будут, да и что мешает onServerMessage использовать?
регулярка такой будет, скорее всего
("%[.+%] {.-}Вы перевели ([%d%.]+) руб%. игроку (.-)%((%d+)%) на счет")