- 2
- 0
- Версия MoonLoader
- .027.0-preview
Сделал биндер но не понимаю как мне сделать так чтобы я сам вводил команду которую хочу а не в коде и чтобы эта команда сохранялась в конфиге
кодик:
-----------------------LIBRARIES-----------------------
local imgui = require 'imgui'
local inicfg = require 'inicfg'
local rkeys = require 'rkeys'
imgui.Hotkey = require('imgui_addons').HotKey
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
-----------------------CFG-----------------------
local directIni = 'cfgtest.ini'
local ini = inicfg.load({
hotkeys = {
bindheal = '[]',
bindmask = '[]',
},
}, directIni)
inicfg.save(ini, directIni)
-----------------------HOTKEYS-----------------------
local tLastKeys = {}
local ActiveHealMenu = {
v = decodeJson(ini.hotkeys.bindheal)
}
local ActiveMaskMenu = {
v = decodeJson(ini.hotkeys.bindmask)
}
-----------------------MAIN-----------------------
local main_window_state = imgui.ImBool(false)
local text_buffer = imgui.ImBuffer(256)
function main()
sampRegisterChatCommand('test', cmd_imgui)
imgui.Process = true
bindmask = rkeys.registerHotKey(ActiveMaskMenu.v, true, maskfunc)
bindheal = rkeys.registerHotKey(ActiveHealMenu.v, true, healfunc)
while true do
wait(0)
if main_window_state.v == false then
imgui.Process = false
end
end
end
function cmd_imgui(arg)
main_window_state.v = not main_window_state.v
imgui.Process = main_window_state.v
end
-----------------------BINDS-----------------------
function maskfunc()
sampSendChat('/mask')
end
function healfunc()
sampSendChat('/healme')
end
-----------------------WINDOW-----------------------
function imgui.OnDrawFrame()
local sw, sh = getScreenResolution()
imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.SetNextWindowSize(imgui.ImVec2(240, 300), imgui.Cond.FirstUseEver)
imgui.Begin('test', main_window_state)
if imgui.CollapsingHeader(u8"Биндеры") then
imgui.Text(u8'Биндер на аптечку')
imgui.SameLine()
if imgui.Hotkey('##1', ActiveHealMenu, tLastKeys, 100) then
rkeys.changeHotKey(bindheal, ActiveHealMenu.v)
ini.hotkeys.bindheal = encodeJson(ActiveHealMenu.v)
inicfg.save(ini, directIni)
end
imgui.Text(u8'Биндер на маску')
imgui.SameLine()
if imgui.Hotkey('##2', ActiveMaskMenu, tLastKeys, 100) then
rkeys.changeHotKey(bindmask, ActiveMaskMenu.v)
ini.hotkeys.bindmask = encodeJson(ActiveMaskMenu.v)
inicfg.save(ini, directIni)
end
end
imgui.End()
end
Последнее редактирование: