local imgui = require 'mimgui'
local widget = require 'widgets'
local inicfg = require "inicfg"
local ini = inicfg.load({
cfg = {
showImages = true,
imageX = 200,
imageY = 200,
imageSizeX = 851,
imageSizeY = 409
}
}, "Vkey.ini")
local WinState1 = imgui.new.bool(true)
local WinState2 = imgui.new.bool(false)
local showImages = imgui.new.bool(ini.cfg.showImages)
local wImagePositions = {
x = imgui.new.int(ini.cfg.imageX),
y = imgui.new.int(ini.cfg.imageY),
sizeX = imgui.new.int(ini.cfg.imageSizeX),
sizeY = imgui.new.int(ini.cfg.imageSizeY)
}
local wTextureLoaded = false
local wTexture
local wDuplicateTextureLoaded = false
local wDuplicateTexture
local wDuplicateTextureLoadedA = false
local wDuplicateTextureA -- Gambar a.png
local wDuplicateTextureLoadedS = false
local wDuplicateTextureS -- Gambar S.png
local wDuplicateTextureLoadedSpa = false
local wDuplicateTextureSpa -- Gambar spa.png
local wDuplicateTextureLoadedD = false
local wDuplicateTextureD -- Gambar d.png
local wDuplicateTextureLoadedF = false
local wDuplicateTextureF -- Gambar d.png
local wImageVisible = false -- Gambar "W" tidak terlihat secara default
local wImageVisibleA = false -- Gambar "A" tidak terlihat secara default
local wImageVisibleS = false -- Gambar "S" tidak terlihat secara default
local wImageVisibleSpa = false -- Gambar "spa" tidak terlihat secara default
local wImageVisibleD = false -- Gambar "d" tidak terlihat secara default
local scaleFactor = imgui.new.float(1.0) -- Faktor skala default 1
function renderImages()
-- Selalu tampilkan gambar 1.png
if wTextureLoaded then
renderDrawTexture(wTexture, wImagePositions.x[0], wImagePositions.y[0], wImagePositions.sizeX[0], wImagePositions.sizeY[0], 0, 0xFFFFFFFF)
end
-- Gambar duplikat w.png hanya ditampilkan jika wImageVisible adalah true
if wDuplicateTextureLoaded and wImageVisible then
renderDrawTexture(wDuplicateTexture, wImagePositions.x[0], wImagePositions.y[0], wImagePositions.sizeX[0], wImagePositions.sizeY[0], 0, 0xFFFFFFFF)
end
-- Gambar a.png hanya ditampilkan jika wImageVisibleA adalah true
if wDuplicateTextureLoadedA and wImageVisibleA then
renderDrawTexture(wDuplicateTextureA, wImagePositions.x[0], wImagePositions.y[0], wImagePositions.sizeX[0], wImagePositions.sizeY[0], 0, 0xFFFFFFFF)
end
-- Gambar S.png hanya ditampilkan jika wImageVisibleS adalah true
if wDuplicateTextureLoadedS and wImageVisibleS then
renderDrawTexture(wDuplicateTextureS, wImagePositions.x[0], wImagePositions.y[0], wImagePositions.sizeX[0], wImagePositions.sizeY[0], 0, 0xFFFFFFFF)
end
-- Gambar spa.png hanya ditampilkan jika wImageVisibleSpa adalah true
if wDuplicateTextureLoadedSpa and wImageVisibleSpa then
renderDrawTexture(wDuplicateTextureSpa, wImagePositions.x[0], wImagePositions.y[0], wImagePositions.sizeX[0], wImagePositions.sizeY[0], 0, 0xFFFFFFFF)
end
if wDuplicateTextureLoadedF and wImageVisibleF then
renderDrawTexture(wDuplicateTextureF, wImagePositions.x[0], wImagePositions.y[0], wImagePositions.sizeX[0], wImagePositions.sizeY[0], 0, 0xFFFFFFFF)
end
-- Gambar d.png hanya ditampilkan jika wImageVisibleD adalah true
if wDuplicateTextureLoadedD and wImageVisibleD then
renderDrawTexture(wDuplicateTextureD, wImagePositions.x[0], wImagePositions.y[0], wImagePositions.sizeX[0], wImagePositions.sizeY[0], 0, 0xFFFFFFFF)
end
end
function loadTextures()
if not wTextureLoaded then
wTexture = renderLoadTextureFromFile("resource/Vkeys/1.png")
wTextureLoaded = true
end
if not wDuplicateTextureLoaded then
wDuplicateTexture = renderLoadTextureFromFile("resource/Vkeys/w.png") -- Gambar duplikat
wDuplicateTextureLoaded = true
end
if not wDuplicateTextureLoadedA then
wDuplicateTextureA = renderLoadTextureFromFile("resource/Vkeys/a.png") -- Gambar a.png
wDuplicateTextureLoadedA = true
end
if not wDuplicateTextureLoadedS then
wDuplicateTextureS = renderLoadTextureFromFile("resource/Vkeys/S.png") -- Gambar S.png
wDuplicateTextureLoadedS = true
end
if not wDuplicateTextureLoadedSpa then
wDuplicateTextureSpa = renderLoadTextureFromFile("resource/Vkeys/spa.png") -- Gambar spa.png
wDuplicateTextureLoadedSpa = true
end
if not wDuplicateTextureLoadedF then
wDuplicateTextureF = renderLoadTextureFromFile("resource/Vkeys/f.png") -- Gambar d.png
wDuplicateTextureLoadedF = true
end
if not wDuplicateTextureLoadedD then
wDuplicateTextureD = renderLoadTextureFromFile("resource/Vkeys/d.png") -- Gambar d.png
wDuplicateTextureLoadedD = true
end
end
local function saveSettings()
ini.cfg.showImages = showImages[0]
ini.cfg.imageX = wImagePositions.x[0]
ini.cfg.imageY = wImagePositions.y[0]
ini.cfg.imageSizeX = wImagePositions.sizeX[0]
ini.cfg.imageSizeY = wImagePositions.sizeY[0]
inicfg.save(ini, "Vkey.ini")
end
imgui.OnFrame(function() return WinState2[0] end, function(player)
imgui.Begin("Vkey by Little_ramZz", WinState2)
if imgui.Button(showImages[0] and "off" or "on", imgui.ImVec2(150, 30)) then
showImages[0] = not showImages[0]
saveSettings()
end
imgui.Text("posX")
imgui.SliderInt("##1ImageX", wImagePositions.x, 0, 2000)
imgui.Text("posY")
imgui.SliderInt("##1ImageY", wImagePositions.y, 0, 1080)
-- Slider untuk mengubah ukuran gambar secara langsung
imgui.Text("scale")
imgui.SliderFloat("##WImageScale", scaleFactor, 0.1, 5.0) -- Faktor skala antara 0.1 dan 5.0
-- Mengubah ukuran gambar berdasarkan faktor skala
wImagePositions.sizeX[0] = 851 * scaleFactor[0]
wImagePositions.sizeY[0] = 409 * scaleFactor[0]
saveSettings()
imgui.End()
end)
imgui.OnFrame(function() return WinState1[0] end, function(player)
loadTextures()
-- Periksa apakah player berada di dalam kendaraan
local playerPed = PLAYER_PED -- Pastikan ini adalah referensi yang benar untuk karakter pemain
if isCharInAnyCar(playerPed) then
-- Selalu render gambar 1.png jika pemain dalam kendaraan
if showImages[0] then
renderImages()
end
end
end)
function main()
while true do
wait(0)
-- Pastikan WIDGET_HORN terdefinisi dan bukan nil
if WIDGET_HORN ~= nil then
if isWidgetSwipedLeft(WIDGET_HORN) then
WinState2[0] = not WinState2[0]
wait(200)
end
else
print("WIDGET_HORN is nil!")
end
-- Periksa apakah player berada di dalam kendaraan
local playerPed = PLAYER_PED -- Pastikan ini adalah referensi yang benar untuk karakter pemain
if isCharInAnyCar(playerPed) then
-- Periksa apakah WIDGET_ACCELERATE ditekan
if isWidgetPressed(WIDGET_ACCELERATE) then
wImageVisible = true -- Tampilkan gambar "W" jika ditekan
else
wImageVisible = false -- Sembunyikan gambar "W" jika tidak ditekan
end
-- Periksa apakah WIDGET_BRAKE ditekan
if isWidgetPressed(WIDGET_VEHICLE_STEER_LEFT) then
wImageVisibleA = true -- Tampilkan gambar "A" jika ditekan
else
wImageVisibleA = false -- Sembunyikan gambar "A" jika tidak ditekan
end
-- Periksa apakah WIDGET_HANDBRAKE ditekan
if isWidgetPressed(WIDGET_BRAKE) then
wImageVisibleS = true -- Tampilkan gambar "S" jika ditekan
else
wImageVisibleS = false -- Sembunyikan gambar "S" jika tidak ditekan
end
if isWidgetPressed(WIDGET_ENTER_CAR) then
wImageVisibleF = true -- Tampilkan gambar "S" jika ditekan
else
wImageVisibleF = false -- Sembunyikan gambar "S" jika tidak ditekan
end
-- Periksa apakah WIDGET_SPA ditekan
if isWidgetPressed(WIDGET_HANDBRAKE) then -- Misalkan ada widget untuk SPA
wImageVisibleSpa = true -- Tampilkan gambar "spa" jika ditekan
else
wImageVisibleSpa = false -- Sembunyikan gambar "spa" jika tidak ditekan
end
-- Periksa apakah WIDGET_D ditekan
if isWidgetPressed(WIDGET_VEHICLE_STEER_RIGHT) then -- Misalkan ada widget untuk D
wImageVisibleD = true -- Tampilkan gambar "d" jika ditekan
else
wImageVisibleD = false -- Sembunyikan gambar "d" jika tidak ditekan
end
else
-- Jika tidak di dalam kendaraan, sembunyikan semua gambar
wImageVisible = false
wImageVisibleA = false
wImageVisibleS = false
wImageVisibleSpa = false
wImageVisibleD = false
end
end
end