Получение из чата цифр с символами

Петя ыыы

Новичок
Автор темы
5
0
Приветствую, решил научиться писать на lua и вот столкнулся с проблемой, научился брать из чата ники игроков, их id и прочее.
Но вот бывают моменты, когда надо взять к примеру IP игрока, там кроме цифр есть еще и точки между цифрами, и вот скрипт перестал работать.

Мой код:

Lua:
function sampev.onServerMessage(color, text)
    if text:find("Nick %[(.-)%] R-IP %[(%d+)%] IP | A-IP .-%[(%d+) %| (%d+)%]") then
        local nick, rip, aip, aip2 = text:match("Nick .-%[(.-)%] R-IP .-%[(%d+)%] IP | A-IP .-%[(%d+) %| (%d+)%]")
        sampAddChatMessage("Ник: ".. nick .. " Рег ип: ".. rip .. " Ласт ип: ".. aip .. aip2, 0xFFFFFF)
        sampAddChatMessage("+")
    end
end

Скриншот того, что мне нужно взять, IP заскрасил, но я думаю суть вы поняли
j3tu4-HK-Lo.jpg


Заранее спасибо за помощь)
 

srostok294

Участник
98
14
Самый первый IP адресс он тоже не видит
Lua:
function sampev.onServerMessage(color, text)
    if text:find("Nick %[(.*)%] R%-IP %[(.*)%] IP | A%-IP %[{......}(.*) | (.*){......}%]") then
        nick, rip, aip, aip2 = text:match("Nick %[(.*)%] R%-IP %[{......}(.*)%] IP | A%-IP %[(.*) | (.*){......}%]")
        sampAddChatMessage("Ник: ".. nick .. " Рег ип: ".. rip .. " Ласт ип: ".. aip .. aip2, 0xFFFFFF)
        sampAddChatMessage("+")
    end
end
 
Последнее редактирование:

sᴀxᴏɴ

#Mary
Всефорумный модератор
791
846
делал по скриншоту, если не работает, то кидай строку из чатлога
Lua:
local nick, rip, aip, aip2 = text:match("Nick %[(.+)%] R%-IP %[(.+)%] IP | A%-IP %[{......}(.+) | (.+){......}]")

Lua:
function sampev.onServerMessage(color, text)
    if text:find("Nick %[(.*)%] R%-IP %[(%d+)%] IP %| A%-IP %[{......}(%d+) %| (%d+){......}%]") then
        nick, rip, aip, aip2 = text:match("Nick %[(.8)%] R%-IP %[{......}(%d+)%] IP %| A%-IP %[(%d+) %| (%d+){......}%]")
        sampAddChatMessage("Ник: ".. nick .. " Рег ип: ".. rip .. " Ласт ип: ".. aip .. aip2, 0xFFFFFF)
        sampAddChatMessage("+")
    end
end
%d не будет матчить айпи т.к там есть точки
upd экранировать "|" не обязательно, это не magic character
 
Последнее редактирование:

Петя ыыы

Новичок
Автор темы
5
0
делал по скриншоту, если не работает, то кидай строку из чатлога
Lua:
local nick, rip, aip, aip2 = text:match("Nick %[(.+)%] R%-IP %[(.+)%] IP | A%-IP %[{......}(.+) | (.+){......}]")


%d не будет матчить айпи т.к там есть точки
upd экранировать "|" не обязательно, это не magic character
Не работает(
Вот чат лог: [00:03:29] Nick [Nick_Name] R-IP [85.249.00.00] IP | A-IP [{6AFF99}85.249.00.000 | 85.249.00.000{6ab1ff}]