[TBC Classic] [2.5.2 40892] menu

User Tag List

Page 1 of 2 12 LastLast
Results 1 to 15 of 25
  1. #1
    Razzue's Avatar Contributor Avid Ailurophile

    CoreCoins Purchaser Authenticator enabled
    Reputation
    378
    Join Date
    Jun 2017
    Posts
    588
    Thanks G/R
    184/267
    Trade Feedback
    2 (100%)
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)

    [TBC Classic] [2.5.2 40892]

    Ugly formatting... sorry

    Code:
    --[Globals]--
    -> GameStatus: 0x30C7F34
    -> PlayerName: 0x2DAFCF8
    -> PlayerGUID: 0x2DAFCE0
    -> PetGUID: 0x31045A8
    -> TargetGUID: 0x2E25E00
    -> MouseoverGUID: 0x30C7F58
    -> BagGUID: 0x3117600
    -> ZoneID: 0x30C6E2C
    -> LastMessage: 0x30C6E30
    -> IsIndoors: 0x2E24815
    -> MousePressed: 0x2E1F19C // ??
    -> LootWindowOpen: 0x31046B8
    -> CorpsePosition: 0x2CB3AF0
    
    
    --[QuestManager]--
    -> Base: 0x310D4A0  // ??
    -> NumQuests: 0x310D2E0
    -> CurrentQuest: 0x3134EE4
    -> QuestTitle: 0x3140030
    -> GossipQuests: 0x30FDEE8
    -> NumQuestChoices: 0x31444E0
    -> QuestReward: 0x31444E8
    
    --[AutoLoot]--
    -> Toggle: 0x30C7B98
    -> Offset: 0x5C
    
    --[ClickToMove]--
    -> Toggle: 0x30C7B50
    -> Offset: 0x5C
    
    --[Chat]--
    -> ChatOpen: 0x2E46C34
    -> Start: 0x30C8270
    -> Offset: 0xCB8
    -> Message: 0xE6
    
    --[Keybinds]--
    -> Base: 0x2DAEB18
    
    --[Addon]--
    -> Base: 0x314CC40
    
    --[Spellbooks]--
    -> Base: 0x30FB9E8
    -> Count: 0x30FB9E0
    -> PetBase: 0x30FBA08
    -> PetCount: 0x30FBA00
    
    --[Battleground]--
    -> Finished: 0x310370C
    -> Winner: 0x3103710
    -> Info: 0x2CBD830
    
    --[ObjectManager]--
    -> NameCache: 0x2A8F8A0
    -> Base: 0x2ED4058
    
    --[PowerIndex]--
    -> Arrays: 0x2E917A0
    -> Invalid: 0x40C60BD
    -> Multiplicator: 0x13 // ??
    
    --[Cooldowns]--
    -> Base: 0x2E36A30
    
    --[GameCamera]--
    -> Base: 0x31A9CB8
    -> Offset: 0x38E0
    Code:
    public class Fields
    {
        public class Unit
        {
            public const int CharmerGUID = 0x4C;
            public const int SummonerGUID = 0x5C;
            public const int CreatorGUID = 0x6C;
            public const int MasterGUID = 0x7C;
            public const int TargetGUID = 0x9C;
            public const int Sex = 0xD0;
            public const int PowerType = 0xD4;
            public const int Health = 0xDC;
            public const int Power = 0xE4;
            public const int ComboPoints = 0xE8;
            public const int MaxHealth = 0xFC;
            public const int MaxPower = 0x104;
            public const int MaxCombo = 0x108;
            public const int Level = 0x134;
            public const int FactionTemplate = 0x158;
            public const int Flags1 = 0x174;
            public const int Flags2 = 0x178;
            public const int Flags3 = 0x17C;
            public const int BoundingRadius = 0x190;
            public const int CombatRange = 0x194;
            public const int DisplayID = 0x198;
            public const int DisplayScale = 0x19C;
            public const int MountDisplayID = 0x1A8;
            public const int NpcFlags = 0x1EC;
    
            // These are added to unit base, not descriptors.
            public const int CastID = 0x19E8;
            public const int CastStart = 0x1A10;
            public const int CastEnd = 0x1A14;
    
            public const int ChannelID = 0x1A18;
            public const int ChannelStart = 0x1A20;
            public const int ChannelEnd = 0x1A24;
    
            public const int Position = 0x15B8;
            public const int Rotation = 0x15C8;
    
            public const int CombatFirst = 0x188;
            public const int CombatLast = 0x158;
            public const int CombatMask = 19;
        }
        
        public class Player
        {
            public const int LootTargetGUID = 0x37C;
            public const int PlayerFlags = 0x8C;
            public const int PlayerFlagsEx = 0x390;
            public const int Inebriation = 0x3A0;
            public const int PvpRank = 0x3A4;
            public const int DuelTeam = 0x3A8;
            public const int vPlayerRealm = 0xA90;
            public const int SpecID = 0xA94;
            public const int TaxiMountAnim = 0xA98;
            public const int ItemLevel = 0xA9C;
            public const int HonorLevel = 0xAB8;
        }
        
        public class LocalPlayer
        {
            public const int comboTarget = 0x13FC;
            public const int Money = 0x144C;
            public const int Experience = 0x1454;
            public const int NextLevelXP = 0x1458;
            public const int CharacterPoints = 0x2260;
            public const int MaxTalentTiers = 0x2264;
            public const int TrackCreatureMask = 0x2268;
            public const int TrackResourceMask = 0x226C;
            public const int Speed = 0x22C8;
            public const int LocalFlags = 0x2B08;
        }
        
        public class Object
        {
            public const int NameFirst = 0x478;
            public const int Location = 0x1B0;
            public const int NameLast = 0xE0;
            public const int Creator = 0x1C;
            public const int DisplayID = 0x3C;
            public const int Flags = 0x040;
            public const int FactionTemplate = 0x54;
            public const int Level = 0x58;
            public const int HealthPercent = 0x5C;
        }
    }
    Last edited by Razzue; 11-04-2021 at 03:20 PM.

    [TBC Classic] [2.5.2 40892]
  2. Thanks aeo, maikel233 (2 members gave Thanks to Razzue for this useful post)
  3. #2
    yezack's Avatar Member
    Reputation
    13
    Join Date
    Oct 2021
    Posts
    38
    Thanks G/R
    1/7
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    thanks alot,works well with my python bot
    but i need Macro base & offset,can you find out it?thx
    i want rewrite the macro content in realtime to cast all spell by one key
    Last edited by yezack; 11-04-2021 at 12:30 PM.

  4. Thanks ChrisIsMe (1 members gave Thanks to yezack for this useful post)
  5. #3
    aeo's Avatar Contributor
    Reputation
    126
    Join Date
    Apr 2007
    Posts
    270
    Thanks G/R
    84/62
    Trade Feedback
    7 (100%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by yezack View Post
    thanks alot,works well with my python bot
    but i need Macro base & offset,can you find out it?thx
    i want rewrite the macro content in realtime to cast all spell by one key
    Why dont you look at an old version of the game you had offsets for and find the new ones yourself? Crazy idea right?

  6. Thanks Razzue (1 members gave Thanks to aeo for this useful post)
  7. #4
    oiramario's Avatar Established Member
    Reputation
    85
    Join Date
    Mar 2021
    Posts
    133
    Thanks G/R
    36/51
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Code:
    #ifndef  _wow_database_hpp__
    #define  _wow_database_hpp__
    
    #include  <cstdint>
    
    // 2.5.2.40892
    namespace DataBase {
    
    const uint64_t DB_ChrClasses                           = 0x02DCAA80;
    const uint64_t DB_ChrRaces                             = 0x02DCAC70;
    const uint64_t DB_ChrSpecialization                    = 0x02DCAE60;
    const uint64_t DB_ConfigurationWarning                 = 0x02DCB050;
    const uint64_t DB_Cfg_Configs                          = 0x02DCB240;
    const uint64_t DB_GameTips                             = 0x02DCB430;
    const uint64_t DB_MapDifficultyXCondition              = 0x02DCB620;
    const uint64_t DB_Difficulty                           = 0x02DCB810;
    const uint64_t DB_PlayerCondition                      = 0x02DCBA00;
    const uint64_t DB_LoadingScreens                       = 0x02DCBBF0;
    const uint64_t DB_LoadingScreenTaxiSplines             = 0x02DCBDE0;
    const uint64_t DB_MapLoadingScreen                     = 0x02DCBFD0;
    const uint64_t DB_TaxiPathNode                         = 0x02DCC1C0;
    const uint64_t DB_UiMapArtStyleLayer                   = 0x02DCC3B0;
    const uint64_t DB_UiMapArtTile                         = 0x02DCC5A0;
    const uint64_t DB_TaxiPath                             = 0x02DCC790;
    const uint64_t DB_UiMapArt                             = 0x02DCC980;
    const uint64_t DB_UiCanvas                             = 0x02DCCB70;
    const uint64_t DB_CreatureDisplayInfo                  = 0x02DCCD60;
    const uint64_t DB_CreatureModelData                    = 0x02DCCF50;
    const uint64_t DB_SDReplacementModel                   = 0x02DCD140;
    const uint64_t DB_Vehicle                              = 0x02DCD330;
    const uint64_t DB_VehicleSeat                          = 0x02DCD520;
    const uint64_t DB_SpellKeyboundOverride                = 0x02DCD710;
    const uint64_t DB_SpellEffect                          = 0x02DCD900;
    const uint64_t DB_SpellName                            = 0x02DCDE80;
    const uint64_t DB_CharComponentTextureLayouts          = 0x02DCE070;
    const uint64_t DB_CharComponentTextureSections         = 0x02DCE260;
    const uint64_t DB_ChrCustomizationBoneSet              = 0x02DCE450;
    const uint64_t DB_ChrCustomizationChoice               = 0x02DCE640;
    const uint64_t DB_ChrCustomizationCondModel            = 0x02DCE830;
    const uint64_t DB_ChrCustomizationElement              = 0x02DCEA20;
    const uint64_t DB_ChrCustomizationGeoset               = 0x02DCEC10;
    const uint64_t DB_ChrCustomizationMaterial             = 0x02DCEE00;
    const uint64_t DB_ChrCustomizationOption               = 0x02DCEFF0;
    const uint64_t DB_ChrCustomization                     = 0x02DCF1E0;
    const uint64_t DB_ChrCustomizationReq                  = 0x02DCF3D0;
    const uint64_t DB_ChrCustomizationSkinnedModel         = 0x02DCF5C0;
    const uint64_t DB_ChrCustItemGeoModify                 = 0x02DCF7B0;
    const uint64_t DB_ChrModelMaterial                     = 0x02DCF9A0;
    const uint64_t DB_ChrModel                             = 0x02DCFB90;
    const uint64_t DB_ChrModelTextureLayer                 = 0x02DCFD80;
    const uint64_t DB_ComponentModelFileData               = 0x02DCFF70;
    const uint64_t DB_ComponentTextureFileData             = 0x02DD0160;
    const uint64_t DB_CreatureDisplayInfoGeosetData        = 0x02DD0350;
    const uint64_t DB_CreatureDisplayInfoCond              = 0x02DD0540;
    const uint64_t DB_CreatureDisplayInfoCondXChoice       = 0x02DD0730;
    const uint64_t DB_CreatureDisplayInfoExtra             = 0x02DD0920;
    const uint64_t DB_CreatureDisplayInfoOption            = 0x02DD0B10;
    const uint64_t DB_GuildColorBackground                 = 0x02DD0D00;
    const uint64_t DB_GuildColorBorder                     = 0x02DD0EF0;
    const uint64_t DB_GuildColorEmblem                     = 0x02DD10E0;
    const uint64_t DB_GuildEmblem                          = 0x02DD12D0;
    const uint64_t DB_GuildShirtBackground                 = 0x02DD14C0;
    const uint64_t DB_GuildShirtBorder                     = 0x02DD16B0;
    const uint64_t DB_GuildTabardBackground                = 0x02DD18A0;
    const uint64_t DB_GuildTabardBorder                    = 0x02DD1A90;
    const uint64_t DB_GuildTabardEmblem                    = 0x02DD1C80;
    const uint64_t DB_HelmetAnimScaling                    = 0x02DD1E70;
    const uint64_t DB_HelmetGeosetData                     = 0x02DD2060;
    const uint64_t DB_ItemAppearance                       = 0x02DD2250;
    const uint64_t DB_ItemDisplayInfo                      = 0x02DD2440;
    const uint64_t DB_ItemDisplayInfoMaterialRes           = 0x02DD2630;
    const uint64_t DB_ItemModifiedAppearance               = 0x02DD2820;
    const uint64_t DB_ItemVisualsXEffect                   = 0x02DD2A10;
    const uint64_t DB_ParticleColor                        = 0x02DD2C00;
    const uint64_t DB_TextureFileData                      = 0x02DD2DF0;
    const uint64_t DB_ChrCustomizationConversion           = 0x02DD2FE0;
    const uint64_t DB_ChrCustomizationDisplayInfo          = 0x02DD31D0;
    const uint64_t DB_ChrCustomizationReqChoice            = 0x02DD33C0;
    const uint64_t DB_ChrRaceXChrModel                     = 0x02DD35B0;
    const uint64_t DB_TransformMatrix                      = 0x02DD37A0;
    const uint64_t DB_ChrCustClientChoiceConversion        = 0x02DD3990;
    const uint64_t DB_CharacterFacialHairStyles            = 0x02DD3B80;
    const uint64_t DB_BeamEffect                           = 0x02DD3D70;
    const uint64_t DB_GradientEffect                       = 0x02DD3F60;
    const uint64_t DB_DissolveEffect                       = 0x02DD4150;
    const uint64_t DB_EdgeGlowEffect                       = 0x02DD4340;
    const uint64_t DB_NPCModelItemSlotDisplayInfo          = 0x02DD4530;
    const uint64_t DB_ShadowyEffect                        = 0x02DD4720;
    const uint64_t DB_SpellProceduralEffect                = 0x02DD4910;
    const uint64_t DB_SpellVisualAnim                      = 0x02DD4B00;
    const uint64_t DB_SpellVisualEffectName                = 0x02DD4CF0;
    const uint64_t DB_SpellVisualKitModelAttach            = 0x02DD4EE0;
    const uint64_t DB_SpellVisualKit                       = 0x02DD50D0;
    const uint64_t DB_Item                                 = 0x02DD52C0;
    const uint64_t DB_SpellVisualKitEffect                 = 0x02DD54B0;
    const uint64_t DB_SpellVisual                          = 0x02DD56A0;
    const uint64_t DB_ItemNameDescription                  = 0x02DD5890;
    const uint64_t DB_SpellFlyout                          = 0x02DD5A80;
    const uint64_t DB_GameObjectDisplayInfo                = 0x02DD5C70;
    const uint64_t DB_CreatureFamily                       = 0x02DD5E60;
    const uint64_t DB_CharShipment                         = 0x02DD6050;
    const uint64_t DB_GlyphRequiredSpec                    = 0x02DD6240;
    const uint64_t DB_ResearchSite                         = 0x02DD6430;
    const uint64_t DB_ArtifactPowerLink                    = 0x02DD6620;
    const uint64_t DB_ItemPetFood                          = 0x02DD6810;
    const uint64_t DB_ObjectEffectModifier                 = 0x02DD6A00;
    const uint64_t DB_GMSurveyAnswers                      = 0x02DD6BF0;
    const uint64_t DB_SpellFlyoutItem                      = 0x02DD6DE0;
    const uint64_t DB_ItemPriceBase                        = 0x02DD6FD0;
    const uint64_t DB_ArtifactPowerPicker                  = 0x02DD71C0;
    const uint64_t DB_GameObjectDisplayInfoXSoundKit       = 0x02DD73B0;
    const uint64_t DB_Resistances                          = 0x02DD75A0;
    const uint64_t DB_ObjectEffectPackageElem              = 0x02DD7790;
    const uint64_t DB_GMSurveyCurrentSurvey                = 0x02DD7980;
    const uint64_t DB_CreatureImmunities                   = 0x02DD7B70;
    const uint64_t DB_ArtifactPowerRank                    = 0x02DD7D60;
    const uint64_t DB_CharStartOutfit                      = 0x02DD7F50;
    const uint64_t DB_SpellFocusObject                     = 0x02DD8140;
    const uint64_t DB_ItemRandomProperties                 = 0x02DD8330;
    const uint64_t DB_GameObjects                          = 0x02DD8520;
    const uint64_t DB_RewardPack                           = 0x02DD8710;
    const uint64_t DB_OutlineEffect                        = 0x02DD8900;
    const uint64_t DB_SpellInterrupts                      = 0x02DD8AF0;
    const uint64_t DB_GMSurveyQuestions                    = 0x02DD8CE0;
    const uint64_t DB_ItemRandomSuffix                     = 0x02DD8ED0;
    const uint64_t DB_ArtifactQuestXP                      = 0x02DD90C0;
    const uint64_t DB_GMSurveySurveys                      = 0x02DD92B0;
    const uint64_t DB_TerrainTypeSounds                    = 0x02DD94A0;
    const uint64_t DB_CharTitles                           = 0x02DD9690;
    const uint64_t DB_RewardPackXCurrencyType              = 0x02DD9880;
    const uint64_t DB_SpellItemEnchantment                 = 0x02DD9A70;
    const uint64_t DB_ArtifactTier                         = 0x02DD9C60;
    const uint64_t DB_GroupFinderActivity                  = 0x02DD9E50;
    const uint64_t DB_ItemRangedDisplayInfo                = 0x02DDA040;
    const uint64_t DB_OverrideSpellData                    = 0x02DDA230;
    const uint64_t DB_ChatChannels                         = 0x02DDA420;
    const uint64_t DB_RewardPackXItem                      = 0x02DDA610;
    const uint64_t DB_SpellItemEnchantmentCondition        = 0x02DDA800;
    const uint64_t DB_PageTextMaterial                     = 0x02DDA9F0;
    const uint64_t DB_TotemCategory                        = 0x02DDABE0;
    const uint64_t DB_ItemSet                              = 0x02DDADD0;
    const uint64_t DB_ArtifactUnlock                       = 0x02DDAFC0;
    const uint64_t DB_GarrAbilityCategory                  = 0x02DDB1B0;
    const uint64_t DB_PaperDollItemFrame                   = 0x02DDB3A0;
    const uint64_t DB_ScheduledInterval                    = 0x02DDB590;
    const uint64_t DB_GarrAbility                          = 0x02DDB780;
    const uint64_t DB_Toy                                  = 0x02DDB970;
    const uint64_t DB_ParagonReputation                    = 0x02DDBB60;
    const uint64_t DB_ItemSetSpell                         = 0x02DDBD50;
    const uint64_t DB_GroupFinderActivityGrp               = 0x02DDBF40;
    const uint64_t DB_AuctionHouse                         = 0x02DDC130;
    const uint64_t DB_SoundAmbienceFlavor                  = 0x02DDC320;
    const uint64_t DB_TradeSkillCategory                   = 0x02DDC510;
    const uint64_t DB_GroupFinderCategory                  = 0x02DDC700;
    const uint64_t DB_GarrAbilityEffect                    = 0x02DDC8F0;
    const uint64_t DB_ItemSpec                             = 0x02DDCAE0;
    const uint64_t DB_AzeriteEmpoweredItem                 = 0x02DDCCD0;
    const uint64_t DB_ChrClassesXPowerTypes                = 0x02DDCEC0;
    const uint64_t DB_SpellLabel                           = 0x02DDD0B0;
    const uint64_t DB_SoundAmbience                        = 0x02DDD2A0;
    const uint64_t DB_VehicleUIIndicator                   = 0x02DDD490;
    const uint64_t DB_ChrClassRaceSex                      = 0x02DDD680;
    const uint64_t DB_CreatureMovementInfo                 = 0x02DDD870;
    const uint64_t DB_SpellLearnSpell                      = 0x02DDDA60;
    const uint64_t DB_AzeriteItem                          = 0x02DDDC50;
    const uint64_t DB_VehicleUIIndSeat                     = 0x02DDDE40;
    const uint64_t DB_Particulate                          = 0x02DDE030;
    const uint64_t DB_ItemSpecOverride                     = 0x02DDE220;
    const uint64_t DB_CreatureSpellData                    = 0x02DDE410;
    const uint64_t DB_AzeriteItemMilestonePower            = 0x02DDE600;
    const uint64_t DB_SpamMessages                         = 0x02DDE7F0;
    const uint64_t DB_SpellLevels                          = 0x02DDE9E0;
    const uint64_t DB_Path                                 = 0x02DDEBD0;
    const uint64_t DB_GarrBuilding                         = 0x02DDEDC0;
    const uint64_t DB_Vignette                             = 0x02DDEFB0;
    const uint64_t DB_TransmogHoliday                      = 0x02DDF1A0;
    const uint64_t DB_ItemSubClass                         = 0x02DDF390;
    const uint64_t DB_ChrClassTitle                        = 0x02DDF580;
    const uint64_t DB_ScalingStatDistribution              = 0x02DDF770;
    const uint64_t DB_CreatureSoundData                    = 0x02DDF960;
    const uint64_t DB_AzeritePower                         = 0x02DDFB50;
    const uint64_t DB_TransmogSet                          = 0x02DDFD40;
    const uint64_t DB_ChrClassUIDisplay                    = 0x02DDFF30;
    const uint64_t DB_SpellMechanic                        = 0x02DE0120;
    const uint64_t DB_Scenario                             = 0x02DE0310;
    const uint64_t DB_PathNode                             = 0x02DE0500;
    const uint64_t DB_GuildPerkSpells                      = 0x02DE06F0;
    const uint64_t DB_AzeritePowerSetMember                = 0x02DE08E0;
    const uint64_t DB_VocalUISounds                        = 0x02DE0AD0;
    const uint64_t DB_SpellMisc                            = 0x02DE0CC0;
    const uint64_t DB_ItemSubClassMask                     = 0x02DE0EB0;
    const uint64_t DB_ChrClassVillain                      = 0x02DE10A0;
    const uint64_t DB_ScenarioEventEntry                   = 0x02DE1290;
    const uint64_t DB_PathNodeProperty                     = 0x02DE1480;
    const uint64_t DB_ItemVisuals                          = 0x02DE1670;
    const uint64_t DB_TransmogSetGroup                     = 0x02DE1860;
    const uint64_t DB_AzeriteTierUnlock                    = 0x02DE1A50;
    const uint64_t DB_VolumeFogCondition                   = 0x02DE1C40;
    const uint64_t DB_ScenarioStep                         = 0x02DE1E30;
    const uint64_t DB_GarrBuildingDoodadSet                = 0x02DE2020;
    const uint64_t DB_TransmogSetItem                      = 0x02DE2210;
    const uint64_t DB_BannedAddons                         = 0x02DE2400;
    const uint64_t DB_WbAccessControlList                  = 0x02DE25F0;
    const uint64_t DB_PathProperty                         = 0x02DE27E0;
    const uint64_t DB_SpellMissileMotion                   = 0x02DE29D0;
    const uint64_t DB_BankBagSlotPrices                    = 0x02DE2BC0;
    const uint64_t DB_GarrClassSpec                        = 0x02DE2DB0;
    const uint64_t DB_TransportAnimation                   = 0x02DE2FA0;
    const uint64_t DB_ItemXBonusTree                       = 0x02DE3190;
    const uint64_t DB_SpellMissile                         = 0x02DE3380;
    const uint64_t DB_WbCertWhitelist                      = 0x02DE3570;
    const uint64_t DB_Phase                                = 0x02DE3760;
    const uint64_t DB_SceneScriptPackage                   = 0x02DE3950;
    const uint64_t DB_BarberShopStyle                      = 0x02DE3B40;
    const uint64_t DB_JournalEncounter                     = 0x02DE3D30;
    const uint64_t DB_Heirloom                             = 0x02DE3F20;
    const uint64_t DB_SceneScriptPackageMember             = 0x02DE4110;
    const uint64_t DB_TransportPhysics                     = 0x02DE4300;
    const uint64_t DB_PhaseShiftZoneSounds                 = 0x02DE44F0;
    const uint64_t DB_GarrClassSpecPlayerCond              = 0x02DE46E0;
    const uint64_t DB_Achievement                          = 0x02DE48D0;
    const uint64_t DB_WeaponImpactSounds                   = 0x02DE4AC0;
    const uint64_t DB_CreatureSoundFidget                  = 0x02DE4CB0;
    const uint64_t DB_BattlemasterList                     = 0x02DE4EA0;
    const uint64_t DB_SceneScript                          = 0x02DE5090;
    const uint64_t DB_JournalEncounterCreature             = 0x02DE5280;
    const uint64_t DB_CreatureType                         = 0x02DE5470;
    const uint64_t DB_GarrEncounter                        = 0x02DE5660;
    const uint64_t DB_SpellPower                           = 0x02DE5850;
    const uint64_t DB_TransportRotation                    = 0x02DE5A40;
    const uint64_t DB_WeaponSwingSounds2                   = 0x02DE5FC0;
    const uint64_t DB_CreatureXContribution                = 0x02DE61B0;
    const uint64_t DB_PhaseXPhaseGroup                     = 0x02DE63A0;
    const uint64_t DB_Achievement_Category                 = 0x02DE6590;
    const uint64_t DB_Trophy                               = 0x02DE6780;
    const uint64_t DB_SceneScriptGlobalText                = 0x02DE6970;
    const uint64_t DB_JournalEncounterItem                 = 0x02DE6B60;
    const uint64_t DB_GarrEncounterSetXEncounter           = 0x02DE6D50;
    const uint64_t DB_WeaponTrail                          = 0x02DE6F40;
    const uint64_t DB_CreatureXDisplayInfo                 = 0x02DE7130;
    const uint64_t DB_ScreenEffect                         = 0x02DE7320;
    const uint64_t DB_BattlePetAbility                     = 0x02DE7510;
    const uint64_t DB_AdventureJournal                     = 0x02DE7700;
    const uint64_t DB_UiCamFbackTransmogChrRace            = 0x02DE78F0;
    const uint64_t DB_HighlightColor                       = 0x02DE7AE0;
    const uint64_t DB_GarrEncounterXMechanic               = 0x02DE7CD0;
    const uint64_t DB_SpellPowerDifficulty                 = 0x02DE7EC0;
    const uint64_t DB_Criteria                             = 0x02DE80B0;
    const uint64_t DB_JournalEncounterSection              = 0x02DE82A0;
    const uint64_t DB_GarrFollItemSetMember                = 0x02DE8490;
    const uint64_t DB_BattlePetAbilityEffect               = 0x02DE8680;
    const uint64_t DB_UiCamFbackTransmogWeapon             = 0x02DE8870;
    const uint64_t DB_Holidays                             = 0x02DE8A60;
    const uint64_t DB_ScreenEffectType                     = 0x02DE8C50;
    const uint64_t DB_WeaponTrailModelDef                  = 0x02DE8E40;
    const uint64_t DB_GarrFollSupportSpell                 = 0x02DE9030;
    const uint64_t DB_ScreenLocation                       = 0x02DE9220;
    const uint64_t DB_WeaponTrailParam                     = 0x02DE9410;
    const uint64_t DB_UiCamera                             = 0x02DE9600;
    const uint64_t DB_SpellProcsPerMinute                  = 0x02DE97F0;
    const uint64_t DB_CriteriaTree                         = 0x02DE99E0;
    const uint64_t DB_BattlePetAbilityState                = 0x02DE9BD0;
    const uint64_t DB_AlliedRace                           = 0x02DE9DC0;
    const uint64_t DB_JournalEncounterXDifficulty          = 0x02DE9FB0;
    const uint64_t DB_GarrFollower                         = 0x02DEA1A0;
    const uint64_t DB_SpellProcsPerMinuteMod               = 0x02DEA390;
    const uint64_t DB_SeamlessSite                         = 0x02DEA580;
    const uint64_t DB_BattlePetAbilityTurn                 = 0x02DEA770;
    const uint64_t DB_UiCameraType                         = 0x02DEA960;
    const uint64_t DB_JournalEncounterXMapLoc              = 0x02DEAB50;
    const uint64_t DB_CriteriaTreeXEffect                  = 0x02DEAD40;
    const uint64_t DB_HolidayDescriptions                  = 0x02DEAF30;
    const uint64_t DB_WMOMinimapTexture                    = 0x02DEB120;
    const uint64_t DB_ServerMessages                       = 0x02DEB310;
    const uint64_t DB_SpellRadius                          = 0x02DEB500;
    const uint64_t DB_HolidayNames                         = 0x02DEB6F0;
    const uint64_t DB_CurrencyCategory                     = 0x02DEB8E0;
    const uint64_t DB_SiegeableProperties                  = 0x02DEBAD0;
    const uint64_t DB_AnimaCable                           = 0x02DEBCC0;
    const uint64_t DB_JournalInstance                      = 0x02DEBEB0;
    const uint64_t DB_ImportPriceArmor                     = 0x02DEC0A0;
    const uint64_t DB_BattlePetBreedQuality                = 0x02DEC290;
    const uint64_t DB_World_PVP_Area                       = 0x02DEC480;
    const uint64_t DB_SpellRange                           = 0x02DEC670;
    const uint64_t DB_CurrencyContainer                    = 0x02DEC860;
    const uint64_t DB_UIExpansionDisplayInfo               = 0x02DECA50;
    const uint64_t DB_SkillLine                            = 0x02DECC40;
    const uint64_t DB_BattlePetBreedState                  = 0x02DECE30;
    const uint64_t DB_ImportPriceQuality                   = 0x02DED020;
    const uint64_t DB_SpellReagentsCurrency                = 0x02DED210;
    const uint64_t DB_UIExpansionDisplayInfoIcon           = 0x02DED400;
    const uint64_t DB_JournalItemXDifficulty               = 0x02DED5F0;
    const uint64_t DB_CurrencyTypes                        = 0x02DED7E0;
    const uint64_t DB_ImportPriceShield                    = 0x02DED9D0;
    const uint64_t DB_WorldBossLockout                     = 0x02DEDBC0;
    const uint64_t DB_BattlePetDisplayOverride             = 0x02DEDDB0;
    const uint64_t DB_JournalSectionXDifficulty            = 0x02DEDFA0;
    const uint64_t DB_ImportPriceWeapon                    = 0x02DEE190;
    const uint64_t DB_UiMap                                = 0x02DEE380;
    const uint64_t DB_WorldChunkSounds                     = 0x02DEE570;
    const uint64_t DB_SpellReagents                        = 0x02DEE760;
    const uint64_t DB_SkillLineAbility                     = 0x02DEE950;
    const uint64_t DB_GarrFollowerLevelXP                  = 0x02DEEB40;
    const uint64_t DB_BattlePetEffectProperties            = 0x02DEED30;
    const uint64_t DB_JournalTier                          = 0x02DEEF20;
    const uint64_t DB_InvasionClientData                   = 0x02DEF110;
    const uint64_t DB_DeathThudLookups                     = 0x02DEF300;
    const uint64_t DB_ChrUpgradeBucket                     = 0x02DEF4F0;
    const uint64_t DB_SpellScaling                         = 0x02DEF6E0;
    const uint64_t DB_JournalTierXInstance                 = 0x02DEF8D0;
    const uint64_t DB_GarrFollowerQuality                  = 0x02DEFAC0;
    const uint64_t DB_WorldEffect                          = 0x02DEFCB0;
    const uint64_t DB_BattlePetNPCTeamMember               = 0x02DEFEA0;
    const uint64_t DB_BattlePetSpecies                     = 0x02DF0090;
    const uint64_t DB_ChrUpgradeBucketSpell                = 0x02DF0280;
    const uint64_t DB_Keychain                             = 0x02DF0470;
    const uint64_t DB_DecalProperties                      = 0x02DF0660;
    const uint64_t DB_SpellShapeshift                      = 0x02DF0850;
    const uint64_t DB_AnimaCylinder                        = 0x02DF0A40;
    const uint64_t DB_Languages                            = 0x02DF0C30;
    const uint64_t DB_ChrUpgradeTier                       = 0x02DF0E20;
    const uint64_t DB_SkillLineCategory                    = 0x02DF1010;
    const uint64_t DB_WorldElapsedTimer                    = 0x02DF1200;
    const uint64_t DB_GarrFollowerSetXFollower             = 0x02DF13F0;
    const uint64_t DB_LanguageWords                        = 0x02DF15E0;
    const uint64_t DB_SkillRaceClassInfo                   = 0x02DF17D0;
    const uint64_t DB_GarrFollowerType                     = 0x02DF19C0;
    const uint64_t DB_WorldMapOverlay                      = 0x02DF1BB0;
    const uint64_t DB_SpellShapeshiftForm                  = 0x02DF1DA0;
    const uint64_t DB_CinematicCamera                      = 0x02DF1F90;
    const uint64_t DB_BattlePetSpeciesState                = 0x02DF2180;
    const uint64_t DB_AnimaMaterial                        = 0x02DF2370;
    const uint64_t DB_LFGDungeonGroup                      = 0x02DF2560;
    const uint64_t DB_Positioner                           = 0x02DF2750;
    const uint64_t DB_BattlePetSpeciesXAbility             = 0x02DF2940;
    const uint64_t DB_CinematicSequences                   = 0x02DF2B30;
    const uint64_t DB_SkySceneXPlayerCondition             = 0x02DF2D20;
    const uint64_t DB_LFGDungeons                          = 0x02DF2F10;
    const uint64_t DB_GarrFollowerUICreature               = 0x02DF3100;
    const uint64_t DB_DeclinedWordCases                    = 0x02DF32F0;
    const uint64_t DB_SpellSpecialUnitEffect               = 0x02DF34E0;
    const uint64_t DB_BattlePetState                       = 0x02DF36D0;
    const uint64_t DB_SoundOverride                        = 0x02DF38C0;
    const uint64_t DB_ClientSceneEffect                    = 0x02DF3AB0;
    const uint64_t DB_PositionerState                      = 0x02DF3CA0;
    const uint64_t DB_DeclinedWord                         = 0x02DF4220;
    const uint64_t DB_WorldMapOverlayTile                  = 0x02DF4410;
    const uint64_t DB_UiMapFogOfWar                        = 0x02DF4600;
    const uint64_t DB_CloneEffect                          = 0x02DF47F0;
    const uint64_t DB_GarrFollowerXAbility                 = 0x02DF49E0;
    const uint64_t DB_SpellTargetRestrictions              = 0x02DF4BD0;
    const uint64_t DB_BattlePetVisual                      = 0x02DF4DC0;
    const uint64_t DB_DestructibleModelData                = 0x02DF4FB0;
    const uint64_t DB_SoundProviderPreferences             = 0x02DF51A0;
    const uint64_t DB_WorldStateExpression                 = 0x02DF5390;
    const uint64_t DB_UiMapFogOfWarVisualization           = 0x02DF5580;
    const uint64_t DB_ManagedWorldState                    = 0x02DF5770;
    const uint64_t DB_GarrItemLevelUpgradeData             = 0x02DF5960;
    const uint64_t DB_PositionerStateEntry                 = 0x02DF5B50;
    const uint64_t DB_WorldStateUI                         = 0x02DF5D40;
    const uint64_t DB_SpellTotems                          = 0x02DF5F30;
    const uint64_t DB_CombatCondition                      = 0x02DF6120;
    const uint64_t DB_PowerDisplay                         = 0x02DF6310;
    const uint64_t DB_UiMapXMapArt                         = 0x02DF6500;
    const uint64_t DB_GarrMechanic                         = 0x02DF66F0;
    const uint64_t DB_AnimKitBoneSet                       = 0x02DF68E0;
    const uint64_t DB_UiMapAssignment                      = 0x02DF6AD0;
    const uint64_t DB_PowerType                            = 0x02DF6CC0;
    const uint64_t DB_ItemAppearanceXUiCamera              = 0x02DF6EB0;
    const uint64_t DB_ManifestInterfaceActionIcon          = 0x02DF70A0;
    const uint64_t DB_GarrMechanicSetXMechanic             = 0x02DF7290;
    const uint64_t DB_BonusRoll                            = 0x02DF7480;
    const uint64_t DB_AnimKitBoneSetAlias                  = 0x02DF7670;
    const uint64_t DB_SpellVisualColorEffect               = 0x02DF7860;
    const uint64_t DB_WorldStateZoneSounds                 = 0x02DF7A50;
    const uint64_t DB_LfgDungeonsGroupingMap               = 0x02DF7C40;
    const uint64_t DB_ItemArmorQuality                     = 0x02DF7E30;
    const uint64_t DB_SourceInfo                           = 0x02DF8020;
    const uint64_t DB_CommunityIcon                        = 0x02DF8210;
    const uint64_t DB_GarrMechanicType                     = 0x02DF8400;
    const uint64_t DB_AnimKitConfig                        = 0x02DF85F0;
    const uint64_t DB_ManifestInterfaceItemIcon            = 0x02DF87E0;
    const uint64_t DB_UiMapGroupMember                     = 0x02DF89D0;
    const uint64_t DB_Bounty                               = 0x02DF8BC0;
    const uint64_t DB_ItemArmorShield                      = 0x02DF8DB0;
    const uint64_t DB_LFGRoleRequirement                   = 0x02DF8FA0;
    const uint64_t DB_PrestigeLevelInfo                    = 0x02DF9190;
    const uint64_t DB_SpecializationSpells                 = 0x02DF9380;
    const uint64_t DB_AnimKitConfigBoneSet                 = 0x02DF9570;
    const uint64_t DB_ManifestInterfaceTOCData             = 0x02DF9760;
    const uint64_t DB_GarrMission                          = 0x02DF9950;
    const uint64_t DB_ItemArmorTotal                       = 0x02DF9B40;
    const uint64_t DB_ZoneIntroMusicTable                  = 0x02DF9D30;
    const uint64_t DB_MapCelestialBody                     = 0x02DF9F20;
    const uint64_t DB_UiMapLink                            = 0x02DFA110;
    const uint64_t DB_BountySet                            = 0x02DFA300;
    const uint64_t DB_AnimKitPriority                      = 0x02DFA4F0;
    const uint64_t DB_PVPBracketTypes                      = 0x02DFA6E0;
    const uint64_t DB_SpecializationSpellsDisplay          = 0x02DFA8D0;
    const uint64_t DB_ZoneMusic                            = 0x02DFAAC0;
    const uint64_t DB_MapChallengeMode                     = 0x02DFACB0;
    const uint64_t DB_AnimKit                              = 0x02DFAEA0;
    const uint64_t DB_ItemBagFamily                        = 0x02DFB090;
    const uint64_t DB_PVPDifficulty                        = 0x02DFB280;
    const uint64_t DB_ItemBonus                            = 0x02DFB470;
    const uint64_t DB_SpecSetMember                        = 0x02DFB660;
    const uint64_t DB_BroadcastText                        = 0x02DFB850;
    const uint64_t DB_UiModelScene                         = 0x02DFBA40;
    const uint64_t DB_ZoneStory                            = 0x02DFBC30;
    const uint64_t DB_AnimKitReplacement                   = 0x02DFBE20;
    const uint64_t DB_ItemBonusListLevelDelta              = 0x02DFC010;
    const uint64_t DB_Locale                               = 0x02DFC200;
    const uint64_t DB_PVPItem                              = 0x02DFC3F0;
    const uint64_t DB_UiModelSceneActor                    = 0x02DFC5E0;
    const uint64_t DB_SpellVisualKitAreaModel              = 0x02DFC7D0;
    const uint64_t DB_ItemBonusTreeNode                    = 0x02DFC9C0;
    const uint64_t DB_DungeonEncounter                     = 0x02DFCBB0;
    const uint64_t DB_MapDifficulty                        = 0x02DFCDA0;
    const uint64_t DB_AnimKitSegment                       = 0x02DFCF90;
    const uint64_t DB_PvpScalingEffect                     = 0x02DFD180;
    const uint64_t DB_Location                             = 0x02DFD370;
    const uint64_t DB_GarrMissionTexture                   = 0x02DFD560;
    const uint64_t DB_CameraEffect                         = 0x02DFD750;
    const uint64_t DB_Lock                                 = 0x02DFD940;
    const uint64_t DB_QuestObjective                       = 0x02DFDB30;
    const uint64_t DB_ItemChildEquipment                   = 0x02DFDD20;
    const uint64_t DB_UiModelSceneActorDisplay             = 0x02DFDF10;
    const uint64_t DB_GarrMissionType                      = 0x02DFE100;
    const uint64_t DB_SpellActionBarPref                   = 0x02DFE2F0;
    const uint64_t DB_PvpScalingEffectType                 = 0x02DFE4E0;
    const uint64_t DB_LockType                             = 0x02DFE6D0;
    const uint64_t DB_CameraEffectEntry                    = 0x02DFE8C0;
    const uint64_t DB_MarketingPromotionsXLocale           = 0x02DFEAB0;
    const uint64_t DB_PvpTalent                            = 0x02DFECA0;
    const uint64_t DB_DurabilityCosts                      = 0x02DFEE90;
    const uint64_t DB_ItemClass                            = 0x02DFF080;
    const uint64_t DB_ContentTuning                        = 0x02DFF270;
    const uint64_t DB_GarrMissionXEncounter                = 0x02DFF460;
    const uint64_t DB_SpellActivationOverlay               = 0x02DFF650;
    const uint64_t DB_LookAtController                     = 0x02DFF840;
    const uint64_t DB_UiModelSceneCamera                   = 0x02DFFA30;
    const uint64_t DB_DurabilityQuality                    = 0x02DFFC20;
    const uint64_t DB_ItemContextPickerEntry               = 0x02DFFE10;
    const uint64_t DB_Material                             = 0x02E00000;
    const uint64_t DB_AnimReplacement                      = 0x02E001F0;
    const uint64_t DB_GarrMissionXFollower                 = 0x02E003E0;
    const uint64_t DB_PvpTalentCategory                    = 0x02E005D0;
    const uint64_t DB_Contribution                         = 0x02E007C0;
    const uint64_t DB_SpellAuraOptions                     = 0x02E009B0;
    const uint64_t DB_GarrMssnBonusAbility                 = 0x02E00BA0;
    const uint64_t DB_CameraMode                           = 0x02E00D90;
    const uint64_t DB_PvpTalentSlotUnlock                  = 0x02E00F80;
    const uint64_t DB_MinorTalent                          = 0x02E01170;
    const uint64_t DB_ItemCurrencyCost                     = 0x02E01360;
    const uint64_t DB_AnimReplacementSet                   = 0x02E01550;
    const uint64_t DB_UiPartyPose                          = 0x02E01740;
    const uint64_t DB_ContributionStyle                    = 0x02E01930;
    const uint64_t DB_ItemDamageAmmo                       = 0x02E01B20;
    const uint64_t DB_AdventureMapPOI                      = 0x02E01D10;
    const uint64_t DB_KeystoneAffix                        = 0x02E01F00;
    const uint64_t DB_MissileTargeting                     = 0x02E020F0;
    const uint64_t DB_SpellAuraRestrictions                = 0x02E022E0;
    const uint64_t DB_PvpTier                              = 0x02E024D0;
    const uint64_t DB_GarrBuildingPlotInst                 = 0x02E026C0;
    const uint64_t DB_Emotes                               = 0x02E028B0;
    const uint64_t DB_ItemDamageOneHandCaster              = 0x02E02AA0;
    const uint64_t DB_Campaign                             = 0x02E02C90;
    const uint64_t DB_MailTemplate                         = 0x02E02E80;
    const uint64_t DB_UiTextureAtlasElement                = 0x02E03070;
    const uint64_t DB_ContributionStyleContainer           = 0x02E03260;
    const uint64_t DB_SpellVisualMissile                   = 0x02E03450;
    const uint64_t DB_GarrPlotBuilding                     = 0x02E03640;
    const uint64_t DB_ManagedWorldStateBuff                = 0x02E03830;
    const uint64_t DB_UiTextureAtlasMember                 = 0x02E03A20;
    const uint64_t DB_ItemDamageOneHand                    = 0x02E03C10;
    const uint64_t DB_QuestFactionReward                   = 0x02E03E00;
    const uint64_t DB_AreaConditionalData                  = 0x02E03FF0;
    const uint64_t DB_SpellAuraVisibility                  = 0x02E04570;
    const uint64_t DB_CampaignXCondition                   = 0x02E04760;
    const uint64_t DB_GarrPlotInstance                     = 0x02E04950;
    const uint64_t DB_EmotesTextData                       = 0x02E04B40;
    const uint64_t DB_UiTextureAtlas                       = 0x02E04D30;
    const uint64_t DB_ModifierTree                         = 0x02E04F20;
    const uint64_t DB_ManagedWorldStateInput               = 0x02E05110;
    const uint64_t DB_QuestFeedbackEffect                  = 0x02E05300;
    const uint64_t DB_ItemDamageTwoHandCaster              = 0x02E054F0;
    const uint64_t DB_UiTextureKit                         = 0x02E056E0;
    const uint64_t DB_AreaFarClipOverride                  = 0x02E058D0;
    const uint64_t DB_SpellAuraVisXChrSpec                 = 0x02E05AC0;
    const uint64_t DB_CampaignXQuestLine                   = 0x02E05CB0;
    const uint64_t DB_GarrPlot                             = 0x02E05EA0;
    const uint64_t DB_EmotesText                           = 0x02E06090;
    const uint64_t DB_UiWidgetConstantSource               = 0x02E06280;
    const uint64_t DB_ItemDamageTwoHand                    = 0x02E06470;
    const uint64_t DB_SpellCategories                      = 0x02E06660;
    const uint64_t DB_EmotesTextSound                      = 0x02E06850;
    const uint64_t DB_Mount                                = 0x02E06A40;
    const uint64_t DB_QuestInfo                            = 0x02E06C30;
    const uint64_t DB_CastableRaidBuffs                    = 0x02E06E20;
    const uint64_t DB_AreaGroupMember                      = 0x02E07010;
    const uint64_t DB_UiWidgetDataSource                   = 0x02E07200;
    const uint64_t DB_ItemDisenchantLoot                   = 0x02E073F0;
    const uint64_t DB_GarrPlotUICategory                   = 0x02E075E0;
    const uint64_t DB_Cfg_Categories                       = 0x02E077D0;
    const uint64_t DB_AreaPOI                              = 0x02E079C0;
    const uint64_t DB_QuestLine                            = 0x02E07BB0;
    const uint64_t DB_EnvironmentalDamage                  = 0x02E07DA0;
    const uint64_t DB_GarrString                           = 0x02E07F90;
    const uint64_t DB_UiWidget                             = 0x02E08180;
    const uint64_t DB_SpellCategory                        = 0x02E08370;
    const uint64_t DB_AreaPOIState                         = 0x02E08560;
    const uint64_t DB_MountCapability                      = 0x02E08750;
    const uint64_t DB_QuestLineXQuest                      = 0x02E08940;
    const uint64_t DB_GarrTalent                           = 0x02E08B30;
    const uint64_t DB_ExpectedStat                         = 0x02E08D20;
    const uint64_t DB_Creature                             = 0x02E08F10;
    const uint64_t DB_UiWidgetStringSource                 = 0x02E09100;
    const uint64_t DB_SpellCastingRequirements             = 0x02E092F0;
    const uint64_t DB_AreaTrigger                          = 0x02E094E0;
    const uint64_t DB_QuestMoneyReward                     = 0x02E096D0;
    const uint64_t DB_Cfg_Regions                          = 0x02E098C0;
    const uint64_t DB_MountTypeXCapability                 = 0x02E09AB0;
    const uint64_t DB_UiWidgetVisualization                = 0x02E09CA0;
    const uint64_t DB_QuestPackageItem                     = 0x02E09E90;
    const uint64_t DB_ExpectedStatMod                      = 0x02E0A080;
    const uint64_t DB_SpellCastTimes                       = 0x02E0A270;
    const uint64_t DB_MountXDisplay                        = 0x02E0A460;
    const uint64_t DB_UIScriptedAnimationEffect            = 0x02E0A650;
    const uint64_t DB_QuestSort                            = 0x02E0A840;
    const uint64_t DB_SpellVisualEvent                     = 0x02E0AA30;
    const uint64_t DB_GarrTalentTree                       = 0x02E0AC20;
    const uint64_t DB_CharacterLoadout                     = 0x02E0AE10;
    const uint64_t DB_SpellClassOptions                    = 0x02E0B000;
    const uint64_t DB_Movie                                = 0x02E0B1F0;
    const uint64_t DB_AreaTriggerActionSet                 = 0x02E0B3E0;
    const uint64_t DB_QuestV2CliTask                       = 0x02E0B5D0;
    const uint64_t DB_Exhaustion                           = 0x02E0B7C0;
    const uint64_t DB_ItemDisplayXUiCamera                 = 0x02E0B9B0;
    const uint64_t DB_CreatureDisplayInfoEvt               = 0x02E0BBA0;
    const uint64_t DB_AreaTriggerBox                       = 0x02E0BD90;
    const uint64_t DB_CharacterLoadoutItem                 = 0x02E0BF80;
    const uint64_t DB_GarrType                             = 0x02E0C170;
    const uint64_t DB_MovieFileData                        = 0x02E0C360;
    const uint64_t DB_SpellCooldowns                       = 0x02E0C550;
    const uint64_t DB_SpellXDescriptionVariables           = 0x02E0C740;
    const uint64_t DB_AreaTriggerCreateProperties          = 0x02E0C930;
    const uint64_t DB_ItemEffect                           = 0x02E0CB20;
    const uint64_t DB_ArenaCcItem                          = 0x02E0CD10;
    const uint64_t DB_CharacterServiceInfo                 = 0x02E0CF00;
    const uint64_t DB_Faction                              = 0x02E0D0F0;
    const uint64_t DB_MovieVariation                       = 0x02E0D2E0;
    const uint64_t DB_SpellXSpellVisual                    = 0x02E0D4D0;
    const uint64_t DB_AreaTriggerCylinder                  = 0x02E0D6C0;
    const uint64_t DB_AoiBox                               = 0x02E0D8B0;
    const uint64_t DB_GarrSiteLevel                        = 0x02E0DAA0;
    const uint64_t DB_SpellDescriptionVariables            = 0x02E0DC90;
    const uint64_t DB_MultiStateProperties                 = 0x02E0DE80;
    const uint64_t DB_SpellDispelType                      = 0x02E0E070;
    const uint64_t DB_ItemExtendedCost                     = 0x02E0E260;
    const uint64_t DB_AreaTriggerSphere                    = 0x02E0E450;
    const uint64_t DB_AlliedRaceRacialAbility              = 0x02E0E640;
    const uint64_t DB_CharBaseInfo                         = 0x02E0E830;
    const uint64_t DB_UnitBlood                            = 0x02E0EA20;
    const uint64_t DB_SpellDuration                        = 0x02E0EC10;
    const uint64_t DB_QuestV2                              = 0x02E0EE00;
    const uint64_t DB_ArmorLocation                        = 0x02E0EFF0;
    const uint64_t DB_GarrSiteLevelPlotInst                = 0x02E0F1E0;
    const uint64_t DB_ItemUpgrade                          = 0x02E0F3D0;
    const uint64_t DB_CharBaseSection                      = 0x02E0F5C0;
    const uint64_t DB_Stationery                           = 0x02E0F7B0;
    const uint64_t DB_QuestXGroupActivity                  = 0x02E0F9A0;
    const uint64_t DB_UnitBloodLevels                      = 0x02E0FB90;
    const uint64_t DB_MultiTransitionProperties            = 0x02E0FD80;
    const uint64_t DB_FactionGroup                         = 0x02E0FF70;
    const uint64_t DB_GarrSpecialization                   = 0x02E10160;
    const uint64_t DB_Artifact                             = 0x02E10350;
    const uint64_t DB_ItemGroupSounds                      = 0x02E10540;
    const uint64_t DB_QuestXP                              = 0x02E10730;
    const uint64_t DB_UnitCondition                        = 0x02E10920;
    const uint64_t DB_SummonProperties                     = 0x02E10B10;
    const uint64_t DB_PetLoyalty                           = 0x02E10D00;
    const uint64_t DB_MythicPlusSeasonRewardLevels         = 0x02E10EF0;
    const uint64_t DB_ItemLevelSelector                    = 0x02E110E0;
    const uint64_t DB_FactionTemplate                      = 0x02E112D0;
    const uint64_t DB_PetPersonality                       = 0x02E114C0;
    const uint64_t DB_RandPropPoints                       = 0x02E116B0;
    const uint64_t DB_GarrUiAnimClassInfo                  = 0x02E118A0;
    const uint64_t DB_UnitPowerBar                         = 0x02E11A90;
    const uint64_t DB_TactKey                              = 0x02E11C80;
    const uint64_t DB_ItemLevelSelectorQuality             = 0x02E11E70;
    const uint64_t DB_NameGen                              = 0x02E12060;
    const uint64_t DB_ArtifactAppearance                   = 0x02E12250;
    const uint64_t DB_TactKeyLookup                        = 0x02E12440;
    const uint64_t DB_RulesetItemUpgrade                   = 0x02E12630;
    const uint64_t DB_RelicSlotTierRequirement             = 0x02E12820;
    const uint64_t DB_FootstepTerrainLookup                = 0x02E12A10;
    const uint64_t DB_CharHairGeosets                      = 0x02E12C00;
    const uint64_t DB_GarrUiAnimRaceInfo                   = 0x02E12DF0;
    const uint64_t DB_ItemLevelSelectorQualitySet          = 0x02E12FE0;
    const uint64_t DB_TalentTab                            = 0x02E131D0;
    const uint64_t DB_SpellCraftUI                         = 0x02E133C0;
    const uint64_t DB_RelicTalent                          = 0x02E135B0;
    const uint64_t DB_ItemLimitCategory                    = 0x02E137A0;
    const uint64_t DB_FriendshipRepReaction                = 0x02E13990;
    const uint64_t DB_Talent                               = 0x02E13B80;
    const uint64_t DB_StableSlotPrices                     = 0x02E13D70;
    const uint64_t DB_SpellEffectAutoDescription           = 0x02E13F60;
    const uint64_t DB_ItemLimitCategoryCondition           = 0x02E14150;
    const uint64_t DB_CharSectionCondition                 = 0x02E14340;
    const uint64_t DB_ArtifactAppearanceSet                = 0x02E14530;
    const uint64_t DB_FriendshipReputation                 = 0x02E14720;
    const uint64_t DB_ResearchBranch                       = 0x02E14910;
    const uint64_t DB_CreatureDisplayInfoTrn               = 0x02E14B00;
    const uint64_t DB_GemProperties                        = 0x02E14CF0;
    const uint64_t DB_NPCSounds                            = 0x02E14EE0;
    const uint64_t DB_GameClockDebug                       = 0x02E150D0;
    const uint64_t DB_CharShipmentContainer                = 0x02E152C0;
    const uint64_t DB_SpellEffectEmission                  = 0x02E154B0;
    const uint64_t DB_ResearchField                        = 0x02E156A0;
    const uint64_t DB_CreatureDispXUiCamera                = 0x02E15890;
    const uint64_t DB_GlyphBindableSpell                   = 0x02E15A80;
    const uint64_t DB_ArtifactCategory                     = 0x02E15C70;
    const uint64_t DB_GameObjectArtKit                     = 0x02E15E60;
    const uint64_t DB_NumTalentsAtLevel                    = 0x02E16050;
    const uint64_t DB_TaxiNodes                            = 0x02E16240;
    const uint64_t DB_ItemModifiedAppearanceExtra          = 0x02E16430;
    const uint64_t DB_GlyphExclusiveCategory               = 0x02E16620;
    const uint64_t DB_CreatureDifficulty                   = 0x02E16810;
    const uint64_t DB_ResearchProject                      = 0x02E16A00;
    const uint64_t DB_ArtifactPower                        = 0x02E16BF0;
    const uint64_t DB_SpellEquippedItems                   = 0x02E16DE0;
    const uint64_t DB_GameObjectDiffAnimMap                = 0x02E16FD0;
    const uint64_t DB_GlyphProperties                      = 0x02E171C0;
    const uint64_t DB_ObjectEffect                         = 0x02E173B0;
    const uint64_t DB_Startup_Strings                      = 0x02E17820;
    const uint64_t DB_StartupFiles                         = 0x02E17A10;
    const uint64_t DB_Map                                  = 0x02E17C00;
    const uint64_t DB_AreaTable                            = 0x02E17DF0;
    const uint64_t DB_ModelFileData                        = 0x02E17FE0;
    const uint64_t DB_SpellChainEffects                    = 0x02E181D0;
    const uint64_t DB_TextureBlendSet                      = 0x02E183C0;
    const uint64_t DB_DeviceBlacklist                      = 0x02E185B0;
    const uint64_t DB_DriverBlacklist                      = 0x02E187A0;
    const uint64_t DB_Curve                                = 0x02E18990;
    const uint64_t DB_CurvePoint                           = 0x02E18B80;
    const uint64_t DB_OccluderNode                         = 0x02E18D70;
    const uint64_t DB_ParticulateSound                     = 0x02E18F60;
    const uint64_t DB_RibbonQuality                        = 0x02E19150;
    const uint64_t DB_SoundBus                             = 0x02E19340;
    const uint64_t DB_SoundBusOverride                     = 0x02E19530;
    const uint64_t DB_SoundEmitterPillPoints               = 0x02E19720;
    const uint64_t DB_SoundEmitters                        = 0x02E19910;
    const uint64_t DB_SoundEnvelope                        = 0x02E19B00;
    const uint64_t DB_SoundFilter                          = 0x02E19CF0;
    const uint64_t DB_SoundFilterElem                      = 0x02E19EE0;
    const uint64_t DB_SoundKitAdvanced                     = 0x02E1A0D0;
    const uint64_t DB_SoundKitChild                        = 0x02E1A2C0;
    const uint64_t DB_AnimationData                        = 0x02E1A4B0;
    const uint64_t DB_SoundKitEntry                        = 0x02E1A6A0;
    const uint64_t DB_BoneWindModifiers                    = 0x02E1A890;
    const uint64_t DB_SoundKitFallback                     = 0x02E1AA80;
    const uint64_t DB_BoneWindModifierModel                = 0x02E1AC70;
    const uint64_t DB_SoundKit                             = 0x02E1AE60;
    const uint64_t DB_CelestialBody                        = 0x02E1B050;
    const uint64_t DB_CloakDampening                       = 0x02E1B240;
    const uint64_t DB_FootprintTextures                    = 0x02E1B430;
    const uint64_t DB_FullScreenEffect                     = 0x02E1B620;
    const uint64_t DB_GroundEffectDoodad                   = 0x02E1B810;
    const uint64_t DB_TerrainMaterial                      = 0x02E1BA00;
    const uint64_t DB_GroundEffectTexture                  = 0x02E1BBF0;
    const uint64_t DB_TerrainType                          = 0x02E1BDE0;
    const uint64_t DB_Hotfixes                             = 0x02E1BFD0;
    const uint64_t DB_Light                                = 0x02E1C1C0;
    const uint64_t DB_Lightning                            = 0x02E1C3B0;
    const uint64_t DB_VirtualAttachment                    = 0x02E1C5A0;
    const uint64_t DB_VirtualAttachmentCustomization       = 0x02E1C790;
    const uint64_t DB_Weather                              = 0x02E1C980;
    const uint64_t DB_LightData                            = 0x02E1CB70;
    const uint64_t DB_WeatherXParticulate                  = 0x02E1CD60;
    const uint64_t DB_WindSettings                         = 0x02E1CF50;
    const uint64_t DB_WMOAreaTable                         = 0x02E1D140;
    const uint64_t DB_ZoneLightPoint                       = 0x02E1D330;
    const uint64_t DB_LightParams                          = 0x02E1D520;
    const uint64_t DB_ZoneLight                            = 0x02E1D710;
    const uint64_t DB_LightSkybox                          = 0x02E1D900;
    const uint64_t DB_LiquidMaterial                       = 0x02E1DAF0;
    const uint64_t DB_LiquidObject                         = 0x02E1DCE0;
    const uint64_t DB_LiquidType                           = 0x02E1DED0;
    const uint64_t DB_ModelAnimCloakDampening              = 0x02E1E0C0;
    const uint64_t DB_ModelRibbonQuality                   = 0x02E1E2B0;
    const uint64_t DB_Occluder                             = 0x02E1E4A0;
    const uint64_t DB_OccluderLocation                     = 0x02E1E690;
    const uint64_t DB_ChatProfanity                        = 0x03262480;
    const uint64_t DB_NamesProfanity                       = 0x03262670;
    const uint64_t DB_NamesReservedLocale                  = 0x03262860;
    const uint64_t DB_NamesReserved                        = 0x03262A50;
    const uint64_t DB_GlobalStrings                        = 0x03262C40;
    const uint64_t DB_CommentatorIndirectSpell             = 0x03262E30;
    const uint64_t DB_CommentatorTrackedCooldown           = 0x03263020;
    const uint64_t DB_CommentatorStartLocation             = 0x03263210;
    const uint64_t DB_LFGDungeonExpansion                  = 0x03263400;
    const uint64_t DB_ManifestInterfaceData                = 0x032635F0;
    const uint64_t DB_OccluderCurtain                      = 0x032637E0;
    const uint64_t DB_SSAOSettings                         = 0x03282F10;
    const uint64_t DB2_Spell                               = 0x02DCDAF0;
    const uint64_t DB2_SceneScriptText                     = 0x02DE5C30;
    const uint64_t DB2_ItemSparse                          = 0x02DF3E90;
    const uint64_t DB2_ConversationLine                    = 0x02E041E0;
    
    }
    
    #endif

  8. Thanks Razzue, maikel233 (2 members gave Thanks to oiramario for this useful post)
  9. #5
    Razzue's Avatar Contributor Avid Ailurophile

    CoreCoins Purchaser Authenticator enabled
    Reputation
    378
    Join Date
    Jun 2017
    Posts
    588
    Thanks G/R
    184/267
    Trade Feedback
    2 (100%)
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)
    Fixed Player spellbook and Spellcount offsets, as well as +1 to GameStatus offset xD
    Few of them (Marked " // ??") i'm either not 100% sure how they work, or it they're right at all

  10. #6
    oiramario's Avatar Established Member
    Reputation
    85
    Join Date
    Mar 2021
    Posts
    133
    Thanks G/R
    36/51
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Code:
    #ifndef  _wow_cvars_hpp__
    #define  _wow_cvars_hpp__
    
    #include  <cstdint>
    
    // 2.5.2.40892
    namespace CVar {
    
    const uint64_t AgentUID                                           = 0x02D97918; // The UID provided by Battle.net to be passed to Agent
    const uint64_t EnableAssetTracking                                = 0x02D97920; // Whether to track which assets are least recently used
    const uint64_t LaunchAgent                                        = 0x02D97920; // Set this to have the client start up Agent
    const uint64_t OverrideArchive                                    = 0x02D97928; // Whether or not the client loads alternate data
    const uint64_t AsyncThreadSleep                                   = 0x02D98120; // Engine option: Async read thread sleep
    const uint64_t AsyncHandlerTimeout                                = 0x02D98128; // Engine option: Async read main thread timeout
    const uint64_t EnableBGDL                                         = 0x02D98130; // Background Download (on async net thread) Enabled
    const uint64_t SortDiskReads                                      = 0x02D98138; // Sort async disk reads to minimize seeks (requires restart)
    const uint64_t M2UseThreads                                       = 0x02D98108; // multithread model animations
    const uint64_t M2ForceAdditiveParticleSort                        = 0x02D98110; // force all particles to sort as though they were additive
    const uint64_t M2UseInstancing                                    = 0x02D98118; // use hardware instancing
    const uint64_t GameTip                                            = 0x02D98F70;
    const uint64_t TargetFPS                                          = 0x02D99C60; // Set target FPS. Dynamic actions will be taken if you fall below the FPS target
    const uint64_t AccountName                                        = 0x02D9ABD0; // Saved account name
    const uint64_t AccountList                                        = 0x02D9ABD8; // List of wow accounts for saved Blizzard account
    const uint64_t G_accountUsesToken                                 = 0x02D9ABE0; // Saved whether uses authenticator
    const uint64_t ShowLoadingScreenTips                              = 0x02D98F28; // Show loading screen tooltips
    const uint64_t EngineSurvey                                       = 0x02D98F28; // Engine Survey Index
    const uint64_t EngineSurveyPatch                                  = 0x02D98F30; // Engine Survey Patch
    const uint64_t CheckAddonVersion                                  = 0x02D9ABE8; // Check interface addon version number
    const uint64_t LastAddonVersion                                   = 0x02D9ABF0; // Addon interface version number from previous build
    const uint64_t EnableMouseSpeed                                   = 0x02D9AC40; // Enables setting a custom mouse sensitivity to override the setting from the operating system.
    const uint64_t MouseSpeed                                         = 0x02D9AC48;
    const uint64_t ErrorFilter                                        = 0x02D9ABF8;
    const uint64_t LastCharacterIndex                                 = 0x02D9ABF8; // Last character selected
    const uint64_t LastCharacterGuid                                  = 0x02D9AC00; // Last character selected's guid
    const uint64_t SeenCharacterUpgradePopup                          = 0x02D9AC08; // Seen the free character upgrade popup
    const uint64_t SeenExpansionTrialPopup                            = 0x02D9AC10; // Seen the expansion trial popup
    const uint64_t SeenLevelSquishPopup                               = 0x02D9AC18; // Seen the level squish popup
    const uint64_t SeenConfigurationWarnings                          = 0x02D9AC20; // A bitfield to track which configuration warnings have been seen
    const uint64_t AdvancedCombatLogging                              = 0x02D9AC28; // Whether we want advanced combat log data sent from the server
    const uint64_t SkipStartGear                                      = 0x02D9AC30; // Whether we should show starter gear on character create
    const uint64_t MaxFPSLoading                                      = 0x02D9AC38; // Set loading screen max FPS
    const uint64_t DebugGameEvents                                    = 0x02D9AC38; // Show additional information about game events
    const uint64_t ShowUnactivatedCharacters                          = 0x02D9AC50; // Show unactivated characters on Character Select.
    const uint64_t CursorFreelookStartDelta                           = 0x02DABEE8; // Fraction of the screen the cursor must move to start freelook after mouse button goes down
    const uint64_t CursorFreelookCentering                            = 0x02DABEF0; // Center the cursor when using Mouse freelook
    const uint64_t CursorStickyCentering                              = 0x02DABEF8; // Make the centered position stick after freelook; Don't restore previous cursor position
    const uint64_t CursorCenteredYPos                                 = 0x02DABF00; // 0-1 vertical position of centered cursor/targeting (0 at bottom)
    const uint64_t EnableWowMouse                                     = 0x02DABEE0; // Enable Steelseries World of Warcraft Mouse
    const uint64_t GamePadSingleActiveID                              = 0x02DAC490; // ID of single GamePad device to use. 0 = Use all devices' combined input
    const uint64_t GamePadAbbreviatedBindingReverse                   = 0x02DAC440; // Display main binding button first so it's visible even if truncated on action bar
    const uint64_t GamePadStickAxisButtons                            = 0x02DAC498; // Enables virtual buttons for the GamePad stick cardinal directions
    const uint64_t GamePadEmulateAlt                                  = 0x02DAC448; // GamePad button that should emulate the Alt key
    const uint64_t GamePadEmulateCtrl                                 = 0x02DAC450; // GamePad button that should emulate the Ctrl key
    const uint64_t GamePadEmulateShift                                = 0x02DAC458; // GamePad button that should emulate the Shift key
    const uint64_t GamePadEmulateEsc                                  = 0x02DACA00; // GamePad button that should emulate the Esc key
    const uint64_t GamePadCursorLeftClick                             = 0x02DACA00; // GamePad button that should emulate mouse Left Click while controlling the mouse cursor
    const uint64_t GamePadCursorRightClick                            = 0x02DACA08; // GamePad button that should emulate mouse Right Click while controlling the mouse cursor
    const uint64_t GamePadCursorSpeedStart                            = 0x02DACA10; // Speed of GamePad cursor when it starts moving
    const uint64_t GamePadCursorSpeedAccel                            = 0x02DACA18; // Acceleration of GamePad cursor per second as it continues to move
    const uint64_t GamePadCursorSpeedMax                              = 0x02DACA20; // Top speed of GamePad cursor movement
    const uint64_t GamePadCursorAutoEnable                            = 0x02DACA28; // Auto enable GamePad cursor control when opening UIs that may need it
    const uint64_t GamePadCursorOnLogin                               = 0x02DACA30; // Enable GamePad cursor control on login and character screens
    const uint64_t GamePadCursorCentering                             = 0x02DAC460; // When using GamePad, center the cursor
    const uint64_t GamePadCursorCenteredEmulation                     = 0x02DAC468; // When cursor is centered for GamePad movement, also emulate mouse clicks
    const uint64_t GamePadCursorAutoDisableSticks                     = 0x02DACA38; // GamePad cursor control will auto-disable on stick input (0=none, 1=movement, 2=movement+cursor)
    const uint64_t GamePadCursorAutoDisableJump                       = 0x02DAC470; // GamePad cursor control will auto-disable when you jump
    const uint64_t GamePadCursorPushCamera                            = 0x02DAC478; // Rate for GamePad controlled cursor to push/turn camera when at edge of window
    const uint64_t GamePadAnalogMovement                              = 0x02DAC480; // Enable analog movement in any direction, rather than just the 8 cardinal directions
    const uint64_t GamePadTurnWithCamera                              = 0x02DAC488; // Turn character to match when camera facing is changed
    const uint64_t GamePadFaceMovementThreshold                       = 0x02DACA40; // Angle threshold for facing movement direction. 0 = always, 180 = never (115 allows using strafe with quick turn around)
    const uint64_t GamePadTankTurnSpeed                               = 0x02DACA48; // If non-zero, character turns like a tank from GamePad movement
    const uint64_t GamePadCameraYawSpeed                              = 0x02DACA50; // Yaw speed of GamePad camera turning left/right
    const uint64_t GamePadCameraPitchSpeed                            = 0x02DACA58; // Pitch speed of GamePad camera moving up/down
    const uint64_t GamePadEnable                                      = 0x02DAC438; // Whether GamePad input should be enabled
    const uint64_t ServerAlert                                        = 0x02DAF710; // Get the glue-string tag for the URL
    const uint64_t AuroraClientRequestSuffix                          = 0x02DAF728; // Set the suffix used for Aurora client requests
    const uint64_t SynchronizeSettings                                = 0x02DB03B8; // Whether client settings should be stored on the server
    const uint64_t GxAdapter                                          = 0x02DB9038; // Set which GPU to use. See GxListGPUs for valid names (empty string to let client choose)
    const uint64_t ForceAllowAero                                     = 0x02DB9040; // Force Direct X 12 on Windows 7 to not disable Aero theme. You are opting into crashing in some edge cases
    const uint64_t GxPrismEnabled                                     = 0x02DB9040; // 0: Prism backends Disabled. 1: Default Prism backends Enabled. 2: Experimental Prism backends Enabled.
    const uint64_t DriverVersionCheck                                 = 0x02DB9048;
    const uint64_t HwDetect                                           = 0x02DCA390; // do hardware detection
    const uint64_t VideoOptionsVersion                                = 0x02DCA3A8; // Video options version
    const uint64_t GxApi                                              = 0x02DCA370; // graphics api
    const uint64_t ForceResolutionDefaultToMaxSize                    = 0x02DCA3C0; // Force default resolution to the maximum supported size rather than the auto-detected size
    const uint64_t GxMaximize                                         = 0x02DCA3A0; // toggle fullscreen/window
    const uint64_t GxMonitor                                          = 0x02DCA378;
    const uint64_t GxFullscreenResolution                             = 0x02DCA360;
    const uint64_t GxWindowedResolution                               = 0x02DCA368; // windowed resolution
    const uint64_t GxNewResolution                                    = 0x02DCA358; // resolution to be set
    const uint64_t Vsync                                              = 0x02DCA380; // vsync on or off
    const uint64_t GxAspect                                           = 0x02DCA398; // constrain window aspect
    const uint64_t GxMaxFrameLatency                                  = 0x02DCA388; // maximum number of frames ahead of GPU the CPU can be
    const uint64_t GxAftermathEnabled                                 = 0x02DCA3C8; // Enable frame crash debugging
    const uint64_t WindowResizeLock                                   = 0x02DCA3B0; // prevent resizing in windowed mode
    const uint64_t GraphicsQuality                                    = 0x02DCA3D0; // save for Graphics Quality Selection
    const uint64_t RAIDgraphicsQuality                                = 0x02DCA3D8; // save for Raid Graphics Quality Selection
    const uint64_t ClipCursor                                         = 0x02DCA344; // Lock the cursor to the game window
    const uint64_t FfxAntiAliasingMode                                = 0x02E1F490; // Anti Aliasing Mode
    const uint64_t Daltonize                                          = 0x02E1F488; // Attempt to correct for color blindness (set colorblindSimulator to type of colorblindness)
    const uint64_t ColorblindWeaknessFactor                           = 0x02E1F480; // Amount of sensitivity. e.g. Protanope (red-weakness) 0.0 = not colorblind, 1.0 = full weakness(Protanopia), 0.5 = mid weakness(Protanomaly)
    const uint64_t ColorblindSimulator                                = 0x02E1F478; // Type of color blindness
    const uint64_t Contrast                                           = 0x02E1F498; // Contrast adjustment. Range: [0 - 100]
    const uint64_t Brightness                                         = 0x02E1F4A0; // Brightness adjustment. Range: [0 - 100]
    const uint64_t Gamma                                              = 0x02E1F4A8; // Gamma correction. Range: [0.3 - 2.8]
    const uint64_t ForceEnglishNames                                  = 0x02E23B48;
    const uint64_t WorldTextStartPosRandomness                        = 0x02E25018;
    const uint64_t WorldTextScreenY                                   = 0x02E24FE8;
    const uint64_t WorldTextCritScreenY                               = 0x02E24FF0;
    const uint64_t WorldTextRandomXY                                  = 0x02E24FF8;
    const uint64_t WorldTextRandomZMin                                = 0x02E25000;
    const uint64_t WorldTextRandomZMax                                = 0x02E25008;
    const uint64_t WorldTextNonRandomZ                                = 0x02E25010;
    const uint64_t WorldTextGravity                                   = 0x02E25020;
    const uint64_t WorldTextRampPow                                   = 0x02E25028;
    const uint64_t WorldTextRampPowCrit                               = 0x02E25030;
    const uint64_t WorldTextRampDuration                              = 0x02E25038;
    const uint64_t WorldTextScale                                     = 0x02E25040;
    const uint64_t WeaponTrailUseGPUStrip                             = 0x02E256A0;
    const uint64_t TargetNearestUseNew                                = 0x02E25EA0; // Use new 7.2 'nearest target' functionality (Set to 0 for 6.x style tab targeting)
    const uint64_t TargetPriorityAllowAnyOnScreen                     = 0x02E25F50; // If set, and no 100% correct target is available, allow selecting any valid in-range target (2 = also out-of-range)
    const uint64_t TargetPriorityHoldHighlightDelay                   = 0x02E25F58; // Delay in Milliseconds before priority target highlight starts when holding the button
    const uint64_t TargetPriorityCombatLock                           = 0x02E25F60; // 1=Lock to in-combat targets when starting from an in-combat target. 2=Further restrict to in-combat with player.
    const uint64_t TargetPriorityCombatLockHighlight                  = 0x02E25F68; // 1=Lock to in-combat targets when starting from an in-combat target. 2=Further restrict to in-combat with player. (while doing hold-to-target)
    const uint64_t TargetPriorityCombatLockContextualRelaxation       = 0x02E25F70; // 1=Enables relaxation of combat lock based on context (eg. no in-combat target infront)
    const uint64_t TargetPriorityPvp                                  = 0x02E25F78; // When in pvp, give higher priority to players and important pvp targets (1 = players & npc bosses, 2 = all pvp targets, 3 = players only)
    const uint64_t TargetPriorityPvpLock                              = 0x02E25F80; // Lock to important pvp targets when starting from a pvp target.
    const uint64_t TargetPriorityPvpLockHighlight                     = 0x02E25F88; // Lock to players when starting from a player target in pvp. (while doing hold-to-target)
    const uint64_t TargetPriorityValueBank                            = 0x02E25F90; // Selects the active targeting values bank for calculating target priority order
    const uint64_t TargetPriorityContinueFromManualTarget             = 0x02E25F98; // If a target is manually selected (eg. clicked), continue priority targeting from that target.
    const uint64_t TargetPriorityAutoTargetIgnoreWindow               = 0x02E25FA0; // Number of MS a non-user selected target should be ignored For priority order purposes
    const uint64_t TargetPriorityFrustumPullInSides                   = 0x02E25FA8; // Percentage towards center to pull in side edges of the screen for in-view checks
    const uint64_t TargetPriorityFrustumPullInTop                     = 0x02E25FB0; // Percentage towards center to pull in top edge of the screen for in-view checks
    const uint64_t TargetPriorityFrustumPullInBot                     = 0x02E25FB8; // Percentage towards center to pull in bottom edge of the screen for in-view checks
    const uint64_t TargetPriorityUpdateDelay                          = 0x02E25FC0; // Delay in Milliseconds between updates of target priority list.
    const uint64_t ClientCastDebug                                    = 0x02E41DA8; // debug client cast allocation
    const uint64_t PreemptiveCastEnable                               = 0x02E41DA0; // Enable preemptive triggering of cast visuals based on spell release timing
    const uint64_t MtParticles                                        = 0x02E43288; // multithread building of particle vertices
    const uint64_t AnimFrameSkipLOD                                   = 0x02E43290; // animations will skip frames at distance
    const uint64_t HotReloadModels                                    = 0x02E43298; // Allow an active model to be reloaded when a new version is detected in the bin folder.  If this is disabled, the model data will only be refreshed after all game objects using the model are deleted
    const uint64_t ForceLODCheck                                      = 0x02E432A0; // If enabled, we will skip checking DBC for LOD count and every m2 will scan the folder for skin profiles
    const uint64_t SplineOpt                                          = 0x02E437F0; // toggles use of spline coll optimization
    const uint64_t PersistMoveLogOnTransfer                           = 0x02E437F8; // Set to 1 to automatically re-enable logging on the current movelog target after a transfer
    const uint64_t MovementMaxEventLateTime                           = 0x02E43800; // Used as part of the system that adjusts the timing on movement messages to try and smooth out jitter (our own and other players). This CVar sets the lower bound of the adjustments the system can make.`
    const uint64_t MovementMaxEventEarlyTime                          = 0x02E43808; // Used as part of the system that adjusts the timing on movement messages to try and smooth out jitter (our own and other players). This CVar sets the upper bound of the adjustments the system can make.
    const uint64_t UseIPv6                                            = 0x02E43880; // Enable the usage of IPv6 sockets
    const uint64_t DisableServerNagle                                 = 0x02E43888; // Disable server-side nagle algorithm
    const uint64_t ObjectSelectionCircle                              = 0x02E913D0;
    const uint64_t OutlineMouseOverFadeDuration                       = 0x02E91548;
    const uint64_t OutlineSelectionFadeDuration                       = 0x02E91550;
    const uint64_t Showfootprintparticles                             = 0x02E91600; // toggles rendering of footprint particles
    const uint64_t PathSmoothing                                      = 0x02E91608; // NPC will round corners on ground paths
    const uint64_t FlightAngleLookAhead                               = 0x02E91610; // Enables more dynamic attitude adjustments while flying
    const uint64_t CloakFixEnabled                                    = 0x02E91618;
    const uint64_t DebugTorsoTwist                                    = 0x02E91620; // Debug visualization for Torso Twist: 1 = Player, 2 = Target, 3 = All
    const uint64_t MaxObservedPetBattles                              = 0x02E9DA98; // Maximum number of observed pet battles
    const uint64_t SmoothUnitPhasing                                  = 0x02E9DAE8; // The client will try to smoothly switch between the same on model different phases.
    const uint64_t SmoothUnitPhasingDistThreshold                     = 0x02E9DAF0; // Distance threshold to active smooth unit phasing.
    const uint64_t SmoothUnitPhasingUnseenPurgatoryTimeMs             = 0x02E9DAF8; // Time to keep unit displays in purgatory before letting go of them, if they were just unseen.
    const uint64_t SmoothUnitPhasingDestroyedPurgatoryTimeMs          = 0x02E9DB00; // Time to keep unit displays in purgatory before letting go of them, if they were destroyed
    const uint64_t SmoothUnitPhasingActorPurgatoryTimeMs              = 0x02E9DB08; // Time to keep client-actor displays in purgatory before letting go of them, if they were despawned
    const uint64_t SmoothUnitPhasingEnableAlive                       = 0x02E9DB10; // Use units that have not despawn yet if they match, in hopes the despawn message will come later.
    const uint64_t SmoothUnitPhasingAliveTimeoutMs                    = 0x02E9DB18; // Time to wait for an alive unit to get it's despawn message
    const uint64_t SmoothUnitPhasingVehicleExtraTimeoutMs             = 0x02E9DB20; // Extra time to wait before releasing a vehicle, after it has smooth phased. This allows it's passengers to smooth phase as well.
    const uint64_t ImpactModelCollisionMelee                          = 0x02EA6970; // Enable model collision checks for melee impact effects
    const uint64_t ImpactModelCollisionRanged                         = 0x02EA6978; // Enable model collision checks for ranged attack impact effects
    const uint64_t ImpactModelCollisionMissile                        = 0x02EA6980; // Enable model collision checks for missile impact effects
    const uint64_t SpellClutter                                       = 0x02EA6F88; // Enables/Disables spell clutter
    const uint64_t SpellClutterRangeConstant                          = 0x02EA6F90; // The number of yards before the priority is doubled (min 1.0)
    const uint64_t SpellClutterRangeConstantRaid                      = 0x02EA6F98; // The number of yards before the priority is doubled (min 1.0) in a raid
    const uint64_t SpellClutterPlayerScalarMultiplier                 = 0x02EA6FA0; // Increases number of effects on "interesting" targets multiplicatively (min 0.1)
    const uint64_t SpellClutterDefaultTargetScalar                    = 0x02EA6FA8; // Starting target scalar value (min 0.1)
    const uint64_t SpellClutterPartySizeScalar                        = 0x02EA6FB0; // Scales the targetScalar by how different the party size is from this (min 1)
    const uint64_t SpellClutterHostileScalar                          = 0x02EA6FB8; // Scalar we apply to the hostile creature spells (min 0.001)
    const uint64_t SpellClutterMinSpellCount                          = 0x02EA6FC0; // Min spells on a target before we apply clutter logic (min 0)
    const uint64_t SpellClutterMinWeaponTrailCount                    = 0x02EA6FC8; // Min weaponTrails in the scene before we apply clutter logic (min 0)
    const uint64_t BodyQuota                                          = 0x02EA6FF8; // Maximum number of componented bodies seen at once
    const uint64_t StreamingCameraRadius                              = 0x0306BA58; // Base radius of the streaming camera.
    const uint64_t StreamingCameraMaxRadius                           = 0x0306BA60; // Max radius of the streaming camera.
    const uint64_t StreamingCameraLookAheadTime                       = 0x0306BA68; // Look ahead time for streaming.
    const uint64_t SoundPerf_VariationCap                             = 0x0306FDB8; // Limit sound kit variations to cut down on memory usage and disk thrashing on 32-bit machines
    const uint64_t Sound_EnablePositionalLowPassFilter                = 0x0306FDC0; // Environmental effect to make sounds duller behind you or far away
    const uint64_t Sound_AmbienceHighpassDSPCutoff                    = 0x030702C0; // The cutoff value to use for the Highpass filter on the Ambience bus (default 100 Hz)
    const uint64_t Sound_AllyPlayerHighpassDSPCutoff                  = 0x030702C8; // The cutoff value to use for the Highpass filter on the Ally Player bus (default 80 Hz)
    const uint64_t Sound_EnemyPlayerHighpassDSPCutoff                 = 0x030702D0; // The cutoff value to use for the Highpass filter on the Enemy Player bus (default 80 Hz)
    const uint64_t Sound_NPCHighpassDSPCutoff                         = 0x030702D8; // The cutoff value to use for the Highpass filter on the NPC bus (default 80 Hz)
    const uint64_t Sound_NumChannels                                  = 0x03070930; // number of sound channels
    const uint64_t Sound_EnableReverb                                 = 0x03070938;
    const uint64_t Sound_OutputDriverIndex                            = 0x03070940;
    const uint64_t Sound_OutputDriverName                             = 0x03070948; // Primary Sound Driver
    const uint64_t Sound_VoiceChatInputDriverIndex                    = 0x03070A20;
    const uint64_t Sound_VoiceChatInputDriverName                     = 0x03070A28; // Primary Sound Capture Driver
    const uint64_t Sound_VoiceChatOutputDriverIndex                   = 0x03070A30;
    const uint64_t Sound_VoiceChatOutputDriverName                    = 0x03070A38; // Primary Sound Driver
    const uint64_t Sound_DSPBufferSize                                = 0x03070950; // sound buffer size, default 0
    const uint64_t Sound_OutputSampleRate                             = 0x03070960; // output sample rate
    const uint64_t Sound_EnableMixMode2                               = 0x03070958;
    const uint64_t Sound_EnableSFX                                    = 0x03070968;
    const uint64_t Sound_EnableAmbience                               = 0x03070970; // Enable Ambience
    const uint64_t Sound_EnableErrorSpeech                            = 0x03070978; // error speech
    const uint64_t Sound_EnableMusic                                  = 0x03070980; // Enables music
    const uint64_t Sound_EnableAllSound                               = 0x03070988;
    const uint64_t Sound_EnableDialog                                 = 0x03070990; // all dialog
    const uint64_t Sound_MasterVolume                                 = 0x03070998; // master volume (0.0 to 1.0)
    const uint64_t Sound_SFXVolume                                    = 0x030709A0; // sound volume (0.0 to 1.0)
    const uint64_t Sound_MusicVolume                                  = 0x030709A8; // music volume (0.0 to 1.0)
    const uint64_t Sound_AmbienceVolume                               = 0x030709B0; // Ambience Volume (0.0 to 1.0)
    const uint64_t Sound_DialogVolume                                 = 0x030709B8; // Dialog Volume (0.0 to 1.0)
    const uint64_t Sound_ListenerAtCharacter                          = 0x030709C0; // lock listener at character
    const uint64_t Sound_EnableEmoteSounds                            = 0x030709C8;
    const uint64_t Sound_ZoneMusicNoDelay                             = 0x030709D0;
    const uint64_t Sound_EnableArmorFoleySoundForSelf                 = 0x030709D8;
    const uint64_t Sound_EnableArmorFoleySoundForOthers               = 0x030709E0;
    const uint64_t Sound_EnablePetSounds                              = 0x03070A08; // Enables pet sounds
    const uint64_t Sound_MaxCacheSizeInBytes                          = 0x030709F0; // Max cache size in bytes
    const uint64_t Sound_MaxCacheableSizeInBytes                      = 0x030709F8; // Max sound size that will be cached, larger files will be streamed instead
    const uint64_t FootstepSounds                                     = 0x03070A00; // play footstep sounds
    const uint64_t Sound_AlternateListener                            = 0x03070A10; // When enabled, calculates listener forward by simply using the camera's yaw value, instead of a vector from camera position to listener position
    const uint64_t Sound_EnableSoundWhenGameIsInBG                    = 0x030709E8; // Enable Sound When Game Is In Background
    const uint64_t TaintLog                                           = 0x030C7B30; // Whether taint logging is enabled
    const uint64_t ScriptProfile                                      = 0x030C7B40; // Whether or not script profiling is enabled
    const uint64_t UiScale                                            = 0x030C7D08; // The current UI scale
    const uint64_t UseUiScale                                         = 0x030C7CF8; // Whether or not the UI scale should be used
    const uint64_t UiScaleMultiplier                                  = 0x030C6CD8; // A multiplier for the default UI scale. -1=determine based on system/monitor DPI, 0.5-2.0=multiplier to use when calculating UI scale. Only applied when useUIScale is 0.
    const uint64_t MinimumAutomaticUiScale                            = 0x030C6CD0; // When to stop automatically scaling the UI down based on higher resolution.  Only applied when useUIScale is 0.  Classic used 0.9 for this value.  Mainline uses 0.64, the same as the hard cap on scaling.
    const uint64_t UseHighResolutionUITextures                        = 0x030C7D00; // Whether to use high resolution UI Textures
    const uint64_t DeselectOnClick                                    = 0x030C7B48; // Clear the target when clicking on terrain
    const uint64_t AutoInteract                                       = 0x030C7B50; // Toggles auto-move to interact target
    const uint64_t AutoStand                                          = 0x030C7B58; // Automatically stand when needed
    const uint64_t AutoDismount                                       = 0x030C7B60; // Automatically dismount when needed
    const uint64_t AutoDismountFlying                                 = 0x030C7B68; // If enabled, your character will automatically dismount before casting while flying
    const uint64_t AutoUnshift                                        = 0x030C7B70; // Automatically leave shapeshift form when needed
    const uint64_t AutoClearAFK                                       = 0x030C7B78; // Automatically clear AFK when moving or chatting
    const uint64_t BlockTrades                                        = 0x030C7B88; // Whether to automatically block trade requests
    const uint64_t BlockChannelInvites                                = 0x030C7B90; // Whether to automatically block chat channel invites
    const uint64_t LootUnderMouse                                     = 0x030C7B90; // Whether the loot window should open under the mouse
    const uint64_t AutoLootDefault                                    = 0x030C7B98; // Automatically loot items when the loot window opens
    const uint64_t AutoLootRate                                       = 0x030C6CC0; // Rate in milliseconds to tick auto loot
    const uint64_t AlwaysCompareItems                                 = 0x030C7E48; // Always show item comparison tooltips
    const uint64_t BreakUpLargeNumbers                                = 0x030C7E48; // Toggles using commas in large numbers
    const uint64_t SuperTrackerDist                                   = 0x030C7E50;
    const uint64_t SpellBookSort                                      = 0x030C7E58;
    const uint64_t InteractOnLeftClick                                = 0x030C7BA0; // Test CVar for interacting with NPC's on left click
    const uint64_t AssistAttack                                       = 0x030C7BA8; // Whether to start attacking after an assist
    const uint64_t AutoSelfCast                                       = 0x030C7BB0; // Whether spells should automatically be cast on you if you don't have a valid target
    const uint64_t StopAutoAttackOnTargetChange                       = 0x030C7BB8; // Whether to stop attacking when changing targets
    const uint64_t ShowTargetOfTarget                                 = 0x030C7BC0; // Whether the target of target frame should be shown
    const uint64_t ShowTargetCastbar                                  = 0x030C7BC8; // Show the spell your current target is casting
    const uint64_t ShowVKeyCastbar                                    = 0x030C7BD0; // If the V key display is up for your current target, show the enemy cast bar with the target's health bar in the game field
    const uint64_t ShowVKeyCastbarOnlyOnTarget                        = 0x030C7BD8;
    const uint64_t ShowVKeyCastbarSpellName                           = 0x030C7BE0;
    const uint64_t DoNotFlashLowHealthWarning                         = 0x030C7BE8; // Do not flash your screen red when you are low on health.
    const uint64_t SpellQueueWindow                                   = 0x030C7BE8; // Sets how early you can pre-activate/queue a spell/ability. (In Milliseconds)
    const uint64_t RotateMinimap                                      = 0x030C7BF8; // Whether to rotate the entire minimap instead of the player arrow
    const uint64_t MinimapZoom                                        = 0x030C7C00; // The current outdoor minimap zoom level
    const uint64_t MinimapInsideZoom                                  = 0x030C7C08; // The current indoor minimap zoom level
    const uint64_t MinimapAltitudeHintMode                            = 0x030C7C10; // Change minimap altitude difference display. 0=none, 1=darken, 2=arrows
    const uint64_t ShowMinimapClock                                   = 0x030C7B38; // Whether to show the clock and time manager features below the minimap frame.
    const uint64_t ScriptErrors                                       = 0x030C7B38; // Whether or not the UI shows Lua errors
    const uint64_t ScriptWarnings                                     = 0x030C7C18; // Whether or not the UI shows Lua warnings
    const uint64_t ScreenEdgeFlash                                    = 0x030C7C18; // Whether to show a red flash while you are in combat with the world map up
    const uint64_t DisplayFreeBagSlots                                = 0x030C7C20; // Whether or not the backpack button should indicate how many inventory slots you've got free
    const uint64_t DisplayWorldPVPObjectives                          = 0x030C7C28; // Whether to show world PvP objectives
    const uint64_t StreamStatusMessage                                = 0x030C7C30; // Whether to display status messages while streaming content
    const uint64_t EmphasizeMySpellEffects                            = 0x030C7C30; // Whether other player's spell impacts are toned down or not.
    const uint64_t AllowCompareWithToggle                             = 0x030C7EB0;
    const uint64_t CountdownForCooldowns                              = 0x030C7EB0; // Whether to use number countdown instead of radial swipe for action button cooldowns or not.
    const uint64_t MapFade                                            = 0x030C7E08; // Whether to fade out the world map when moving
    const uint64_t TrackQuestSorting                                  = 0x030C7E08; // Whether to sort the last tracked quest to the top of the quest tracker or use proximity sorting
    const uint64_t ProfanityFilter                                    = 0x030C7C38; // Whether to enable mature language filtering
    const uint64_t SpamFilter                                         = 0x030C7C40; // Whether to enable spam filtering
    const uint64_t ShowLootSpam                                       = 0x030C7C48; // Whether to show full loot rolls in chat.
    const uint64_t ChatBubbles                                        = 0x030C7C50; // Whether to show in-game chat bubbles
    const uint64_t ChatBubblesParty                                   = 0x030C7C58; // Whether to show in-game chat bubbles for party chat
    const uint64_t RemoveChatDelay                                    = 0x030C7C60; // Remove Chat Hover Delay
    const uint64_t GuildShowOffline                                   = 0x030C7C68; // Show offline guild members in the guild UI
    const uint64_t GuildMemberNotify                                  = 0x030C7C70; // Receive notification when guild members log on/off
    const uint64_t GuildRewardsUsable                                 = 0x030C7C78; // Show usable guild rewards only
    const uint64_t GuildRewardsCategory                               = 0x030C7C80; // Show category of guild rewards
    const uint64_t ChatMouseScroll                                    = 0x030C7EC8; // Whether the user can use the mouse wheel to scroll through chat
    const uint64_t EnableTwitter                                      = 0x030C7EC8; // Whether Twitter integration is enabled
    const uint64_t TwitterGetConfigTime                               = 0x030C7EE8; // Last time that we got Twitter configuration data successfully
    const uint64_t TwitterShortUrlLength                              = 0x030C7ED0; // Number of characters that non-https URLS get shortened to
    const uint64_t TwitterShortUrlLengthHttps                         = 0x030C7ED8; // Number of characters that https URLS get shortened to
    const uint64_t TwitterCharactersPerMedia                          = 0x030C7EE0; // Number of characters needed when attaching media to a Twitter post
    const uint64_t FindYourselfMode                                   = 0x030C6D28; // Highlight your character. 0 = circle, 1 = circle & outline, 2 = outline
    const uint64_t FindYourselfInRaidOnlyInCombat                     = 0x030C6D30; // Highlight your character in Raids only when in combat
    const uint64_t FindYourselfInBGOnlyInCombat                       = 0x030C6D38; // Highlight your character in Battlegrounds only when in combat
    const uint64_t FindYourselfAnywhereOnlyInCombat                   = 0x030C6D40; // Highlight your character only when in combat
    const uint64_t FindYourselfInRaid                                 = 0x030C6D48; // Always Highlight your character in Raids
    const uint64_t FindYourselfInBG                                   = 0x030C6D50; // Always Highlight your character in Battlegrounds
    const uint64_t FindYourselfAnywhere                               = 0x030C6D58; // Always Highlight your character
    const uint64_t ComboPointLocation                                 = 0x030C6D60; // Location of combo points in UI. 1=target, 2=self
    const uint64_t NameplateOtherAtBase                               = 0x030C6D60; // Position other nameplates at the base, rather than overhead
    const uint64_t NameplateTargetRadialPosition                      = 0x030C6D68; // When target is off screen, position its nameplate radially around sides and bottom. 1: Target Only. 2: All In Combat
    const uint64_t AlwaysShowActionBars                               = 0x030C7C88; // Whether to always show the action bar grid
    const uint64_t SecureAbilityToggle                                = 0x030C7C88; // Whether you should be protected against accidentally double-clicking an aura
    const uint64_t FloatingCombatTextCombatDamage                     = 0x030C7C90; // Display damage numbers over hostile creatures when damaged
    const uint64_t FloatingCombatTextCombatDamageStyle                = 0x030C6CC8; // No longer used
    const uint64_t FloatingCombatTextCombatDamageAllAutos             = 0x030C7C98; // Show all auto-attack numbers, rather than hiding non-event numbers
    const uint64_t FloatingCombatTextCombatDamageDirectionalOffset    = 0x030C7CA0; // Amount to offset directional damage numbers when they start
    const uint64_t FloatingCombatTextCombatDamageDirectionalScale     = 0x030C7CA8; // Directional damage numbers movement scale (0 = no directional numbers)
    const uint64_t FloatingCombatTextCombatLogPeriodicSpells          = 0x030C7CB0; // Display damage caused by periodic effects
    const uint64_t FloatingCombatTextPetMeleeDamage                   = 0x030C7CB8; // Display pet melee damage in the world
    const uint64_t FloatingCombatTextPetSpellDamage                   = 0x030C7CC0; // Display pet spell damage in the world
    const uint64_t FloatingCombatTextCombatHealing                    = 0x030C7CC8; // Display amount of healing you did to the target
    const uint64_t FloatingCombatTextFloatMode                        = 0x030C7CD0; // The combat text float mode
    const uint64_t EnablePetBattleFloatingCombatText                  = 0x030C7CD0; // Whether to show floating combat text for pet battles
    const uint64_t UseCompactPartyFrames                              = 0x030C7BF0; // Use the new raid frames for parties
    const uint64_t BuffDurations                                      = 0x030C7BF0; // Whether to show buff durations
    const uint64_t NoBuffDebuffFilterOnTarget                         = 0x030C7E20; // Do not filter buffs or debuffs at all on targets
    const uint64_t ShowToastOnline                                    = 0x030C7E20; // Whether to show Battle.net message for friend coming online
    const uint64_t ShowToastOffline                                   = 0x030C7E28; // Whether to show Battle.net message for friend going offline
    const uint64_t ShowToastBroadcast                                 = 0x030C7E30; // Whether to show Battle.net message for broadcasts
    const uint64_t ShowToastFriendRequest                             = 0x030C7E18; // Whether to show Battle.net message for friend requests
    const uint64_t ShowToastConversation                              = 0x030C7E38; // Whether to show Battle.net message for conversations
    const uint64_t ShowToastClubInvitation                            = 0x030C6CF8; // Whether to show Battle.net message for club invitations
    const uint64_t AlwaysShowBlizzardGroupsTab                        = 0x030C6D00; // Always show the Groups tab in the Social Frame, even when the player is not in a Group.
    const uint64_t UberTooltips                                       = 0x030C7E40; // Show verbose tooltips
    const uint64_t ShowTutorials                                      = 0x030C7E40; // display tutorials
    const uint64_t CalendarShowWeeklyHolidays                         = 0x030C7CD8; // Whether weekly holidays should appear in the calendar
    const uint64_t CalendarShowDarkmoon                               = 0x030C7CE0; // Whether Darkmoon Faire holidays should appear in the calendar
    const uint64_t CalendarShowBattlegrounds                          = 0x030C7CE8; // Whether Battleground holidays should appear in the calendar
    const uint64_t CalendarShowLockouts                               = 0x030C7CF0; // Whether raid lockouts should appear in the calendar
    const uint64_t NameplateShowEnemies                               = 0x030C7D10;
    const uint64_t NameplateShowEnemyMinions                          = 0x030C7D18;
    const uint64_t NameplateShowEnemyPets                             = 0x030C7D20;
    const uint64_t NameplateShowEnemyGuardians                        = 0x030C7D28;
    const uint64_t NameplateShowEnemyTotems                           = 0x030C7D30;
    const uint64_t NameplateShowEnemyMinus                            = 0x030C7D38;
    const uint64_t NameplateShowFriends                               = 0x030C7D40;
    const uint64_t NameplateShowFriendlyNPCs                          = 0x030C7D48;
    const uint64_t NameplateShowFriendlyMinions                       = 0x030C7D50;
    const uint64_t NameplateShowFriendlyPets                          = 0x030C7D58;
    const uint64_t NameplateShowFriendlyGuardians                     = 0x030C7D60;
    const uint64_t NameplateShowFriendlyTotems                        = 0x030C7D68;
    const uint64_t NameplateShowAll                                   = 0x030C7D70;
    const uint64_t NameplateShowDebuffsOnFriendly                     = 0x030C7D78;
    const uint64_t EnablePVPNotifyAFK                                 = 0x030C7D88; // The ability to shutdown the AFK notification system
    const uint64_t ServiceTypeFilter                                  = 0x030C7D90; // Which trainer services to show
    const uint64_t TalentFrameShown                                   = 0x030C7D80; // The talent UI has been shown
    const uint64_t TalentPointsSpent                                  = 0x030C7D80; // The player has spent a talent point
    const uint64_t TimeMgrAlarmEnabled                                = 0x030C7D98; // Toggles whether or not the time manager's alarm will go off
    const uint64_t CombatLogRetentionTime                             = 0x030C7D98; // The maximum duration in seconds to retain combat log entries
    const uint64_t CombatLogUniqueFilename                            = 0x030C7DA0; // Write combat log file with a timestamped name per client launch
    const uint64_t CurrencyTokensUnused1                              = 0x030C7DA8; // Currency token types marked as unused.
    const uint64_t CurrencyTokensUnused2                              = 0x030C7DB0; // Currency token types marked as unused.
    const uint64_t CurrencyTokensBackpack1                            = 0x030C7DB8; // Currency token types shown on backpack.
    const uint64_t CurrencyTokensBackpack2                            = 0x030C7DC0; // Currency token types shown on backpack.
    const uint64_t ShowTokenFrameHonor                                = 0x030C7DC8; // The token UI has shown Honor
    const uint64_t PredictedHealth                                    = 0x030C7DC8; // Whether or not to use predicted health values in the UI
    const uint64_t LfgSelectedRoles                                   = 0x030C7DD8; // Stores what roles the player is willing to take on.
    const uint64_t LfdCollapsedHeaders                                = 0x030C7DE0; // Stores which LFD headers are collapsed.
    const uint64_t LfdSelectedDungeons                                = 0x030C7DE8; // Stores which LFD dungeons are selected.
    const uint64_t PvpSelectedRoles                                   = 0x030C7DF0; // Stores what roles the player will fulfill in a BG.
    const uint64_t LfgListSearchLanguages                             = 0x030C7DF8; // A simple bitfield for what languages we want to search in.
    const uint64_t LastTalkedToGM                                     = 0x030C7E00; // Stores the last GM someone was talking to in case they reload the UI while the GM chat window is open.
    const uint64_t ColorChatNamesByClass                              = 0x030C7E10; // If enabled, the name of a player speaking in chat will be colored according to his class.
    const uint64_t AutoFilledMultiCastSlots                           = 0x030C7E10; // Bitfield that saves whether multi-cast slots have been automatically filled.
    const uint64_t DangerousShipyardMissionWarningAlreadyShown        = 0x030C7E60; // Boolean indicating whether the shipyard's dangerous mission warning has been shown
    const uint64_t PetJournalFilters                                  = 0x030C7E60; // Bitfield for which collected filters are applied in the pet journal
    const uint64_t PetJournalTypeFilters                              = 0x030C7E68; // Bitfield for which type filters are applied in the pet journal
    const uint64_t PetJournalSourceFilters                            = 0x030C7E70; // Bitfield for which source filters are applied in the pet journal
    const uint64_t PetJournalSort                                     = 0x030C7E78; // Sorting value for the pet journal
    const uint64_t MountJournalGeneralFilters                         = 0x030C7E80; // Bitfield for which collected filters are applied in the mount journal
    const uint64_t MountJournalSourcesFilter                          = 0x030C7E88; // Bitfield for which source filters are applied in the mount journal
    const uint64_t ToyBoxExpansionFilters                             = 0x030C7E90; // Bitfield for which expansion filters are applied in the toybox
    const uint64_t HeirloomCollectedFilters                           = 0x030C7E90; // Bitfield for which collected filters are applied in the heirloom journal
    const uint64_t HeirloomSourceFilters                              = 0x030C7E98; // Bitfield for which source filters are applied in the heirloom journal
    const uint64_t TransmogrifySourceFilters                          = 0x030C7EA0; // Bitfield for which source filters are applied in the  wardrobe at the transmogrifier
    const uint64_t WardrobeSourceFilters                              = 0x030C7EA8; // Bitfield for which source filters are applied in the wardrobe in the collection journal
    const uint64_t DisplayedRAFFriendInfo                             = 0x030C7EC0; // Stores whether we already told a recruited person about their new BattleTag friend
    const uint64_t EmitterCombatRange                                 = 0x030C7EC0; // Range to stop shoulder/weapon emissions during combat
    const uint64_t NonEmitterCombatRange                              = 0x030C7EB8; // Range to stop shoulder/weapon emissions outside combat
    const uint64_t SplashScreenBoost                                  = 0x030C6D18; // Show boost splash screen id 
    const uint64_t SeenAsiaCharacterUpgradePopup                      = 0x030C6D18; // Seen the free character upgrade popup (Asia)
    const uint64_t ShowSpectatorTeamCircles                           = 0x030C6D20; // Determines if the team color circles are visible while spectating or commentating a wargame
    const uint64_t FlashErrorMessageRepeats                           = 0x030C7EF0; // Flashes the center screen red error text if the same message is fired.
    const uint64_t OutdoorMinAltitudeDistance                         = 0x030C7EF0; // Minimum altitude distance for outdoor objects when you are also outdoors before the altitude difference marker displays
    const uint64_t GarrisonCompleteTalent                             = 0x030C7EF8;
    const uint64_t GarrisonCompleteTalentType                         = 0x030C7F00;
    const uint64_t AllowDangerousScripts                              = 0x030C7F08;
    const uint64_t EnableBlinkApplicationIcon                         = 0x030C7F10; // Allows the client to blink the application icon in the taskbar in Windows, or bounce the application icon in the dock on macOS
    const uint64_t Fstack_showhidden                                  = 0x030C7F18; // 0: Hide Hidden (Default), 1: Show Hidden.
    const uint64_t Fstack_showregions                                 = 0x030C7F20; // 0: Hide Regions, 1: Show Regions (Default).
    const uint64_t Fstack_showanchors                                 = 0x030C7F28; // 0: Hide Anchors, 1: Show Anchors (Default).
    const uint64_t CommentatorLossOfControlIconUnitFrame              = 0x030C7B80; // 0: Off, 1: On.
    const uint64_t AutoRangedCombat                                   = 0x030C7B80; // If enabled, your character will automatically switch between auto attack and auto shot.
    const uint64_t SeenAADCAlert                                      = 0x030C7F34; // Seen the Age Appropriate Design Code alert (UK)
    const uint64_t NameplateMaxDistance                               = 0x030FAE10; // The max distance to show nameplates.
    const uint64_t NameplateCommentatorMaxDistance                    = 0x030FAE18; // The max distance to show nameplates when in Commentator Mode.
    const uint64_t NameplateTargetBehindMaxDistance                   = 0x030FAE20; // The max distance to show the target nameplate when the target is behind the camera.
    const uint64_t NameplateMotion                                    = 0x030FAE28; // Defines the movement/collision model for nameplates
    const uint64_t NameplateMotionSpeed                               = 0x030FAE30; // Controls the rate at which nameplate animates into their target locations [0.0-1.0]
    const uint64_t NameplateOverlapH                                  = 0x030FAE38; // Percentage amount for horizontal overlap of nameplates
    const uint64_t NameplateOverlapV                                  = 0x030FAE40; // Percentage amount for vertical overlap of nameplates
    const uint64_t NameplateGlobalScale                               = 0x030FAE48; // Applies global scaling to non-self nameplates, this is applied AFTER selected, min, and max scale.
    const uint64_t NameplateMinScale                                  = 0x030FAE58; // The minimum scale of nameplates.
    const uint64_t NameplateMaxScale                                  = 0x030FAE60; // The max scale of nameplates.
    const uint64_t NameplateLargerScale                               = 0x030FAE50; // An additional scale modifier for important monsters.
    const uint64_t NameplateMinScaleDistance                          = 0x030FAE68; // The distance from the max distance that nameplates will reach their minimum scale.
    const uint64_t NameplateMaxScaleDistance                          = 0x030FAE70; // The distance from the camera that nameplates will reach their maximum scale.
    const uint64_t NameplateMinAlpha                                  = 0x030FAE78; // The minimum alpha of nameplates.
    const uint64_t NameplateMaxAlpha                                  = 0x030FAE80; // The max alpha of nameplates.
    const uint64_t NameplateOccludedAlphaMult                         = 0x030FAE88; // Alpha multiplier of nameplates for occluded targets.
    const uint64_t NameplateMinAlphaDistance                          = 0x030FAE90; // The distance from the max distance that nameplates will reach their minimum alpha.
    const uint64_t NameplateMaxAlphaDistance                          = 0x030FAE98; // The distance from the camera that nameplates will reach their maximum alpha.
    const uint64_t NameplateSelectedScale                             = 0x030FAEA0; // The scale of the selected nameplate.
    const uint64_t NameplateSelectedAlpha                             = 0x030FAEA8; // The alpha of the selected nameplate.
    const uint64_t NameplateNotSelectedAlpha                          = 0x030FAEB0; // When you have a target, the alpha of other units' nameplates (not used if value is negative).
    const uint64_t ClampTargetNameplateToScreen                       = 0x030FAEB8; // Clamps the target's nameplate to the edges of the screen, even if the target is off-screen.
    const uint64_t NameplateSelfScale                                 = 0x030FAEC0; // The scale of the self nameplate.
    const uint64_t NameplateSelfAlpha                                 = 0x030FAEC8; // The alpha of the self nameplate.
    const uint64_t NameplateSelfBottomInset                           = 0x030FAED0; // The inset from the bottom (in screen percent) that the self nameplate is clamped to.
    const uint64_t NameplateSelfTopInset                              = 0x030FAED8; // The inset from the top (in screen percent) that the self nameplate is clamped to.
    const uint64_t NameplateOtherBottomInset                          = 0x030FAEE0; // The inset from the bottom (in screen percent) that the non-self nameplates are clamped to.
    const uint64_t NameplateOtherTopInset                             = 0x030FAEE8; // The inset from the top (in screen percent) that the non-self nameplates are clamped to.
    const uint64_t NameplateLargeBottomInset                          = 0x030FAEF0; // The inset from the bottom (in screen percent) that large nameplates are clamped to.
    const uint64_t NameplateLargeTopInset                             = 0x030FAEF8; // The inset from the top (in screen percent) that large nameplates are clamped to.
    const uint64_t ColorNameplateNameBySelection                      = 0x030FAF00; // Color the unit names above nameplates based on the unit.
    const uint64_t NameplateRemovalAnimation                          = 0x030FAF00; // When enabled, nameplates will play a brief shrinking animation when disappearing.
    const uint64_t NamePlateVerticalScale                             = 0x030FAF08; // Applied to vertical size of all nameplates.
    const uint64_t NameplatePersonalShowAlways                        = 0x030FAF08; // Determines if the the personal nameplate is always shown.
    const uint64_t NameplatePersonalShowInCombat                      = 0x030FAF10; // Determines if the the personal nameplate is shown when you enter combat.
    const uint64_t NameplatePersonalShowWithTarget                    = 0x030FAF18; // Determines if the personal nameplate is shown when selecting a target. 0 = targeting has no effect, 1 = show on hostile target, 2 = show on any target
    const uint64_t NameplatePersonalHideDelaySeconds                  = 0x030FAF20; // Determines the length of time in seconds that the personal nameplate will be visible after no visibility conditions are met.
    const uint64_t NameplatePersonalHideDelayAlpha                    = 0x030FAF28; // Determines the alpha of the personal nameplate after no visibility conditions are met (during the period of time specified by NameplatePersonalHideDelaySeconds).
    const uint64_t POIShiftComplete                                   = 0x0310D7A0;
    const uint64_t IncompleteQuestPriorityThresholdDelta              = 0x0310D7A8;
    const uint64_t RuneSpentFlashTime                                 = 0x0311787C; // Adjust the time the rune flash takes to fade out
    const uint64_t RuneSpentFadeTime                                  = 0x0311787C; // Adjust the time the base rune takes to fade out after the rune flash fades out
    const uint64_t AutojoinPartyVoice                                 = 0x031466B0; // Automatically join the voice session in party/raid chat
    const uint64_t AutojoinBGVoice                                    = 0x031466B8; // Automatically join the voice session in battleground chat
    const uint64_t PushToTalkSound                                    = 0x031466C0; // Play a sound when voice recording activates and deactivates
    const uint64_t VoiceCommunicationMode                             = 0x031466C8; // Which communication mode to use for voice chat: push-to-talk, open mic, etc...
    const uint64_t VoiceOutputVolume                                  = 0x031466E8; // The volume of incoming voice chat, how loud other users' voices sound
    const uint64_t VoiceInputVolume                                   = 0x031466D8; // The gain applied to your microphone, helps change your speaking volume from other users' perspectives, larger values are louder.
    const uint64_t VoiceVADSensitivity                                = 0x031466F0; // How sensitive voice activity detection is.  Value ranges from 0 to 100, smaller values will transmit at a lower noise threshold.
    const uint64_t VoiceInputDevice                                   = 0x031466D0; // Which deviceID you would like to use to pick up the sound of your wonderful voice, usually a microphone of some kind, empty string is system default
    const uint64_t VoiceOutputDevice                                  = 0x031466E0; // Which deviceID you would like to use to transmit the sound of other users' wonderful voices, usually a speakers of some kind, empty string is system default
    const uint64_t VoiceEnableWhenGameIsInBG                          = 0x031466F8; // Enable Voice Chat when game is in background
    const uint64_t VoicePushToTalkKeybind                             = 0x03146700; // Push to talk key
    const uint64_t VoiceSelfDeafened                                  = 0x03146708; // Voice Chat Self Deafened
    const uint64_t VoiceSelfMuted                                     = 0x03146710; // Voice Chat Self Muted
    const uint64_t VoiceChatMasterVolumeScale                         = 0x03146718; // Voice Chat audio ducking, applied as a scale to the game's master volume when somebody is speaking in voice chat
    const uint64_t RemoteTextToSpeech                                 = 0x03146730; // Enables typing into a voice chat window to speak to other players using the text to speech system
    const uint64_t RemoteTextToSpeechVoice                            = 0x03146738; // Voice option used with Speak for Me where you can send text to speech to other players in voice chat
    const uint64_t CameraSavedDistance                                = 0x0314F1B0;
    const uint64_t CameraSavedVehicleDistance                         = 0x0314F1C0;
    const uint64_t CameraSavedPetBattleDistance                       = 0x0314F1D0;
    const uint64_t CameraSavedPitch                                   = 0x0314F1E0;
    const uint64_t MouseInvertYaw                                     = 0x0314F1F0;
    const uint64_t MouseInvertPitch                                   = 0x0314F200;
    const uint64_t CameraBobbing                                      = 0x0314F210;
    const uint64_t Test_cameraHeadMovementStrength                    = 0x0314F220;
    const uint64_t Test_cameraHeadMovementRangeScale                  = 0x0314F250;
    const uint64_t Test_cameraHeadMovementMovingStrength              = 0x0314F230;
    const uint64_t Test_cameraHeadMovementStandingStrength            = 0x0314F240;
    const uint64_t Test_cameraHeadMovementMovingDampRate              = 0x0314F260;
    const uint64_t Test_cameraHeadMovementStandingDampRate            = 0x0314F270;
    const uint64_t Test_cameraHeadMovementFirstPersonDampRate         = 0x0314F280;
    const uint64_t Test_cameraHeadMovementDeadZone                    = 0x0314F290;
    const uint64_t Test_cameraDynamicPitch                            = 0x0314F2A0;
    const uint64_t Test_cameraDynamicPitchBaseFovPad                  = 0x0314F2B0;
    const uint64_t Test_cameraDynamicPitchBaseFovPadFlying            = 0x0314F2C0;
    const uint64_t Test_cameraDynamicPitchBaseFovPadDownScale         = 0x0314F2D0;
    const uint64_t Test_cameraDynamicPitchSmartPivotCutoffDist        = 0x0314F2E0;
    const uint64_t Test_cameraOverShoulder                            = 0x0314F2F0;
    const uint64_t Test_cameraTargetFocusEnemyEnable                  = 0x0314F300;
    const uint64_t Test_cameraTargetFocusEnemyStrengthPitch           = 0x0314F310;
    const uint64_t Test_cameraTargetFocusEnemyStrengthYaw             = 0x0314F320;
    const uint64_t Test_cameraTargetFocusInteractEnable               = 0x0314F330;
    const uint64_t Test_cameraTargetFocusInteractStrengthPitch        = 0x0314F340;
    const uint64_t Test_cameraTargetFocusInteractStrengthYaw          = 0x0314F350;
    const uint64_t CameraZoomSpeed                                    = 0x0314F360;
    const uint64_t CameraDistanceRateMult                             = 0x0314F370;
    const uint64_t CameraPitchMoveSpeed                               = 0x0314F380;
    const uint64_t CameraYawMoveSpeed                                 = 0x0314F3A0;
    const uint64_t CameraBobbingSmoothSpeed                           = 0x0314F3B0;
    const uint64_t CameraFoVSmoothSpeed                               = 0x0314F3C0;
    const uint64_t CameraGroundSmoothSpeed                            = 0x0314F3D0;
    const uint64_t CameraPitchSmoothSpeed                             = 0x0314F3E0;
    const uint64_t CameraTargetSmoothSpeed                            = 0x0314F3F0;
    const uint64_t CameraYawSmoothSpeed                               = 0x0314F400;
    const uint64_t CameraViewBlendStyle                               = 0x0314F410;
    const uint64_t CameraView                                         = 0x0314F420;
    const uint64_t CameraSmooth                                       = 0x0314F5F0;
    const uint64_t CameraSmoothPitch                                  = 0x0314F600;
    const uint64_t CameraSmoothYaw                                    = 0x0314F620;
    const uint64_t CameraSmoothStyle                                  = 0x0314F630;
    const uint64_t CameraSmoothTrackingStyle                          = 0x0314F610;
    const uint64_t CameraCustomViewSmoothing                          = 0x0314F5E0;
    const uint64_t CameraZDamp                                        = 0x0314FC90; // 1 = enable, 2 = also while standing still
    const uint64_t CameraTerrainTilt                                  = 0x0314FCA0;
    const uint64_t CameraTerrainTiltTimeMin                           = 0x03150610;
    const uint64_t CameraTerrainTiltTimeMax                           = 0x03150620;
    const uint64_t CameraWaterCollision                               = 0x03150630;
    const uint64_t CameraHeightIgnoreStandState                       = 0x03150640;
    const uint64_t CameraPivot                                        = 0x03150650;
    const uint64_t CameraPivotDXMax                                   = 0x03150660;
    const uint64_t CameraPivotDYMin                                   = 0x03150670;
    const uint64_t CameraDive                                         = 0x03150680;
    const uint64_t CameraSurfacePitch                                 = 0x03150690;
    const uint64_t CameraSubmergePitch                                = 0x031506A0;
    const uint64_t CameraDistanceMaxZoomFactor                        = 0x031506B0;
    const uint64_t CameraPitchSmoothMin                               = 0x031506C0;
    const uint64_t CameraPitchSmoothMax                               = 0x031506D0;
    const uint64_t CameraYawSmoothMin                                 = 0x031506E0;
    const uint64_t CameraYawSmoothMax                                 = 0x031506F0;
    const uint64_t CameraSmoothTimeMin                                = 0x03150700;
    const uint64_t CameraSmoothTimeMax                                = 0x03150710;
    const uint64_t GxMTDisable                                        = 0x0319C850; // Disable all render multithreading
    const uint64_t GxMTBeginDraw                                      = 0x0319C858; // Do BeginDraw multithreaded.
    const uint64_t GxMTShadow                                         = 0x0319C860; // Render shadow bands in parallel.
    const uint64_t GxMTPrepass                                        = 0x0319C868; // Render prepass in parallel.
    const uint64_t GxMTOpaqueM2                                       = 0x0319C870; // Render opaque model pass in parallel.
    const uint64_t GxMTOpaqueM2NoReflect                              = 0x0319C878; // Render opaque model no reflection pass in parallel.
    const uint64_t GxMTAlphaM2                                        = 0x0319C890; // Render transparent M2 pass in parallel.
    const uint64_t GxMTOpaqueWMO                                      = 0x0319C880; // Render opaque WMO in parallel.
    const uint64_t GxMTTerrain                                        = 0x0319C888; // Render terrain in parallel.
    const uint64_t Farclip                                            = 0x0319BBE8; // Far clip plane distance
    const uint64_t Nearclip                                           = 0x0319C810; // Near clip plane distance
    const uint64_t HorizonClip                                        = 0x0319BC28; // Horizon end distance
    const uint64_t HorizonStart                                       = 0x0319BC30; // Horizon start distance
    const uint64_t ParticleDensity                                    = 0x0319BBF0; // Particle density
    const uint64_t ParticleMTDensity                                  = 0x0319BBF8; // Multi-Tex particle density
    const uint64_t WaterDetail                                        = 0x0319BC00; // Water surface detail
    const uint64_t RippleDetail                                       = 0x0319BC08; // Ripple surface detail
    const uint64_t ReflectionMode                                     = 0x0319BC10; // Reflection mode
    const uint64_t ReflectionDownscale                                = 0x0319C818; // Reflection downscale
    const uint64_t SunShafts                                          = 0x0319BC18;
    const uint64_t Bspcache                                           = 0x0319C828; // BSP node caching
    const uint64_t GroundEffectDensity                                = 0x0319BC38; // Ground effect density
    const uint64_t GroundEffectFade                                   = 0x0319C830; // Ground effect fade
    const uint64_t GroundEffectDist                                   = 0x0319BC40; // Ground effect dist
    const uint64_t GroundEffectAnimation                              = 0x0319BC48; // Ground effect animation
    const uint64_t VolumeFog                                          = 0x0319C838; // Volume Fog
    const uint64_t VolumeFogLevel                                     = 0x0319BC50; // Volume Fog Level (0-3)
    const uint64_t ParticulatesEnabled                                = 0x0319C840; // Particulates enabled
    const uint64_t VolumeFogInterior                                  = 0x0319C848; // Volume Fog Interiors
    const uint64_t ProjectedTextures                                  = 0x0319BC58; // Projected Textures
    const uint64_t ShadowMode                                         = 0x0319BC68; // Quality of shadows (0-3)
    const uint64_t ShadowTextureSize                                  = 0x0319BC70; // Shadow texture size (1024-2048)
    const uint64_t ShadowSoft                                         = 0x0319C898; // Soft shadows (0/1)
    const uint64_t ShadowRt                                           = 0x0319BC78; // Raytraced shadows (0-3)
    const uint64_t MaxLightCount                                      = 0x0319C8A0; // Maximum lights to render
    const uint64_t MaxLightDist                                       = 0x0319C8A8; // Maximum distance to render lights
    const uint64_t SSAO                                               = 0x0319BC20; // Screen-Space Ambient Occlusion
    const uint64_t SSAOType                                           = 0x0319C820; // Screen-Space Ambient Occlusion Type
    const uint64_t PreloadStreamingDistTerrain                        = 0x0319C8B0; // Terrain preload distance when streaming
    const uint64_t PreloadStreamingDistObject                         = 0x0319C8B8; // Object preload distance when streaming
    const uint64_t PreloadLoadingDistTerrain                          = 0x0319C8C0; // Terrain preload distance when loading
    const uint64_t PreloadLoadingDistObject                           = 0x0319C8C8; // Object preload distance when loading
    const uint64_t SkyCloudLOD                                        = 0x0319C8D0; // Texture resolution for clouds
    const uint64_t TextureFilteringMode                               = 0x0319C8D8; // Texture filtering mode
    const uint64_t TerrainLodDist                                     = 0x0319BC80; // Terrain level of detail distance
    const uint64_t TerrainLodDiv                                      = 0x0319BC88; // Terrain lod divisor
    const uint64_t WmoLodDist                                         = 0x0319BC90; // Wmo level of detail distance
    const uint64_t WmoLodDistScale                                    = 0x0319C8E0; // Wmo level of detail distance scale
    const uint64_t WmoDoodadDist                                      = 0x0319C8E8; // Wmo doodad load distance
    const uint64_t WmoPortalMinScreenSize                             = 0x0319C8F0; // Wmo portal min screen size
    const uint64_t EntityLodDist                                      = 0x0319BC98; // Entity level of detail distance
    const uint64_t EntityLodOffset                                    = 0x0319C8F8; // Entity level of detail offset
    const uint64_t EntityShadowFadeScale                              = 0x0319C900; // Entity shadow fade scale
    const uint64_t DoodadLodScale                                     = 0x0319BCA0; // Doodad level of detail scale
    const uint64_t TerrainMipLevel                                    = 0x0319C808; // Terrain blend map mip level
    const uint64_t WorldMaxMipLevel                                   = 0x0319C908; // World maximum texture mip level
    const uint64_t WorldBaseMip                                       = 0x0319BCA8; // World texture base mip
    const uint64_t OcclusionMaxJobs                                   = 0x0319C918; // Maximum job threads for occlusion render
    const uint64_t MinimapPortalMax                                   = 0x0319C800; // Max Number of Portals to traverse for minimap
    const uint64_t WorldViewCullMaxJobs                               = 0x0319C9F0; // Maximum job threads for culling
    const uint64_t LodObjectCullSize                                  = 0x0319BCB0; // Lod object culling size
    const uint64_t LodObjectCullDist                                  = 0x0319BCB8; // Lod object culling dist minimum
    const uint64_t LodObjectMinSize                                   = 0x0319BCC0; // Lod object min size
    const uint64_t LodObjectFadeScale                                 = 0x0319BCC8; // Lod object fade scale
    const uint64_t LodObjectSizeScale                                 = 0x0319C910; // Scales all objects size for culling
    const uint64_t RAIDsettingsEnabled                                = 0x0319BCD0; // Raid graphic settings are available
    const uint64_t RAIDfarclip                                        = 0x0319BD00; // Raid Far clip plane distance
    const uint64_t RAIDWaterDetail                                    = 0x0319BD30; // Raid Water surface detail
    const uint64_t RAIDSSAO                                           = 0x0319BD50; // Raid Screen-Space Ambient Occlusion
    const uint64_t RAIDgroundEffectDensity                            = 0x0319BD58; // Raid Ground effect density
    const uint64_t RAIDgroundEffectFade                               = 0x0319C940; // Raid Ground effect fade
    const uint64_t RAIDgroundEffectDist                               = 0x0319BD60; // Raid Ground effect dist
    const uint64_t RAIDgroundEffectAnimation                          = 0x0319BD68; // Raid Ground effect animation
    const uint64_t RAIDshadowMode                                     = 0x0319BD80; // Raid Quality of shadows (0-3)
    const uint64_t RAIDshadowRt                                       = 0x0319BD90; // Raid Raytraced shadows (0-2)
    const uint64_t RAIDterrainLodDist                                 = 0x0319BCD8; // Raid Terrain level of detail distance
    const uint64_t RAIDTerrainLodDiv                                  = 0x0319BCE0; // Raid Terrain lod divisor
    const uint64_t RAIDwmoLodDist                                     = 0x0319BCF8; // Raid Wmo level of detail distance
    const uint64_t RAIDhorizonStart                                   = 0x0319BD08; // Raid Horizon start distance
    const uint64_t RAIDhorizonClip                                    = 0x0319BD10; // Raid Horizon end distance
    const uint64_t RAIDdoodadLodScale                                 = 0x0319BCF0; // Raid doodad level of detail scale
    const uint64_t RAIDentityLodDist                                  = 0x0319BCE8; // Raid Entity level of detail distance
    const uint64_t RAIDentityShadowFadeScale                          = 0x0319C928; // Raid Entity shadow fade scale
    const uint64_t RAIDterrainMipLevel                                = 0x0319C920; // Terrain blend map mip level
    const uint64_t RAIDworldBaseMip                                   = 0x0319BD98; // World texture base mip
    const uint64_t RAIDprojectedTextures                              = 0x0319BD70; // Projected Textures
    const uint64_t RAIDspellClutter                                   = 0x0319BD78; // Cull unimportant spell effects. -1 means auto based on targetFPS otherwise [0-100], 0 means cull nothing for perf reasons, 100 means cull as much as you can
    const uint64_t RAIDshadowTextureSize                              = 0x0319BD88; // Shadow texture size (1024-2048)
    const uint64_t RAIDshadowSoft                                     = 0x0319C948; // Soft shadows (0/1)
    const uint64_t RAIDreflectionMode                                 = 0x0319BD40; // Reflection mode
    const uint64_t RAIDrippleDetail                                   = 0x0319BD38; // Ripple surface detail
    const uint64_t RAIDsunShafts                                      = 0x0319BD48;
    const uint64_t RAIDparticleDensity                                = 0x0319BD18; // Particle density
    const uint64_t RAIDparticleMTDensity                              = 0x0319BD20; // Multi-Tex particle density
    const uint64_t RAIDVolumeFog                                      = 0x0319C930; // Volume Fog
    const uint64_t RAIDVolumeFogLevel                                 = 0x0319BD28; // Volume Fog Level (0-3)
    const uint64_t RAIDParticulatesEnabled                            = 0x0319C938; // Enabling particulates (0-1)
    const uint64_t RAIDlodObjectCullSize                              = 0x0319BDA0; // Lod object culling size
    const uint64_t RAIDlodObjectCullDist                              = 0x0319BDA8; // Lod object culling dist minimum
    const uint64_t RAIDlodObjectMinSize                               = 0x0319BDB0; // Lod object min size
    const uint64_t RAIDlodObjectFadeScale                             = 0x0319BDB8; // Lod object fade scale
    const uint64_t GraphicsTextureResolution                          = 0x0319C950; // UI value of the graphics setting
    const uint64_t GraphicsSpellDensity                               = 0x0319C958; // UI value of the graphics setting
    const uint64_t GraphicsProjectedTextures                          = 0x0319C960; // UI value of the graphics setting
    const uint64_t GraphicsEnvironmentDetail                          = 0x0319C968; // UI value of the graphics setting
    const uint64_t GraphicsGroundClutter                              = 0x0319C970; // UI value of the graphics setting
    const uint64_t GraphicsShadowQuality                              = 0x0319C978; // UI value of the graphics setting
    const uint64_t GraphicsLiquidDetail                               = 0x0319C980; // UI value of the graphics setting
    const uint64_t GraphicsParticleDensity                            = 0x0319C988; // UI value of the graphics setting
    const uint64_t GraphicsSSAO                                       = 0x0319C990; // UI value of the graphics setting
    const uint64_t GraphicsSunshafts                                  = 0x0319C998; // UI value of the graphics setting
    const uint64_t RaidGraphicsTextureResolution                      = 0x0319C9A0; // UI value of the raidGraphics setting
    const uint64_t RaidGraphicsSpellDensity                           = 0x0319C9A8; // UI value of the raidGraphics setting
    const uint64_t RaidGraphicsProjectedTextures                      = 0x0319C9B0; // UI value of the raidGraphics setting
    const uint64_t RaidGraphicsEnvironmentDetail                      = 0x0319C9B8; // UI value of the raidGraphics setting
    const uint64_t RaidGraphicsGroundClutter                          = 0x0319C9C0; // UI value of the raidGraphics setting
    const uint64_t RaidGraphicsShadowQuality                          = 0x0319C9C8; // UI value of the raidGraphics setting
    const uint64_t RaidGraphicsLiquidDetail                           = 0x0319C9D0; // UI value of the raidGraphics setting
    const uint64_t RaidGraphicsParticleDensity                        = 0x0319C9E0; // UI value of the raidGraphics setting
    const uint64_t RaidGraphicsSSAO                                   = 0x0319C9E8; // UI value of the raidGraphics setting
    const uint64_t RaidGraphicsSunshafts                              = 0x0319C9D8; // UI value of the raidGraphics setting
    const uint64_t TeleportMaxNoLoadDist                              = 0x0319C9F8; // Max teleport distanace without preload
    const uint64_t ShadowCull                                         = 0x0319E178; // enable shadow frustum culling
    const uint64_t ShadowScissor                                      = 0x0319E180; // enable scissoring when rendering shadowmaps
    const uint64_t ShadowInstancing                                   = 0x0319E188; // enable instancing when rendering shadowmaps
    const uint64_t FfxGlow                                            = 0x031A9CC0; // full screen glow effect
    const uint64_t FfxDeath                                           = 0x031A9CC8; // full screen death desat effect
    const uint64_t FfxNether                                          = 0x031A9CD0; // full screen nether effect
    const uint64_t FfxVenari                                          = 0x031A9CD8; // full screen Cloak of Ven'ari effect
    const uint64_t FfxLingeringVenari                                 = 0x031A9CE0; // full screen Lingering Cloak of Ven'ari effect
    const uint64_t DisableAutoRealmSelect                             = 0x031AA2D0; // Disable automatically selecting a realm on login
    const uint64_t InitialRealmListTimeout                            = 0x031AA2D8; // How long to wait for the initial realm list before failing login (in seconds)
    const uint64_t WebChallengeURLTimeout                             = 0x031AA2E0; // How long to wait for the web challenge URL (in seconds). 0 means wait forever.
    const uint64_t SceneOcclusionEnable                               = 0x03282CC0; // Scene software occlusion
    const uint64_t AssaoNormals                                       = 0x03282CE0; // Use Normals for ASSAO
    const uint64_t AssaoRadius                                        = 0x03282CE8; // ASSAO Radius [0.0,  ~ ] World (view) space size of the occlusion sphere
    const uint64_t AssaoShadowMult                                    = 0x03282CF0; // ASSAO Shadow Multiplier [0.0, 5.0] Effect strength linear multiplier
    const uint64_t AssaoShadowPower                                   = 0x03282CF8; // ASSAO Shadow Power [0.5, 5.0] Effect strength pow modifier
    const uint64_t AssaoShadowClamp                                   = 0x03282D00; // ASSAO Shadow Clamp [0.0, 1.0]
    const uint64_t AssaoHorizonAngleThresh                            = 0x03282D08; // ASSAO Horizon Angle Thresh [0.0, 0.2] Limits self-shadowing
    const uint64_t AssaoFadeOutFrom                                   = 0x03282D10; // ASSAO Fade Out From [0.0,  ~ ] Distance to start start fading out the effect.
    const uint64_t AssaoFadeOutTo                                     = 0x03282D18; // ASSAO Fade Out To [0.0,  ~ ] Distance at which the effect is faded out.
    const uint64_t AssaoAdaptiveQualityLimit                          = 0x03282D20; // ASSAO Adaptive Quality Limit [0.0, 1.0] (only for Quality Level 3)
    const uint64_t AssaoBlurPassCount                                 = 0x03282D28; // ASSAO Blur Pass Count [  0,   6] Number of edge-sensitive smart blur passes to apply. Quality 0 is an exception with only one 'dumb' blur pass used.
    const uint64_t AssaoSharpness                                     = 0x03282D30; // ASSAO Sharpness [0.0, 1.0] (How much to bleed over edges; 1: not at all, 0.5: half-half; 0.0: completely ignore edges)
    const uint64_t AssaoTemporalSSAngleOffset                         = 0x03282D38; // ASSAO Temporal Super Sampling Angle Offset [0.0,  PI] Used to rotate sampling kernel; If using temporal AA / supersampling, suggested to rotate by ( (frame%3)/3.0*PI ) or similar. Kernel is already symmetrical, which is why we use PI and not 2*PI.
    const uint64_t AssaoTemporalSSRadiusOffset                        = 0x03282D40; // ASSAO Temporal Super Sampling Radius Offset [0.0, 2.0] Used to scale sampling kernel; If using temporal AA / supersampling, suggested to scale by ( 1.0f + (((frame%3)-1.0)/3.0)*0.1 ) or similar.
    const uint64_t AssaoDetailShadowStrength                          = 0x03282D48; // ASSAO Detail Shadow Strength [0.0, 5.0] Used for high-res detail AO using neighboring depth pixels: adds a lot of detail but also reduces temporal stability (adds aliasing).
    const uint64_t CacaoBilateralSimilarityDistanceSigma              = 0x03282D50; // CACAO Sigma squared value for use in bilateral upsampler giving similarity weighting for neighbouring pixels. Should be greater than 0.0.
    const uint64_t SsaoMagicNormals                                   = 0x03282D58; // SSAO Use combined GBuffer and face normals; attempts to get the best compromise for architecture, foliage, and characters
    const uint64_t SsaoMagicThresholdLow                              = 0x03282D60; // SSAO Low threshold for transitioning from gbuffer to face normal (degrees)
    const uint64_t SsaoMagicThresholdHigh                             = 0x03282D68; // SSAO High threshold for transitioning from gbuffer to face normal (degrees)
    const uint64_t ResolvedSSAOType                                   = 0x03282D70;
    
    }
    
    #endif

  11. Thanks Razzue (1 members gave Thanks to oiramario for this useful post)
  12. #7
    yezack's Avatar Member
    Reputation
    13
    Join Date
    Oct 2021
    Posts
    38
    Thanks G/R
    1/7
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    i'm learning how to find them.
    now,i can only find the address by memory search in python every time.
    i think it's not elegant

  13. #8
    Cortanz85's Avatar Member
    Reputation
    1
    Join Date
    Oct 2014
    Posts
    10
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Any1 can please tell me how to use this? Thanks

  14. #9
    Razzue's Avatar Contributor Avid Ailurophile

    CoreCoins Purchaser Authenticator enabled
    Reputation
    378
    Join Date
    Jun 2017
    Posts
    588
    Thanks G/R
    184/267
    Trade Feedback
    2 (100%)
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Cortanz85 View Post
    Any1 can please tell me how to use this? Thanks
    Plenty of threads on here, as well as public bot sources on GitHub to learn from. All the information you need is already kicking around these and multiple other forums, and I'm not gonna spoon feed them to ya

  15. #10
    Cortanz85's Avatar Member
    Reputation
    1
    Join Date
    Oct 2014
    Posts
    10
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Okei mate so its memory editing! What i could not understand was if its only changing appereance for you or do you also get the stats from it?

    thanks

  16. #11
    Yutilk's Avatar Member
    Reputation
    4
    Join Date
    Oct 2021
    Posts
    16
    Thanks G/R
    0/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Cortanz85 View Post
    Any1 can please tell me how to use this? Thanks
    Do you mean the implementation?

  17. #12
    Cortanz85's Avatar Member
    Reputation
    1
    Join Date
    Oct 2014
    Posts
    10
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Yutilk View Post
    Do you mean the implementation?
    No more like, if you edit the memory of some gear, do you get its stats aswell?

  18. #13
    charles420's Avatar Contributor
    Reputation
    315
    Join Date
    Jun 2009
    Posts
    329
    Thanks G/R
    25/119
    Trade Feedback
    0 (0%)
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)
    Code:
    #include  <ida.idc>
    
    static main()
    {
    	auto sPath, hFile;
    	
    	sPath = "C:\\Users\\charl\\Desktop\\Addresses.cs";
    	hFile = fopen( sPath, "w" );
    	fprintf( hFile, "using System.Reflection;\n\n\n");
    	fprintf( hFile, "namespace LazyLib.Wow\n{\n");
    	fprintf( hFile, "    public class PublicPointers\n    {\n");
    	fprintf( hFile, "        /// <summary>\n        /// Globals\n        /// </summary>\n        public enum Globals\n        {\n" );
    	fprintf( hFile, "            PlayerName = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "0F 28 05 ? ? ? ? 48 8B C1") )+ 0x18 );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// InGame\n        /// </summary>\n        public enum InGame\n        {\n" );
    	fprintf( hFile, "            InGame = 0x%X,//Reversed From Script_IsPlayerInWorld\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "0F B6 05 ? ? ? 01 A8 10 74 ?")  ) );
    	fprintf( hFile, "            LoadingScreen = 0x%X,//Reversed From Script_CanLogIn to CGlueMgr__CanLogIn\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 0D ? ? ? ? 45 33 C9 45 33 C0 B2 ?")  ) );
    	fprintf( hFile, "            RealID = 0x%X, /// Real ID / Name / # \n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 05 ? ? ? ? 48 B9 ? ? ? ? ? ? ? ? 48 89 05 ? ? ? ?")  ) );
    	
    	fprintf( hFile, "        }\n\n" );
    	
        fprintf( hFile, "     }\n\n" );
        
        	fprintf( hFile, "    internal class Pointers\n    {\n");
        	
        	fprintf( hFile, "        /// <summary>\n        /// ActionBar\n        /// </summary>\n        internal enum ActionBar\n        {\n" );
    	fprintf( hFile, "            ActionBarFirstSlot = 0x%X,//Reversed From Script_GetActionTexture To CGActionBar__GetTexture\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "4C 8D 35 ? ? ? ? 8D 70 ?")  ) );
    	fprintf( hFile, "            ActionBarBonus =  ActionBarFirstSlot + 0x240,\n" );
    	fprintf( hFile, "            CurrentActionBar = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "3B 1D ? ? ? ? 74 ? 89 1D ? ? ? ? E8 ? ? ? ?")  ) );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// Battleground\n        /// </summary>\n        internal enum Battleground\n        {\n" );
    	fprintf( hFile, "            BattlegroundStartTickcount = 0x%X,// GetBattlefieldInstanceRunTime\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 1D ? ? ? ? 48 8B F9 85 DB 74 ? E8 ? ? ? ? 2B C3")  ) );
    	fprintf( hFile, "            Timestamp = 0x%X,////FrameTime__GetCurTimeMs\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 0D ? ? ? ? 48 85 C9 74 ? 4D 8B C8 F3 0F 11 5C 24 ?")  ) +0x24 );
    	fprintf( hFile, "            IsBattlegroundFinished = 0x%X,//GetBattlefieldWinner\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 05 ? ? ? ? 85 C0 74 ? 83 C0 ? 89 05 ? ? ? ? 75 ? E9 ? ? ? ?")  ) -0x8 );
    	fprintf( hFile, "            BattlegroundWinner = 0x%X,// string GetBattlefieldWinner\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 05 ? ? ? ? 85 C0 74 ? 83 C0 ? 89 05 ? ? ? ? 75 ? E9 ? ? ? ?")  )-0x4 );
    	fprintf( hFile, "            BattlegroundInfo = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 0D ? ? ? ? 33 C0 F6 C1 ? 75 ? 8B D0 48 85 C9 75 ? BA ? ? ? ? 85 D2 8B 15 ? ? ? ? 48 0F 44 C1 A8 ? 75 ? 48 85 C0 74 ? 48 8B 48 ? 39 50 ? 74 ? 48 8B C1 EB ? 48 83 78 ? ? 74 ? 48 8B 48 ? 48 8B 01 48 85 C0 74 ? 48 C1 E8 ? 24 ? C3")  ) );
    	fprintf( hFile, "            UISelectedBattlegroundId = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "C6 05 ? ? ? ? ? 48 83 C4 28 C3 C6 05 ? ? ? ? ?")  ) );
    	fprintf( hFile, "        }\n\n" );
    	
               fprintf( hFile, "        /// <summary>\n        /// Corpse\n        /// </summary>\n        internal enum Corpse\n        {\n" );
    	fprintf( hFile, "            X = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 0D ? ? ? ? 48 89 6C 24 ? 0F 11 05 ? ? ? ?")  ) );
    	fprintf( hFile, "            Y =  X + 0x4,\n" );
    	fprintf( hFile, "            Z =  X + 0x8,\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
               fprintf( hFile, "        /// <summary>\n        /// Party\n        /// </summary>\n        internal enum Party\n        {\n" );
    	fprintf( hFile, "            PartyOffset = 0x%X,// every pattern off by 2 idn why - 2 \n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 05 ? ? ? ? 48 85 C0 48 0F 44 05 ? ? ? ? C3")));
    	fprintf( hFile, "            IsInGroupHome = 0x%X,// every pattern off by 2 idn why - 2 \n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 05 ? ? ? ? 48 85 C0 48 0F 44 05 ? ? ? ? C3") ));
    	fprintf( hFile, "            IsInGroupInstance = 0x%X,// every pattern off by 2 idn why - 2\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 0D ? ? ? ? 48 85 C9 48 0F 44 0D ? ? ? ? 33 D2")));
    	fprintf( hFile, "            NumOfPlayers =  0x178,//Script_GetNumGroupMembers\n" );
    	fprintf( hFile, "            NumOfPlayersPattern = 0x%X, // working \n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 81 ? ? ? ? F2 48 0F 2A C8 48 8B CB E8 ? ? ? ? B8 ? ? ? ? 48 83 C4 20 5B " ) + 0x2 ) - 0x4 );
    	fprintf( hFile, "            NumOfPlayers_SuBGroupPattern = 0x%X, // working \n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 81 ? ? ? ? F2 48 0F 2A C8 48 8B CB E8 ? ? ? ? B8 ? ? ? ? 48 83 C4 20 5B " ) + 0x2 ) );
    	fprintf( hFile, "            NumOfPlayers_SuBGroup =  0x17C,//// NumOFPlayers+4\n" );
    	fprintf( hFile, "            PlayerGuid =  0x10,\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// AutoLoot\n        /// </summary>\n        internal enum AutoLoot\n        {\n" );
    		fprintf( hFile, "            Pointer = 0x%X,//Reversed From CGGameUI__IsAutoLooting\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 05 ? ? ? ? 48 8B CE 8B 50")  ) );
    	//fprintf( hFile, "            Pointer = 0x%X,//Reversed From CGGameUI__IsAutoLooting\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 05 ? ? ? ? 48 8D 15 ? ? ? ? 48 8B 0D ? ? ? ?")  ) );
    	fprintf( hFile, "            Offset =  0x5C,\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// ClickToMove\n        /// </summary>\n        internal enum ClickToMove\n        {\n" );
    	fprintf( hFile, "            Pointer = 0x%X,//Search String in ida Automatically stand when needed to CGGameUI__RegisterGameCVars then thats the offset\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 05 ? ? ? ? 83 78 ? ? 74 ? F6 81 ? ? ? ? ? 75 ? B0 ?")  ) );
    	fprintf( hFile, "            Offset =  0x5C,\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// Reversed from CGUnit_C__GetCreatureRank \n        /// </summary>\n        internal enum CgUnitCGetCreatureRank\n        {\n" );
    	fprintf( hFile, "            Offset1 =  0x1800, //0x17B8 old,\n" );
    	fprintf( hFile, "            Offset2 =  0x34,\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// reversed from CGUnit_C__GetCreatureType \n        /// </summary>\n        internal enum CgUnitCGetCreatureType\n        {\n" );
    	fprintf( hFile, "            Offset1 =  0x1800, //0x17B8 old,\n" );
    	fprintf( hFile, "            Offset2 =  0x30,\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
               fprintf( hFile, "        /// <summary>\n        /// reversed from CGWorldFrame__GetActiveCamera\n        /// </summary>\n        internal enum CgWorldFrameGetActiveCamera\n        {\n" );
    	fprintf( hFile, "            CameraPointer = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 1D ? ? ? ? 48 85 DB 74 ? 33 D2")  ) );
    	fprintf( hFile, "            CameraOffset =  0x38E0,// good\n" );
    	fprintf( hFile, "            CameraOffsetPattern = 0x%X, // working \n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 89 ? ? ? ? 48 8B DA 48 85 D2" ) + 0x3 ) );	
    	fprintf( hFile, "            CameraX =  0x10,\n" );
    	fprintf( hFile, "            CameraY =  0x14,\n" );
    	fprintf( hFile, "            CameraZ =  0x18,\n" );
    	fprintf( hFile, "            CameraMatrix =  0x1C,\n" );	
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// Search for CGUnit_C::GetSkinnableType_Checked \n        /// </summary>\n        internal enum Skinning\n        {\n" );
    	fprintf( hFile, "            SkinnableFlags1 =  0x1800, // old 0x17B8,\n" );
    	fprintf( hFile, "            SkinnableFlags1Pattern = 0x%X, // working \n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 81 ? ? ? ? 48 85 C0 74 ? 8B 80 ? ? ? ? 0F BA E0 ?" ) + 0x3 ) );
    	fprintf( hFile, "            SkinnableFlags2Pattern = 0x%X, // working \n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 80 ? ? ? ? 0F BA E0 ? 73 ? B8 ? ? ? ?" ) + 0x2 ) );
    	fprintf( hFile, "            SkinnableFlags2 =  0xE8, // old todo test 0x0CC,\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// AuctionHouse\n        /// </summary>\n        internal enum AuctionHouse\n        {\n" );
    	fprintf( hFile, "            AuctionListCount = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 05 ? ? ? ? 0F 57 C9 48 8B CB F2 48 0F 2A C8 E8 ? ? ? ? 8B 05 ? ? ? ? 0F 57 C9 48 8B CB F2 48 0F 2A C8 E8 ? ? ? ? 48 8B 7C 24 ?")  ) );
    	fprintf( hFile, "            AuctionList = AuctionListCount + 0x08 ,\n" );
    	fprintf( hFile, "            AuctionOwnerCount = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 05 ? ? ? ? 0F 57 C9 48 8B CB F2 48 0F 2A C8 E8 ? ? ? ? 8B 05 ? ? ? ? EB ? 48 8D 15 ? ? ? ? 48 8B CF E8 ? ? ? ? 85 C0 75 ? 8B 05 ? ? ? ?")  ) );
    	fprintf( hFile, "            AuctionOwnerList = AuctionOwnerCount + 0x08 ,\n" );
    	fprintf( hFile, "            AuctionBidderCount = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 05 ? ? ? ? 0F 57 C9 48 8B CB F2 48 0F 2A C8 E8 ? ? ? ? 8B 05 ? ? ? ? EB ? 48 8D 15 ? ? ? ? 48 8B CF E8 ? ? ? ? 85 C0 75 ? 8B 05 ? ? ? ?")  ) + 0x20 );
    	fprintf( hFile, "            AuctionBidderList = AuctionBidderCount + 0x08 ,\n" );
    	
    	fprintf( hFile, "        }\n\n" );
               fprintf( hFile, "        /// <summary>\n        /// reversed from CGActionBar__IsCurrentAction\n        /// </summary>\n        internal enum AutoAttack\n        {\n" );
               fprintf( hFile, "            IsAutoRepeatingSpell = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "3B 15 ? ? ? ? 44 89 25 ? ? ? ?")  ) );
    	fprintf( hFile, "            IsInMelee =  0xAF6C,\n" );	
    	fprintf( hFile, "            IsInMelee1 =  0x18A8,\n" );
    	fprintf( hFile, "            AutoAttackFlag =  0xEE8,\n" );
    	fprintf( hFile, "            AutoAttackMask =  0xEEC,\n" );
    	fprintf( hFile, "            ///Address seems to show the GUID of the Auto Attack target\n" );
    	fprintf( hFile, "            AutoAttackGUID =  0xAF6C,\n" );
    	fprintf( hFile, "            ///Shows 0x06 when not wanding, 0x0C or 0x0E when wanding\n" );
    	fprintf( hFile, "            ///Wanding = 0xEF8\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// CastingInfo \n        /// </summary>\n        internal enum CastingInfo\n        {\n" );
    	
    	fprintf( hFile, "            IsCasting2 =  0x19B0,// Script_UnitCastingInfo\n" );
    	fprintf( hFile, "            IsCasting =  0x19B0,// Script_UnitCastingInfo\n" );
    	
    	fprintf( hFile, "            IsCastNotInterruptible =  0x1904,// Script_UnitCastingInfo\n" );
    	
    	fprintf( hFile, "            ChanneledCasting2 =  0x1A08,// Script_UnitCastingInfo\n" );
    	fprintf( hFile, "            ChanneledCasting =  0x19C0,// Script_UnitChannelInfo//prb wrong 0x682 maybe\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
               fprintf( hFile, "        /// <summary>\n        /// reversed from CGWorldFrame__GetActiveCamera\n        /// </summary>\n        internal enum Chat : uint\n        {\n" );
    	fprintf( hFile, "            ChatStart = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 0D ? ? ? ? 41 F7 E8")  ) );
    	fprintf( hFile, "            chatBufferPos = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 0D ? ? ? ? B8 ? ? ? ? 03 CE F7 E9")  ) );
    	fprintf( hFile, "            OffsetToNextMsg =  0xCB8,\n" );
    	fprintf( hFile, "            OffsetToNextMsgPattern = 0x%X, // working \n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 69 D8 ? ? ? ? 48 8D 05 ? ? ? ? 48 03 D8 48 8D 8B ? ? ? ?" ) + 0x3 ) );	
    	fprintf( hFile, "            MsgSenderGuid =  0x00,\n" );
    	fprintf( hFile, "            MsgSenderName =  0x34,\n" );
    	fprintf( hFile, "            MsgFullMessage =  0xE6,\n" );
    	//fprintf( hFile, "            MsgFullMessagePattern = 0x%X, // working \n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "44 0F B6 82 ? ? ? ? 45 84 C0 74 ?" ) + 0x3 ) );
    	fprintf( hFile, "            MsgChatType =  0xCA0,\n" );
    	fprintf( hFile, "            MsgChannelNum =  0xCA4,\n" );	
    	fprintf( hFile, "            MsgTimeStamp =  0xCB0,\n" );	
    	fprintf( hFile, "            ChatQueueDepth =  0x3C,\n" );
    			
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// BlueChat\n        /// </summary>\n        internal enum Messages\n        {\n" );
    	fprintf( hFile, "            EventMessage = 0x%X,//Reversed From CGGameUI__DisplayError\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D ? ? ? ? 01 41 B8 B7 0B ? ? 48 8D ? ? 00 00 00")  ) );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// Container\n        /// </summary>\n        internal enum Container\n        {\n" );
    	fprintf( hFile, "            EquippedBagGUID = 0x%X,// GetBagAtIndex \n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 3B 0D ? ? ? ? 75 25 48 8B 05 ? ? ? ? ")  ) );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// Globals\n        /// </summary>\n        internal enum Globals\n        {\n" );
    	fprintf( hFile, "            RedMessage = 0x%X,//Reversed From CGGameUI__DisplayError\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D ? ? ? ? 01 41 B8 B7 0B ? ? 48 8D ? ? 00 00 00")  ) );
    	fprintf( hFile, "            MouseOverGUID = 0x%X,// Reversed From Script_GetGUIDFromToken - MouseOver\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "0F 10 05 ? ? ? ? EB ? BA ? ? ? ?")  ) );
    	fprintf( hFile, "            LootWindow = 0x%X,//Reversed From CGPlayer_C_OnLootClose\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "0F B6 15 ? ? ? ? 48 3B C1 0F 42 C8 E8 ? ? ? ? 33 C0 89 05 ? ? ? ?")  ) );
    	fprintf( hFile, "            ChatboxIsOpen = 0x%X,//Reversed From CGPlayer_C_OnLootClose\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 0D ? ? ? ? FF C1 89 0D ? ? ? ? 83 F9 ? 0F 85 ? ? ? ?")  ) );
    	fprintf( hFile, "            CursorType = 0x%X,// Reversed From CursorInitialize - Script_SetCursor To CursorSetMode\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 15 ? ? ? ? E9 ? ? ? ? 48 8D 05 ? ? ? ? 49 8D 89 ? ? ? ?") )- 0x10  );
    	fprintf( hFile, "            CursorType2 = CursorType + 0x04 ,\n" );
    	fprintf( hFile, "            SelectedSpellId = 0x%X,// aka trainer \n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "44 8B 0D ? ? ? ? 4C 8B D1 45 85 C9 75 ?")  ) );
    	fprintf( hFile, "            CGGameUI__m_cursorItem = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "0F 10 05 ? ? ? ? 0F 11 44 24 ? EB ? 33 C0")  ) );
    	fprintf( hFile, "            CGGameUI__m_cursorSpell = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 2D ? ? ? ? 33 F6 8B CD")  ) );
    	fprintf( hFile, "            IsMouseButtonPressed = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "3B 1D ? ? ? ? 44 89 05 ? ? ? ?")  ) );
    	fprintf( hFile, "            Indoors = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "44 0F B6 0D ? ? ? ? 48 8D 05 ? ? ? ? 45 84 C9")  ) );
    	fprintf( hFile, "            IsBobbing = 0x14C ,\n" );
    	fprintf( hFile, "            ArchFacing = 0x198 ,\n" );
    	fprintf( hFile, "            ArchFacingOffset2 = 0x30 ,\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
            fprintf( hFile, "        /// <summary>\n        /// KeyBinding // Reversed From Script_GetNumBindings\n        /// </summary>\n        internal enum KeyBinding\n        {\n" );
    	fprintf( hFile, "            NumKeyBindings = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "66 0F 6E 0D ? ? ? ? F3 0F E6 C9 E8 ? ? ? ? B8 ? ? ? ? 48 83 C4 ? C3 ? 40 57 48 83 EC")  ) );
    	fprintf( hFile, "            First =  0x28,// 0x18 hardcoded \n" );	
    	fprintf( hFile, "            Next =  0x18,\n" );
    	fprintf( hFile, "            Key =  0x30,\n" );
    	fprintf( hFile, "            Command =  0x58,// or 0x50\n" );
    	fprintf( hFile, "        }\n\n" );
    	
    
            fprintf( hFile, "        /// <summary>\n        /// Macros Todo Add Pattern for dumper\n        /// </summary>\n        internal enum MacroManager\n        {\n" );
    	fprintf( hFile, "            Next =  0x8,// currently not using anything besides 0x8 24 + 10 or 20 + 10\n" );
    	fprintf( hFile, "            Name =  0x38,\n" );
    	fprintf( hFile, "            Icon =  0x78,\n" );	
    	fprintf( hFile, "            Body =  0x179,\n" );
    	fprintf( hFile, "            MacroFirst =  0x2CDC918,//40422 MacroBase  4 Below GetRunningMacroButton STring\n" );
    	fprintf( hFile, "            MacroNext  =  0x2CDC908,//40422 MacroBase  4 Below GetRunningMacroButton STring\n" );
    	fprintf( hFile, "            nbGeneralMacros = 0x311C068,// 40422 Found With GetNumMacros String\n" );
    	fprintf( hFile, "            nbSpecificMacros =  0x311C070,//40422 Found With GetNumMacros String\n" );
    	fprintf( hFile, "        }\n\n" );
    
    	fprintf( hFile, "        /// <summary>\n        /// Quest\n        /// </summary>\n        internal enum Quest\n        {\n" );
    	fprintf( hFile, "            m_quests = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "4C 8D 15 ? ? ? ? 85 D2 78 ?")  ) );
    	fprintf( hFile, "            m_numQuests = 0x%X,//Found With GetNumQuestLogEntries String\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "44 8B 05 ? ? ? ? 45 33 C9 41 8B D1")  ) );
    	fprintf( hFile, "            m_currentQuest = 0x%X,//Found In GetQuestID String\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 0D ? ? ? ? 45 33 C0 33 D2 E8 ? ? ? ? 8B 15 ? ? ? ?")  ) );
    	fprintf( hFile, "            m_questTitle = 0x%X,// Found With GetTitleText String pattern might not work\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 05 ? ? ? ? BA ? ? ? ? 74 ?")  ) );
    	fprintf( hFile, "            m_gossipQuests = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 15 ? ? ? ? 45 8B C1 83 7A ? ? 74 ? 8B 02 83 E8 ? 83 F8 ? 77 ?")  ) );
    	fprintf( hFile, "            QuestsCompleted = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "44 8B 35 ? ? ? ? 8B 1D ? ? ? ?")  ) );
    	fprintf( hFile, "            GetNumQuestChoices = 0x%X,//Found WithGetNumQuestChoices String // RewardChoiceItemIdCount\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 0D ? ? ? ? 45 33 C9 85 C9 7E ? 3B D9 7D ? 85 DB 78 ? 48 63 C3")  ) );
    	fprintf( hFile, "            GetQuestReward = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 0D ? ? ? ? 45 33 C9 85 C9 7E ? 3B D9 7D ? 85 DB 78 ? 48 63 C3") ) + 0x8);
    	fprintf( hFile, "            CGQuestInfo_Available__Quest = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 0D ? ? ? ? E8 ? ? ? ? 48 8B D8 48 85 C0 74 ? 0F B6 48 ?")  ) );
    	fprintf( hFile, "            CGQuestInfo_Available__Num = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "3B 05 ? ? ? ? 73 ? 48 69 D0 ? ? ? ?")  ) );
    	fprintf( hFile, "            CGQuestInfo_Active__Num = 0x%X,//Found With GetNumActiveQuests String\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "3B 3D ? ? ? ? 73 ? 8B C7 48 69 D0 ? ? ? ?")  ) );
    	fprintf( hFile, "            CGQuestInfo_Active__Quest = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 05 ? ? ? ? 48 03 D0 EB ?")  ) );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// ObjectManager\n        /// </summary>\n        internal enum ObjectManager\n        {\n" );
    	fprintf( hFile, "            CurMgrPointer = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "4C 8B 05 ? ? ? ? 45 33 F6")  ) );
    	fprintf( hFile, "            LocalPlayerGUID = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "0F 28 05 ? ? ? ? 48 8B C1")  ) );
    	fprintf( hFile, "            TargetGUID = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 89 05 ? ? ? ? 48 85 C9 74 ? 45 33 C9 48 8D 15 ? ? ? ? 45 8D 41 ? E8 ? ? ? ? 48 8B 0D ? ? ? ?")  ) );
    	fprintf( hFile, "            PetGUID = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "C7 05 ? ? ? ? ? ? ? ? EB ? 41 8B 45 ?")  ) );
    	fprintf( hFile, "            StorageField = 0x10 ,\n" );
    	fprintf( hFile, "            ObjectType = 0x20 ,\n" );
    	fprintf( hFile, "            NextObject = 0x70 ,\n" );
    	fprintf( hFile, "            FirstObject = 0x18 ,\n" );
    	fprintf( hFile, "            LocalGUID = 0x58 ,\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// Script_UnitAffectingCombat \n        ///v4 = v2 && (*(_DWORD *)(*(_DWORD *)(v2 + 284) + 316) >> 19) & 1; \n        /// </summary>\n        internal enum InCombat\n        {\n" );
    	
    	fprintf( hFile, "            Mask =  19,\n" );
    	fprintf( hFile, "            Offset2 =  0x158,\n" );
    	fprintf( hFile, "            Offset1 =  0x188,\n" );
    	fprintf( hFile, "            Offset2Pattern = 0x%X,// working\n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 80 ? ? ? ? 8B 88 ? ? ? ? C1 E9 13 F6 C1 01 " ) + 0x3 ) );
    	fprintf( hFile, "            Offset1Pattern = 0x%X,// working\n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 80 ? ? ? ? 8B 88 ? ? ? ? C1 E9 13 F6 C1 01 " ) + 0x9 ) );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// Runes \n        /// </summary>\n        internal enum Runes\n        {\n" );
    	fprintf( hFile, "            RuneTypes =  0x0,\n" );
    	fprintf( hFile, "            RunesOffset =  0x0,\n" );
    	fprintf( hFile, "            //Offset is usually RuneTypes + 0x64\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// CGUnit_C__GetShapeshiftFormId \n        /// </summary>\n        internal enum ShapeshiftForm\n        {\n" );
    	fprintf( hFile, "            BaseAddressOffset1Pattern = 0x%X,// working\n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 81 ? ? ? ? 0F B6 80 ? ? ? ? C3" ) + 0x3 ) );
    	fprintf( hFile, "            BaseAddressOffset2Pattern = 0x%X,// working\n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "0F B6 80 7B 02 00 00 C3" ) + 0x3 ) );
    	fprintf( hFile, "            BaseAddressOffset1 =  0x188,// good\n" );
    	fprintf( hFile, "            BaseAddressOffset2 =  0x27B,// good\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// SpellCooldown\n        /// </summary>\n        internal enum SpellCooldown : uint\n        {\n" );
    	fprintf( hFile, "            CooldPown = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 0D ? ? ? ? 45 0F B6 C1 8B D7")  ) );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// Search for PowerTypePointer  \n        /// </summary>\n        internal enum PowerIndex\n        {\n" );
    	fprintf( hFile, "            PowerIndexArrays = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "41 8B 84 91 ? ? ? ? C3")  ) );
    	fprintf( hFile, "            Multiplicator =  13,// good\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// Swimming v5 = v3 && (*(*(v3 + 0x198) + 0x58i64) >> 20) & 1; \n        /// </summary>\n        internal enum Swimming\n        {\n" );
    	fprintf( hFile, "            Pointer =  0x198,\n" );
    	fprintf( hFile, "            Offset =  0x58,\n" );
    	fprintf( hFile, "            Mask =  0x100000,\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// IsFlying \n        /// </summary>\n        internal enum IsFlying\n        {\n" );
    	fprintf( hFile, "            Pointer =  0x198,\n" );
    	fprintf( hFile, "            Offset =  0x58,\n" );
    	fprintf( hFile, "            Mask =  0x1000000,\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// IsFalling v5 = v3 && (*(*(v3 + 0x198) + 0x58i64) >> 11) & 1 && !((*(*(v3 + 0x198) + 0x58i64) >> 10) & 1);\n        /// </summary>\n        internal enum IsFalling\n        {\n" );
    	fprintf( hFile, "            Pointer =  0x198,\n" );
    	fprintf( hFile, "            Offset =  0x58,\n" );
    	fprintf( hFile, "            Mask =  0x1000000,\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// reversed from CGUnit_C__GetAura \n        /// </summary>\n        internal enum UnitAuras : uint\n        {\n" );
    	fprintf( hFile, "            AuraCount1Pattern = 0x%X, // working \n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "3B 91 ? ? 00 00 73 14 8B C2 48 69 D0 ? 00 00 00" ) + 0x2 ) );
    	fprintf( hFile, "            AuraCount2Pattern = 0x%X, // working \n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 81 ? ? 00 00 48 03 C2 C3 " ) + 0x3 ) );
    	fprintf( hFile, "            AuraCount1 =  0x1B20,// fixed 40045\n" );
    	fprintf( hFile, "            AuraCount2 =  0x1B28,// fixed 40045\n" );
    	fprintf( hFile, "            AuraTable1 =  0x1B20,// fixed 40045\n" );
    	fprintf( hFile, "            AuraTable2 =  0x1B28,// fixed 40045\n" );
    	fprintf( hFile, "            AuraSize =  0xB0,\n" );
    	fprintf( hFile, "            AuraSpellId =  0x88,\n" );
    	fprintf( hFile, "            AuraStack =  0x39,\n" );
    	fprintf( hFile, "            TimeLeft =  0x40,\n" );
    	fprintf( hFile, "            OwnerGUID =  0x20,\n" );
    	fprintf( hFile, "            AuraTableOffset =  0x00,\n" );
    	fprintf( hFile, "            AuraFlags =  0x90,\n" );
    	fprintf( hFile, "            AuraLevel =  0x92,\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// UnitName \n        /// </summary>\n        internal enum UnitName : uint\n        {\n" );
    	fprintf( hFile, "            ObjectName1Pattern = 0x%X,// working\n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 81 ? ? ? ? 48 85 C0 74 ? 48 8B 80 ? ? ? ? C3" ) + 0x3 ) );
    	fprintf( hFile, "            ObjectName2Pattern = 0x%X,// working\n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 80 ? ? ? ? C3 48 8D 05 ? ? ? ?" ) + 0x3 ) );
    	fprintf( hFile, "            ObjectName1 =  0x478,// good\n" );
    	fprintf( hFile, "            ObjectName2 =  0xE0,// good\n" );
    	fprintf( hFile, "            PlayerNameGUIDOffset =  0x20,// dont use atm\n" );
    	fprintf( hFile, "            PlayerNameStringOffset =  0x31,// dont use atm\n" );
    	fprintf( hFile, "            PlayerNameCacheNext =  0x0,// dont use atm\n" );
    	fprintf( hFile, "            PlayerNameCachePointer = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 0D ? ? ? ? E8 ? ? ? ? 48 85 C0 74 3B 45 33 C9")  ) );
    	fprintf( hFile, "            UnitName1 =  0x1800,  //old 0x17B8,\n" );
    	fprintf( hFile, "            UnitName2 =  0xF8, // good\n" );
    	fprintf( hFile, "            UnitName1Pattern = 0x%X,// working\n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 8B ? ? ? ? 48 85 C9 74 ? 83 B9 ? ? ? ? ? 0F B6 90 ? ? ? ?" ) + 0x3 ) );
    	fprintf( hFile, "            UnitName2Pattern = 0x%X,// working\n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 81 ? ? ? ? 48 85 C0 75 ? 48 85 F6" ) + 0x3 ) );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// UnitSpeed \n        /// </summary>\n        internal enum UnitSpeed\n        {\n" );
    	fprintf( hFile, "            Pointer1 =  0x198,\n" );
    	fprintf( hFile, "            Pointer2 =  0xA0,\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// WowObject \n        /// </summary>\n        internal enum WowObject\n        {\n" );
    	fprintf( hFile, "            X =  0x15F8,\n" );
    	fprintf( hFile, "            Y =  X + 0x4,\n" );
    	fprintf( hFile, "            Z =  X + 0x8,\n" );
    	fprintf( hFile, "            RotationOffset =  X + 0x10,\n" );
    	fprintf( hFile, "            Pitch =  X + 0x14,\n" );
    	fprintf( hFile, "            GameObjectX =  0x1B0,\n" );
    	fprintf( hFile, "            GameObjectY =  GameObjectX + 0x4,\n" );
    	fprintf( hFile, "            GameObjectZ =  GameObjectX + 0x8,\n" );
    	fprintf( hFile, "            GameObjectRotation =  GameObjectX + 0x10,\n" );
    	fprintf( hFile, "            TransportGUID =  0x15F0,\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// Zone \n        /// </summary>\n        internal enum Zone : uint\n        {\n" );
    	fprintf( hFile, "            ZoneText = 0x%X,//Script_GetZoneText\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 2D ? ? ? ? 45 33 FF")  ) );
    	fprintf( hFile, "            ZoneID = 0x%X,//Reversed From Script_GetZonePVPInfo - Script_IsPlayerInMicroDungeon\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 05 ? ? ? ? 3D ? ? ? ? 74 ? 3D ? ? ? ?")  ) );
    	fprintf( hFile, "            SubZoneText = 0x%X,//Reversed From Script_GetSubZoneText\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "4C 8B 0D ? ? ? ? 8B D8")  ) );
    	fprintf( hFile, "            ContinentId = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 0D ? ? ? ? 48 8B D0 89 0D ? ? ? ? 41 B8 ? ? ? ? 48 8D 0D ? ? ? ? F3 0F 11 35 ? ? ? ? F3 0F 11 3D ? ? ? ? C7 05 ? ? ? ? ? ? ? ? C7 05 ? ? ? ? ? ? ? ? C7 05 ? ? ? ? ? ? ? ? C7 05 ? ? ? ? ? ? ? ? 66 90 0F B6 02 48 FF C2 88 01 48 8D 49 ? 84 C0 74 ? 49 83 E8 ? 75 ? EB ? 4D 85 C0 75 ? C6 01 ? 0F B6 02 48 8D 52 ? 84 C0 75 ? 0F 28 74 24 ? 0F 28 7C 24 ? 48 83 C4 ? C3 C8 ? ? ?")  ) );
    	fprintf( hFile, "            GetContinentIDOffset =  0x00,\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// UiFrame \n        /// </summary>\n        internal enum UiFrame\n        {\n" );
    	fprintf( hFile, "            ScrWidth = 0x%X,// Script_GetScreenWidth\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "F3 44 0F 59 25 ? ? ? ? F3 44 0F 5E 25 ? ? ? ?")  ) );
    	fprintf( hFile, "            ScrHeight =  ScrWidth + 0x4,\n" );
    	
    	fprintf( hFile, "            FrameBase = 0x%X,// Script_GetMouseMotionFocus\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 0D ? ? ? 02 48 8B D3 84 C0 74 0A")  ) );
    	fprintf( hFile, "            CurrentFramePtr = 0x%X,// Script_GetMouseClickFocus\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 0D ? ? ? 02 48 8B D3 84 C0 74 0A")  ) );
    	fprintf( hFile, "            CurrentFrameOffset =  0x290,\n" );
    	fprintf( hFile, "            FirstFrame =  0xF18,\n" );
    	fprintf( hFile, "            NextFrame =  0xF08,\n" );
    	fprintf( hFile, "            RegionsFirst =  0x2A0,\n" );
    	fprintf( hFile, "            RegionsNext =  0x290,\n" );
    	fprintf( hFile, "            Visible =  0x1CC,\n" );
    	fprintf( hFile, "            Visible1 =  1,\n" );
    	fprintf( hFile, "            Visible2 =  1,\n" );
    	fprintf( hFile, "            LabelText =  0x280,\n" );
    	fprintf( hFile, "            Name =  0x28,\n" );
    	fprintf( hFile, "            FrameBottom =  0x190,\n" );
    	fprintf( hFile, "            FrameLeft =  0x194,\n" );
    	fprintf( hFile, "            FrameTop =  0x198,\n" );
    	fprintf( hFile, "            FrameRight =  0x19C,\n" );
    	fprintf( hFile, "            EffectiveScale =  0x1C0,\n" );
    	fprintf( hFile, "            ParentFrame =  0x58,// 0xD0\n" );
    	fprintf( hFile, "            IconNumber =  0x12,\n" );
    	fprintf( hFile, "            ButtonEnabledPointer =  0x310,\n" );
    	fprintf( hFile, "            ButtonEnabledMask =  0xF,\n" );
    	fprintf( hFile, "            ButtonChecked =  0x360,\n" );
    	fprintf( hFile, "            EditBoxText =  0x330,\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
        fprintf( hFile, "    }\n\n" );
        fprintf( hFile, "}\n\n" );
    	fclose( hFile );
    
    }
    
    static ExtractOffSet( xRef )
    {
    	auto head, maxLoops;
    	maxLoops = 20;
    	head = (xRef);
    	while ( maxLoops-- )
    	{
    		auto operandValue;
    		
    		if ( head == BADADDR )
    			break;
    
    		operandValue = GetOperandValue( head, 1);
    		if (SegName( operandValue ) == ".data") 
    		{
    			if ( strstr( GetOpnd( head, 0 ), "[" ) > -1 )
    			{
    				break;
    			}
    			
    			return operandValue;
    		}
    		
    		head = ( head );
    	}
    	
    	return 0;
    }

  19. Thanks oiramario (1 members gave Thanks to charles420 for this useful post)
  20. #14
    yezack's Avatar Member
    Reputation
    13
    Join Date
    Oct 2021
    Posts
    38
    Thanks G/R
    1/7
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by charles420 View Post
    Code:
    #include  <ida.idc>
    
    static main()
    {
    	auto sPath, hFile;
    	
    	sPath = "C:\\Users\\charl\\Desktop\\Addresses.cs";
    	hFile = fopen( sPath, "w" );
    	fprintf( hFile, "using System.Reflection;\n\n\n");
    	fprintf( hFile, "namespace LazyLib.Wow\n{\n");
    	fprintf( hFile, "    public class PublicPointers\n    {\n");
    	fprintf( hFile, "        /// <summary>\n        /// Globals\n        /// </summary>\n        public enum Globals\n        {\n" );
    	fprintf( hFile, "            PlayerName = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "0F 28 05 ? ? ? ? 48 8B C1") )+ 0x18 );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// InGame\n        /// </summary>\n        public enum InGame\n        {\n" );
    	fprintf( hFile, "            InGame = 0x%X,//Reversed From Script_IsPlayerInWorld\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "0F B6 05 ? ? ? 01 A8 10 74 ?")  ) );
    	fprintf( hFile, "            LoadingScreen = 0x%X,//Reversed From Script_CanLogIn to CGlueMgr__CanLogIn\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 0D ? ? ? ? 45 33 C9 45 33 C0 B2 ?")  ) );
    	fprintf( hFile, "            RealID = 0x%X, /// Real ID / Name / # \n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 05 ? ? ? ? 48 B9 ? ? ? ? ? ? ? ? 48 89 05 ? ? ? ?")  ) );
    	
    	fprintf( hFile, "        }\n\n" );
    	
        fprintf( hFile, "     }\n\n" );
        
        	fprintf( hFile, "    internal class Pointers\n    {\n");
        	
        	fprintf( hFile, "        /// <summary>\n        /// ActionBar\n        /// </summary>\n        internal enum ActionBar\n        {\n" );
    	fprintf( hFile, "            ActionBarFirstSlot = 0x%X,//Reversed From Script_GetActionTexture To CGActionBar__GetTexture\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "4C 8D 35 ? ? ? ? 8D 70 ?")  ) );
    	fprintf( hFile, "            ActionBarBonus =  ActionBarFirstSlot + 0x240,\n" );
    	fprintf( hFile, "            CurrentActionBar = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "3B 1D ? ? ? ? 74 ? 89 1D ? ? ? ? E8 ? ? ? ?")  ) );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// Battleground\n        /// </summary>\n        internal enum Battleground\n        {\n" );
    	fprintf( hFile, "            BattlegroundStartTickcount = 0x%X,// GetBattlefieldInstanceRunTime\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 1D ? ? ? ? 48 8B F9 85 DB 74 ? E8 ? ? ? ? 2B C3")  ) );
    	fprintf( hFile, "            Timestamp = 0x%X,////FrameTime__GetCurTimeMs\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 0D ? ? ? ? 48 85 C9 74 ? 4D 8B C8 F3 0F 11 5C 24 ?")  ) +0x24 );
    	fprintf( hFile, "            IsBattlegroundFinished = 0x%X,//GetBattlefieldWinner\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 05 ? ? ? ? 85 C0 74 ? 83 C0 ? 89 05 ? ? ? ? 75 ? E9 ? ? ? ?")  ) -0x8 );
    	fprintf( hFile, "            BattlegroundWinner = 0x%X,// string GetBattlefieldWinner\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 05 ? ? ? ? 85 C0 74 ? 83 C0 ? 89 05 ? ? ? ? 75 ? E9 ? ? ? ?")  )-0x4 );
    	fprintf( hFile, "            BattlegroundInfo = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 0D ? ? ? ? 33 C0 F6 C1 ? 75 ? 8B D0 48 85 C9 75 ? BA ? ? ? ? 85 D2 8B 15 ? ? ? ? 48 0F 44 C1 A8 ? 75 ? 48 85 C0 74 ? 48 8B 48 ? 39 50 ? 74 ? 48 8B C1 EB ? 48 83 78 ? ? 74 ? 48 8B 48 ? 48 8B 01 48 85 C0 74 ? 48 C1 E8 ? 24 ? C3")  ) );
    	fprintf( hFile, "            UISelectedBattlegroundId = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "C6 05 ? ? ? ? ? 48 83 C4 28 C3 C6 05 ? ? ? ? ?")  ) );
    	fprintf( hFile, "        }\n\n" );
    	
               fprintf( hFile, "        /// <summary>\n        /// Corpse\n        /// </summary>\n        internal enum Corpse\n        {\n" );
    	fprintf( hFile, "            X = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 0D ? ? ? ? 48 89 6C 24 ? 0F 11 05 ? ? ? ?")  ) );
    	fprintf( hFile, "            Y =  X + 0x4,\n" );
    	fprintf( hFile, "            Z =  X + 0x8,\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
               fprintf( hFile, "        /// <summary>\n        /// Party\n        /// </summary>\n        internal enum Party\n        {\n" );
    	fprintf( hFile, "            PartyOffset = 0x%X,// every pattern off by 2 idn why - 2 \n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 05 ? ? ? ? 48 85 C0 48 0F 44 05 ? ? ? ? C3")));
    	fprintf( hFile, "            IsInGroupHome = 0x%X,// every pattern off by 2 idn why - 2 \n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 05 ? ? ? ? 48 85 C0 48 0F 44 05 ? ? ? ? C3") ));
    	fprintf( hFile, "            IsInGroupInstance = 0x%X,// every pattern off by 2 idn why - 2\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 0D ? ? ? ? 48 85 C9 48 0F 44 0D ? ? ? ? 33 D2")));
    	fprintf( hFile, "            NumOfPlayers =  0x178,//Script_GetNumGroupMembers\n" );
    	fprintf( hFile, "            NumOfPlayersPattern = 0x%X, // working \n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 81 ? ? ? ? F2 48 0F 2A C8 48 8B CB E8 ? ? ? ? B8 ? ? ? ? 48 83 C4 20 5B " ) + 0x2 ) - 0x4 );
    	fprintf( hFile, "            NumOfPlayers_SuBGroupPattern = 0x%X, // working \n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 81 ? ? ? ? F2 48 0F 2A C8 48 8B CB E8 ? ? ? ? B8 ? ? ? ? 48 83 C4 20 5B " ) + 0x2 ) );
    	fprintf( hFile, "            NumOfPlayers_SuBGroup =  0x17C,//// NumOFPlayers+4\n" );
    	fprintf( hFile, "            PlayerGuid =  0x10,\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// AutoLoot\n        /// </summary>\n        internal enum AutoLoot\n        {\n" );
    		fprintf( hFile, "            Pointer = 0x%X,//Reversed From CGGameUI__IsAutoLooting\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 05 ? ? ? ? 48 8B CE 8B 50")  ) );
    	//fprintf( hFile, "            Pointer = 0x%X,//Reversed From CGGameUI__IsAutoLooting\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 05 ? ? ? ? 48 8D 15 ? ? ? ? 48 8B 0D ? ? ? ?")  ) );
    	fprintf( hFile, "            Offset =  0x5C,\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// ClickToMove\n        /// </summary>\n        internal enum ClickToMove\n        {\n" );
    	fprintf( hFile, "            Pointer = 0x%X,//Search String in ida Automatically stand when needed to CGGameUI__RegisterGameCVars then thats the offset\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 05 ? ? ? ? 83 78 ? ? 74 ? F6 81 ? ? ? ? ? 75 ? B0 ?")  ) );
    	fprintf( hFile, "            Offset =  0x5C,\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// Reversed from CGUnit_C__GetCreatureRank \n        /// </summary>\n        internal enum CgUnitCGetCreatureRank\n        {\n" );
    	fprintf( hFile, "            Offset1 =  0x1800, //0x17B8 old,\n" );
    	fprintf( hFile, "            Offset2 =  0x34,\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// reversed from CGUnit_C__GetCreatureType \n        /// </summary>\n        internal enum CgUnitCGetCreatureType\n        {\n" );
    	fprintf( hFile, "            Offset1 =  0x1800, //0x17B8 old,\n" );
    	fprintf( hFile, "            Offset2 =  0x30,\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
               fprintf( hFile, "        /// <summary>\n        /// reversed from CGWorldFrame__GetActiveCamera\n        /// </summary>\n        internal enum CgWorldFrameGetActiveCamera\n        {\n" );
    	fprintf( hFile, "            CameraPointer = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 1D ? ? ? ? 48 85 DB 74 ? 33 D2")  ) );
    	fprintf( hFile, "            CameraOffset =  0x38E0,// good\n" );
    	fprintf( hFile, "            CameraOffsetPattern = 0x%X, // working \n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 89 ? ? ? ? 48 8B DA 48 85 D2" ) + 0x3 ) );	
    	fprintf( hFile, "            CameraX =  0x10,\n" );
    	fprintf( hFile, "            CameraY =  0x14,\n" );
    	fprintf( hFile, "            CameraZ =  0x18,\n" );
    	fprintf( hFile, "            CameraMatrix =  0x1C,\n" );	
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// Search for CGUnit_C::GetSkinnableType_Checked \n        /// </summary>\n        internal enum Skinning\n        {\n" );
    	fprintf( hFile, "            SkinnableFlags1 =  0x1800, // old 0x17B8,\n" );
    	fprintf( hFile, "            SkinnableFlags1Pattern = 0x%X, // working \n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 81 ? ? ? ? 48 85 C0 74 ? 8B 80 ? ? ? ? 0F BA E0 ?" ) + 0x3 ) );
    	fprintf( hFile, "            SkinnableFlags2Pattern = 0x%X, // working \n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 80 ? ? ? ? 0F BA E0 ? 73 ? B8 ? ? ? ?" ) + 0x2 ) );
    	fprintf( hFile, "            SkinnableFlags2 =  0xE8, // old todo test 0x0CC,\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// AuctionHouse\n        /// </summary>\n        internal enum AuctionHouse\n        {\n" );
    	fprintf( hFile, "            AuctionListCount = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 05 ? ? ? ? 0F 57 C9 48 8B CB F2 48 0F 2A C8 E8 ? ? ? ? 8B 05 ? ? ? ? 0F 57 C9 48 8B CB F2 48 0F 2A C8 E8 ? ? ? ? 48 8B 7C 24 ?")  ) );
    	fprintf( hFile, "            AuctionList = AuctionListCount + 0x08 ,\n" );
    	fprintf( hFile, "            AuctionOwnerCount = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 05 ? ? ? ? 0F 57 C9 48 8B CB F2 48 0F 2A C8 E8 ? ? ? ? 8B 05 ? ? ? ? EB ? 48 8D 15 ? ? ? ? 48 8B CF E8 ? ? ? ? 85 C0 75 ? 8B 05 ? ? ? ?")  ) );
    	fprintf( hFile, "            AuctionOwnerList = AuctionOwnerCount + 0x08 ,\n" );
    	fprintf( hFile, "            AuctionBidderCount = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 05 ? ? ? ? 0F 57 C9 48 8B CB F2 48 0F 2A C8 E8 ? ? ? ? 8B 05 ? ? ? ? EB ? 48 8D 15 ? ? ? ? 48 8B CF E8 ? ? ? ? 85 C0 75 ? 8B 05 ? ? ? ?")  ) + 0x20 );
    	fprintf( hFile, "            AuctionBidderList = AuctionBidderCount + 0x08 ,\n" );
    	
    	fprintf( hFile, "        }\n\n" );
               fprintf( hFile, "        /// <summary>\n        /// reversed from CGActionBar__IsCurrentAction\n        /// </summary>\n        internal enum AutoAttack\n        {\n" );
               fprintf( hFile, "            IsAutoRepeatingSpell = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "3B 15 ? ? ? ? 44 89 25 ? ? ? ?")  ) );
    	fprintf( hFile, "            IsInMelee =  0xAF6C,\n" );	
    	fprintf( hFile, "            IsInMelee1 =  0x18A8,\n" );
    	fprintf( hFile, "            AutoAttackFlag =  0xEE8,\n" );
    	fprintf( hFile, "            AutoAttackMask =  0xEEC,\n" );
    	fprintf( hFile, "            ///Address seems to show the GUID of the Auto Attack target\n" );
    	fprintf( hFile, "            AutoAttackGUID =  0xAF6C,\n" );
    	fprintf( hFile, "            ///Shows 0x06 when not wanding, 0x0C or 0x0E when wanding\n" );
    	fprintf( hFile, "            ///Wanding = 0xEF8\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// CastingInfo \n        /// </summary>\n        internal enum CastingInfo\n        {\n" );
    	
    	fprintf( hFile, "            IsCasting2 =  0x19B0,// Script_UnitCastingInfo\n" );
    	fprintf( hFile, "            IsCasting =  0x19B0,// Script_UnitCastingInfo\n" );
    	
    	fprintf( hFile, "            IsCastNotInterruptible =  0x1904,// Script_UnitCastingInfo\n" );
    	
    	fprintf( hFile, "            ChanneledCasting2 =  0x1A08,// Script_UnitCastingInfo\n" );
    	fprintf( hFile, "            ChanneledCasting =  0x19C0,// Script_UnitChannelInfo//prb wrong 0x682 maybe\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
               fprintf( hFile, "        /// <summary>\n        /// reversed from CGWorldFrame__GetActiveCamera\n        /// </summary>\n        internal enum Chat : uint\n        {\n" );
    	fprintf( hFile, "            ChatStart = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 0D ? ? ? ? 41 F7 E8")  ) );
    	fprintf( hFile, "            chatBufferPos = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 0D ? ? ? ? B8 ? ? ? ? 03 CE F7 E9")  ) );
    	fprintf( hFile, "            OffsetToNextMsg =  0xCB8,\n" );
    	fprintf( hFile, "            OffsetToNextMsgPattern = 0x%X, // working \n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 69 D8 ? ? ? ? 48 8D 05 ? ? ? ? 48 03 D8 48 8D 8B ? ? ? ?" ) + 0x3 ) );	
    	fprintf( hFile, "            MsgSenderGuid =  0x00,\n" );
    	fprintf( hFile, "            MsgSenderName =  0x34,\n" );
    	fprintf( hFile, "            MsgFullMessage =  0xE6,\n" );
    	//fprintf( hFile, "            MsgFullMessagePattern = 0x%X, // working \n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "44 0F B6 82 ? ? ? ? 45 84 C0 74 ?" ) + 0x3 ) );
    	fprintf( hFile, "            MsgChatType =  0xCA0,\n" );
    	fprintf( hFile, "            MsgChannelNum =  0xCA4,\n" );	
    	fprintf( hFile, "            MsgTimeStamp =  0xCB0,\n" );	
    	fprintf( hFile, "            ChatQueueDepth =  0x3C,\n" );
    			
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// BlueChat\n        /// </summary>\n        internal enum Messages\n        {\n" );
    	fprintf( hFile, "            EventMessage = 0x%X,//Reversed From CGGameUI__DisplayError\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D ? ? ? ? 01 41 B8 B7 0B ? ? 48 8D ? ? 00 00 00")  ) );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// Container\n        /// </summary>\n        internal enum Container\n        {\n" );
    	fprintf( hFile, "            EquippedBagGUID = 0x%X,// GetBagAtIndex \n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 3B 0D ? ? ? ? 75 25 48 8B 05 ? ? ? ? ")  ) );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// Globals\n        /// </summary>\n        internal enum Globals\n        {\n" );
    	fprintf( hFile, "            RedMessage = 0x%X,//Reversed From CGGameUI__DisplayError\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D ? ? ? ? 01 41 B8 B7 0B ? ? 48 8D ? ? 00 00 00")  ) );
    	fprintf( hFile, "            MouseOverGUID = 0x%X,// Reversed From Script_GetGUIDFromToken - MouseOver\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "0F 10 05 ? ? ? ? EB ? BA ? ? ? ?")  ) );
    	fprintf( hFile, "            LootWindow = 0x%X,//Reversed From CGPlayer_C_OnLootClose\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "0F B6 15 ? ? ? ? 48 3B C1 0F 42 C8 E8 ? ? ? ? 33 C0 89 05 ? ? ? ?")  ) );
    	fprintf( hFile, "            ChatboxIsOpen = 0x%X,//Reversed From CGPlayer_C_OnLootClose\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 0D ? ? ? ? FF C1 89 0D ? ? ? ? 83 F9 ? 0F 85 ? ? ? ?")  ) );
    	fprintf( hFile, "            CursorType = 0x%X,// Reversed From CursorInitialize - Script_SetCursor To CursorSetMode\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 15 ? ? ? ? E9 ? ? ? ? 48 8D 05 ? ? ? ? 49 8D 89 ? ? ? ?") )- 0x10  );
    	fprintf( hFile, "            CursorType2 = CursorType + 0x04 ,\n" );
    	fprintf( hFile, "            SelectedSpellId = 0x%X,// aka trainer \n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "44 8B 0D ? ? ? ? 4C 8B D1 45 85 C9 75 ?")  ) );
    	fprintf( hFile, "            CGGameUI__m_cursorItem = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "0F 10 05 ? ? ? ? 0F 11 44 24 ? EB ? 33 C0")  ) );
    	fprintf( hFile, "            CGGameUI__m_cursorSpell = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 2D ? ? ? ? 33 F6 8B CD")  ) );
    	fprintf( hFile, "            IsMouseButtonPressed = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "3B 1D ? ? ? ? 44 89 05 ? ? ? ?")  ) );
    	fprintf( hFile, "            Indoors = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "44 0F B6 0D ? ? ? ? 48 8D 05 ? ? ? ? 45 84 C9")  ) );
    	fprintf( hFile, "            IsBobbing = 0x14C ,\n" );
    	fprintf( hFile, "            ArchFacing = 0x198 ,\n" );
    	fprintf( hFile, "            ArchFacingOffset2 = 0x30 ,\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
            fprintf( hFile, "        /// <summary>\n        /// KeyBinding // Reversed From Script_GetNumBindings\n        /// </summary>\n        internal enum KeyBinding\n        {\n" );
    	fprintf( hFile, "            NumKeyBindings = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "66 0F 6E 0D ? ? ? ? F3 0F E6 C9 E8 ? ? ? ? B8 ? ? ? ? 48 83 C4 ? C3 ? 40 57 48 83 EC")  ) );
    	fprintf( hFile, "            First =  0x28,// 0x18 hardcoded \n" );	
    	fprintf( hFile, "            Next =  0x18,\n" );
    	fprintf( hFile, "            Key =  0x30,\n" );
    	fprintf( hFile, "            Command =  0x58,// or 0x50\n" );
    	fprintf( hFile, "        }\n\n" );
    	
    
            fprintf( hFile, "        /// <summary>\n        /// Macros Todo Add Pattern for dumper\n        /// </summary>\n        internal enum MacroManager\n        {\n" );
    	fprintf( hFile, "            Next =  0x8,// currently not using anything besides 0x8 24 + 10 or 20 + 10\n" );
    	fprintf( hFile, "            Name =  0x38,\n" );
    	fprintf( hFile, "            Icon =  0x78,\n" );	
    	fprintf( hFile, "            Body =  0x179,\n" );
    	fprintf( hFile, "            MacroFirst =  0x2CDC918,//40422 MacroBase  4 Below GetRunningMacroButton STring\n" );
    	fprintf( hFile, "            MacroNext  =  0x2CDC908,//40422 MacroBase  4 Below GetRunningMacroButton STring\n" );
    	fprintf( hFile, "            nbGeneralMacros = 0x311C068,// 40422 Found With GetNumMacros String\n" );
    	fprintf( hFile, "            nbSpecificMacros =  0x311C070,//40422 Found With GetNumMacros String\n" );
    	fprintf( hFile, "        }\n\n" );
    
    	fprintf( hFile, "        /// <summary>\n        /// Quest\n        /// </summary>\n        internal enum Quest\n        {\n" );
    	fprintf( hFile, "            m_quests = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "4C 8D 15 ? ? ? ? 85 D2 78 ?")  ) );
    	fprintf( hFile, "            m_numQuests = 0x%X,//Found With GetNumQuestLogEntries String\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "44 8B 05 ? ? ? ? 45 33 C9 41 8B D1")  ) );
    	fprintf( hFile, "            m_currentQuest = 0x%X,//Found In GetQuestID String\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 0D ? ? ? ? 45 33 C0 33 D2 E8 ? ? ? ? 8B 15 ? ? ? ?")  ) );
    	fprintf( hFile, "            m_questTitle = 0x%X,// Found With GetTitleText String pattern might not work\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 05 ? ? ? ? BA ? ? ? ? 74 ?")  ) );
    	fprintf( hFile, "            m_gossipQuests = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 15 ? ? ? ? 45 8B C1 83 7A ? ? 74 ? 8B 02 83 E8 ? 83 F8 ? 77 ?")  ) );
    	fprintf( hFile, "            QuestsCompleted = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "44 8B 35 ? ? ? ? 8B 1D ? ? ? ?")  ) );
    	fprintf( hFile, "            GetNumQuestChoices = 0x%X,//Found WithGetNumQuestChoices String // RewardChoiceItemIdCount\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 0D ? ? ? ? 45 33 C9 85 C9 7E ? 3B D9 7D ? 85 DB 78 ? 48 63 C3")  ) );
    	fprintf( hFile, "            GetQuestReward = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 0D ? ? ? ? 45 33 C9 85 C9 7E ? 3B D9 7D ? 85 DB 78 ? 48 63 C3") ) + 0x8);
    	fprintf( hFile, "            CGQuestInfo_Available__Quest = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 0D ? ? ? ? E8 ? ? ? ? 48 8B D8 48 85 C0 74 ? 0F B6 48 ?")  ) );
    	fprintf( hFile, "            CGQuestInfo_Available__Num = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "3B 05 ? ? ? ? 73 ? 48 69 D0 ? ? ? ?")  ) );
    	fprintf( hFile, "            CGQuestInfo_Active__Num = 0x%X,//Found With GetNumActiveQuests String\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "3B 3D ? ? ? ? 73 ? 8B C7 48 69 D0 ? ? ? ?")  ) );
    	fprintf( hFile, "            CGQuestInfo_Active__Quest = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 05 ? ? ? ? 48 03 D0 EB ?")  ) );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// ObjectManager\n        /// </summary>\n        internal enum ObjectManager\n        {\n" );
    	fprintf( hFile, "            CurMgrPointer = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "4C 8B 05 ? ? ? ? 45 33 F6")  ) );
    	fprintf( hFile, "            LocalPlayerGUID = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "0F 28 05 ? ? ? ? 48 8B C1")  ) );
    	fprintf( hFile, "            TargetGUID = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 89 05 ? ? ? ? 48 85 C9 74 ? 45 33 C9 48 8D 15 ? ? ? ? 45 8D 41 ? E8 ? ? ? ? 48 8B 0D ? ? ? ?")  ) );
    	fprintf( hFile, "            PetGUID = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "C7 05 ? ? ? ? ? ? ? ? EB ? 41 8B 45 ?")  ) );
    	fprintf( hFile, "            StorageField = 0x10 ,\n" );
    	fprintf( hFile, "            ObjectType = 0x20 ,\n" );
    	fprintf( hFile, "            NextObject = 0x70 ,\n" );
    	fprintf( hFile, "            FirstObject = 0x18 ,\n" );
    	fprintf( hFile, "            LocalGUID = 0x58 ,\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// Script_UnitAffectingCombat \n        ///v4 = v2 && (*(_DWORD *)(*(_DWORD *)(v2 + 284) + 316) >> 19) & 1; \n        /// </summary>\n        internal enum InCombat\n        {\n" );
    	
    	fprintf( hFile, "            Mask =  19,\n" );
    	fprintf( hFile, "            Offset2 =  0x158,\n" );
    	fprintf( hFile, "            Offset1 =  0x188,\n" );
    	fprintf( hFile, "            Offset2Pattern = 0x%X,// working\n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 80 ? ? ? ? 8B 88 ? ? ? ? C1 E9 13 F6 C1 01 " ) + 0x3 ) );
    	fprintf( hFile, "            Offset1Pattern = 0x%X,// working\n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 80 ? ? ? ? 8B 88 ? ? ? ? C1 E9 13 F6 C1 01 " ) + 0x9 ) );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// Runes \n        /// </summary>\n        internal enum Runes\n        {\n" );
    	fprintf( hFile, "            RuneTypes =  0x0,\n" );
    	fprintf( hFile, "            RunesOffset =  0x0,\n" );
    	fprintf( hFile, "            //Offset is usually RuneTypes + 0x64\n" );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// CGUnit_C__GetShapeshiftFormId \n        /// </summary>\n        internal enum ShapeshiftForm\n        {\n" );
    	fprintf( hFile, "            BaseAddressOffset1Pattern = 0x%X,// working\n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 81 ? ? ? ? 0F B6 80 ? ? ? ? C3" ) + 0x3 ) );
    	fprintf( hFile, "            BaseAddressOffset2Pattern = 0x%X,// working\n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "0F B6 80 7B 02 00 00 C3" ) + 0x3 ) );
    	fprintf( hFile, "            BaseAddressOffset1 =  0x188,// good\n" );
    	fprintf( hFile, "            BaseAddressOffset2 =  0x27B,// good\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// SpellCooldown\n        /// </summary>\n        internal enum SpellCooldown : uint\n        {\n" );
    	fprintf( hFile, "            CooldPown = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 0D ? ? ? ? 45 0F B6 C1 8B D7")  ) );
    	
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// Search for PowerTypePointer  \n        /// </summary>\n        internal enum PowerIndex\n        {\n" );
    	fprintf( hFile, "            PowerIndexArrays = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "41 8B 84 91 ? ? ? ? C3")  ) );
    	fprintf( hFile, "            Multiplicator =  13,// good\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// Swimming v5 = v3 && (*(*(v3 + 0x198) + 0x58i64) >> 20) & 1; \n        /// </summary>\n        internal enum Swimming\n        {\n" );
    	fprintf( hFile, "            Pointer =  0x198,\n" );
    	fprintf( hFile, "            Offset =  0x58,\n" );
    	fprintf( hFile, "            Mask =  0x100000,\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// IsFlying \n        /// </summary>\n        internal enum IsFlying\n        {\n" );
    	fprintf( hFile, "            Pointer =  0x198,\n" );
    	fprintf( hFile, "            Offset =  0x58,\n" );
    	fprintf( hFile, "            Mask =  0x1000000,\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// IsFalling v5 = v3 && (*(*(v3 + 0x198) + 0x58i64) >> 11) & 1 && !((*(*(v3 + 0x198) + 0x58i64) >> 10) & 1);\n        /// </summary>\n        internal enum IsFalling\n        {\n" );
    	fprintf( hFile, "            Pointer =  0x198,\n" );
    	fprintf( hFile, "            Offset =  0x58,\n" );
    	fprintf( hFile, "            Mask =  0x1000000,\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// reversed from CGUnit_C__GetAura \n        /// </summary>\n        internal enum UnitAuras : uint\n        {\n" );
    	fprintf( hFile, "            AuraCount1Pattern = 0x%X, // working \n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "3B 91 ? ? 00 00 73 14 8B C2 48 69 D0 ? 00 00 00" ) + 0x2 ) );
    	fprintf( hFile, "            AuraCount2Pattern = 0x%X, // working \n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 81 ? ? 00 00 48 03 C2 C3 " ) + 0x3 ) );
    	fprintf( hFile, "            AuraCount1 =  0x1B20,// fixed 40045\n" );
    	fprintf( hFile, "            AuraCount2 =  0x1B28,// fixed 40045\n" );
    	fprintf( hFile, "            AuraTable1 =  0x1B20,// fixed 40045\n" );
    	fprintf( hFile, "            AuraTable2 =  0x1B28,// fixed 40045\n" );
    	fprintf( hFile, "            AuraSize =  0xB0,\n" );
    	fprintf( hFile, "            AuraSpellId =  0x88,\n" );
    	fprintf( hFile, "            AuraStack =  0x39,\n" );
    	fprintf( hFile, "            TimeLeft =  0x40,\n" );
    	fprintf( hFile, "            OwnerGUID =  0x20,\n" );
    	fprintf( hFile, "            AuraTableOffset =  0x00,\n" );
    	fprintf( hFile, "            AuraFlags =  0x90,\n" );
    	fprintf( hFile, "            AuraLevel =  0x92,\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// UnitName \n        /// </summary>\n        internal enum UnitName : uint\n        {\n" );
    	fprintf( hFile, "            ObjectName1Pattern = 0x%X,// working\n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 81 ? ? ? ? 48 85 C0 74 ? 48 8B 80 ? ? ? ? C3" ) + 0x3 ) );
    	fprintf( hFile, "            ObjectName2Pattern = 0x%X,// working\n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 80 ? ? ? ? C3 48 8D 05 ? ? ? ?" ) + 0x3 ) );
    	fprintf( hFile, "            ObjectName1 =  0x478,// good\n" );
    	fprintf( hFile, "            ObjectName2 =  0xE0,// good\n" );
    	fprintf( hFile, "            PlayerNameGUIDOffset =  0x20,// dont use atm\n" );
    	fprintf( hFile, "            PlayerNameStringOffset =  0x31,// dont use atm\n" );
    	fprintf( hFile, "            PlayerNameCacheNext =  0x0,// dont use atm\n" );
    	fprintf( hFile, "            PlayerNameCachePointer = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8D 0D ? ? ? ? E8 ? ? ? ? 48 85 C0 74 3B 45 33 C9")  ) );
    	fprintf( hFile, "            UnitName1 =  0x1800,  //old 0x17B8,\n" );
    	fprintf( hFile, "            UnitName2 =  0xF8, // good\n" );
    	fprintf( hFile, "            UnitName1Pattern = 0x%X,// working\n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 8B ? ? ? ? 48 85 C9 74 ? 83 B9 ? ? ? ? ? 0F B6 90 ? ? ? ?" ) + 0x3 ) );
    	fprintf( hFile, "            UnitName2Pattern = 0x%X,// working\n", Dword( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 81 ? ? ? ? 48 85 C0 75 ? 48 85 F6" ) + 0x3 ) );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// UnitSpeed \n        /// </summary>\n        internal enum UnitSpeed\n        {\n" );
    	fprintf( hFile, "            Pointer1 =  0x198,\n" );
    	fprintf( hFile, "            Pointer2 =  0xA0,\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// WowObject \n        /// </summary>\n        internal enum WowObject\n        {\n" );
    	fprintf( hFile, "            X =  0x15F8,\n" );
    	fprintf( hFile, "            Y =  X + 0x4,\n" );
    	fprintf( hFile, "            Z =  X + 0x8,\n" );
    	fprintf( hFile, "            RotationOffset =  X + 0x10,\n" );
    	fprintf( hFile, "            Pitch =  X + 0x14,\n" );
    	fprintf( hFile, "            GameObjectX =  0x1B0,\n" );
    	fprintf( hFile, "            GameObjectY =  GameObjectX + 0x4,\n" );
    	fprintf( hFile, "            GameObjectZ =  GameObjectX + 0x8,\n" );
    	fprintf( hFile, "            GameObjectRotation =  GameObjectX + 0x10,\n" );
    	fprintf( hFile, "            TransportGUID =  0x15F0,\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// Zone \n        /// </summary>\n        internal enum Zone : uint\n        {\n" );
    	fprintf( hFile, "            ZoneText = 0x%X,//Script_GetZoneText\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 2D ? ? ? ? 45 33 FF")  ) );
    	fprintf( hFile, "            ZoneID = 0x%X,//Reversed From Script_GetZonePVPInfo - Script_IsPlayerInMicroDungeon\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 05 ? ? ? ? 3D ? ? ? ? 74 ? 3D ? ? ? ?")  ) );
    	fprintf( hFile, "            SubZoneText = 0x%X,//Reversed From Script_GetSubZoneText\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "4C 8B 0D ? ? ? ? 8B D8")  ) );
    	fprintf( hFile, "            ContinentId = 0x%X,\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "8B 0D ? ? ? ? 48 8B D0 89 0D ? ? ? ? 41 B8 ? ? ? ? 48 8D 0D ? ? ? ? F3 0F 11 35 ? ? ? ? F3 0F 11 3D ? ? ? ? C7 05 ? ? ? ? ? ? ? ? C7 05 ? ? ? ? ? ? ? ? C7 05 ? ? ? ? ? ? ? ? C7 05 ? ? ? ? ? ? ? ? 66 90 0F B6 02 48 FF C2 88 01 48 8D 49 ? 84 C0 74 ? 49 83 E8 ? 75 ? EB ? 4D 85 C0 75 ? C6 01 ? 0F B6 02 48 8D 52 ? 84 C0 75 ? 0F 28 74 24 ? 0F 28 7C 24 ? 48 83 C4 ? C3 C8 ? ? ?")  ) );
    	fprintf( hFile, "            GetContinentIDOffset =  0x00,\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
    	fprintf( hFile, "        /// <summary>\n        /// UiFrame \n        /// </summary>\n        internal enum UiFrame\n        {\n" );
    	fprintf( hFile, "            ScrWidth = 0x%X,// Script_GetScreenWidth\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "F3 44 0F 59 25 ? ? ? ? F3 44 0F 5E 25 ? ? ? ?")  ) );
    	fprintf( hFile, "            ScrHeight =  ScrWidth + 0x4,\n" );
    	
    	fprintf( hFile, "            FrameBase = 0x%X,// Script_GetMouseMotionFocus\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 0D ? ? ? 02 48 8B D3 84 C0 74 0A")  ) );
    	fprintf( hFile, "            CurrentFramePtr = 0x%X,// Script_GetMouseClickFocus\n", ExtractOffSet( FindBinary( INF_BASEADDR, SEARCH_DOWN, "48 8B 0D ? ? ? 02 48 8B D3 84 C0 74 0A")  ) );
    	fprintf( hFile, "            CurrentFrameOffset =  0x290,\n" );
    	fprintf( hFile, "            FirstFrame =  0xF18,\n" );
    	fprintf( hFile, "            NextFrame =  0xF08,\n" );
    	fprintf( hFile, "            RegionsFirst =  0x2A0,\n" );
    	fprintf( hFile, "            RegionsNext =  0x290,\n" );
    	fprintf( hFile, "            Visible =  0x1CC,\n" );
    	fprintf( hFile, "            Visible1 =  1,\n" );
    	fprintf( hFile, "            Visible2 =  1,\n" );
    	fprintf( hFile, "            LabelText =  0x280,\n" );
    	fprintf( hFile, "            Name =  0x28,\n" );
    	fprintf( hFile, "            FrameBottom =  0x190,\n" );
    	fprintf( hFile, "            FrameLeft =  0x194,\n" );
    	fprintf( hFile, "            FrameTop =  0x198,\n" );
    	fprintf( hFile, "            FrameRight =  0x19C,\n" );
    	fprintf( hFile, "            EffectiveScale =  0x1C0,\n" );
    	fprintf( hFile, "            ParentFrame =  0x58,// 0xD0\n" );
    	fprintf( hFile, "            IconNumber =  0x12,\n" );
    	fprintf( hFile, "            ButtonEnabledPointer =  0x310,\n" );
    	fprintf( hFile, "            ButtonEnabledMask =  0xF,\n" );
    	fprintf( hFile, "            ButtonChecked =  0x360,\n" );
    	fprintf( hFile, "            EditBoxText =  0x330,\n" );
    		
    	fprintf( hFile, "        }\n\n" );
    	
        fprintf( hFile, "    }\n\n" );
        fprintf( hFile, "}\n\n" );
    	fclose( hFile );
    
    }
    
    static ExtractOffSet( xRef )
    {
    	auto head, maxLoops;
    	maxLoops = 20;
    	head = (xRef);
    	while ( maxLoops-- )
    	{
    		auto operandValue;
    		
    		if ( head == BADADDR )
    			break;
    
    		operandValue = GetOperandValue( head, 1);
    		if (SegName( operandValue ) == ".data") 
    		{
    			if ( strstr( GetOpnd( head, 0 ), "[" ) > -1 )
    			{
    				break;
    			}
    			
    			return operandValue;
    		}
    		
    		head = ( head );
    	}
    	
    	return 0;
    }
    MacroFirst is wrong?
    i can't get macro title with
    [[MACROFIRST]+Name ]

  21. #15
    charles420's Avatar Contributor
    Reputation
    315
    Join Date
    Jun 2009
    Posts
    329
    Thanks G/R
    25/119
    Trade Feedback
    0 (0%)
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)
    i had them hard coded i believe i currently don't have time to to help with crazy work days traveling too much reason i posted my script for everyone

  22. Thanks aeo (1 members gave Thanks to charles420 for this useful post)
Page 1 of 2 12 LastLast

Similar Threads

  1. [Selling Gold] WoW Wotlk/SoD/SoM/Classic GOLD - All Regions - All Realms - CHEAP - FAST DELIVERY
    By NerdBooster in forum WoW Classic Buy Sell Trade
    Replies: 4
    Last Post: 09-17-2022, 04:22 PM
  2. [Selling] 🌟 WoW TBC Classic - GOLD - EU/NA🌟
    By TerryCole in forum WoW Classic Buy Sell Trade
    Replies: 2
    Last Post: 10-13-2021, 08:07 AM
  3. [Selling] Selling tbc classic leveling eu & na! Cheap , fast & secure!
    By Goldstash in forum WoW Classic Buy Sell Trade
    Replies: 1
    Last Post: 10-20-2019, 06:26 AM
  4. [Powerleveling] ★WotLK Poweleveling 70-80 from 35$ + PVP/PVE Boosting & Farming★
    By MMO-GS in forum WoW Classic Buy Sell Trade
    Replies: 4
    Last Post: 09-13-2019, 07:30 AM
  5. [Selling] ★WotLK + SoD + WoW Classic Gold Service - All EU/NA Realms - Pro Service★
    By MMO-GS in forum WoW Classic Buy Sell Trade
    Replies: 0
    Last Post: 08-28-2019, 08:47 AM
All times are GMT -5. The time now is 09:42 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search