| 
			
				|  | Cheat Engine The Official Site of Cheat Engine
 
 
 |  
 
	
		| View previous topic :: View next topic |  
  | 
 
	  
		| Do you want such options Cheat Engine? |  
		| 
			
			  | Absolutely, Yes! |  | 60% | [ 3 ] |  
			  | Meh! |  | 40% | [ 2 ] |  |  
		| Total Votes : 5 |  
 |  
		| Author | Message |  
		| Game Hacking Dojo Master Cheater
 
  Reputation: 1 
 Joined: 17 Sep 2023
 Posts: 250
 
 
 | 
			
				|  Posted: Thu Oct 10, 2024 3:54 pm    Post subject: Superior Go to Address |   |  
				| 
 |  
				|  	  | Code: |  	  | -- Made by the GameHackingDojo -- Special thanks to:
 -- ParkourPenguin
 -- AylinCE
 
 local function go_to_address(type, offset)
 local version = {1, 1, 2, 0}
 local form_colour = 0x242424     --BGR
 local bevel_colour = 0x404040    --BGR
 local font_colour = 0xBBBBBB     --BGR
 local red_colour = 0x453ACC   --BGR
 local small_spacing = 4
 local spacing = 8
 local message_time = 2000   --Milliseconds
 local default_label = "Enter an address"
 
 -- Create main window
 local form = createForm(false)
 form.Caption = "Superior Go to Address by GHD"
 form.AutoSize = true
 form.Constraints.MaxHeight = 92
 form.Constraints.MinWidth = 400
 form.Constraints.MaxWidth = 1300
 form.Font.Color = font_colour
 --form.BorderStyle = 'bsNone'
 
 --[[local title_bar = createPanel(form)
 title_bar.Align = alTop
 title_bar.Height = 26
 title_bar.Color = 0x282828
 title_bar.BevelColor = bevel_colour
 title_bar.Color = form_colour
 title_bar.OnMouseDown = function(sender, button, x, y)
 if button == mbLeft then
 form.dragNow()
 end
 end
 
 local title_label = createLabel(title_bar)
 title_label.Caption = "Go to address"
 title_label.Font.Color = font_colour
 title_label.Font.Size = 9
 title_label.Align = asrCenter
 title_label.BorderSpacing.Left = small_spacing
 title_label.Alignment = "taLeft"
 title_label.OnMouseDown = function(sender, button, x, y)
 if button == mbLeft then
 form.dragNow()
 end
 end]]
 
 -- Centre to MemoryViewForm window
 local form_x, form_y = getMemoryViewForm().getPosition()
 form_x = form_x + getMemoryViewForm().width / 2 - form.width / 2
 form_y = form_y + getMemoryViewForm().height / 2 - form.height / 2
 form.setPosition(form_x, form_y)
 
 -- Create main panel
 local main_panel = createPanel(form)
 main_panel.Align = alClient
 main_panel.ClientHeight = form.ClientHeight
 main_panel.ClientWidth = form.ClientWidth
 main_panel.BevelColor = bevel_colour
 
 -- Create label
 local label =  createLabel(main_panel)
 label.Align = alLeft
 label.Caption = default_label
 label.BorderSpacing.Top = spacing
 label.BorderSpacing.Left = small_spacing
 label.BorderSpacing.Right = small_spacing
 
 -- Create input box
 local inputbox = createEdit(main_panel)
 inputbox.Align = asrCenter
 inputbox.BorderSpacing.Left = small_spacing
 inputbox.BorderSpacing.Right = small_spacing
 
 -- Create version label
 local version_label = createLabel(main_panel)
 version_label.Caption = "v"..version[1].."."..version[2].."."..version[3].."."..version[4]
 version_label.font.Color = red_colour
 version_label.font.size = 8
 version_label.Align = alRight
 version_label.AnchorSideTop.Control = label
 version_label.BorderSpacing.Top = spacing
 version_label.BorderSpacing.Left = small_spacing
 version_label.BorderSpacing.Right = small_spacing
 
 -- Create button panel
 local button_panel = createPanel(form)
 button_panel.ClientHeight = 40
 button_panel.Align = alBottom
 button_panel.BevelColor = bevel_colour
 
 -- Create go button
 local go_button = createButton(button_panel)
 go_button.Caption = "Go"
 go_button.Align = alRight
 go_button.Constraints.MinWidth = 75
 go_button.Constraints.MinHeight = 25
 go_button.AutoSize = true
 go_button.BorderSpacing.around = spacing
 go_button.OnCLick = function()
 if process == nil or process == "" and label.Caption == default_label then
 label.Caption = "Not attached to process" label.Font.Color = red_colour     -- error message
 createTimer(message_time, function()              -- revert the changes
 label.Caption = default_label
 label.Font.Color = font_colour
 end)
 return
 end
 if offset == true then inputbox.text = "$process+"..inputbox.text:gsub("%$process%+", "") end
 inputbox.text = string.gsub(inputbox.text, ":%$", "$process")     --define :$ as $process (x64dbg expression)
 local address = getAddressSafe(inputbox.text) or nil
 if address == nil and label.Caption == default_label then
 label.Caption = "Not a valid address" label.Font.Color = red_colour     -- error message
 createTimer(message_time, function()              -- revert the changes
 label.Caption = default_label
 label.Font.Color = font_colour
 end)
 return
 end
 if type == "disassembler" then getMemoryViewForm().DisassemblerView.TopAddress = address end
 if type == "memory_view" then getMemoryViewForm().HexadecimalView.Address = address end
 form.close()
 end
 
 -- Add OnKeyDown event for Enter key
 inputbox.OnKeyDown = function(sender, key) if key == VK_RETURN then go_button.DoClick() end end
 
 -- Create cancel button
 local cancel_button = createButton(button_panel)
 cancel_button.Caption = "Cancel"
 cancel_button.Align = alRight
 cancel_button.Constraints.MinWidth = 75
 cancel_button.Constraints.MinHeight = 25
 cancel_button.AutoSize = true
 cancel_button.BorderSpacing.around = spacing
 cancel_button.OnClick = function() form.close() end
 
 -- Create module or symbol checkbox
 local offset_checkbox = createCheckBox(button_panel)
 local initial_offset_input = ""
 offset_checkbox.Caption = "Go to Offset"
 offset_checkbox.Align = alLeft
 offset_checkbox.Constraints.MinWidth = 50
 offset_checkbox.Constraints.MaxHeight = 19
 offset_checkbox.BorderSpacing.around = spacing
 if offset == true then offset_checkbox.state = cbChecked end
 offset_checkbox.onChange = function()
 if offset_checkbox.state == cbChecked then offset = true else offset = false end
 inputbox.text = string.gsub(inputbox.text, ":%$", "$process")     --define :$ as $process (x64dbg expression)
 if offset_checkbox.state == cbChecked then
 initial_offset_input = inputbox.text:gsub("%s+$", "")
 else
 if initial_offset_input ~= "" then inputbox.text = initial_offset_input end
 end
 end
 
 -- Create module or symbol checkbox
 local module_symbol_checkbox = createCheckBox(button_panel)
 local initial_module_symbol_input = ""
 module_symbol_checkbox.Caption = "Module or Symbol"
 module_symbol_checkbox.Align = alLeft
 module_symbol_checkbox.Left = 60
 module_symbol_checkbox.Constraints.MinWidth = 110
 module_symbol_checkbox.Constraints.MaxHeight = 19
 module_symbol_checkbox.BorderSpacing.around = spacing
 module_symbol_checkbox.setAllowGrayed(true)
 module_symbol_checkbox.onChange = function()
 inputbox.text = string.gsub(inputbox.text, ":%$", "$process")     --define :$ as $process (x64dbg expression)
 if getAddressSafe(inputbox.text) == nil and label.Caption == default_label then
 label.Caption = "Not a valid address" label.Font.Color = red_colour     -- error message
 createTimer(message_time, function()              -- revert the changes
 label.Caption = default_label
 label.Font.Color = font_colour
 end)
 module_symbol_checkbox.state  = cbUnchecked
 return
 end
 if module_symbol_checkbox.state ~= cbUnchecked then
 if module_symbol_checkbox.state == cbGrayed then
 initial_module_symbol_input = inputbox.text:gsub("%s+$", "")
 if offset == true then
 inputbox.text = "$process+"..inputbox.text:gsub("%$process%+", "")
 offset = false
 offset_checkbox.state = cbUnchecked
 end
 inputbox.text = getNameFromAddress(inputbox.text, true, false)
 end
 if module_symbol_checkbox.state == cbChecked then
 if offset == true then
 inputbox.text = "$process+"..inputbox.text:gsub("%$process%+", "")
 offset = false
 offset_checkbox.state = cbUnchecked
 end
 inputbox.text = getNameFromAddress(inputbox.text, true, true)
 end
 end
 if module_symbol_checkbox.state == cbUnchecked then
 inputbox.text = initial_module_symbol_input
 end
 end
 
 form.showModal()
 end
 
 for i = 0, getMemoryViewForm().DisassemblerView.PopupMenu.items.count - 1 do
 local item = getMemoryViewForm().DisassemblerView.PopupMenu.items[i]
 if item.name == "Gotoaddress1" then
 local offset_item_index = i + 1
 local popup_menu = getMemoryViewForm().DisassemblerView.PopupMenu
 local menu_item = createMenuItem(popup_menu)
 menu_item.Caption = "Go to Offset"
 menu_item.ImageIndex = 35
 menu_item.ShortCut = textToShortCut("Ctrl+F")
 menu_item.OnClick = function(s)
 go_to_address("disassembler", true)
 end
 
 popup_menu.Items.insert(offset_item_index, menu_item)
 
 item.OnClick = function() go_to_address("disassembler", false) end
 end
 end
 
 for i = 0, getMemoryViewForm().HexadecimalView.PopupMenu.items.count - 1 do
 local item = getMemoryViewForm().HexadecimalView.PopupMenu.items[i]
 if item.name == "Goto1" then
 local offset_item_index = i + 1
 local popup_menu = getMemoryViewForm().HexadecimalView.PopupMenu
 local menu_item = createMenuItem(popup_menu)
 menu_item.Caption = "Go to Offset"
 menu_item.ImageIndex = 35
 --menu_item.ShortCut = textToShortCut("Ctrl+F")
 menu_item.OnClick = function(s)
 go_to_address("memory_view", true)
 end
 
 popup_menu.Items.insert(offset_item_index, menu_item)
 
 item.OnClick = function() go_to_address("memory_view", false) end
 end
 end
 | 
 
 Last edited by Game Hacking Dojo on Sat Oct 12, 2024 4:26 pm; edited 3 times in total
 |  |  
		| Back to top |  |  
		|  |  
		| Game Hacking Dojo Master Cheater
 
  Reputation: 1 
 Joined: 17 Sep 2023
 Posts: 250
 
 
 | 
			
				|  Posted: Fri Oct 11, 2024 9:28 am    Post subject: |   |  
				| 
 |  
				| A big update 
 Dark byte, can you please try it and add it to Cheat Engine? We really need this, Thank you
 
 
 
 
	
		
	 
		| Description: |  |  
		| Filesize: | 7.18 KB |  
		| Viewed: | 19378 Time(s) |  
		| 
  
 
 |  
 
 
	
		
	 
		| Description: |  |  Download
 |  
		| Filename: | Superior Go to Address.lua |  
		| Filesize: | 9.24 KB |  
		| Downloaded: | 25494 Time(s) |  
 |  |  
		| Back to top |  |  
		|  |  
		| Game Hacking Dojo Master Cheater
 
  Reputation: 1 
 Joined: 17 Sep 2023
 Posts: 250
 
 
 | 
			
				|  Posted: Tue Nov 26, 2024 12:13 pm    Post subject: |   |  
				| 
 |  
				| Another Big Update 
 Now:
 - It saves your history
 - You can go to the module base if the input box is empty while the offset is checked
 - You can type :$ to go to the module base. (no plus needed between the symbol and offset like in x64dbg)
 - You can use hotkeys (Ctrl + F) to toggle offset on or off.
 - You can use the Escape key to close the form
 - The input box is filled with the selected address by default
 
 
 
 
	
		
	 
		| Description: |  |  
		| Filesize: | 7.92 KB |  
		| Viewed: | 16506 Time(s) |  
		| 
  
 
 |  
 
 
	
		
	 
		| Description: |  |  Download
 |  
		| Filename: | Superior Go to Address.lua |  
		| Filesize: | 10.46 KB |  
		| Downloaded: | 25165 Time(s) |  
 |  |  
		| Back to top |  |  
		|  |  
		| AylinCE Grandmaster Cheater Supreme
 
  Reputation: 37 
 Joined: 16 Feb 2017
 Posts: 1528
 
 
 | 
			
				|  Posted: Tue Nov 26, 2024 1:35 pm    Post subject: |   |  
				| 
 |  
				| Need advice? 
 1) Avoid overused control names (like "form")
 
 2) Make the dimensions uniform and equal for each user;
 
 
  	  | Code: |  	  | DP1=getScreenDPI()/96 
 form.Constraints.MaxHeight = 92*DP1
 
 title_label.Font.Size = 9*DP1
 
 local form_x, form_y = getMemoryViewForm().getPosition()
 form_x = form_x + getMemoryViewForm().width*DP1 / 2*DP1 - form.width*DP1 / 2*DP1
 form_y = form_y + getMemoryViewForm().height*DP1 / 2*DP1 - form.height*DP1 / 2*DP1
 form.setPosition(form_x*DP1, form_y*DP1)
 
 module_symbol_checkbox.Left = 60*DP1
 | 
 _________________
 
 |  |  
		| Back to top |  |  
		|  |  
		| Game Hacking Dojo Master Cheater
 
  Reputation: 1 
 Joined: 17 Sep 2023
 Posts: 250
 
 
 | 
			
				|  Posted: Tue Nov 26, 2024 4:49 pm    Post subject: |   |  
				| 
 |  
				| Thank you for the feedback that really helps, AylinCE 
 And here's the update:
 
 - Fixed history list order now shows the last address at the top
 - Fixed not detecting screen dpi. (Thanks to AylinCE)
 - And of course, introduced new bugs to fix later
 
 
 
 
	
		
	 
		| Description: |  |  
		| Filesize: | 7.91 KB |  
		| Viewed: | 16457 Time(s) |  
		| 
  
 
 |  
 
 
	
		
	 
		| Description: |  |  Download
 |  
		| Filename: | Superior Go to Address.lua |  
		| Filesize: | 10.67 KB |  
		| Downloaded: | 25295 Time(s) |  
 |  |  
		| Back to top |  |  
		|  |  
		| Game Hacking Dojo Master Cheater
 
  Reputation: 1 
 Joined: 17 Sep 2023
 Posts: 250
 
 
 | 
			
				|  Posted: Sat Nov 30, 2024 4:55 am    Post subject: |   |  
				| 
 |  
				| New update: 
 - Fixed not showing in the middle of the memory view form
 - Tested on multiple screens and resolutions
 - More safety checks added to avoid access violation
 - UI improvements
 - And perhaps some new bugs
 
 
 
 
	
		
	 
		| Description: |  |  
		| Filesize: | 5.8 KB |  
		| Viewed: | 16175 Time(s) |  
		| 
  
 
 |  
 
 
	
		
	 
		| Description: |  |  Download
 |  
		| Filename: | Superior Go to Address.lua |  
		| Filesize: | 11.7 KB |  
		| Downloaded: | 25560 Time(s) |  
 |  |  
		| Back to top |  |  
		|  |  
		| Game Hacking Dojo Master Cheater
 
  Reputation: 1 
 Joined: 17 Sep 2023
 Posts: 250
 
 
 | 
			
				|  Posted: Wed Dec 11, 2024 7:33 pm    Post subject: |   |  
				| 
 |  
				| New update: 
 - Fixed sometimes launching using "Ctrl+F" accidentally unchecks the offset checkbox
 
 
 
 
	
		
	 
		| Description: |  |  
		| Filesize: | 5.8 KB |  
		| Viewed: | 15675 Time(s) |  
		| 
  
 
 |  
 
 
	
		
	 
		| Description: |  |  Download
 |  
		| Filename: | Superior Go to Address.lua |  
		| Filesize: | 11.82 KB |  
		| Downloaded: | 25367 Time(s) |  
 |  |  
		| Back to top |  |  
		|  |  
		|  |  
  
	| 
 
 | You cannot post new topics in this forum You cannot reply to topics in this forum
 You cannot edit your posts in this forum
 You cannot delete your posts in this forum
 You cannot vote in polls in this forum
 You cannot attach files in this forum
 You can download files in this forum
 
 |  |