function msgcontains(msg, what)
msg = msg:lower()
-- Should be replaced by a more complete parser
if type(what) == "string" and string.find(what, "|", 1, true) ~= nil then
what = what:explode("|")
end
-- Check recursively if what is a table
if type(what) == "table" then
for _, v in ipairs(what) do
if msgcontains(msg, v) then
return true
end
end
return false
end
what = string.gsub(what, "[%%%^%$%(%)%.%[%]%*%+%-%?]", function(s) return "%" .. s end)
return string.match(msg, what) ~= nil
end
Эта функция используется на сервере RPG, в основном я пытаюсь соответствовать тому, что говорит игрокПопытка проверить, если строка содержит данное слово
например; если msgcontains (MSG, «привет»), то
тзд = сообщение игрок послал
Однако, это ничего подобного «yesimstupid привет» соответствие, это действительно не должно совпадать, потому что «привет «Нет ни слова, никаких идей, что я могу сделать? T_T
Попробуйте 'return string.match ('' ..msg .. '', '% W' .. что .. '% W') ~ = nil' –