text:match

Lertex

Участник
Автор темы
30
0
Версия MoonLoader
.027.0-preview
Всем привет. Помогите из сообщения получить что взял игрок и во сколько
Сообщение из чат лога: [18:05:18] Ruslan_Ludomankin [296] взял со склада Дигл {FA5835}(-40 ед. материалов)
Сообщение в игре:
sa-mp-045.png

Надо получить "Дигл" и время. Помогите пж
 
Решение
Всем привет. Помогите из сообщения получить что взял игрок и во сколько
Сообщение из чат лога: [18:05:18] Ruslan_Ludomankin [296] взял со склада Дигл {FA5835}(-40 ед. материалов)
Сообщение в игре: Посмотреть вложение 197639
Надо получить "Дигл" и время. Помогите пж
Lua:
t = {}
--в событии onServerMessage
if text:find("(.+)%[(%d+)%] взял со склада (.+) %{......%}%((.+) ед. материалов%)")
    nick, id, weapon = text:match("(.+)%[(%d+)%] взял со склада (.+) %{......%}%((.+) ед. материалов%)")
    table.insert(t, weapon)
    -- а время через os.time() можешь сделать
end

YarikVL

Известный
Проверенный
4,750
1,815
Всем привет. Помогите из сообщения получить что взял игрок и во сколько
Сообщение из чат лога: [18:05:18] Ruslan_Ludomankin [296] взял со склада Дигл {FA5835}(-40 ед. материалов)
Сообщение в игре: Посмотреть вложение 197639
Надо получить "Дигл" и время. Помогите пж
Lua:
t = {}
--в событии onServerMessage
if text:find("(.+)%[(%d+)%] взял со склада (.+) %{......%}%((.+) ед. материалов%)")
    nick, id, weapon = text:match("(.+)%[(%d+)%] взял со склада (.+) %{......%}%((.+) ед. материалов%)")
    table.insert(t, weapon)
    -- а время через os.time() можешь сделать
end
 
  • Нравится
Реакции: Lertex

Andrinall

Известный
701
518
Всем привет. Помогите из сообщения получить что взял игрок и во сколько
Сообщение из чат лога: [18:05:18] Ruslan_Ludomankin [296] взял со склада Дигл {FA5835}(-40 ед. материалов)
Сообщение в игре: Посмотреть вложение 197639
Надо получить "Дигл" и время. Помогите пж
Lua:
local ev = require 'lib.samp.events'
function ev.onServerMessage(color, text)
    local temp = text:gsub("{%x+}", "")
    if temp:find("%w+_%w+ %[%d+%] взял со склада") then
        local time, nickname, id, gun, materials = os.date("%H:%M:%S"), temp:match("^(%w+_%w+)%s%[(%d+)%] взял со склада (.+) %(([%-%+%d]) ед%. материалов$")
        --[[
        time = 18:05:18
        nickname = Ruslan_Ludomankin
        id = 296
        materials = -40 ( при желании можно перевести в tonumber )
        ]]
    end
end
 
  • Нравится
Реакции: YarikVL и Lertex