Хук строки

James Hawk

Известный
Автор темы
919
218
Lua:
local _, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
localNick = sampGetPlayerNickname(id) -- получаю свой никнейм
local text, _, _, _ = sampGetChatString(99)
if text:find(localNick.." myText") then  -- в чате должно быть "Nick_Name myText"
   -- code
end
Никакой реакции. Где я накосячил? В text:find нельзя так юзать переменную?
 

CatKnight

Известный
148
55
Всё можно. Насколько помню, _ - спецсимвол в регулярных выражениях. Попробуй либо его экранировать, либо задать четвертым аргументом в find отключение регулярных выражений. Либо ещё вариант изначально делать первую проверку по шаблону (%S+) и уже потом через string.match или тот же string.find доставать подстроку, подходящую под твоё выражение, и сравнивать её со своим ником. Хотя это уже можно извращением назвать.

Lua:
-- Ищет первое вхождение шаблона pattern в строку s
-- В случае ошибки возвращает nil
-- По умолчанию start_pos = 1
-- Если bool_plain=true, то регулярные выражения отключаются
string.find(s, pattern [, start_pos [, bool_plain]])
 
Последнее редактирование:

James Hawk

Известный
Автор темы
919
218
Всё можно. Насколько помню, _ - спецсимвол в регулярных выражениях. Попробуй либо его экранировать, либо задать четвертым аргументом в find отключение регулярных выражений. Либо ещё вариант изначально делать первую проверку по шаблону (%S+) и уже потом через string.match или тот же string.find доставать подстроку, подходящую под твоё выражение, и сравнивать её со своим ником. Хотя это уже можно извращением назвать.

Lua:
-- Ищет первое вхождение шаблона pattern в строку s
-- В случае ошибки возвращает nil
-- По умолчанию start_pos = 1
-- Если bool_plain=true, то регулярные выражения отключаются
string.find(s, pattern [, start_pos [, bool_plain]])
Это так должно оглашаться, если я правильно понял?
Lua:
text:find(localNick.." myText" ,, _)