Помогите со скриптом

bareiraks

Новичок
Автор темы
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
 
Последнее редактирование:

SNAPE

Участник
80
3
C++:
    ---Поле для ввода команды
        imgui.InputText('Команда для аптечки', text_buffer, 256)
        if imgui.Button('Сохранить команду аптечки') then
            ActiveHealMenu.v = text_buffer[0]  ----Сохраняем введенную команду в переменную
            ini.hotkeys.bindheal = encodeJson(ActiveHealMenu.v)
            inicfg.save(ini, directIni)
            print('Команда для аптечки сохранена!')
        end
 

bareiraks

Новичок
Автор темы
2
0
C++:
    ---Поле для ввода команды
        imgui.InputText('Команда для аптечки', text_buffer, 256)
        if imgui.Button('Сохранить команду аптечки') then
            ActiveHealMenu.v = text_buffer[0]  ----Сохраняем введенную команду в переменную
            ini.hotkeys.bindheal = encodeJson(ActiveHealMenu.v)
            inicfg.save(ini, directIni)
            print('Команда для аптечки сохранена!')
        end
а ты можешь сделать так чтобы оно без кнопки сохранялось и как присвоить хоткей введеной строке этой
 

SNAPE

Участник
80
3
Lua:
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'Команда для аптечки:')
        if imgui.InputText('##CommandHeal', text_buffer, 256) then
            ActiveHealMenu.v = text_buffer[0]
            ini.hotkeys.bindheal = encodeJson(ActiveHealMenu.v)
            inicfg.save(ini, directIni)
            print('Команда для аптечки сохранена: ' .. ActiveHealMenu.v)
        end

        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
    end
    imgui.End()
end