mirror of
https://github.com/UltimateMenu/UltimateMenu.git
synced 2026-10-10 11:53:08 +08:00
Fixes and Updates
fixed Cayo Perico Cuts Globals thx to xt95 aka Void • Vortex on discord removed auto cracker its useless for now and it has some bugs fixed data cracker bug thx to imaginenothing on unknowncheats.me for the help :3 some other little changes you can view on the commit line changes enjoy <3
This commit is contained in:
+340
-213
@@ -30,6 +30,7 @@ AFPl = 9831 -- apartment pacific hack local
|
|||||||
AHSo = 19808 + 2 -- Apartment heist skip checkpoint
|
AHSo = 19808 + 2 -- Apartment heist skip checkpoint
|
||||||
ACDg = 2686119 -- apartment cooldown global
|
ACDg = 2686119 -- apartment cooldown global
|
||||||
AHDg = 4718592 + 3771 -- search in tuneables_processing.c for joaat("HEIST_DIFFICULTY_EASY") then search the global you find in fmmc_launcher.c then take the global in switch state above it done
|
AHDg = 4718592 + 3771 -- search in tuneables_processing.c for joaat("HEIST_DIFFICULTY_EASY") then search the global you find in fmmc_launcher.c then take the global in switch state above it done
|
||||||
|
AHLIVES = 26234 + 1325 + 1 -- Apartment Heist team lives local found below if (eventData == -1248635465) in ("fm_mission_controller")
|
||||||
|
|
||||||
-- Diamond Casino Heist
|
-- Diamond Casino Heist
|
||||||
DCRBl = 217 -- diamond casino reload board local
|
DCRBl = 217 -- diamond casino reload board local
|
||||||
@@ -43,6 +44,7 @@ DCFHl = 54118 -- diamond casino fingerprint hack local
|
|||||||
DCKHl = 55188 -- diamond casino keypad hack local
|
DCKHl = 55188 -- diamond casino keypad hack local
|
||||||
DCDVDl1 = 10125 + 7 -- diamond casino drill vault door local 1 --("DLC_HEIST_MINIGAME_FLEECA_DRILLING_SCENE") in ("fm_mission_controller")
|
DCDVDl1 = 10125 + 7 -- diamond casino drill vault door local 1 --("DLC_HEIST_MINIGAME_FLEECA_DRILLING_SCENE") in ("fm_mission_controller")
|
||||||
DCDVDl2 = 10125 + 37 -- diamond casino drill vault door local 2 --("fm_mission_controller")
|
DCDVDl2 = 10125 + 37 -- diamond casino drill vault door local 2 --("fm_mission_controller")
|
||||||
|
DCLIVESL = 26234 + 1325 + 1 -- diamond casino team lives local found below if (eventData == -1248635465) in ("fm_mission_controller")
|
||||||
DCXf1 = 19808
|
DCXf1 = 19808
|
||||||
DCXf2 = 19808 + 1062
|
DCXf2 = 19808 + 1062
|
||||||
DCXf3 = 19808 + 1740 + 1
|
DCXf3 = 19808 + 1740 + 1
|
||||||
@@ -52,15 +54,16 @@ DCXf6 = 31981 + 1 + 68
|
|||||||
|
|
||||||
-- Cayo Perico Heist
|
-- Cayo Perico Heist
|
||||||
CPRSl = 1578 -- cayo perico reload screen local
|
CPRSl = 1578 -- cayo perico reload screen local
|
||||||
CPCg1 = 1980404 + 831 + 56 + 1 -- cayo perico player 1 cut global --("heist_island_planning")
|
CPCg1 = 1979291 + 831 + 56 + 1 -- cayo perico player 1 cut global --("heist_island_planning")
|
||||||
CPCg2 = 1980404 + 831 + 56 + 2 -- cayo perico player 2 cut global --("heist_island_planning")
|
CPCg2 = 1979291 + 831 + 56 + 2 -- cayo perico player 2 cut global --("heist_island_planning")
|
||||||
CPCg3 = 1980404 + 831 + 56 + 3 -- cayo perico player 3 cut global --("heist_island_planning")
|
CPCg3 = 1979291 + 831 + 56 + 3 -- cayo perico player 3 cut global --("heist_island_planning")
|
||||||
CPCg4 = 1980404 + 831 + 56 + 4 -- cayo perico player 4 cut global --("heist_island_planning")
|
CPCg4 = 1979291 + 831 + 56 + 4 -- cayo perico player 4 cut global --("heist_island_planning")
|
||||||
CPFHl = 26217 -- cayo perico fingerprint hack local ("heist") in ("fm_mission_controller_2020")
|
CPFHl = 26217 -- cayo perico fingerprint hack local ("heist") in ("fm_mission_controller_2020")
|
||||||
CPPCCl = 32349 + 3 -- cayo perico plasma cutter cut local ("DLC_H4_anims_glass_cutter_Sounds") in ("fm_mission_controller_2020")
|
CPPCCl = 32349 + 3 -- cayo perico plasma cutter cut local ("DLC_H4_anims_glass_cutter_Sounds") in ("fm_mission_controller_2020")
|
||||||
CPSTCl = 31109 -- cayo perico drainage pipe cut local ("IntroFinished") in ("fm_mission_controller_2020")
|
CPSTCl = 31109 -- cayo perico drainage pipe cut local ("IntroFinished") in ("fm_mission_controller_2020")
|
||||||
CPXf1 = 56070 -- cayo perico instant finish local 1
|
CPXf1 = 56070 -- cayo perico instant finish local 1
|
||||||
CPXf2 = 56070 + 1776 + 1 -- cayo perico instant finish local 2
|
CPXf2 = 56070 + 1776 + 1 -- cayo perico instant finish local 2
|
||||||
|
CPLIVESL = 62851 + 1109 + 1 -- Cayo Perico team lives local found below if (eventData == -1248635465) in ("fm_mission_controller_2020")
|
||||||
|
|
||||||
-- Doomsday Heist
|
-- Doomsday Heist
|
||||||
DDSHl = 1312 + 135 -- doomsday doomsday scenario hack local
|
DDSHl = 1312 + 135 -- doomsday doomsday scenario hack local
|
||||||
@@ -74,6 +77,30 @@ DDIF2 = 19808 + 1740 + 1 -- doomsday instant finish local 2
|
|||||||
DDIF3 = 28722 + 1 -- doomsday instant finish local 3
|
DDIF3 = 28722 + 1 -- doomsday instant finish local 3
|
||||||
DDIF4 = 31981 + 1 + 68 -- doomsday instant finish local 4
|
DDIF4 = 31981 + 1 + 68 -- doomsday instant finish local 4
|
||||||
DDIF5 = 31981 + 97 -- doomsday instant finish local 5
|
DDIF5 = 31981 + 97 -- doomsday instant finish local 5
|
||||||
|
DDLIVESL = 26234 + 1325 + 1 -- Doomsday team lives local found below if (eventData == -1248635465) in ("fm_mission_controller")
|
||||||
|
|
||||||
|
-- Kortz Center Heist
|
||||||
|
|
||||||
|
-- Local Variables
|
||||||
|
KCDCL = 1386 -- Data crack local (1386 + (i * 4) for i = 0-7)
|
||||||
|
KCFHL = 26464 -- Fingerprint hack local
|
||||||
|
KCAC_BASE = 32416 + 1 -- Access code base (32416 + 1 + (i * 2) for i = 0-2)
|
||||||
|
KCLGL = 70416 -- Lasers local
|
||||||
|
KCVLL = 27512 -- Vault door local
|
||||||
|
|
||||||
|
-- Target State Locals (these are the same as KCPTL/KCSTL but renamed for clarity)
|
||||||
|
KCPT_STATE = 28953 + 11 -- Primary target state (15/17 = available, 3 = taken)
|
||||||
|
KCST_STATE = 28953 + 11 -- Secondary target state (3 = available)
|
||||||
|
|
||||||
|
-- Global Variables
|
||||||
|
KCBGL = FMg + 37438 -- Bag size global
|
||||||
|
KCWMG = FMg + 38199 -- Weekly multiplier global
|
||||||
|
KCCDG = FMg + 38102 -- Cooldown normal global
|
||||||
|
KCCD2G = FMg + 38103 -- Cooldown hard mode global
|
||||||
|
KCLDG = 1935234 -- Lasers disable global
|
||||||
|
|
||||||
|
-- Lives
|
||||||
|
KCLIVESL = 63515 + 1109 + 1 -- Team lives local
|
||||||
|
|
||||||
-- Agency Variables
|
-- Agency Variables
|
||||||
AGFl1 = 56070 + 1
|
AGFl1 = 56070 + 1
|
||||||
@@ -4935,6 +4962,7 @@ HeistsDataEditorMenu = makeOnlineTab(L7NEG:add_tab("Heists Data Editor Menu"))
|
|||||||
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
local ApartmentDataEditorMenu = HeistsDataEditorMenu:add_tab("Apartment Heist ")
|
local ApartmentDataEditorMenu = HeistsDataEditorMenu:add_tab("Apartment Heist ")
|
||||||
|
|
||||||
ApartmentDataEditorMenu:add_text("Preps")
|
ApartmentDataEditorMenu:add_text("Preps")
|
||||||
ApartmentDataEditorMenu:add_button("Complete Preps", function()
|
ApartmentDataEditorMenu:add_button("Complete Preps", function()
|
||||||
stats.set_int(MPX() .. "HEIST_PLANNING_STAGE", -1)
|
stats.set_int(MPX() .. "HEIST_PLANNING_STAGE", -1)
|
||||||
@@ -4956,6 +4984,28 @@ ApartmentDataEditorMenu:add_button("Change Session", function()
|
|||||||
changeSession(8)
|
changeSession(8)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
-- Lives Editor for Apartment Heist
|
||||||
|
ApartmentDataEditorMenu:add_separator()
|
||||||
|
ApartmentDataEditorMenu:add_text("Team Lives:")
|
||||||
|
local livesValueApartment = 3
|
||||||
|
ApartmentDataEditorMenu:add_imgui(function()
|
||||||
|
if checkOnline() then return end
|
||||||
|
|
||||||
|
ImGui.Text("Team Lives:")
|
||||||
|
livesValueApartment, _ = ImGui.InputInt("##ApartmentLives", livesValueApartment)
|
||||||
|
if ImGui.Button("Set Lives##Apartment") then
|
||||||
|
if livesValueApartment < 1 then
|
||||||
|
gui.show_message("Apartment Heist", "Lives must be at least 1!")
|
||||||
|
else
|
||||||
|
locals.set_int("fm_mission_controller", AHLIVESL, livesValueApartment)
|
||||||
|
gui.show_message("Apartment Heist", "Team lives set to " .. livesValueApartment)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Default is 3. Infinite team lives for the heist (set to 999999 for unlimited)")
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
local heistCuts = {
|
local heistCuts = {
|
||||||
easy = {
|
easy = {
|
||||||
[1328892776] = {-5862, 2981},
|
[1328892776] = {-5862, 2981},
|
||||||
@@ -5657,6 +5707,7 @@ end)
|
|||||||
|
|
||||||
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
-- Doomsday --
|
-- Doomsday --
|
||||||
|
|
||||||
local function DoomsdayActSetter(progress, status)
|
local function DoomsdayActSetter(progress, status)
|
||||||
stats.set_int(MPX() .. "GANGOPS_FLOW_MISSION_PROG", progress)
|
stats.set_int(MPX() .. "GANGOPS_FLOW_MISSION_PROG", progress)
|
||||||
stats.set_int(MPX() .. "GANGOPS_HEIST_STATUS", status)
|
stats.set_int(MPX() .. "GANGOPS_HEIST_STATUS", status)
|
||||||
@@ -5746,6 +5797,29 @@ SN_Doomsday:add_button("Apply Cuts", function()
|
|||||||
globals.set_int(DCg4, dmsdyCut4:get_value())
|
globals.set_int(DCg4, dmsdyCut4:get_value())
|
||||||
gui.show_message("Doomsday Heist", "Cuts should've been applied")
|
gui.show_message("Doomsday Heist", "Cuts should've been applied")
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
-- Lives Editor for Doomsday Heist
|
||||||
|
SN_Doomsday:add_separator()
|
||||||
|
SN_Doomsday:add_text("Team Lives:")
|
||||||
|
local livesValueDoomsday = 3
|
||||||
|
SN_Doomsday:add_imgui(function()
|
||||||
|
if checkOnline() then return end
|
||||||
|
|
||||||
|
ImGui.Text("Team Lives:")
|
||||||
|
livesValueDoomsday, _ = ImGui.InputInt("##DoomsdayLives", livesValueDoomsday)
|
||||||
|
if ImGui.Button("Set Lives##Doomsday") then
|
||||||
|
if livesValueDoomsday < 1 then
|
||||||
|
gui.show_message("Doomsday Heist", "Lives must be at least 1!")
|
||||||
|
else
|
||||||
|
locals.set_int("fm_mission_controller", DDLIVESL, livesValueDoomsday)
|
||||||
|
gui.show_message("Doomsday Heist", "Team lives set to " .. livesValueDoomsday)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Default is 3. Infinite team lives for the heist (set to 999999 for unlimited)")
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
SN_Doomsday:add_separator()
|
SN_Doomsday:add_separator()
|
||||||
SN_Doomsday:add_text("Preps")
|
SN_Doomsday:add_text("Preps")
|
||||||
SN_Doomsday:add_button("Reset Preps",
|
SN_Doomsday:add_button("Reset Preps",
|
||||||
@@ -5806,6 +5880,7 @@ SN_Doomsday:add_button("Skip Cutscene", SkipCutscene)
|
|||||||
|
|
||||||
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
-- Casino Heist --
|
-- Casino Heist --
|
||||||
|
|
||||||
local CasinoHeistEditorMenu = HeistsDataEditorMenu:add_tab("Casino Heist")
|
local CasinoHeistEditorMenu = HeistsDataEditorMenu:add_tab("Casino Heist")
|
||||||
|
|
||||||
CasinoHeistEditorMenu:add_text("One Click Setups:")
|
CasinoHeistEditorMenu:add_text("One Click Setups:")
|
||||||
@@ -5860,6 +5935,29 @@ end)
|
|||||||
|
|
||||||
CasinoHeistEditorMenu:add_separator()
|
CasinoHeistEditorMenu:add_separator()
|
||||||
|
|
||||||
|
-- Lives Editor for Casino Heist
|
||||||
|
CasinoHeistEditorMenu:add_text("Team Lives:")
|
||||||
|
local livesValueCasino = 3
|
||||||
|
CasinoHeistEditorMenu:add_imgui(function()
|
||||||
|
if checkOnline() then return end
|
||||||
|
|
||||||
|
ImGui.Text("Team Lives:")
|
||||||
|
livesValueCasino, _ = ImGui.InputInt("##CasinoLives", livesValueCasino)
|
||||||
|
if ImGui.Button("Set Lives##Casino") then
|
||||||
|
if livesValueCasino < 1 then
|
||||||
|
gui.show_message("Casino Heist", "Lives must be at least 1!")
|
||||||
|
else
|
||||||
|
locals.set_int("fm_mission_controller", DCLIVESL, livesValueCasino)
|
||||||
|
gui.show_message("Casino Heist", "Team lives set to " .. livesValueCasino)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Default is 3. Infinite team lives for the heist (set to 999999 for unlimited)")
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
CasinoHeistEditorMenu:add_separator()
|
||||||
|
|
||||||
DiamondCasinoDifficulties = {
|
DiamondCasinoDifficulties = {
|
||||||
{ name = "Normal", index = 0 },
|
{ name = "Normal", index = 0 },
|
||||||
{ name = "Hard", index = 1 }
|
{ name = "Hard", index = 1 }
|
||||||
@@ -6491,6 +6589,7 @@ local cayocut2 = 0
|
|||||||
local cayocut3 = 0
|
local cayocut3 = 0
|
||||||
local cayocut4 = 0
|
local cayocut4 = 0
|
||||||
local cayoCrewCuts = false
|
local cayoCrewCuts = false
|
||||||
|
local livesValueCayo = 3
|
||||||
|
|
||||||
local CayoHeistEditorMenu = HeistsDataEditorMenu:add_tab("Cayo Perico Heist ")
|
local CayoHeistEditorMenu = HeistsDataEditorMenu:add_tab("Cayo Perico Heist ")
|
||||||
|
|
||||||
@@ -6688,6 +6787,16 @@ CayoHeistEditorMenu:add_imgui(function()
|
|||||||
gui.show_message("Cayo Perico Heist", "Cutting process should've been skipped")
|
gui.show_message("Cayo Perico Heist", "Cutting process should've been skipped")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
ImGui.Text("Team Lives:")
|
||||||
|
livesValueCayo, _ = ImGui.InputInt("##CayolivesValue", livesValueCayo)
|
||||||
|
if ImGui.Button("Set Lives") then
|
||||||
|
locals.set_int("fm_mission_controller_2020", CPLIVESL, livesValueCayo)
|
||||||
|
gui.show_message("Cayo Perico Heist", "Team Lives value set to " .. livesValueCayo)
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Default is 3. Infinite team lives for the heist (set to 999999 for unlimited)")
|
||||||
|
end
|
||||||
|
|
||||||
if ImGui.Button("Remove All CCTV's") then
|
if ImGui.Button("Remove All CCTV's") then
|
||||||
for _, ent in pairs(entities.get_all_objects_as_handles()) do
|
for _, ent in pairs(entities.get_all_objects_as_handles()) do
|
||||||
for __, cam in pairs(CamList) do
|
for __, cam in pairs(CamList) do
|
||||||
@@ -6768,22 +6877,37 @@ end)
|
|||||||
|
|
||||||
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
-- Kortz Center Heist --
|
-- Kortz Center Heist
|
||||||
local KortzCenterHeistMenu = HeistsDataEditorMenu:add_tab("Kortz Center Heist")
|
|
||||||
|
|
||||||
-- State variables
|
-- Glass case data (global)
|
||||||
local k26_general_bs = 0
|
glassCaseNames = {
|
||||||
local k26_robbery_prog = 0
|
[0] = "Venus d'Algernon",
|
||||||
local k26_heist_target = 0
|
[1] = "Gemstone",
|
||||||
local k26_scoping_bs = -1
|
[2] = "Horse",
|
||||||
local k26_poi_bs = -1
|
[3] = "Coquard Carcanet",
|
||||||
|
[4] = "Memento Non Mori"
|
||||||
|
}
|
||||||
|
glassCaseTypes = {
|
||||||
|
[0] = "Tall Glass Case",
|
||||||
|
[1] = "Tall Glass Case",
|
||||||
|
[2] = "Horizontal Glass Case",
|
||||||
|
[3] = "Horizontal Glass Case",
|
||||||
|
[4] = "Horizontal Glass Case"
|
||||||
|
}
|
||||||
|
|
||||||
-- Bag size & multiplier variables
|
-- Create menu
|
||||||
local bagSizeValue = 100
|
KortzCenterHeistMenu = HeistsDataEditorMenu:add_tab("Kortz Center Heist")
|
||||||
local weeklyMultiplierValue = 4.0
|
|
||||||
|
-- State variables (global)
|
||||||
|
k26_heist_target = 0
|
||||||
|
|
||||||
|
-- UI values (global)
|
||||||
|
bagSizeValue = 100
|
||||||
|
weeklyMultiplierValue = 4.0
|
||||||
|
livesValue = 3
|
||||||
|
|
||||||
-- Primary Target Names
|
-- Primary Target Names
|
||||||
local k26Targets = {
|
k26Targets = {
|
||||||
{name = "La Dernière Débauche", id = 0, payout = 481250},
|
{name = "La Dernière Débauche", id = 0, payout = 481250},
|
||||||
{name = "Hare Oneself Think", id = 1, payout = 304500},
|
{name = "Hare Oneself Think", id = 1, payout = 304500},
|
||||||
{name = "The Downfall of Rome", id = 2, payout = 305000},
|
{name = "The Downfall of Rome", id = 2, payout = 305000},
|
||||||
@@ -6813,44 +6937,48 @@ local k26Targets = {
|
|||||||
{name = "Mi O Melee", id = 26, payout = 317000}
|
{name = "Mi O Melee", id = 26, payout = 317000}
|
||||||
}
|
}
|
||||||
|
|
||||||
local targetNames = {}
|
targetNames = {}
|
||||||
for _, target in ipairs(k26Targets) do
|
for _, target in ipairs(k26Targets) do
|
||||||
table.insert(targetNames, target.name)
|
table.insert(targetNames, target.name)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Helper function to set bits
|
-- Helper functions
|
||||||
local function setK26Bit(stat, bit, name)
|
function setK26Bit(stat, bit, name)
|
||||||
local current = stats.get_int(MPX() .. stat)
|
local current = stats.get_int(MPX() .. stat)
|
||||||
stats.set_int(MPX() .. stat, current | bit)
|
stats.set_int(MPX() .. stat, current | bit)
|
||||||
gui.show_message("Kortz Center Heist", name .. " enabled")
|
gui.show_message("Kortz Center Heist", name .. " enabled")
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Helper function to check if Kortz Heist is active
|
function isKortzHeistActive()
|
||||||
local function isKortzHeistActive()
|
|
||||||
return SCRIPT.GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(joaat("fm_mission_controller_v3")) > 0
|
return SCRIPT.GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(joaat("fm_mission_controller_v3")) > 0
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Kortz Center Cracker Functions using YimMenu API
|
function getGlassProgress(i)
|
||||||
|
return locals.get_float("fm_mission_controller_v3", KCCGL_BASE + (i * 13) + KCCGL_OFFSET)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Data Crack - Fixed with correct offset (1386 + 1 + (b * 4))
|
||||||
local function KortzSkipDataCrack()
|
local function KortzSkipDataCrack()
|
||||||
if isKortzHeistActive() then
|
if isKortzHeistActive() then
|
||||||
for b = 0, 7 do
|
for b = 0, 7 do
|
||||||
locals.set_int("fm_mission_controller_v3", 1386 + (b * 4), 1)
|
locals.set_int("fm_mission_controller_v3", 1386 + 1 + (b * 4), 1)
|
||||||
end
|
end
|
||||||
gui.show_message("Kortz Center Cracker", "Data crack skipped")
|
gui.show_message("Kortz Center Cracker", "Data crack bypassed! The terminal is now unlocked.")
|
||||||
else
|
else
|
||||||
gui.show_message("Kortz Center Cracker", "Heist not active!")
|
gui.show_message("Kortz Center Cracker", "Heist not active! Please start The Kortz Center Heist first.")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function KortzSkipFingerprint()
|
local function KortzSkipFingerprint()
|
||||||
if isKortzHeistActive() then
|
if isKortzHeistActive() then
|
||||||
locals.set_int("fm_mission_controller_v3", 26464, 5)
|
locals.set_int("fm_mission_controller_v3", KCFHL, 5)
|
||||||
gui.show_message("Kortz Center Cracker", "Fingerprint hack skipped")
|
gui.show_message("Kortz Center Cracker", "Fingerprint scanner bypassed! Security system disabled.")
|
||||||
else
|
else
|
||||||
gui.show_message("Kortz Center Cracker", "Heist not active!")
|
gui.show_message("Kortz Center Cracker", "Heist not active! Please start The Kortz Center Heist first.")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Access Code
|
||||||
local function KortzAutoAccessCode()
|
local function KortzAutoAccessCode()
|
||||||
if isKortzHeistActive() then
|
if isKortzHeistActive() then
|
||||||
for i = 0, 2 do
|
for i = 0, 2 do
|
||||||
@@ -6858,115 +6986,68 @@ local function KortzAutoAccessCode()
|
|||||||
locals.set_float("fm_mission_controller_v3", 32416 + 1 + (i * 2), 0.0)
|
locals.set_float("fm_mission_controller_v3", 32416 + 1 + (i * 2), 0.0)
|
||||||
PAD.SET_CONTROL_VALUE_NEXT_FRAME(0, 237, 1.0)
|
PAD.SET_CONTROL_VALUE_NEXT_FRAME(0, 237, 1.0)
|
||||||
end
|
end
|
||||||
gui.show_message("Kortz Center Cracker", "Access code entered")
|
gui.show_message("Kortz Center Cracker", "Access code 000 entered! The system is now unlocked.")
|
||||||
else
|
else
|
||||||
gui.show_message("Kortz Center Cracker", "Heist not active!")
|
gui.show_message("Kortz Center Cracker", "Heist not active! Please start The Kortz Center Heist first.")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function KortzDisableLasers()
|
local function KortzDisableLasers()
|
||||||
if isKortzHeistActive() then
|
if isKortzHeistActive() then
|
||||||
locals.set_int("fm_mission_controller_v3", 70416, 4294784)
|
locals.set_int("fm_mission_controller_v3", KCLGL, 4294784)
|
||||||
globals.set_int(1935234, 1)
|
globals.set_int(KCLDG, 1)
|
||||||
gui.show_message("Kortz Center Cracker", "Lasers disabled")
|
gui.show_message("Kortz Center Cracker", "Laser grid neutralized! The path is now clear.")
|
||||||
else
|
else
|
||||||
gui.show_message("Kortz Center Cracker", "Heist not active!")
|
gui.show_message("Kortz Center Cracker", "Heist not active! Please start The Kortz Center Heist first.")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function KortzSkipVaultDoor()
|
local function KortzSkipVaultDoor()
|
||||||
if isKortzHeistActive() then
|
if isKortzHeistActive() then
|
||||||
locals.set_int("fm_mission_controller_v3", 27512, 5)
|
locals.set_int("fm_mission_controller_v3", KCVLL, 5)
|
||||||
gui.show_message("Kortz Center Cracker", "Vault door hack skipped")
|
gui.show_message("Kortz Center Cracker", "Vault door bypassed! The vault is now accessible.")
|
||||||
else
|
else
|
||||||
gui.show_message("Kortz Center Cracker", "Heist not active!")
|
gui.show_message("Kortz Center Cracker", "Heist not active! Please start The Kortz Center Heist first.")
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local function KortzCutGlass()
|
|
||||||
if isKortzHeistActive() then
|
|
||||||
locals.set_float("fm_mission_controller_v3", 32453 + (4 * 13) + 3, 100.0)
|
|
||||||
gui.show_message("Kortz Center Cracker", "Glass cut instantly")
|
|
||||||
else
|
|
||||||
gui.show_message("Kortz Center Cracker", "Heist not active!")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Take primary target
|
||||||
local function KortzTakePrimary()
|
local function KortzTakePrimary()
|
||||||
if isKortzHeistActive() then
|
if isKortzHeistActive() then
|
||||||
locals.set_int("fm_mission_controller_v3", 28953 + 11, 15)
|
locals.set_int("fm_mission_controller_v3", KCPT_STATE, 10)
|
||||||
locals.set_int("fm_mission_controller_v3", 28953 + 11, 17)
|
locals.set_int("fm_mission_controller_v3", KCPT_STATE, 17)
|
||||||
PAD.SET_CONTROL_VALUE_NEXT_FRAME(0, 237, 1.0)
|
PAD.SET_CONTROL_VALUE_NEXT_FRAME(0, 237, 1.0)
|
||||||
gui.show_message("Kortz Center Cracker", "Primary target taken! Don't forget to hammer the clip once")
|
gui.show_message("Kortz Center Cracker", "Primary target acquired! The main prize is yours!")
|
||||||
else
|
else
|
||||||
gui.show_message("Kortz Center Cracker", "Heist not active!")
|
gui.show_message("Kortz Center Cracker", "Heist not active! Please start The Kortz Center Heist first.")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Take secondary target
|
||||||
local function KortzTakeSecondary()
|
local function KortzTakeSecondary()
|
||||||
if isKortzHeistActive() then
|
if isKortzHeistActive() then
|
||||||
locals.set_int("fm_mission_controller_v3", 28953 + 11, 3)
|
locals.set_int("fm_mission_controller_v3", KCST_STATE, 3)
|
||||||
PAD.SET_CONTROL_VALUE_NEXT_FRAME(0, 219, 1.0)
|
PAD.SET_CONTROL_VALUE_NEXT_FRAME(0, 219, 1.0)
|
||||||
gui.show_message("Kortz Center Cracker", "Secondary target taken! Don't forget to cut down once")
|
gui.show_message("Kortz Center Cracker", "Secondary target secured! Extra loot collected!")
|
||||||
else
|
else
|
||||||
gui.show_message("Kortz Center Cracker", "Heist not active!")
|
gui.show_message("Kortz Center Cracker", "Heist not active! Please start The Kortz Center Heist first.")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Skip cooldown function
|
|
||||||
local function KortzSkipCooldown()
|
local function KortzSkipCooldown()
|
||||||
globals.set_int(FMg + 37503, 0) -- Normal cooldown
|
globals.set_int(KCCDG, 0)
|
||||||
globals.set_int(FMg + 37504, 0) -- Hard mode cooldown
|
globals.set_int(KCCD2G, 0)
|
||||||
gui.show_message("Kortz Center Heist", "Cooldowns skipped! You can start again")
|
gui.show_message("Kortz Center Heist", "Cooldowns reset! You can start the heist again immediately.")
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Auto-hack state variable
|
-- Main UI
|
||||||
local autoAllHacks = false
|
|
||||||
|
|
||||||
-- Auto-hack loop
|
|
||||||
script.register_looped("KortzCenterAutoHack", function(script)
|
|
||||||
script:yield()
|
|
||||||
if not network.is_session_started() or SCRIPT.GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(joaat("maintransition")) > 0 then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
if autoAllHacks and isKortzHeistActive() then
|
|
||||||
for b = 0, 7 do
|
|
||||||
locals.set_int("fm_mission_controller_v3", 1386 + (b * 4), 1)
|
|
||||||
end
|
|
||||||
locals.set_int("fm_mission_controller_v3", 27512, 5)
|
|
||||||
for i = 0, 2 do
|
|
||||||
locals.set_int("fm_mission_controller_v3", 32416 + 1 + (i * 2) + 1, 0)
|
|
||||||
locals.set_float("fm_mission_controller_v3", 32416 + 1 + (i * 2), 0.0)
|
|
||||||
PAD.SET_CONTROL_VALUE_NEXT_FRAME(0, 237, 1.0)
|
|
||||||
end
|
|
||||||
locals.set_int("fm_mission_controller_v3", 70416, 4294784)
|
|
||||||
globals.set_int(1935234, 1)
|
|
||||||
locals.set_int("fm_mission_controller_v3", 26464, 5)
|
|
||||||
locals.set_float("fm_mission_controller_v3", 32453 + (4 * 13) + 3, 100.0)
|
|
||||||
locals.set_int("fm_mission_controller_v3", 28953 + 11, 15)
|
|
||||||
locals.set_int("fm_mission_controller_v3", 28953 + 11, 17)
|
|
||||||
PAD.SET_CONTROL_VALUE_NEXT_FRAME(0, 237, 1.0)
|
|
||||||
gui.show_message("Kortz Center Cracker", "Primary target taken! Don't forget to hammer the clip once")
|
|
||||||
locals.set_int("fm_mission_controller_v3", 28953 + 11, 3)
|
|
||||||
PAD.SET_CONTROL_VALUE_NEXT_FRAME(0, 219, 1.0)
|
|
||||||
gui.show_message("Kortz Center Cracker", "Secondary target taken! Don't forget to cut down once")
|
|
||||||
end
|
|
||||||
|
|
||||||
script:sleep(500)
|
|
||||||
end)
|
|
||||||
|
|
||||||
-- Main Kortz Center Heist Tab
|
|
||||||
KortzCenterHeistMenu:add_imgui(function()
|
KortzCenterHeistMenu:add_imgui(function()
|
||||||
if checkOnline() then return end
|
if checkOnline() then return end
|
||||||
|
|
||||||
-- General Settings
|
|
||||||
ImGui.Text("General Settings")
|
ImGui.Text("General Settings")
|
||||||
ImGui.Separator()
|
ImGui.Separator()
|
||||||
|
|
||||||
-- Primary Target
|
local nIndex, changed = ImGui.Combo("Primary Target:", k26_heist_target, targetNames, #targetNames)
|
||||||
ImGui.Text("Primary Target:")
|
|
||||||
local nIndex, changed = ImGui.Combo("##K26Target", k26_heist_target, targetNames, #targetNames)
|
|
||||||
if changed then
|
if changed then
|
||||||
k26_heist_target = nIndex
|
k26_heist_target = nIndex
|
||||||
stats.set_int(MPX() .. "K26_HEIST_TARGET", k26_heist_target)
|
stats.set_int(MPX() .. "K26_HEIST_TARGET", k26_heist_target)
|
||||||
@@ -6975,216 +7056,299 @@ KortzCenterHeistMenu:add_imgui(function()
|
|||||||
|
|
||||||
ImGui.Separator()
|
ImGui.Separator()
|
||||||
|
|
||||||
-- Cooldown Skip
|
|
||||||
ImGui.Text("Cooldowns:")
|
|
||||||
if ImGui.Button("Skip Cooldown") then
|
if ImGui.Button("Skip Cooldown") then
|
||||||
KortzSkipCooldown()
|
KortzSkipCooldown()
|
||||||
end
|
end
|
||||||
if ImGui.IsItemHovered() then
|
if ImGui.IsItemHovered() then
|
||||||
ImGui.SetTooltip("Sets both normal and hard mode cooldowns to 0 so you can start again")
|
ImGui.SetTooltip("Resets both normal and hard mode cooldowns to 0, allowing you to start the heist again immediately.")
|
||||||
end
|
end
|
||||||
|
|
||||||
ImGui.Separator()
|
ImGui.Separator()
|
||||||
|
|
||||||
-- Bag Capacity Editor
|
|
||||||
ImGui.Text("Bag Capacity:")
|
ImGui.Text("Bag Capacity:")
|
||||||
bagSizeValue, _ = ImGui.InputInt("##BagSize", bagSizeValue)
|
bagSizeValue, _ = ImGui.InputInt("##BagSize", bagSizeValue)
|
||||||
if ImGui.Button("Set Bag Size") then
|
if ImGui.Button("Set Bag Size") then
|
||||||
if bagSizeValue < 1 then
|
if bagSizeValue < 1 then
|
||||||
gui.show_message("Kortz Center Heist", "Bag size must be at least 1!")
|
gui.show_message("Kortz Center Heist", "Bag size must be at least 1!")
|
||||||
else
|
else
|
||||||
globals.set_int(FMg + 37438, bagSizeValue)
|
globals.set_int(KCBGL, bagSizeValue)
|
||||||
gui.show_message("Kortz Center Heist", "Bag capacity set to " .. bagSizeValue)
|
gui.show_message("Kortz Center Heist", "Bag capacity set to " .. bagSizeValue .. " units.")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if ImGui.IsItemHovered() then
|
if ImGui.IsItemHovered() then
|
||||||
ImGui.SetTooltip("Default is 100. How much you can carry in the heist")
|
ImGui.SetTooltip("Default is 100. Determines how much loot you can carry during the heist.")
|
||||||
|
end
|
||||||
|
|
||||||
|
ImGui.Separator()
|
||||||
|
|
||||||
|
ImGui.Text("Team Lives:")
|
||||||
|
livesValue, _ = ImGui.InputInt("##Lives", livesValue)
|
||||||
|
if ImGui.Button("Set Lives") then
|
||||||
|
if livesValue < 1 then
|
||||||
|
gui.show_message("Kortz Center Heist", "Lives must be at least 1!")
|
||||||
|
else
|
||||||
|
locals.set_int("fm_mission_controller_v3", KCLIVESL, livesValue)
|
||||||
|
gui.show_message("Kortz Center Heist", "Team lives set to " .. livesValue .. ". Set to 999999 for unlimited lives.")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Default is 3. Set to 999999 for unlimited team lives during the heist.")
|
||||||
end
|
end
|
||||||
|
|
||||||
ImGui.Separator()
|
ImGui.Separator()
|
||||||
|
|
||||||
-- Weekly Multiplier Editor
|
|
||||||
ImGui.Text("Weekly Bonus Multiplier:")
|
ImGui.Text("Weekly Bonus Multiplier:")
|
||||||
weeklyMultiplierValue, _ = ImGui.InputFloat("##WeeklyMultiplier", weeklyMultiplierValue)
|
weeklyMultiplierValue, _ = ImGui.InputFloat("##WeeklyMultiplier", weeklyMultiplierValue)
|
||||||
if ImGui.Button("Set Weekly Multiplier") then
|
if ImGui.Button("Set Weekly Multiplier") then
|
||||||
if weeklyMultiplierValue < 1.0 then
|
if weeklyMultiplierValue < 1.0 then
|
||||||
gui.show_message("Kortz Center Heist", "Multiplier must be at least 1.0!")
|
gui.show_message("Kortz Center Heist", "Multiplier must be at least 1.0!")
|
||||||
else
|
else
|
||||||
globals.set_float(FMg + 38199, weeklyMultiplierValue)
|
globals.set_float(KCWMG, weeklyMultiplierValue)
|
||||||
gui.show_message("Kortz Center Heist", "Weekly multiplier set to " .. weeklyMultiplierValue .. "x")
|
gui.show_message("Kortz Center Heist", "Weekly multiplier set to " .. weeklyMultiplierValue .. "x.")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if ImGui.IsItemHovered() then
|
if ImGui.IsItemHovered() then
|
||||||
ImGui.SetTooltip("Default is 4.0x. First sale of the week bonus multiplier")
|
ImGui.SetTooltip("Default is 4.0x. Affects the first sale bonus multiplier of the week.")
|
||||||
end
|
end
|
||||||
|
|
||||||
ImGui.Separator()
|
ImGui.Separator()
|
||||||
|
|
||||||
-- Difficulty
|
|
||||||
ImGui.Text("Difficulty:")
|
ImGui.Text("Difficulty:")
|
||||||
if ImGui.Button("Hard Mode") then
|
if ImGui.Button("Hard Mode") then
|
||||||
stats.set_int(MPX() .. "K26_GENERAL_BS", 1784442458)
|
stats.set_int(MPX() .. "K26_GENERAL_BS", 1784442458)
|
||||||
gui.show_message("Kortz Center Heist", "Hard Mode enabled")
|
gui.show_message("Kortz Center Heist", "Hard Mode enabled! Higher risk, higher reward.")
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Enables Hard Mode for the heist. Increases difficulty but also increases payout.")
|
||||||
end
|
end
|
||||||
ImGui.SameLine()
|
ImGui.SameLine()
|
||||||
if ImGui.Button("Normal Mode") then
|
if ImGui.Button("Normal Mode") then
|
||||||
local current = stats.get_int(MPX() .. "K26_GENERAL_BS")
|
local current = stats.get_int(MPX() .. "K26_GENERAL_BS")
|
||||||
stats.set_int(MPX() .. "K26_GENERAL_BS", current & ~1784442458)
|
stats.set_int(MPX() .. "K26_GENERAL_BS", current & ~1784442458)
|
||||||
gui.show_message("Kortz Center Heist", "Normal Mode enabled")
|
gui.show_message("Kortz Center Heist", "Normal Mode enabled! Standard difficulty.")
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Enables Normal Mode for the heist. Standard difficulty with standard payout.")
|
||||||
end
|
end
|
||||||
|
|
||||||
ImGui.Separator()
|
ImGui.Separator()
|
||||||
|
|
||||||
-- Prep Work
|
|
||||||
ImGui.Text("Prep Work")
|
ImGui.Text("Prep Work")
|
||||||
ImGui.Separator()
|
ImGui.Separator()
|
||||||
|
|
||||||
-- Scope Out
|
|
||||||
if ImGui.Button("Scope Out Kortz Center") then
|
if ImGui.Button("Scope Out Kortz Center") then
|
||||||
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") | 1)
|
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") | 1)
|
||||||
gui.show_message("Kortz Center Heist", "Kortz Center scoped out")
|
gui.show_message("Kortz Center Heist", "Kortz Center scoped out! Intel gathered.")
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Completes the Scope Out prep mission.")
|
||||||
end
|
end
|
||||||
ImGui.SameLine()
|
ImGui.SameLine()
|
||||||
if ImGui.Button("Unscope Out") then
|
if ImGui.Button("Unscope Out") then
|
||||||
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") & ~1)
|
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") & ~1)
|
||||||
gui.show_message("Kortz Center Heist", "Kortz Center unscoped")
|
gui.show_message("Kortz Center Heist", "Kortz Center unscoped.")
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Removes the Scope Out completion.")
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Disguises
|
|
||||||
if ImGui.Button("Alpha Mail Disguise") then
|
if ImGui.Button("Alpha Mail Disguise") then
|
||||||
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") | 2)
|
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") | 2)
|
||||||
gui.show_message("Kortz Center Heist", "Alpha Mail Disguise acquired")
|
gui.show_message("Kortz Center Heist", "Alpha Mail Disguise acquired! Blend in as a courier.")
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Completes the Alpha Mail Disguise prep.")
|
||||||
end
|
end
|
||||||
ImGui.SameLine()
|
ImGui.SameLine()
|
||||||
if ImGui.Button("Hazmat Suit") then
|
if ImGui.Button("Hazmat Suit") then
|
||||||
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") | 4)
|
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") | 4)
|
||||||
gui.show_message("Kortz Center Heist", "Hazmat Suit acquired")
|
gui.show_message("Kortz Center Heist", "Hazmat Suit acquired! Protected from hazardous materials.")
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Completes the Hazmat Suit prep.")
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Equipment
|
|
||||||
if ImGui.Button("Staff Key Card") then
|
if ImGui.Button("Staff Key Card") then
|
||||||
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") | 8)
|
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") | 8)
|
||||||
gui.show_message("Kortz Center Heist", "Staff Key Card acquired")
|
gui.show_message("Kortz Center Heist", "Staff Key Card acquired! Access to restricted areas.")
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Completes the Staff Key Card prep.")
|
||||||
end
|
end
|
||||||
ImGui.SameLine()
|
ImGui.SameLine()
|
||||||
if ImGui.Button("Tactical Equipment") then
|
if ImGui.Button("Tactical Equipment") then
|
||||||
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") | 16)
|
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") | 16)
|
||||||
gui.show_message("Kortz Center Heist", "Tactical Equipment acquired")
|
gui.show_message("Kortz Center Heist", "Tactical Equipment acquired! Tools for the job.")
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Completes the Tactical Equipment prep.")
|
||||||
end
|
end
|
||||||
|
|
||||||
if ImGui.Button("Hacking Device") then
|
if ImGui.Button("Hacking Device") then
|
||||||
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") | 32)
|
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") | 32)
|
||||||
gui.show_message("Kortz Center Heist", "Hacking Device acquired")
|
gui.show_message("Kortz Center Heist", "Hacking Device acquired! Ready to crack digital security.")
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Completes the Hacking Device prep.")
|
||||||
end
|
end
|
||||||
ImGui.SameLine()
|
ImGui.SameLine()
|
||||||
if ImGui.Button("Access Code") then
|
if ImGui.Button("Access Code") then
|
||||||
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") | 64)
|
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") | 64)
|
||||||
gui.show_message("Kortz Center Heist", "Access Code acquired")
|
gui.show_message("Kortz Center Heist", "Access Code acquired! The vault awaits.")
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Completes the Access Code prep.")
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Vehicles
|
|
||||||
ImGui.Text("Vehicles:")
|
ImGui.Text("Vehicles:")
|
||||||
if ImGui.Button("Armored Caracara") then
|
if ImGui.Button("Armored Caracara") then
|
||||||
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") | 256)
|
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") | 256)
|
||||||
gui.show_message("Kortz Center Heist", "Armored Caracara unlocked")
|
gui.show_message("Kortz Center Heist", "Armored Caracara unlocked! Heavy armor for the escape.")
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Unlocks the Armored Caracara as an escape vehicle.")
|
||||||
end
|
end
|
||||||
ImGui.SameLine()
|
ImGui.SameLine()
|
||||||
if ImGui.Button("Annihilator Stealth") then
|
if ImGui.Button("Annihilator Stealth") then
|
||||||
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") | 512)
|
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") | 512)
|
||||||
gui.show_message("Kortz Center Heist", "Annihilator Stealth unlocked")
|
gui.show_message("Kortz Center Heist", "Annihilator Stealth unlocked! Silent aerial extraction.")
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Unlocks the Stealth Annihilator as an escape vehicle.")
|
||||||
end
|
end
|
||||||
ImGui.SameLine()
|
ImGui.SameLine()
|
||||||
if ImGui.Button("Manchez (Any Color)") then
|
if ImGui.Button("Manchez (Any Color)") then
|
||||||
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") | 1024)
|
stats.set_int(MPX() .. "K26_ROBBERY_PROG", stats.get_int(MPX() .. "K26_ROBBERY_PROG") | 1024)
|
||||||
gui.show_message("Kortz Center Heist", "Manchez unlocked")
|
gui.show_message("Kortz Center Heist", "Manchez unlocked! Quick and agile escape bike.")
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Unlocks the Manchez as an escape vehicle.")
|
||||||
end
|
end
|
||||||
|
|
||||||
ImGui.Separator()
|
ImGui.Separator()
|
||||||
|
|
||||||
-- Optional Prep Work
|
|
||||||
ImGui.Text("Optional Prep Work (Requires POI)")
|
ImGui.Text("Optional Prep Work (Requires POI)")
|
||||||
ImGui.Separator()
|
ImGui.Separator()
|
||||||
|
|
||||||
if ImGui.Button("Scope Points of Interest") then
|
if ImGui.Button("Scope Points of Interest") then
|
||||||
stats.set_int(MPX() .. "K26_POI_BS", -1)
|
stats.set_int(MPX() .. "K26_POI_BS", -1)
|
||||||
gui.show_message("Kortz Center Heist", "Points of Interest scoped")
|
gui.show_message("Kortz Center Heist", "Points of Interest scoped! Valuable intel gathered.")
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Scopes all Points of Interest in the Kortz Center.")
|
||||||
end
|
end
|
||||||
|
|
||||||
ImGui.Text("General Upgrades:")
|
ImGui.Text("General Upgrades:")
|
||||||
|
|
||||||
if ImGui.Button("Guard Routes") then
|
if ImGui.Button("Guard Routes") then
|
||||||
setK26Bit("K26_GENERAL_BS", 32, "Guard Routes")
|
setK26Bit("K26_GENERAL_BS", 32, "Guard Routes")
|
||||||
end
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Reveals guard patrol routes for easier stealth.")
|
||||||
|
end
|
||||||
ImGui.SameLine()
|
ImGui.SameLine()
|
||||||
if ImGui.Button("Glass Cutter") then
|
if ImGui.Button("Glass Cutter") then
|
||||||
setK26Bit("K26_GENERAL_BS", 64, "Glass Cutter")
|
setK26Bit("K26_GENERAL_BS", 64, "Glass Cutter")
|
||||||
end
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Provides a glass cutter for display cases.")
|
||||||
|
end
|
||||||
if ImGui.Button("Power Drills") then
|
if ImGui.Button("Power Drills") then
|
||||||
setK26Bit("K26_GENERAL_BS", 128, "Power Drills")
|
setK26Bit("K26_GENERAL_BS", 128, "Power Drills")
|
||||||
end
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Provides power drills for breaking through obstacles.")
|
||||||
|
end
|
||||||
ImGui.SameLine()
|
ImGui.SameLine()
|
||||||
if ImGui.Button("EMP Charges") then
|
if ImGui.Button("EMP Charges") then
|
||||||
setK26Bit("K26_GENERAL_BS", 256, "EMP Charges")
|
setK26Bit("K26_GENERAL_BS", 256, "EMP Charges")
|
||||||
end
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Provides EMP charges to disable electronics.")
|
||||||
|
end
|
||||||
|
|
||||||
ImGui.Text("Loadouts:")
|
ImGui.Text("Loadouts:")
|
||||||
if ImGui.Button("Street Loadout") then
|
if ImGui.Button("Street Loadout") then
|
||||||
setK26Bit("K26_GENERAL_BS", 512, "Street Loadout")
|
setK26Bit("K26_GENERAL_BS", 512, "Street Loadout")
|
||||||
end
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Equips the Street Loadout for the heist.")
|
||||||
|
end
|
||||||
ImGui.SameLine()
|
ImGui.SameLine()
|
||||||
if ImGui.Button("Security Loadout") then
|
if ImGui.Button("Security Loadout") then
|
||||||
setK26Bit("K26_GENERAL_BS", 1024, "Security Loadout")
|
setK26Bit("K26_GENERAL_BS", 1024, "Security Loadout")
|
||||||
end
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Equips the Security Loadout for the heist.")
|
||||||
|
end
|
||||||
ImGui.SameLine()
|
ImGui.SameLine()
|
||||||
if ImGui.Button("Military Loadout") then
|
if ImGui.Button("Military Loadout") then
|
||||||
setK26Bit("K26_GENERAL_BS", 2048, "Military Loadout")
|
setK26Bit("K26_GENERAL_BS", 2048, "Military Loadout")
|
||||||
end
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Equips the Military Loadout for the heist.")
|
||||||
|
end
|
||||||
|
|
||||||
ImGui.Text("Manchez Colors:")
|
ImGui.Text("Manchez Colors:")
|
||||||
if ImGui.Button("Red Manchez") then
|
if ImGui.Button("Red Manchez") then
|
||||||
setK26Bit("K26_GENERAL_BS", 131072, "Red Manchez")
|
setK26Bit("K26_GENERAL_BS", 131072, "Red Manchez")
|
||||||
end
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Unlocks the Red Manchez.")
|
||||||
|
end
|
||||||
ImGui.SameLine()
|
ImGui.SameLine()
|
||||||
if ImGui.Button("Blue Manchez") then
|
if ImGui.Button("Blue Manchez") then
|
||||||
setK26Bit("K26_GENERAL_BS", 262144, "Blue Manchez")
|
setK26Bit("K26_GENERAL_BS", 262144, "Blue Manchez")
|
||||||
end
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Unlocks the Blue Manchez.")
|
||||||
|
end
|
||||||
ImGui.SameLine()
|
ImGui.SameLine()
|
||||||
if ImGui.Button("Green Manchez") then
|
if ImGui.Button("Green Manchez") then
|
||||||
setK26Bit("K26_GENERAL_BS", 524288, "Green Manchez")
|
setK26Bit("K26_GENERAL_BS", 524288, "Green Manchez")
|
||||||
end
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Unlocks the Green Manchez.")
|
||||||
|
end
|
||||||
ImGui.SameLine()
|
ImGui.SameLine()
|
||||||
if ImGui.Button("Yellow Manchez") then
|
if ImGui.Button("Yellow Manchez") then
|
||||||
setK26Bit("K26_GENERAL_BS", 1048576, "Yellow Manchez")
|
setK26Bit("K26_GENERAL_BS", 1048576, "Yellow Manchez")
|
||||||
end
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Unlocks the Yellow Manchez.")
|
||||||
|
end
|
||||||
if ImGui.Button("Manhole Key") then
|
if ImGui.Button("Manhole Key") then
|
||||||
setK26Bit("K26_GENERAL_BS", 134217728, "Manhole Key")
|
setK26Bit("K26_GENERAL_BS", 134217728, "Manhole Key")
|
||||||
end
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Provides a key to access the manhole escape route.")
|
||||||
|
end
|
||||||
ImGui.SameLine()
|
ImGui.SameLine()
|
||||||
if ImGui.Button("Weak Guards") then
|
if ImGui.Button("Weak Guards") then
|
||||||
setK26Bit("K26_GENERAL_BS", -2147483648, "Weak Guards")
|
setK26Bit("K26_GENERAL_BS", -2147483648, "Weak Guards")
|
||||||
end
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
ImGui.Separator()
|
ImGui.SetTooltip("Weaker guards - easier to take down.")
|
||||||
|
|
||||||
-- Secondary Targets
|
|
||||||
ImGui.Text("Secondary Targets")
|
|
||||||
if ImGui.Button("Scope All Secondary Targets") then
|
|
||||||
stats.set_int(MPX() .. "K26_SCOPING_BS", -1)
|
|
||||||
gui.show_message("Kortz Center Heist", "All secondary targets scoped")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
ImGui.Separator()
|
ImGui.Separator()
|
||||||
|
ImGui.Text("Secondary Targets")
|
||||||
|
if ImGui.Button("Scope All Secondary Targets") then
|
||||||
|
stats.set_int(MPX() .. "K26_SCOPING_BS", -1)
|
||||||
|
gui.show_message("Kortz Center Heist", "All secondary targets scoped! Extra loot locations marked.")
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Reveals all secondary targets in the Kortz Center.")
|
||||||
|
end
|
||||||
|
|
||||||
-- Quick Actions
|
ImGui.Separator()
|
||||||
ImGui.Text("Quick Actions")
|
ImGui.Text("Quick Actions")
|
||||||
if ImGui.Button("Complete All Preps") then
|
if ImGui.Button("Complete All Preps") then
|
||||||
stats.set_int(MPX() .. "K26_GENERAL_BS", -1)
|
stats.set_int(MPX() .. "K26_GENERAL_BS", -1)
|
||||||
stats.set_int(MPX() .. "K26_ROBBERY_PROG", 65535)
|
stats.set_int(MPX() .. "K26_ROBBERY_PROG", 65535)
|
||||||
stats.set_int(MPX() .. "K26_SCOPING_BS", -1)
|
stats.set_int(MPX() .. "K26_SCOPING_BS", -1)
|
||||||
stats.set_int(MPX() .. "K26_POI_BS", -1)
|
stats.set_int(MPX() .. "K26_POI_BS", -1)
|
||||||
gui.show_message("Kortz Center Heist", "All preps completed")
|
gui.show_message("Kortz Center Heist", "All preps completed! Ready to start the heist.")
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Completes all prep missions instantly. Ready to launch the heist.")
|
||||||
end
|
end
|
||||||
ImGui.SameLine()
|
ImGui.SameLine()
|
||||||
if ImGui.Button("Reset All Preps") then
|
if ImGui.Button("Reset All Preps") then
|
||||||
@@ -7192,135 +7356,98 @@ KortzCenterHeistMenu:add_imgui(function()
|
|||||||
stats.set_int(MPX() .. "K26_ROBBERY_PROG", 0)
|
stats.set_int(MPX() .. "K26_ROBBERY_PROG", 0)
|
||||||
stats.set_int(MPX() .. "K26_SCOPING_BS", 0)
|
stats.set_int(MPX() .. "K26_SCOPING_BS", 0)
|
||||||
stats.set_int(MPX() .. "K26_POI_BS", 0)
|
stats.set_int(MPX() .. "K26_POI_BS", 0)
|
||||||
gui.show_message("Kortz Center Heist", "All preps reset")
|
gui.show_message("Kortz Center Heist", "All preps reset! Back to square one.")
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Resets all prep progress. Start fresh.")
|
||||||
end
|
end
|
||||||
|
|
||||||
if ImGui.Button("Reload Planning Board") then
|
if ImGui.Button("Reload Planning Board") then
|
||||||
stats.set_int(MPX() .. "K26_GENERAL_BS2", stats.get_int(MPX() .. "K26_GENERAL_BS2") + 1)
|
stats.set_int(MPX() .. "K26_GENERAL_BS2", stats.get_int(MPX() .. "K26_GENERAL_BS2") + 1)
|
||||||
gui.show_message("Kortz Center Heist", "Planning board reloaded")
|
gui.show_message("Kortz Center Heist", "Planning board reloaded! Updated progress.")
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Reloads the planning board to reflect latest changes.")
|
||||||
end
|
end
|
||||||
|
|
||||||
ImGui.Separator()
|
ImGui.Separator()
|
||||||
|
|
||||||
-- Extras
|
|
||||||
ImGui.Text("Extras")
|
ImGui.Text("Extras")
|
||||||
if ImGui.Button("Skip Cutscene") then
|
if ImGui.Button("Skip Cutscene") then
|
||||||
SkipCutscene()
|
SkipCutscene()
|
||||||
gui.show_message("Kortz Center Heist", "Cutscene skipped")
|
gui.show_message("Kortz Center Heist", "Cutscene skipped! Back to action.")
|
||||||
|
end
|
||||||
|
if ImGui.IsItemHovered() then
|
||||||
|
ImGui.SetTooltip("Skips any currently playing cutscene.")
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- Kortz Center Cracker (Sub-tab inside Kortz Center Heist)
|
-- Mission Cracker Tab
|
||||||
local KortzCenterCrackerMenu = KortzCenterHeistMenu:add_tab("Mission Cracker")
|
KortzCenterCrackerMenu = KortzCenterHeistMenu:add_tab("Mission Cracker")
|
||||||
|
|
||||||
KortzCenterCrackerMenu:add_imgui(function()
|
KortzCenterCrackerMenu:add_imgui(function()
|
||||||
if checkOnline() then return end
|
if checkOnline() then return end
|
||||||
|
|
||||||
local isHeistActive = isKortzHeistActive()
|
ImGui.Text("The Kortz Center Heist - Manual Hacks")
|
||||||
|
ImGui.Separator()
|
||||||
if not isHeistActive then
|
ImGui.TextColored(0.6, 0.6, 0.6, 1.0, "Press these buttons when you reach the corresponding hack in the heist")
|
||||||
ImGui.TextColored(0.6, 0.6, 0.6, 1.0, "Please start The Kortz Center Heist first.")
|
|
||||||
ImGui.TextColored(0.6, 0.6, 0.6, 1.0, " ")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
ImGui.Text("The Kortz Center Heist - Hacks")
|
|
||||||
ImGui.Separator()
|
ImGui.Separator()
|
||||||
|
|
||||||
-- Master Auto-Hack Checkbox
|
|
||||||
local changed
|
|
||||||
autoAllHacks, changed = ImGui.Checkbox("Enable All Auto-Hacks", autoAllHacks)
|
|
||||||
if changed then
|
|
||||||
if autoAllHacks then
|
|
||||||
gui.show_message("Kortz Center Cracker", "All auto-hacks enabled")
|
|
||||||
else
|
|
||||||
gui.show_message("Kortz Center Cracker", "All auto-hacks disabled")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if ImGui.IsItemHovered() then
|
|
||||||
ImGui.SetTooltip("Automatically performs all hacks when needed")
|
|
||||||
end
|
|
||||||
|
|
||||||
ImGui.Separator()
|
|
||||||
ImGui.TextColored(0.6, 0.6, 0.6, 1.0, "Manual Hacks (Press when needed)")
|
|
||||||
ImGui.Separator()
|
|
||||||
|
|
||||||
-- Row 1
|
|
||||||
if ImGui.Button("Skip Data Crack") then
|
if ImGui.Button("Skip Data Crack") then
|
||||||
KortzSkipDataCrack()
|
KortzSkipDataCrack()
|
||||||
end
|
end
|
||||||
if ImGui.IsItemHovered() then
|
if ImGui.IsItemHovered() then
|
||||||
ImGui.SetTooltip("Press when doing the data crack minigame")
|
ImGui.SetTooltip("Bypasses the data crack minigame.\n\nCracks all 8 rods instantly.")
|
||||||
end
|
end
|
||||||
|
|
||||||
ImGui.SameLine()
|
ImGui.Separator()
|
||||||
|
|
||||||
if ImGui.Button("Skip Fingerprint Hack") then
|
if ImGui.Button("Skip Fingerprint Hack") then
|
||||||
KortzSkipFingerprint()
|
KortzSkipFingerprint()
|
||||||
end
|
end
|
||||||
if ImGui.IsItemHovered() then
|
if ImGui.IsItemHovered() then
|
||||||
ImGui.SetTooltip("Press when doing the fingerprint hacking")
|
ImGui.SetTooltip("Bypasses the fingerprint scanner entirely.\n\nNo need to find matching fingerprints.")
|
||||||
end
|
end
|
||||||
|
ImGui.SameLine()
|
||||||
|
|
||||||
-- Row 2
|
|
||||||
if ImGui.Button("Auto-Enter Access Code") then
|
if ImGui.Button("Auto-Enter Access Code") then
|
||||||
script.run_in_fiber(function(script)
|
KortzAutoAccessCode()
|
||||||
KortzAutoAccessCode()
|
|
||||||
script:sleep(100)
|
|
||||||
end)
|
|
||||||
end
|
end
|
||||||
if ImGui.IsItemHovered() then
|
if ImGui.IsItemHovered() then
|
||||||
ImGui.SetTooltip("Press when entering the PC access code")
|
ImGui.SetTooltip("Automatically enters the access code 000.\n\nSkips the PC access code puzzle.")
|
||||||
end
|
end
|
||||||
|
|
||||||
ImGui.SameLine()
|
ImGui.Separator()
|
||||||
|
|
||||||
if ImGui.Button("Disable Lasers") then
|
if ImGui.Button("Disable Lasers") then
|
||||||
KortzDisableLasers()
|
KortzDisableLasers()
|
||||||
end
|
end
|
||||||
if ImGui.IsItemHovered() then
|
if ImGui.IsItemHovered() then
|
||||||
ImGui.SetTooltip("Press to disable the laser grid")
|
ImGui.SetTooltip("Deactivates the laser grid security system.\n\nClear path through the laser hallway.")
|
||||||
end
|
end
|
||||||
|
ImGui.SameLine()
|
||||||
|
|
||||||
-- Row 3
|
|
||||||
if ImGui.Button("Skip Vault Door Hack") then
|
if ImGui.Button("Skip Vault Door Hack") then
|
||||||
KortzSkipVaultDoor()
|
KortzSkipVaultDoor()
|
||||||
end
|
end
|
||||||
if ImGui.IsItemHovered() then
|
if ImGui.IsItemHovered() then
|
||||||
ImGui.SetTooltip("Press to skip signal nodes hacking")
|
ImGui.SetTooltip("Bypasses the vault door signal nodes hack.\n\nInstant access to the vault.")
|
||||||
end
|
end
|
||||||
|
|
||||||
ImGui.SameLine()
|
ImGui.Separator()
|
||||||
|
|
||||||
if ImGui.Button("Cut Glass") then
|
|
||||||
KortzCutGlass()
|
|
||||||
end
|
|
||||||
if ImGui.IsItemHovered() then
|
|
||||||
ImGui.SetTooltip("Press to cut display cases instantly")
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Row 4
|
|
||||||
if ImGui.Button("Take Primary Target") then
|
if ImGui.Button("Take Primary Target") then
|
||||||
script.run_in_fiber(function(script)
|
script.run_in_fiber(function(s) KortzTakePrimary(); s:sleep(1000) end)
|
||||||
KortzTakePrimary()
|
|
||||||
script:sleep(1000)
|
|
||||||
end)
|
|
||||||
end
|
end
|
||||||
if ImGui.IsItemHovered() then
|
if ImGui.IsItemHovered() then
|
||||||
ImGui.SetTooltip("Press to take the primary target instantly - Don't forget to hammer the clip once")
|
ImGui.SetTooltip("Grabs the primary target instantly.\n\nThe main objective of the heist.")
|
||||||
end
|
end
|
||||||
|
|
||||||
ImGui.SameLine()
|
ImGui.SameLine()
|
||||||
|
|
||||||
if ImGui.Button("Take Secondary Target") then
|
if ImGui.Button("Take Secondary Target") then
|
||||||
KortzTakeSecondary()
|
KortzTakeSecondary()
|
||||||
end
|
end
|
||||||
if ImGui.IsItemHovered() then
|
if ImGui.IsItemHovered() then
|
||||||
ImGui.SetTooltip("Press to take a secondary target instantly - Don't forget to cut down once")
|
ImGui.SetTooltip("Grabs a secondary target instantly.\n\nExtra loot for bigger payout.")
|
||||||
end
|
end
|
||||||
|
|
||||||
ImGui.Separator()
|
|
||||||
ImGui.TextColored(0.6, 0.6, 0.6, 1.0, "Toggle the checkbox above for full automation")
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user