Lua Samp получение определённого текста из строки

Lertex

Участник
Автор темы
30
0
Версия MoonLoader
.027.0-preview
Всем привет! Хочу написать код, который ищет текст в чате и потом получает определённые значения из строки.
Пример такого сообщения: "SMS | (Ку) | Отправитель: (Nick_Name) [т. (123456)]" То что я выделил в круглые скобки надо получить, пытался делать, но скрипт не находит сообщения в чате. Помогите пж
Код:
local nick = "Nick_Name"
local font = renderCreateFont('Arial', 10, 5)
function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end
    while not isSampAvailable() do wait(0) end
    nick = sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(playerPed)))
    sampRegisterChatCommand("lich", function()
        active = not active
        sampAddChatMessage('{C3C3C3}Помощь '..(active and '{6EF83C}включена, {FFAF00}by Lertex' or '{FF0000}выключена, {FFAF00}by Lertex'), -1)
    end)
    while true do wait(0)
        if active then
            renderFontDrawText(font, '{C3C3C3}Нум1 - Приветствие\nНум2 - Прайс\nНум3 - Тип выдача\nНум4 - проф права\nНум5 - оружие\nНум6 - рыбалка(40к)\nНум7 - Охота(30к)\nНум8 - Обычные права', 25, 345, 0xFFFFFFFF, 0x90000000)
        end
    end
end

require('samp.events').onServerMessage = function(color, text, message, messageType)
    lua_thread.create(function()
        if active then
            if text:find(nick.." убрав канцелярские принадлежности в чемодан с документами, закрывает его") then
                wait(300)
                sampAddChatMessage('{6EF83C}AHK завершил свою работу', -1)
            end
            if text:match("SMS | | Отправитель: (%a+_%a+) \[т. (%d+)\]") then
                nickp = text:match("SMS | | Отправитель: (%a+_%a+) \[т. %d+\]")
                num = text:match("SMS | | Отправитель: %a+_%a+ \[т. (%d+)\]")
                print(nickp, "\n", num)
            end
            if text:match("%a+_%a+ Предлагает починить Ваш транспорт за (%d+) руб") then
                price = text:match("%a+_%a+ Предлагает починить Ваш транспорт за (%d+) руб")
                print(price)
                wait(100)
                sampAddChatMessage('Получено!', -1)
            end
        end
    end)
end
 

Lance_Sterling

Известный
978
342
Lua:
local msg, nick, number = text:match('SMS | (.+) | Отправитель: (.+) %[т%. (%d+)%]')

 
Последнее редактирование: