У
Удалённый пользователь 341712
Гость
Автор темы
Создатель: Albertio <3.
И так, во первых нам нужен путь, куда мы будем сохранять наш файл. Пример:
Дальше в массив записываем все клавиши и бинды, которые хотим.
bActive будет являться основой хот кея.
Клавиша O теперь будет являться по умолчанию.
Теперь декодим Json, и переводим массив в наш файлик.
Дальше сделаем функцию сохранения настроек
Теперь давайте разберем хот кей в имгуи.
Теперь хот кей сделали, делаем регистрацию хот кея.
Если у вас вылезла ошибка по поводу defTable.activOne nil, ну или любая другая ошибка, делаем следующее:
Заходим в игру.Это для того, чтобы игра спокойно загрузила файл, создала нужный код в Json.
Возвращаем обратно, заходим. А теперь давайте соединим все вместе
Дико извиняюсь за тупое объяснение и прошу не гнобить.
Для собственного удобства я поставил авто скачку если Json файла в папке нет.
К слову, если в JSON файле уже что-то есть, не нужно сложные схемы с savesettings проводить, просто уже спокойно добавляйте в массив свои хот кеи
И так, во первых нам нужен путь, куда мы будем сохранять наш файл. Пример:
Lua:
local fpath = getGameDirectory()..'\\moonloader\\Show.json'
Lua:
local vkeys = require 'vkeys'
local bActive = 0
local defTable = { activOne = { v = { vkeys.VK_O } } }
Клавиша O теперь будет являться по умолчанию.
Теперь декодим Json, и переводим массив в наш файлик.
Lua:
if doesFileExist(fpath) then
local f = io.open(fpath, 'r')
if f then
defTable = decodeJson(f:read('*a'))
f:close()
end
end
Lua:
function savesettings()
if doesFileExist(fpath) then
local f = io.open(fpath, 'w+')
if f then
f:write(encodeJson(defTable)):close()
end
end
end
Lua:
local tLastOne = {}
if imguiad.HotKey("##ActiveOne", defTable.activOne, tLastOne, 100) then
rkeys.changeHotKey(bActivate, defTable.activOne.v)
savesettings()
end
Lua:
bActivate = rkeys.registerHotKey(defTable.activOne.v, true, function()
if not sampIsChatInputActive() and not sampIsDialogActive() then
sampSetChatInputEnabled(true)
sampSetChatInputText('/su ')
end
end)
Lua:
--function savesettings()
if doesFileExist(fpath) then
local f = io.open(fpath, 'w+')
if f then
f:write(encodeJson(defTable)):close()
end
end
--end
Lua:
function savesettings()
if doesFileExist(fpath) then
local f = io.open(fpath, 'w+')
if f then
f:write(encodeJson(defTable)):close()
end
end
end
Lua:
local imguiad = require 'lib.imgui_addons'
local bActivate = 0
local defTable = { activOne = { v = { vkeys.VK_O } } }
local fpath = getGameDirectory()..'\\moonloader\\Show.json'
-- main
bActivate = rkeys.registerHotKey(defTable.activOne.v, true, function()
if not sampIsChatInputActive() and not sampIsDialogActive() then
sampSetChatInputEnabled(true)
sampSetChatInputText('/su ')
end
end)
-- imgui
local tLastOne = {}
if imguiad.HotKey("##ActiveOne", defTable.activOne, tLastOne, 100) then
rkeys.changeHotKey(bActivate, defTable.activOne.v)
savesettings()
end
-- любая часть кода
function savesettings()
if doesFileExist(fpath) then
local f = io.open(fpath, 'w+')
if f then
f:write(encodeJson(defTable)):close()
end
end
end
Для собственного удобства я поставил авто скачку если Json файла в папке нет.
К слову, если в JSON файле уже что-то есть, не нужно сложные схемы с savesettings проводить, просто уже спокойно добавляйте в массив свои хот кеи
Последнее редактирование модератором: