- 1,361
- 722
Много библиотек уже появилось по поводу хоткеев, они поддерживают добавление множества кнопок, а мой просто очень упрощенный вариант создания, пользуйтесь, кто желает, не придется за собой тянуть еще одну библиотеку (подойдет как для inicfg, так и для json)
[!] Не забудьте подключить vkeys
Тут просто в основном нужно сделать Ctrl + C Ctrl + V, для простых скриптов самое то
Пример:
[!] Не забудьте подключить vkeys
Тут просто в основном нужно сделать Ctrl + C Ctrl + V, для простых скриптов самое то
Пример:
Lua:
-- Инициализация
j = json.load({
keys = {
["airbrake"] = 0xA1,
["speedhack"] = 18,
["another_cheat"] = 78,
["super_cheat"] = 66,
["wallhack"] = 16
}
}, "test.json")
-- main()
hotkeys = {}
for k,v in pairs(j.keys) do
hotkeys[k] = {
activate = v, buttonName = vkeys.key_names[v], edit = false, ticked = os.clock(), tickedState = false
} -- названия ключей будут совпадать с ключами внутри вашего конфига
end
-- функция получения нажатых кнопок
function getDownKeys()
local curkeys = ""
local bool = false
for k, v in pairs(vkeys) do
if isKeyDown(v) then
curkeys = v
bool = true
end
end
return curkeys, bool
end
-- функция создания хоткея
function createHotkey(text, hotkeyTable, configValue) -- 1 аргумент - текст, 2 аргумент - элемент в массиве, который мы создавали в main, третий аргумент, это название ключа внутри основного конфига
if hotkeyTable.edit then
local downKey = getDownKeys()
j.keys[configValue] = downKey
if downKey == '' then
if os.clock() - hotkeyTable.ticked > 0.5 then
hotkeyTable.ticked = os.clock()
hotkeyTable.tickedState = not hotkeyTable.tickedState
end
hotkeyTable.buttonName = hotkeyTable.tickedState and "No" or "##justClear"..hotkeyTable.ticked
else
hotkeyTable.buttonName = vkeys.key_names[j.keys[configValue]]
hotkeyTable.edit = false
j() -- сохранение конфига ( используйте свой метод сохранения )
end
end
if imgui.Button(u8(tostring(hotkeyTable.buttonName)), imgui.ImVec2(80, 0)) then
hotkeyTable.edit = true
end imgui.SameLine() imgui.Text(u8(text))
end
-- Пример использования
if isKeyJustPressed(j.keys["speedhack"]) then
-- code
end
-- in imgui
createHotkey("Клавиша активации SpeedHack", hotkeys.speedhack, "speedhack")
Последнее редактирование: