- 328
- 19
- Версия MoonLoader
- .026-beta
Lua:
require "lib.moonloader" -- подключение библиотеки
local keys = require "vkeys"
local imgui = require 'imgui'
local inicfg = require 'inicfg'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local rkeys = require 'rkeys'
imgui.HotKey = require('imgui_addons').HotKey
local tLastKeys = {}
local ActiveClockMenu = {
v = decodeJson("[18,82]")
}
main_window_state = imgui.ImBool(false)
function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end
sampRegisterChatCommand("hotkey", cmd_hotkey)
_, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
nick = sampGetPlayerNickname(id)
imgui.Process = false
bindClock = rkeys.registerHotKey(ActiveClockMenu.v, true, clockFunc)
while true do
wait(0)
end
end
function cmd_hotkey(arg)
main_window_state.v = not main_window_state.v
imgui.Process = main_window_state.v
end
function clockFunc()
sampSendChat("/time")
end
function imgui.OnDrawFrame()
if not main_window_state.v then
imgui.Process = false
end
if main_window_state.v then
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(300, 200), imgui.Cond.FirstUseEver)
imgui.Begin('Imgui Hotkey Review', main_window_state, imgui.WindowFlags.NoCollapse)
imgui.Text(u8"Посмотреть время")
imgui.SameLine()
if imgui.HotKey("##1", ActiveClockMenu, tLastKeys, 100) then
rkeys.changeHotKey(bindClock, ActiveClockMenu.v)
sampAddChatMessage("Успешно! Старое значение: {F4A460}" .. table.concat(rkeys.getKeysName(tLastKeys.v), " + ") .. "{ffffff} | Новое: {F4A460}" .. table.concat(rkeys.getKeysName(ActiveClockMenu.v), " + "), -1)
sampAddChatMessage("Строчное значение: {F4A460}" .. encodeJson(ActiveClockMenu.v), -1)
end
imgui.End()
end
end
Когда я нажимаю Alt + R - у меня активируется HotKey и персонаж смотрит время, но когда я пропишу /hotkey (открыть окно imgui) то у меня крашится скрипт.
Подскажите как это исправаить