Как сохранять RKEYS в inicfg?

Dmitriy Makarov

25.05.2021
Автор темы
Проверенный
2,478
1,113
Версия MoonLoader
.026-beta
Решил попробовать с ini поработать и создать простенький скрипт чтобы юзать маску, аптечку, но что-то пошло не так..
Как все-таки сохранять именно клавиши (rkeys) в inicfg?
Lua:
-- Вне main
local vkeys = require 'vkeys'
local rkeys = require 'rkeys'
local inicfg = require 'inicfg'
imgui.HotKey = require('imgui_addons').HotKey

local usemask = {
    v = {vkeys.VK_NUMPAD5}
}
local useheal = {
    v = {vkeys.VK_NUMPAD6}
}
local maskID = 0
local healID = 0

local mainIni = inicfg.load({
  hotkeys =
  {
    usingmask = "",
    usingheal = ""
  }
})


-- main
maskID = rkeys.registerHotKey(usemask.v, true, function ()
    sampSendChat("ХотКей 1")
end)
healID = rkeys.registerHotKey(useheal.v, true, function ()
    sampSendChat("Хот Кей 2")
end)


function imgui.OnDrawFrame()
    if window.v then
        local tLastKeys = {}
        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(250, 250), imgui.Cond.FirstUseEver)
        imgui.Begin(u8"Settings", window)
        if imgui.HotKey("##Test", usemask, tLastKeys, 100) then
            rkeys.changeHotKey(maskID, tostring(usemask).v)
            -- Здесь нужно сохранить
        end
        if imgui.HotKey("##Qwer", useheal, tLastKeys, 100) then
            rkeys.changeHotKey(healID, useheal.v)
            -- Здесь нужно сохранить
        end
    end
    imgui.End()
end
Пытался сохранять так:
Lua:
mainIni.hotkeys.usingheal.v = useheal.v
Выводило ошибку, мол usingheal - string value. Из-за кавычек, скорее всего. Вместо кавычек пробовал с числом, сказали, что number value..
Вот само окно изначально выглядит. Когда нажимаешь - нужно нажать на клавишу, на которую хочешь биндить и затем она сразу должна записываться в inicfg и сохраняться.
Screenshot_2.png

Надеюсь на помощь...
 
Последнее редактирование:

neverlane

t.me/neverlane00
Друг
997
1,132
Lua:
--сначало тут сделай ини кфг и там сделай переменную с стандартной кнопкой
local usemask = {
    v = {mainIni.hotkeys.usingmask, mainIni.hotkeys.usingmask2}
}
--это туда где сохранять
mainIni.hotkeys.usingmask = usemask.v[1]
mainIni.hotkeys.usingmask2 = usemask.v[2]
inicfg.save(mainIni, ини файл)

Точно не помню как я сохранял но вроде так, пишу с телефона
 

Dmitriy Makarov

25.05.2021
Автор темы
Проверенный
2,478
1,113
Lua:
--сначало тут сделай ини кфг и там сделай переменную с стандартной кнопкой
local usemask = {
    v = {mainIni.hotkeys.usingmask, mainIni.hotkeys.usingmask2}
}
--это туда где сохранять
mainIni.hotkeys.usingmask = usemask.v[1]
mainIni.hotkeys.usingmask2 = usemask.v[2]
inicfg.save(mainIni, ини файл)

Точно не помню как я сохранял но вроде так, пишу с телефона
usingheal=table: 0x04fdb578
usingmask=table: 0x061984d0