Не могу хукнуть этот текст

shawtyglock.

Активный
Автор темы
184
57
Версия SA-MP
  1. 0.3.7 (R1)
Текст (ChatLog):
[Аренда]{ffffff} Вы успешно сдали предмет Супер-кирка в аренду на 1 часов за $900.000 (Комиссия 10 процентов)

Нерабочий вариант:

Lua:
--OnServerMessage
if text:find("%[Аренда%]{ffffff} Вы успешно сдали предмет Супер-кирка в аренду на (%d+) часов за%s%$%d+ %(Комиссия %d+ процентов%)") then
    local hour, earning = text:gsub(",", ""):gsub('%.', ''):match("%[Аренда%]{ffffff} Вы успешно сдали предмет Супер-кирка в аренду на (%d+) часов за%s%$(%d+) %(Комиссия %d+ процентов%)")
    print("На: "..hour.." часов, за "..earning.."$")
end

В душе не чаю что не так, вроде всё так.
Не выполняется условие - не выводится текст в консоль, если бы выполнялось, но с хуком было что-то не то, то скрипт бы крашило из-за того, что переменные ничему не равны
 

neverlane

t.me/neverlane00
Друг
998
1,143
Lua:
if text:find('%[Аренда%]%{ffffff%} Вы успешно сдали предмет Супер%-кирка в аренду на (%d+) часов за %$([%d%.]+) %(Комиссия (%d+) процентов%)') then
  local hours, money, comka = text:match('%[Аренда%]%{ffffff%} Вы успешно сдали предмет Супер%-кирка в аренду на (%d+) часов за %$([%d%.]+) %(Комиссия (%d+) процентов%)');
  print(hours, money, comka);
end

1665503298696.png
 
  • Нравится
Реакции: YarikVL

YarikVL

Известный
Проверенный
4,812
1,819
Текст (ChatLog):
[Аренда]{ffffff} Вы успешно сдали предмет Супер-кирка в аренду на 1 часов за $900.000 (Комиссия 10 процентов)

Нерабочий вариант:

Lua:
--OnServerMessage
if text:find("%[Аренда%]{ffffff} Вы успешно сдали предмет Супер-кирка в аренду на (%d+) часов за%s%$%d+ %(Комиссия %d+ процентов%)") then
    local hour, earning = text:gsub(",", ""):gsub('%.', ''):match("%[Аренда%]{ffffff} Вы успешно сдали предмет Супер-кирка в аренду на (%d+) часов за%s%$(%d+) %(Комиссия %d+ процентов%)")
    print("На: "..hour.." часов, за "..earning.."$")
end

В душе не чаю что не так, вроде всё так.
Не выполняется условие - не выводится текст в консоль, если бы выполнялось, но с хуком было что-то не то, то скрипт бы крашило из-за того, что переменные ничему не равны
Регулярка %d+ точки не распознает, я юзаю обычно .+ т.е любой символ
36860DC5-6D5D-429B-89FB-C63A4F9B4250.jpeg
 

shawtyglock.

Активный
Автор темы
184
57
Lua:
if text:find('%[Аренда%]%{ffffff%} Вы успешно сдали предмет Супер%-кирка в аренду на (%d+) часов за %$([%d%.]+) %(Комиссия (%d+) процентов%)') then
  local hours, money, comka = text:match('%[Аренда%]%{ffffff%} Вы успешно сдали предмет Супер%-кирка в аренду на (%d+) часов за %$([%d%.]+) %(Комиссия (%d+) процентов%)');
  print(hours, money, comka);
end

Посмотреть вложение 172675
Вообще не выкупил что это такое, как это работает и с чем его едят:
%$([%d%.]+)
Но я сделал так, действительно чего не хватало, так это экранизирование спец.символа
Lua:
if text:find("%[Аренда%]{ffffff} Вы успешно сдали предмет Супер%-кирка в аренду на %d+ часов за") then
    local hour, earning = text:gsub(",", ""):gsub('%.', ''):match("%[Аренда%]{ffffff} Вы успешно сдали предмет Супер%-кирка в аренду на (%d+) часов за%s%$(%d+) %(Комиссия %d+ процентов%)")
    print("На: "..hour.." часов, за "..earning.."$")