не захватывает текст samp.events

.KOHTOP.

Активный
Автор темы
226
35
Версия MoonLoader
.027.0-preview
Сделал, чтобы захватывало текст, но он не захватывает
1707981514078.png

Lua:
        if text:find('%{......%}(%w+_%w+)%[(%d+)%] - %[(%d+) lvl%] -%{......%} %[AFK: (%d+)%]%{......%}. Репутация: (%d+) - Выговоры %[(%d)/3]') then
            nickcheck, idcheck, lvlcheck, afkcheck, repcheck, vigcheck = text:match('%{......%}(%w+_%w+)%[(%d+)%] - %[(%d+) lvl%] -%{......%} %[AFK: (%d+)%]%{......%}. Репутация: (%d+) - Выговоры %[(%d)/3]')
            wait(300)
            sampAddChatMessage(nickcheck ..' '..idcheck..' '..lvlcheck..' '..afkcheck ..' '..repcheck..' '..vigcheck, -1)
        end

[17:09:12] Администрация онлайн: (в сети: 1, из них в АФК: 0)
[17:09:12] {fefe22}Anubis_Tools[0] - [3 lvl] -{FFFFFF} [AFK: 0]{FFFFFF}. Репутация: 21 - Выговоры [0/3]
[17:09:12] {fefe22}Kohtop[1] - [3 lvl] -{FFFFFF} [AFK: 0]{FFFFFF}. Репутация: 25 - Выговоры [0/3]
 
Решение
Сделал, чтобы захватывало текст, но он не захватывает
Посмотреть вложение 232095
Lua:
        if text:find('%{......%}(%w+_%w+)%[(%d+)%] - %[(%d+) lvl%] -%{......%} %[AFK: (%d+)%]%{......%}. Репутация: (%d+) - Выговоры %[(%d)/3]') then
            nickcheck, idcheck, lvlcheck, afkcheck, repcheck, vigcheck = text:match('%{......%}(%w+_%w+)%[(%d+)%] - %[(%d+) lvl%] -%{......%} %[AFK: (%d+)%]%{......%}. Репутация: (%d+) - Выговоры %[(%d)/3]')
            wait(300)
            sampAddChatMessage(nickcheck ..' '..idcheck..' '..lvlcheck..' '..afkcheck ..' '..repcheck..' '..vigcheck, -1)
        end

[17:09:12] Администрация онлайн: (в сети: 1, из них в АФК: 0)
[17:09:12] {fefe22}Anubis_Tools[0] - [3 lvl] -{FFFFFF} [AFK: 0]{FFFFFF}...

whyega52

Eblang головного мозга
Модератор
2,866
2,845
Сделал, чтобы захватывало текст, но он не захватывает
Посмотреть вложение 232095
Lua:
        if text:find('%{......%}(%w+_%w+)%[(%d+)%] - %[(%d+) lvl%] -%{......%} %[AFK: (%d+)%]%{......%}. Репутация: (%d+) - Выговоры %[(%d)/3]') then
            nickcheck, idcheck, lvlcheck, afkcheck, repcheck, vigcheck = text:match('%{......%}(%w+_%w+)%[(%d+)%] - %[(%d+) lvl%] -%{......%} %[AFK: (%d+)%]%{......%}. Репутация: (%d+) - Выговоры %[(%d)/3]')
            wait(300)
            sampAddChatMessage(nickcheck ..' '..idcheck..' '..lvlcheck..' '..afkcheck ..' '..repcheck..' '..vigcheck, -1)
        end

[17:09:12] Администрация онлайн: (в сети: 1, из них в АФК: 0)
[17:09:12] {fefe22}Anubis_Tools[0] - [3 lvl] -{FFFFFF} [AFK: 0]{FFFFFF}. Репутация: 21 - Выговоры [0/3]
[17:09:12] {fefe22}Kohtop[1] - [3 lvl] -{FFFFFF} [AFK: 0]{FFFFFF}. Репутация: 25 - Выговоры [0/3]
- тоже надо экранировать
Lua:
local nickcheck, idcheck, lvlcheck, afkcheck, repcheck, vigcheck = text:match('%{......%}(%w+_%w+)%[(%d+)%] %- %[(%d+) lvl%] %-%{......%} %[AFK: (%d+)%]%{......%}. Репутация: (%d+) %- Выговоры %[(%d)/3]')
if nickcheck and idcheck and lvlcheck and afkcheck and repcheck and vigcheck then
    wait(300)
    sampAddChatMessage(nickcheck ..' '..idcheck..' '..lvlcheck..' '..afkcheck ..' '..repcheck..' '..vigcheck, -1)
end
 
  • Нравится
Реакции: Fott

Fott

Простреленный
3,468
2,393
Спасибо! Не знал
 

.KOHTOP.

Активный
Автор темы
226
35
- тоже надо экранировать
Lua:
local nickcheck, idcheck, lvlcheck, afkcheck, repcheck, vigcheck = text:match('%{......%}(%w+_%w+)%[(%d+)%] %- %[(%d+) lvl%] %-%{......%} %[AFK: (%d+)%]%{......%}. Репутация: (%d+) %- Выговоры %[(%d)/3]')
if nickcheck and idcheck and lvlcheck and afkcheck and repcheck and vigcheck then
    wait(300)
    sampAddChatMessage(nickcheck ..' '..idcheck..' '..lvlcheck..' '..afkcheck ..' '..repcheck..' '..vigcheck, -1)
end
как сделать, чтобы 2 результата вывести в переменную? Мне нужно потом в rendertext вывести

читал уже, возможно не увидел
 

whyega52

Eblang головного мозга
Модератор
2,866
2,845
захватывать текст с чата и выводить в renderText, проблема в том, что там много строк будет

Lua:
local str1 = "abc"
local str2 = "bca"
local str3 = "123"
local str4 = "321"

local text = ("1: %s. 2: %s. 3: %s. 4: %s"):format(str1, str2, str3, str4)
 

whyega52

Eblang головного мозга
Модератор
2,866
2,845
Lua:
local nickcheck, idcheck, lvlcheck, afkcheck, repcheck, vigcheck = text:match('%{......%}(%w+_%w+)%[(%d+)%] %- %[(%d+) lvl%] %-%{......%} %[AFK: (%d+)%]%{......%}. Репутация: (%d+) %- Выговоры %[(%d)/3]')
-- объединил ник и айди
local concated = nickcheck .. idcheck
sampAddChatMessagE(concated, -1)
 

.KOHTOP.

Активный
Автор темы
226
35
Lua:
local nickcheck, idcheck, lvlcheck, afkcheck, repcheck, vigcheck = text:match('%{......%}(%w+_%w+)%[(%d+)%] %- %[(%d+) lvl%] %-%{......%} %[AFK: (%d+)%]%{......%}. Репутация: (%d+) %- Выговоры %[(%d)/3]')
-- объединил ник и айди
local concated = nickcheck .. idcheck
sampAddChatMessagE(concated, -1)
Я тупой и я это знаю

Мне нужно, чтобы скрипт выводил
Код:
{fefe22}Anubis_Tools[0] - [3 lvl] -{FFFFFF} [AFK: 0]{FFFFFF}. Репутация: 21 - Выговоры [0/3]
{fefe22}Kohtop[1] - [3 lvl] -{FFFFFF} [AFK: 0]{FFFFFF}. Репутация: 25 - Выговоры [0/3]
 

Rice.

Известный
Модератор
1,753
1,661
Я тупой и я это знаю

Мне нужно, чтобы скрипт выводил
Код:
{fefe22}Anubis_Tools[0] - [3 lvl] -{FFFFFF} [AFK: 0]{FFFFFF}. Репутация: 21 - Выговоры [0/3]
{fefe22}Kohtop[1] - [3 lvl] -{FFFFFF} [AFK: 0]{FFFFFF}. Репутация: 25 - Выговоры [0/3]
Вместо (%w+_%w+) лучше юзать %S+
 

kyrtion

Известный
1,170
430
Вместо (%w+_%w+) лучше юзать %S+
лучше бы .-, рано или поздно кто-то укажет ник как числовой

Lua:
local textNoHex = text:gsub('{%x%x%x%x%x%x}', '')

if textNoHex:find('^.-%[%d+%] %- %[%d+ lvl%] %- %[AFK: %d+]%. Репутация: %d+ %- Выговоры %[%d+%/%d+%]$') then
    local nickname, id, lvl, afk, rep, awarn = textNoHex:match('^(.-)%[(%d+)%] %- %[(%d+) lvl%] %- %[AFK: (%d+)]%. Репутация: (%d+) %- Выговоры %[(%d+)/%d+%]$')
    print(nickname, id, lvl, afk, rep, awarn) -- debug
end
 
  • Эм
Реакции: Rice.

Rice.

Известный
Модератор
1,753
1,661
лучше бы .-, рано или поздно кто-то укажет ник как числовой

Lua:
local textNoHex = text:gsub('{%x%x%x%x%x%x}', '')

if textNoHex:find('^.-%[%d+%] %- %[%d+ lvl%] %- %[AFK: %d+]%. Репутация: %d+ %- Выговоры %[%d+%/%d+%]$') then
    local nickname, id, lvl, afk, rep, awarn = textNoHex:match('^(.-)%[(%d+)%] %- %[(%d+) lvl%] %- %[AFK: (%d+)]%. Репутация: (%d+) %- Выговоры %[(%d+)/%d+%]$')
    print(nickname, id, lvl, afk, rep, awarn) -- debug
end
1707988347081.png
 
  • Нравится
Реакции: kyrtion