From f3dabd06d6b2d0323ea2ac538d8c8f00dd8d3d26 Mon Sep 17 00:00:00 2001 From: inanahammad Date: Mon, 30 Sep 2019 19:58:44 -0700 Subject: [PATCH] Byg fixes + optimizations 1.Updates to 'keep stuff','gang wars','fast reload' & 'no reload' checkbox 2.Changes some namings 3.Fixed an issue with money changer not allowing negative value 4.Fixed an issue where the overlay would appear in menu 5.Fixed issue with 'clear entries' not working in memory menu 6.Fixed an issue with teleport to interior. 7.Fixed an issue with CheckforUpdates function which caused the menu to crash when offline 8.Fixed an issue with money format geting bugged 9.Fixed an imgui issue which broke elements with same names --- cheat-menu.lua | 79 +++--- lib/cheat-menu/modules/about.lua | 2 +- lib/cheat-menu/modules/animation.lua | 79 +++--- lib/cheat-menu/modules/common.lua | 84 +++---- lib/cheat-menu/modules/config.lua | 154 ++++++------ lib/cheat-menu/modules/game.lua | 114 ++++----- lib/cheat-menu/modules/memory.lua | 79 +++--- lib/cheat-menu/modules/menu.lua | 51 ++-- lib/cheat-menu/modules/mission.lua | 26 +- lib/cheat-menu/modules/ped.lua | 169 +++++++------ lib/cheat-menu/modules/player.lua | 104 ++++---- lib/cheat-menu/modules/tables/$index.lua | 1 - lib/cheat-menu/modules/tables/interior.lua | 156 ------------ lib/cheat-menu/modules/teleport.lua | 59 +++-- lib/cheat-menu/modules/update.lua | 31 +-- lib/cheat-menu/modules/vehicle.lua | 267 ++++++++++----------- lib/cheat-menu/modules/visual.lua | 13 +- lib/cheat-menu/modules/weapon.lua | 61 +++-- 18 files changed, 656 insertions(+), 873 deletions(-) delete mode 100644 lib/cheat-menu/modules/tables/interior.lua diff --git a/cheat-menu.lua b/cheat-menu.lua index 9863d70c..eda96787 100755 --- a/cheat-menu.lua +++ b/cheat-menu.lua @@ -21,7 +21,7 @@ script_url("https://forum.mixmods.com.br/f5-scripts-codigos/t1777-lua-cheat-menu script_dependencies("ffi","mimgui","memory","MoonAdditions") script_properties('work-in-pause') script_version("1.7-staging") -script_version_number(28092019) -- DDMMYYYY +script_version_number(27092019) -- DDMMYYYY -- All the command keys used throughout the Cheat-Menu tkeys = @@ -45,7 +45,6 @@ tkeys = resX,resY = getScreenResolution() --- Script Dependencies ffi = require "ffi" imgui = require 'mimgui' memory = require 'memory' @@ -84,6 +83,7 @@ if fmenu.tmenu.disable_in_samp[0] and isSampLoaded() then script.this:unload() end + tcheatmenu = { dir = Dir, @@ -97,10 +97,8 @@ tcheatmenu = show = imgui.new.bool(false), title = string.format("%s v%s by %s",script.this.name,script.this.version,script.this.authors[1]), }, - menubuttons = - { - current = fconfig.get('tcheatmenu.menubuttons.current',1), - }, + current_menu = fconfig.get('tcheatmenu.current_menu',1), + update = { available = false, @@ -108,8 +106,6 @@ tcheatmenu = }, } -fmenu.tmenu.overlay.position_array = imgui.new['const char*'][#fmenu.tmenu.overlay.position](fmenu.tmenu.overlay.position) - imgui.OnInitialize(function() -- Called once -- Styles imgui.PushStyleVarFloat(imgui.StyleVar.WindowBorderSize,0) @@ -143,7 +139,7 @@ function(self) -- render frame imgui.Spacing() end - fcommon.UiCreateButtons({"Teleport","Memory","Player","Animation","Vehicle","Weapon","Peds","Mission","Game","Visual","Menu", + fcommon.CreateMenus({"Teleport","Memory","Player","Animation","Vehicle","Weapon","Peds","Mission","Game","Visual","Menu", "About"},{fteleport.TeleportMain,fmemory.MemoryMain,fplayer.PlayerMain,fanimation.AnimationMain,fvehicle.VehicleMain, fweapon.WeaponMain,fped.PedMain,fmission.MissionMain,fgame.GameMain,fvisual.VisualMain,fmenu.MenuMain, fabout.AboutMain}) @@ -153,8 +149,8 @@ end) imgui.OnFrame(function() - return fmenu.tmenu.overlay.show[0] and fmenu.tmenu.overlay.fps[0] and fmenu.tmenu.overlay.coordinates[0] and not isGamePaused() - or ((fmenu.tmenu.overlay.speed[0] or fmenu.tmenu.overlay.health[0]) and isCharInAnyCar(PLAYER_PED)) + return not isGamePaused() and (fmenu.tmenu.overlay.show[0] and fmenu.tmenu.overlay.fps[0] and fmenu.tmenu.overlay.coordinates[0] + or ((fmenu.tmenu.overlay.speed[0] or fmenu.tmenu.overlay.health[0]) and isCharInAnyCar(PLAYER_PED))) end, function() local io = imgui.GetIO() @@ -179,7 +175,6 @@ function() if fmenu.tmenu.overlay.fps[0] then imgui.Text("Frames :" .. tostring(math.floor(imgui.GetIO().Framerate))) end - if isCharInAnyCar(PLAYER_PED) then car = getCarCharIsUsing(PLAYER_PED) if fmenu.tmenu.overlay.speed[0] then @@ -220,8 +215,8 @@ function() end if imgui.MenuItemBool("Close") then fgame.tgame.fps.bool[0] = false - fvehicle.tvehicles.show.speed[0] = false - fvehicle.tvehicles.show.health[0] = false + fvehicle.tvehicle.show.speed[0] = false + fvehicle.tvehicle.show.health[0] = false fvisual.tvisuals.show_coordinates[0] = false end imgui.EndPopup() @@ -249,7 +244,28 @@ function main() writeMemory(0x004384D1 ,4,0x000000D0 ,false) writeMemory(0x004384D5 ,4,0x90909090 ,false) end - + + switchArrestPenalties(fgame.tgame.keep_stuff[0]) + switchDeathPenalties(fgame.tgame.keep_stuff[0]) + setGangWarsActive(fped.tped.gang_wars[0]) + setPlayerFastReload(PLAYER_HANDLE,fweapon.tweapon.fast_reload[0]) + + if fweapon.tweapon.no_reload[0] then + writeMemory( 7600773,1,144,1) + writeMemory( 7600815,1,144,1) + writeMemory( 7600816,2,37008,1) + writeMemory( 7612591,1,144,1) + writeMemory( 7612646,1,144,1) + writeMemory( 7612647,2,37008,1) + else + writeMemory( 7600773,1,72,1) + writeMemory( 7600815,1,255,1) + writeMemory( 7600816,2,3150,1) + writeMemory( 7612591,1,72,1) + writeMemory( 7612646,1,255,1) + writeMemory( 7612647,2,3150,1) + end + while true do if fanimation.tanimation.ped[0] == true or fweapon.tweapon.ped[0] == true then @@ -281,7 +297,7 @@ function main() fcommon.KeyWait(tkeys.teleport_key1,tkeys.teleport_key2) fteleport.Teleport() end - + setCharProofs(PLAYER_PED,fplayer.tplayer.god[0],fplayer.tplayer.god[0],fplayer.tplayer.god[0],fplayer.tplayer.god[0],fplayer.tplayer.god[0]) if fplayer.tplayer.aimSkinChanger[0] and isKeyDown(tkeys.asc_key) then @@ -294,7 +310,7 @@ function main() end if isKeyDown(tkeys.control_key) and isKeyDown(tkeys.quickspawner_key) then - if (fvehicle.tvehicles.quick_spawn[0] or fweapon.tweapons.quick_spawn[0]) then + if (fvehicle.tvehicle.quick_spawn[0] or fweapon.tweapon.quick_spawn[0]) then fcommon.QuickSpawner() end end @@ -304,41 +320,40 @@ function main() lua_thread.create(fvehicle.AircraftCamera) end - -- Vehicle related stuff which is required to run every frame if isCharInAnyCar(PLAYER_PED) then car = getCarCharIsUsing(PLAYER_PED) - if fvehicle.tvehicles.color.default ~= -1 then + if fvehicle.tvehicle.color.default ~= -1 then local color_id = getCarColours(car) - if fvehicle.tvehicles.color.default ~= color_id then + if fvehicle.tvehicle.color.default ~= color_id then fvehicle.ForEachCarComponent(function(mat) mat:reset_color() end) end end - setCarCanBeDamaged(car,not(fvehicle.tvehicles.no_damage[0])) - setCharCanBeKnockedOffBike(PLAYER_PED,fvehicle.tvehicles.stay_on_bike[0]) - setCarHeavy(car,fvehicle.tvehicles.heavy[0]) + setCarCanBeDamaged(car,not(fvehicle.tvehicle.no_damage[0])) + setCharCanBeKnockedOffBike(PLAYER_PED,fvehicle.tvehicle.stay_on_bike[0]) + setCarHeavy(car,fvehicle.tvehicle.heavy[0]) - if fvehicle.tvehicles.lock_speed[0] then - if fvehicle.tvehicles.speed[0] > 500 then - fvehicle.tvehicles.speed[0] = 500 + if fvehicle.tvehicle.lock_speed[0] then + if fvehicle.tvehicle.speed[0] > 500 then + fvehicle.tvehicle.speed[0] = 500 end - setCarForwardSpeed(car,fvehicle.tvehicles.speed[0]) + setCarForwardSpeed(car,fvehicle.tvehicle.speed[0]) end - setCarCanBeVisiblyDamaged(car,not(fvehicle.tvehicles.visual_damage[0])) + setCarCanBeVisiblyDamaged(car,not(fvehicle.tvehicle.visual_damage[0])) if getCarDoorLockStatus(car) == 4 then - fvehicle.tvehicles.lock_doors[0] = true + fvehicle.tvehicle.lock_doors[0] = true else - fvehicle.tvehicles.lock_doors[0] = false + fvehicle.tvehicle.lock_doors[0] = false end else - fvehicle.tvehicles.lock_doors[0] = false - fvehicle.tvehicles.lights.all[0] = false + fvehicle.tvehicle.lock_doors[0] = false + fvehicle.tvehicle.lights[0] = false end wait(0) diff --git a/lib/cheat-menu/modules/about.lua b/lib/cheat-menu/modules/about.lua index 1b6db857..48d3610f 100755 --- a/lib/cheat-menu/modules/about.lua +++ b/lib/cheat-menu/modules/about.lua @@ -23,7 +23,7 @@ function module.AboutMain() imgui.BulletText(string.format("Version number : %d",script.this.version_num)) imgui.SameLine() if imgui.Button("Check for update",imgui.ImVec2(120,20)) then - fupdate.CheckUpdates() + lua_thread.create(fupdate.CheckUpdates) end imgui.BulletText(string.format("Author : %s",script.this.authors[1])) imgui.BulletText(string.format("Imgui : v%s",imgui._VERSION)) diff --git a/lib/cheat-menu/modules/animation.lua b/lib/cheat-menu/modules/animation.lua index ce94f76f..5bb46dd5 100755 --- a/lib/cheat-menu/modules/animation.lua +++ b/lib/cheat-menu/modules/animation.lua @@ -16,31 +16,30 @@ local module = {} -local tanimation = +module.tanimation = { - loop = imgui.new.bool(fconfig.get('tanimation.loop',false)), - secondary = imgui.new.bool(fconfig.get('tanimation.secondary',false)), - search_text = imgui.new.char[20](), - name = imgui.new.char[20](), - ifp_name = imgui.new.char[20](), - fighting = + fighting = { - selected = imgui.new.int(fconfig.get('tanimation.fighting.selected',0)), - names = {"Default","Boxing","Kung fu","Kick Boxing","Punch Kick"}, - list = {}, + selected = imgui.new.int(fconfig.get('tanimation.fighting.selected',0)), + names = {"Default","Boxing","Kung fu","Kick Boxing","Punch Kick"}, + array = {}, + }, + ifp_name = imgui.new.char[20](), + loop = imgui.new.bool(fconfig.get('tanimation.loop',false)), + name = imgui.new.char[20](), + ped = imgui.new.bool(fconfig.get('tanimation.ped',false)), + secondary = imgui.new.bool(fconfig.get('tanimation.secondary',false)), + search_text = imgui.new.char[20](), + walking = + { + selected = imgui.new.int(fconfig.get('tanimation.walking.selected',0)), + names = {"man","shuffle","oldman","gang1","gang2","oldfatman","fatman","jogger","drunkman","blindman","swat","woman","shopping","busywoman","sexywoman","pro","oldwoman","fatwoman","jogwoman","oldfatwoman","skate"}, + array = {}, }, - walking = - { - selected = imgui.new.int(fconfig.get('tanimation.walking.selected',0)), - names = {"man","shuffle","oldman","gang1","gang2","oldfatman","fatman","jogger","drunkman","blindman","swat","woman","shopping","busywoman","sexywoman","pro","oldwoman","fatwoman","jogwoman","oldfatwoman","skate"}, - list = {}, - }, - ped = imgui.new.bool(fconfig.get('tanimation.ped',false)), } -module.tanimation = tanimation -tanimation.fighting.list = imgui.new['const char*'][#tanimation.fighting.names](tanimation.fighting.names) -tanimation.walking.list = imgui.new['const char*'][#tanimation.walking.names](tanimation.walking.names) +module.tanimation.fighting.array = imgui.new['const char*'][#module.tanimation.fighting.names](module.tanimation.fighting.names) +module.tanimation.walking.array = imgui.new['const char*'][#module.tanimation.walking.names](module.tanimation.walking.names) function AnimationEntry(file,animation) @@ -55,7 +54,7 @@ function AnimationEntry(file,animation) end function PlayAnimation(file,animation) - if fanimation.tanimation.ped[0] == true then + if module.tanimation.ped[0] == true then if fped.tped.selected ~= nil then char = fped.tped.selected else @@ -66,10 +65,10 @@ function PlayAnimation(file,animation) char = PLAYER_PED end - if tanimation.secondary[0] == true then - taskPlayAnimSecondary(char,animation,file,4.0,tanimation.loop[0],0,0,0,-1) + if module.tanimation.secondary[0] == true then + taskPlayAnimSecondary(char,animation,file,4.0,module.tanimation.loop[0],0,0,0,-1) else - taskPlayAnim(char,animation,file,4.0,tanimation.loop[0],0,0,0,-1) + taskPlayAnim(char,animation,file,4.0,module.tanimation.loop[0],0,0,0,-1) end fcommon.CheatActivated() if file ~= "ped" then @@ -82,7 +81,7 @@ function module.AnimationMain() imgui.Spacing() if imgui.Button("Stop animation",imgui.ImVec2(fcommon.GetSize(1))) then local char = nil - if fanimation.tanimation.ped[0] == true then + if module.tanimation.ped[0] == true then if fped.tped.selected ~= nil then char = fped.tped.selected else @@ -97,10 +96,10 @@ function module.AnimationMain() end imgui.Spacing() imgui.Columns(2,nil,false) - fcommon.CheckBox({name = "Loop",var = tanimation.loop}) - fcommon.CheckBox({name = "Ped",var = tanimation.ped,help_text = "Play animation on ped.Aim with a gun to select."}) + fcommon.CheckBox({name = "Loop",var = module.tanimation.loop}) + fcommon.CheckBox({name = "Ped",var = module.tanimation.ped,help_text = "Play animation on ped.Aim with a gun to select."}) imgui.NextColumn() - fcommon.CheckBox({name = "Secondary",var = tanimation.secondary}) + fcommon.CheckBox({name = "Secondary",var = module.tanimation.secondary}) imgui.Columns(1) imgui.Spacing() if imgui.BeginTabBar("Animation") then @@ -135,17 +134,17 @@ function module.AnimationMain() imgui.Spacing() imgui.Columns(1) - if imgui.InputText("Search",tanimation.search_text,ffi.sizeof(tanimation.search_text)) then end + if imgui.InputText("Search",module.tanimation.search_text,ffi.sizeof(module.tanimation.search_text)) then end imgui.SameLine() imgui.Spacing() - imgui.Text("Found entries :(" .. ffi.string(tanimation.search_text) .. ")") + imgui.Text("Found entries :(" .. ffi.string(module.tanimation.search_text) .. ")") imgui.Separator() imgui.Spacing() if imgui.BeginChild("Stat Entries") then for key,value in pairs(ftable.animation.table) do file, animation = value:match("([^$]+)$([^$]+)") - if (string.upper(animation):find(string.upper(ffi.string(tanimation.search_text)))) then + if (string.upper(animation):find(string.upper(ffi.string(module.tanimation.search_text)))) then AnimationEntry(file,animation) end end @@ -158,28 +157,28 @@ function module.AnimationMain() if imgui.BeginTabItem("Misc") then - if imgui.Combo("Fighting", tanimation.fighting.selected,tanimation.fighting.list,#tanimation.fighting.names) then - giveMeleeAttackToChar(PLAYER_PED,tanimation.fighting.selected[0]+4,6) + if imgui.Combo("Fighting", module.tanimation.fighting.selected,module.tanimation.fighting.array,#module.tanimation.fighting.names) then + giveMeleeAttackToChar(PLAYER_PED,module.tanimation.fighting.selected[0]+4,6) fcommon.CheatActivated() end - if imgui.Combo("Walking", tanimation.walking.selected,tanimation.walking.list,#tanimation.walking.names) then + if imgui.Combo("Walking", module.tanimation.walking.selected,module.tanimation.walking.array,#module.tanimation.walking.names) then writeMemory(0x609A4E,4,-1869574000,true) writeMemory(0x609A52,2,37008,true) - requestAnimation(tanimation.walking.names[tanimation.walking.selected[0]+1]) + requestAnimation(module.tanimation.walking.names[module.tanimation.walking.selected[0]+1]) loadAllModelsNow() - setAnimGroupForChar(PLAYER_PED,tanimation.walking.names[tanimation.walking.selected[0]+1]) - removeAnimation(tanimation.walking.names[tanimationwalking.selected[0]+1]) + setAnimGroupForChar(PLAYER_PED,module.tanimation.walking.names[module.tanimation.walking.selected[0]+1]) + removeAnimation(module.tanimation.walking.names[module.tanimation.walking.selected[0]+1]) fcommon.CheatActivated() end imgui.EndTabItem() end if imgui.BeginTabItem("Custom") then - if imgui.InputText("IFP name",tanimation.ifp_name,ffi.sizeof(tanimation.ifp_name)) then end - if imgui.InputText("Animation name",tanimation.name,ffi.sizeof(tanimation.name)) then end + if imgui.InputText("IFP name",module.tanimation.ifp_name,ffi.sizeof(module.tanimation.ifp_name)) then end + if imgui.InputText("Animation name",module.tanimation.name,ffi.sizeof(module.tanimation.name)) then end imgui.Spacing() if imgui.Button("Play animation",imgui.ImVec2(fcommon.GetSize(1))) then - PlayAnimation(ffi.string(tanimation.ifp_name),ffi.string(tanimation.name)) + PlayAnimation(ffi.string(module.tanimation.ifp_name),ffi.string(module.tanimation.name)) end imgui.EndTabItem() end diff --git a/lib/cheat-menu/modules/common.lua b/lib/cheat-menu/modules/common.lua index 1ba4f422..8908100e 100755 --- a/lib/cheat-menu/modules/common.lua +++ b/lib/cheat-menu/modules/common.lua @@ -65,14 +65,14 @@ function module.QuickSpawner() local weapon = fweapon.CBaseWeaponInfo(text) - if fweapon.tweapons.quick_spawn[0] == true and weapon ~= 0 then - fweapon.GiveWeaponToPlayer(weapon) + if fweapon.tweapon.quick_spawn[0] == true and weapon ~= 0 then + fweapon.GiveWeapon(weapon) return end local vehicle = fvehicle.CBaseModelInfo(text) - if fvehicle.tvehicles.quick_spawn[0] == true and vehicle ~= 0 then + if fvehicle.tvehicle.quick_spawn[0] == true and vehicle ~= 0 then fvehicle.GiveVehicleToPlayer(vehicle) return end @@ -139,22 +139,20 @@ function module.GetSize(count,x,y) return x,y end -function module.UiCreateButtons(names,funcs) +function module.CreateMenus(names,funcs) imgui.PushStyleVarVec2(imgui.StyleVar.ItemSpacing,imgui.ImVec2(0,0)) for i=1,#names,1 do - if tcheatmenu.menubuttons.current == i then + if tcheatmenu.current_menu == i then imgui.PushStyleColor(imgui.Col.Button, imgui.ImVec4(0.060,0.530,0.980,1.0)) end if imgui.Button(names[i],imgui.ImVec2(module.GetSize(4,imgui.GetWindowWidth()/4 - 4*imgui.StyleVar.WindowPadding,20))) then - tcheatmenu.menubuttons.current = i + tcheatmenu.current_menu = i end - if tcheatmenu.menubuttons.current == i then - imgui.GetStyleColorVec4(imgui.Col.Button) + if tcheatmenu.current_menu == i then imgui.PushStyleColor(imgui.Col.Button, imgui.ImVec4(0.260,0.590,0.980,0.400)) end - if i%4 ~= 0 then imgui.SameLine() end @@ -162,14 +160,8 @@ function module.UiCreateButtons(names,funcs) imgui.PopStyleVar() imgui.Spacing() - - for i=1,#funcs,1 do - if tcheatmenu.menubuttons.current == i then - imgui.Spacing() - funcs[i]() - break - end - end + funcs[tcheatmenu.current_menu]() + end function LoadTextures(store_table,image_path,model_table,extention) @@ -209,6 +201,7 @@ function module.ShowEntries(title,model_table,height,width,store_table,image_pat if func_show_tooltip == nil then if imgui.IsMouseClicked(1) then removeVehicleMod(car,model_table[j]) + printHelpString("Component ~r~removed") end end @@ -256,8 +249,7 @@ function module.RadioButton(label,rb_table,addr_table) module.CheatActivated() end end - - if imgui.RadioButtonIntPtr("Default ".. string.lower(label),button,#addr_table + 1) then + if imgui.RadioButtonIntPtr("Default ##" ..label,button,#addr_table + 1) then for j = 1,#addr_table,1 do writeMemory(addr_table[j],1,0,false) end @@ -265,25 +257,6 @@ function module.RadioButton(label,rb_table,addr_table) end end -function module.RwMemory(address,size,value,protect,is_float) - if protect ~= true then protect = false end - if is_float ~= true then is_float = false end - - if value == nil then - if is_float then - return memory.getfloat(address,protect) - else - return memory.read(address,size,protect) - end - else - if is_float then - memory.setfloat(address,value,protect) - else - memory.write(address,value,size,protect) - end - end -end - function module.CheckBox(arg) arg.value = arg.value or 1 arg.value2 = arg.value2 or 0 @@ -355,21 +328,21 @@ function module.UpdateStat(arg) imgui.Columns(1) imgui.PushItemWidth(imgui.GetWindowWidth()-70) - if imgui.InputInt("Set",value) then + if imgui.InputInt("Set ##".. arg.name,value) then setFloatStat(arg.stat,value[0]) end imgui.PopItemWidth() imgui.Spacing() - if imgui.Button("Minimum",imgui.ImVec2(fcommon.GetSize(3))) then + if imgui.Button("Minimum ##".. arg.name,imgui.ImVec2(fcommon.GetSize(3))) then setFloatStat(arg.stat,arg.min) end imgui.SameLine() - if imgui.Button("Default",imgui.ImVec2(fcommon.GetSize(3))) then + if imgui.Button("Default ##".. arg.name,imgui.ImVec2(fcommon.GetSize(3))) then setFloatStat(arg.stat,arg.default) end imgui.SameLine() - if imgui.Button("Maximum",imgui.ImVec2(fcommon.GetSize(3))) then + if imgui.Button("Maximum ##".. arg.name,imgui.ImVec2(fcommon.GetSize(3))) then setFloatStat(arg.stat,arg.max) end if value[0] < arg.min then @@ -381,8 +354,25 @@ function module.UpdateStat(arg) end) end +function module.RwMemory(address,size,value,protect,is_float) + if protect == nil then protect = false end + + if value == nil then + if is_float == true then + return memory.getfloat(address,protect) + else + return readMemory(address,size,protect) + end + else + if is_float == true then + memory.setfloat(address,value,protect) + else + memory.write(address,value,size,protect) + end + end +end + function module.UpdateAddress(arg) - if arg.is_float == nil then arg.is_float = false end if arg.default == nil then arg.default = 0 end if arg.cvalue == nil then arg.cvalue = 1 end @@ -402,7 +392,7 @@ function module.UpdateAddress(arg) imgui.Spacing() - if imgui.InputFloat("",value) then + if imgui.InputFloat("##".. arg.name,value) then module.RwMemory(arg.address,arg.size,value[0],nil,arg.is_float) end imgui.SameLine(0.0,4.0) @@ -416,15 +406,15 @@ function module.UpdateAddress(arg) imgui.SameLine(0.0,4.0) imgui.Text("Set") imgui.Spacing() - if imgui.Button("Minimum",imgui.ImVec2(fcommon.GetSize(3))) then + if imgui.Button("Minimum ##".. arg.name,imgui.ImVec2(fcommon.GetSize(3))) then module.RwMemory(arg.address,arg.size,arg.min,nil,arg.is_float) end imgui.SameLine() - if imgui.Button("Default",imgui.ImVec2(fcommon.GetSize(3))) then + if imgui.Button("Default ##".. arg.name,imgui.ImVec2(fcommon.GetSize(3))) then module.RwMemory(arg.address,arg.size,arg.default,nil,arg.is_float) end imgui.SameLine() - if imgui.Button("Maximum",imgui.ImVec2(fcommon.GetSize(3))) then + if imgui.Button("Maximum ##".. arg.name,imgui.ImVec2(fcommon.GetSize(3))) then module.RwMemory(arg.address,arg.size,arg.max,nil,arg.is_float) end imgui.SameLine() diff --git a/lib/cheat-menu/modules/config.lua b/lib/cheat-menu/modules/config.lua index 0d37330a..574dd174 100755 --- a/lib/cheat-menu/modules/config.lua +++ b/lib/cheat-menu/modules/config.lua @@ -31,119 +31,113 @@ function module.write() tconfig.write = { - tcheatmenu = - { - menubuttons = - { - current = tcheatmenu.menubuttons.current, - }, - }, - - tteleport = - { - shortcut = fteleport.tteleport.shortcut[0], - auto_z = fteleport.tteleport.auto_z[0], - insert_coords = fteleport.tteleport.insert_coords[0], - coords = ffi.string(fteleport.tteleport.coords), - }, - tmemory = - { - address = ffi.string(fmemory.tmemory.address), - size = fmemory.tmemory.size[0], - vp = fmemory.tmemory.vp[0], - clear_entries = fmemory.tmemory.clear_entries[0], - value = fmemory.tmemory.value[0], - is_float = fmemory.tmemory.is_float[0], - }, - tplayer = - { - god = fplayer.tplayer.god[0], - aimSkinChanger = fplayer.tplayer.aimSkinChanger[0], - neverWanted = fplayer.tplayer.neverWanted[0], - cjBody = fplayer.tplayer.cjBody[0], - }, tanimation = { - loop = fanimation.tanimation.loop[0], - ped = fanimation.tanimation.ped[0], - secondary = fanimation.tanimation.secondary[0], fighting = { selected = fanimation.tanimation.fighting.selected[0], }, + loop = fanimation.tanimation.loop[0], + ped = fanimation.tanimation.ped[0], + secondary = fanimation.tanimation.secondary[0], walking = { selected = fanimation.tanimation.walking.selected[0], }, }, - tweapon = + tcheatmenu = { - quick_spawn = fweapon.tweapon.quick_spawn[0], - ped = fweapon.tweapon.ped[0], + current_menu = tcheatmenu.current_menu, }, - tvisual = + tgame = { - money = - { - positive = ffi.string(fvisual.tvisual.money.positive), - negative = ffi.string(fvisual.tvisual.money.negative), + disable_cheats = fgame.tgame.disable_cheats[0], + disable_help_popups = fgame.tgame.disable_help_popups[0], + fps_limit = fgame.tgame.fps_limit[0], + keep_stuff = fgame.tgame.keep_stuff[0], + ss_shortcut = fgame.tgame.ss_shortcut[0], + }, + tmemory = + { + address = ffi.string(fmemory.tmemory.address), + clear_entries = fmemory.tmemory.clear_entries[0], + is_float = fmemory.tmemory.is_float[0], + size = fmemory.tmemory.size[0], + value = fmemory.tmemory.value[0], + vp = fmemory.tmemory.vp[0], + }, + tmenu = + { + auto_update_check = fmenu.tmenu.auto_update_check[0], + auto_reload = fmenu.tmenu.auto_reload[0], + disable_in_samp = fmenu.tmenu.disable_in_samp[0], + lock_player = fmenu.tmenu.lock_player[0], + overlay = + { + coordinates = fmenu.tmenu.overlay.coordinates[0], + fps = fmenu.tmenu.overlay.fps[0], + health = fmenu.tmenu.overlay.health[0], + position_index = fmenu.tmenu.overlay.position_index[0], + show = fmenu.tmenu.overlay.show[0], + speed = fmenu.tmenu.overlay.speed[0], }, + show_tooltips = fmenu.tmenu.show_tooltips[0], + show_crash_message = fmenu.tmenu.show_crash_message[0], }, tped = { + gang_wars = fped.tped.gang_wars[0], type = { - selected = fped.tped.type.selected[0], + index = fped.tped.type.index[0], }, }, - tgame = + tplayer = { - ss_shortcut = fgame.tgame.ss_shortcut[0], - disable_cheats = fgame.tgame.disable_cheats[0], - fps = - { - limit = fgame.tgame.fps.limit[0], - }, - disable_help_popups = fgame.tgame.disable_help_popups[0], + aimSkinChanger = fplayer.tplayer.aimSkinChanger[0], + cjBody = fplayer.tplayer.cjBody[0], + god = fplayer.tplayer.god[0], }, - tvehicles = + tteleport = + { + auto_z = fteleport.tteleport.auto_z[0], + coords = ffi.string(fteleport.tteleport.coords), + insert_coords = fteleport.tteleport.insert_coords[0], + shortcut = fteleport.tteleport.shortcut[0], + }, + tvehicle = { - quick_spawn = fvehicle.tvehicles.quick_spawn[0], - spawn_inside = fvehicle.tvehicles.spawn_inside[0], aircraft = { - camera = fvehicle.tvehicles.aircraft.camera[0], - spawn_in_air = fvehicle.tvehicles.aircraft.spawn_in_air[0], - index = fvehicle.tvehicles.aircraft.index, - }, - no_damage = fvehicle.tvehicles.no_damage[0], - visual_damage = fvehicle.tvehicles.visual_damage[0], - heavy = fvehicle.tvehicles.heavy[0], - stay_on_bike = fvehicle.tvehicles.stay_on_bike[0], - lock_speed = fvehicle.tvehicles.lock_speed[0], - speed = fvehicle.tvehicles.speed[0], - lights = { - all = fvehicle.tvehicles.lights.all[0], + camera = fvehicle.tvehicle.aircraft.camera[0], + index = fvehicle.tvehicle.aircraft.index, + spawn_in_air = fvehicle.tvehicle.aircraft.spawn_in_air[0], }, + heavy = fvehicle.tvehicle.heavy[0], + quick_spawn = fvehicle.tvehicle.quick_spawn[0], + lights = fvehicle.tvehicle.lights[0], + lock_speed = fvehicle.tvehicle.lock_speed[0], + no_damage = fvehicle.tvehicle.no_damage[0], + spawn_inside = fvehicle.tvehicle.spawn_inside[0], + speed = fvehicle.tvehicle.speed[0], + stay_on_bike = fvehicle.tvehicle.stay_on_bike[0], + visual_damage = fvehicle.tvehicle.visual_damage[0], }, - tmenu = + tvisual = { - auto_update_check = fmenu.tmenu.auto_update_check[0], - auto_reload = fmenu.tmenu.auto_reload[0], - show_tooltips = fmenu.tmenu.show_tooltips[0], - show_crash_message = fmenu.tmenu.show_crash_message[0], - disable_in_samp = fmenu.tmenu.disable_in_samp[0], - lock_player = fmenu.tmenu.lock_player[0], - overlay = + money = { - show = fmenu.tmenu.overlay.show[0], - position_index = fmenu.tmenu.overlay.position_index[0], - coordinates = fmenu.tmenu.overlay.coordinates[0], - fps = fmenu.tmenu.overlay.fps[0], - health = fmenu.tmenu.overlay.health[0], - speed = fmenu.tmenu.overlay.speed[0], + negative = ffi.string(fvisual.tvisual.money.negative), + positive = ffi.string(fvisual.tvisual.money.positive), }, }, + tweapon = + { + fast_reload = fweapon.tweapon.fast_reload[0], + no_reload = fweapon.tweapon.no_reload[0], + ped = fweapon.tweapon.ped[0], + quick_spawn = fweapon.tweapon.quick_spawn[0], + }, } local file = io.open(config_path,'w') diff --git a/lib/cheat-menu/modules/game.lua b/lib/cheat-menu/modules/game.lua index fa2839c7..63e3ba42 100755 --- a/lib/cheat-menu/modules/game.lua +++ b/lib/cheat-menu/modules/game.lua @@ -16,35 +16,33 @@ local module = {} -local tgame = +module.tgame = { - ss_shortcut = imgui.new.bool(fconfig.get('tgame.ss_shortcut',false)), - keep_stuff = imgui.new.bool(false), - unlock_interior = imgui.new.bool(false), - disable_cheats = imgui.new.bool(fconfig.get('tgame.disable_cheats',false)), - current_weather = 0, - day_names = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}, - weather_names = ftable.weather.table, - fps = - { - limit = imgui.new.int(fconfig.get('tgame.fps.limit',30)), - }, - airbreak = imgui.new.bool(false), - disable_help_popups = imgui.new.bool(fconfig.get('tgame.disable_help_popups',false)), - stats = - { - search_text = imgui.new.char[20](), - names = ftable.stats.table, + airbreak = imgui.new.bool(false), + day = + { + names = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}, + array = {}, + }, + disable_cheats = imgui.new.bool(fconfig.get('tgame.disable_cheats',false)), + disable_help_popups = imgui.new.bool(fconfig.get('tgame.disable_help_popups',false)), + fps_limit = imgui.new.int(fconfig.get('tgame.fps_limit',30)), + keep_stuff = imgui.new.bool(fconfig.get('tgame.keep_stuff',false)), + ss_shortcut = imgui.new.bool(fconfig.get('tgame.ss_shortcut',false)), + stats = + { + search_text = imgui.new.char[20](), + names = ftable.stats.table, + }, + weather = + { + names = ftable.weather.table, + array = {}, }, } -module.tgame = tgame - -local days_list = imgui.new['const char*'][#tgame.day_names](tgame.day_names) -local weather_list = imgui.new['const char*'][#tgame.weather_names](tgame.weather_names) - --- Game Interriors list -local interior_names = ftable.interiors.table +module.tgame.day.array = imgui.new['const char*'][#module.tgame.day.names](module.tgame.day.names) +module.tgame.weather.array = imgui.new['const char*'][#module.tgame.weather.names](module.tgame.weather.names) function CheatsEntry(func,names) @@ -66,7 +64,7 @@ function CheatsEntry(func,names) end function module.AirbreakMode() - if tgame.airbreak[0] then + if module.tgame.airbreak[0] then if isKeyDown(tkeys.airbreak_up) then x,y,z = getCharCoordinates(PLAYER_PED) setCharCoordinates(PLAYER_PED,x,y,z+2.0) @@ -156,7 +154,7 @@ end function SetCurrentWeekday() imgui.Spacing() local current_day = imgui.new.int(readMemory(0xB7014E,1,false)-1) - if imgui.Combo("Day", current_day,days_list,#tgame.day_names) then + if imgui.Combo("Day", current_day,module.tgame.day.array,#module.tgame.day.names) then writeMemory(0xB7014E,1,current_day[0]+1,false) fcommon.CheatActivated() end @@ -165,7 +163,7 @@ end function SetWeather() imgui.Spacing() local current_weather = imgui.new.int(readMemory(0xC81320,2,false)) - if imgui.Combo("Weather", current_weather,weather_list,#tgame.weather_names) then + if imgui.Combo("Weather", current_weather,module.tgame.weather.array,#module.tgame.weather.names) then writeMemory(0xC81320,2,current_weather[0],false) fcommon.CheatActivated() end @@ -186,8 +184,8 @@ function module.GameMain() imgui.Spacing() imgui.Columns(2,nil,false) - fcommon.CheckBox({name = "Airbreak mode",var = tgame.airbreak,help_text = "Controls:\nW : Forward\tS : Backward\nA : Left \t\tD : Right\nArrow_Up\t : Move up\nArrow_Down : Move Down",func = function() - if tgame.airbreak[0] == true then + fcommon.CheckBox({name = "Airbreak mode",var = module.tgame.airbreak,help_text = "Controls:\nW : Forward\tS : Backward\nA : Left \t\tD : Right\nArrow_Up\t : Move up\nArrow_Down : Move Down",func = function() + if module.tgame.airbreak[0] == true then lockPlayerControl(true) setCharCollision(PLAYER_PED,false) setCameraBehindPlayer() @@ -198,8 +196,8 @@ function module.GameMain() fcommon.CheatDeactivated() end end}) - fcommon.CheckBox({name = "Disable cheats",var = tgame.disable_cheats,func = function() - if tgame.disable_cheats[0] == true then + fcommon.CheckBox({name = "Disable cheats",var = module.tgame.disable_cheats,func = function() + if module.tgame.disable_cheats[0] == true then writeMemory(0x004384D0 ,1,0xE9 ,false) writeMemory(0x004384D1 ,4,0x000000D0 ,false) writeMemory(0x004384D5 ,4,0x90909090 ,false) @@ -211,34 +209,16 @@ function module.GameMain() fcommon.CheatDeactivated() end end}) - fcommon.CheckBox({ name = "Disable help popups",var = tgame.disable_help_popups ,show_help_popups = true,help_text = "Disables wasted & arrested popups that\nappear in a new game.Requires restart."}) + fcommon.CheckBox({ name = "Disable help popups",var = module.tgame.disable_help_popups ,show_help_popups = true,help_text = "Disables wasted & arrested popups that\nappear in a new game.Requires restart."}) fcommon.CheckBox({ address = 0x96C009,name = 'Free PNS'}) imgui.NextColumn() - fcommon.CheckBox({name = "Keep stuff",var = tgame.keep_stuff,help_text = "Keep stuff after arrest/death" ,func = function() - if tgame.keep_stuff[0] == false then - switchArrestPenalties(true) - switchDeathPenalties(true) - else - switchArrestPenalties(false) - switchDeathPenalties(false) - end - end}) - fcommon.CheckBox({ name = 'Screenshot shortcut',var = tgame.ss_shortcut,show_help_popups = true,help_text = "Take screenshot using (Left Ctrl + S) key combination"}) - fcommon.CheckBox({name = 'Unlock interior',var = tgame.unlock_interior,func = function() - if tgame.unlock_interior[0] == true then - for _,name in ipairs(interior_names) do - switchEntryExit(name,1) - fcommon.CheatActivated() - end - else - for _,name in ipairs(interior_names) do - switchEntryExit(name,0) - fcommon.CheatDeactivated() - end - end + fcommon.CheckBox({name = "Keep stuff",var = module.tgame.keep_stuff,help_text = "Keep stuff after arrest/death" ,func = function() + switchArrestPenalties(module.tgame.keep_stuff[0]) + switchDeathPenalties(module.tgame.keep_stuff[0]) end}) + fcommon.CheckBox({ name = 'Screenshot shortcut',var = module.tgame.ss_shortcut,show_help_popups = true,help_text = "Take screenshot using (Left Ctrl + S) key combination"}) fcommon.CheckBox({ address = 0xB6F065,name = 'Widescreen'}) imgui.Columns(1) @@ -268,12 +248,12 @@ function module.GameMain() imgui.Columns(1) imgui.PushItemWidth(imgui.GetWindowWidth()-50) - if imgui.InputInt('Set',tgame.fps.limit) then - memory.write(0xC1704C,(tgame.fps.limit[0]+1),1) + if imgui.InputInt('Set',module.tgame.fps_limit) then + memory.write(0xC1704C,(module.tgame.fps_limit[0]+1),1) memory.write(0xBA6794,1,1) end - if tgame.fps.limit[0] < 1 then - tgame.fps.limit[0] = 1 + if module.tgame.fps_limit[0] < 1 then + module.tgame.fps_limit[0] = 1 end imgui.PopItemWidth() @@ -282,18 +262,18 @@ function module.GameMain() if imgui.Button("Minimum",imgui.ImVec2(fcommon.GetSize(3))) then memory.write(0xC1704C,1,1) memory.write(0xBA6794,1,1) - tgame.fps.limit[0] = 1 + module.tgame.fps_limit[0] = 1 end imgui.SameLine() if imgui.Button("Default",imgui.ImVec2(fcommon.GetSize(3))) then memory.write(0xC1704C,30,1) memory.write(0xBA6794,1,1) - tgame.fps.limit[0] = 30 + module.tgame.fps_limit[0] = 30 end imgui.SameLine() if imgui.Button("Maximum",imgui.ImVec2(fcommon.GetSize(3))) then memory.write(0xBA6794,0,1) - tgame.fps.limit[0] = 999 + module.tgame.fps_limit[0] = 999 end end) fcommon.UpdateAddress({name = 'Game speed',address = 0xB7CB64,size = 4,max = 10,min = 0, is_float =true, default = 1}) @@ -388,18 +368,18 @@ function module.GameMain() if imgui.BeginTabItem("Search") then imgui.Spacing() imgui.Columns(1) - if imgui.InputText("Search",tgame.stats.search_text,ffi.sizeof(tgame.stats.search_text)) then end + if imgui.InputText("Search",module.tgame.stats.search_text,ffi.sizeof(module.tgame.stats.search_text)) then end imgui.SameLine() imgui.Spacing() - imgui.Text("Found entries :(" .. ffi.string(tgame.stats.search_text) .. ")") + imgui.Text("Found entries :(" .. ffi.string(module.tgame.stats.search_text) .. ")") imgui.Separator() imgui.Spacing() if imgui.BeginChild("Stat Entries") then for i=0,342,1 do - if tgame.stats.names[i] ~= nil then - if (ffi.string(tgame.stats.search_text) == "") or (string.upper(tgame.stats.names[i]):find(string.upper(ffi.string(tgame.stats.search_text))) ~= nil) then - fcommon.UpdateStat({ name = tgame.stats.names[i],stat = i}) + if module.tgame.stats.names[i] ~= nil then + if (ffi.string(module.tgame.stats.search_text) == "") or (string.upper(module.tgame.stats.names[i]):find(string.upper(ffi.string(module.tgame.stats.search_text))) ~= nil) then + fcommon.UpdateStat({ name = module.tgame.stats.names[i],stat = i}) end end end diff --git a/lib/cheat-menu/modules/memory.lua b/lib/cheat-menu/modules/memory.lua index 75468ae1..22b3f367 100755 --- a/lib/cheat-menu/modules/memory.lua +++ b/lib/cheat-menu/modules/memory.lua @@ -16,59 +16,56 @@ local module = {} --- Memory table -local tmemory = +module.tmemory = { - address = imgui.new.char[10](fconfig.get('tmemory.address',"")), - size = imgui.new.int(fconfig.get('tmemory.size',1)), - vp = imgui.new.bool(fconfig.get('tmemory.vp',false)), + address = imgui.new.char[10](fconfig.get('tmemory.address',"")), clear_entries = imgui.new.bool(fconfig.get('tmemory.clear_entries',false)), - value = imgui.new.int(fconfig.get('tmemory.value',0)), - is_float = imgui.new.bool(fconfig.get('tmemory.is_float',false)), + is_float = imgui.new.bool(fconfig.get('tmemory.is_float',false)), + size = imgui.new.int(fconfig.get('tmemory.size',1)), + value = imgui.new.int(fconfig.get('tmemory.value',0)), + vp = imgui.new.bool(fconfig.get('tmemory.vp',false)), } -module.tmemory = tmemory - function module.MemoryMain() if isKeyDown(tkeys.control_key) and isKeyDown(tkeys.mc_paste) then - imgui.StrCopy(tmemory.address, imgui.GetClipboardText(),ffi.sizeof(tmemory.address)) + imgui.StrCopy(module.tmemory.address, imgui.GetClipboardText(),ffi.sizeof(module.tmemory.address)) end if imgui.BeginTabBar("Memory") then if imgui.BeginTabItem("Read") then - imgui.Text("Memory value : " .. tmemory.value[0]) + imgui.Text("Memory value : " .. module.tmemory.value[0]) imgui.Spacing() - imgui.InputText("Address", tmemory.address,ffi.sizeof(tmemory.address)) - fcommon.InformationTooltip("You can simply paste copied address using Ctrl + V") - imgui.SliderInt("Size", tmemory.size,1,4) + imgui.InputText("Address", module.tmemory.address,ffi.sizeof(module.tmemory.address)) + fcommon.InformationTooltip("Ctrl + V to paste address") + imgui.SliderInt("Size", module.tmemory.size,1,4) - if tmemory.size[0] == 4 then + if module.tmemory.size[0] == 4 then imgui.Columns(3,nil,false) - imgui.Checkbox("Float",tmemory.is_float) + imgui.Checkbox("Float",module.tmemory.is_float) imgui.NextColumn() else imgui.Columns(2,nil,false) end - imgui.Checkbox("Virtual protect", tmemory.vp) + imgui.Checkbox("Virtual protect", module.tmemory.vp) imgui.NextColumn() - imgui.Checkbox("Clear entries", tmemory.clear_entries) + imgui.Checkbox("Clear entries", module.tmemory.clear_entries) imgui.Columns(1) if imgui.Button("Read",imgui.ImVec2(fcommon.GetSize(1))) then - if ffi.string(tmemory.address) ~= "" then - tmemory.value[0] = fcommon.RwMemory(tonumber(ffi.string(tmemory.address)),tmemory.size[0],nil,tmemory.vp[0],tmemory.is_float[0]) - if tmemory.clear_entries[0] == 1 then - tmemory.value[0] = 0 - imgui.StrCopy(tmemory.address,"") - tmemory.size[0] = 0 - tmemory.vp[0] = false - tmemory.is_float[0] = false + if ffi.string(module.tmemory.address) ~= "" then + module.tmemory.value[0] = fcommon.RwMemory(tonumber(ffi.string(module.tmemory.address)),module.tmemory.size[0],nil,module.tmemory.vp[0],module.tmemory.is_float[0]) + if module.tmemory.clear_entries[0] == true then + module.tmemory.value[0] = 0 + imgui.StrCopy(module.tmemory.address,"") + module.tmemory.size[0] = 0 + module.tmemory.vp[0] = false + module.tmemory.is_float[0] = false end end end @@ -77,34 +74,34 @@ function module.MemoryMain() end if imgui.BeginTabItem("Write") then - imgui.InputInt("Value", tmemory.value) - imgui.InputText("Address", tmemory.address,ffi.sizeof(tmemory.address)) + imgui.InputInt("Value", module.tmemory.value) + imgui.InputText("Address", module.tmemory.address,ffi.sizeof(module.tmemory.address)) fcommon.InformationTooltip("You can simply paste copied address using Ctrl + V") - imgui.SliderInt("Size", tmemory.size,1,4) + imgui.SliderInt("Size", module.tmemory.size,1,4) - if tmemory.size[0] == 4 then + if module.tmemory.size[0] == 4 then imgui.Columns(3,nil,false) - imgui.Checkbox("Float",tmemory.is_float) + imgui.Checkbox("Float",module.tmemory.is_float) imgui.NextColumn() else imgui.Columns(2,nil,false) end - imgui.Checkbox("Virtual protect", tmemory.vp) + imgui.Checkbox("Virtual protect", module.tmemory.vp) imgui.NextColumn() - imgui.Checkbox("Clear entries", tmemory.clear_entries) + imgui.Checkbox("Clear entries", module.tmemory.clear_entries) imgui.Columns(1) if imgui.Button("Write",imgui.ImVec2(fcommon.GetSize(1))) then - if ffi.string(tmemory.address) ~= "" then - fcommon.RwMemory(tonumber(ffi.string(tmemory.address)),tmemory.size[0],tmemory.value[0],tmemory.vp[0],tmemory.is_float[0]) - if tmemory.clear_entries[0] == 1 then - tmemory.value[0] = 0 - imgui.StrCopy(tmemory.address,"") - tmemory.size[0] = 0 - tmemory.vp[0] = false - tmemory.is_float[0] = false + if ffi.string(module.tmemory.address) ~= "" then + fcommon.RwMemory(tonumber(ffi.string(module.tmemory.address)),module.tmemory.size[0],module.tmemory.value[0],module.tmemory.vp[0],module.tmemory.is_float[0]) + if module.tmemory.clear_entries[0] == true then + module.tmemory.value[0] = 0 + imgui.StrCopy(module.tmemory.address,"") + module.tmemory.size[0] = 0 + module.tmemory.vp[0] = false + module.tmemory.is_float[0] = false end printHelpString("Value ~g~Updated") end diff --git a/lib/cheat-menu/modules/menu.lua b/lib/cheat-menu/modules/menu.lua index 0ab70392..44a020b5 100755 --- a/lib/cheat-menu/modules/menu.lua +++ b/lib/cheat-menu/modules/menu.lua @@ -16,30 +16,29 @@ local module = {} -local tmenu = -{ - overlay = +module.tmenu = +{ + auto_update_check = imgui.new.bool(fconfig.get('tmenu.auto_update_check',true)), + auto_reload = imgui.new.bool(fconfig.get('tmenu.auto_reload',true)), + disable_in_samp = imgui.new.bool(fconfig.get('tmenu.disable_in_samp',false)), + lock_player = imgui.new.bool(fconfig.get('tmenu.lock_player',false)), + overlay = { + coordinates = imgui.new.bool(fconfig.get('tmenu.overlay.coordinates',false)), + fps = imgui.new.bool(fconfig.get('tmenu.overlay.fps',false)), + show = imgui.new.bool(true), offset = imgui.new.int(10), - show = imgui.new.bool(true), position = {"Custom","Top Left","Top Right","Bottom Left","Bottom Right","Close"}, position_array = {}, - position_index = imgui.new.int(fconfig.get('tmenu.overlay.position_index',4)), + position_index = imgui.new.int(fconfig.get('tmenu.overlay.position_index',4)), health = imgui.new.bool(fconfig.get('tmenu.overlay.health',false)), - speed = imgui.new.bool(fconfig.get('tmenu.overlay.speed',false)), - coordinates = imgui.new.bool(fconfig.get('tmenu.overlay.coordinates',false)), - fps = imgui.new.bool(fconfig.get('tmenu.overlay.fps',false)), + speed = imgui.new.bool(fconfig.get('tmenu.overlay.speed',false)), }, - - auto_update_check = imgui.new.bool(fconfig.get('tmenu.auto_update_check',true)), - auto_reload = imgui.new.bool(fconfig.get('tmenu.auto_reload',true)), - lock_player = imgui.new.bool(fconfig.get('tmenu.lock_player',false)), show_tooltips = imgui.new.bool(fconfig.get('tmenu.show_tooltips',true)), show_crash_message = imgui.new.bool(fconfig.get('tmenu.show_crash_message',true)), - disable_in_samp = imgui.new.bool(fconfig.get('tmenu.disable_in_samp',false)), } -module.tmenu = tmenu +module.tmenu.overlay.position_array = imgui.new['const char*'][#module.tmenu.overlay.position](module.tmenu.overlay.position) function module.MenuMain() @@ -47,13 +46,13 @@ function module.MenuMain() if imgui.BeginTabItem("Config") then imgui.Columns(2,nil,false) imgui.Spacing() - fcommon.CheckBox({name = "Auto check for updates",var = fmenu.tmenu.auto_update_check}) - fcommon.CheckBox({name = "Auto reload",var = fmenu.tmenu.auto_reload,help_text = "Script will automatically reload itself if\nany crash occurs(Might cause issues)"}) - fcommon.CheckBox({name = "Disable in SAMP",var = fmenu.tmenu.disable_in_samp}) + fcommon.CheckBox({name = "Auto check for updates",var = module.tmenu.auto_update_check}) + fcommon.CheckBox({name = "Auto reload",var = module.tmenu.auto_reload,help_text = "Script will automatically reload itself if\nany crash occurs(Might cause issues)"}) + fcommon.CheckBox({name = "Disable in SAMP",var = module.tmenu.disable_in_samp}) imgui.NextColumn() - fcommon.CheckBox({name = "Lock player",var = fmenu.tmenu.lock_player,help_text = "Lock player controls while the menu is open"}) - fcommon.CheckBox({name = "Show crash message",var = fmenu.tmenu.show_crash_message}) - fcommon.CheckBox({name = "Show tooltips",var = fmenu.tmenu.show_tooltips}) + fcommon.CheckBox({name = "Lock player",var = module.tmenu.lock_player,help_text = "Lock player controls while the menu is open"}) + fcommon.CheckBox({name = "Show crash message",var = module.tmenu.show_crash_message}) + fcommon.CheckBox({name = "Show tooltips",var = module.tmenu.show_tooltips}) imgui.Columns(1) @@ -62,18 +61,18 @@ function module.MenuMain() if imgui.BeginTabItem("Overlay") then imgui.Columns(2,nil,false) imgui.Spacing() - fcommon.CheckBox({name = "Show coordinates",var = tmenu.overlay.coordinates,show_help_popups = true}) - fcommon.CheckBox({name = "Show FPS",var = tmenu.overlay.fps}) + fcommon.CheckBox({name = "Show coordinates",var = module.tmenu.overlay.coordinates,show_help_popups = true}) + fcommon.CheckBox({name = "Show FPS",var = module.tmenu.overlay.fps}) imgui.NextColumn() - fcommon.CheckBox({name = "Show health",var = tmenu.overlay.health}) - fcommon.CheckBox({name = "Show speed",var = tmenu.overlay.speed}) + fcommon.CheckBox({name = "Show health",var = module.tmenu.overlay.health}) + fcommon.CheckBox({name = "Show speed",var = module.tmenu.overlay.speed}) imgui.Columns(1) imgui.Spacing() imgui.Separator() imgui.Spacing() - if imgui.Combo("Position", fmenu.tmenu.overlay.position_index,fmenu.tmenu.overlay.position_array,#fmenu.tmenu.overlay.position) then - if fmenu.tmenu.overlay.position_index[0] == 5 then + if imgui.Combo("Position", module.tmenu.overlay.position_index,module.tmenu.overlay.position_array,#module.tmenu.overlay.position) then + if module.tmenu.overlay.position_index == 5 then fgame.tgame.fps.bool[0] = false fvehicles.tvehicles.show.speed[0] = false fvehicles.tvehicles.show.health[0] = false diff --git a/lib/cheat-menu/modules/mission.lua b/lib/cheat-menu/modules/mission.lua index 95671414..0b6e6134 100755 --- a/lib/cheat-menu/modules/mission.lua +++ b/lib/cheat-menu/modules/mission.lua @@ -16,20 +16,19 @@ local module = {} -local tmissions = +module.tmission = { - search_text = imgui.new.char[64](fconfig.get('tmissions.search_text',"")), + array = {}, names = ftable.missions.table, - list = {}, + search_text = imgui.new.char[20](), } -for i = 0,#tmissions.names,1 do - if tmissions.names[i] ~= nil then - table.insert(tmissions.list,i) +for i = 0,#module.tmission.names,1 do + if module.tmission.names[i] ~= nil then + table.insert(module.tmission.array,i) end end -module.tmissions = tmissions function ShowMissionEntries(title,list,search_text) if search_text == nil then search_text = "" end @@ -37,7 +36,7 @@ function ShowMissionEntries(title,list,search_text) fcommon.DropDownMenu(title,function() imgui.Spacing() for _,i in pairs(list) do - if (ffi.string(search_text) == "") or ((string.upper(tmissions.names[i])):find(string.upper(ffi.string(search_text))) ~= nil) then + if (ffi.string(search_text) == "") or ((string.upper(module.tmission.names[i])):find(string.upper(ffi.string(search_text))) ~= nil) then MissionEntry(i) end end @@ -45,7 +44,7 @@ function ShowMissionEntries(title,list,search_text) end function MissionEntry(i) - if imgui.MenuItemBool(tmissions.names[i]) then + if imgui.MenuItemBool(module.tmission.names[i]) then if getGameGlobal(glob.ONMISSION) == 0 then clearWantedLevel(PLAYER_HANDLE) lockPlayerControl(true) @@ -126,15 +125,14 @@ function module.MissionMain() if imgui.BeginTabItem('Search') then imgui.Spacing() imgui.Columns(1) - if imgui.InputText('Search',tmissions.search_text,ffi.sizeof(tmissions.search_text)) then end - imgui.SameLine() - + if imgui.InputText('Search ',module.tmission.search_text,ffi.sizeof(module.tmission.search_text)) then + end imgui.Spacing() - imgui.Text("FoundEntries :(" .. ffi.string(tmissions.search_text) .. ")") + imgui.Text("FoundEntries :(" .. ffi.string(module.tmission.search_text) .. ")") imgui.Separator() imgui.Spacing() if imgui.BeginChild("MissionsEntries") then - ShowMissionEntries(nil,tmissions.list,tmissions.search_text) + ShowMissionEntries(nil,module.tmission.array,module.tmission.search_text) imgui.EndChild() end imgui.EndTabItem() diff --git a/lib/cheat-menu/modules/ped.lua b/lib/cheat-menu/modules/ped.lua index 3c350f15..fee5df3b 100755 --- a/lib/cheat-menu/modules/ped.lua +++ b/lib/cheat-menu/modules/ped.lua @@ -16,59 +16,54 @@ local module = {} -local tped = +module.tped = { - path = tcheatmenu.dir .. "peds\\", - images = {}, - type = + gang_wars = imgui.new.bool(fconfig.get('tped.gang_wars',false)), + images = {}, + models = {}, + names = ftable.peds.list, + path = tcheatmenu.dir .. "peds\\", + search_text = imgui.new.char[20](""), + selected = nil, + special = ftable.peds.special, + type = { - list = {}, - names = ftable.peds.types, - - selected = imgui.new.int(fconfig.get('tped.type.selected',0)), - }, - names = ftable.peds.list, - special = ftable.peds.special, - models = {}, - search_text = imgui.new.char[20](fconfig.get('tped.search_text',"")), - gangs = - { - wars = imgui.new.bool(false), + array = {}, + names = ftable.peds.types, + index = imgui.new.int(fconfig.get('tped.type.index',0)), }, - selected = nil, } -module.tped = tped -tped.type.list = imgui.new['const char*'][#tped.type.names](tped.type.names) +module.tped.type.array = imgui.new['const char*'][#module.tped.type.names](module.tped.type.names) -for i = 0,#tped.names,1 do - table.insert(tped.models,i) +for i = 0,#module.tped.names,1 do + table.insert(module.tped.models,i) end function module.GetName(model) - if tped.names[model] then return tped.names[model] else return "" end + if module.tped.names[model] then return module.tped.names[model] else return "" end end function module.SpawnPed(model) - if tped.names[model] ~= nil then - if tped.special[model] == nil then + if module.tped.names[model] ~= nil then + if module.tped.special[model] == nil then requestModel(model) loadAllModelsNow() x,y,z = getCharCoordinates(PLAYER_PED) - ped = createChar(tped.type.selected[0]+2,model,x,y,z) + ped = createChar(module.tped.type.index[0]+2,model,x,y,z) markModelAsNoLongerNeeded(model) markCharAsNoLongerNeeded(ped) else if hasSpecialCharacterLoaded(model) then unloadSpecialCharacter(model) end - loadSpecialCharacter(tped.special[model],1) + loadSpecialCharacter(module.tped.special[model],1) loadAllModelsNow() x,y,z = getCharCoordinates(PLAYER_PED) - ped = createChar(tped.type.selected[0]+2,290,x,y,z) - markModelAsNoLongerNeeded(tped.special[model]) + ped = createChar(module.tped.type.index[0]+2,290,x,y,z) + markModelAsNoLongerNeeded(module.tped.special[model]) markCharAsNoLongerNeeded(ped) end printHelpString("Ped ~g~Spawned") @@ -82,13 +77,13 @@ function SetDensity(title,id) if imgui.SliderInt(title,density,0,255) then setZoneGangStrength(getNameOfInfoZone(x,y,z),id,density[0]) clearSpecificZonesToTriggerGangWar() - setGangWarsActive(true) + setGangWarsActive(fped.tped.gang_wars[0]) end end function module.PedMain() - if imgui.BeginTabBar("Ped") then + if imgui.BeginTabBar("Ped") then imgui.Spacing() if imgui.BeginTabItem("Checkbox") then imgui.Columns(2,nil,false) @@ -98,9 +93,9 @@ function module.PedMain() fcommon.CheckBox({ address = 0x96915A,name = "Gang members everywhere"}) fcommon.CheckBox({ address = 0x96913F,name = "Have bounty on head"}) imgui.NextColumn() - fcommon.CheckBox({name = "Gang wars",var = tped.gangs.wars,func = function() - setGangWarsActive(tped.gangs.wars[0]) - if tped.gangs.wars[0] then fcommon.CheatActivated() else fcommon.CheatDeactivated() end + fcommon.CheckBox({name = "Gang wars",var = module.tped.gang_wars,func = function() + setGangWarsActive(module.tped.gang_wars[0]) + if module.tped.gang_wars[0] then fcommon.CheatActivated() else fcommon.CheatDeactivated() end end}) fcommon.CheckBox({ address = 0x969158,name = "Peds attack with rockets"}) fcommon.CheckBox({ address = 0x969175,name = "Peds riot"}) @@ -136,21 +131,19 @@ function module.PedMain() end if imgui.BeginTabItem("Spawn") then imgui.Spacing() - if imgui.Combo("Ped type", tped.type.selected,tped.type.list,#tped.type.names) then end - imgui.Text("List") - imgui.Separator() + if imgui.Combo("Ped type", module.tped.type.index,module.tped.type.array,#module.tped.type.names) then end imgui.Spacing() if imgui.BeginTabBar("Peds list") then if imgui.BeginTabItem("Gang") then if imgui.BeginChild("Gangs list Window") then - fcommon.ShowEntries("Ballas",{102,103,104},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Da nang boys",{121,122,123},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Grove street families",{105,106,107,269,270,271},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Los santos vagos",{108,109,110},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Mafia",{111,112,113,124,125,126,127},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Mountain cloud triad",{117,118,120},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("San fierro rifa",{173,174,175},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Varrios los aztecas",{114,115,116},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Ballas",{102,103,104},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Da nang boys",{121,122,123},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Grove street families",{105,106,107,269,270,271},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Los santos vagos",{108,109,110},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Mafia",{111,112,113,124,125,126,127},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Mountain cloud triad",{117,118,120},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("San fierro rifa",{173,174,175},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Varrios los aztecas",{114,115,116},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) imgui.EndChild() end imgui.EndTabItem() @@ -158,40 +151,40 @@ function module.PedMain() if imgui.BeginTabItem("Civilians") then if imgui.BeginChild("Civillians list Window") then - fcommon.ShowEntries("Antagonist",{290,291,292,293,294,295,296,297,298,299},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Beach",{18,45,138,139,140,154},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Bouncer",{163,164,165,166},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Boxer",{80,81},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Businessman",{17,141,147,148,150,177,227},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Country",{157,158,159,160,161,162,196,197,198,199,200},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Golf",{36,37},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Grl",{190,191,192,193,194,195},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Heckler",{258,259},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Hippie",{72,73},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Jogger",{90,96},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Karate student",{203,204},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Pol",{66,67},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Low class male",{32,33,34,128,132,133,202},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Low class female",{31,129,130,131,151,201},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Mountain biker",{51,52},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Rich male",{14,20,38,43,46,57,59,94,98,185,186,221,228,235,240,295},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Rich female",{9,12,40,53,55,88,91,169,215,216,219,224,231},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Roller blade",{92,99},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Street male",{15,22,44,48,58,60,95,101,142,170,188,222,229,236,241,242},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Street female",{10,13,39,41,54,56,69,76,93,218,225,226,232,233,246,256,257},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Tramp male",{78,79,134,135,136,137,212,213,230,239},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Tramp female",{77,256,257},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Elvis",{82,83,84},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Antagonist",{290,291,292,293,294,295,296,297,298,299},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Beach",{18,45,138,139,140,154},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Bouncer",{163,164,165,166},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Boxer",{80,81},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Businessman",{17,141,147,148,150,177,227},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Country",{157,158,159,160,161,162,196,197,198,199,200},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Golf",{36,37},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Grl",{190,191,192,193,194,195},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Heckler",{258,259},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Hippie",{72,73},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Jogger",{90,96},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Karate student",{203,204},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Pol",{66,67},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Low class male",{32,33,34,128,132,133,202},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Low class female",{31,129,130,131,151,201},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Mountain biker",{51,52},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Rich male",{14,20,38,43,46,57,59,94,98,185,186,221,228,235,240,295},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Rich female",{9,12,40,53,55,88,91,169,215,216,219,224,231},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Roller blade",{92,99},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Street male",{15,22,44,48,58,60,95,101,142,170,188,222,229,236,241,242},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Street female",{10,13,39,41,54,56,69,76,93,218,225,226,232,233,246,256,257},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Tramp male",{78,79,134,135,136,137,212,213,230,239},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Tramp female",{77,256,257},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Elvis",{82,83,84},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) imgui.EndChild() end imgui.EndTabItem() end if imgui.BeginTabItem("Criminals") then if imgui.BeginChild("Criminals list Window") then - fcommon.ShowEntries("Biker",{247,248},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Body guard",{24,25},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Criminal",{21,47,100,143,181,183,184,223,250},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Drug dealer",{28,29,30,154},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Biker",{247,248},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Body guard",{24,25},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Criminal",{21,47,100,143,181,183,184,223,250},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Drug dealer",{28,29,30,154},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) imgui.EndChild() end imgui.EndTabItem() @@ -199,25 +192,25 @@ function module.PedMain() if imgui.BeginTabItem("Jobs") then if imgui.BeginChild("Jobs list Window") then - fcommon.ShowEntries("Cab driver",{182,206,220,234,261,262},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Construction",{27,153,260},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Croupier",{11,171,172},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Clothes seller",{211,217},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Fire dighter",{277,278,279},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Law enforcement",{71,265,266,267,280,281,282,283,284,285,286,287,288},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Life guard",{97,251},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Medic",{274,275,276},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Prostitute",{63,64,75,85,87,152,178,207,237,238,243,245,249},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Shop seller",{205,155,156,167,168,176,177,179,180},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Valet",{189,252,},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) - fcommon.ShowEntries("Worker",{16,50,61,253,255},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Cab driver",{182,206,220,234,261,262},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Construction",{27,153,260},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Croupier",{11,171,172},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Clothes seller",{211,217},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Fire dighter",{277,278,279},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Law enforcement",{71,265,266,267,280,281,282,283,284,285,286,287,288},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Life guard",{97,251},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Medic",{274,275,276},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Prostitute",{63,64,75,85,87,152,178,207,237,238,243,245,249},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Shop seller",{205,155,156,167,168,176,177,179,180},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Valet",{189,252,},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Worker",{16,50,61,253,255},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) imgui.EndChild() end imgui.EndTabItem() end if imgui.BeginTabItem("Misc") then if imgui.BeginChild("Misc list Window") then - fcommon.ShowEntries("Misc",{0,1,2,7,19,23,26,35,49,62,68,70,76,144,145,146,209,210,214,263,268,272},110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true) + fcommon.ShowEntries("Misc",{0,1,2,7,19,23,26,35,49,62,68,70,76,144,145,146,209,210,214,263,268,272},110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true) imgui.EndChild() end imgui.EndTabItem() @@ -225,15 +218,15 @@ function module.PedMain() if imgui.BeginTabItem("Search") then imgui.Spacing() imgui.Columns(1) - if imgui.InputText("Search",tped.search_text,ffi.sizeof(tped.search_text)) then end + if imgui.InputText("Search",module.tped.search_text,ffi.sizeof(module.tped.search_text)) then end imgui.SameLine() imgui.Spacing() - imgui.Text("Foun entries :(" .. ffi.string(tped.search_text) .. ")") + imgui.Text("Foun entries :(" .. ffi.string(module.tped.search_text) .. ")") imgui.Separator() imgui.Spacing() if imgui.BeginChild("Ped entries") then - fcommon.ShowEntries(nil,tped.models,110,55,tped.images,tped.path,".jpg",module.SpawnPed,module.GetName,true,tped.search_text) + fcommon.ShowEntries(nil,module.tped.models,110,55,module.tped.images,module.tped.path,".jpg",module.SpawnPed,module.GetName,true,module.tped.search_text) imgui.EndChild() end imgui.EndTabItem() diff --git a/lib/cheat-menu/modules/player.lua b/lib/cheat-menu/modules/player.lua index e31bc99e..ecfa36a2 100755 --- a/lib/cheat-menu/modules/player.lua +++ b/lib/cheat-menu/modules/player.lua @@ -16,25 +16,23 @@ local module = {} -local tplayer = +module.tplayer = { + aimSkinChanger = imgui.new.bool(fconfig.get('tplayer.aimSkinChanger',false)), + cjBody = imgui.new.int(fconfig.get('tplayer.cjBody',0)), clothes = { - path = tcheatmenu.dir .. "clothes\\", images = {}, + path = tcheatmenu.dir .. "clothes\\", }, god = imgui.new.bool(fconfig.get('tplayer.god',false)), - aimSkinChanger = imgui.new.bool(fconfig.get('tplayer.aimSkinChanger',false)), - neverWanted = imgui.new.bool(fconfig.get('tplayer.neverWanted',false) ), - cjBody = imgui.new.int(fconfig.get('tplayer.cjBody',0)), + never_wanted = imgui.new.bool(false), skins = { - search_text = imgui.new.char[20](), + search_text = imgui.new.char[20](), }, } -module.tplayer = tplayer - function module.ChangePlayerModel(model) if fped.tped.names[model] ~= nil then if fped.tped.special[model] == nil then @@ -60,7 +58,7 @@ function module.ChangePlayerModel(model) if car ~= nil then taskWarpCharIntoCarAsDriver(PLAYER_PED,car) end - printHelpString("Skin changed") + printHelpString("~g~Skin~w~ changed") end end @@ -75,7 +73,7 @@ function HealthArmour() imgui.Columns(1) imgui.PushItemWidth(imgui.GetWindowWidth()-70) - if imgui.InputInt("Set",health) then + if imgui.InputInt("Set ##Health",health) then if health[0] > 100 then setFloatStat(24,health[0]*5.686) @@ -88,17 +86,17 @@ function HealthArmour() imgui.PopItemWidth() imgui.Spacing() - if imgui.Button("Minimum",imgui.ImVec2(fcommon.GetSize(3))) then + if imgui.Button("Minimum ##Health",imgui.ImVec2(fcommon.GetSize(3))) then setFloatStat(24,569.0) setCharHealth(PLAYER_PED,0) end imgui.SameLine() - if imgui.Button("Default",imgui.ImVec2(fcommon.GetSize(3))) then + if imgui.Button("Default ##Health",imgui.ImVec2(fcommon.GetSize(3))) then setFloatStat(24,569.0) setCharHealth(PLAYER_PED,100) end imgui.SameLine() - if imgui.Button("Maximum",imgui.ImVec2(fcommon.GetSize(3))) then + if imgui.Button("Maximum ##Health",imgui.ImVec2(fcommon.GetSize(3))) then setFloatStat(24,1450.0) setCharHealth(PLAYER_PED,255) end @@ -127,7 +125,7 @@ function HealthArmour() imgui.Spacing() imgui.PushItemWidth(imgui.GetWindowWidth()-70) - if imgui.InputInt("Set",armour) then + if imgui.InputInt("Set ##Armour",armour) then if armour[0] < 0 then armour[0] = 0 @@ -141,15 +139,15 @@ function HealthArmour() end imgui.PopItemWidth() imgui.Spacing() - if imgui.Button("Minimum",imgui.ImVec2(fcommon.GetSize(3))) then + if imgui.Button("Minimum ##Armour",imgui.ImVec2(fcommon.GetSize(3))) then damageChar(PLAYER_PED, getCharArmour(PLAYER_PED),true) end imgui.SameLine() - if imgui.Button("Default",imgui.ImVec2(fcommon.GetSize(3))) then + if imgui.Button("Default ##Armour",imgui.ImVec2(fcommon.GetSize(3))) then damageChar(PLAYER_PED, getCharArmour(PLAYER_PED),true) end imgui.SameLine() - if imgui.Button("Maximum",imgui.ImVec2(fcommon.GetSize(3))) then + if imgui.Button("Maximum ##Armour",imgui.ImVec2(fcommon.GetSize(3))) then addArmourToChar(PLAYER_PED, max_armour) end end) @@ -167,7 +165,7 @@ function module.ChangePlayerClothe(name,body_part) givePlayerClothesOutsideShop(PLAYER_HANDLE,0,0,body_part) givePlayerClothesOutsideShop(PLAYER_HANDLE,texture,model,body_part) buildPlayerModel(PLAYER_HANDLE) - printHelpString("Clothe changed") + printHelpString("Clothes changed") end function ShowClothes(label,path,body_part,search_text) @@ -180,7 +178,7 @@ function ShowClothes(label,path,body_part,search_text) table.insert( model_table,#model_table+1,string.sub( file,1,-5)) file = findNextFile(handle) end - fcommon.ShowEntries(label,model_table,100,80,tplayer.clothes.images,path,".jpg",fplayer.ChangePlayerClothe,fplayer.GetClotheName,true,nil,body_part,search_text) + fcommon.ShowEntries(label,model_table,100,80,module.tplayer.clothes.images,path,".jpg",fplayer.ChangePlayerClothe,fplayer.GetClotheName,true,nil,body_part,search_text) end @@ -227,8 +225,8 @@ end function SkinChangerMenu() imgui.Spacing() - fcommon.CheckBox({name = "Aim skin changer",var = tplayer.aimSkinChanger}) - fcommon.InformationTooltip("Aim skin changer tooltip") + fcommon.CheckBox({name = "Aim skin changer",var = module.tplayer.aimSkinChanger}) + fcommon.InformationTooltip("Aim ped with a gun & press enter") imgui.Spacing() if imgui.BeginTabBar("Skins") then @@ -321,15 +319,15 @@ function SkinChangerMenu() if imgui.BeginTabItem('Search') then imgui.Spacing() imgui.Columns(1) - if imgui.InputText("Search",tplayer.skins.search_text,ffi.sizeof(tplayer.skins.search_text)) then end + if imgui.InputText("Search",module.tplayer.skins.search_text,ffi.sizeof(module.tplayer.skins.search_text)) then end imgui.SameLine() imgui.Spacing() - imgui.Text("Found entries :(" .. ffi.string(tplayer.skins.search_text) .. ")") + imgui.Text("Found entries :(" .. ffi.string(module.tplayer.skins.search_text) .. ")") imgui.Separator() imgui.Spacing() if imgui.BeginChild("Skin Entries") then - fcommon.ShowEntries(nil,fped.tped.models,110,55,fped.tped.images,fped.tped.path,".jpg",fplayer.ChangePlayerModel,fped.GetName,true,tplayer.skins.search_text) + fcommon.ShowEntries(nil,fped.tped.models,110,55,fped.tped.images,fped.tped.path,".jpg",fplayer.ChangePlayerModel,fped.GetName,true,module.tplayer.skins.search_text) imgui.EndChild() end imgui.EndTabItem() @@ -347,7 +345,7 @@ function module.PlayerMain() imgui.Spacing() imgui.Columns(2,nil,false) fcommon.CheckBox({ address = 0x969179,name = "Aim while driving"}) - fcommon.CheckBox({ var = tplayer.god,name = "God mode"}) + fcommon.CheckBox({ var = module.tplayer.god,name = "God mode"}) fcommon.CheckBox({ address = 0x969161,name = "Higher cycle jumps"}) fcommon.CheckBox({ address = 0x969178,name = "Infinite ammo"}) fcommon.CheckBox({ address = 0x96916E,name = "Infinite oxygen"}) @@ -359,12 +357,14 @@ function module.PlayerMain() fcommon.CheckBox({ address = 0x96916C,name = "Mega jump"}) fcommon.CheckBox({ address = 0x969173,name = "Mega punch"}) fcommon.CheckBox({ address = 0x969174,name = "Never get hungry"}) - fcommon.CheckBox({name = "Never wanted",var = tplayer.neverWanted,func = function() + + module.tplayer.never_wanted[0] = readMemory(0x969171 ,1,false) + fcommon.CheckBox({name = "Never wanted",var = module.tplayer.never_wanted,func = function() callFunction(0x4396C0,1,0,false) - if tplayer.neverWanted[0] then + if module.tplayer.never_wanted[0] then fcommon.CheatActivated() else - fCheatDeactivated() + fcommon.CheatDeactivated() end end}) @@ -374,17 +374,17 @@ function module.PlayerMain() imgui.Separator() imgui.Spacing() imgui.Text("Body") - if imgui.RadioButtonIntPtr("Fat",tplayer.cjBody,1) then + if imgui.RadioButtonIntPtr("Fat",module.tplayer.cjBody,1) then callFunction(0x439110,1,1,false) fcommon.CheatActivated() end - if imgui.RadioButtonIntPtr("Muscle",tplayer.cjBody,2) then + if imgui.RadioButtonIntPtr("Muscle",module.tplayer.cjBody,2) then -- body not changing to muscular after changing to fat fix callFunction(0x439190,1,1,false) callFunction(0x439150,1,1,false) fcommon.CheatActivated() end - if imgui.RadioButtonIntPtr("Skinny",tplayer.cjBody,3) then + if imgui.RadioButtonIntPtr("Skinny",module.tplayer.cjBody,3) then callFunction(0x439190,1,1,false) fcommon.CheatActivated() end @@ -397,10 +397,9 @@ function module.PlayerMain() fcommon.UpdateStat({ name = "Fat",stat = 21}) HealthArmour() fcommon.UpdateStat({ name = "Lung capacity",stat = 225}) - fcommon.UpdateAddress({name = "Money",address = 0xB7CE50,size = 4,min = 0,max = 9999999}) + fcommon.UpdateAddress({name = "Money",address = 0xB7CE50,size = 4,min = -9999999,max = 9999999}) fcommon.UpdateStat({ name = "Muscle",stat = 23}) fcommon.UpdateStat({ name = "Respect",stat = 68,max = 2450}) - fcommon.UpdateStat({ name = "Sex appeal",stat = 25}) fcommon.UpdateStat({ name = "Stamina",stat = 22}) WantedLevelMenu() @@ -410,11 +409,12 @@ function module.PlayerMain() SkinChangerMenu() imgui.EndTabItem() end - if imgui.BeginTabItem("Clothe") then + if imgui.BeginTabItem("Clothes") then imgui.Spacing() if imgui.Button("Remove clothes",imgui.ImVec2(fcommon.GetSize(1))) then for i=0, 17 do givePlayerClothes(PLAYER_HANDLE,0,0,i) end buildPlayerModel(PLAYER_HANDLE) + printHelpString("Clothes ~r~removed") end imgui.Spacing() @@ -424,24 +424,24 @@ function module.PlayerMain() if imgui.BeginTabItem("List") then if imgui.BeginChild("Clothes") then - ShowClothes("Extras",tplayer.clothes.path .. "Extras\\",17) - ShowClothes("Glasses",tplayer.clothes.path .. "Glasses\\",15) - ShowClothes("Hats",tplayer.clothes.path .. "Hats\\",16) - ShowClothes("Heads",tplayer.clothes.path .. "Heads\\",1) - ShowClothes("Necklaces",tplayer.clothes.path .. "Necklaces\\",13) - ShowClothes("Shirts",tplayer.clothes.path .. "Shirts\\",0) - ShowClothes("Shoes",tplayer.clothes.path .. "Shoes\\",3) - ShowClothes("Tattoos back",tplayer.clothes.path .. "Tattoos back\\",8) - ShowClothes("Tattoos left chest",tplayer.clothes.path .. "Tattoos left chest\\",9) - ShowClothes("Tattoos left lower arm",tplayer.clothes.path .. "Tattoos left lower arm\\",4) - ShowClothes("Tattoos left upper arm",tplayer.clothes.path .. "Tattoos left upper arm\\",5) - ShowClothes("Tattoos lower back",tplayer.clothes.path .. "Tattoos lower back\\",12) - ShowClothes("Tattoos right chest",tplayer.clothes.path .. "Tattoos right chest\\",10) - ShowClothes("Tattoos right lower arm",tplayer.clothes.path .. "Tattoos right lower arm\\",7) - ShowClothes("Tattoos right upper arm",tplayer.clothes.path .. "Tattoos right upper arm\\",6) - ShowClothes("Tattoos stomach",tplayer.clothes.path .. "Tattoos stomach\\",11) - ShowClothes("Trousers",tplayer.clothes.path .. "Trousers\\",2) - ShowClothes("Watches",tplayer.clothes.path .. "Watches\\",14) + ShowClothes("Extras",fplayer.tplayer.clothes.path .. "Extras\\",17) + ShowClothes("Glasses",fplayer.tplayer.clothes.path .. "Glasses\\",15) + ShowClothes("Hats",fplayer.tplayer.clothes.path .. "Hats\\",16) + ShowClothes("Heads",fplayer.tplayer.clothes.path .. "Heads\\",1) + ShowClothes("Necklaces",fplayer.tplayer.clothes.path .. "Necklaces\\",13) + ShowClothes("Shirts",fplayer.tplayer.clothes.path .. "Shirts\\",0) + ShowClothes("Shoes",fplayer.tplayer.clothes.path .. "Shoes\\",3) + ShowClothes("Tattoos back",fplayer.tplayer.clothes.path .. "Tattoos back\\",8) + ShowClothes("Tattoos left chest",fplayer.tplayer.clothes.path .. "Tattoos left chest\\",9) + ShowClothes("Tattoos left lower arm",fplayer.tplayer.clothes.path .. "Tattoos left lower arm\\",4) + ShowClothes("Tattoos left upper arm",fplayer.tplayer.clothes.path .. "Tattoos left upper arm\\",5) + ShowClothes("Tattoos lower back",fplayer.tplayer.clothes.path .. "Tattoos lower back\\",12) + ShowClothes("Tattoos right chest",fplayer.tplayer.clothes.path .. "Tattoos right chest\\",10) + ShowClothes("Tattoos right lower arm",fplayer.tplayer.clothes.path .. "Tattoos right lower arm\\",7) + ShowClothes("Tattoos right upper arm",fplayer.tplayer.clothes.path .. "Tattoos right upper arm\\",6) + ShowClothes("Tattoos stomach",fplayer.tplayer.clothes.path .. "Tattoos stomach\\",11) + ShowClothes("Trousers",fplayer.tplayer.clothes.path .. "Trousers\\",2) + ShowClothes("Watches",fplayer.tplayer.clothes.path .. "Watches\\",14) imgui.EndChild() end imgui.EndTabItem() diff --git a/lib/cheat-menu/modules/tables/$index.lua b/lib/cheat-menu/modules/tables/$index.lua index dc6143a8..1ed9428b 100755 --- a/lib/cheat-menu/modules/tables/$index.lua +++ b/lib/cheat-menu/modules/tables/$index.lua @@ -17,7 +17,6 @@ local module = {} module.animation = require 'cheat-menu.modules.tables.animation' -module.interiors = require 'cheat-menu.modules.tables.interior' module.missions = require 'cheat-menu.modules.tables.mission' module.peds = require 'cheat-menu.modules.tables.ped' module.stats = require 'cheat-menu.modules.tables.stat' diff --git a/lib/cheat-menu/modules/tables/interior.lua b/lib/cheat-menu/modules/tables/interior.lua deleted file mode 100644 index de186dcf..00000000 --- a/lib/cheat-menu/modules/tables/interior.lua +++ /dev/null @@ -1,156 +0,0 @@ --- Cheat Menu - Cheat menu for Grand Theft Auto SanAndreas --- Copyright (C) 2019 Grinch_ - --- This program is free software: you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation, either version 3 of the License, or --- (at your option) any later version. - --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. - --- You should have received a copy of the GNU General Public License --- along with this program. If not, see . - -local module = {} - -module.table = -{ - "ABATOIR", - "AMMUN1", - "CARMOD1", - "FDREST1", - "GF1", - "JETINT", - "LACS1", - "LAHS1B", - "MAFCAS", - "MAFCAS2", - "SMASHTV", - "SVVGHO1", - "SWEETS", - "TSDINER", - "WUZIBET", - "BARBERS", - "BDUPS1", - "CARMOD2", - "CARTER", - "GF2", - "LAHS1A", - "LASTRIP", - "RYDERS", - "SVVGHO2", - "VGHSB1", - "VGHSB3", - "BARBER2", - "BDUPS", - "BIKESCH", - "BROTHL1", - "CARLS", - "CARMOD3", - "CHANGER", - "CSSPRT", - "DRIVES", - "DRIVES2", - "GENOTB", - "GF3", - "LAHSB4", - "OGLOCS", - "PAPER", - "PDOMES", - "PDOMES2", - "POLICE3", - "SEXSHOP", - "S1TEST", - "STRIP2", - "STUDIO", - "TATTO3", - "AMMUN2", - "DINER1", - "DIRBIKE", - "GF4", - "LAHS2A", - "LAHSS6", - "SFHSM2", - "X711S2", - "CSDESGN", - "DINER2", - "FDPIZA", - "GANG", - "GF5", - "GYM1", - "LACRAK", - "LAHSB3", - "MADDOGS", - "MDDOGS", - "SFHSB1", - "SVHOT1", - "VGHSM2", - "AMMUN3", - "AMMUN5", - "BROTHEL", - "GF6", - "GYM2", - "LAHSB1", - "POLICE1", - "RCPLAY", - "REST2", - "SFHSB2", - "SFHSS2", - "SVCUNT", - "SVSFSM", - "X7_11S", - "8TRACK", - "AMMUN4", - "GYM3", - "LAHSB2", - "OFTEST", - "BURHOUS", - "SFHSS1", - "SVLAMD", - "FDCHICK", - "LAHS2B", - "SFHSB3", - "SVGNMT2", - "SVVGMD", - "DESHOUS", - "FDBURG", - "POLICE2", - "SVGNMT1", - "TRICAS", - "SVSFMD", - "VGHSM3", - "X711S3", - "BAR2", - "SVLASM", - "BARBER3", - "MOROOM", - "SVLABIG", - "CSEXL", - "AIRPOR2", - "AIRPORT", - "CSCHP", - "MOTEL1", - "SFHSM1", - "VGHSS1", - "VGSHM2", - "VGSHM3", - "VGSHS2", - "TATTOO", - "X7_11C", - "BAR1", - "DAMIN", - "FDDONUT", - "TATTO2", - "X7_11D", - "ATRIUME", - "ATRIUMX", - "CLOTHGP", - "GENWRHS", - "UFOBAR", - "X7_11B" -} - -return module \ No newline at end of file diff --git a/lib/cheat-menu/modules/teleport.lua b/lib/cheat-menu/modules/teleport.lua index 2cafe47e..65ec19e1 100755 --- a/lib/cheat-menu/modules/teleport.lua +++ b/lib/cheat-menu/modules/teleport.lua @@ -16,20 +16,16 @@ local module = {} --- Teleport table -local tteleport = +module.tteleport = { - shortcut = imgui.new.bool(fconfig.get('tteleport.shortcut',false)), - coords = imgui.new.char[24](fconfig.get('tteleport.coords',"")), - auto_z = imgui.new.bool(fconfig.get('tteleport.auto_z',false)), - insert_coords = imgui.new.bool(fconfig.get('tteleport.insert_coords',false)), - search_text = imgui.new.char[64](""), - coord_name = imgui.new.char[64](""), - show_add_entry_elements = false + auto_z = imgui.new.bool(fconfig.get('tteleport.auto_z',false)), + coords = imgui.new.char[24](fconfig.get('tteleport.coords',"")), + coord_name = imgui.new.char[64](""), + insert_coords = imgui.new.bool(fconfig.get('tteleport.insert_coords',false)), + search_text = imgui.new.char[64](""), + shortcut = imgui.new.bool(fconfig.get('tteleport.shortcut',false)), } -module.tteleport = tteleport - local coordinates = fcommon.LoadJson("coordinate") @@ -39,7 +35,7 @@ function module.Teleport(x, y, z,interior_id) _, x,y,z = getTargetBlipCoordinates() interior_id = 0 end - if tteleport.auto_z[0] then + if module.tteleport.auto_z[0] then z = getGroundZFor3dCoord(x, y, z) end @@ -68,28 +64,29 @@ end function module.TeleportMain() - if imgui.BeginTabBar("Teleport") then + if imgui.BeginTabBar("Teleport") then + if imgui.BeginTabItem("Teleport") then imgui.Spacing() imgui.Columns(2,nil,false) - fcommon.CheckBox({name = "Auto Z coordinates",var = fteleport.tteleport.auto_z,help_text ="The script would get Z coord automatically", }) - fcommon.CheckBox({name = "Insert coordinates",var = fteleport.tteleport.insert_coords,help_text ="Insert current coordinates"}) + fcommon.CheckBox({name = "Auto Z coordinates",var = module.tteleport.auto_z,help_text ="Script would get Z coord automatically\nCauses bugs sometimes", }) + fcommon.CheckBox({name = "Insert coordinates",var = module.tteleport.insert_coords,help_text ="Insert current coordinates"}) imgui.NextColumn() - fcommon.CheckBox({name = "Quick teleport",var = fteleport.tteleport.shortcut,help_text ="Teleport to marker using (X + Y) key combinartion"}) + fcommon.CheckBox({name = "Quick teleport",var = module.tteleport.shortcut,help_text ="Teleport to marker using (X + Y) key combinartion"}) imgui.Columns(1) - if imgui.InputText("Coordinates",tteleport.coords,ffi.sizeof(tteleport.coords)) then end + if imgui.InputText("Coordinates",module.tteleport.coords,ffi.sizeof(module.tteleport.coords)) then end - if tteleport.insert_coords[0] then + if module.tteleport.insert_coords[0] then local x,y,z = getCharCoordinates(PLAYER_PED) - imgui.StrCopy(tteleport.coords,string.format("%d, %d, %d", math.floor(x) , math.floor(y) , math.floor(z))) + imgui.StrCopy(module.tteleport.coords,string.format("%d, %d, %d", math.floor(x) , math.floor(y) , math.floor(z))) end fcommon.InformationTooltip("Enter XYZ coordinates.\nFormat : X,Y,Z") imgui.Dummy(imgui.ImVec2(0,10)) if imgui.Button("Teleport to coord",imgui.ImVec2(fcommon.GetSize(2))) then - local x,y,z = (ffi.string(tteleport.coords)):match("([^,]+),([^,]+),([^,]+)") + local x,y,z = (ffi.string(module.tteleport.coords)):match("([^,]+),([^,]+),([^,]+)") module.Teleport(x, y, z,0) end imgui.SameLine() @@ -101,20 +98,20 @@ function module.TeleportMain() if imgui.BeginTabItem("Search") then imgui.Spacing() imgui.Columns(1) - if imgui.InputText("Search",tteleport.search_text,ffi.sizeof(tteleport.search_text)) then end + if imgui.InputText("Search",module.tteleport.search_text,ffi.sizeof(module.tteleport.search_text)) then end fcommon.InformationTooltip("Right click over any of these entries to remove them.") imgui.SameLine() imgui.Spacing() - imgui.Text("Found entries :(" .. ffi.string(tteleport.search_text) .. ")") + imgui.Text("Found entries :(" .. ffi.string(module.tteleport.search_text) .. ")") imgui.Separator() imgui.Spacing() if imgui.BeginChild("Teleport entries") then for name, coord in pairs(coordinates) do local interior_id, x, y, z = coord:match("([^, ]+), ([^, ]+), ([^, ]+), ([^, ]+)") - if ffi.string(tteleport.search_text) == "" then + if ffi.string(module.tteleport.search_text) == "" then ShowTeleportEntry(name, tonumber(x), tonumber(y), tonumber(z),interior_id) else - if string.upper(name):find(string.upper(ffi.string(tteleport.search_text))) ~= nil then + if string.upper(name):find(string.upper(ffi.string(module.tteleport.search_text))) ~= nil then ShowTeleportEntry(name, tonumber(x), tonumber(y), tonumber(z),interior_id) end end @@ -126,20 +123,20 @@ function module.TeleportMain() if imgui.BeginTabItem("Custom") then imgui.Spacing() imgui.Columns(1) - if imgui.InputText("Location name",tteleport.coord_name,ffi.sizeof(tteleport.coords)) then end - if imgui.InputText("Coordinates",tteleport.coords,ffi.sizeof(tteleport.coords)) then end + if imgui.InputText("Location name",module.tteleport.coord_name,ffi.sizeof(module.tteleport.coords)) then end + if imgui.InputText("Coordinates",module.tteleport.coords,ffi.sizeof(module.tteleport.coords)) then end fcommon.InformationTooltip("Enter XYZ coordinates.\nFormat : X,Y,Z") - if tteleport.insert_coords[0] then + if module.tteleport.insert_coords[0] then local x,y,z = getCharCoordinates(PLAYER_PED) - imgui.StrCopy(tteleport.coords,string.format("%d, %d, %d", math.floor(x) , math.floor(y) , math.floor(z))) + imgui.StrCopy(module.tteleport.coords,string.format("%d, %d, %d", math.floor(x) , math.floor(y) , math.floor(z))) end imgui.Spacing() if imgui.Button("Save location",imgui.ImVec2(fcommon.GetSize(1))) then - if ffi.string(tteleport.coord_name) == "" then - imgui.StrCopy(tteleport.coord_name,"Untitled") + if ffi.string(module.tteleport.coord_name) == "" then + imgui.StrCopy(module.tteleport.coord_name,"Untitled") end - coordinates[ffi.string(tteleport.coord_name)] = string.format("%d, %s",getActiveInterior(), ffi.string(tteleport.coords)) + coordinates[ffi.string(module.tteleport.coord_name)] = string.format("%d, %s",getActiveInterior(), ffi.string(module.tteleport.coords)) fcommon.SaveJson("coordinate",coordinates) coordinates = fcommon.LoadJson("coordinate") printHelpString("Entry ~g~added") diff --git a/lib/cheat-menu/modules/update.lua b/lib/cheat-menu/modules/update.lua index 3f8ff2bb..3f83e9dd 100755 --- a/lib/cheat-menu/modules/update.lua +++ b/lib/cheat-menu/modules/update.lua @@ -17,6 +17,7 @@ local module = {} function module.CheckUpdates() + require("socket") local https = require("ssl.https") @@ -28,36 +29,24 @@ function module.CheckUpdates() local body, code, headers, status = https.request(link) - tcheatmenu.update.version_number = tonumber(body:match("script_version_number%((%d+)%)")) - - if not body or tcheatmenu.update.version_number == nil then + if not body then print(code) print(status) printHelpString("~r~Failed~w~ to check for update") else - if tcheatmenu.update.version_number ~= script.this.version_num then - tcheatmenu.update.available = true + tcheatmenu.update.version_number = tonumber(body:match("script_version_number%((%d+)%)")) + if tcheatmenu.update.version_number ~= nil then + if tcheatmenu.update.version_number ~= script.this.version_num then + tcheatmenu.update.available = true + else + printHelpString("Using latest version") + end else - printHelpString("Using ~g~latest~w~ version") + printHelpString("Couldn't connect to github") end end end -function module.DownloadUpdates() - require("socket") - local https = require("ssl.https") - local one, code, headers, status = https.request { - url = "https://github.com/inanahammad/Cheat-Menu/archive/master.zip", - protocol = "TLSv1.3", - options = "all", - verify = "none", - } - if not body then error(code) return end - local f = assert(io.open('master.zip', 'wb')) -- open in "binary" mode - f:write(body) - f:close() -end - return module \ No newline at end of file diff --git a/lib/cheat-menu/modules/vehicle.lua b/lib/cheat-menu/modules/vehicle.lua index 7c5e96da..0b0c33c4 100755 --- a/lib/cheat-menu/modules/vehicle.lua +++ b/lib/cheat-menu/modules/vehicle.lua @@ -15,29 +15,25 @@ -- along with this program. If not, see . local module = {} -local tvehicles = + +module.tvehicle = { - door_menu_button = imgui.new.int(0), - paintjobs = + aircraft = { - path = tcheatmenu.dir .. "vehicles\\paintjobs\\", - search_text = imgui.new.char[20](), - images = {}, - texture = nil + camera = imgui.new.bool(fconfig.get('tvehicle.aircraft.camera',false)), + index = fconfig.get('tvehicle.aircraft.index',2), + spawn_in_air = imgui.new.bool(fconfig.get('tvehicle.aircraft.spawn_in_air',true)), + zoom = { -5.0,-15.0,-20.0,-30.0,-40.0}, }, color = { - rgb = imgui.new.float[3](0.0,0.0,0.0), default = -1, + rgb = imgui.new.float[3](0.0,0.0,0.0), }, components = { - saved = false, - path = tcheatmenu.dir .. "vehicles\\components\\", images = {}, - value = imgui.new.int(0), list = {}, - selected = imgui.new.int(0), names = { "Default", @@ -60,7 +56,10 @@ local tvehicles = "windscreen_dummy", "boot_dummy" }, - + path = tcheatmenu.dir .. "vehicles\\components\\", + saved = false, + selected = imgui.new.int(0), + value = imgui.new.int(0), }, doors = { @@ -72,41 +71,37 @@ local tvehicles = "Rear right door", "All", }, - - aircraft = - { - camera = imgui.new.bool(fconfig.get('tvehicles.aircraft.camera',false)), - spawn_in_air = imgui.new.bool(fconfig.get('tvehicles.aircraft.spawn_in_air',true)), - zoom = { -5.0,-15.0,-20.0,-30.0,-40.0}, - index = fconfig.get('tvehicles.aircraft.index',2), - }, - search_text = imgui.new.char[20](), + door_menu_button = imgui.new.int(0), + heavy = imgui.new.bool(fconfig.get('tvehicle.heavy',false)), + hydraulic = imgui.new.bool(false), + images = {}, + lights = imgui.new.bool(fconfig.get('tvehicle.lights',false)), + lock_doors = imgui.new.bool(false), + lock_speed = imgui.new.bool(fconfig.get('tvehicle.lock_speed',false)), models = {}, - lights = + paintjobs = { - all = imgui.new.bool(fconfig.get('tvehicles.lights.all',false)), + path = tcheatmenu.dir .. "vehicles\\paintjobs\\", + search_text = imgui.new.char[20](), + images = {}, + texture = nil }, - lock_doors = imgui.new.bool(false), - images = {}, - quick_spawn = imgui.new.bool(fconfig.get('tvehicles.quick_spawn',false)), - spawn_inside = imgui.new.bool(fconfig.get('tvehicles.spawn_inside',true)), + no_damage = imgui.new.bool(fconfig.get('tvehicle.no_damage',false)), path = tcheatmenu.dir .. "vehicles\\", - visual_damage = imgui.new.bool(fconfig.get('tvehicles.visual_damage',false)), - heavy = imgui.new.bool(fconfig.get('tvehicles.heavy',false)), - hydraulic = imgui.new.bool(false), - no_damage = imgui.new.bool(fconfig.get('tvehicles.no_damage',false)), - stay_on_bike = imgui.new.bool(fconfig.get('tvehicles.stay_on_bike',false)), - speed = imgui.new.int(fconfig.get('tvehicles.speed',0)), - lock_speed = imgui.new.bool(fconfig.get('tvehicles.lock_speed',false)), + quick_spawn = imgui.new.bool(fconfig.get('tvehicle.quick_spawn',false)), + search_text = imgui.new.char[20](), + spawn_inside = imgui.new.bool(fconfig.get('tvehicle.spawn_inside',true)), + speed = imgui.new.int(fconfig.get('tvehicle.speed',0)), + stay_on_bike = imgui.new.bool(fconfig.get('tvehicle.stay_on_bike',false)), + visual_damage = imgui.new.bool(fconfig.get('tvehicle.visual_damage',false)), } -module.tvehicles = tvehicles -tvehicles.components.list = imgui.new['const char*'][#tvehicles.components.names](tvehicles.components.names) +module.tvehicle.components.list = imgui.new['const char*'][#module.tvehicle.components.names](module.tvehicle.components.names) module.IsValidModForVehicle = ffi.cast('bool(*)(int model, int cvehicle)',0x49B010) for i = 401,611,1 do - table.insert(tvehicles.models,i) + table.insert(module.tvehicle.models,i) end function module.CBaseModelInfo(name) @@ -133,7 +128,7 @@ function module.GiveVehicleToPlayer(model) deleteCar(car) end - if tvehicles.aircraft.spawn_in_air[0] and (isThisModelAHeli(model) or isThisModelAPlane(model)) then + if module.tvehicle.aircraft.spawn_in_air[0] and (isThisModelAHeli(model) or isThisModelAPlane(model)) then z = 400 end requestModel(model) @@ -141,7 +136,7 @@ function module.GiveVehicleToPlayer(model) car = createCar(model,x,y,z) markModelAsNoLongerNeeded(model) heading = getCharHeading(PLAYER_PED) - if tvehicles.spawn_inside[0] then + if module.tvehicle.spawn_inside[0] then warpCharIntoCar(PLAYER_PED,car) end setCarHeading(car,heading) @@ -160,7 +155,7 @@ function module.AddComponentToVehicle(component) requestVehicleMod(component) loadAllModelsNow() addVehicleMod(car,component) - fcommon.CheatActivated() + printHelpString("Component ~g~added") markModelAsNoLongerNeeded(component) end end @@ -176,13 +171,13 @@ function DoorMenu(func) else doors = 3 end - if imgui.Button(tvehicles.doors[7],imgui.ImVec2(fcommon.GetSize(1))) then + if imgui.Button(module.tvehicle.doors[7],imgui.ImVec2(fcommon.GetSize(1))) then for i=0,doors,1 do func(vehicle,i) end end for i=0,doors,1 do - if imgui.Button(tvehicles.doors[i+1],imgui.ImVec2(fcommon.GetSize(2))) then + if imgui.Button(module.tvehicle.doors[i+1],imgui.ImVec2(fcommon.GetSize(2))) then func(vehicle,i) end if i%2 ~= 1 then @@ -209,22 +204,22 @@ function module.ForEachCarComponent(func) end function module.AircraftCamera() - if tvehicles.aircraft.camera[0] == true then + if module.tvehicle.aircraft.camera[0] == true then while isCharInAnyHeli(PLAYER_PED) or isCharInAnyPlane(PLAYER_PED) do - if tvehicles.aircraft.camera[0] == false then break end + if module.tvehicle.aircraft.camera[0] == false then break end local vehicle = storeCarCharIsInNoSave(PLAYER_PED) local roll = getCarRoll(vehicle) - attachCameraToVehicle(vehicle,0.0,tvehicles.aircraft.zoom[tvehicles.aircraft.index],2.5,0.0,0.0,0.0,(roll*-1),2) + attachCameraToVehicle(vehicle,0.0,module.tvehicle.aircraft.zoom[module.tvehicle.aircraft.index],2.5,0.0,0.0,0.0,(roll*-1),2) if isKeyDown(tkeys.aircraft_zoom) then while isKeyDown(tkeys.aircraft_zoom) do wait(0) end - tvehicles.aircraft.index = tvehicles.aircraft.index + 1 - if tvehicles.aircraft.index > #tvehicles.aircraft.zoom then - tvehicles.aircraft.index = 0 + module.tvehicle.aircraft.index = module.tvehicle.aircraft.index + 1 + if module.tvehicle.aircraft.index > #module.tvehicle.aircraft.zoom then + module.tvehicle.aircraft.index = 0 end end wait(0) @@ -243,17 +238,17 @@ end function module.ApplyTexture(filename) lua_thread.create(function() - local fullpath = tvehicles.paintjobs.path .. filename .. ".png" - tvehicles.paintjobs.texture = assert(mad.load_png_texture(fullpath)) + local fullpath = module.tvehicle.paintjobs.path .. filename .. ".png" + module.tvehicle.paintjobs.texture = assert(mad.load_png_texture(fullpath)) module.ForEachCarComponent(function(mat,comp,car) local r, g, b, old_a = mat:get_color() - if tvehicles.components.selected[0] == 0 and (r == 0x3C and g == 0xFF and b == 0x00) or (r == 0xFF and g == 0x00 and b == 0xAF) then - mat:set_texture(tvehicles.paintjobs.texture) + if module.tvehicle.components.selected[0] == 0 and (r == 0x3C and g == 0xFF and b == 0x00) or (r == 0xFF and g == 0x00 and b == 0xAF) then + mat:set_texture(module.tvehicle.paintjobs.texture) end - if comp.name == tvehicles.components.names[tvehicles.components.selected[0]+1] then - mat:set_texture(tvehicles.paintjobs.texture) + if comp.name == module.tvehicle.components.names[module.tvehicle.components.selected[0]+1] then + mat:set_texture(module.tvehicle.paintjobs.texture) end - tvehicles.color.default = getCarColours(car) + module.tvehicle.color.default = getCarColours(car) end) end,filename) end @@ -287,10 +282,10 @@ function module.VehicleMain() fcommon.CheckBox({ address = 0x96914F,name = "Aggressive drivers"}) fcommon.CheckBox({ address = 0x969153,name = "Boats fly"}) fcommon.CheckBox({ address = 0x969160,name = "Cars fly"}) - fcommon.CheckBox({name = "Car heavy",var = tvehicles.heavy}) - if imgui.Checkbox("Car hydraulic",tvehicles.hydraulic) then + fcommon.CheckBox({name = "Car heavy",var = module.tvehicle.heavy}) + if imgui.Checkbox("Car hydraulic",module.tvehicle.hydraulic) then if isCharInAnyCar(PLAYER_PED) then - if module.tvehicles.hydraulic[0] then + if module.tvehicle.hydraulic[0] then setCarHydraulics(car,true) fcommon.CheatActivated() else @@ -300,7 +295,7 @@ function module.VehicleMain() end end fcommon.CheckBox({ address = 0x96917A,name = "Decreased traffic"}) - fcommon.CheckBox({name = "Dont fall off bike",var = tvehicles.stay_on_bike}) + fcommon.CheckBox({name = "Dont fall off bike",var = module.tvehicle.stay_on_bike}) fcommon.CheckBox({ address = 0x969152,name = "Drive on water"}) fcommon.CheckBox({ address = 0x969166,name = "Float away when hit"}) fcommon.CheckBox({ address = 0x96914E,name = "Green traffic lights"}) @@ -309,11 +304,11 @@ function module.VehicleMain() fcommon.CheckBox({ address = 0x969165,name = "Have nitro"}) - fcommon.CheckBox({name = "Lights on",var = tvehicles.lights.all,func = + fcommon.CheckBox({name = "Lights on",var = module.tvehicle.lights,func = function() if isCharInAnyCar(PLAYER_PED) then car = storeCarCharIsInNoSave(PLAYER_PED) - if module.tvehicles.lights.all[0] == true then + if module.tvehicle.lights[0] == true then forceCarLights(car,2) addOneOffSound(x,y,z,1052) else @@ -323,7 +318,7 @@ function module.VehicleMain() end end}) - fcommon.CheckBox({name = "Lock doors",var = tvehicles.lock_doors,func = + fcommon.CheckBox({name = "Lock doors",var = module.tvehicle.lock_doors,func = function() if isCharInAnyCar(PLAYER_PED) then if getCarDoorLockStatus(car) == 4 then @@ -336,9 +331,9 @@ function module.VehicleMain() end end}) - fcommon.CheckBox({name = "New aircraft camera",var = tvehicles.aircraft.camera}) - fcommon.CheckBox({name = "No damage",var = tvehicles.no_damage}) - fcommon.CheckBox({name = "No visual damage",var = tvehicles.visual_damage}) + fcommon.CheckBox({name = "New aircraft camera",var = module.tvehicle.aircraft.camera}) + fcommon.CheckBox({name = "No damage",var = module.tvehicle.no_damage}) + fcommon.CheckBox({name = "No visual damage",var = module.tvehicle.visual_damage}) fcommon.CheckBox({ address = 0x96914C,name = "Perfect handling"}) fcommon.CheckBox({ address = 0x969164,name = "Tank mode"}) fcommon.CheckBox({ address = 0x96914B,name = "Wheels only"}) @@ -364,19 +359,19 @@ function module.VehicleMain() if isCharInAnyCar(PLAYER_PED) and not (isCharOnAnyBike(PLAYER_PED) or isCharInAnyBoat(PLAYER_PED) or isCharInAnyHeli(PLAYER_PED) or isCharInAnyPlane(PLAYER_PED)) then - if imgui.RadioButtonIntPtr("Damage", tvehicles.door_menu_button,0) then end + if imgui.RadioButtonIntPtr("Damage", module.tvehicle.door_menu_button,0) then end imgui.SameLine() - if imgui.RadioButtonIntPtr("Fix", tvehicles.door_menu_button,1) then end + if imgui.RadioButtonIntPtr("Fix", module.tvehicle.door_menu_button,1) then end imgui.SameLine() - if imgui.RadioButtonIntPtr("Open", tvehicles.door_menu_button,2) then end + if imgui.RadioButtonIntPtr("Open", module.tvehicle.door_menu_button,2) then end imgui.SameLine() - if imgui.RadioButtonIntPtr("Pop", tvehicles.door_menu_button,3) then end + if imgui.RadioButtonIntPtr("Pop", module.tvehicle.door_menu_button,3) then end imgui.Spacing() imgui.Separator() imgui.Spacing() - if tvehicles.door_menu_button[0] == 0 then - if tvehicles.visual_damage[0] == false then + if module.tvehicle.door_menu_button[0] == 0 then + if module.tvehicle.visual_damage[0] == false then DoorMenu(function(vehicle,door) damageCarDoor(vehicle,door) end) @@ -384,17 +379,17 @@ function module.VehicleMain() imgui.Text("No visual damage enabled") end end - if tvehicles.door_menu_button[0] == 1 then + if module.tvehicle.door_menu_button[0] == 1 then DoorMenu(function(vehicle,door) fixCarDoor(vehicle,door) end) end - if tvehicles.door_menu_button[0] == 2 then + if module.tvehicle.door_menu_button[0] == 2 then DoorMenu(function(vehicle,door) openCarDoor(vehicle,door) end) end - if tvehicles.door_menu_button[0] == 3 then + if module.tvehicle.door_menu_button[0] == 3 then DoorMenu(function(vehicle,door) popCarDoor(vehicle,door,true) end) @@ -430,18 +425,18 @@ function module.VehicleMain() end) fcommon.DropDownMenu("Speed",function() imgui.Columns(2,nil,false) - fcommon.CheckBox({name = "Lock speed",var = tvehicles.lock_speed}) + fcommon.CheckBox({name = "Lock speed",var = module.tvehicle.lock_speed}) imgui.NextColumn() imgui.Columns(1) - if imgui.InputInt("Set",tvehicles.speed) then + if imgui.InputInt("Set",module.tvehicle.speed) then end if imgui.Button("Set speed",imgui.ImVec2(fcommon.GetSize(2))) then - if tvehicles.speed[0] > 500 then - tvehicles.speed[0] = 500 + if module.tvehicle.speed[0] > 500 then + module.tvehicle.speed[0] = 500 end if isCharInAnyCar(PLAYER_PED) then car = storeCarCharIsInNoSave(PLAYER_PED) - setCarForwardSpeed(car,tvehicles.speed[0]) + setCarForwardSpeed(car,module.tvehicle.speed[0]) end end imgui.SameLine() @@ -462,11 +457,11 @@ function module.VehicleMain() imgui.Spacing() imgui.Columns(2,nil,false) - fcommon.CheckBox({name = "Quick vehicle",var = tvehicles.quick_spawn,help_text = "Vehicle can be spawned from quick spawner using (Left Ctrl + Q). \n\nControls:\nEnter : Stop reading key press\nDelete : Erase full string\nBackspace : Erase last character"}) - fcommon.CheckBox({name = "Spawn inside",var = tvehicles.spawn_inside,help_text = "Spawn inside vehicle as driver"}) + fcommon.CheckBox({name = "Quick vehicle",var = module.tvehicle.quick_spawn,help_text = "Vehicle can be spawned from quick spawner using (Left Ctrl + Q). \n\nControls:\nEnter : Stop reading key press\nDelete : Erase full string\nBackspace : Erase last character"}) + fcommon.CheckBox({name = "Spawn inside",var = module.tvehicle.spawn_inside,help_text = "Spawn inside vehicle as driver"}) imgui.NextColumn() - fcommon.CheckBox({name = "Spawn aircraft in air",var = tvehicles.aircraft.spawn_in_air}) + fcommon.CheckBox({name = "Spawn aircraft in air",var = module.tvehicle.aircraft.spawn_in_air}) imgui.Columns(1) imgui.Spacing() @@ -475,24 +470,24 @@ function module.VehicleMain() if imgui.BeginTabItem("List") then if imgui.BeginChild("Vehicles") then - fcommon.ShowEntries("Airplanes",{592,577,511,512,593,520,553,476,519,460,513},75,100,tvehicles.images,tvehicles.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) - fcommon.ShowEntries("Helicopters",{548,425,417,487,488,497,563,447,469},75,100,tvehicles.images,tvehicles.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) - fcommon.ShowEntries("Boats",{472,473,493,595,484,430,453,452,446,454},75,100,tvehicles.images,tvehicles.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) - fcommon.ShowEntries("Bikes",{581,509,481,462,521,463,510,522,461,448,468,586},75,100,tvehicles.images,tvehicles.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) - fcommon.ShowEntries("2 door & compact cars",{602,496,401,518,527,589,419,587,533,526,474,545,517,410,600,436,439,549,491},75,100,tvehicles.images,tvehicles.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) - fcommon.ShowEntries("4 door & luxury cars",{445,604,507,585,466,492,546,551,516,467,426,547,405,580,409,550,566,540,421,529},75,100,tvehicles.images,tvehicles.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) - fcommon.ShowEntries("Civil service",{485,431,438,437,574,420,525,408,552},75,100,tvehicles.images,tvehicles.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) - fcommon.ShowEntries("Government vehicles",{416,433,427,490,528,407,544,523,470,596,598,599,597,432,601,428},75,100,tvehicles.images,tvehicles.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) - fcommon.ShowEntries("Heavy & utility truck",{499,609,498,524,532,578,486,406,573,455,403,423,414,443,515,514,531,456,588},75,100,tvehicles.images,tvehicles.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) - fcommon.ShowEntries("Light trucks & vans",{459,422,482,605,530,418,572,582,413,440,543,583,478,554},75,100,tvehicles.images,tvehicles.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) - fcommon.ShowEntries("SUVs & wagons",{579,400,404,489,505,479,442,458},75,100,tvehicles.images,tvehicles.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) - fcommon.ShowEntries("Low riders",{536,575,534,567,535,576,412},75,100,tvehicles.images,tvehicles.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) - fcommon.ShowEntries("Muscle cars",{402,542,603,475},75,100,tvehicles.images,tvehicles.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) - fcommon.ShowEntries("RC vehicles",{441,464,594,501,465,564},75,100,tvehicles.images,tvehicles.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) - fcommon.ShowEntries("Recreational",{568,424,504,457,483,508,571,500,444,556,557,471,495,539},75,100,tvehicles.images,tvehicles.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) - fcommon.ShowEntries("Street racers",{429,541,542,415,480,562,565,434,494,502,503,411,559,561,560,506,451,558,555,477},75,100,tvehicles.images,tvehicles.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) - fcommon.ShowEntries("Trailers",{435,450,584,591,606,607,608,610,611},75,100,tvehicles.images,tvehicles.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) - fcommon.ShowEntries("Trains",{449,537,538,569,570,590},75,100,tvehicles.images,tvehicles.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) + fcommon.ShowEntries("Airplanes",{592,577,511,512,593,520,553,476,519,460,513},75,100,module.tvehicle.images,module.tvehicle.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) + fcommon.ShowEntries("Helicopters",{548,425,417,487,488,497,563,447,469},75,100,module.tvehicle.images,module.tvehicle.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) + fcommon.ShowEntries("Boats",{472,473,493,595,484,430,453,452,446,454},75,100,module.tvehicle.images,module.tvehicle.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) + fcommon.ShowEntries("Bikes",{581,509,481,462,521,463,510,522,461,448,468,586},75,100,module.tvehicle.images,module.tvehicle.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) + fcommon.ShowEntries("2 door & compact cars",{602,496,401,518,527,589,419,587,533,526,474,545,517,410,600,436,439,549,491},75,100,module.tvehicle.images,module.tvehicle.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) + fcommon.ShowEntries("4 door & luxury cars",{445,604,507,585,466,492,546,551,516,467,426,547,405,580,409,550,566,540,421,529},75,100,module.tvehicle.images,module.tvehicle.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) + fcommon.ShowEntries("Civil service",{485,431,438,437,574,420,525,408,552},75,100,module.tvehicle.images,module.tvehicle.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) + fcommon.ShowEntries("Government vehicles",{416,433,427,490,528,407,544,523,470,596,598,599,597,432,601,428},75,100,module.tvehicle.images,module.tvehicle.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) + fcommon.ShowEntries("Heavy & utility truck",{499,609,498,524,532,578,486,406,573,455,403,423,414,443,515,514,531,456,588},75,100,module.tvehicle.images,module.tvehicle.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) + fcommon.ShowEntries("Light trucks & vans",{459,422,482,605,530,418,572,582,413,440,543,583,478,554},75,100,module.tvehicle.images,module.tvehicle.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) + fcommon.ShowEntries("SUVs & wagons",{579,400,404,489,505,479,442,458},75,100,module.tvehicle.images,module.tvehicle.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) + fcommon.ShowEntries("Low riders",{536,575,534,567,535,576,412},75,100,module.tvehicle.images,module.tvehicle.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) + fcommon.ShowEntries("Muscle cars",{402,542,603,475},75,100,module.tvehicle.images,module.tvehicle.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) + fcommon.ShowEntries("RC vehicles",{441,464,594,501,465,564},75,100,module.tvehicle.images,module.tvehicle.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) + fcommon.ShowEntries("Recreational",{568,424,504,457,483,508,571,500,444,556,557,471,495,539},75,100,module.tvehicle.images,module.tvehicle.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) + fcommon.ShowEntries("Street racers",{429,541,542,415,480,562,565,434,494,502,503,411,559,561,560,506,451,558,555,477},75,100,module.tvehicle.images,module.tvehicle.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) + fcommon.ShowEntries("Trailers",{435,450,584,591,606,607,608,610,611},75,100,module.tvehicle.images,module.tvehicle.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) + fcommon.ShowEntries("Trains",{449,537,538,569,570,590},75,100,module.tvehicle.images,module.tvehicle.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true) imgui.EndChild() end imgui.EndTabItem() @@ -500,15 +495,15 @@ function module.VehicleMain() if imgui.BeginTabItem("Search") then imgui.Spacing() imgui.Columns(1) - if imgui.InputText("Search",tvehicles.search_text,ffi.sizeof(tvehicles.search_text)) then end + if imgui.InputText("Search",module.tvehicle.search_text,ffi.sizeof(module.tvehicle.search_text)) then end imgui.SameLine() imgui.Spacing() - imgui.Text("Found entries :(" .. ffi.string(tvehicles.search_text) .. ")") + imgui.Text("Found entries :(" .. ffi.string(module.tvehicle.search_text) .. ")") imgui.Separator() imgui.Spacing() if imgui.BeginChild("Vehicle entries") then - fcommon.ShowEntries(nil,tvehicles.models,75,100,tvehicles.images,tvehicles.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true,tvehicles.search_text) + fcommon.ShowEntries(nil,module.tvehicle.models,75,100,module.tvehicle.images,module.tvehicle.path,".jpg", module.GiveVehicleToPlayer,getNameOfVehicleModel,true,module.tvehicle.search_text) imgui.EndChild() end imgui.EndTabItem() @@ -520,51 +515,51 @@ function module.VehicleMain() if imgui.BeginTabItem("Paint") then imgui.Spacing() imgui.Columns(1) - if imgui.InputText("Search",tvehicles.paintjobs.search_text,ffi.sizeof(tvehicles.paintjobs.search_text)) then end + if imgui.InputText("Search",module.tvehicle.paintjobs.search_text,ffi.sizeof(module.tvehicle.paintjobs.search_text)) then end imgui.SameLine() imgui.Spacing() - imgui.Combo("Component",tvehicles.components.selected,tvehicles.components.list,#tvehicles.components.names) - if imgui.ColorEdit3("Color",tvehicles.color.rgb) then + imgui.Combo("Component",module.tvehicle.components.selected,module.tvehicle.components.list,#module.tvehicle.components.names) + if imgui.ColorEdit3("Color",module.tvehicle.color.rgb) then module.ForEachCarComponent(function(mat,comp,car) local r, g, b, old_a = mat:get_color() fixCar(car) - if tvehicles.components.selected[0] == 0 and (r == 0x3C and g == 0xFF and b == 0x00) or (r == 0xFF and g == 0x00 and b == 0xAF) then - mat:set_color(tvehicles.color.rgb[0]*255, tvehicles.color.rgb[1]*255, tvehicles.color.rgb[2]*255, 255.0) - if tvehicles.paintjobs.texture ~= nil then - mat:set_texture(tvehicles.paintjobs.texture) + if module.tvehicle.components.selected[0] == 0 and (r == 0x3C and g == 0xFF and b == 0x00) or (r == 0xFF and g == 0x00 and b == 0xAF) then + mat:set_color(module.tvehicle.color.rgb[0]*255, module.tvehicle.color.rgb[1]*255, module.tvehicle.color.rgb[2]*255, 255.0) + if module.tvehicle.paintjobs.texture ~= nil then + mat:set_texture(module.tvehicle.paintjobs.texture) end end - if comp.name == tvehicles.components.names[tvehicles.components.selected[0]+1] then - mat:set_color(tvehicles.color.rgb[0]*255, tvehicles.color.rgb[1]*255, tvehicles.color.rgb[2]*255, 255.0) - if tvehicles.paintjobs.texture ~= nil then - mat:set_texture(tvehicles.paintjobs.texture) + if comp.name == module.tvehicle.components.names[module.tvehicle.components.selected[0]+1] then + mat:set_color(module.tvehicle.color.rgb[0]*255, module.tvehicle.color.rgb[1]*255, module.tvehicle.color.rgb[2]*255, 255.0) + if module.tvehicle.paintjobs.texture ~= nil then + mat:set_texture(module.tvehicle.paintjobs.texture) end end - tvehicles.color.default = getCarColours(car) + module.tvehicle.color.default = getCarColours(car) end) end imgui.Spacing() if imgui.Button("Reset color",imgui.ImVec2(fcommon.GetSize(2))) then module.ForEachCarComponent(function(mat,car) mat:reset_color() - tvehicles.color.default = -1 + module.tvehicle.color.default = -1 end) end imgui.SameLine() if imgui.Button("Reset texture",imgui.ImVec2(fcommon.GetSize(2))) then module.ForEachCarComponent(function(mat,car) mat:reset_texture() - tvehicles.paintjobs.texture = nil + module.tvehicle.paintjobs.texture = nil end) end imgui.Spacing() - imgui.Text("Found entries :(" .. ffi.string(tvehicles.paintjobs.search_text) .. ")") + imgui.Text("Found entries :(" .. ffi.string(module.tvehicle.paintjobs.search_text) .. ")") imgui.Separator() imgui.Spacing() - local mask = tvehicles.paintjobs.path .. "*.png" + local mask = module.tvehicle.paintjobs.path .. "*.png" local handle,file = findFirstFile(mask) local model_table = {} @@ -575,7 +570,7 @@ function module.VehicleMain() if imgui.BeginChild("Vehicle entries") then - fcommon.ShowEntries(nil,model_table,80,100,tvehicles.paintjobs.images,tvehicles.paintjobs.path,".png", module.ApplyTexture,module.GetTextureName,true,tvehicles.paintjobs.search_text) + fcommon.ShowEntries(nil,model_table,80,100,module.tvehicle.paintjobs.images,module.tvehicle.paintjobs.path,".png", module.ApplyTexture,module.GetTextureName,true,module.tvehicle.paintjobs.search_text) imgui.EndChild() end @@ -585,7 +580,7 @@ function module.VehicleMain() if imgui.BeginTabItem('Tune') then imgui.Spacing() if imgui.Button("Restore mods",imgui.ImVec2(150,25)) then - if isCharInAnyCar(PLAYER_PED) and tvehicles.components.saved then + if isCharInAnyCar(PLAYER_PED) and module.tvehicle.components.saved then callFunction(0x49B3C0,0,0) end end @@ -593,26 +588,26 @@ function module.VehicleMain() if imgui.Button("Save mods",imgui.ImVec2(150,25)) then if isCharInAnyCar(PLAYER_PED) then callFunction(0x49B280,0,0) - tvehicles.components.saved = true + module.tvehicle.components.saved = true end end fcommon.InformationTooltip("Left click to add component\nRight click to remove component") imgui.Spacing() if imgui.BeginChild("Tune") then imgui.Spacing() - fcommon.ShowEntries("Bullbar",{1100,1109,1110,1115,1116,1123,1125},75,100,tvehicles.components.images,tvehicles.components.path,".jpg", module.AddComponentToVehicle,nil,false) - fcommon.ShowEntries("Exhaust",{1018,1019,1020,1021,1022,1028,1029,1034,1037,1043,1044,1045,1046,1059,1064,1065,1066,1089,1092,1104,1105,1113,1114,1126,1127,1129,1132,1135,1136},75,100,tvehicles.components.images,tvehicles.components.path,".jpg", module.AddComponentToVehicle,nil,false) - fcommon.ShowEntries("Front bumper",{1117,1152,1153,1155,1157,1160,1165,1166,1169,1170,1171,1172,1173,1174,1175,1179,1181,1182,1185,1188,1189,1190,1191},75,100,tvehicles.components.images,tvehicles.components.path,".jpg", module.AddComponentToVehicle,nil,false) - fcommon.ShowEntries("Front sign",{1111,1112},75,100,tvehicles.components.images,tvehicles.components.path,".jpg", module.AddComponentToVehicle,nil,false) fcommon.ShowEntries("Hood",{1004,1005,1011,1012},75,100,tvehicles.components.images,tvehicles.components.path,".jpg", module.AddComponentToVehicle,nil,false) - fcommon.ShowEntries("Lamps",{1013,1024},75,100,tvehicles.components.images,tvehicles.components.path,".jpg", module.AddComponentToVehicle,nil,false) - fcommon.ShowEntries("Misc",{1086,1087},75,100,tvehicles.components.images,tvehicles.components.path,".jpg", module.AddComponentToVehicle,nil,false) - fcommon.ShowEntries("Nitros",{1008,1009,1010},75,100,tvehicles.components.images,tvehicles.components.path,".jpg", module.AddComponentToVehicle,nil,false) - fcommon.ShowEntries("Rear bumper",{1140,1141,1148,1149,1150,1151,1154,1156,1159,1161,1167,1168,1176,1177,1178,1180,1183,1184,1186,1187,1192,1193},75,100,tvehicles.components.images,tvehicles.components.path,".jpg", module.AddComponentToVehicle,nil,false) - fcommon.ShowEntries("Roof",{1006,1032,1033,1035,1038,1053,1054,1055,1061,1067,1068,1088,1091,1103,1028,1130,1131},75,100,tvehicles.components.images,tvehicles.components.path,".jpg", module.AddComponentToVehicle,nil,false) - fcommon.ShowEntries("Sideskirt",{1007,1017,1026,1027,1030,1031,1036,1039,1040,1041,1042,1047,1048,1051,1052,1056,1057,1062,1063,1069,1070,1071,1072,1090,1093,1094,1095,1099,1101,1102,1106,1107,1108,1118,1119,1120,1121,1122,1124,1133,1134,1137},75,100,tvehicles.components.images,tvehicles.components.path,".jpg", module.AddComponentToVehicle,nil,false) - fcommon.ShowEntries("Spoiler",{1000,1001,1002,1003,1014,1015,1016,1023,1049,1050,1058,1060,1138,1139,1146,1147,1158,1162,1163,1164},75,100,tvehicles.components.images,tvehicles.components.path,".jpg", module.AddComponentToVehicle,nil,false) - fcommon.ShowEntries("Vents",{1142,1143,1144,1145},75,100,tvehicles.components.images,tvehicles.components.path,".jpg", module.AddComponentToVehicle,nil,false) - fcommon.ShowEntries("Wheels",{1025,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1096,1097,1098},75,100,tvehicles.components.images,tvehicles.components.path,".jpg", module.AddComponentToVehicle,nil,true) + fcommon.ShowEntries("Bullbar",{1100,1109,1110,1115,1116,1123,1125},75,100,module.tvehicle.components.images,module.tvehicle.components.path,".jpg", module.AddComponentToVehicle,nil,false) + fcommon.ShowEntries("Exhaust",{1018,1019,1020,1021,1022,1028,1029,1034,1037,1043,1044,1045,1046,1059,1064,1065,1066,1089,1092,1104,1105,1113,1114,1126,1127,1129,1132,1135,1136},75,100,module.tvehicle.components.images,module.tvehicle.components.path,".jpg", module.AddComponentToVehicle,nil,false) + fcommon.ShowEntries("Front bumper",{1117,1152,1153,1155,1157,1160,1165,1166,1169,1170,1171,1172,1173,1174,1175,1179,1181,1182,1185,1188,1189,1190,1191},75,100,module.tvehicle.components.images,module.tvehicle.components.path,".jpg", module.AddComponentToVehicle,nil,false) + fcommon.ShowEntries("Front sign",{1111,1112},75,100,module.tvehicle.components.images,module.tvehicle.components.path,".jpg", module.AddComponentToVehicle,nil,false) fcommon.ShowEntries("Hood",{1004,1005,1011,1012},75,100,module.tvehicle.components.images,module.tvehicle.components.path,".jpg", module.AddComponentToVehicle,nil,false) + fcommon.ShowEntries("Lamps",{1013,1024},75,100,module.tvehicle.components.images,module.tvehicle.components.path,".jpg", module.AddComponentToVehicle,nil,false) + fcommon.ShowEntries("Misc",{1086,1087},75,100,module.tvehicle.components.images,module.tvehicle.components.path,".jpg", module.AddComponentToVehicle,nil,false) + fcommon.ShowEntries("Nitros",{1008,1009,1010},75,100,module.tvehicle.components.images,module.tvehicle.components.path,".jpg", module.AddComponentToVehicle,nil,false) + fcommon.ShowEntries("Rear bumper",{1140,1141,1148,1149,1150,1151,1154,1156,1159,1161,1167,1168,1176,1177,1178,1180,1183,1184,1186,1187,1192,1193},75,100,module.tvehicle.components.images,module.tvehicle.components.path,".jpg", module.AddComponentToVehicle,nil,false) + fcommon.ShowEntries("Roof",{1006,1032,1033,1035,1038,1053,1054,1055,1061,1067,1068,1088,1091,1103,1028,1130,1131},75,100,module.tvehicle.components.images,module.tvehicle.components.path,".jpg", module.AddComponentToVehicle,nil,false) + fcommon.ShowEntries("Sideskirt",{1007,1017,1026,1027,1030,1031,1036,1039,1040,1041,1042,1047,1048,1051,1052,1056,1057,1062,1063,1069,1070,1071,1072,1090,1093,1094,1095,1099,1101,1102,1106,1107,1108,1118,1119,1120,1121,1122,1124,1133,1134,1137},75,100,module.tvehicle.components.images,module.tvehicle.components.path,".jpg", module.AddComponentToVehicle,nil,false) + fcommon.ShowEntries("Spoiler",{1000,1001,1002,1003,1014,1015,1016,1023,1049,1050,1058,1060,1138,1139,1146,1147,1158,1162,1163,1164},75,100,module.tvehicle.components.images,module.tvehicle.components.path,".jpg", module.AddComponentToVehicle,nil,false) + fcommon.ShowEntries("Vents",{1142,1143,1144,1145},75,100,module.tvehicle.components.images,module.tvehicle.components.path,".jpg", module.AddComponentToVehicle,nil,false) + fcommon.ShowEntries("Wheels",{1025,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1096,1097,1098},75,100,module.tvehicle.components.images,module.tvehicle.components.path,".jpg", module.AddComponentToVehicle,nil,true) imgui.EndChild() end imgui.EndTabItem() diff --git a/lib/cheat-menu/modules/visual.lua b/lib/cheat-menu/modules/visual.lua index 04a73649..f67805d8 100755 --- a/lib/cheat-menu/modules/visual.lua +++ b/lib/cheat-menu/modules/visual.lua @@ -18,13 +18,13 @@ local module = {} local tvisual = { - zone_names = imgui.new.bool(true), car_names = imgui.new.bool(true), money = { - positive = imgui.new.char[20](fconfig.get('tvisual.money.positive',memory.tostring(readMemory(0x58F4C8,4,false)))), - negative = imgui.new.char[20](fconfig.get('tvisual.money.negative',memory.tostring(readMemory(0x58F50A,4,false)))), + negative = imgui.new.char[20](memory.tostring(readMemory(0x58F50A,4,false))), + positive = imgui.new.char[20](memory.tostring(readMemory(0x58F4C8,4,false))), }, + zone_names = imgui.new.bool(true), } module.tvisual = tvisual @@ -74,24 +74,21 @@ function module.VisualMain() local var = allocateMemory(4) ffi.copy(ffi.cast("char*", var), ffi.string(tvisual.money.positive)) writeMemory(0x58F4C8,4,var,false) - freeMemory(var) end if imgui.InputText("Negative",tvisual.money.negative,ffi.sizeof(tvisual.money.negative)) then local var = allocateMemory(4) ffi.copy(ffi.cast("char*", var), ffi.string(tvisual.money.negative)) writeMemory(0x58F50A,4,var,false) - freeMemory(var) end if imgui.Button("Reset to default",imgui.ImVec2(fcommon.GetSize(1))) then local var = allocateMemory(4) - ffi.copy(ffi.cast("char*", var), "-$%07d") + ffi.copy(ffi.cast("char(*)", var), "-$%07d") imgui.StrCopy(tvisual.money.negative,"-$%07d",ffi.sizeof(tvisual.money.negative)) writeMemory(0x58F4C8,4,var,false) - ffi.copy(ffi.cast("char*", var), "$%08d") + ffi.copy(ffi.cast("char(*)", var), "$%08d") imgui.StrCopy(tvisual.money.positive,"$%08d",ffi.sizeof(tvisual.money.positive)) writeMemory(0x58F50A,4,var,false) - freeMemory(var) end end) diff --git a/lib/cheat-menu/modules/weapon.lua b/lib/cheat-menu/modules/weapon.lua index 256f7769..3b044b51 100755 --- a/lib/cheat-menu/modules/weapon.lua +++ b/lib/cheat-menu/modules/weapon.lua @@ -16,24 +16,22 @@ local module = {} -local tweapon = +module.tweapon = { + fast_reload = imgui.new.bool(fconfig.get('tweapon.fast_reload',false)), images = {}, - path = tcheatmenu.dir .. "weapons\\", - quick_spawn = imgui.new.bool(fconfig.get('tweapon.quick_spawn',false)), - noreload = imgui.new.bool(false), - fast_reload = imgui.new.bool(false), - search_text = imgui.new.char[20](fconfig.get('tweapon.search_text',"")), models = {}, + no_reload = imgui.new.bool(fconfig.get('tweapon.no_reload',false)), + path = tcheatmenu.dir .. "weapons\\", ped = imgui.new.bool(fconfig.get('tweapon.ped',false)), + quick_spawn = imgui.new.bool(fconfig.get('tweapon.quick_spawn',false)), + search_text = imgui.new.char[20](""), } for i = 1,46,1 do - table.insert(tweapon.models,i) + table.insert(module.tweapon.models,i) end -module.tweapon = tweapon - function module.GetName(id) local flibweapons = nil if getMoonloaderVersion() < 27 then @@ -67,7 +65,7 @@ function module.GiveWeapon(weapon) requestModel(model) loadAllModelsNow() - if tweapon.ped[0] == true then + if module.tweapon.ped[0] == true then if fped.tped.selected ~= nil then giveWeaponToChar(fped.tped.selected,weapon,99999) fcommon.CheatActivated() @@ -87,7 +85,7 @@ function module.WeaponMain() imgui.Spacing() if imgui.Button("Remove current weapon",imgui.ImVec2(fcommon.GetSize(2))) then - if tweapon.ped[0] == true then + if module.tweapon.ped[0] == true then if fped.tped.selected ~= nil then removeWeaponFromChar(fped.tped.selected,getCurrentCharWeapon(fped.tped.selected)) fcommon.CheatActivated() @@ -102,7 +100,7 @@ function module.WeaponMain() end imgui.SameLine() if imgui.Button("Remove all weapons",imgui.ImVec2(fcommon.GetSize(2))) then - if tweapon.ped[0] == true then + if module.tweapon.ped[0] == true then if fped.tped.selected ~= nil then removeAllCharWeapons(fped.tped.selected) fcommon.CheatActivated() @@ -119,18 +117,17 @@ function module.WeaponMain() if imgui.BeginTabItem("Checkbox") then imgui.Spacing() imgui.Columns(2,nil,false) - fcommon.CheckBox({ name = "Fast reload",var = tweapon.fast_reload,func = function() - if tweapon.fast_reload[0] then - setPlayerFastReload(PLAUER_HANDLE,true) + fcommon.CheckBox({ name = "Fast reload",var = module.tweapon.fast_reload,func = function() + setPlayerFastReload(PLAYER_HANDLE,module.tweapon.fast_reload[0]) + if module.tweapon.fast_reload[0] then fcommon.CheatActivated() else - setPlayerFastReload(PLAUER_HANDLE,false) fcommon.CheatDeactivated() end end}) imgui.NextColumn() - fcommon.CheckBox({ name = "No reload + Inf ammo",var = tweapon.noreload,func = function() - if tweapon.noreload[0] then + fcommon.CheckBox({ name = "No reload + Inf ammo",var = module.tweapon.no_reload,func = function() + if module.tweapon.no_reload[0] then writeMemory( 7600773,1,144,1) writeMemory( 7600815,1,144,1) writeMemory( 7600816,2,37008,1) @@ -154,9 +151,9 @@ function module.WeaponMain() if imgui.BeginTabItem("Spawn") then imgui.Spacing() imgui.Columns(2,nil,false) - fcommon.CheckBox({ name = "Quick Weapon",var = tweapon.quick_spawn,help_text = "Weapon can be spawned from quick spawner using (Left Ctrl + Q). \n\nControls:\nEnter : Stop reading key press\nDelete : Erase full string\nBackspace : Erase last character"}) + fcommon.CheckBox({ name = "Quick Weapon",var = module.tweapon.quick_spawn,help_text = "Weapon can be spawned from quick spawner using (Left Ctrl + Q). \n\nControls:\nEnter : Stop reading key press\nDelete : Erase full string\nBackspace : Erase last character"}) imgui.NextColumn() - fcommon.CheckBox({name = "Ped",var = tweapon.ped,help_text = "Give weapon to ped.Aim with a gun to select."}) + fcommon.CheckBox({name = "Ped",var = module.tweapon.ped,help_text = "Give weapon to ped.Aim with a gun to select."}) imgui.Columns(1) imgui.Spacing() if imgui.BeginTabBar("Spawn") then @@ -164,30 +161,30 @@ function module.WeaponMain() imgui.Spacing() if imgui.BeginChild("Weapon list Window") then - fcommon.ShowEntries("Assault rifles",{30,31},65,65,tweapon.images,tweapon.path,".png",module.GiveWeapon,module.GetName,true) - fcommon.ShowEntries("Handguns",{22,23,24},65,65,tweapon.images,tweapon.path,".png",module.GiveWeapon,module.GetName,true) - fcommon.ShowEntries("Heavy weapons",{35,36,37,38},65,65,tweapon.images,tweapon.path,".png",module.GiveWeapon,module.GetName,true) - fcommon.ShowEntries("Melee",{1,2,3,4,6,7,8,9},65,65,tweapon.images,tweapon.path,".png",module.GiveWeapon,module.GetName,true) - fcommon.ShowEntries("Miscellaneous",{10,11,12,14,15,41,42,43,44,45,46},65,65,tweapon.images,tweapon.path,".png",module.GiveWeapon,module.GetName,true) - fcommon.ShowEntries("Projectiles",{16,17,18,39},65,65,tweapon.images,tweapon.path,".png",module.GiveWeapon,module.GetName,true) - fcommon.ShowEntries("Shotguns",{25,26,27},65,65,tweapon.images,tweapon.path,".png",module.GiveWeapon,module.GetName,true) - fcommon.ShowEntries("Sub machine guns",{28,29,32},65,65,tweapon.images,tweapon.path,".png",module.GiveWeapon,module.GetName,true) - fcommon.ShowEntries("Rifles",{33,34},65,65,tweapon.images,tweapon.path,".png",module.GiveWeapon,module.GetName,true) + fcommon.ShowEntries("Assault rifles",{30,31},65,65,module.tweapon.images,module.tweapon.path,".png",module.GiveWeapon,module.GetName,true) + fcommon.ShowEntries("Handguns",{22,23,24},65,65,module.tweapon.images,module.tweapon.path,".png",module.GiveWeapon,module.GetName,true) + fcommon.ShowEntries("Heavy weapons",{35,36,37,38},65,65,module.tweapon.images,module.tweapon.path,".png",module.GiveWeapon,module.GetName,true) + fcommon.ShowEntries("Melee",{1,2,3,4,6,7,8,9},65,65,module.tweapon.images,module.tweapon.path,".png",module.GiveWeapon,module.GetName,true) + fcommon.ShowEntries("Miscellaneous",{10,11,12,14,15,41,42,43,44,45,46},65,65,module.tweapon.images,module.tweapon.path,".png",module.GiveWeapon,module.GetName,true) + fcommon.ShowEntries("Projectiles",{16,17,18,39},65,65,module.tweapon.images,module.tweapon.path,".png",module.GiveWeapon,module.GetName,true) + fcommon.ShowEntries("Shotguns",{25,26,27},65,65,module.tweapon.images,module.tweapon.path,".png",module.GiveWeapon,module.GetName,true) + fcommon.ShowEntries("Sub machine guns",{28,29,32},65,65,module.tweapon.images,module.tweapon.path,".png",module.GiveWeapon,module.GetName,true) + fcommon.ShowEntries("Rifles",{33,34},65,65,module.tweapon.images,module.tweapon.path,".png",module.GiveWeapon,module.GetName,true) imgui.EndChild() end imgui.EndTabItem() end if imgui.BeginTabItem("Search") then imgui.Spacing() - if imgui.InputText("Search",tweapon.search_text,ffi.sizeof(tweapon.search_text)) then end + if imgui.InputText("Search",module.tweapon.search_text,ffi.sizeof(module.tweapon.search_text)) then end imgui.SameLine() imgui.Spacing() - imgui.Text("Found entries :(" .. ffi.string(tweapon.search_text) .. ")") + imgui.Text("Found entries :(" .. ffi.string(module.tweapon.search_text) .. ")") imgui.Separator() imgui.Spacing() if imgui.BeginChild("Weapon Entries") then - fcommon.ShowEntries(nil,tweapon.models,65,65,tweapon.images,tweapon.path,".png",module.GiveWeapon,module.GetName,true,tweapon.search_text) + fcommon.ShowEntries(nil,module.tweapon.models,65,65,module.tweapon.images,module.tweapon.path,".png",module.GiveWeapon,module.GetName,true,module.tweapon.search_text) imgui.EndChild() end imgui.EndTabItem()