Помогите пожалуйста с правкой кода RPchat.lua

Targoo

Известный
Автор темы
1
0
Версия MoonLoader
.025-beta
код:
require 'lib.moonloader'

local e = require 'lib.samp.events'

local status = false

function main()

    while not isSampAvailable() do wait(100) end

    sampRegisterChatCommand('rp', function() status = not status printStringNow(status and 'RPChat ~g~ON' or 'RPChat ~r~OFF', 1000) end)

    sampRegisterChatCommand('cc', function() for i = 1, 99 do sampAddChatMessage('', -1) end end)

    wait(-1)

end

function e.onServerMessage(color, text)

    if status then

        sampfuncsLog(string.format('{%s}[%s] %s', tostring(bit.tohex(color)):sub(1, 6), os.date('%X'), text))

        if text:find('((', 1, true) or text:find('))', 1, true) or text:find('Ответ от администратора') then

            if tostring(bit.tohex(color)) ~= 'e75480ff' and tostring(bit.tohex(color)) ~= '6699ffaa' then

                addOneOffSound(0, 0, 0, 1138)

                return false

            end

        end

        if not isRolePlay(color, text) then return false end

    end

end

function isRolePlay(c, t)

    return tostring(bit.tohex(c)) == 'e75480ff'

    or tostring(bit.tohex(c)) == 'e6e6e6e6'

    or tostring(bit.tohex(c)) == '6e6e6e6e'

    or tostring(bit.tohex(c)) == '8c8c8c8c'

    or tostring(bit.tohex(c)) == 'aaaaaaaa'

    or tostring(bit.tohex(c)) == '00c6ffff'

    or tostring(bit.tohex(c)) == 'c8c8c8c8'

    or tostring(bit.tohex(c)) == 'ffff00aa' -- мегафон

    or tostring(bit.tohex(c)) == 'ff9945aa' -- микрофон

    or tostring(bit.tohex(c)) == 'ffffccaa' -- /r

    or tostring(bit.tohex(c)) == 'e6e6b8aa' -- /rr

    or t:find('[Телефон]', 1, true)

    or t:find('[Дверь]', 1, true)

end

Это луа скрипт который скрывает из основного чата сообщения и выводит их в консоль SF со звуковым сигналом. Можете подсказать как его подправить что бы он убирал только строчки в которых есть (( )) эти скобочки, а также уведомлял звуковым сигналом о том что эта строчка перенесена в консоль сампфункс.
 
Последнее редактирование:

qdIbp

Автор темы
Проверенный
1,444
1,185
Tak?
Lua:
require('lib.moonloader')
local e = require('lib.samp.events')

local status = false

function main()
    while (not isSampAvailable()) do
        wait(100)
    end

    sampRegisterChatCommand('rp', function()
        status = not status
        printStringNow(status and 'RPChat ~g~ON' or 'RPChat ~r~OFF', 1000)
    end)

    sampRegisterChatCommand('cc', function()
        for i = 1, 99 do
            sampAddChatMessage('', -1)
        end
    end)
    wait(-1)
end

function e.onServerMessage(color, text)
    if status then
        sampfuncsLog(string.format('{%s}[%s] %s', tostring(bit.tohex(color)):sub(1, 6), os.date('%X'), text))
        if string.find(text, '%(%(', 1, true) or string.find(text, '%)%)', 1, true) or string.find(text, 'Ответ от администратора') then
            if tostring(bit.tohex(color)) ~= 'e75480ff' and tostring(bit.tohex(color)) ~= '6699ffaa' then
                addOneOffSound(0, 0, 0, 1138)
                return false
            end
        end
        return not(isRolePlay(color, text))
    end
end

local TalbeColor = {
    'e75480ff',
    'e6e6e6e6',
    '6e6e6e6e',
    '8c8c8c8c',
    'aaaaaaaa',
    '00c6ffff',
    'c8c8c8c8',
    'ffff00aa', -- мегафон
    'ff9945aa', -- микрофон
    'ffffccaa', -- /r
    'e6e6b8aa', -- /rr
}

function isRolePlay(c, t)
    for i = 1, #TalbeColor do
        if tostring(bit.tohex(c)) == TalbeColor[i] then
            return true
        end
    end
    return string.find(t,'[Телефон]', 1, true) or string.find(t, '[Дверь]', 1, true)
end