/ cheatengine / cgunit.lua
cgunit.lua
  1  -- #include "cgobject.lua"
  2  
  3  local Vector2 = Struct("Vector2")
  4      :field("x", "float")
  5      :field("y", "float")
  6  
  7  local Vector3 = Struct("Vector3")
  8      :field("x", "float")
  9      :field("y", "float")
 10      :field("z", "float")
 11  
 12  local ObjectFields = Struct("ObjectFields")
 13      :hex("GUID", "uint64")
 14      :field("type", "uint32")
 15      :field("unk", "uint32")
 16      :field("scale", "float")
 17      :field("pad", "uint32")
 18  
 19  local UnitFields = Struct("UnitFields")
 20      :hex("CharmGUID", "uint64") -- 0x1970
 21      :hex("SummonGUID", "uint64") -- 0x1978
 22      :hex("CritterGUID", "uint64") -- 0x1980
 23      :hex("CharmedByGUID", "uint64") -- 0x1988
 24      :hex("SummonedByGUID", "uint64") -- 0x1990
 25      :hex("CreatedByGUID", "uint64") -- 0x1998
 26      :hex("TargetGUID", "uint64") -- 0x19A0
 27      :hex("ChannelSpellTargetGUID", "uint64") -- 0x19A8
 28      :field("ChanellSpellId", "int32") -- 0x19B0
 29      :field("Race", "uint8") -- 0x19B4
 30      :field("Class", "uint8") -- 0x19B5
 31      :field("Gender", "uint8") -- 0x19B6
 32      :field("DisplayPower", "uint8") -- 0x19B7
 33      :field("Health", "int32") -- 0x19B8
 34      :field("Mana", "int32") -- 0x19BC
 35      :field("Rage", "int32") -- 0x19C0
 36      :field("Focus", "int32") -- 0x19C4
 37      :field("Energy", "int32") -- 0x19C8
 38      :field("UnkResource1", "int32") -- 0x19CC
 39      :field("UnkResource2", "int32") -- 0x19D0
 40      :field("RunePower", "int32") -- 0x19D4
 41      :field("MaxHealth", "int32") -- 0x19D8
 42      :field("MaxMana", "int32") -- 0x19DC
 43      :field("MaxRage", "int32") -- 0x19E0
 44      :field("MaxFocus", "int32") -- 0x19E4
 45      :field("MaxEnergy", "int32") -- 0x19E8
 46      :field("UnkMaxResource1", "int32") -- 0x19EC
 47      :field("UnkMaxResource2", "int32") -- 0x19F0
 48      :field("MaxRunePower", "int32") -- 0x19F4
 49      :field("ManaRegenFlatMod", "float") -- 0x19F8
 50      :field("RageRegenFlatMod", "float") -- 0x19FC
 51      :field("FocusRegenFlatMod", "float") -- 0x1A00
 52      :field("EnergyFlatMod", "float") -- 0x1A04
 53      :field("UnkRegenFlatMod", "float") -- 0x1A08
 54      :field("UnkRegenFlatMod", "float") -- 0x1A0C
 55      :field("RunePowerRegenFlatMod", "float") -- 0x1A10
 56      :field("ManaRegenInterruptedFlatMod", "float") -- 0x1A14
 57      :field("RageRegenInterruptedFlatMod", "float") -- 0x1A18
 58      :field("FocusRegenInterruptedFlatMod", "float") -- 0x1A1C
 59      :field("EnergyRegenInterruptedFlatMod", "float") -- 0x1A20
 60      :field("UnkRegenInterruptedFlatMod", "float") -- 0x1A24
 61      :field("UnkRegenInterruptedFlatMod", "float") -- 0x1A28
 62      :field("RunePowerRegenInterruptedFlatMod", "float") -- 0x1A2C
 63      :field("Level", "int32") -- 0x1A30
 64      :field("FieldFactiontemplate", "int32") -- 0x1A34
 65      :field("VirtualItemSlotIdMainHand", "int32") -- 0x1A38
 66      :field("VirtualItemSlotIdOffHand", "int32") -- 0x1A3C
 67      :field("VirtualItemSlotIdRanged", "int32") -- 0x1A40
 68      :field("Flag1", "int32") -- 0x1A44
 69      :field("Flag2", "int32") -- 0x1A48
 70      :field("AuraState", "int32") -- 0x1A4C
 71      :field("BaseAttackTimeMainHand", "int32") -- 0x1A50
 72      :field("BaseAttackTimeOffHand", "int32") -- 0x1A54
 73      :field("RangedAttackTime", "int32") -- 0x1A58
 74      :field("BoundingRadius", "float") -- 0x1A5C
 75      :field("CombatReach", "float") -- 0x1A60
 76      :field("DisplayId", "int32") -- 0x1A64
 77      :field("NativedisplayId", "int32") -- 0x1A68
 78      :field("MountdisplayId", "int32") -- 0x1A6C
 79      :field("MinMainHandDamage", "float") -- 0x1A70
 80      :field("MaxMainHandDamage", "float") -- 0x1A74
 81      :field("MinOffHandDamage", "int32") -- 0x1A78
 82      :field("MaxOffHandDamage", "int32") -- 0x1A7C
 83      :field("SitState", "int32") -- 0x1A80
 84      :field("PetNumber", "int32") -- 0x1A84
 85      :field("PetNameTamestamp", "int32") -- 0x1A88
 86      :field("PetXP", "int32") -- 0x1A8C
 87      :field("PetNextLevelXP", "int32") -- 0x1A90
 88      :field("DynFlags", "int32") -- 0x1A94
 89      :field("ModCastSpeed", "float") -- 0x1A98
 90      :field("CreatedBySpell", "int32") -- 0x1A9C
 91      :field("NPCFlags", "int32") -- 0x1AA0
 92      :field("NPCEmoteState", "int32") -- 0x1AA4
 93      :field("StatStrengthBase", "int32") -- 0x1AA8
 94      :field("StatAgilityBase", "int32") -- 0x1AAC
 95      :field("StatStaminaBase", "int32") -- 0x1AB0
 96      :field("StatIntellectBase", "int32") -- 0x1AB4
 97      :field("StatSpiritBase", "int32") -- 0x1AB8
 98      :field("StatStrengthPositive", "int32") -- 0x1ABC
 99      :field("StatAgilityPositive", "int32") -- 0x1AC0
100      :field("StatStaminaPositive", "int32") -- 0x1AC4
101      :field("StatIntellectPositive", "int32") -- 0x1AC8
102      :field("StatSpiritPositive", "int32") -- 0x1ACC
103      :field("StatStrengthNegative", "int32") -- 0x1AD0
104      :field("StatAgilityNegative", "int32") -- 0x1AD4
105      :field("StatStaminaNegative", "int32") -- 0x1AD8
106      :field("StatIntellectNegative", "int32") -- 0x1ADC
107      :field("StatSpiritNegative", "int32") -- 0x1AE0
108      :field("StatArmor", "int32") -- 0x1AE4
109      :field("ResistHoly", "int32") -- 0x1AE8
110      :field("ResistFire", "int32") -- 0x1AEC
111      :field("ResistNature", "int32") -- 0x1AF0
112      :field("ResistFrost", "int32") -- 0x1AF4
113      :field("ResistShadow", "int32") -- 0x1AF8
114      :field("ResistArcane", "int32") -- 0x1AFC
115      :field("UnkResist", "int32") -- 0x1B00
116      :field("ResistPositiveHoly", "int32") -- 0x1B04
117      :field("ResistPositiveFire", "int32") -- 0x1B08
118      :field("ResistPovisitveNature", "int32") -- 0x1B0C
119      :field("ResistPositiveFrost", "int32") -- 0x1B10
120      :field("ResistPositiveShadow", "int32") -- 0x1B14
121      :field("ResistPositiveArcane", "int32") -- 0x1B18
122      :field("UnkResist", "int32") -- 0x1B1C
123      :field("ResistNegativeHoly", "int32") -- 0x1B20
124      :field("ResistNegativeFire", "int32") -- 0x1B24
125      :field("ResistNegativeNature", "int32") -- 0x1B28
126      :field("ResistNegativeFrost", "int32") -- 0x1B2C
127      :field("ResistNegativeShadow", "int32") -- 0x1B30
128      :field("ResistNegativeArcane", "int32") -- 0x1B34
129      :field("UnkBaseMana", "int32") -- 0x1B38
130      :field("BaseHealth", "int32") -- 0x1B3C
131      :field("WeaponStandType", "int32") -- 0x1B40
132      :field("AttackPowerMelee", "int32") -- 0x1B44
133      :field("AttackPowerMeleeMod", "int32") -- 0x1B48
134      :field("AttackPowerMeleeMulti", "float") -- 0x1B4C
135      :field("AttackPowerRange", "int32") -- 0x1B50
136      :field("AttackPowerRangedMod", "int32") -- 0x1B54
137      :field("AttackPowerRangedMulti", "float") -- 0x1B58
138      :field("MinRangedDamage", "float") -- 0x1B5C
139      :field("MaxRangedDamage", "float") -- 0x1B60
140      :array("PowerCostModifier", "int32", 7) -- 0x1B64
141      :array("PowerCostMultiplier", "float", 7) -- 0x1B80
142      :field("MaxHealthMod", "int32") -- 0x1B9C
143      :field("HoverHeight", "float") -- 0x1BA0
144      :field("Pad", "int32") -- 0x1BA4
145  
146  local UnitAura = Struct("Aura")
147      :hex("casterGUID", "uint64") -- 0x0C50
148      :field("buffId", "int32") -- 0x0C58
149      :field("unk", "int32") -- 0x0C5C
150      :field("maxDuration", "int32") -- 0x0C60
151      :hex("buffPtr", "int32") -- 0x0C64
152  
153  local UnitBuff = Struct("Buff")
154      :field("index", "int32")
155      :field("buffId", "int32")
156  
157  local CMovementData = Struct("CMovementData")
158      :field("unk_0788", "int32") -- 0x0788
159      :field("unk_078C", "int32") -- 0x078C
160      :hex("TransportGUID", "uint64") -- 0x0790
161      :embed("Position", Vector3)
162      :hex("unkFlag", "int32") -- 0x07A4
163      :field("Facing", "float") -- 0x07A8
164      :field("Pitch", "float") -- 0x07AC
165      :hex("dataPtr", "int32") -- 0x07B0
166      :hex("unkFlag2", "int32") -- 0x07B4
167      :field("unk_07B8", "int32") -- 0x07B8
168      :field("unk_07BC", "int32") -- 0x07BC
169      :embed("GroundNormal", Vector3)
170      :hex("moveFlag1", "int32") -- 0x07CC
171      :hex("moveFlag2", "int32") -- 0x07D0
172      :embed("Anchor", Vector3)
173      :field("AnchorFacing", "float") -- 0x07E0
174      :field("AnchorPitch", "float") -- 0x07E4
175      :field("unk_07E8", "int32") -- 0x07E8
176      :embed("Direction", Vector3)
177      :embed("Direction2d", Vector2)
178      :field("cosAnchorPitch", "float") -- 0x0800
179      :field("sinAnchorPitch", "float") -- 0x0804
180      :field("FallTime", "int32") -- 0x0808
181      :field("StartFallHeight", "float") -- 0x080C
182      :field("unkFloat", "float") -- 0x0810
183      :field("MoveSpeed", "float") -- 0x0814
184      :field("WalkSpeed", "float") -- 0x0818
185      :field("RunSpeed", "float") -- 0x081C
186      :field("BackSpeed", "float") -- 0x0820
187      :field("SwimSpeed", "float") -- 0x0824
188      :field("BackSwimSpeed", "float") -- 0x0828
189      :field("FlyMountSpeed", "float") -- 0x082C
190      :field("FlyMountBackSpeed", "float") -- 0x0830
191      :field("TurnSpeed", "float") -- 0x0834
192      :field("FlyMountUnkUpDownRotation1", "float") -- 0x0838
193      :field("FlyMountUnkUpDownRotation2", "float") -- 0x083C
194      :field("FallSpeed", "float") -- 0x0840
195      :hex("CGMoveSplinePtr", "int32") -- 0x0844
196      :field("PerfCount", "int32") -- 0x0848
197      :hex("unkFlag3", "int32") -- 0x084C
198      :field("CollisonBoxHalfWidth", "float") -- 0x0850
199      :field("CollisionBoxHeight", "float") -- 0x0854
200      :field("ObjectScale", "float") -- 0x0858
201      :field("unk_085C", "int32") -- 0x085C
202      :field("unk_0860", "int32") -- 0x0860
203      :field("unk_0864", "int32") -- 0x0864
204      :field("unk_0868", "int32") -- 0x0868
205      :field("unk_086C", "int32") -- 0x086C
206      :hex("unkFlags_00", "int32") -- 0x0870
207      :hex("unkFlags_01", "int32") -- 0x0874
208      :hex("unkFlags_02", "int32") -- 0x0878
209      :hex("unkFlags_03", "int32") -- 0x087C
210      :hex("unkFlags_04", "int32") -- 0x0880
211      :hex("unkFlags_05", "int32") -- 0x0884
212      :hex("unkFlags_06", "int32") -- 0x0888
213      :hex("unkFlags_07", "int32") -- 0x088C
214      :hex("unkFlags_08", "int32") -- 0x0890
215      :hex("unkFlags_09", "int32") -- 0x0894
216      :hex("unkFlags_10", "int32") -- 0x0898
217      :hex("unkFlags_11", "int32") -- 0x089C
218      :hex("unkFlags_12", "int32") -- 0x08A0
219      :hex("unkFlags_13", "int32") -- 0x08A4
220      :hex("unkFlags_14", "int32") -- 0x08A8
221      :hex("unkFlags_15", "int32") -- 0x08AC
222      :field("unk_08B0", "int32") -- 0x08B0
223      :field("unk_08B4", "int32") -- 0x08B4
224      :field("unk_08B8", "int32") -- 0x08B8
225      :field("unk_08BC", "int32") -- 0x08BC
226      :field("unk_08C0", "int32") -- 0x08C0
227      :ptr("linkedList_ptr1") -- 0x08C4
228      :ptr("linkedList_ptr2") -- 0x08C8
229      :ptr("CGObject_C", "objectPtr") -- 0x08CC
230  
231  local CGUnit = Struct("CGUnit", CGObject)
232      :ptr("unitDataPtr") -- 0x00D0
233      :ptr("unk_00D4") -- 0x00D4
234      :ptr("CMovementData", "m_moveDataPtr") -- 0x00D8
235  
236      --mirror handlers
237      :paddingTo(0x788)
238  
239      :embed("CMovementData", CMovementData) -- 0x0788
240  
241      :field("unitFacingAngle", "float") -- 0x08D0
242      :field("unk_08D4", "int32") -- 0x08D4
243      :field("unk_08D8", "int32") -- 0x08D8
244      :field("unitFacingAngle", "float") -- 0x08DC
245      :field("unk_08E0", "int32") -- 0x08E0
246      :field("unk_08E4", "int32") -- 0x08E4
247      :field("unk_08E8", "int32") -- 0x08E8
248      :field("unk_08EC", "int32") -- 0x08EC
249      :field("unk_08F0", "int32") -- 0x08F0
250      :field("unk_08F4", "int32") -- 0x08F4
251      :field("unk_08F8", "int32") -- 0x08F8
252      :field("unk_08FC", "int32") -- 0x08FC
253      :field("unk_0900", "int32") -- 0x0900
254      :field("unk_0904", "int32") -- 0x0904
255      :field("unk_0908", "int32") -- 0x0908
256      :field("unk_090C", "int32") -- 0x090C
257      :field("unk_0910", "int32") -- 0x0910
258      :field("unk_0914", "int32") -- 0x0914
259      :field("unk_0918", "int32") -- 0x0918
260      :field("unk_091C", "int32") -- 0x091C
261      :field("unk_0920", "int32") -- 0x0920
262      :field("unk_0924", "int32") -- 0x0924
263      :field("unk_0928", "int32") -- 0x0928
264      :field("unk_092C", "int32") -- 0x092C
265      :field("unk_0930", "int32") -- 0x0930
266      :field("unk_0934", "int32") -- 0x0934
267      :field("unk_0938", "int32") -- 0x0938
268      :field("unk_093C", "int32") -- 0x093C
269      :field("unk_0940", "int32") -- 0x0940
270      :field("unk_0944", "int32") -- 0x0944
271      :field("unk_0948", "int32") -- 0x0948
272      :field("unk_094C", "int32") -- 0x094C
273      :field("unk_0950", "int32") -- 0x0950
274      :field("unk_0954", "int32") -- 0x0954
275      :ptr("unk_0958") -- 0x0958
276      :ptr("unk_095C") -- 0x095C
277      :field("unk_0960", "int32") -- 0x0960
278      :ptr("unkCreatureStatsPtr") -- 0x0964
279      :ptr("CreatureDisplayInfoPtr") -- 0x0968
280      :ptr("CreatureDisplayInfoExtraPtr") -- 0x096C
281      :ptr("CreatureModelDataPtr") -- 0x0970
282      :ptr("CreatureSoundDataPtr") -- 0x0974
283      :ptr("mountedCreatureSoundDataPtr") -- 0x0978
284      :ptr("unkBloodPoolPtr") -- 0x097C
285      :field("unk_0980", "int32") -- 0x0980
286      :field("unk_0984", "int32") -- 0x0984
287      :field("unk_0988", "int32") -- 0x0988
288      :ptr("m_mountM2modelPtr") -- 0x098C
289      :field("m_mountScale", "float") -- 0x0990
290      :ptr("unk_0994") -- 0x0994
291      :field("unk_0998", "int32") -- 0x0998
292      :field("unk_099C", "int32") -- 0x099C
293      :field("unk_09A0", "int32") -- 0x09A0
294      :field("unk_09A4", "int32") -- 0x09A4
295      :field("unk_09A8", "int32") -- 0x09A8
296      :field("unk_09AC", "int32") -- 0x09AC
297      :field("unk_09B0", "int32") -- 0x09B0
298      :field("unk_09B4", "int32") -- 0x09B4
299      :field("unk_09B8", "int32") -- 0x09B8
300      :field("objectNextUpdateMillisec", "int32") -- 0x09BC
301      :field("mountModelId", "int32") -- 0x09C0
302      :field("unk_09C4", "int32") -- 0x09C4
303      :field("unk_09C8", "int32") -- 0x09C8
304      :field("unk_09CC", "int32") -- 0x09CC
305      :field("unk_09D0", "int32") -- 0x09D0
306      :field("unk_09D4", "int32") -- 0x09D4
307      :embed("GroundNormal", Vector3)
308      :field("unk_09E4", "int32") -- 0x09E4
309      :field("unk_09E8", "int32") -- 0x09E8
310      :field("unk_09EC", "int32") -- 0x09EC
311      :field("unk_09F0", "int32") -- 0x09F0
312      :ptr("unk_09F4") -- 0x09F4
313      :field("unk_09F8", "int32") -- 0x09F8
314      :field("unk_09FC", "int32") -- 0x09FC
315      :ptr("unk_0A00") -- 0x0A00
316      :field("unk_0A04", "int32") -- 0x0A04
317      :field("unk_0A08", "int32") -- 0x0A08
318      :field("unk_0A0C", "int32") -- 0x0A0C
319      :field("unk_0A10", "int32") -- 0x0A10
320      :field("unk_0A14", "int32") -- 0x0A14
321      :field("unk_0A18", "int32") -- 0x0A18
322      :field("unk_0A1C", "int32") -- 0x0A1C
323      :hex("unkGUID", "uint64") -- 0x0A20
324      :field("unk_0A28", "int32") -- 0x0A28
325      :field("unk_0A2C", "int32") -- 0x0A2C
326      :hex("unkJumpFlags", "int32") -- 0x0A30
327      :field("unk_0A34", "int32") -- 0x0A34
328      :hex("unk_0A38", "int32") -- 0x0A38
329      :field("m_footprintTexId", "int32") -- 0x0A3C
330      :field("m_terrain", "int32") -- 0x0A40
331      :embed("m_footPrintSize", Vector2)
332      :field("m_footPrintScale", "float") -- 0x0A4C
333      :field("m_facingAngle", "float") -- 0x0A50
334      :field("m_pitchAngle", "float") -- 0x0A54
335      :ptr("unk_0A58") -- 0x0A58
336      :field("UnkSpellCounter", "int32") -- 0x0A5C
337      :field("m_channelSpellId", "int32") -- 0x0A60
338      :field("unk_0A64", "int32") -- 0x0A64
339      :field("unk_0A68", "int32") -- 0x0A68
340      :field("m_channelSpellId", "int32") -- 0x0A6C
341      :field("unkCastSchoolImmunFlag", "int32") -- 0x0A70
342      :field("unkCastImmunFlag", "int32") -- 0x0A74
343      :field("m_spellCastStartMS", "int32") -- 0x0A78
344      :field("m_spellCastEndMS", "int32") -- 0x0A7C
345      :field("unk_0A80", "int32") -- 0x0A80
346      :field("unk_0A84", "int32") -- 0x0A84
347      :field("unk_0A88", "int32") -- 0x0A88
348      :field("unk_0A8C", "int32") -- 0x0A8C
349      :field("unk_0A90", "int32") -- 0x0A90
350      :field("m_facingAngle", "float") -- 0x0A94
351      :field("unkAnimValue", "float") -- 0x0A98
352      :field("unkAnimValue", "float") -- 0x0A9C
353      :field("m_HeadFacingAngle", "float") -- 0x0AA0
354      :field("unk_0AA4", "int32") -- 0x0AA4
355      :field("unk_0AA8", "int32") -- 0x0AA8
356      :embed("SmoothFacing", Vector3)
357      :ptr("unk_0AB8") -- 0x0AB8
358      :field("objectUpdateMillisec", "int32") -- 0x0ABC
359      :field("unk_0AC0", "int32") -- 0x0AC0
360      :field("unk_0AC4", "int32") -- 0x0AC4
361      :field("unk_0AC8", "int32") -- 0x0AC8
362      :ptr("unkSoundPtr") -- 0x0ACC
363      :field("unk_0AD0", "int32") -- 0x0AD0
364      :field("unk_0AD4", "int32") -- 0x0AD4
365      :field("m_mountFootprintTexId", "int32") -- 0x0AD8
366      :embed("m_mountFootprintSize", Vector2)
367      :ptr("unk_0AE4", "int32") -- 0x0AE4
368      :ptr("unk_0AE8", "int32") -- 0x0AE8
369      :ptr("unk_0AEC", "int32") -- 0x0AEC
370      :field("unk_0AF0", "int32") -- 0x0AF0
371      :field("unk_0AF4", "int32") -- 0x0AF4
372      :field("unk_0AF8", "int32") -- 0x0AF8
373      :field("unk_0AFC", "int32") -- 0x0AFC
374      :field("unk_0B00", "int32") -- 0x0B00
375      :field("unk_0B04", "int32") -- 0x0B04
376      :field("unk_0B08", "int32") -- 0x0B08
377      :field("m_selectionRadius", "float") -- 0x0B0C
378      :field("unk_0B10", "int32") -- 0x0B10
379      :field("unk_0B14", "int32") -- 0x0B14
380      :field("unkFloatValue", "float") -- 0x0B18
381      :field("unk_0B1C", "int32") -- 0x0B1C
382      :field("unk_0B20", "int32") -- 0x0B20
383      :field("unk_0B24", "int32") -- 0x0B24
384      :field("unk_0B28", "int32") -- 0x0B28
385      :field("unk_0B2C", "int32") -- 0x0B2C
386      :field("unk_0B30", "int32") -- 0x0B30
387      :field("unk_0B34", "int32") -- 0x0B34
388      :field("unk_0B38", "int32") -- 0x0B38
389      :field("m_unitScale", "float") -- 0x0B3C
390      :ptr("unkDisplayModeIdRangedPtr") -- 0x0B40
391      :field("unk_0B44", "int32") -- 0x0B44
392      :field("unk_0B48", "int32") -- 0x0B48
393      :ptr("CCharacterComponentPtr") -- 0x0B4C
394      :ptr("unkEquipedMainHandModelPtr") -- 0x0B50
395      :field("unk_0B54", "int32") -- 0x0B54
396      :hex("unkObjectWeaponLastStandValue", "int32") -- 0x0B58
397      :hex("unkObjectWeaponCurrentStandFlag", "int32") -- 0x0B5C
398      :field("unk_0B60", "int32") -- 0x0B60
399      :field("unk_0B64", "int32") -- 0x0B64
400      :field("unk_0B68", "int32") -- 0x0B68
401      :field("unk_0B6C", "int32") -- 0x0B6C
402      :field("unk_0B70", "int32") -- 0x0B70
403      :field("unk_0B74", "int32") -- 0x0B74
404      :field("unk_0B78", "int32") -- 0x0B78
405      :field("unk_0B7C", "int32") -- 0x0B7C
406      :field("unk_0B80", "int32") -- 0x0B80
407      :field("unk_0B84", "int32") -- 0x0B84
408      :hex("unk_0B88", "uint32") -- 0x0B88
409      :hex("unk_0B8C", "uint32") -- 0x0B8C
410      :hex("unk_0B90", "uint32") -- 0x0B90
411      :field("unk_0B94", "int32") -- 0x0B94
412      :field("unk_0B98", "int32") -- 0x0B98
413      :field("unk_0B9C", "int32") -- 0x0B9C
414      :field("unk_0BA0", "int32") -- 0x0BA0
415      :field("unk_0BA4", "int32") -- 0x0BA4
416      :field("unk_0BA8", "int32") -- 0x0BA8
417      :field("unk_0BAC", "int32") -- 0x0BAC
418      :field("unk_0BB0", "int32") -- 0x0BB0
419      :field("unk_0BB4", "int32") -- 0x0BB4
420      :field("unk_0BB8", "int32") -- 0x0BB8
421      :field("unk_0BBC", "int32") -- 0x0BBC
422      :field("unk_0BC0", "int32") -- 0x0BC0
423      :field("unk_0BC4", "int32") -- 0x0BC4
424      :field("unk_0BC8", "int32") -- 0x0BC8
425      :field("unkFloatValue", "float") -- 0x0BCC
426      :field("unk_0BD0", "int32") -- 0x0BD0
427      :field("unk_0BD4", "int32") -- 0x0BD4
428      :field("unk_0BD8", "int32") -- 0x0BD8
429      :field("unk_0BDC", "int32") -- 0x0BDC
430      :field("unk_0BE0", "int32") -- 0x0BE0
431      :field("unk_0BE4", "int32") -- 0x0BE4
432      :field("unk_0BE8", "int32") -- 0x0BE8
433      :hex("UnkCombatFlag", "int32") -- 0x0BEC
434      :field("unk_0BF0", "int32") -- 0x0BF0
435      :field("unk_0BF4", "int32") -- 0x0BF4
436      :field("unk_0BF8", "int32") -- 0x0BF8
437      :field("unk_0BFC", "int32") -- 0x0BFC
438      :field("unk_0C00", "int32") -- 0x0C00
439      :field("unk_0C04", "int32") -- 0x0C04
440      :field("unk_0C08", "int32") -- 0x0C08
441      :field("unk_0C0C", "int32") -- 0x0C0C
442      :field("unk_0C10", "int32") -- 0x0C10
443      :field("unk_0C14", "int32") -- 0x0C14
444      :field("unk_0C18", "int32") -- 0x0C18
445      :field("unk_0C1C", "int32") -- 0x0C1C
446      :field("unk_0C20", "int32") -- 0x0C20
447      :field("unk_0C24", "int32") -- 0x0C24
448      :field("unk_0C28", "int32") -- 0x0C28
449      :field("unk_0C2C", "int32") -- 0x0C2C
450      :field("unk_0C30", "int32") -- 0x0C30
451      :field("unk_0C34", "int32") -- 0x0C34
452      :ptr("CGNamePlateFramePtr") -- 0x0C38
453      :field("unk_0C3C", "int32") -- 0x0C3C
454      :field("unk_0C40", "int32") -- 0x0C40
455      :field("unk_0C44", "int32") -- 0x0C44
456      :field("unk_0C48", "int32") -- 0x0C48
457      :field("unk_0C4C", "int32") -- 0x0C4C
458  
459      :structArray("UnitAura", UnitAura, 16)
460  
461      :field("m_auraCount", "int32") -- 0x0DD0
462      :structArray("UnitBuff", UnitBuff, 16)
463  
464      :field("auraCount", "int32") -- 0x0E54
465      :structArray("UnitBuffSorted", UnitBuff, 16)
466  
467      :paddingTo(0xFB0)
468  
469      :field("UnitHealthPredicted", "int32") -- 0x0FB0
470      :field("UnitManaPredicted", "int32") -- 0x0FB4
471      :field("UnitRagePredicted", "int32") -- 0x0FB8
472      :field("UnitFocusPredicted", "int32") -- 0x0FBC
473      :field("UnitEnergyPredicted", "int32") -- 0x0FC0
474      :field("UnkPowerPredicted", "int32") -- 0x0FC4
475      :field("UnkPowerPredicted", "int32") -- 0x0FC8
476      :field("UnitRunePowerPredicted", "int32") -- 0x0FCC
477      :field("UnkPowerPredictionTimer", "int32") -- 0x0FD0
478      :field("unk_0FD4", "int32") -- 0x0FD4
479      :field("unk_0FD8", "int32") -- 0x0FD8
480      :field("unk_0FDC", "int32") -- 0x0FDC
481      :ptr("ThreatVtblPtr") -- 0x0FE0
482      :field("unk_0FE4", "int32") -- 0x0FE4
483      :field("unk_0FE8", "int32") -- 0x0FE8
484      :field("unk_0FEC", "int32") -- 0x0FEC
485      :field("unk_0FF0", "int32") -- 0x0FF0
486      :field("unk_0FF4", "int32") -- 0x0FF4
487      :field("unk_0FF8", "int32") -- 0x0FF8
488      :field("unk_0FFC", "int32") -- 0x0FFC
489      :field("unk_1000", "int32") -- 0x1000
490      :field("unk_1004", "int32") -- 0x1004
491      :hex("playerBeginPtr", "int32") -- 0x1008 --if not a player then 8 byte GUID
492      :hex("playerEndPtr", "int32") -- 0x100C
493      :field("unk_1010", "int32") -- 0x1010
494      :paddingTo(0x1068)
495      :field("Health", "uint32") -- 0x1068
496      :field("Mana", "uint32") -- 0x106C
497      :paddingTo(0x1088)
498      :field("MaxHealth", "uint32") -- 0x1088
499      :field("MaxMana", "uint32") -- 0x108C
500      :paddingTo(0x1110)
501      :field("maxInteractDistance", "float") -- 0x1100
502      :padding(0x33C)
503  
504  -- #include "load_unit_target.lua"