Пишу бота который ищет совпадения в сообщении по нескольким критериям (заранее определенным словам).
Этот скрипт одно слово определяет нормально, больше одного слова определяет очень криво. Кто может подсказать что не так?
Нужно чтоб алгоритм оповещал при нахождении в сообщении всех заранее указанных слов
Этот скрипт одно слово определяет нормально, больше одного слова определяет очень криво. Кто может подсказать что не так?
Нужно чтоб алгоритм оповещал при нахождении в сообщении всех заранее указанных слов
Lua:
local warning_messages = {
-- #1
{
["text"]={"111","a"}
},
-- #2
{
["text"]={"222", "b"}
},
-- #3
{
["text"]={"333", "c"}
}
}
function event.onServerMessage(color, text)
for w_m_i = 1, #warning_messages do -- цикл перебора массива warning_messages
local result = true
for t_i = 1, #warning_messages[w_m_i]["text"] do -- цикл перебора массива фраз
if text:find(warning_messages[w_m_i]["text"][t_i]) == nil then
result = false -- если result = false значит минимум одно слово в сообщении не найдено
break
end
end
-- если в сообщении найдены оба слова то срабатывает условие
if result == true then
sampAddChatMessage("нашел", -1)
break
end
end
end