Вроде чат-фильтра

Wycmpblu

Известный
Автор темы
152
31
Версия MoonLoader
.026-beta
Как сделать что-то вроде чат-фильтра? Тип ввел команду /aaa - игнорируется чат с тегом [bbb] (именно [bbb], а 'bbb' в счёт не шло), /xxx - игнорируется чат с тегом [yyy] и т.д. Заранее спасибо
 
Решение
Пример реализации через модуль samp.lua, можно также реализовать через onReceiveRPC, чтобы не тянуть зависимость в виде отдельного модуля.
Lua:
local sampev = require "lib.samp.events" -- портировали модуль
local nop_tag_bbb = false -- ввели булевую переменную

function main()
    -- здесь делаем проверки на загрузку сампа и сампункса, сразу при запуске не получится команду регнуть
    sampRegisterChatCommand("bbb", function()
        nop_tag_bbb = not nop_tag_bbb
    end)
    wait(-1)
end

function sampev.onServerMessage(_, text)
    if nop_tag_bbb and text:find("%[bbb%]") then
        return false
    end
end

DolgorukovGTA

Известный
Проверенный
652
345
Пример реализации через модуль samp.lua, можно также реализовать через onReceiveRPC, чтобы не тянуть зависимость в виде отдельного модуля.
Lua:
local sampev = require "lib.samp.events" -- портировали модуль
local nop_tag_bbb = false -- ввели булевую переменную

function main()
    -- здесь делаем проверки на загрузку сампа и сампункса, сразу при запуске не получится команду регнуть
    sampRegisterChatCommand("bbb", function()
        nop_tag_bbb = not nop_tag_bbb
    end)
    wait(-1)
end

function sampev.onServerMessage(_, text)
    if nop_tag_bbb and text:find("%[bbb%]") then
        return false
    end
end
 
  • Нравится
Реакции: Wycmpblu

Wycmpblu

Известный
Автор темы
152
31
Пример реализации через модуль samp.lua, можно также реализовать через onReceiveRPC, чтобы не тянуть зависимость в виде отдельного модуля.
Lua:
local sampev = require "lib.samp.events" -- портировали модуль
local nop_tag_bbb = false -- ввели булевую переменную

function main()
    -- здесь делаем проверки на загрузку сампа и сампункса, сразу при запуске не получится команду регнуть
    sampRegisterChatCommand("bbb", function()
        nop_tag_bbb = not nop_tag_bbb
    end)
    wait(-1)
end

function sampev.onServerMessage(_, text)
    if nop_tag_bbb and text:find("%[bbb%]") then
        return false
    end
end
Спасибо от души. А как сделать так, чтобы игнорировались все другие цвета, кроме серого?
 

DolgorukovGTA

Известный
Проверенный
652
345
Спасибо от души. А как сделать так, чтобы игнорировались все другие цвета, кроме серого?
Lua:
function sampev.onServerMessage(color, text)
    if color == -1 then -- белый цвет в uint-формате
        return false
    end
end
 

Wycmpblu

Известный
Автор темы
152
31
Пример реализации через модуль samp.lua, можно также реализовать через onReceiveRPC, чтобы не тянуть зависимость в виде отдельного модуля.
Lua:
local sampev = require "lib.samp.events" -- портировали модуль
local nop_tag_bbb = false -- ввели булевую переменную

function main()
    -- здесь делаем проверки на загрузку сампа и сампункса, сразу при запуске не получится команду регнуть
    sampRegisterChatCommand("bbb", function()
        nop_tag_bbb = not nop_tag_bbb
    end)
    wait(-1)
end

function sampev.onServerMessage(_, text)
    if nop_tag_bbb and text:find("%[bbb%]") then
        return false
    end
end
И последний вопрос. Как сделать сохранение значения? Чтобы при перезагрузке сампа оно не сбрасывалось?)
 

DolgorukovGTA

Известный
Проверенный
652
345
И последний вопрос. Как сделать сохранение значения? Чтобы при перезагрузке сампа оно не сбрасывалось?)
Используя модуль inicfg. Информация есть на BH Wiki: