DWORD PlayerBasePointer = 0x00A6D420;//Ready
DWORD PlayerBaseOffset1 = 0x48;//Ready
DWORD PlayerBaseOffset2 = 0x24;//Ready
nameStorePtr = 0xBB6C50 + 0x8
nameMaskOffset = 0x24;
nameBaseOffset = 0x1C;
nameStringOffset = 0x21;
Anyone found the aura tables yet? I'm struggling to find them.
PHP Code:
public struct AuraStruct
{
public int Unk0; //0 - 3 <--------------------------------------Type guessed
public int NbVariableEffects; //4 - 7
public uint VariableEffectsPtr; //8 - 11
public int Unk12; //12 - 15 <--------------------------------------Type guessed
public ulong CreatorGuid; //16 - 23
public int AuraId; //24 - 27
public byte Unk28; //28 <--------------------------------------Type guessed
public byte StackCount; //29
public ushort Level; //30 - 31
public uint Duration; //32 - 35
public uint EndTime; //36 - 39
//Don't know what they're used for
public float VariableEffect1 { get { return WowMem.Read<float>(WowMem.Read<uint>(VariableEffectsPtr)); } }
public float VariableEffect2 { get { return WowMem.Read<float>(WowMem.Read<uint>(VariableEffectsPtr) + 4); } }
public float VariableEffect3 { get { return WowMem.Read<float>(WowMem.Read<uint>(VariableEffectsPtr) + 8); } }
}
PHP Code:
int v14 = WowMem.Read<int>(Unit.BaseAddress + MemEnums.BuffOffsets.AURA_COUNT_1);
int v15 = v14;
if (v14 == -1)
v15 = WowMem.Read<int>(Unit.BaseAddress + MemEnums.BuffOffsets.AURA_COUNT_2);
for (uint i = 0; i < v15; i++)
{
uint v17;
if (v14 == -1)
v17 = WowMem.Read<uint>(Unit.BaseAddress + (uint)MemEnums.BuffOffsets.AURA_TABLE1) + (uint)(i * (uint)MemEnums.BuffOffsets.AURA_SIZE);
else
v17 = Unit.BaseAddress + (uint)MemEnums.BuffOffsets.AURA_TABLE2 + (uint)(i * (uint)MemEnums.BuffOffsets.AURA_SIZE);
if (v17 == 0) continue;
var spellId = WowMem.Read<uint>(v17 + (uint)MemEnums.BuffOffsets.AURA_SPELL_ID);
if (spellId <= 0) continue;
if (Auras.ContainsKey(v17))
Auras[v17].Update(v17);
else
Auras.Add(v17, new WowAura(v17));
}
Code:public enum BuffOffsets : uint { AURA_COUNT_1 = 0x1058, AURA_COUNT_2 = 0xD5C, AURA_TABLE1 = 0xD60, AURA_TABLE2 = 0xD58, AURA_SIZE = 0x30, AURA_SPELL_ID = 0x18, }
Last edited by Frosttall; 09-03-2012 at 04:39 PM.
thx mate very usefull
Struggling with finding current spec. Anyone had any luck with it ?
For specialization enum see Constant data thread, i posted it there.Code:public Enums.Specialization CurrentSpecialization { get { uint specializationGroup = Memory.BlackMagic.Read<uint>(Memory.WowBaseAddress + 0xCC82F4) + 1; uint specializationIndex = Memory.BlackMagic.Read<uint>(Memory.WowBaseAddress + 0xCC8310 + (0x8 + (specializationGroup* 0x24))); return (Enums.Specialization) specializationIndex; } }
Thanks guys.
Here are few updated DBC structs :
Map.dbc
SpellCooldowns.dbcPHP Code:
[StructLayout(LayoutKind.Sequential)]
struct Map
{
public int id;
public uint iname;
public int type;
public int flags;
public int unk1;
public int unk2;
public uint name;
public int linkedZone;
public uint hordeIntro;
public uint allianceIntro;
public int multimap_id;
public float BattlefieldMapIconScale;
public int ghost_entrance_map;
public float ghost_entrance_x;
public float ghost_entrance_y;
public int timeOfDayOverride;
public int addon;
public int unkTime;
public int maxPlayers;
};
SpellEffect.dbcPHP Code:
[StructLayout(LayoutKind.Sequential)]
internal struct SpellCooldowns //5.0.4
{
public int id;
public int unk1;
public int unk2;
public uint CoolDown;
public uint m_recoveryTime;
public uint GlobalCoolDown;
} ;
PHP Code:
[StructLayout(LayoutKind.Sequential)]
public struct SpellEffectRec //5.0.4
{
public uint Id;
public uint unk1;
public uint EffectType;
public float EffectMultipleValue;
public uint EffectApplyAuraName;
public uint EffectAmplitude;
public int EffectBasePoints;
public float unk_320_4;
public float DmgMultiplier;
public uint EffectChainTarget;
public int EffectDieSides;
public uint EffectItemType;
public uint EffectMechanic;
public int EffectMiscValue;
public int EffectMiscValueB;
public float EffectPointsPerComboPoint;
public uint EffectRadiusIndex;
public uint EffectRadiusMaxIndex;
public float EffectRealPointsPerLevel;
public uint EffectSpellClassMask1;
public uint EffectSpellClassMask2;
public uint EffectSpellClassMask3;
public float unk2;
public uint EffectTriggerSpell;
public float unk3; //looks like an angle
public uint EffectImplicitTargetA;
public uint EffectImplicitTargetB;
public uint EffectSpellId;
public uint EffectIndex;
public uint unk4;
}
SpellLevels.dbc
PHP Code:
[StructLayout(LayoutKind.Sequential)]
internal struct SpellLevelsRec //5.0.4
{
public uint Id;
public int SpellId;
public uint flag; //0 2 4 5
public uint baseLevel;
public uint maxLevel;
public uint spellLevel;
} ;
I'm stuck on Spell.dbcPHP Code:
struct SpellMiscRec
{
int Id;
int SpellId;
int int8;
int intC;
int int10;
int int14;
int int18;
int int1C_Flags;
int int20;
int int24;
int int28;
int int2C;
int int30;
int int34;
int int38;
int SpellCastTimesId;
int SpellDurationId;
int SpellRangeId;
float float48_TimeOrSpeedRelated;
int SpellVisualId;
int SpellVisualId_OverrideMaybe;
int SpellIconId;
int int58;
int int5C_Flags;
};
here is what I've found so far
Fill free to correct mePHP Code:
[StructLayout(LayoutKind.Sequential)]
internal struct SpellRec //not correct yet
{
public int m_Id;
public uint s_spellName; // Localized Name
public uint s_type;
public uint s_description;
public uint s_effectDescription;
public uint m_SpellRuneCostId;
public uint m_unk1;
public uint m_unk2;
public float m_unk3;
public uint m_SpellScalingId;
public uint m_SpellAuraOptionsId;
public uint m_SpellAuraRestrictionsId;
public int m_SpellCastingRequirementsId;
public int m_SpellCategoriesId;
public int m_SpellClassOptionsId;
public int m_SpellCooldownsID; //confirmed
public int m_SpellEquippedItemsId;
public uint m_SpellInterruptsId;
public uint m_SpellLevelId; //confirmed
public int m_SpellReagentsId;
public int m_SpellShapeshiftId;
public uint s_name2; // don't realy know but it's a text
public uint s_nameSubtext;
public uint s_unk; // Description
public uint s_auraDescription; //text
} ;
Appoc : this looks a bit different from what you've found.
Last edited by guizmows; 09-01-2012 at 05:44 PM.
maybe some else need it
UNIT_FIELD_BYTES_0 = 0x7 + 0x12
UNIT_FIELD_BYTES_1 = 0x7 + 0x3E
UNIT_FIELD_BYTES_2 = 0x7 + 0x72
Seems like that nobody had CGGameObject_C::IsSolidSelectable in his list. It's at 5A3AF0 (not rebased)
IsSolid: WowGameObject.BaseAddress + 0x21C
Last edited by Frosttall; 09-02-2012 at 05:11 AM.
Some stuff:
Code:public enum Arena { Arena1GUID = 0xCC8460, Arena2GUID = Arena1GUID + 0x8, Arena3GUID = Arena2GUID + 0x8, Arena4GUID = Arena3GUID + 0x8, Arena5GUID = Arena4GUID + 0x8 } public enum Macros { nbGeneralMacros = 0xCDBC00, nbSpecificMacros = nbGeneralMacros + 0x4 Base = 0xA8CE2C, Next = 0x10, Name = 0x20, Icon = 0x60, Body = 0x160, IsCharSpecific = 0x1000000 } public enum Keybindings { Base = 0xCC8290, First = 0xC8, Next = 0xC0, KeyString = 0x14, ActionString = 0x28, } public enum UIFrame { CurrentFrame_Ptr = 0xAD712C, CurrentFrame_Offset = 0x88, FirstFrame = 0x0CE4, NextFrame = 0x0CDC, RegionsFirst = 0x170 RegionsNext = 0x168, UnkDivWidth = 0xA15C04, UnkDivHeight = UnkDivWidth + 0x4, FrameBottom = 0x68, FrameLeft = FrameBottom + 0x4, FrameTop = FrameBottom + 0x8, FrameRight = FrameBottom + 0xC, ParentPtr = 0x98, EffectiveScale = 0x80, Name = 0x1C, LabelText = 0xF8, EditBoxText = 0x208, Visible = 0x64, Visible_Mask = 0x1A, Enabled = 0x200, EnabledMask = 0xF, AttachmentHasItem = 0x224, ButtonChecked = 0x238, CooldownStart = 0x1F0, CooldownTime = 0x1F4 }