- 978
- 342
- Версия MoonLoader
- .026-beta
формы выдаются даже если скрипт игра на паузе(паузовое меню игры активное)
в начале скрипта
script_properties("work-in-pause")
надо для других функций скрипта
вот код самых форм:
рендер форм:
и так же сама форма без автовыдачи(хотя она тут нахуй не сдалась, ведь ошибка только с автовыдачей):
в начале скрипта
script_properties("work-in-pause")
надо для других функций скрипта
вот код самых форм:
Lua:
local aName, aSurName, aID, form = text:match('^%[A%] %(.+%) (%w+)_?(%w+)%[(%d+)%]: /(.+)')
if aName and aSurName and aID and form and color == 1724645546 and not isPauseMenuActive() and not isGamePaused() then--Выдача форм
if tonumber(aID) ~= myId() then
local cmd = form..' '
for k, _ in ipairs(autopunish or {}) do--Перебираем список команд которые указаны пользователем
if cmd:find('^'..u8:decode(autopunish[k].COMMAND)) and render_forms('/'..string.rlower(form), aName:match('%a')..'.'..aSurName, aName) then--Если команда найдена
if mainIni.settings.auto_punish then--Если автовыдача включена то сразу её отправлять
lua_thread.create(function()
wait(0)
sampSendChat(render_forms('/'..form, aName:match('%a')..'.'..aSurName, aName))
end)
else--Если автоавыдача выключена то запускать рендер форм
if not active_forma then
active_forma = true
AddChatMessage('Поступила форма от администратора '..aName..' '..aSurName..': /'..form, 3)
AddChatMessage('Чтобы принять нажмите >>'..table.concat(rkeys.getKeysName(BINDS.ACCEPT_FORM.v), ' + ')..'<<, чтобы отклонить >>'..table.concat(rkeys.getKeysName(BINDS.REJECT_FORM.v), ' + ')..'<<', 3)
forma(aName..' '..aSurName, render_forms('/'..form, aName:match('%a')..'.'..aSurName, aName))
end
end
break
end
end
end
if mainIni.settings.change_admin_chat then
local lvl, nick, id, info = text:match('^%[A%] %((.+)%) (%w+_?%w+)%[(%d+)%]: (.+)')
sampAddChatMessage(string.format('[A] {87CEFA}%s {f24246}%s[%d]{f0f1f0}: %s', lvl, nick, id, info), 0xf24246)
return false
end
end
рендер форм:
Lua:
function render_forms(form, prefix, name)
for _, v in ipairs(MAIN_TABLE.CORRECT_CMDS) do-- \\ Таблица с правильными аргументами команд
if form:match(v) then
return form..' // '..prefix
end
end
for _, v in ipairs(MAIN_TABLE.CMDS) do--таблица с всеми командами
if form:match(v:gsub(' .+', '')) then
return '/a '..name..', вводи '..v:match('(/.+) %-')
end
end
AddChatMessage('Произошла ошибка при обработке формы', 2)
return false
end
и так же сама форма без автовыдачи(хотя она тут нахуй не сдалась, ведь ошибка только с автовыдачей):
Lua:
function forma(nick, cmd)
if active_forma and not isPauseMenuActive() and not isGamePaused() then
local time = os.time() + 5
local accept = vkeys.name_to_id(table.concat(rkeys.getKeysName(BINDS.ACCEPT_FORM.v)))
local reject = vkeys.name_to_id(table.concat(rkeys.getKeysName(BINDS.REJECT_FORM.v)))
lua_thread.create(function()
while time > os.time() do
wait(0)
printStyledString("ADMIN FORM " .. time - os.time() .. " WAIT ~n~AUTHOR: ~r~"..nick, 1000, 5)
if time == os.time() then
active_forma = false
printStyledString("Forma skipped", 1000, 5)
break
end
if isKeyJustPressed(accept) and not sampIsChatInputActive() and not sampIsDialogActive() then
aform_accept = true
printStyledString("Admin form accepted", 1000, 5)
sampSendChat(cmd)
active_forma = false
break
elseif isKeyJustPressed(reject) and not sampIsChatInputActive() and not sampIsDialogActive() then
printStyledString('You missed the form', 2000, 5)
aform_accept = false
active_forma = false
break
end
end
end)
end
end