Как запретить слова в различные чаты?

Dezmondli

Активный
Автор темы
405
78
Удаление решенного вопроса
Версия MoonLoader
.027.0-preview
Привет мне помогли сделать блокировку чата на некоторых словах только оно не работает в других чатах например /b /f /r Т.Д Вот пример видео моего скрпта оно блокает только обычный чат а надо чтобы всё
 
Решение
Привет мне помогли сделать блокировку чата на некоторых словах только оно не работает в других чатах например /b /f /r Т.Д Вот пример видео моего скрпта оно блокает только обычный чат а надо чтобы всё
Потому что обычные сообщения и команды это разные исходящие RPC.

Lua:
local ev = require 'samp.events'
local blacklisted_words = {'блять', 'хуй', 'пиздец'} -- сюда добавлять нужные слова 
function ev.onSendChat(text)
    text = string.nlower(text)
    for k, v in pairs(blacklisted_words) do 
        if text:find(v) then
            sampAddChatMessage('Сообщение не отправлено (запрещенное слово: "{ff004d}'..v..'{ffffff}")', -1)
            return false
        end
    end
end

function ev.onSendCommand(cmd)
    cmd...

bottom_text

Известный
673
322
Привет мне помогли сделать блокировку чата на некоторых словах только оно не работает в других чатах например /b /f /r Т.Д Вот пример видео моего скрпта оно блокает только обычный чат а надо чтобы всё
Потому что обычные сообщения и команды это разные исходящие RPC.

Lua:
local ev = require 'samp.events'
local blacklisted_words = {'блять', 'хуй', 'пиздец'} -- сюда добавлять нужные слова 
function ev.onSendChat(text)
    text = string.nlower(text)
    for k, v in pairs(blacklisted_words) do 
        if text:find(v) then
            sampAddChatMessage('Сообщение не отправлено (запрещенное слово: "{ff004d}'..v..'{ffffff}")', -1)
            return false
        end
    end
end

function ev.onSendCommand(cmd)
    cmd = string.nlower(cmd)
    for k, v in pairs(blacklisted_words) do 
        if cmd:find(v) then  
            sampAddChatMessage('Сообщение не отправлено (запрещенное слово: "{ff004d}'..v..'{ffffff}")', -1)
            return false
        end 
    end 
end
-- https://www.blast.hk/threads/13380/post-401197
--Чтобы работало хоть на капс, хоть на обычные сообщения
local lower, sub, char = string.lower, string.sub, string.char
local concat = table.concat
-- initialization table
local lu_rus, ul_rus = {}, {}
for i = 192, 223 do
    local A, a = char(i), char(i + 32)
    ul_rus[A] = a
    lu_rus[a] = A
end
local E, e = char(168), char(184)
ul_rus[E] = e
lu_rus[e] = E
function string.nlower(s)
    s = lower(s)
    local len, res = #s, {}
    for i = 1, len do
        local ch = sub(s, i, i)
        res[i] = ul_rus[ch] or ch
    end
    return concat(res)
end