Добавление КД

Gomes

Новичок
Автор темы
5
2
Есть такой небольшой скрипт который переносит продолжение сообщения на следующую строку если в нем больше x символов но в скрипте нету кд на перенос и он происходит мгновенно, на аризонке мгновенные сообщения запрещены и удаляются анти флудом. Помогите добавить кд на отправку.

Скрипт:
script_name("Separate Messages")
script_author("Arizona RP | Полезные вещи")

local sampev = require 'lib.samp.events'
--[[ МОЖНО ДОБАВИТЬ СВОЮ КОМАНДУ ДЛЯ ПЕРЕНОСА ТУТ, ИЛИ УБРАТЬ ЛИШНЮЮ]] commands = {'c', 's', 'b', 'r', 'm', 'd', 'f', 'rb', 'fb', 'rt', 'pt', 'ft', 'cs', 't', 'ct', 'fam', 'vr', 'al'}; require('events').clean()
bi = false

function sampev.onSendCommand(msg)
    if bi then bi = false; return end
    local cmd, msg = msg:match("/(%S*) (.*)")
    if msg == nil then return end
    -- cmd = cmd:lower()

    --Рация, радио, ООС чат, шепот, крик (с поддержкой переноса ООС-скобок)
    for i, v in ipairs(commands) do if cmd == v then
        local length = msg:len()
        if msg:sub(1, 2) == "((" then
            msg = string.gsub(msg:sub(4), "%)%)", "")
            if length > 80 then divide(msg, "/" .. cmd .. " (( ", " ))"); return false end
        else
            if length > 80 then divide(msg, "/" .. cmd .. " ", ""); return false end
        end
    end end

    --РП команды
    if cmd == "me" or cmd == "do" then
        local length = msg:len()
        if length > 75 then divide(msg, "/" .. cmd .. " ", "", "ext"); return false end
    end
end

function sampev.onServerMessage(color, text)
    if color == -65281 and text:find(" %| Получатель: ") then
        return {bit.tobit(0xFFCC00FF), text}
    end
end

function sampev.onSendChat(msg) -- IC чат
    if bi then bi = false; return end
    local length = msg:len()
    if length > 90 then
        divide(msg, "", "")
        return false
    end
end

function divide(msg, beginning, ending, doing) -- разделение сообщения msg на два
    limit = 72
    
    -- -- -- ВЕРСИЯ С ПРИОРИТЕТОМ ТЕКСТА ДЛЯ ПЕРВОГО СООБЩЕНИЯ (ХУЕТА) -- -- --
    -- local one, two = string.match(msg:sub(limit), "(%S*) (.*)")
    -- if one == nil then one = "" end
    -- local one, two = msg:sub(1, limit - 1) .. one .. "...", "..." .. two
    
    -- ВЕРСИЯ С ПРИОРИТЕТОМ ТЕКСТА ДЛЯ ВТОРОГО СООБЩЕНИЯ (ЗБС НО НЕ РАБОТАЕТ) --
    -- local one, two = string.match(msg:sub(1, msg:len() - limit), "(.*) (.*)")
    -- if two == nil then two = "" end
    -- local one, two = one .. "...", "..." .. two .. msg:sub(msg:len() - limit + 1, msg:len())
    
    -- ВЕРСИЯ С ПРИОРИТЕТОМ ТЕКСТА ДЛЯ ВТОРОГО СООБЩЕНИЯ (ПОКА ЧТО РАБОТАЕТ) --
    local one, two = string.match(msg:sub(1, limit), "(.*) (.*)")
    if two == nil then two = "" end
    local one, two = one .. "...", "..." .. two .. msg:sub(limit + 1, msg:len())

    bi = true; sampSendChat(beginning .. one .. ending)
    if doing == "ext" then
        beginning = "/do "
        if two:sub(-1) ~= "." then two = two .. "." end
    end
    bi = true; sampSendChat(beginning .. two .. ending)
end

function main()
  if not isCleoLoaded() or not isSampfuncsLoaded() or not isSampLoaded() then return end
  while not isSampAvailable() do wait(100) end
    sampAddChatMessage('Скрипт переноса сообщений загружен! Автор: группа Arizona RP | Полезные вещи!', -1)
    while sampGetGamestate() ~= 3 or not sampIsLocalPlayerSpawned() do wait(0) end; require('events').clean()
    wait(-1)
end