Skip to content

Instantly share code, notes, and snippets.

@DefaultO
Created March 18, 2022 13:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DefaultO/11566c39ef0ee7f9b2c2adccdaf063cd to your computer and use it in GitHub Desktop.
Save DefaultO/11566c39ef0ee7f9b2c2adccdaf063cd to your computer and use it in GitHub Desktop.
More Pointer Examples
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TDEM
{
/// <summary>
/// for <see href="https://github.com/DefaultO/Growtopia-Versions/releases/tag/3.70">Growtopia 3.70</see>
/// </summary>
public static class Patchables
{
public static string App = "0xA39D30";
/// <summary>
/// Other Players Stuff
/// </summary>
public static class Players
{
public static Pointer List = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "178", "0" }
};
public static Pointer Count = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "170" }
};
}
/// <summary>
/// Local Player Stuff
/// </summary>
public static class Player
{
public static Pointer X = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "198", "8" }
};
public static Pointer Y = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "198", "C" }
};
public static Pointer Name_Short = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "198", "28" }
};
public static Pointer Name_Long = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "198", "28", "0" }
};
public static Pointer Direction = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "198", "61" }
};
public static Pointer Current_Selected_Item = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "248" }
};
public static Pointer Inventory_Data = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "210" }
};
public static Pointer Taken_Inventory_Slots = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "218" }
};
public static Pointer Total_Inventory_Slots = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "228" }
};
public static Pointer Gems = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "250" }
};
}
/// <summary>
/// Everything important related to the World is stored here
/// </summary>
public static class World
{
public static Pointer Name_Short = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "108", "68" }
};
public static Pointer Name_Long = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "108", "68" }
};
public static Pointer Name_Length = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "108", "78" }
};
public static Pointer Width = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "108", "18" }
};
public static Pointer Heigth = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "108", "1C" }
};
public static Pointer Data = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "28" }
};
public static Pointer Dropped_Items = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "108", "40", "58" }
};
public static Pointer Dropped_Items_Count = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "108", "40", "60" }
};
}
/// <summary>
/// Your Ingame View, useful for W2S
/// </summary>
public static class Camera
{
public static Pointer Zoom_Factor = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "110", "C4" }
};
public static Pointer X = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "110", "A8" }
};
public static Pointer Y = new Pointer
{
Module = Modules.Main,
Offset = App,
Offsets = new string[] { "ab0", "110", "AC" }
};
}
/// <summary>
/// Text Input Stuff
/// </summary>
public static class Text
{
public static Pointer Short = new Pointer
{
Module = Modules.Main,
Offset = "0xA39AD0"
};
public static Pointer Long = new Pointer
{
Module = Modules.Main,
Offset = "0xA39AD0",
Offsets = new string[] { "0" }
};
}
/// <summary>
/// Patches and Hacks go in here
/// </summary>
public static class Scripts
{
/// <summary>
/// Internal Memory Error Fix
/// <para>Signature: 75 08 85 C9 0F 85</para>
/// </summary>
public static Opcode IME = new Opcode
{
Address = "Growtopia.exe+3649C4",
Enable = new byte[] { 0x74, 0x08 },
Disable = new byte[] { 0x74, 0x08 }
};
/// <summary>
/// Anti Client Ban
/// <para>Signature: 0F 29 ? ? ? F3 0F ? ? ? ? ? ? F3 0F ? ? E8 ? ? ? ? 48 8B ? E8 ? ? ? ? 8B C8</para>
/// </summary>
public static Opcode ACB = new Opcode
{
Address = "Growtopia.exe+4524F3",
Enable = new byte[] { 0x90, 0x90 },
Disable = new byte[] { 0x76, 0x08 }
};
/// <summary>
/// Position Check Bypass
/// <para>Signature: 0F 85 ? ? ? ? C7 86 80 02 00 00</para>
/// </summary>
public static Opcode POS = new Opcode
{
Address = "Growtopia.exe+45EAAE",
Enable = new byte[] { 0xE9, 0x19, 0x01, 0x00, 0x00 },
Disable = new byte[] { 0x0F, 0x85, 0x18, 0x01, 0x00, 0x00 }
};
/// <summary>
/// Drop Things faster
/// <para>Signature: E8 ? ? ? ? 89 43 ? 48 8D ? ? 48 8B</para>
/// </summary>
public static Opcode Fast_Drop = new Opcode
{
Address = "Growtopia.exe+4BB6DF",
Enable = new byte[] { 0x90, 0x90, 0x90, 0x90, 0x90 },
Disable = new byte[] { 0xE8, 0x4C, 0x80, 0xB6, 0xFF }
};
/// <summary>
/// Pickup Things faster
/// <para>Signature: 73 ? 80 63 13</para>
/// </summary>
public static Opcode Fast_Pickup = new Opcode
{
Address = "Growtopia.exe+4BAEB2",
Enable = new byte[] { 0x90, 0x90 },
Disable = new byte[] { 0x73, 0x19 }
};
}
}
/// <summary>
/// Basic Pointer Structure fit to the memory.dll Library. Inspired by <see href="https://github.com/Azukee">Azuki's</see> Memory Class.
/// </summary>
public class Pointer
{
public string Module;
public string Offset;
public string[] Offsets;
/// <summary>
/// Returns every part of the Pointer into a single String useable by the memory.dll Library.
/// </summary>
public string Get()
{
string pointer = String.Format("{0}+{1}", this.Module, Offset);
foreach (string offset in this.Offsets)
{
pointer = String.Format("{0},{1}", pointer, offset);
}
return pointer;
}
}
public class Opcode
{
public string Address;
public byte[] Enable;
public byte[] Disable;
}
public static class Modules
{
/// <summary>
/// Growtopia.exe
/// </summary>
public static string Main = "Growtopia.exe";
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment