Как работать с кириллицей в Lua?

dsdsgdsgdsgdsgdsgdsg

Новичок
Автор темы
8
0
Версия MoonLoader
.026-beta
Привет. Я делаю скриптик на lua для себя. И вот, мне нужно сравнить строку с шаблоном: "Don_Morenzo купил у вас Праздничное яйцо (пасха) (6 шт.), вы получили $288000 от продажи (комиссия 4 процент(а))". Я это делаю так:
Код:
function events.onServerMessage(clr, text)
  if text:find("%a купил у вас %a (&d шт.), вы получили $%d от продажи (комиссия 4 процент(а))") then
    sampAddChatMessage("Work", -1)
  end
end
Но вот оно не ищет так. Я так понял, это проблема с кодировкой, ведь когда я делал поиск с английскими символами, все работало. Может кто помочь разобраться в проблеме?
 
Решение
Без имени-1.png

dsdsgdsgdsgdsgdsgdsg

Новичок
Автор темы
8
0
😍
Скинь скрин строки в чате

Во-первых, нужно экранировать скобки.
text:find("%a купил у вас %a %(&d шт.%), вы получили $%d от продажи %(комиссия 4 процент%(а%)%)"%) then

Так же, может быть проблема из-за цвета. Если строка выглядит так, например: (после отправки ответа строка возвращается в дефолт цвет 🤐)
Посмотреть вложение 146791
То нужно перед изменением цвета добавить {......} (шесть точек в скобках), это чтобы экранировать код цвета
text:find("%a купил у вас %a %(&d шт.%), {......}вы получили $%d от продажи %(комиссия 4 процент%(а%)%)"%)
А можешь подсказать как взять эти параметры для дальнейшей обработки? То есть записать в какую нибудь переменную ник.
 

Sidney31

Известный
1,124
385
Lua:
local nick = '' --создание локальной переменной

function sampev.onServerMessage(color, text)
    if text:find('Администратор (%w+_%w+)') then -- проверка на существование объекта в строке
      nick = text:match(('Администратор (%w+_%w+)')) -- в переменную nick запишет ник
    end
end

Советую - https://www.blast.hk/threads/62661/