  | 
				
				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: | 
		 19430 Time(s) | 
	 
	
		
  
 
  | 
	 
	 
	 
	 
	
	
		
	 
	
		|  Description: | 
		
			
		 | 
		  Download | 
	 
	
		|  Filename: | 
		 Superior Go to Address.lua | 
	 
	
		|  Filesize: | 
		 9.24 KB | 
	 
	
		|  Downloaded: | 
		 25502 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: | 
		 16558 Time(s) | 
	 
	
		
  
 
  | 
	 
	 
	 
	 
	
	
		
	 
	
		|  Description: | 
		
			
		 | 
		  Download | 
	 
	
		|  Filename: | 
		 Superior Go to Address.lua | 
	 
	
		|  Filesize: | 
		 10.46 KB | 
	 
	
		|  Downloaded: | 
		 25168 Time(s) | 
	 
	 
	 
 | 
			 
		  | 
	 
	
		| Back to top | 
		 | 
	 
	
		  | 
	 
	
		AylinCE Grandmaster Cheater Supreme
  Reputation: 37
  Joined: 16 Feb 2017 Posts: 1529
 
  | 
		
			
				 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: | 
		 16509 Time(s) | 
	 
	
		
  
 
  | 
	 
	 
	 
	 
	
	
		
	 
	
		|  Description: | 
		
			
		 | 
		  Download | 
	 
	
		|  Filename: | 
		 Superior Go to Address.lua | 
	 
	
		|  Filesize: | 
		 10.67 KB | 
	 
	
		|  Downloaded: | 
		 25306 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: | 
		 16227 Time(s) | 
	 
	
		
  
 
  | 
	 
	 
	 
	 
	
	
		
	 
	
		|  Description: | 
		
			
		 | 
		  Download | 
	 
	
		|  Filename: | 
		 Superior Go to Address.lua | 
	 
	
		|  Filesize: | 
		 11.7 KB | 
	 
	
		|  Downloaded: | 
		 25568 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: | 
		 15727 Time(s) | 
	 
	
		
  
 
  | 
	 
	 
	 
	 
	
	
		
	 
	
		|  Description: | 
		
			
		 | 
		  Download | 
	 
	
		|  Filename: | 
		 Superior Go to Address.lua | 
	 
	
		|  Filesize: | 
		 11.82 KB | 
	 
	
		|  Downloaded: | 
		 25373 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
  | 
   
 
		 |