- 123
- 5
У меня есть чит Lua в формате mimgui, всё работает, но телепортация к контрольной точке иногда не происходит в нужное место. Например, он телепортирует меня на стадионный контрольный пункт, а мне этого не нужно. Я хочу, чтобы он телепортировался на отмеченную контрольную точку. Если кто-то может исправить это, я буду признателен и счастлив. Вот исходный код.
Lua:
require("lib.moonloader")
local imgui = require("mimgui")
local vKeys = require('vKeys')
local inicfg = require("inicfg")
local sampfuncs = require "sampfuncs"
local ffi = require "ffi"
local sW, sH = getScreenResolution()
local memory = require("memory")
local faicons = require("fAwesome5")
local events = require 'lib.samp.events'
local hack = require 'lib.samp.events'
local sampev = require 'samp.events'
local encoding = require("encoding")
local var_0_6 = require("ffi")
encoding.default = 'CP1251'
local u8 = encoding.UTF8
require 'lib.sampfuncs'
local getBonePosition = ffi.cast("int (__thiscall*)(void*, float*, int, bool)", 0x5E4280)
local font = renderCreateFont("Arial", 11, 15)
local aim = {
renderWindow = {
renderWindow = imgui.new.bool()
},
CheckBox = {
antistun = imgui.new.bool(),
teste11 = imgui.new.bool(),
teste12 = imgui.new.bool(),
teste13 = imgui.new.bool(),
teste14 = imgui.new.bool(),
teste15 = imgui.new.bool(),
teste16 = imgui.new.bool(),
teste17 = imgui.new.bool(),
teste18 = imgui.new.bool(),
teste19 = imgui.new.bool(),
teste20 = imgui.new.bool(),
},
}
function main()
repeat wait(0) until isSampAvailable()
wait(1000)
sampAddChatMessage("{006400}[Farm Money | Scarllet SAMP]: {ffffff}Carregado! cmd /scarlletmoney", 0x0066ff)
iniLoad()
sampRegisterChatCommand("scarlletmoney", function()
aim.renderWindow.renderWindow[0] = not aim.renderWindow.renderWindow[0]
end)
while true do
wait(0)
if res and time ~= nil then
sampDisconnectWithReason("quit")
wait(time * 1000)
sampSetGamestate(1)
res = false
elseif res and time == nil then
sampDisconnectWithReason("quit")
wait(15500)
sampSetGamestate(1)
res = false
end
if aim.CheckBox.teste18[0] then
local vector3d = require("vector3d")
local result, position = (function(position, radius, isRace)
local result, isFind = vector3d(0, 0, 0), false
for id = 0, 31 do
local address = isRace and (0xC7F168 + id * 56) or (0xC7DD88 + id * 160)
local marker = vector3d(
representIntAsFloat(readMemory(address + 0, 4, false)),
representIntAsFloat(readMemory(address + 4, 4, false)),
representIntAsFloat(readMemory(address + 8, 4, false))
)
if marker.x ~= 0 and marker.y ~= 0 and marker.z ~= 0 then
local distance = (marker - position):length()
if distance < radius then
result = marker
isFind = true
radius = distance
end
end
end
return isFind, result
end)(vector3d(getCharCoordinates(playerPed)), 20000, false)
if result then
setCharCoordinates(playerPed, position.x, position.y, position.z)
sampSendChat("/mcadaver") -- Comando para marcar o corpo
-- Teleportar para o checkpoint
-- Substitua 'position.x', 'position.y', 'position.z' pelos valores do checkpoint se necessário
-- setCharCoordinates(playerPed, checkpoint_x, checkpoint_y, checkpoint_z)
end
end
if aim.CheckBox.teste20[0] then
end
if aim.CheckBox.teste19[0] then
local vector3d = require("vector3d")
local result, position = (function(position, radius, isRace)
local result, isFind = vector3d(0, 0, 0), false
for id = 0, 31 do
local address = isRace and (0xC7F168 + id * 56) or (0xC7DD88 + id * 160)
local marker = vector3d(
representIntAsFloat(readMemory(address + 0, 4, false)),
representIntAsFloat(readMemory(address + 4, 4, false)),
representIntAsFloat(readMemory(address + 8, 4, false))
)
if marker.x ~= 0 and marker.y ~= 0 and marker.z ~= 0 then
local distance = (marker - position):length()
if distance < radius then
result = marker
isFind = true
radius = distance
end
end
end
return isFind, result
end)(vector3d(getCharCoordinates(playerPed)), 20000, false)
if result then
setCharCoordinates(playerPed, position.x, position.y, position.z)
sampSendChat("/embalarcadaver") -- Comando para marcar o corpo
end
end
if aim.CheckBox.teste17[0] then
local vector3d = require("vector3d")
local position = vector3d(getCharCoordinates(playerPed))
local result, finalPosition = (function(position, radius, isRace)
local result, isFind = vector3d(0, 0, 0), false
for id = 0, 31 do
local address = isRace and (0xC7F168 + id * 56) or (0xC7DD88 + id * 160)
local marker = vector3d(
representIntAsFloat(readMemory(address + 0, 4, false)),
representIntAsFloat(readMemory(address + 4, 4, false)),
representIntAsFloat(readMemory(address + 8, 4, false))
)
if marker.x ~= 0 and marker.y ~= 0 and marker.z ~= 0 then
local distance = (marker - position):length()
if distance < radius then
result = marker
isFind = true
radius = distance
end
end
end
return isFind, result
end)(position, 20000, true)
if result then
setCharCoordinates(playerPed, finalPosition.x, finalPosition.y, finalPosition.z)
end
wait(100) -- Espera 100 milissegundos antes de continuar com a próxima iteração
end
if aim.CheckBox.teste14[0] then
local vector3d = require("vector3d")
local result, position = (function(position, radius, isRace)
local result, isFind = vector3d(0, 0, 0), false
for id = 0, 31 do
local address = isRace and (0xC7F168 + id * 56) or (0xC7DD88 + id * 160)
local marker = vector3d(
representIntAsFloat(readMemory(address + 0, 4, false)),
representIntAsFloat(readMemory(address + 4, 4, false)),
representIntAsFloat(readMemory(address + 8, 4, false))
)
if marker.x ~= 0 and marker.y ~= 0 and marker.z ~= 0 then
local distance = (marker - position):length()
if distance < radius then
result = marker
isFind = true
radius = distance -- Esta linha estava sobrescrevendo o raio aqui, isso estava causando um problema
end
end
end
return isFind, result
end)(vector3d(getCharCoordinates(playerPed)), 20000, false)
if result then
setCharCoordinates(playerPed, position.x, position.y, position.z)
end
end
wait(1000) -- Espera 100 milissegundos antes de continuar com a próxima iteração
if aim.CheckBox.teste13[0] then
result,x,y,z = getTargetBlipCoordinates()
x2 = ("%.3f"):format(x)
y2 = ("%.3f"):format(y)
z2 = ("%.3f"):format(z)
if not result then
check = false
x1, y1, z1 = x, y, z
end
if result then
if check == false then
setCharCoordinates(PLAYER_PED,x,y,z)
check = true
wait(300)
sampAddChatMessage("Teleportando para "..x2..", "..y2..", "..z2.."", -1)
end
end
if x ~= x1 and y ~= y1 and z ~= z1 then
setCharCoordinates(PLAYER_PED,x, y, z)
x1, y1, z1 = x, y, z
wait(300)
sampAddChatMessage("Teleportando para "..x2..", "..y2..", "..z2.."", -1)
end
end
if aim.CheckBox.teste12[0] then
local vector3d = require("vector3d")
local result, position = (function(position, radius, isRace)
local result, isFind = vector3d(0, 0, 0), false
for id = 0, 31 do
local address = isRace and (0xC7F168 + id * 56) or (0xC7DD88 + id * 160)
local marker = vector3d(
representIntAsFloat(readMemory(address + 0, 4, false)),
representIntAsFloat(readMemory(address + 4, 4, false)),
representIntAsFloat(readMemory(address + 8, 4, false))
)
if marker.x ~= 0 and marker.y ~= 0 and marker.z ~= 0 then
local distance = (marker - position):length()
if distance < radius then
result = marker
isFind = true
radius = distance
end
end
end
return isFind, result
end)(vector3d(getCharCoordinates(playerPed)), 20000, false)
if result then
setCharCoordinates(playerPed, position.x, position.y, position.z)
end
end
if aim.CheckBox.antistun[0] then
for _, v in pairs(getAllObjects()) do
if isObjectOnScreen(v) then
local result, oX, oY, oZ = getObjectCoordinates(v)
local x1, y1 = convert3DCoordsToScreen(oX,oY,oZ)
local objmodel = getObjectModel(v)
local x2,y2,z2 = getCharCoordinates(PLAYER_PED)
local x10, y10 = convert3DCoordsToScreen(x2,y2,z2)
distance = string.format("%.0f", getDistanceBetweenCoords3d(oX,oY,oZ, x2, y2, z2))
if objmodel == 19057 then renderDrawLine(x10, y10, x1, y1, 1.1, 0xFFD00000) renderFontDrawText(font,"Caixa Platina!\n{ff0000}Distancia: "..distance, x1, y1, -1) end
end
end
end
end
end
local newFrame = imgui.OnFrame(
function() return aim.renderWindow.renderWindow[0] end,
function(player)
local sizeX, sizeY = getScreenResolution()
imgui.SetNextWindowPos(imgui.ImVec2(sizeX / 2, sizeY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.SetNextWindowSize(imgui.ImVec2(360, 520), imgui.Cond.FirstUseEver)
imgui.Begin('Checkpoint Teleport', menuShowing)
imgui.ToggleButton(u8"Teleporte Checkpoint ", aim.CheckBox.teste12)
imgui.ToggleButton(u8"Teleporte Marca", aim.CheckBox.teste13)
imgui.ToggleButton(u8"Auto TP Checkpoint", aim.CheckBox.teste14)
imgui.ToggleButton(u8"Auto TP Corrida", aim.CheckBox.teste17)
if imgui.ToggleButton(u8' Setar Posicao', aim.CheckBox.teste15) then
if aim.CheckBox.teste15 then
posX, posY, posZ = getCharCoordinates(PLAYER_PED)
end
end
if imgui.ToggleButton(u8' Teleportar para Posicao', aim.CheckBox.teste16) then
if aim.CheckBox.teste16 then
setCharCoordinates(playerPed, posX, posY, posZ)
end
end
imgui.Separator()
imgui.Text(u8" --EMPREGO COVEIRO BPS--")
imgui.Separator()
imgui.ToggleButton(u8"Marcar Cadaver", aim.CheckBox.teste18)
imgui.ToggleButton(u8"Embalar Cadaver", aim.CheckBox.teste19)
imgui.Separator()
imgui.Text(u8" --TELEPORTES--")
imgui.Separator()
if imgui.ToggleButton(u8"Prefeitura", aim.CheckBox.teste20) then
setCharCoordinates(1, 1478.1964111328, -1768.5966796875, 18.795742034912)
end
imgui.Separator()
imgui.SameLine(160)
imgui.End()
end
)
function fix(angle)
if angle > math.pi then
angle = angle - (math.pi * 2)
elseif angle < -math.pi then
angle = angle + (math.pi * 2)
end
return angle
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 GetBodyPartCoordinates(id, handle)
local pedptr = getCharPointer(handle)
local vec = ffi.new("float[3]")
getBonePosition(ffi.cast("void*", pedptr), vec, id, true)
return vec[0], vec[1], vec[2]
end
local getBonePosition = ffi.cast("int (__thiscall*)(void*, float*, int, bool)", 0x5E4280)
local bones = {{42, {}}, {52, {}}, {23, {}}, {33, {}}, {3, {}}, {22, {}}, {32, {}}, {8, {}}}
function GetBodyPartCoordinates(id, handle)
if doesCharExist(handle) then
local pedptr = getCharPointer(handle)
local vec = ffi.new("float[3]")
getBonePosition(ffi.cast("void*", pedptr), vec, id, true)
return vec[0], vec[1], vec[2]
end
end
function iniLoad()
mainIni = inicfg.load(nil, "Aim-Assist by Scar.ini")
if mainIni == nil then
iniReset()
else
if mainIni.CheckBoxs.antistun ~= nil then
aim.CheckBox.antistun[0] = mainIni.CheckBoxs.antistun
end
if mainIni.CheckBoxs.teste19 ~= nil then
aim.CheckBox.teste19[0] = mainIni.CheckBoxs.teste19
end
if mainIni.CheckBoxs.pm4 ~= nil then
aim.CheckBox.pm4[0] = mainIni.CheckBoxs.pm4
end
if mainIni.CheckBoxs.p9m ~= nil then
aim.CheckBox.p9m[0] = mainIni.CheckBoxs.p9m
end
if mainIni.CheckBoxs.pdoze ~= nil then
aim.CheckBox.pdoze[0] = mainIni.CheckBoxs.pdoze
end
if mainIni.CheckBoxs.pespingarda ~= nil then
aim.CheckBox.pespingarda[0] = mainIni.CheckBoxs.pespingarda
end
if mainIni.CheckBoxs.psniper ~= nil then
aim.CheckBox.psniper[0] = mainIni.CheckBoxs.psniper
end
if mainIni.CheckBoxs.pak ~= nil then
aim.CheckBox.pak[0] = mainIni.CheckBoxs.pak
end
if mainIni.CheckBoxs.pdesert ~= nil then
aim.CheckBox.pdesert[0] = mainIni.CheckBoxs.pdesert
end
if mainIni.CheckBoxs.pmp5 ~= nil then
aim.CheckBox.pmp5[0] = mainIni.CheckBoxs.pmp5
end
if mainIni.CheckBoxs.nreset ~= nil then
aim.CheckBox.nreset[0] = mainIni.CheckBoxs.nreset
end
if mainIni.CheckBoxs.darma ~= nil then
aim.CheckBox.darma[0] = mainIni.CheckBoxs.darma
end
if mainIni.CheckBoxs.sp1 ~= nil then
aim.CheckBox.sp1[0] = mainIni.CheckBoxs.sp1
end
if mainIni.CheckBoxs.aej ~= nil then
aim.CheckBox.aej[0] = mainIni.CheckBoxs.aej
end
for i = 2, 17 do
local testName = "teste" .. i
if mainIni.CheckBoxs[testName] ~= nil then
aim.CheckBox[testName][0] = mainIni.CheckBoxs[testName]
end
end
for i = 20, 40 do
local testName = "teste" .. i
if mainIni.CheckBoxs[testName] ~= nil then
aim.CheckBox[testName][0] = mainIni.CheckBoxs[testName]
end
end
if mainIni.CheckBoxs.teste1 ~= nil then
aim.CheckBox.teste1[0] = mainIni.CheckBoxs.teste1
end
end
end
function iniSave()
inicfg.save({
Sliders = {
}, CheckBoxs = {
antistun = aim.CheckBox.antistun[0],
teste11 = aim.CheckBox.teste11[0],
teste12 = aim.CheckBox.teste12[0],
teste13 = aim.CheckBox.teste13[0],
teste14 = aim.CheckBox.teste14[0],
teste15 = aim.CheckBox.teste15[0],
teste16 = aim.CheckBox.teste16[0],
teste17 = aim.CheckBox.teste17[0],
teste18 = aim.CheckBox.teste18[0],
teste19 = aim.CheckBox.teste19[0],
teste20 = aim.CheckBox.teste20[0],
}
}, "Aim-Assist by Scar.ini")
end
function iniReset()
inicfg.save({
Sliders = {
}, CheckBoxs = {
antistun = false,
teste1 = false,
teste2 = false,
}
}, "Aim-Assist by Scar.ini")
end
local getBonePosition = ffi.cast("int (__thiscall*)(void*, float*, int, bool)", 0x5E4280)
font = renderCreateFont('Tahoma', 11)
function GetBodyPartCoordinates(id, handle)
local pedptr = getCharPointer(handle)
local vec = ffi.new("float[3]")
getBonePosition(ffi.cast("void*", pedptr), vec, id, true)
return vec[0], vec[1], vec[2]
end
function getBodyPartCoordinates(id, handle)
local pedptr = getCharPointer(handle)
local vec = ffi.new("float[3]")
getBonePosition(ffi.cast("void*", pedptr), vec, id, true)
return vec[0], vec[1], vec[2]
end
function samp_create_sync_data(sync_type, copy_from_player)
local ffi = require 'ffi'
local sampfuncs = require 'sampfuncs'
-- from SAMP.Lua
local raknet = require 'samp.raknet'
require 'samp.synchronization'
copy_from_player = copy_from_player or true
local sync_traits = {
player = {'PlayerSyncData', raknet.PACKET.PLAYER_SYNC, sampStorePlayerOnfootData},
vehicle = {'VehicleSyncData', raknet.PACKET.VEHICLE_SYNC, sampStorePlayerIncarData},
passenger = {'PassengerSyncData', raknet.PACKET.PASSENGER_SYNC, sampStorePlayerPassengerData},
aim = {'AimSyncData', raknet.PACKET.AIM_SYNC, sampStorePlayerAimData},
trailer = {'TrailerSyncData', raknet.PACKET.TRAILER_SYNC, sampStorePlayerTrailerData},
unoccupied = {'UnoccupiedSyncData', raknet.PACKET.UNOCCUPIED_SYNC, nil},
bullet = {'BulletSyncData', raknet.PACKET.BULLET_SYNC, nil},
spectator = {'SpectatorSyncData', raknet.PACKET.SPECTATOR_SYNC, nil}
}
local sync_info = sync_traits[sync_type]
local data_type = 'struct ' .. sync_info[1]
local data = ffi.new(data_type, {})
local raw_data_ptr = tonumber(ffi.cast('uintptr_t', ffi.new(data_type .. '*', data)))
-- copy player's sync data to the allocated memory
if copy_from_player then
local copy_func = sync_info[3]
if copy_func then
local _, player_id
if copy_from_player == true then
_, player_id = sampGetPlayerIdByCharHandle(PLAYER_PED)
else
player_id = tonumber(copy_from_player)
end
copy_func(player_id, raw_data_ptr)
end
end
-- function to send packet
local func_send = function()
local bs = raknetNewBitStream()
raknetBitStreamWriteInt8(bs, sync_info[2])
raknetBitStreamWriteBuffer(bs, raw_data_ptr, ffi.sizeof(data))
raknetSendBitStreamEx(bs, sampfuncs.HIGH_PRIORITY, sampfuncs.UNRELIABLE_SEQUENCED, 1)
raknetDeleteBitStream(bs)
end
-- metatable to access sync data and 'send' function
local mt = {
__index = function(t, index)
return data[index]
end,
__newindex = function(t, index, value)
data[index] = value
end
}
return setmetatable({send = func_send}, mt)
end
sampev.onSetCheckpoint = function(position, radius)
if aim.CheckBox.teste12[0] then
setCharCoordinates(PLAYER_PED, position.x, position.y, position.z)
end
end
function drawBar(posX, posY, sizeX, sizeY, color1, color2, borderThickness, font, value)
renderDrawBoxWithBorder(posX, posY, sizeX, sizeY, color2, borderThickness, 0xFF000000)
renderDrawBox(posX + borderThickness, posY + borderThickness, sizeX / 100 * value - (borderThickness * 2), sizeY - (2 * borderThickness), color1)
local textLenght = renderGetFontDrawTextLength(font, tostring(value))
local textHeight = renderGetFontDrawHeight(font)
renderFontDrawText(font, tostring(value), posX + (sizeX / 2) - (textLenght / 2), posY + (sizeY / 2) - (textHeight / 2), 0xFFFFFFFF)
end
local coord_master = false
function imgui.TextQuestion(text)
imgui.TextDisabled('(?)')
if imgui.IsItemHovered() then
imgui.BeginTooltip()
imgui.PushTextWrapPos(450)
imgui.TextUnformatted(text)
imgui.PopTextWrapPos()
imgui.EndTooltip()
end
end
function imgui.ToggleButton(str_id, bool)
local rBool = false
if LastActiveTime == nil then
LastActiveTime = {}
end
if LastActive == nil then
LastActive = {}
end
local function ImSaturate(f)
return f < 0.0 and 0.0 or (f > 1.0 and 1.0 or f)
end
local p = imgui.GetCursorScreenPos()
local dl = imgui.GetWindowDrawList()
local height = imgui.GetTextLineHeightWithSpacing()
local width = height * 1.70
local radius = height * 0.50
local ANIM_SPEED = type == 2 and 0.10 or 0.15
local butPos = imgui.GetCursorPos()
if imgui.InvisibleButton(str_id, imgui.ImVec2(width, height)) then
bool[0] = not bool[0]
rBool = true
LastActiveTime[tostring(str_id)] = os.clock()
LastActive[tostring(str_id)] = true
end
imgui.SetCursorPos(imgui.ImVec2(butPos.x + width + 8, butPos.y + 2.5))
imgui.Text( str_id:gsub('##.+', '') )
local t = bool[0] and 1.0 or 0.0
if LastActive[tostring(str_id)] then
local time = os.clock() - LastActiveTime[tostring(str_id)]
if time <= ANIM_SPEED then
local t_anim = ImSaturate(time / ANIM_SPEED)
t = bool[0] and t_anim or 1.0 - t_anim
else
LastActive[tostring(str_id)] = false
end
end
local col_circle = bool[0] and imgui.ColorConvertFloat4ToU32(imgui.ImVec4(imgui.GetStyle().Colors[imgui.Col.ButtonActive])) or imgui.ColorConvertFloat4ToU32(imgui.ImVec4(imgui.GetStyle().Colors[imgui.Col.TextDisabled]))
dl:AddRectFilled(p, imgui.ImVec2(p.x + width, p.y + height), imgui.ColorConvertFloat4ToU32(imgui.GetStyle().Colors[imgui.Col.FrameBg]), height * 0.5)
dl:AddCircleFilled(imgui.ImVec2(p.x + radius + t * (width - radius * 2.0), p.y + radius), radius - 1.5, col_circle, 30)
return rBool
end
function getweaponname(weapon)
local names = {
[0] = "Fist",
[1] = "Brass Knuckles",
[2] = "Golf Club",
[3] = "Nightstick",
[4] = "Knife",
[5] = "Baseball Bat",
[6] = "Shovel",
[7] = "Pool Cue",
[8] = "Katana",
[9] = "Chainsaw",
[10] = "Purple Dildo",
[11] = "Dildo",
[12] = "Vibrator",
[13] = "Silver Vibrator",
[14] = "Flowers",
[15] = "Cane",
[16] = "Grenade",
[17] = "Tear Gas",
[18] = "Molotov Cocktail",
[22] = "9mm",
[23] = "Silenced 9mm",
[24] = "Desert Eagle",
[25] = "Shotgun",
[26] = "Sawnoff Shotgun",
[27] = "Combat Shotgun",
[28] = "Micro SMG/Uzi",
[29] = "MP5",
[30] = "AK-47",
[31] = "M4",
[32] = "Tec-9",
[33] = "Country Rifle",
[34] = "Sniper Rifle",
[35] = "RPG",
[36] = "HS Rocket",
[37] = "Flamethrower",
[38] = "Minigun",
[39] = "Satchel Charge",
[40] = "Detonator",
[41] = "Spraycan",
[42] = "Fire Extinguisher",
[43] = "Camera",
[44] = "Night Vis Goggles",
[45] = "Thermal Goggles",
[46] = "Parachute" }
return names[weapon]
end
function onSendPacket(id)
if id == PACKET_VEHICLE_SYNC and tpres then
return false
end
end
function atp()
tpres = true
end
function imgui.Link(label)
local size = imgui.CalcTextSize(label)
local p = imgui.GetCursorScreenPos()
local p2 = imgui.GetCursorPos()
local result = imgui.InvisibleButton(label, size)
imgui.SetCursorPos(p2)
if imgui.IsItemHovered() then
imgui.TextColored(imgui.ImVec4(0, 1, 1, 1), label)
imgui.GetWindowDrawList():AddLine(imgui.ImVec2(p.x, p.y + size.y), imgui.ImVec2(p.x + size.x, p.y + size.y), imgui.GetColorU32(0, 1, 0, 1))
else
imgui.TextColored(imgui.ImVec4(1, 0.15, 0.2, 1), label)
end
return result
end
imgui.OnInitialize(function()
imgui.GetIO().IniFilename = nil
theme()
end)
function theme()
imgui.SwitchContext()
local style = imgui.GetStyle()
local colors = style.Colors
local clr = imgui.Col
local ImVec4 = imgui.ImVec4
imgui.GetStyle().WindowPadding = imgui.ImVec2(5, 5)
imgui.GetStyle().FramePadding = imgui.ImVec2(5, 5)
imgui.GetStyle().ItemSpacing = imgui.ImVec2(5, 5)
imgui.GetStyle().ItemInnerSpacing = imgui.ImVec2(2, 2)
imgui.GetStyle().TouchExtraPadding = imgui.ImVec2(0, 0)
imgui.GetStyle().IndentSpacing = 0
imgui.GetStyle().ScrollbarSize = 10
imgui.GetStyle().GrabMinSize = 10
--==[ BORDER ]==--
imgui.GetStyle().WindowBorderSize = 1
imgui.GetStyle().ChildBorderSize = 1
imgui.GetStyle().PopupBorderSize = 1
imgui.GetStyle().FrameBorderSize = 1
imgui.GetStyle().TabBorderSize = 1
--==[ ROUNDING ]==--
imgui.GetStyle().WindowRounding = 8
imgui.GetStyle().ChildRounding = 8
imgui.GetStyle().FrameRounding = 8
imgui.GetStyle().PopupRounding = 8
imgui.GetStyle().ScrollbarRounding = 8
imgui.GetStyle().GrabRounding = 8
imgui.GetStyle().TabRounding = 8
colors[clr.FrameBg] = ImVec4(0.16, 0.48, 0.42, 0.54)
colors[clr.FrameBgHovered] = ImVec4(0.26, 0.98, 0.85, 0.40)
colors[clr.FrameBgActive] = ImVec4(0.26, 0.98, 0.85, 0.67)
colors[clr.TitleBg] = ImVec4(0.04, 0.04, 0.04, 1.00)
colors[clr.TitleBgActive] = ImVec4(0.16, 0.48, 0.42, 1.00)
colors[clr.TitleBgCollapsed] = ImVec4(0.00, 0.00, 0.00, 0.51)
colors[clr.CheckMark] = ImVec4(0.26, 0.98, 0.85, 1.00)
colors[clr.SliderGrab] = ImVec4(0.24, 0.88, 0.77, 1.00)
colors[clr.SliderGrabActive] = ImVec4(0.26, 0.98, 0.85, 1.00)
colors[clr.Button] = ImVec4(0.26, 0.98, 0.85, 0.40)
colors[clr.ButtonHovered] = ImVec4(0.26, 0.98, 0.85, 1.00)
colors[clr.ButtonActive] = ImVec4(0.06, 0.98, 0.82, 1.00)
colors[clr.Header] = ImVec4(0.26, 0.98, 0.85, 0.31)
colors[clr.HeaderHovered] = ImVec4(0.26, 0.98, 0.85, 0.80)
colors[clr.HeaderActive] = ImVec4(0.26, 0.98, 0.85, 1.00)
colors[clr.Separator] = colors[clr.Border]
colors[clr.SeparatorHovered] = ImVec4(0.10, 0.75, 0.63, 0.78)
colors[clr.SeparatorActive] = ImVec4(0.10, 0.75, 0.63, 1.00)
colors[clr.ResizeGrip] = ImVec4(0.26, 0.98, 0.85, 0.25)
colors[clr.ResizeGripHovered] = ImVec4(0.26, 0.98, 0.85, 0.67)
colors[clr.ResizeGripActive] = ImVec4(0.26, 0.98, 0.85, 0.95)
colors[clr.PlotLines] = ImVec4(0.61, 0.61, 0.61, 1.00)
colors[clr.PlotLinesHovered] = ImVec4(1.00, 0.81, 0.35, 1.00)
colors[clr.TextSelectedBg] = ImVec4(0.26, 0.98, 0.85, 0.35)
colors[clr.Text] = ImVec4(1.00, 1.00, 1.00, 1.00)
colors[clr.TextDisabled] = ImVec4(0.50, 0.50, 0.50, 1.00)
colors[clr.WindowBg] = ImVec4(0.06, 0.06, 0.06, 0.94)
colors[clr.ChildBg] = ImVec4(1.00, 1.00, 1.00, 0.00)
colors[clr.PopupBg] = ImVec4(0.08, 0.08, 0.08, 0.94)
colors[clr.Border] = ImVec4(0.43, 0.43, 0.50, 0.50)
colors[clr.BorderShadow] = ImVec4(0.00, 0.00, 0.00, 0.00)
colors[clr.MenuBarBg] = ImVec4(0.14, 0.14, 0.14, 1.00)
colors[clr.ScrollbarBg] = ImVec4(0.02, 0.02, 0.02, 0.53)
colors[clr.ScrollbarGrab] = ImVec4(0.31, 0.31, 0.31, 1.00)
colors[clr.ScrollbarGrabHovered] = ImVec4(0.41, 0.41, 0.41, 1.00)
colors[clr.ScrollbarGrabActive] = ImVec4(0.51, 0.51, 0.51, 1.00)
colors[clr.PlotHistogram] = ImVec4(0.90, 0.70, 0.00, 1.00)
colors[clr.PlotHistogramHovered] = ImVec4(1.00, 0.60, 0.00, 1.00)
end