- 120
- 9
- Версия MoonLoader
- Другое
Добрый вечер. Пытаюсь сделать логирование открытых рулеток / тайников (нужно именно знать, какая рулетка / тайник и какой стафф падает) и возникает такая проблема : Если открываю тайник ViceCity, то он записывается в таблицу один раз (как и должно), но если открываю тайник Илона Маска, то он дублируется три раза.
Совершенно точно вся загвоздка в том, что Тайник Vice City выводится в двух строках(пример под спойлером), а тайник Илона Маска в одну строку, по этому обращаюсь к гуру форума за помощью.
Заранее спасибо!
И еще вопрос:
есть текст из chatlog
Как сделать так, что бы если найдена первая строка, то например, со второй бралось ник?
Ниже моя реализация, которая не работает, но по отдельности все выводит
Совершенно точно вся загвоздка в том, что Тайник Vice City выводится в двух строках(пример под спойлером), а тайник Илона Маска в одну строку, по этому обращаюсь к гуру форума за помощью.
Заранее спасибо!
[Информация] {ffffff}Вы использовали тайник Илона Маска и получили Ларец Super Car!
Вы открыли Тайник Лос Сантоса!
[Информация] {ffffff}Получено: Ларец организации и Rare Box Yellow!
Вы открыли Тайник Vice City!
[Информация] {ffffff}Получено: Ларец организации и Rare Box Yellow!
[Информация] {ffffff}Вы использовали сундук с рулетками и получили платиновую рулетку!
[Информация] {ffffff}Вы использовали платиновый сундук с рулетками и получили бронзовую рулетку!
Вы открыли Тайник Лос Сантоса!
[Информация] {ffffff}Получено: Ларец организации и Rare Box Yellow!
Вы открыли Тайник Vice City!
[Информация] {ffffff}Получено: Ларец организации и Rare Box Yellow!
[Информация] {ffffff}Вы использовали сундук с рулетками и получили платиновую рулетку!
[Информация] {ffffff}Вы использовали платиновый сундук с рулетками и получили бронзовую рулетку!
[15:15:09] Вы открыли Тайник Vice City!
[15:15:09] [Информация] {ffffff}Получено: Ларец организации и Rare Box Yellow!
[15:15:09] [Информация] {ffffff}Получено: Ларец организации и Rare Box Yellow!
Lua:
function sampev.onServerMessage(color, text)
local pattern = {
{hook = "%[Информация%] {ffffff}Вы использовали тайник Илона Маска", subhook = " и получили (.*)", key = 1},
{hook = "%[Информация%] {ffffff}Вы использовали сундук с рулетками", subhook = " и получили (.*)", key = 2},
{hook = "%[Информация%] {ffffff}Вы использовали платиновый сундук с рулетками", subhook = " и получили (.*)", key = 3},
{hook = "Вы открыли Тайник Vice City!", subhook = "%[Информация%] {ffffff}Получено: (.+)", key = 4}
}
for k, v in ipairs(pattern) do
if string.find(text, v.subhook) then
local item = text:match(v.subhook)
table.insert(staff_on_roulette, {item, v.key})
end
end
end
И еще вопрос:
есть текст из chatlog
Код:
{079C1C}Объявление: Работает СМИ г. Лос Сантос. Ждем ваших обьявлений!. View_Sonic[448] Тел. 1919838
{079C1C} Отредактировал сотрудник СМИ [ LS ] : View_Sonic[448]
Как сделать так, что бы если найдена первая строка, то например, со второй бралось ник?
Ниже моя реализация, которая не работает, но по отдельности все выводит
Lua:
local patter_two = {
{text = "{079C1C}Объявление: .*. %w+_%w+%[%d+] Тел. .*"},
{text = "{079C1C} Отредактировал сотрудник СМИ%s%[%s.+%s] : (%w+_%w+)%[%d+]"}
}
for s, z in ipairs(patter_two) do
if string.find(text, v.text) then
local item = text:match(v.text)
sampAddChatMessage(item,-1)
end
end
Последнее редактирование: