[WoW] [7.2.0.23835] menu

User Tag List

Page 2 of 3 FirstFirst 123 LastLast
Results 16 to 30 of 31
  1. #16
    empathe's Avatar Member
    Reputation
    1
    Join Date
    Mar 2016
    Posts
    33
    Thanks G/R
    42/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by evil2 View Post
    ahhh so annoying .. they changed some structs :-(
    x32:
    UnitAura offsets 1190 880
    UnitAura size 88
    a lot of change for x64 ?

    [WoW] [7.2.0.23835]
  2. #17
    Jadd's Avatar 🐸 Premium Seller
    Reputation
    1511
    Join Date
    May 2008
    Posts
    2,432
    Thanks G/R
    81/333
    Trade Feedback
    1 (100%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Torpedoes View Post
    I got all my usual offsets for x64. Working on x32 now and will post later this afternoon. In the meantime, please be aware that they changed EntityType from a uint32 to a uint16. The upper portion of the uint32 has some weird values now for some entities. The offset (on x64 and probably x32) is identical to what it was last patch (0x20 I think).
    <3
    (10 chars)

  3. #18
    MrNoble's Avatar ezclap CoreCoins Purchaser
    Reputation
    535
    Join Date
    Sep 2015
    Posts
    357
    Thanks G/R
    170/218
    Trade Feedback
    2 (100%)
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Torpedoes View Post
    I got all my usual offsets for x64. Working on x32 now and will post later this afternoon. In the meantime, please be aware that they changed EntityType from a uint32 to a uint16. The upper portion of the uint32 has some weird values now for some entities. The offset (on x64 and probably x32) is identical to what it was last patch (0x20 I think).
    Damn i can't wait until you share your offsets with us.

    Struggeling with IDA and can't get all of the offsets by myself

  4. #19
    -Ryuk-'s Avatar Elite User CoreCoins Purchaser Authenticator enabled
    Reputation
    529
    Join Date
    Nov 2009
    Posts
    1,028
    Thanks G/R
    38/51
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Code:
    public enum CGObjectData{
     Guid = 0x0, //Size: 0x10, Flags: All
     Data = 0x10, //Size: 0x10, Flags: All
     Type = 0x20, //Size: 0x4, Flags: All
     EntryID = 0x24, //Size: 0x4, Flags: ViewerDependent
     DynamicFlags = 0x28, //Size: 0x4, Flags: ViewerDependent, Urgent
     Scale = 0x2C, //Size: 0x4, Flags: All
     End = 0x30
    }
    public enum CGItemData{
     Owner = CGObjectData.End + 0x0, //Size: 0x10, Flags: All
     ContainedIn = CGObjectData.End + 0x10, //Size: 0x10, Flags: All
     Creator = CGObjectData.End + 0x20, //Size: 0x10, Flags: All
     GiftCreator = CGObjectData.End + 0x30, //Size: 0x10, Flags: All
     StackCount = CGObjectData.End + 0x40, //Size: 0x4, Flags: Owner
     Expiration = CGObjectData.End + 0x44, //Size: 0x4, Flags: Owner
     SpellCharges = CGObjectData.End + 0x48, //Size: 0x14, Flags: Owner
     DynamicFlags = CGObjectData.End + 0x5C, //Size: 0x4, Flags: All
     Enchantment = CGObjectData.End + 0x60, //Size: 0x9C, Flags: All
     PropertySeed = CGObjectData.End + 0xFC, //Size: 0x4, Flags: All
     RandomPropertiesID = CGObjectData.End + 0x100, //Size: 0x4, Flags: All
     Durability = CGObjectData.End + 0x104, //Size: 0x4, Flags: Owner
     MaxDurability = CGObjectData.End + 0x108, //Size: 0x4, Flags: Owner
     CreatePlayedTime = CGObjectData.End + 0x10C, //Size: 0x4, Flags: All
     ModifiersMask = CGObjectData.End + 0x110, //Size: 0x4, Flags: Owner
     Context = CGObjectData.End + 0x114, //Size: 0x4, Flags: All
     ArtifactXP = CGObjectData.End + 0x118, //Size: 0x8, Flags: Owner
     ItemAppearanceModID = CGObjectData.End + 0x120, //Size: 0x4, Flags: Owner
     End = CGObjectData.End + 0x124
    }
    public enum CGContainerData{
     Slots = CGItemData.End + 0x0, //Size: 0x240, Flags: All
     NumSlots = CGItemData.End + 0x240, //Size: 0x4, Flags: All
     End = CGItemData.End + 0x244
    }
    public enum CGUnitData{
     Charm = CGObjectData.End + 0x0, //Size: 0x10, Flags: All
     Summon = CGObjectData.End + 0x10, //Size: 0x10, Flags: All
     Critter = CGObjectData.End + 0x20, //Size: 0x10, Flags: Self
     CharmedBy = CGObjectData.End + 0x30, //Size: 0x10, Flags: All
     SummonedBy = CGObjectData.End + 0x40, //Size: 0x10, Flags: All
     CreatedBy = CGObjectData.End + 0x50, //Size: 0x10, Flags: All
     DemonCreator = CGObjectData.End + 0x60, //Size: 0x10, Flags: All
     Target = CGObjectData.End + 0x70, //Size: 0x10, Flags: All
     BattlePetCompanionGUID = CGObjectData.End + 0x80, //Size: 0x10, Flags: All
     BattlePetDBID = CGObjectData.End + 0x90, //Size: 0x8, Flags: All
     ChannelSpell = CGObjectData.End + 0x98, //Size: 0x4, Flags: All, Urgent
     ChannelSpellXSpellVisual = CGObjectData.End + 0x9C, //Size: 0x4, Flags: All, Urgent
     SummonedByHomeRealm = CGObjectData.End + 0xA0, //Size: 0x4, Flags: All
     Race = CGObjectData.End + 0xA4, //Size: 0x1, Flags: All
     ClassId = CGObjectData.End + 0xA5, //Size: 0x1, Flags: All
     PlayerClassId = CGObjectData.End + 0xA6, //Size: 0x1, Flags: All
     Sex = CGObjectData.End + 0xA7, //Size: 0x1, Flags: All
     DisplayPower = CGObjectData.End + 0xA8, //Size: 0x4, Flags: All
     OverrideDisplayPowerID = CGObjectData.End + 0xAC, //Size: 0x4, Flags: All
     Health = CGObjectData.End + 0xB0, //Size: 0x8, Flags: All
     Power = CGObjectData.End + 0xB8, //Size: 0x18, Flags: All, UrgentSelfOnly
     MaxHealth = CGObjectData.End + 0xD0, //Size: 0x8, Flags: All
     MaxPower = CGObjectData.End + 0xD8, //Size: 0x18, Flags: All
     PowerRegenFlatModifier = CGObjectData.End + 0xF0, //Size: 0x18, Flags: Self, Owner, UnitAll
     PowerRegenInterruptedFlatModifier = CGObjectData.End + 0x108, //Size: 0x18, Flags: Self, Owner, UnitAll
     Level = CGObjectData.End + 0x120, //Size: 0x4, Flags: All
     EffectiveLevel = CGObjectData.End + 0x124, //Size: 0x4, Flags: All
     ScalingLevelMin = CGObjectData.End + 0x128, //Size: 0x4, Flags: All
     ScalingLevelMax = CGObjectData.End + 0x12C, //Size: 0x4, Flags: All
     ScalingLevelDelta = CGObjectData.End + 0x130, //Size: 0x4, Flags: All
     FactionTemplate = CGObjectData.End + 0x134, //Size: 0x4, Flags: All
     VirtualItems = CGObjectData.End + 0x138, //Size: 0x18, Flags: All
     Flags = CGObjectData.End + 0x150, //Size: 0x4, Flags: All, Urgent
     Flags2 = CGObjectData.End + 0x154, //Size: 0x4, Flags: All, Urgent
     Flags3 = CGObjectData.End + 0x158, //Size: 0x4, Flags: All, Urgent
     AuraState = CGObjectData.End + 0x15C, //Size: 0x4, Flags: All
     AttackRoundBaseTime = CGObjectData.End + 0x160, //Size: 0x8, Flags: All
     RangedAttackRoundBaseTime = CGObjectData.End + 0x168, //Size: 0x4, Flags: Self
     BoundingRadius = CGObjectData.End + 0x16C, //Size: 0x4, Flags: All
     CombatReach = CGObjectData.End + 0x170, //Size: 0x4, Flags: All
     DisplayID = CGObjectData.End + 0x174, //Size: 0x4, Flags: ViewerDependent, Urgent
     NativeDisplayID = CGObjectData.End + 0x178, //Size: 0x4, Flags: All, Urgent
     MountDisplayID = CGObjectData.End + 0x17C, //Size: 0x4, Flags: All, Urgent
     MinDamage = CGObjectData.End + 0x180, //Size: 0x4, Flags: Self, Owner, Empath
     MaxDamage = CGObjectData.End + 0x184, //Size: 0x4, Flags: Self, Owner, Empath
     MinOffHandDamage = CGObjectData.End + 0x188, //Size: 0x4, Flags: Self, Owner, Empath
     MaxOffHandDamage = CGObjectData.End + 0x18C, //Size: 0x4, Flags: Self, Owner, Empath
     StandState = CGObjectData.End + 0x190, //Size: 0x1, Flags: All
     PetTalentPoints_UNUSED = CGObjectData.End + 0x191, //Size: 0x1, Flags: All
     VisFlags = CGObjectData.End + 0x192, //Size: 0x1, Flags: All
     AnimTier = CGObjectData.End + 0x193, //Size: 0x1, Flags: All
     PetNumber = CGObjectData.End + 0x194, //Size: 0x4, Flags: All
     PetNameTimestamp = CGObjectData.End + 0x198, //Size: 0x4, Flags: All
     PetExperience = CGObjectData.End + 0x19C, //Size: 0x4, Flags: Owner
     PetNextLevelExperience = CGObjectData.End + 0x1A0, //Size: 0x4, Flags: Owner
     ModCastingSpeed = CGObjectData.End + 0x1A4, //Size: 0x4, Flags: All
     ModSpellHaste = CGObjectData.End + 0x1A8, //Size: 0x4, Flags: All
     ModHaste = CGObjectData.End + 0x1AC, //Size: 0x4, Flags: All
     ModRangedHaste = CGObjectData.End + 0x1B0, //Size: 0x4, Flags: All
     ModHasteRegen = CGObjectData.End + 0x1B4, //Size: 0x4, Flags: All
     ModTimeRate = CGObjectData.End + 0x1B8, //Size: 0x4, Flags: All
     CreatedBySpell = CGObjectData.End + 0x1BC, //Size: 0x4, Flags: All
     NpcFlags = CGObjectData.End + 0x1C0, //Size: 0x8, Flags: All, ViewerDependent
     EmoteState = CGObjectData.End + 0x1C8, //Size: 0x4, Flags: All
     Stats = CGObjectData.End + 0x1CC, //Size: 0x10, Flags: Self, Owner
     StatPosBuff = CGObjectData.End + 0x1DC, //Size: 0x10, Flags: Self, Owner
     StatNegBuff = CGObjectData.End + 0x1EC, //Size: 0x10, Flags: Self, Owner
     Resistances = CGObjectData.End + 0x1FC, //Size: 0x1C, Flags: Self, Owner, Empath
     ResistanceBuffModsPositive = CGObjectData.End + 0x218, //Size: 0x1C, Flags: Self, Owner
     ResistanceBuffModsNegative = CGObjectData.End + 0x234, //Size: 0x1C, Flags: Self, Owner
     ModBonusArmor = CGObjectData.End + 0x250, //Size: 0x4, Flags: Self, Owner
     BaseMana = CGObjectData.End + 0x254, //Size: 0x4, Flags: All
     BaseHealth = CGObjectData.End + 0x258, //Size: 0x4, Flags: Self, Owner
     SheatheState = CGObjectData.End + 0x25C, //Size: 0x1, Flags: All
     PvpFlags = CGObjectData.End + 0x25D, //Size: 0x1, Flags: All
     PetFlags = CGObjectData.End + 0x25E, //Size: 0x1, Flags: All
     ShapeshiftForm = CGObjectData.End + 0x25F, //Size: 0x1, Flags: All
     AttackPower = CGObjectData.End + 0x260, //Size: 0x4, Flags: Self, Owner
     AttackPowerModPos = CGObjectData.End + 0x264, //Size: 0x4, Flags: Self, Owner
     AttackPowerModNeg = CGObjectData.End + 0x268, //Size: 0x4, Flags: Self, Owner
     AttackPowerMultiplier = CGObjectData.End + 0x26C, //Size: 0x4, Flags: Self, Owner
     RangedAttackPower = CGObjectData.End + 0x270, //Size: 0x4, Flags: Self, Owner
     RangedAttackPowerModPos = CGObjectData.End + 0x274, //Size: 0x4, Flags: Self, Owner
     RangedAttackPowerModNeg = CGObjectData.End + 0x278, //Size: 0x4, Flags: Self, Owner
     RangedAttackPowerMultiplier = CGObjectData.End + 0x27C, //Size: 0x4, Flags: Self, Owner
     SetAttackSpeedAura = CGObjectData.End + 0x280, //Size: 0x4, Flags: Self, Owner
     MinRangedDamage = CGObjectData.End + 0x284, //Size: 0x4, Flags: Self, Owner
     MaxRangedDamage = CGObjectData.End + 0x288, //Size: 0x4, Flags: Self, Owner
     PowerCostModifier = CGObjectData.End + 0x28C, //Size: 0x1C, Flags: Self, Owner
     PowerCostMultiplier = CGObjectData.End + 0x2A8, //Size: 0x1C, Flags: Self, Owner
     MaxHealthModifier = CGObjectData.End + 0x2C4, //Size: 0x4, Flags: Self, Owner
     HoverHeight = CGObjectData.End + 0x2C8, //Size: 0x4, Flags: All
     MinItemLevelCutoff = CGObjectData.End + 0x2CC, //Size: 0x4, Flags: All
     MinItemLevel = CGObjectData.End + 0x2D0, //Size: 0x4, Flags: All
     MaxItemLevel = CGObjectData.End + 0x2D4, //Size: 0x4, Flags: All
     WildBattlePetLevel = CGObjectData.End + 0x2D8, //Size: 0x4, Flags: All
     BattlePetCompanionNameTimestamp = CGObjectData.End + 0x2DC, //Size: 0x4, Flags: All
     InteractSpellID = CGObjectData.End + 0x2E0, //Size: 0x4, Flags: All
     StateSpellVisualID = CGObjectData.End + 0x2E4, //Size: 0x4, Flags: ViewerDependent, Urgent
     StateAnimID = CGObjectData.End + 0x2E8, //Size: 0x4, Flags: ViewerDependent, Urgent
     StateAnimKitID = CGObjectData.End + 0x2EC, //Size: 0x4, Flags: ViewerDependent, Urgent
     StateWorldEffectID = CGObjectData.End + 0x2F0, //Size: 0x10, Flags: ViewerDependent, Urgent
     ScaleDuration = CGObjectData.End + 0x300, //Size: 0x4, Flags: All
     LooksLikeMountID = CGObjectData.End + 0x304, //Size: 0x4, Flags: All
     LooksLikeCreatureID = CGObjectData.End + 0x308, //Size: 0x4, Flags: All
     LookAtControllerID = CGObjectData.End + 0x30C, //Size: 0x4, Flags: All
     LookAtControllerTarget = CGObjectData.End + 0x310, //Size: 0x10, Flags: All
     End = CGObjectData.End + 0x320
    }
    public enum CGPlayerData{
     DuelArbiter = CGUnitData.End + 0x0, //Size: 0x10, Flags: All
     WowAccount = CGUnitData.End + 0x10, //Size: 0x10, Flags: All
     LootTargetGUID = CGUnitData.End + 0x20, //Size: 0x10, Flags: All
     PlayerFlags = CGUnitData.End + 0x30, //Size: 0x4, Flags: All
     PlayerFlagsEx = CGUnitData.End + 0x34, //Size: 0x4, Flags: All
     GuildRankID = CGUnitData.End + 0x38, //Size: 0x4, Flags: All
     GuildDeleteDate = CGUnitData.End + 0x3C, //Size: 0x4, Flags: All
     GuildLevel = CGUnitData.End + 0x40, //Size: 0x4, Flags: All
     SkinID = CGUnitData.End + 0x44, //Size: 0x1, Flags: All
     FaceID = CGUnitData.End + 0x45, //Size: 0x1, Flags: All
     HairStyleID = CGUnitData.End + 0x46, //Size: 0x1, Flags: All
     HairColorID = CGUnitData.End + 0x47, //Size: 0x1, Flags: All
     FacialHairStyleID = CGUnitData.End + 0x48, //Size: 0x1, Flags: All
     CustomDisplayOption = CGUnitData.End + 0x49, //Size: 0x1, Flags: All
     PartyType = CGUnitData.End + 0x4C, //Size: 0x1, Flags: All
     NumBankSlots = CGUnitData.End + 0x4D, //Size: 0x1, Flags: All
     NativeSex = CGUnitData.End + 0x4E, //Size: 0x1, Flags: All
     Inebriation = CGUnitData.End + 0x4F, //Size: 0x1, Flags: All
     PvpTitle = CGUnitData.End + 0x50, //Size: 0x1, Flags: All
     ArenaFaction = CGUnitData.End + 0x51, //Size: 0x1, Flags: All
     DuelTeam = CGUnitData.End + 0x54, //Size: 0x4, Flags: All
     GuildTimeStamp = CGUnitData.End + 0x58, //Size: 0x4, Flags: All
     QuestLog = CGUnitData.End + 0x5C, //Size: 0xC80, Flags: Party
     VisibleItems = CGUnitData.End + 0xCDC, //Size: 0x98, Flags: All
     PlayerTitle = CGUnitData.End + 0xD74, //Size: 0x4, Flags: All
     FakeInebriation = CGUnitData.End + 0xD78, //Size: 0x4, Flags: All
     VirtualPlayerRealm = CGUnitData.End + 0xD7C, //Size: 0x4, Flags: All
     CurrentSpecID = CGUnitData.End + 0xD80, //Size: 0x4, Flags: All
     TaxiMountAnimKitID = CGUnitData.End + 0xD84, //Size: 0x4, Flags: All
     AvgItemLevel = CGUnitData.End + 0xD88, //Size: 0x10, Flags: All
     CurrentBattlePetBreedQuality = CGUnitData.End + 0xD98, //Size: 0x4, Flags: All
     Prestige = CGUnitData.End + 0xD9C, //Size: 0x4, Flags: All
     HonorLevel = CGUnitData.End + 0xDA0, //Size: 0x4, Flags: All
     InvSlots = CGUnitData.End + 0xDA4, //Size: 0xBB0, Flags: Self
     FarsightObject = CGUnitData.End + 0x1954, //Size: 0x10, Flags: Self
     SummonedBattlePetGUID = CGUnitData.End + 0x1964, //Size: 0x10, Flags: Self
     KnownTitles = CGUnitData.End + 0x1974, //Size: 0x30, Flags: Self
     Coinage = CGUnitData.End + 0x19A4, //Size: 0x8, Flags: Self
     XP = CGUnitData.End + 0x19AC, //Size: 0x4, Flags: Self
     NextLevelXP = CGUnitData.End + 0x19B0, //Size: 0x4, Flags: Self
     Skill = CGUnitData.End + 0x19B4, //Size: 0x700, Flags: Self
     CharacterPoints = CGUnitData.End + 0x20B4, //Size: 0x4, Flags: Self
     MaxTalentTiers = CGUnitData.End + 0x20B8, //Size: 0x4, Flags: Self
     TrackCreatureMask = CGUnitData.End + 0x20BC, //Size: 0x4, Flags: Self
     TrackResourceMask = CGUnitData.End + 0x20C0, //Size: 0x4, Flags: Self
     MainhandExpertise = CGUnitData.End + 0x20C4, //Size: 0x4, Flags: Self
     OffhandExpertise = CGUnitData.End + 0x20C8, //Size: 0x4, Flags: Self
     RangedExpertise = CGUnitData.End + 0x20CC, //Size: 0x4, Flags: Self
     CombatRatingExpertise = CGUnitData.End + 0x20D0, //Size: 0x4, Flags: Self
     BlockPercentage = CGUnitData.End + 0x20D4, //Size: 0x4, Flags: Self
     DodgePercentage = CGUnitData.End + 0x20D8, //Size: 0x4, Flags: Self
     DodgePercentageFromAttribute = CGUnitData.End + 0x20DC, //Size: 0x4, Flags: Self
     ParryPercentage = CGUnitData.End + 0x20E0, //Size: 0x4, Flags: Self
     ParryPercentageFromAttribute = CGUnitData.End + 0x20E4, //Size: 0x4, Flags: Self
     CritPercentage = CGUnitData.End + 0x20E8, //Size: 0x4, Flags: Self
     RangedCritPercentage = CGUnitData.End + 0x20EC, //Size: 0x4, Flags: Self
     OffhandCritPercentage = CGUnitData.End + 0x20F0, //Size: 0x4, Flags: Self
     SpellCritPercentage = CGUnitData.End + 0x20F4, //Size: 0x4, Flags: Self
     ShieldBlock = CGUnitData.End + 0x20F8, //Size: 0x4, Flags: Self
     ShieldBlockCritPercentage = CGUnitData.End + 0x20FC, //Size: 0x4, Flags: Self
     Mastery = CGUnitData.End + 0x2100, //Size: 0x4, Flags: Self
     Speed = CGUnitData.End + 0x2104, //Size: 0x4, Flags: Self
     Lifesteal = CGUnitData.End + 0x2108, //Size: 0x4, Flags: Self
     Avoidance = CGUnitData.End + 0x210C, //Size: 0x4, Flags: Self
     Sturdiness = CGUnitData.End + 0x2110, //Size: 0x4, Flags: Self
     Versatility = CGUnitData.End + 0x2114, //Size: 0x4, Flags: Self
     VersatilityBonus = CGUnitData.End + 0x2118, //Size: 0x4, Flags: Self
     PvpPowerDamage = CGUnitData.End + 0x211C, //Size: 0x4, Flags: Self
     PvpPowerHealing = CGUnitData.End + 0x2120, //Size: 0x4, Flags: Self
     ExploredZones = CGUnitData.End + 0x2124, //Size: 0x400, Flags: Self
     RestInfo = CGUnitData.End + 0x2524, //Size: 0x10, Flags: Self
     ModDamageDonePos = CGUnitData.End + 0x2534, //Size: 0x1C, Flags: Self
     ModDamageDoneNeg = CGUnitData.End + 0x2550, //Size: 0x1C, Flags: Self
     ModDamageDonePercent = CGUnitData.End + 0x256C, //Size: 0x1C, Flags: Self
     ModHealingDonePos = CGUnitData.End + 0x2588, //Size: 0x4, Flags: Self
     ModHealingPercent = CGUnitData.End + 0x258C, //Size: 0x4, Flags: Self
     ModHealingDonePercent = CGUnitData.End + 0x2590, //Size: 0x4, Flags: Self
     ModPeriodicHealingDonePercent = CGUnitData.End + 0x2594, //Size: 0x4, Flags: Self
     WeaponDmgMultipliers = CGUnitData.End + 0x2598, //Size: 0xC, Flags: Self
     WeaponAtkSpeedMultipliers = CGUnitData.End + 0x25A4, //Size: 0xC, Flags: Self
     ModSpellPowerPercent = CGUnitData.End + 0x25B0, //Size: 0x4, Flags: Self
     ModResiliencePercent = CGUnitData.End + 0x25B4, //Size: 0x4, Flags: Self
     OverrideSpellPowerByAPPercent = CGUnitData.End + 0x25B8, //Size: 0x4, Flags: Self
     OverrideAPBySpellPowerPercent = CGUnitData.End + 0x25BC, //Size: 0x4, Flags: Self
     ModTargetResistance = CGUnitData.End + 0x25C0, //Size: 0x4, Flags: Self
     ModTargetPhysicalResistance = CGUnitData.End + 0x25C4, //Size: 0x4, Flags: Self
     LocalFlags = CGUnitData.End + 0x25C8, //Size: 0x4, Flags: Self
     GrantableLevels = CGUnitData.End + 0x25CC, //Size: 0x1, Flags: Self
     MultiActionBars = CGUnitData.End + 0x25CD, //Size: 0x1, Flags: Self
     LifetimeMaxRank = CGUnitData.End + 0x25CE, //Size: 0x1, Flags: Self
     NumRespecs = CGUnitData.End + 0x25CF, //Size: 0x1, Flags: Self
     SelfResSpell = CGUnitData.End + 0x25D0, //Size: 0x4, Flags: Self
     PvpMedals = CGUnitData.End + 0x25D4, //Size: 0x4, Flags: Self
     BuybackPrice = CGUnitData.End + 0x25D8, //Size: 0x30, Flags: Self
     BuybackTimestamp = CGUnitData.End + 0x2608, //Size: 0x30, Flags: Self
     TodayHonorableKills = CGUnitData.End + 0x2638, //Size: 0x1, Flags: Self
     YesterdayHonorableKills = CGUnitData.End + 0x2639, //Size: 0x1, Flags: Self
     LifetimeHonorableKills = CGUnitData.End + 0x263C, //Size: 0x4, Flags: Self
     WatchedFactionIndex = CGUnitData.End + 0x2640, //Size: 0x4, Flags: Self
     CombatRatings = CGUnitData.End + 0x2644, //Size: 0x80, Flags: Self
     PvpInfo = CGUnitData.End + 0x26C4, //Size: 0xA8, Flags: Self
     MaxLevel = CGUnitData.End + 0x276C, //Size: 0x4, Flags: Self
     ScalingPlayerLevelDelta = CGUnitData.End + 0x2770, //Size: 0x4, Flags: Self
     MaxCreatureScalingLevel = CGUnitData.End + 0x2774, //Size: 0x4, Flags: Self
     NoReagentCostMask = CGUnitData.End + 0x2778, //Size: 0x10, Flags: Self
     PetSpellPower = CGUnitData.End + 0x2788, //Size: 0x4, Flags: Self
     Researching = CGUnitData.End + 0x278C, //Size: 0x28, Flags: Self
     ProfessionSkillLine = CGUnitData.End + 0x27B4, //Size: 0x8, Flags: Self
     UiHitModifier = CGUnitData.End + 0x27BC, //Size: 0x4, Flags: Self
     UiSpellHitModifier = CGUnitData.End + 0x27C0, //Size: 0x4, Flags: Self
     HomeRealmTimeOffset = CGUnitData.End + 0x27C4, //Size: 0x4, Flags: Self
     ModPetHaste = CGUnitData.End + 0x27C8, //Size: 0x4, Flags: Self
     LocalRegenFlags = CGUnitData.End + 0x27CC, //Size: 0x1, Flags: Self
     AuraVision = CGUnitData.End + 0x27CD, //Size: 0x1, Flags: Self
     OverrideSpellsID = CGUnitData.End + 0x27D0, //Size: 0x4, Flags: Self, UrgentSelfOnly
     LfgBonusFactionID = CGUnitData.End + 0x27D4, //Size: 0x4, Flags: Self
     LootSpecID = CGUnitData.End + 0x27D8, //Size: 0x4, Flags: Self
     OverrideZonePVPType = CGUnitData.End + 0x27DC, //Size: 0x4, Flags: Self, UrgentSelfOnly
     BagSlotFlags = CGUnitData.End + 0x27E0, //Size: 0x10, Flags: Self
     BankBagSlotFlags = CGUnitData.End + 0x27F0, //Size: 0x1C, Flags: Self
     BackpackAutoSortDisabled = CGUnitData.End + 0x280C, //Size: 0x1, Flags: Self
     BankAutoSortDisabled = CGUnitData.End + 0x280D, //Size: 0x1, Flags: Self
     SortBagsRightToLeft = CGUnitData.End + 0x280E, //Size: 0x1, Flags: Self
     InsertItemsLeftToRight = CGUnitData.End + 0x280F, //Size: 0x1, Flags: Self
     QuestCompleted = CGUnitData.End + 0x2810, //Size: 0x1B58, Flags: Self
     Honor = CGUnitData.End + 0x4368, //Size: 0x4, Flags: Self
     HonorNextLevel = CGUnitData.End + 0x436C, //Size: 0x4, Flags: Self
     End = CGUnitData.End + 0x4370
    }
    public enum CGGameObjectData{
     CreatedBy = CGObjectData.End + 0x0, //Size: 0x10, Flags: All
     DisplayID = CGObjectData.End + 0x10, //Size: 0x4, Flags: ViewerDependent, Urgent
     Flags = CGObjectData.End + 0x14, //Size: 0x4, Flags: All, Urgent
     ParentRotation = CGObjectData.End + 0x18, //Size: 0x10, Flags: All
     FactionTemplate = CGObjectData.End + 0x28, //Size: 0x4, Flags: All
     Level = CGObjectData.End + 0x2C, //Size: 0x4, Flags: All
     State = CGObjectData.End + 0x30, //Size: 0x1, Flags: All, Urgent
     TypeID = CGObjectData.End + 0x31, //Size: 0x1, Flags: All, Urgent
     ArtKit = CGObjectData.End + 0x32, //Size: 0x1, Flags: All, Urgent
     PercentHealth = CGObjectData.End + 0x33, //Size: 0x1, Flags: All, Urgent
     SpellVisualID = CGObjectData.End + 0x34, //Size: 0x4, Flags: All, ViewerDependent, Urgent
     StateSpellVisualID = CGObjectData.End + 0x38, //Size: 0x4, Flags: ViewerDependent, Urgent
     SpawnTrackingStateAnimID = CGObjectData.End + 0x3C, //Size: 0x4, Flags: ViewerDependent, Urgent
     SpawnTrackingStateAnimKitID = CGObjectData.End + 0x40, //Size: 0x4, Flags: ViewerDependent, Urgent
     StateWorldEffectID = CGObjectData.End + 0x44, //Size: 0x10, Flags: ViewerDependent, Urgent
     End = CGObjectData.End + 0x54
    }
    public enum CGDynamicObjectData{
     Caster = CGObjectData.End + 0x0, //Size: 0x10, Flags: All
     Type = CGObjectData.End + 0x10, //Size: 0x4, Flags: All
     SpellXSpellVisualID = CGObjectData.End + 0x14, //Size: 0x4, Flags: All
     SpellID = CGObjectData.End + 0x18, //Size: 0x4, Flags: All
     Radius = CGObjectData.End + 0x1C, //Size: 0x4, Flags: All
     CastTime = CGObjectData.End + 0x20, //Size: 0x4, Flags: All
     End = CGObjectData.End + 0x24
    }
    public enum CGCorpseData{
     Owner = CGObjectData.End + 0x0, //Size: 0x10, Flags: All
     PartyGUID = CGObjectData.End + 0x10, //Size: 0x10, Flags: All
     DisplayID = CGObjectData.End + 0x20, //Size: 0x4, Flags: All
     Items = CGObjectData.End + 0x24, //Size: 0x4C, Flags: All
     Unused = CGObjectData.End + 0x70, //Size: 0x1, Flags: All
     RaceID = CGObjectData.End + 0x71, //Size: 0x1, Flags: All
     Sex = CGObjectData.End + 0x72, //Size: 0x1, Flags: All
     SkinID = CGObjectData.End + 0x73, //Size: 0x1, Flags: All
     FaceID = CGObjectData.End + 0x74, //Size: 0x1, Flags: All
     HairStyleID = CGObjectData.End + 0x75, //Size: 0x1, Flags: All
     HairColorID = CGObjectData.End + 0x76, //Size: 0x1, Flags: All
     FacialHairStyleID = CGObjectData.End + 0x77, //Size: 0x1, Flags: All
     Flags = CGObjectData.End + 0x78, //Size: 0x4, Flags: All
     DynamicFlags = CGObjectData.End + 0x7C, //Size: 0x4, Flags: ViewerDependent
     FactionTemplate = CGObjectData.End + 0x80, //Size: 0x4, Flags: All
     CustomDisplayOption = CGObjectData.End + 0x84, //Size: 0x4, Flags: All
     End = CGObjectData.End + 0x88
    }
    public enum CGAreaTriggerData{
     OverrideScaleCurve = CGObjectData.End + 0x0, //Size: 0x1C, Flags: All, Urgent
     ExtraScaleCurve = CGObjectData.End + 0x1C, //Size: 0x1C, Flags: All, Urgent
     Caster = CGObjectData.End + 0x38, //Size: 0x10, Flags: All
     Duration = CGObjectData.End + 0x48, //Size: 0x4, Flags: All
     TimeToTarget = CGObjectData.End + 0x4C, //Size: 0x4, Flags: All, Urgent
     TimeToTargetScale = CGObjectData.End + 0x50, //Size: 0x4, Flags: All, Urgent
     TimeToTargetExtraScale = CGObjectData.End + 0x54, //Size: 0x4, Flags: All, Urgent
     SpellID = CGObjectData.End + 0x58, //Size: 0x4, Flags: All
     SpellForVisuals = CGObjectData.End + 0x5C, //Size: 0x4, Flags: All
     SpellXSpellVisualID = CGObjectData.End + 0x60, //Size: 0x4, Flags: All
     BoundsRadius2D = CGObjectData.End + 0x64, //Size: 0x4, Flags: ViewerDependent, Urgent
     DecalPropertiesID = CGObjectData.End + 0x68, //Size: 0x4, Flags: All
     CreatingEffectGUID = CGObjectData.End + 0x6C, //Size: 0x10, Flags: All
     End = CGObjectData.End + 0x7C
    }
    public enum CGSceneObjectData{
     ScriptPackageID = CGObjectData.End + 0x0, //Size: 0x4, Flags: All
     RndSeedVal = CGObjectData.End + 0x4, //Size: 0x4, Flags: All
     CreatedBy = CGObjectData.End + 0x8, //Size: 0x10, Flags: All
     SceneType = CGObjectData.End + 0x18, //Size: 0x4, Flags: All
     End = CGObjectData.End + 0x1C
    }
    public enum CGConversationData{
     LastLineEndTime = CGObjectData.End + 0x0, //Size: 0x4, Flags: ViewerDependent
     End = CGObjectData.End + 0x4
    }
    public enum CGGameObjectDynamicData{
     EnableDoodadSets = 0x0, //Size: 0x1, Flags: None
     End = 0x0
    }
    public enum CGItemDynamicData{
     Modifiers = 0x0, //Size: 0x4, Flags: None
     BonusListIDs = 0x4, //Size: 0x104, Flags: None
     ArtifactPowers = 0x108, //Size: 0x4, Flags: None
     Gems = 0x10C, //Size: 0x4, Flags: None
     End = 0x110
    }
    public enum CGUnitDynamicData{
     PassiveSpells = 0x0, //Size: 0x201, Flags: None
     WorldEffects = 0x200, //Size: 0x201, Flags: None
     ChannelObjects = 0x400, //Size: 0x201, Flags: None
     End = 0x600
    }
    public enum CGConversationDynamicData{
     Actors = 0x0, //Size: 0x1, Flags: None
     Lines = 0x0, //Size: 0x100, Flags: None
     End = 0x100
    }
    public enum CGPlayerDynamicData{
     ResearchSites = 0x0, //Size: 0x2, Flags: None
     ResearchSiteProgress = 0x4, //Size: 0x2, Flags: None
     DailyQuestsCompleted = 0x8, //Size: 0x2, Flags: None
     AvailableQuestLineXQuestIDs = 0xC, //Size: 0x2, Flags: None
     Heirlooms = 0x10, //Size: 0x2, Flags: None
     HeirloomFlags = 0x14, //Size: 0x2, Flags: None
     Toys = 0x18, //Size: 0x2, Flags: None
     Transmog = 0x1C, //Size: 0x2, Flags: None
     ConditionalTransmog = 0x20, //Size: 0x2, Flags: None
     CharacterRestrictions = 0x24, //Size: 0x2, Flags: None
     SpellPctModByLabel = 0x28, //Size: 0x2, Flags: None
     SpellFlatModByLabel = 0x2C, //Size: 0x2, Flags: None
     ArenaCooldowns = 0x30, //Size: 0x1, Flags: None
     End = 0x30
    }
    Updated: Thanks dragonbane, that will teach me to have two idas open at the same time. Also added a bunch more dynamic ones
    Last edited by -Ryuk-; 03-29-2017 at 12:44 PM.
    |Leacher:11/2009|Donor:02/2010|Established Member:09/2010|Contributor:09/2010|Elite:08/2013|

  5. Thanks empathe (1 members gave Thanks to -Ryuk- for this useful post)
  6. #20
    dragonbane24's Avatar Contributor
    Reputation
    102
    Join Date
    Jan 2012
    Posts
    53
    Thanks G/R
    7/36
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ryuk,

    Something doesn't line up correctly on those. For instance, I believe they eliminated the "ChannelObject" from the UnitData and if I look at the "ProfessionSkillLine" in game, the offset is off by 0x10 from what you have. May need to re-check those.



    I'm also noticing some of the Constants have changed. For instance, this is no longer correct:

    Code:
     
           public enum UnitDynamicFlags
            {
                Invisible = 0x01,
                Lootable = 0x02,
                TrackUnit = 0x04,
                Tagged = 0x08,
                TaggedByMe = 0x10,
                SpecialInfo = 0x20,
                Dead = 0x40,
                ReferAFriendLinked = 0x80,
                IsTappedByAllThreatList = 0x100,
            }
    They changed the "Tagged" constant at the very least. Lootable is now 0x04. There is no dead flag, etc.
    Maybe they were moved to another field, but not within the Object Data.
    Looks like Tagged is now a "TaggedByOtherFaction" flag. It won't go active if it is tagged by you or of the same faction.
    No indication on your own tag. So now I currently have:

    Code:
     
           public enum UnitDynamicFlags
            {
                Lootable = 0x04,
                TaggedByOtherFaction = 0x10,
            }
    Last edited by dragonbane24; 03-29-2017 at 12:18 PM. Reason: Updating for my constant findings...

  7. Thanks 2briards, -Ryuk- (2 members gave Thanks to dragonbane24 for this useful post)
  8. #21
    -Ryuk-'s Avatar Elite User CoreCoins Purchaser Authenticator enabled
    Reputation
    529
    Join Date
    Nov 2009
    Posts
    1,028
    Thanks G/R
    38/51
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by ferib View Post
    Damn i can't wait until you share your offsets with us.

    Struggeling with IDA and can't get all of the offsets by myself
    120A94C s_curMgr
    |Leacher:11/2009|Donor:02/2010|Established Member:09/2010|Contributor:09/2010|Elite:08/2013|

  9. Thanks MrNoble (1 members gave Thanks to -Ryuk- for this useful post)
  10. #22
    dragonbane24's Avatar Contributor
    Reputation
    102
    Join Date
    Jan 2012
    Posts
    53
    Thanks G/R
    7/36
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    My x64 offsets

    Here is what I have thus far for those using these sorts of offsets:

    Code:
    #region
    using System;
    using System.Reflection;
    #endregion
    
    //Define this as false when this is no longer current.
    #if LEGION
    
     namespace LazyLib.Wow
    {
        [Obfuscation(Feature = "renaming", ApplyToMembers = true)]
        public class PublicPointers
        {
            #region Globals enum
            public enum Globals
            {
                PlayerName = 0x19B0500,  
            }
            #endregion
    
            #region InGame enum
            public enum InGame
            {
                InGame = 0x18C3380,         //0x01 when in game, 0x00 when out or reloading UI
                InstanceSize = 0x18C33A4,   
                HighResCounter = 0x1879178,
            }
            #endregion
        }
    
        internal class Pointers
        {
            #region Nested type: ObjectManager
            internal enum ObjectManager
            {
                //CurrentManager = Memory.Read<uint>(Memory.ReadRelative<uint>((uint) Pointers.ObjectManager.CurMgrPointer)
                //    + (uint) Pointers.ObjectManager.CurMgrOffset);
                //LocalGUID = Memory.Read<UInt64>(CurrentManager + (uint) Pointers.ObjectManager.LocalGUID);
                CurMgrPointer = 0x19AF890,
                CurMgrOffset = 0x1A0, 
                NextObject = 0x70, 
                FirstObject = 0x18,
                LocalGUID = 0x1D8,
    
                ObjectTypeOffset = 0x20,
                ObjectStorageOffset = 0x10,
            }
            #endregion
    
            #region Nested type: BMAH
            internal enum BMAH
            {
                ItemCount = 0x1976190, 
                ItemStart = ItemCount + 0x08,       
            }
            #endregion
    
            #region Nested type: Globals
            internal enum Globals
            {
                //Currently these two are the same.
                //This is used for error messages.
                RedMessage = 0x18C2730,
                BlueMessage = RedMessage,
    
                MouseOverGUID = 0x18C3450,
                CursorType = 0x1888A58,
                CursorType2 = CursorType + 0x04,
                ChatboxIsOpen = 0x1620FF4,
                LootWindow = 0x193D1CC,
                IsBobbing = 0x01C4,              
                ArchFacing = 0x470,                          
                ArchFacingOffset2 = 0x238,        
            }
            #endregion
    
            #region Nested type: ActionBar enum
            public enum ActionBar
            {
                ActionBarFirstSlot = 0x1933120,
                ActionBarBonus = ActionBarFirstSlot + 0x240,
            }
            #endregion
    
            #region Nested type: ClickToMove enum
            public enum ClickToMove
            {
                Name = 0x30,
                Offset = 0x60,
                Pointer = 0x18C2250, 
            }
            #endregion
    
            #region Nested type: AutoLoot enum
            public enum AutoLoot
            {
                Name = 0x30,
                Offset = 0x60,
                Pointer = 0x18C2290, 
            }
            #endregion
    
            #region Nested type: LUAError enum
            public enum LUAError
            {
                Name = 0x30,
                Offset = 0x60,
                Pointer = 0x18C2238, 
            }
            #endregion
    
            #region Nested type: CgUnitCGetCreatureRank enum
            public enum CgUnitCGetCreatureRank
            {
                Offset1 = 0x1718,                
                Offset2 = 0x38,                 
            }
            #endregion
    
            #region Nested type: CgUnitCGetCreatureType enum
            public enum CgUnitCGetCreatureType
            {
                Offset1 = 0x1718,                
                Offset2 = 0x30,                 
            }
            #endregion
    
            #region Nested type: CgWorldFrameGetActiveCamera enum
            public enum CgWorldFrameGetActiveCamera 
            {
                //return Memory.Read<uint>(Memory.ReadRelative<uint>((uint)Pointers.CgWorldFrameGetActiveCamera.CameraPointer) 
                // + (uint)Pointers.CgWorldFrameGetActiveCamera.CameraOffset);
                CameraX = 0x10,                      
                CameraY = 0x14,                  
                CameraZ = 0x18,                 
                CameraMatrix = 0x1C,
                CameraPointer = 0x1920E98,
                CameraOffset = 0x3328,                  
            }
            #endregion
    
            #region Nested type: AutoAttack
            internal enum AutoAttack 
            {
                //AutoAttackFlag = 0xEE8,       //Old Method
                //AutoAttackMask = 0xEEC,       //Old Method
                //Address seems to show the GUID of the Auto Attack target
                AutoAttackGUID = 0x1B80,         
            }   
            #endregion
    
            #region Nested type: CastingInfo
            internal enum CastingInfo
            {
                InstantCasting = 0x1C48,
                IsCasting = 0x1C6C,
                ChanneledCasting = 0x1CA0,       
            }
            #endregion
    
            #region Nested type: Chat
            internal enum Chat : uint  
            {
                //Thx for struct info Torpedoes
                ChatStart = 0x18C3D10,
                ChatPosition = 0x191D950,
                OffsetToNextMsg = 0x17F0,
                MsgSenderName	= 0x034,        
                MsgFullMessage = 0x0065,        
                MsgOnlyMessage = 0x0C1D,        
                MsgSenderGuid = 0x00,           // This is assumed valid.
                MsgChannelNum = 0x17D8,         // This will need to be hand-modified if the others change.
                MsgTimeStamp = 0x17E4,          // This will need to be hand modified if the other change.
    
                ChatQueueDepth = 0x40,
            }
            #endregion
    
            #region Nested type: Runes
            internal enum Runes
            {
                RunesAvailable = 0x193A2AC,
            }
            #endregion
    
            #region Nested type: Container
            internal enum Container
            {
                EquippedBagGUID = 0x1939EC0, 
            }
            #endregion
    
            #region Nested type: KeyBinding
            internal enum KeyBinding
            {
                NumKeyBindings = 0x193F1A8,
                First = 0xC8,                   
                Next = 0xB8,                    
                Key = 0x30,                     
                Command = 0x58,                 
            }
            #endregion
    
            #region Nested type: Macros
            internal enum MacroManager
            {
                MacroCount = 0x157AE30,
                MacroTable = MacroCount + 0x10,
                MacroIdOffset = 0x30,
                SpecificMacroIdOffset = 0x38,
                MacroNameOffset = 0x44,
                MacroListCount = 0x40
            }
            #endregion
    
            #region Nested type: Reaction
            internal enum Reaction 
            {
                //This is from Legion.
                //This has changed to a DB6 structure.
                FactionDBCStruct = 0x1675328,
                FactionWDBHeader = FactionDBCStruct + 0xC8,
                FactionDBData = FactionDBCStruct + 0xD0,
                FactionDBSparseInfo = FactionDBCStruct + 0xD8,
                FactionColumnExtraInfo = FactionDBCStruct + 0xE0,
    
                //@FactionDBStruct:
                DB5NamePointer = 0x00,
                //ADBNamePointer = 0x08,
                DBColumns = 0x08,
                DBRowSize = 0x0C,       //This is the size needed for the data, actual is rounded up to word/dword boundary.
                DBStringStorageSize = 0x14, //Maybe?
                DBColumnOffsetsPointer = 0x28,
                DBColumnMultiplesPointer = 0x30,
                DBColumnTypesPointer = 0x38,
                DBColumnFlagsPointer = 0x40,  //Maybe
                DBHashValue = 0x5C, //Not sure. Matches the 4 byte value at the DB5Data Offset 0x14
                //DBHashValue2 = 0x4C, //Not sure. Matches the 4 byte value at the DB5Data Offset 0x18
    
                //@FactionWDBHeader:
                DB5WDB5CodeOffset = 0x00,
                DB5RowCount = 0x04,
                DB5ColumnCount = 0x08,
                DB5RowSize = 0x0C,      //Actual row size in memory.
                DB5StringStorageSize = 0x10, 
                DB5HashValue = 0x14,
                DB5HashValue2 = 0x18,
                DB5MinID = 0x1C,
                DB5MaxID = 0x20,
                DB5Unkn3 = 0x24,  
                DB5Unkn1 = 0x28, //Not sure what this is. (0x160 for faction Db5)
                DB5Unkn2 = 0x2C, //Not sure what this is. (0x04 for faction Db5)
                DB5ColumnExtraInfo = 0x30,  //Pointed to by FactionColumnExtraInfo
    
                //@FactionDBSparseInfo:
                SparseHdrDBData = 0x08,
                SparseHdrMinID = 0x28,
                SparseHdrMaxID = 0x2C,
                SparseHdrRowCount = 0x30,   //Duplicated at offset 0x34?
                SparseHdrDB2Name = 0x48,   
                SparseHdrSparseInfo = 0x60,
    
                //The SparseHdrSparseInfo for factions consists of a series of pairs.
                // 1st (2 bytes) = ID for the row.
                // 2nd (2 bytes) = Actual row in the database.
                // And these are offsets from the "min offset".
                SparseHdrPairSize = 0x04,
    
                //Row is now:
                //<field type="uint" name="m_faction" />
                //<field type="uint" name="m_flags" />
                //<field type="uint" name="m_enemies_1" />
                //<field type="uint" name="m_enemies_2" />
                //<field type="uint" name="m_enemies_3" />
                //<field type="uint" name="m_enemies_4" />
                //<field type="uint" name="m_friend_1" />
                //<field type="uint" name="m_friend_2" />
                //<field type="uint" name="m_friend_3" />
                //<field type="uint" name="m_friend_4" />
                //<field type="uint" name="m_factionGroup" />
                //<field type="uint" name="m_friendGroup" />
                //<field type="uint" name="m_enemyGroup" />
                HostileOffset1 = 0x16,                          
                HostileOffset2 = 0x14,
                HostileOffset3 = 0x04,
                FriendlyOffset1 = 0x15,                         
                FriendlyOffset2 = 0x14,
                FriendlyOffset3 = 0x0C,
    
            }
            #endregion
    
            #region Nested type: MountDB
            internal enum MountDB
            {
                //This is from Legion.
                //This has changed to a DB6 structure... 
                MountDBCStruct = 0x1682248,
                MountDBHeader = MountDBCStruct + 0xC8,
                MountDBData = MountDBCStruct + 0xD0,
                MountDBSparseInfo = MountDBCStruct + 0xD8,
                MountColumnExtraInfo = MountDBCStruct + 0xE0,
    
                //@MountDBCStruct:
                DB5NamePointer = 0x00,
                //ADBNamePointer = 0x08,
                DBColumns = 0x08,
                DBRowSize = 0x0C,       //This is the size needed for the data, actual is rounded up to word/dword boundary.
                DBStringStorageSize = 0x14, //Maybe?
                DBColumnOffsetsPointer = 0x28,
                DBColumnMultiplesPointer = 0x30,
                DBColumnTypesPointer = 0x38,
                DBColumnFlagsPointer = 0x40,  //Maybe
                DBHashValue = 0x5C, //Not sure. Matches the 4 byte value at the DB5Data Offset 0x14
                //DBHashValue2 = 0x4C, //Not sure. Matches the 4 byte value at the DB5Data Offset 0x18
    
                //@MountDBHeader:
                DB5WDB5CodeOffset = 0x00,
                DB5RowCount = 0x04,
                DB5ColumnCount = 0x08,
                DB5RowSize = 0x0C,      //Actual row size in memory.
                DB5StringStorageSize = 0x10, 
                DB5HashValue = 0x14,
                DB5HashValue2 = 0x18,
                DB5MinID = 0x1C,
                DB5MaxID = 0x20,
                DB5Unkn3 = 0x24,
                DB5Unkn1 = 0x28, //Not sure what this is. (0x160 for faction Db5)
                DB5Unkn2 = 0x2C, //Not sure what this is. (0x04 for faction Db5)
                DB5ColumnExtraInfo = 0x30,  //Pointed to by FactionColumnExtraInfo
    
                //@FactionDBSparseInfo:
                SparseHdrDBData = 0x08,
                SparseHdrMemoryRowSize = 0x20,  //Actual row size in memory.
                SparseHdrMinID = 0x28,
                SparseHdrMaxID = 0x2C,
                SparseHdrRowCount = 0x30,   //Duplicated at offset 0x34?
                SparseHdrDB2Name = 0x48,  
                SparseHdrSparseInfo = 0x60,
    
                //The SparseHdrSparseInfo for mounts consists of a series of IDs.
                // Each ID is 2 bytes and corresponds to the row to read for the iterated ID.
                // If the entry is 0xFFFE, then no row exists, skip the ID.
                // And these are all offsets from the "min offset".
                SparseHdrPairSize = 0x04,
    
                //Row is now:
                //ID in sparse data
                //<field type="uint" name="m_spellID" />
                //<field type="uint" name="m_displayID" />
                //<field type="stringoffset" name="m_Name" />
                //<field type="stringoffset" name="m_Description" />
                //<field type="stringoffset" name="m_WhereToGet" />
                //<field type="uint" name="m_unk1" />
                //<field type="ushort" name="m_flags1" />
                //<field type="ushort" name="m_unk2" />
                //<field type="ushort" name="m_unk3" />
                //<field type="byte" name="m_unk4" />
                //<field type="uint" name="m_unk5" />
                spellIDOffset = 0x00,
                displayIDOffset = 0x03,
                nameStringOffset = 0x04,
                flags1Offset = 0x14,
            }
            #endregion
    
            #region Nested type: SpellCooldown
            internal enum SpellCooldown : uint 
            {
                Cooldown = 0x16A1678,
                Recharge = Cooldown + 0x30,
    
                Offset_NextSpell = 0x00,
                Offset_SpellID = 0x10,
                Offset_StartTime1 = 0x1C,
                Offset_CD1 = 0x20,
                Offset_StartTime2 = 0x28,
                Offset_CD2 = 0x2C,
                Offset_StartTime3 = 0x34,
                Offset_CD3 = 0x38,
    
                Offset_RechargeStacks = 0x14,
                Offset_RechargeTimeDone = 0x18,
            }
            #endregion
    
            #region Nested type: Swimming
            internal enum Swimming  
            {
                Pointer = 0x210,    
                Offset = 0x58,      
                Mask = 0x100000,    
            }
            #endregion
    
            #region Nested type: IsFlying enum
            public enum IsFlying
            {
                Pointer = 0x210,    
                Offset = 0x58,      
                Mask = 0x1000000    
            }
            #endregion
    
            #region Nested type: UnitSpeed
            internal enum UnitSpeed
            {
                Pointer1 = 0x210,   
                Pointer2 = 0xA4,    
            }
            #endregion
    
            #region Nested type: UnitAuras
            internal enum UnitAuras : uint 
            {
                //AuraCount1 = 0x25B8,
                AuraCount1 = 0x26C0,
                AuraCount2 = 0x1DC0,        
                AuraTable1 = 0x1DC0,        
                //AuraTable2 = 0x2650,
                AuraTable2 = 0x1DC8,
    
                AuraSize = 0x90,
                AuraTableOffset = 0x00,
                OwnerGUID = 0x50,
                AuraSpellId = 0x60,
                AuraFlags = 0x68,
                AuraStack = 0x69,
                AuraLevel = 0x6A,
                TimeLeft = 0x70,      
                
                //For GCD Modifications:
                CurrentHaste = 0xAA10,
            }
            #endregion
    
            #region Nested type: UnitName
            internal enum UnitName : uint
            {
                ObjectName1 = 0x478,                       
                ObjectName2 = 0xD8,                 
                PlayerNameGUIDOffset = 0x020,       
                PlayerNameStringOffset = 0x031,
                PlayerNameCachePointer = 0x166A918,
                UnitName1 = 0x1718,             
                UnitName2 = 0xA0,                   
            }
            #endregion
    
            #region Nested type: WowObject
            internal enum WowObject 
            {
                X = 0x1560,                                 
                Y = X + 0x4,                                
                Z = X + 0x8,                                
                RotationOffset = X + 0x10,
                GameObjectX = 0x0228,                       
                GameObjectY = GameObjectX + 0x4,            
                GameObjectZ = GameObjectX + 0x8,            
                GameObjectRotation = GameObjectX + 0x10,    
            }
            #endregion
    
            #region Nested type: Zone
            internal enum Zone : uint
            {
                ZoneText = 0x18C2658,
                ZoneID = 0x18C3330,
            }
            #endregion
    
            #region Nested type: UiFrame
            internal enum UiFrame 
            {
                //var @base = Memory.ReadRelative<ulong>((uint)Pointers.UiFrame.FrameBase);
                //var worldFrame = Memory.Read<ulong>(Memory.Read<ulong>(@base + (uint)Pointers.UiFrame.FirstFrame));
    
                //These are float values.
                ScrWidth = 0x13514CC,
                ScrHeight = ScrWidth + 0x04, 
    
                //These is the offset to the UI struct.
                FrameBase = 0x160C9B0,
    
                //This is the one the mouse is over.
                CurrentFrameOffset = 0x178,
    
                //These seem okay for legion:
                //FirstFrame = 0xCB8, //0xC78,    
                //NextFrame = 0xCA8, //0xC68,     
                FirstFrame = 0xCB0, //0xC78,    
                NextFrame = 0xCA0, //0xC68,     
    
                Name = 0x20,
                FrameBottom = 0x90,
                FrameLeft = 0x94,
                FrameTop = 0x98,
                FrameRight = 0x9C,
                EffectiveScale = 0xC0,
                ParentFrame = 0xD0,
                IconNumber = 0xF0,
    
                LabelText = 0x180,
                RegionsNext = 0x198, //0x1A8,
                RegionsFirst = 0x1A8, //0x1B8,
                EditBoxText = 0x238, //0x268,            
    
                //These still need work:
                VisibleOffset = 0xC8,         
                VisibleMask = 0x00080000,           
    
                IsDisabledOffset = 0xF4,     // ??
                IsDisabledMask = 0x08,     // ??
                
                ButtonEnabledPointer = 0x210, //0x220,   
                ButtonEnabledMask = 0xF,        
                ButtonChecked = 0x268, //0x280,          
            }
            #endregion
    
        }
    }
    #endif

  11. Thanks lolp1, Torpedoes, empathe, WiNiFiX (4 members gave Thanks to dragonbane24 for this useful post)
  12. #23
    aeo's Avatar Contributor
    Reputation
    127
    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 dragonbane24 View Post

    Code:
     
           public enum UnitDynamicFlags
            {
                Invisible = 0x01,
                Lootable = 0x02,
                TrackUnit = 0x04,
                Tagged = 0x08,
                TaggedByMe = 0x10,
                SpecialInfo = 0x20,
                Dead = 0x40,
                ReferAFriendLinked = 0x80,
                IsTappedByAllThreatList = 0x100,
            }
    I did a quick check in IDA and it looks like they still check the flags for IsDead lua function ( in red)

    Code:
     if ( *(_QWORD *)(*(_QWORD *)(v5 + 0x200) + 176i64) <= 0i64
            || (*(_DWORD *)(*(_QWORD *)(v5 + 0x10) + 40i64) >> 6) & 1 && !sub_1404F46F0(v5) )

  13. #24
    dragonbane24's Avatar Contributor
    Reputation
    102
    Join Date
    Jan 2012
    Posts
    53
    Thanks G/R
    7/36
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by aeo View Post
    I did a quick check in IDA and it looks like they still check the flags for IsDead lua function ( in red)

    Code:
     if ( *(_QWORD *)(*(_QWORD *)(v5 + 0x200) + 176i64) <= 0i64
            || (*(_DWORD *)(*(_QWORD *)(v5 + 0x10) + 40i64) >> 6) & 1 && !sub_1404F46F0(v5) )
    Thanks for checking that... I'm just not seeing the flags go active on dead / tagged mobs. It may be they broke their own code.
    I'll check again later tonight. For now I've tweaked to not rely on the "Tagged" functon and it's working pretty well. Worst case... I might help the opposite faction kill their mobs.

  14. #25
    -Ryuk-'s Avatar Elite User CoreCoins Purchaser Authenticator enabled
    Reputation
    529
    Join Date
    Nov 2009
    Posts
    1,028
    Thanks G/R
    38/51
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by dragonbane24 View Post
    Thanks for checking that... I'm just not seeing the flags go active on dead / tagged mobs. It may be they broke their own code.
    I'll check again later tonight. For now I've tweaked to not rely on the "Tagged" functon and it's working pretty well. Worst case... I might help the opposite faction kill their mobs.
    I could be wrong, im very tired, but isnt 40i64 really 0x28? in which case Dead = 0x40 is wrong.
    |Leacher:11/2009|Donor:02/2010|Established Member:09/2010|Contributor:09/2010|Elite:08/2013|

  15. Thanks dragonbane24 (1 members gave Thanks to -Ryuk- for this useful post)
  16. #26
    air999's Avatar Contributor
    Reputation
    131
    Join Date
    Nov 2014
    Posts
    102
    Thanks G/R
    9/62
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by -Ryuk- View Post
    I could be wrong, im very tired, but isnt 40i64 really 0x28? in which case Dead = 0x40 is wrong.
    (*(_DWORD *)(*(_QWORD *)(v5 + 16) + 40i64) >> 6) & 1

    40i=0x28 is offset to DynamicFlags in CGObjectData,
    Dead = 0x40=64i is flag in enum UnitDynamicFlags (7th bit set in DynamicFlags)
    Code:
        public enum UnitDynamicFlags
        {
            None = 0,
            InDifferentPhase = 1, // Script_UnitInPhase
            Lootable = 4, //Script_CanLootUnit
            TrackUnit = ?,
            TapDenied = 16, // Script_UnitIsTapDenied
            Dead = 64, // Script_UnitIsDead
            ReferAFriendLinked = 128, // Script_IsReferAFriendLinked
        }
    Last edited by air999; 03-29-2017 at 04:56 PM. Reason: correction

  17. Thanks dragonbane24 (1 members gave Thanks to air999 for this useful post)
  18. #27
    dragonbane24's Avatar Contributor
    Reputation
    102
    Join Date
    Jan 2012
    Posts
    53
    Thanks G/R
    7/36
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by air999 View Post
    (*(_DWORD *)(*(_QWORD *)(v5 + 16) + 40i64) >> 6) & 1

    40i=0x28 is offset to DynamicFlags in CGObjectData,
    Dead = 0x20=32i is flag in enum UnitDynamicFlags (6th bit set in DynamicFlags)
    Code:
        public enum UnitDynamicFlags
        {
            None = 0,
            IsInDifferentPhase = 1,
            Lootable = 4,
            TrackUnit = 8,
            TapDenied = 16,
            Dead = 32,
            ReferAFriendLinked = 128,
        }

    That's the correct location, the DynamicFlags in the ObjectData.
    The Lootable and the TapDenied makes sense. I'll use those going forward. I didn't see the "Dead" flag triggered, but I may have missed it.

    ANNNNNNDDD... they've updated to version 23836.

  19. #28
    -Ryuk-'s Avatar Elite User CoreCoins Purchaser Authenticator enabled
    Reputation
    529
    Join Date
    Nov 2009
    Posts
    1,028
    Thanks G/R
    38/51
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by dragonbane24 View Post
    That's the correct location, the DynamicFlags in the ObjectData.
    The Lootable and the TapDenied makes sense. I'll use those going forward. I didn't see the "Dead" flag triggered, but I may have missed it.

    ANNNNNNDDD... they've updated to version 23836.
    Urgh, not this again
    |Leacher:11/2009|Donor:02/2010|Established Member:09/2010|Contributor:09/2010|Elite:08/2013|

  20. #29
    Torpedoes's Avatar ★ Elder ★ Doomsayer
    Authenticator enabled
    Reputation
    1147
    Join Date
    Sep 2013
    Posts
    956
    Thanks G/R
    148/415
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Get ready for some rapid fire releases from Blizzard, in the meantime, as promised, ([WoW] [7.2.0.23846])here are my offsets for 7.2.0.23846

  21. Thanks MrNoble (1 members gave Thanks to Torpedoes for this useful post)
  22. #30
    MaiN's Avatar Elite User
    Reputation
    335
    Join Date
    Sep 2006
    Posts
    1,047
    Thanks G/R
    0/10
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by dragonbane24 View Post
    That's the correct location, the DynamicFlags in the ObjectData.
    The Lootable and the TapDenied makes sense. I'll use those going forward. I didn't see the "Dead" flag triggered, but I may have missed it.

    ANNNNNNDDD... they've updated to version 23836.
    This flag is only used for creatures that have "permanent dead" status, eg. some stags that are always dead in forest areas (an example is Stormheim -- it has some of these).
    [16:15:41] Cypher: caus the CPU is a dick
    [16:16:07] kynox: CPU is mad
    [16:16:15] Cypher: CPU is all like
    [16:16:16] Cypher: whatever, i do what i want

  23. Thanks dragonbane24 (1 members gave Thanks to MaiN for this useful post)
Page 2 of 3 FirstFirst 123 LastLast

Similar Threads

  1. Nude WoW Pics!
    By janzi9 in forum Community Chat
    Replies: 34
    Last Post: 01-12-2007, 04:41 PM
  2. Get your first mount in WoW easily
    By Matt in forum World of Warcraft Guides
    Replies: 3
    Last Post: 11-03-2006, 09:46 PM
  3. World of Warcraft WoW!Bot (GetALifeBot) 0.61 for WoW 1.9.4 + FishBot
    By Matt in forum World of Warcraft Bots and Programs
    Replies: 43
    Last Post: 04-18-2006, 04:55 AM
  4. AutoIt Macro for WoW AFK Bot
    By Matt in forum World of Warcraft Bots and Programs
    Replies: 8
    Last Post: 04-06-2006, 06:01 AM
  5. Free WoW Glider 0.5.3 Loader
    By Matt in forum World of Warcraft Bots and Programs
    Replies: 5
    Last Post: 03-12-2006, 01:00 PM
All times are GMT -5. The time now is 08:27 PM. 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