-
Active Member
[TBC Classic] [2.5.3.41812]
Code:
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Offset_Manager
{
public class Offsets_41812
{
public class Scripts
{
public const int ScriptIsAutoRepeatSpell = 0x15FE400;
}
public class Guids
{
public const int Mouseover_Guid = 0x312D6D8;
public const int Pet_Guid = 0x3169DB8;
public const int Player_Guid = 0x2C65230;
public const int Target_Guid = 0x2CE0158;
public const int Last_Target_Guid = 0x2CE0168;
public const int Last_Enemy_Guid = 0x2CE0178;
public const int Last_Friendly_Guid = 0x2CE0188;
public const int Focus_Guid = 0x2CE0198;
public const int DialogWindowOwner_Guid = 0x2CE01A8;
public const int Bag_Guid = 0x317CE30;
}
public class Global_Data
{
public const int In_Game_Status = 0x312D6D0;
public const int Player_Name = 0x2C65248;
public const int Corpse_Position = 0x2B6BC50;
public const int Last_Ui_Message = 0x30096;
public const int Loot_Window = 0x3169EC8;
}
public class Quests
{
public const int Base = 0x3172D00;
public const int NumQuests = 0x3172B40;
public const int CurrentQuest = 0x319A744;
public const int QuestTitle = 0x31A5890;
public const int GossipQuests = 0x3163708;
public const int NumQuestChoices = 0x31A9D40;
public const int QuestReward = 0x31A9D48;
}
public class Auto_Loot
{
public const int Base = 0x312D318;
public const int Offset = 0x5C;
}
public class Click_To_Move
{
public const int Base = 0x312D2D0;
public const int Offset = 0x5C;
}
public class Chat
{
public const int Open = 0x2F00F54;
public const int Start = 0x312F100;
public const int Offset = 0xCB8;
public const int Message = 0xE6;
}
public class Key_Bindings
{
public const int Base = 0x30096;
}
public class Add_On
{
public const int Count = 0x300905F;
public const int List = 0x3009067;
}
public class Spellbooks
{
public const int Count = 0x3161200;
public const int Base = 0x3161208;
public const int PetBase = 0x3161230;
public const int PetCount = 0x3161228;
}
public class Object_Manager
{
public const int Zone_ID = 0x312D168;
public const int Names = 0x2B4BE90;
public const int Base = 0x2F8F0F8;
public const int Cooldown = 0x2EF0DA0;
}
public class Battlegrounds
{
public const int Finished = 0x3168F2C;
public const int Winner = 0x3168F30;
public const int Info = 0x2B75B18;
}
public class Camera
{
public const int Base = 0x320F548;
public const int Offset = 0x38E0;
}
}
}
Thanks @Razzue for the dumper!
-
Post Thanks / Like - 2 Thanks
-
Member
Just a heads-up:
it seems unit descriptor offset or the struct has changed, getting weird reads for health, level, etc.., investigating later
-
Active Member
Yes, I'm getting some funny results as well. Investigating.
-
Yea a few patterns have broken namely key binds and addons.
I am sure Razzure will update them in a few
-
-
Post Thanks / Like - 1 Thanks
klumpen (1 members gave Thanks to Razzue for this useful post)
-
Active Member
Furthermore, it seems to me the offset(s) for grabbing a Unit name has changed ( on 2.5.2-41510 I leveraged unit.base->0x1800->0xF8 ) .
-
-
Member
Originally Posted by
swnt
Just a heads-up:
it seems unit descriptor offset or the struct has changed, getting weird reads for health, level, etc.., investigating later
Level = 0x140,
CurrentHealth = 0xDC,
MaxHealth = 0x100,
CurrentMana = 0xE4,
MaxMana = 0x108,
-
Active Member
I can confirm that the UnitName offsets ( 0x1858; 0xF8 )as well as the UnitInfo offsets ( 0x140;0xDC;0x100;0xE4;0x108 ) work fine. Thanks guys!
Hope you don't mind me asking how you got the new values out this quickly?
I'm cr@p at this stuff, currently attempting to find the values we've seen in the thread so far through IDA(free)).
-
-
Member
Originally Posted by
klumpen
I can confirm that the UnitName offsets ( 0x1858; 0xF8 )as well as the UnitInfo offsets ( 0x140;0xDC;0x100;0xE4;0x108 ) work fine. Thanks guys!
Hope you don't mind me asking how you got the new values out this quickly?
I'm cr@p at this stuff, currently attempting to find the values we've seen in the thread so far through IDA(free)).
i read as previous value + 0x4 * i in loop. this is how I find several desired values at once and compare them in the game.
-
Contributor
Avid Ailurophile
So far after testing a few fields and looking around, seems like TBC is using the same descriptor offsets as SOM is at the moment. Here's what i was using for the 2 clients for example.
Version == 1 => Season of mastery
Version == 2 => Burning Crusade.
Code:
public class Unit
{
public static int CastID => Version == 1 ? 0x1A40 : Version == 2 ? 0x19E8 : 0x0;
public static int CastStart => Version == 1 ? 0x1A68 : Version == 2 ? 0x1A10 : 0x0;
public static int CastEnd => Version == 1 ? 0x1A6C : Version == 2 ? 0x1A14 : 0x0;
public static int ChanID => Version == 1 ? 0x1A70 : Version == 2 ? 0x1A18 : 0x0;
public static int ChanStart => Version == 1 ? 0x1A78 : Version == 2 ? 0x1A20 : 0x0;
public static int ChanEnd => Version == 1 ? 0x1A7C : Version == 2 ? 0x1A24 : 0x0;
public static int Rotation => Version == 1 ? 0x1610 : Version == 2 ? 0x15C8 : 0x0;
public static int Pitch => Version == 1 ? 0x1614 : Version == 2 ? 0x15CC: 0x0;
public static int Location => Version == 1 ? 0x1600 : Version == 2 ? 0x15B8 : 0x0;
public const int Charmer = 0x4C; // -> To DO
public const int Summoner = 0x5C; // -> To DO
public const int Creator = 0x6C; // -> To DO
public const int Master = 0x7C; // -> To DO
public const int Target = 0x9C; // SOM & TBC
public const int Gender = 0xD0; // SOM & TBC
public const int PowerType = 0xD4; // SOM & TBC
public const int Health = 0xDC; // SOM & TBC
public const int Power1 = 0xE4; // SOM & TBC
public const int Power2 = 0xE8; // SOM & TBC
public const int Power3 = 0xEC; // SOM & TBC
public const int Power4 = 0xF0; // SOM & TBC
public static int MaxHealth => Version == 1 ? 0x100 : Version == 2 ? 0xFC : 0x0;
public static int MaxPower1 => Version == 1 ? 0x108 : Version == 2 ? 0x104 : 0x0;
public static int MaxPower2 => Version == 1 ? 0x10C : Version == 2 ? 0x108 : 0x0;
public static int MaxPower3 => Version == 1 ? 0x110 : Version == 2 ? 0x10C : 0x0;
public static int MaxPower4 => Version == 1 ? 0x114 : Version == 2 ? 0x110 : 0x0;
public static int Level => Version == 1 ? 0x140 : Version == 2 ? 0x134 : 0x0;
public static int Faction => Version == 1 ? 0x164 : Version == 2 ? 0x158 : 0x0;
public static int Flag1 => Version == 1 ? 0x180 : Version == 2 ? 0x174 : 0x0;
public static int Flag2 => Version == 1 ? 0x184 : Version == 2 ? 0x178 : 0x0;
public static int Flag3 => Version == 1 ? 0x188 : Version == 2 ? 0x17C : 0x0;
public static int DisplayID => Version == 1 ? 0x1A4 : Version == 2 ? 0x198 : 0x0;
public static int MountID => Version == 1 ? 0x1B4 : Version == 2 ? 0x1A8 : 0x0;
public static int NpcFlag => Version == 1 ? 0x1F8 : Version == 2 ? 0x1EC : 0x0;
public static int Name1 => Version == 1 ? 0x1858 : Version == 2 ? 0x1800 : 0x0;
public const int Name2 = 0xF8;
}
Code:
internal class Creature_Rank{
public static int Offset1 => Version == 1 ? 0x1858 : Version == 2 ? 0x1800 : 0x0;
public static int Offset2 = 0x38;
}
internal class Creature_Family
{
public static int Offset1 => Version == 1 ? 0x1858 : Version == 2 ? 0x1800 : 0x0;
public static int Offset2 = 0x34;
}
internal class Creature_Type
{
public static int Offset1 => Version == 1 ? 0x1858 : Version == 2 ? 0x1800 : 0x0;
public static int Offset2 = 0x30;
}
Code:
public class Player{
public static int LootTarget => Version == 1 ? 0x388 : Version == 2 ? 0x37C : 0x0;
public static int Flags1 => Version == 1 ? 0x398 : Version == 2 ? 0x38C : 0x0;
public static int Flags2 => Version == 1 ? 0x39C : Version == 2 ? 0x390 : 0x0;
public const int Realm = 0xA90;
public const int SpecID = 0xA94;
public const int ItemLevel = 0xA9C;
public const int HonorLevel = 0xAB8;
}
public class LPlayer
{
public const int ComboTarget = 0x13FC;
public static int Money => Version == 1 ? 0x1450 : Version == 2 ? 0x144C : 0x0;
public static int Experience => Version == 1 ? 0x1458 : Version == 2 ? 0x1454 : 0x0;
public static int NextLevelXP => Version == 1 ? 0x145C : Version == 2 ? 0x1458 : 0x0;
public const int CharPoints = 0x2260;
public const int Speed = 0x22C8;
public const int Flags1 = 0x2B08;
}
public class GObject
{
public const int Name1 = 0x478;
public const int Name2 = 0xE0;
public const int DisplayID = 0x3C;
public const int Creator = 0x1C;
public const int Flags = 0x40;
public const int Location = 0x1B0;
}
Not too sure about GameObjects as i have yet to inspect them this patch, we'll see :shrug:
-
Post Thanks / Like - 4 Thanks
-
I will also share what I just found
GameObject + 0x4E0 Fishing splash animation
Hello everyone, I'm a newbie~ Recently I'm trying to study how to execute API externally and get the return value of API, as well as the release of aoe spells, come on!
-
Member
Originally Posted by
qop1832
I will also share what I just found
GameObject + 0x4E0 Fishing splash animation
thank u, my fish bot revived
-
Member
ActionBar.Base:0X3170290
also share what i found