Вопрос по поиску слов в чате и активации.

Kirill Dumchik

Участник
Автор темы
61
3
Версия MoonLoader
Другое
Нашел где-то такой вот код. Его суть должна быть в том, что он ищет слово в чате, пишет тебе от этом - срабатывает по нажатию.
Поставил его, но вылезает ошибка следующего содержания:


[ML] (error) Key_lost_ve.lua: C:\SAMPS\GTA 130K BY DAPO SHOW\moonloader\Key_lost_ve.lua:43: attempt to call field 'rlower' (a nil value)
stack traceback:
C:\SAMPS\GTA 130K BY DAPO SHOW\moonloader\Key_lost_ve.lua:43: in function 'callback'
...TA 130K BY DAPO SHOW\moonloader\lib\samp\events\core.lua:80: in function <...TA 130K BY DAPO SHOW\moonloader\lib\samp\events\core.lua:54>
[ML] (error) Key_lost_ve.lua: Script died due to an error. (1D48CA0C)

Сам код:
Lua:
local vk = require "vkeys"
local se = require "lib.samp.events"
local timer = 0
local mat = {"mq", "пдр"}

function main()
while not isSampAvailable() do
wait(0)
end
while true do wait(0)
if searchMat then
local tick = os.clock() * 1000
if tick - timer > 30 * 1000 then -- Время на ответ 30 сек, если больше то удаляем ник и выключаем кнопки
searchMat = false
playerNameMat = nil
end
if isKeyCheckAvailable() then
-- Кнопка для отмены
if isKeyJustPressed(vk.VK_ESCAPE) then
searchMat = false
playerNameMat = nil
sampAddChatMessage("Вы отменили мут", -1)
-- Кнопка для мута
elseif isKeyJustPressed(vk.VK_RETURN) then
if playerNameMat then
sampSendChat("/mute "..playerNameMat.." 30 мат") -- Мутим
end
end
end
end
end
end

-- events не забудь подключить
function se.onServerMessage(color, text)
-- Тут регулярка строки в которой искать
if text:find('- (.*) ((.*))$') then
local text, name = text:match('- (.*) ((.*))$')
if text and name then
-- Получает маты с таблицы
for key, val in pairs(mat) do
-- Приводим к одному регистру и сравниваем (мб будет проблема с русскими буквами. Ищи на бластер в сниперах функцию)
if string.rlower(text):find(string.rlower(val)) then
searchMat = true -- Активировали таймер
timer = os.clock() * 1000 -- Перезаписали время
playerNameMat = name -- Записали ник кто использовал мат
sampAddChatMessage("Обнаружено оскорбление от игрока "..name..". Было написано: "..val, -1)
sampAddChatMessage("Используйте кнопку ТУТ ТВОЯ КНОПКА для поддержания или ТУТ ТВОЯ КНОПКА для отмены мута.", -1)
end
end
end
end
end

-- Проверка на открытие диалога и консоли сампфункс, а так же чата
function isKeyCheckAvailable()
if not isSampLoaded() then
return true
end
if not isSampfuncsLoaded() then
return not sampIsChatInputActive() and not sampIsDialogActive()
end
return not sampIsChatInputActive() and not sampIsDialogActive() and not isSampfuncsConsoleActive()
end

Прошу небольшой помощи =)