Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Reflection;
namespace IDNLIB.Update
{
[Obfuscation(Feature = "renaming", ApplyToMembers = true)]
public class PublicPointers
{
//good
#region Globals enum
// good-33526
/// <summary>
/// classic
/// </summary>
public enum Globals
{
PlayerName = 0x2669678, // good-33526
Realm = 0x2668EA8, // good-33526
Realmoffset = 0x420,//good-33526
Account = 0x0000000, // just a filler offset
}
#endregion
// good-33526
#region InGame enum
/// <summary>
/// classic
/// </summary>
public enum InGame
{
InGame = 0x258ACF8, // good-33526
LoadingScreen = 0x2256BD0, // good-33526
}
#endregion
}
internal class Pointers
{
//good-33526
#region ActionBar & Macros enum
/// <summary>
/// classic
/// </summary>
public enum ActionBar
{
ActionBarFirstSlot = 0x2596B00, // good-33526
ActionBarBonus = ActionBarFirstSlot + 0x240, // good-33526
CurrentActionBar = 0x2597154, // good-33526
// Macro Actions Below
Next = 0x88, // good-33526
Name = 0x30, // good-33526
Icon = 0x60, //good-33526
Body = 0x179, // good-33526
MacroBase = 0x21C8DB8, // good-33526
nbGeneralMacros = 0x259BEA0, // good-33526
nbSpecificMacros = 0x259BE98, // good-33526
}
#endregion
//good-33526
#region PartyEnum enum
/// <summary>
/// classic
/// </summary>
public enum Party
{
NumOfPlayers = 0x178, //0x17C
NumOfPlayers_SuBGroup = 0x17C, // 0x178
PlayerGuid = 0x10, // good
IsInGroupHome = 0x2594DD8, //good-33526
IsInGroupInstance = 0x2594DE0,//good-33526
}
#endregion
//good-33526
#region Battleground enum
/// <summary>
/// classic
/// </summary>
public enum Battleground
{
BattlegroundStartTickcount = 0x2594F44,//good-33526
Timestamp = 0x22A82DC, // //good-33526
IsBattlegroundFinished = 0x25951EC,//good-33526
BattlegroundWinner = 0x25951F0,//good-33526
BattlegroundInfo = 0x21C5130,//good-33526
UISelectedBattlegroundId = 0xb36704//Not Using This
}
#endregion
//good-33526
#region AutoLoot enum
/// <summary>
/// classic
/// </summary>
public enum AutoLoot
{
Offset = 0x5C,
Pointer = 0x258A8A8, // good-33526
}
#endregion
//good-33526
#region AutoSelfCast enum
/// <summary>
/// classic
/// </summary>
public enum AutoSelfCast
{
Offset = 0x5C,
Pointer = 0x258A8B8, //good-33526
}
#endregion
//good-33526
#region ClickToMove enum
/// <summary>
/// classic
/// </summary>
public enum ClickToMove
{
Offset = 0x5C,
Pointer = 0x258A888, //good-33526
}
#endregion
//good-33526
#region CgUnitCGetCreatureRank enum
/// <summary>
/// classic
/// Reversed from CGUnit_C__GetCreatureRank
/// </summary>
public enum CgUnitCGetCreatureRank
{
Offset1 = 0x17B8,
Offset2 = 0x34,
}
#endregion
//good-33526
#region CgUnitCGetCreatureType enum
/// <summary>
/// classic
/// reversed from CGUnit_C__GetCreatureType
/// </summary>
public enum CgUnitCGetCreatureType
{
Offset1 = 0x17B8,
Offset2 = 0x30,
}
#endregion
//good-33526
#region CgWorldFrameGetActiveCamera enum
/// <summary>
/// classic
/// reversed from CGWorldFrame__GetActiveCamera
/// </summary>
public enum CgWorldFrameGetActiveCamera
{
CameraX = 0x8, // good
CameraY = 0xC, //good
CameraZ = 0x10, // good
CameraMatrix = 0x14, // good
CameraPointer = 0x258B818, // good
CameraOffset = 0x3330, // good
}
#endregion
// good-33526
#region Nested type: AutoAttack
/// <summary>
/// classic
/// reversed from CGActionBar__IsCurrentAction
/// </summary>
internal enum AutoAttack
{
IsAutoRepeatingSpell = 0x22C30D0, //good-33526
IsInMelee = 0xAF6C, //good-33526
IsInMelee1 = 0x18A8,//good-33526
AutoAttackFlag = 0xEE8, //Old Method
AutoAttackMask = 0xEEC, //Old Method
//Address seems to show the GUID of the Auto Attack target
AutoAttackGUID = 0xAF6C , // 0xED8,
//Shows 0x06 when not wanding, 0x0C or 0x0E when wanding.
//Wanding = 0xEF8,
}
#endregion
// gotta Recheck sometime
#region Nested type: CastingInfo
/// <summary>
/// classic
/// Script_UnitCastingInfo
/// Script_UnitChannelInfo
/// </summary>
internal enum CastingInfo
{
IsCasting = 0x1990,
ChanneledCasting = 0x670,
}
#endregion
//good-33526
#region Nested type: Chat
/// <summary>
/// classic
/// </summary>
internal enum Chat : uint
{
ChatStart = 0x2558850,// good-33526
chatBufferPos = 0x255884C, // ReCheck
OffsetToNextMsg = 0xCB8,// good-33526
MsgSenderGuid = 0x00, //good-33526
MsgSenderName = 0x34, // good-33526
MsgFullMessage = 0x0E6, // good-33526
MsgChatType = 0x0CA0, //good-33526
MsgChannelNum = 0xCA4, //good-33526
MsgTimeStamp = 0xCB0,//good-33526
ChatQueueDepth = 0x3C, // good-33526
//0CA8
}
#endregion
//good-33526
#region Nested type: SpellBook
/// <summary>
/// classic
/// </summary>
internal enum SpellBook : uint
{
SpellBookNumSpells = 0x258BB00, //good-33526
SpellBookSpellsPtr = 0x258BB08, //good-33526
}
#endregion
//good-33526
#region BlueChat
/// <summary>
/// classic
/// </summary>
internal enum Messages
{
EventMessage = 0x2589B70 // good-33526
}
#endregion
//good-33526
#region Nested type: Container
/// <summary>
/// classic
/// </summary>
internal enum Container
{
EquippedBagGUID = 0x2599A20 // good-33526
}
#endregion
// gotta add but lazy factor
#region Nested type: Death Info
/// <summary>
/// classic
/// </summary>
internal enum Death
{
SpiritHealer_X = 0x0, // good
SpiritHealer_Y = 0x0, // good
SpiritHealer_Z = 0x0, // good
//Todo Havent cared
Corpse_X = 0x21BB750, // good-33526
Corpse_Y = Corpse_X + 0x8, // good
Corpse_Z = Corpse_X + 0x18, // good
}
#endregion
//good-33526
#region Nested type: Globals
/// <summary>
/// classic
/// </summary>
internal enum Globals
{
RedMessage = 0x2589B70, // good-33526,
MouseOverGUID = 0x258AD00, // good-33526
LootWindow = 0x259A640, // good-33526
ChatboxIsOpen = 0x22CD7E4, // good-33526
CursorType = 0x2622890, // good-33526
CursorType2 = 0x2622894, // good-33526
SelectedSpellId = 0x25A8FA8,// good-33526
CGGameUI__m_cursorItem = 0x2589B00, // good-33526
CGGameUI__m_cursorSpell = 0x2589B10, //good-33526
IsBobbing = 0x14C, // good-33526
ArchFacing = 0x198, // good-33526
ArchFacingOffset2 = 0x30, //good-33526
}
#endregion
//good-33526
#region Nested type: KeyBinding
/// <summary>
/// classic
/// </summary>
internal enum KeyBinding
{
NumKeyBindings = 0x2598910, // good-33526
First = 0x30, // good 10
Next = 0x48, //good 28
// Check These 2
Key = 0x80, //0x80
Command = 0x1C0, //1C0
}
#endregion
//good-33526
#region Nested type: ObjectManager
/// <summary>
/// classic
/// </summary>
internal enum ObjectManager
{
CurMgrPointer = 0x2368B38, //good-33526
LocalPlayerGUID = 0x2669660,//good-33526
TargetGUID = 0x21C3840, //don't use it but linmerovingian gave right offset
PetGUID = 0x2599C0C,//good-33526
StorageField = 0x10,//good-33526
ObjectType = 0x20,//good-33526
NextObject = 0x70,//good-33526
FirstObject = 0x18,//good-33526
LocalGUID = 0x58, //good-33526
}
#endregion
//good-33526
#region Nested type: InCombat
/// <summary>
/// Script_UnitAffectingCombat
/// classic
/// Reversed from Lua_UnitAffectingCombat
/// v4 = v2 && (*(_DWORD *)(*(_DWORD *)(v2 + 284) + 316) >> 19) & 1;
/// </summary>
public enum InCombat
{
Mask = 19, //good-33526
Offset2 = 0x158, // good-33526
Offset1 = 0x188 // good-33526
}
#endregion
//good-33526
#region Nested type: ShapeshiftForm
/// <summary>
/// classic Reversed from CGUnit_C__GetShapeshiftFormId
/// </summary>
internal enum ShapeshiftForm
{
BaseAddressOffset1 = 0x188, // good-33526
BaseAddressOffset2 = 0x27B, // good-33526
}
#endregion
//good-33526
#region Nested type: SpellCooldown
/// <summary>
/// classic
/// </summary>
internal enum SpellCooldown : uint
{
CooldPown = 0x21B0800, // good-33526
}
#endregion
//good-33526
#region Nested type: PowerIndex
/// <summary>
/// classic Search for PowerTypePointer function in ida
/// </summary>
internal enum PowerIndex
{
PowerIndexArrays = 0x230F420, // good-33526
Multiplicator = 13 // good-33526
}
#endregion
//good-33526
#region Nested type: Swimming
/// <summary>
/// classic Lua_IsSwimming
/// </summary>
internal enum Swimming
{
Pointer = 0x198,
Offset = 0x58,
Mask = 0x100000,
}
#endregion
//good-33526
#region IsFlying enum
/// <summary>
/// classic Lua_IsFlying
/// </summary>
public enum IsFlying
{
Pointer = 0x198,
Offset = 0x58,
Mask = 0x1000000
}
#endregion
//good-33526
#region IsFalling enum
/// <summary>
/// classic Lua_IsFalling
/// </summary>
public enum IsFalling
{
Pointer = 0x198,
Offset = 0x58,
Mask = 0x1000000
}
#endregion
//gotta play with haven't cared yet did a blah fix for time
#region Nested type: UnitAuras
/// <summary>
/// reversed from CGUnit_C__GetAura
/// </summary>
internal enum UnitAuras : uint
{
//AuraCount1 = 0x484,
//AuraCount2 = 0x1AD0,
AuraTable1 = 0x1AD0,
AuraTable2 = 0x1AC8,
AuraSize = 0xA8, // good
AuraSpellId = 0x88, // good
AuraStack = 0x39,
TimeLeft = 0x40,
OwnerGUID = 0x20,
AuraTableOffset = 0x00,
AuraFlags = 0x90,
AuraLevel = 0x92,
}
#endregion
//good-33526
#region Nested type: UnitName
/// <summary>
/// classic
/// </summary>
internal enum UnitName : uint
{
ObjectName1 = 0x478, // good
ObjectName2 = 0xE0, // good
PlayerNameGUIDOffset = 0x20, // good
PlayerNameStringOffset = 0x31, // good
PlayerNameCachePointer = 0x1F91B18, // good-33526
PlayerNameCacheNext = 0x0,
UnitName1 = 0x17B8, // good
UnitName2 = 0xE0, // good
}
#endregion
//good-33526
#region Nested type: UnitSpeed
/// <summary>
/// classic
/// </summary>
internal enum UnitSpeed
{
Pointer1 = 0x198, // good
Pointer2 = 164, // good
}
#endregion
//good-33526
#region Nested type: WowObject
/// <summary>
/// classic
/// </summary>
internal enum WowObject
{
X = 0x1600, // good ?
Y = X + 0x4,
Z = X + 0x8,
RotationOffset = X + 0x10,
Pitch = X + 0x14,
GameObjectX = 0x1B0,
GameObjectY = GameObjectX + 0x4,
GameObjectZ = GameObjectX + 0x8,
GameObjectRotation = GameObjectX + 0x10,
TransportGuid = 0x15F0
}
#endregion
//good-33526
#region Nested type: Zone
/// <summary>
/// classic
/// </summary>
internal enum Zone : uint
{
ZoneText = 0x2589AE0, // good-33526
ZoneID = 0x258A72C, // good-33526
GetSubZoneText = 0x2589AD0, //good-33526
GetContinentID = 0x1FAC97C, // good-33526
GetContinentIDOffset = 0x218,//good-33526
}
#endregion
//good-33526
#region Nested type: UiFrame
internal enum UiFrame
{
// These Two now Plus 8 not 4 for anyone trying to update UiFrame
//for (IntPtr i = Memory.Read<IntPtr>(num + (int)Pointers.UiFrame.FirstFrame); i != IntPtr.Zero; i = Memory.Read<IntPtr>((i + Memory.Read<int>(num + (int)Pointers.UiFrame.NextFrame)) + 8))
//for (IntPtr i = Memory.Read<IntPtr>(this.baseAddress + (int)Pointers.UiFrame.RegionsFirst); (i != IntPtr.Zero) && ((i.ToInt64() & 1) == 0); i = Memory.Read<IntPtr>((i + Memory.Read<int>(this.baseAddress + (int)Pointers.UiFrame.RegionsNext)) + 8))
ScrWidth = 0x1F908B4, //good-33526
ScrHeight = 0x1F908B8, //good-33526
FrameBase = 0x22A8D28, // good-33526
CurrentFramePtr = 0x22A8D28, // good-33526
//GetMouseFocus
CurrentFrameOffset = 0x1A0, // Good
FirstFrame = 0xCD0, // Good
NextFrame = 0xCC0, // Good
LastFrame = 0x0CC8, // idn they added a extra check ?? reminder to test this
RegionsFirst = 0x1A8, //Good
RegionsNext = 0x198, //Good
//CSimpleSlider_IsShown_1 // Script_IsVisible_class2
Visible = 0xC8, //good
Visible1 = 0xA, //good one function uses 9 other 0xA
Visible2 = 1, // good
// CSimpleSlider_GetText
LabelText = 0x188, //good
Name = 0x20, // good
FrameBottom = 0x90,
FrameLeft = 0x94,
FrameTop = 0x98,
FrameRight = 0x9C,
// CSimpleSlider_GetEffectiveScale
EffectiveScale = 0xC0,
//Script_SetParent
ParentFrame = 0xD0, // good
// no fing clue
IconNumber = 0xF0,
//CSimpleSlider_IsEnabled
ButtonEnabledPointer = 0x210, //Good
ButtonEnabledMask = 0xF, //Good
//CSimpleSlider_GetChecked
ButtonChecked = 0x268, //Good
EditBoxText = 0x238 , // old 0x210
}
#endregion
}
}