local sampev = require'lib.samp.events'
function main()
if not isSampLoaded() then return end
while not isSampAvailable() do wait(0) end
sampAddChatMessage("автоматическая точка в конце предложения короче", -1)
wait(-1)
end
local function processCommand(command)
local allowedCommands, commandListed = {"b", "r", "rb", "f", "fb", "vr", "fam"}, false
for i, v in ipairs(allowedCommands) do
if command:match(("^/%s .+[^.!?]$"):format(v)) then
commandListed = true
break
end
end
if not commandListed then return false end -- Если нет подходящей команды, игнорируем
return command .. '.' -- Добавляем точку в конец, если это нужно
end
function onSendRpc(id, bs)
if id == 50 then -- RPC_SERVERCOMMAND [ID: 50]
local commandLenght = raknetBitStreamReadInt32(bs) -- UINT32_T[4]
local commandText = raknetBitStreamReadString(bs, commandLenght) -- CHAR[128]
if processCommand(commandText) ~= false then -- Передаём полученную команду в локальный обработчик
commandText = processCommand(commandText) -- Получаем новую отредактированную строку
raknetBitStreamSetWriteOffset(bs, 0) -- Начинаем читать BitStream с самого начала
raknetBitStreamWriteInt32(bs, commandText:len()) -- Записываем новую длину строки, т.к. она изменилась
raknetBitStreamWriteString(bs, commandText) -- Записываем новую строку в наш BitStream
return true, id, bs -- Передаём новые результаты в обработчик RPC
end
end
end
function sampev.onSendChat(text)
if not text:find('!')and not text:find('?') then return {text.."."}
end
end