-
Member
[TBC Classic] [2.5.2.39926]
should work
Edit: find out that AuraTable offset was wrong, now it's good. Not sure about the entire aura struct coz I don't use it, but spellId is right.
Code:
class Offsets
{
public static class Player
{
public static int LocalGuid = 0x2D2ACE0;//old:0x2B92B50;
public static int CurrentRage = (0x19 * 4);
public static int CurrentEnergy = (0x1B * 4);
public static int MaxEnergy = (0x23 * 4);
public static int PlayerInformation = 0x198;
public static int PlayerPositionX = 0x20;
public static int PlayerPositionY = PlayerPositionX + sizeof(float);
public static int PlayerPositionZ = PlayerPositionX + sizeof(float) * 2;
public static int PlayerFacing = 0x1604;
}
public static class Chat
{
// 48 8D 15 ? ? ? ? 4C 8D 05 ? ? ? ? 80 BA
public const int ChatStart = 0x3042D90; //old:0x2EA58C0;
// 8B 0D ? ? ? ? B8 ? ? ? ? 03 CE F7 E9
public const int chatBufferPos = 0x30728D0;//old:0x2ED5400; // ?
public const int OffsetToNextMsg = 0xCB8;
public const int MsgSenderGuid = 0x00;
public const int MsgSenderName = 0x34;
public const int MsgFullMessage = 0xE6;
public const int MsgChatType = 0xCA0;
public const int MsgChannelNum = 0xCA4;
public const int MsgTimeStamp = 0xCB0;
public const int ChatQueueDepth = 0x3C;
}
public static class ObjectManager
{
public static int LastRedMessage = 0x30418A0;//old:0x2EA4340;
public static int LoadingWindow = 0x2D14030;//old:0x2B7EE10;
public static int IsInGame = 0x3042A64;//old:0x2EA55B0;
public static int MapId = 0x304245C;//old:0x2EA4EFC;
public static int MouseOverGuid = 0x3042A88; //old:0x2EA55B8;;
public static int ObjectManagerBase = 0x2E4EBA8;//old:0x2CB87C8;
public static int FirstObject = 0x18;
public static int NextObject = 0x70;
}
public static class WowObject
{
public static int X = 0x1600;
public static int Y = X + sizeof(float);
public static int Z = X + sizeof(float) * 2;
public static int Rotation = X + 0x10;
public static int DescriptorFields = 0x10;
public static int Pitch = X + 0x14;
public static int Type = 0x20;
public static int Guid = 0x58;
}
public static class UnitAuras
{
public static int AuraCount1 = 0x1B20;
public static int AuraCount2 = 0x1B28;
public static int AuraTable1 = 0x1B28;
public static int AuraTable2 = 0x1B20;
public static int AuraSize = 0xB0;
public static int AuraSpellId = 0x88;
public static int AuraStack = 0x39;
public static int TimeLeft = 0x40;
public static int OwnerGUID = 0x20;
public static int AuraTableOffset = 0x00;
public static int AuraFlags = 0x90;
public static int AuraLevel = 0x92;
}
public static class Camera
{
// Active player created
//48 8B 05 ? ? ? ? 48 8B 88 ? ? 00 00 48 8B 43
public static int CameraPointer = 0x3124398;//old:0x2F89740;
public static int CameraOffset = 0x38E0;//old:0x38D8;
public static int Fov = 0x40;
public static int Position = 0x10;
public static int ViewMatrix = 0x1C;
}
public static class Unit
{
public static int Level = 0x134;
public static int CurrentHealth = 0xDC;
public static int MaxHealth = 0xFC;
public static int DynamicFlags = 0x14;
public static int CurrentMana = 0xE4;
public static int MaxMana = 0x104;
public static int Target = 0x9C;
}
}
Last edited by tayl; 09-01-2021 at 08:48 AM.
-
Post Thanks / Like - 2 Thanks
aeo,
Razzue (2 members gave Thanks to tayl for this useful post)
-
-
Post Thanks / Like - 2 Thanks
tayl,
Xion1704 (2 members gave Thanks to Razzue for this useful post)
-
Active Member
Targeting GUIDS offsets are as follows: (starts at GameBase + 0x2DA0940 )
Code:
public const int Target = 0x2DA0940;
public const int LastTarget = 0x2DA0950;
public const int LastEnemy = 0x2DA0960;
public const int LastFriend = 0x2DA0970;
public const int Focus = 0x2DA0980;
-
Contributor
Originally Posted by
Razzue
Code:
public class _252_39926
{
// Patterns tested on 2.5.1 (39603, 39640) and 2.5.2 (39926)
public class ClickToMove
{
// 48 8B 05 ? ? ? ? 83 78 ? ? 74 ? F6 81 ? ? ? ? ? 75 ? B0
public const int Base = 0x3042680;
public const int Offset = 0x5C;
}
public class Addon
{
// 48 8D 0D ? ? ? ? 49 8B 5D
public const int Count = 0x30C7720;
public const int List = 0x8;
}
public class AutoLoot
{
// 48 8B 05 ? ? ? ? 48 8B CE 8B 50
public const int Base = 0x30426C8;
public const int Offset = 0x5C;
}
public class CorpsePos
{
// 48 8D 0D ? ? ? ? 89 6C 24 ? 0F 11 05
public const int X = 0x2C2EAA0;
public const int Y = X + 0x4;
public const int Z = X + 0x8;
}
public class ActionBar
{
// 4C 8D 1D ? ? ? ? BB ? ? ? ? 0F 1F 40 ? 41 8B 0B
public const int FirstSlot = 0x30855A0;
public const int Bonus = FirstSlot + 0x240;
// 3B 1D ? ? ? ? 74 ? 89 1D ? ? ? ? E8 ? ? ? ? 33 C0
public const int Current = 0x3085BF4;
}
public class AutoAttack
{
// 3B 15 ? ? ? ? 44 89 25
public const int IsAutoRepeatingSpell = 0x2DB1730;
public const int IsInMelee = 0xAF6C;
public const int IsInMelee1 = 0x18A8;
public const int AutoAttackFlag = 0xEE8;
public const int AutoAttackMask = 0xEEC;
public const int AutoAttackGUID = 0xAF6C;
}
public class PlayerNames
{
// 48 8D 0D ? ? ? ? E8 ? ? ? ? 48 85 C0 74 ? 45 33 C9 48 8D 54 24 ? 41 B8 ? ? ? ? 48 8B C8 E8 ? ? ? ? 48 8B C8 45 33 C0
public const int PlayerNameCache = 0x2A0A8A0;
public const int NameCacheNext = 0x0;
public const int NameGUIDOffset = 0x20;
public const int NameStringOffset = 0x31;
}
public class CastingInfo
{
public const int IsCasting2 = 0x19B0;
public const int IsCasting = 0x19B0;
public const int IsCastNotInterruptible = 0x1904;
public const int ChanneledCasting2 = 0x1A08;
public const int ChanneledCasting = 0x19C0;
}
public class Chat
{
// 48 8D 15 ? ? ? ? 4C 8D 05 ? ? ? ? 80 BA
public const int ChatStart = 0x3042D90;
// 8B 0D ? ? ? ? B8 ? ? ? ? 03 CE F7 E9
public const int chatBufferPos = 0x30728D0; // ?
public const int OffsetToNextMsg = 0xCB8;
public const int MsgSenderGuid = 0x00;
public const int MsgSenderName = 0x34;
public const int MsgFullMessage = 0xE6;
public const int MsgChatType = 0xCA0;
public const int MsgChannelNum = 0xCA4;
public const int MsgTimeStamp = 0xCB0;
public const int ChatQueueDepth = 0x3C;
}
public class Messages
{
// 48 8D 0D ? ? ? ? 41 B8 ? ? ? ? 48 8D 95 ? ? ? ? 0F 1F 40
public const int EventMessage = 0x30418A0;
}
public class Container
{
// 48 8D 0D ? ? ? ? 48 03 C0 0F 10 44 C1 ? 0F 11 44 24 ? EB
public const int EquippedBagGUID = 0x3092120;
}
public class KeyBinding
{
// 66 0F 6E 0D ? ? ? ? F3 0F E6 C9 E8 ? ? ? ? B8 ? ? ? ? 48 83 C4 ? C3 ? 40 57 48 83 EC
public const int NumKeyBindings = 0x2D294D0;
public const int First = 0x28;
public const int Next = 0x18;
public const int Key = 0x30;
public const int Command = 0x58;
}
public class UIFrames
{
// F3 0F 59 05 ? ? ? ? F3 0F 11 06 48 85 FF
public const int ScreenWidth = 0x2A08E64;
public const int ScreenHeight = ScreenWidth + 0x4;
// 48 8B 15 ? ? ? ? 48 89 15 ? ? ? ? 88 0D
public const int Base = 0x2D9A9A0;
public const int First = 0xF18;
public const int Next = 0xF08;
public const int rText = 0x280;
public const int rFirst = 0x2A0;
public const int rNext = 0x290;
}
public class Guids
{
// 48 8D 0D ? ? ? ? E8 ? ? ? ? 48 85 C0 74 ? 4C 8B C7 48 8D 0D
public const int Mouseover = 0x3042A88;
// 48 8D 0D ? ? ? ? E8 ? ? ? ? 48 83 BC 24 ? ? ? ? ? 7C ? 48 8B 8C 24 ? ? ? ? 48 8D 15 ? ? ? ? 45 33 C9 45 8D 41 ? E8 ? ? ? ? 48 81 C4
public const int Player = 0x2D2ACE0;
public const int Target = 0x2AA30C0; // Is Wrong
public const int Focus = 0x2AA3118; // Is Wrong
// 48 89 05 ? ? ? ? 48 89 05 ? ? ? ? 89 05 ? ? ? ? 89 05 ? ? ? ? 88 05
public const int Pet = 0x307F0C8; // Untested
}
public class ObjectManager
{
// 4C 8B 05 ? ? ? ? 45 33 F6
public const int Base = 0x2E4EBA8;
public const int First = 0x18;
public const int Next = 0x70;
public const int Type = 0x20;
public const int Guid = 0x58;
public const int Storage = 0x10;
// E8 ? ? ? ? 48 8D 4C 24 ? 48 8B D8 E8 ? ? ? ? 4C 89 74 24 -> Decompile first sub in function
public const int PlayerName = 0x2D2ACF8;
// 44 8B 25 ? ? ? ? 47 89 A4 08
public const int MapID = 0x304245C;
// 0F 10 01 0F 11 05 ? ? ? ? C3 ? 4C 89 44 24
public const int LootWindow = 0x307F1B0;
}
public class Combat
{
public const int First = 0x188;
public const int Last = 0x158;
public const int Mask = 19;
}
public class ObjectInfo
{
public const int ID = 0x0528;
public const int Guid = 0x58;
public const int Position = 0x1B0;
public const int Name_First = 0x478;
public const int Name_Last = 0xE0;
}
public class CreatureRank
{
public const int Offset1 = 0x1800;
public const int offset2 = 0x34;
}
public class CreatureType
{
public const int Offset1 = 0x1800;
public const int offset2 = 0x30;
}
public class Skinning
{
public const int Flag1 = 0x1800;
public const int Flag2 = 0x0CC;
}
public class NpcName
{
public const int Name_First = 0x1800;
public const int Name_Last = 0xF8;
public const int Name_Size = 30;
}
public class Camera
{
public const int Base = 0x3124398;
public static int Offset = 0x38E0;
public static int Fov = 0x40;
public static int X = 0x10; // y = +4, z = +8
public static int ViewMatrix = 0x1C
}
}
No promises everything works as it should, was just a quick update.
forgot:
Code:
public class Spellbooks
{
// 4C 8B 25 ? ? ? ? 44 8B C8
public const int PlayerSpellbook = 0x3076508;
public const int PlayerSpellCount = 0x3076500;
// 8B 15 ? ? ? ? 85 D2 74 ? 4C 8B 05 ? ? ? ? 66 90
public const int PetSpellbook = 0x3076528;
public const int PetSpellCount = 0x3076520;
}
Did you test the casting offsets, I belive they al shifted by 0x10?
-
Can confirm that the casting offsets aren't correct at the moment will try update them in a bit
-
-
Post Thanks / Like - 1 Thanks
Xion1704 (1 members gave Thanks to Razzue for this useful post)
-
-
Post Thanks / Like - 1 Thanks
Xion1704 (1 members gave Thanks to Razzue for this useful post)