- 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