Проблема с сменой клавишей и расположениям dxut

backloop

Участник
Автор темы
152
14
Версия MoonLoader
.026-beta
Всем привет! Я пару месяцев назад писал кар хелпер и позавчера решил добавить функцию смену клавиш (есть говнокод). Исходник ini взял с +с @deddosouru, и не умею так хорошо работать с ини. У меня проблема что когда я хочу сменить клавиши (например: Alt+G) у меня сменивается только на Alt (вы скажите наверное, что там команды клавиш не правильные, это потому-что я уже пару способов перебрал, и правильные, и не правильные, не помогло). И ещё самая менюшка изменения клавиш, спавнится вверхнем левом углу, хотя должна быть по середине. Сможете помочь? Вот код:
Lua:
script_name('Car Helper For ARZ')
script_version('1.0')
script_author('backloop')

local hook = require 'lib.samp.events'
local inicfg = require 'inicfg'
local cfg = inicfg.load({set = {
repair = 18,74,
fill = 18,72}})


function main()
    while not isSampAvailable() do wait(100) end
    sampRegisterChatCommand("chelp", SHOW_DLG)
    while true do wait(0)
        inicfg.save(cfg)
        if isKeyDown(cfg.set.repair) and isKeyJustPressed(cfg.set.repair) and not sampIsCursorActive() then
            sampSendChat("/repcar")
        end
        if isKeyDown(cfg.set.fill) and isKeyJustPressed(cfg.set.fill) and not sampIsCursorActive() then
            sampSendChat("/fillcar")
        end
        if testCheat("L") and not sampIsCursorActive() then
            sampSendChat("/lock")
        end
        if testCheat("JL") and not sampIsCursorActive() then
            sampSendChat("/jlock")
        end
        if testCheat("K") and not sampIsCursorActive() then
            sampSendChat("/key")
        end
    end
end

function sendKey(key)
    local _, myId = sampGetPlayerIdByCharHandle(PLAYER_PED)
    local data = allocateMemory(68)
    sampStorePlayerOnfootData(myId, data)
    setStructElement(data, 4, 2, key, false)
    sampSendOnfootData(data)
    freeMemory(data)
end

function get_screen_centure(szX, szY)
    local X,Y = getScreenResolution()
   X = X/2 - szX
   Y = Y/2 - szY
   return X, Y
end

function SHOW_DLG()
    lua_thread.create(showCur)
    return
end

function showCur()
    wait(0)
    if not dxutIsDialogExists(HND_DLG) then
        HND_DLG = dxutCreateDialog("{818384}Vehicle  {0094c8}Helper  {FFFFFF}Settings")
        local X, Y = get_screen_centure(2, 2)
        dxutAddButton(HND_DLG, 1, string.format("Сменить клавиши починки.", cfg.set.repair), 5, 5, 300, 20)
        dxutAddButton(HND_DLG, 2, string.format("Сменить клавиши заправки.", cfg.set.fill), 5, 30, 300, 20)
        dxutAddButton(HND_DLG, 3, "Сохранить", 5, 290, 300, 20)
        sampToggleCursor(true)
    else
        dxutSetDialogVisible(HND_DLG, (not dxutIsDialogVisible(HND_DLG)))
    end
    while true do
        wait(0)
        local RES, DLG_EVENT, DLG_CONTROL = dxutPopEvent(HND_DLG)
        if DLG_CONTROL == 3 --[[ "Save" button]] then
            wait(0)
            inicfg.save(cfg)
            dxutSetDialogVisible(HND_DLG, false)
            dxutDeleteDialog(HND_DLG)
            sampToggleCursor(false)
            break
        end
        if DLG_CONTROL == 1 --[[Выбирайте клавиши]] then
            dxutSetControlText(HND_DLG, 1, "Сменить клавиши починки")
            repeat
                wait(0)
                repexit = false
                for btn = 0, 254 do
                    if isKeyDown(btn) and isKeyJustPressed(btn) then
                        repexit = true
                        cfg.set.repair = btn
                        dxutSetControlText(HND_DLG, 1, string.format("Изменить клавиши. current: %s", cfg.set.repair))
                    end
                end
            until repexit
            repexit = false
        end
        if DLG_CONTROL == 2 --[[Выбирайте клавиши]] then
            dxutSetControlText(HND_DLG, 2, "Сменить клавиши заправки")
            repeat
                wait(0)
                repexit = false
                for qqq = 0, 254 do
                    if isKeyDown(qqq) and isKeyJustPressed(qqq) then
                        repexit = true
                        cfg.set.fill = qqq
                        dxutSetControlText(HND_DLG, 2, string.format("Изменить клавиши. current: %s", cfg.set.fill))
                    end
                end
            until repexit
            repexit = false
        end
    end
end