Анти-повторы.

it-m

Новичок
Автор темы
15
0
Версия MoonLoader
.026-beta
Смотрите, значит есть у меня пару команд которые используются через чат, допустим это "ban" , "warn", "mute".
Мне нужно сделать. что-бы если при "ban warn" "mute warn" и при любых сочетаниях этих команд писало типо "Повторения запрещены"
Переменная с командами - cmd
 

it-m

Новичок
Автор темы
15
0
ЧаВо? Подробнее розкажи
Смари, чел может мне в пм написать любую из трех команд, которые привел выше, и мне нужно сделать что-бы при повторах по типу warn ban код не воспроизводился

p.s. нужна именно проверка
 

Hideme Flow

Известный
555
193
Смари, чел может мне в пм написать любую из трех команд, которые привел выше, и мне нужно сделать что-бы при повторах по типу warn ban код не воспроизводился

p.s. нужна именно проверка
Я так понял ты пробисал /ban а потом /mute то не работало?
 

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,731
4,720
Я так понял ты пробисал /ban а потом /mute то не работало?
Скорее всего он имеет ввиду такое: пишут «Бан» скрипт - работает, пишут «Мут» скрипт работает, а если пишут «Бан Мут» не работает
 

it-m

Новичок
Автор темы
15
0
Скорее всего он имеет ввиду такое: пишут «Бан» скрипт - работает, пишут «Мут» скрипт работает, а если пишут «Бан Мут» не работает
+.
повторы в одном сообщении или в разных ?
в одном.
Я так понял ты пробисал /ban а потом /mute то не работало?
Типа /ban /mute именно в одном сообщении, ток не sampregisterchatcommand.
 

CaJlaT

Овощ
Модератор
2,806
2,609
+.

в одном.

Типа /ban /mute именно в одном сообщении, ток не sampregisterchatcommand.
Lua:
local samp = require 'samp.events'
function samp.onServerMessage(col, text)
    if text:find('мут') then
        print('Попросили мут, или первее был запрос на мут')
    elseif text:find('бан')
        print('Попросили бан, или первее был запрос на бан')
    end
end
если напишут: "мут бан" или "бан мут", сработает только на мут, ибо он первее в проверке
 

donaks.

Активный
101
67
Не проще проверить, есть ли в сообщении больше двух команд зарезервированных и выполнять функцию, только если команд одна штука.
Lua:
local cmds = {
    ["бан"]="/ban",
    ["кик"]="/kick",
    ["мут"]="/mute",
    ["варн"]="/warn"
}

local samp = require 'samp.events'
function samp.onServerMessage(color, message)
    if message:find("%(%( PM от (.+): (.+) %)%)") then
        local countCmds = 0
        for key, cmd in pairs(cmds) do
            if message:find(key) then
                countCmds = 0
            end
        end
        if countCmds > 1 then
            sampAddChatMessage("Запрос не был выполнен, в нем больше одной команды.", -1)
        elseif countCmds == 1 then
            -- код
        else
            sampAddChatMessage("Запрос не содержит просьб выдачи наказания.", -1)
        end
    end
end