/ cheatengine / cgplayer.lua
cgplayer.lua
1 -- #include "cgunit.lua" 2 3 local QuestLog = Struct("QuestLog") 4 :field("QuestId", "int32") 5 :field("ObjectiveDone", "int32") 6 :field("ObjectiveCounterFlag", "int32") 7 :field("UnkField4", "int32") 8 :field("UnkField5", "int32") 9 10 local PlayerSkill = Struct("PlayerSkill") 11 :field("ID", "uint16") 12 :field("Unk", "uint16") 13 :field("Skill", "uint16") 14 :field("SkillMax", "uint16") 15 :field("UnkPad", "int32") 16 17 local WoWGUID = Struct("WOWGUID") 18 :hex("guid", "uint64") 19 20 local ExploredZones = Struct("ExploredZonesBitflied") 21 :hex("flag", "uint64") 22 23 local ArenaTeam = Struct("ArenaTeam") 24 :field("ID", "int32") 25 :field("TypeID", "int32") 26 :field("MemberID", "int32") 27 :field("GamesWeekID", "int32") 28 :field("GamesSeasonID", "int32") 29 :field("WinsSeasonID", "int32") 30 :field("PersonalRateID", "int32") 31 32 local DailyQuest = Struct("DailyQuest") 33 :field("id", "uint32") 34 35 local PlayerFields = Struct("PlayerFields") 36 :field("DuelArbiter", "int32") -- 0x1BB0 37 :field("GuildID", "int32") -- 0x1BB4 38 :field("GuildRank", "int32") -- 0x1BB8 39 :field("bytes1", "int32") -- 0x1BBC 40 :field("bytes2", "int32") -- 0x1BC0 41 :field("bytes3", "int32") -- 0x1BC4 42 :field("DueldTeam", "int32") -- 0x1BC8 43 :field("GuildTimestamp", "int32") -- 0x1BCC 44 45 :structArray("QuestLog", QuestLog, 25) 46 47 :field("HeadItemId", "int32") -- 0x1DC4 48 :field("HeadEnchantment", "int32") -- 0x1DC8 49 :field("NeckItemId", "int32") -- 0x1DCC 50 :field("NeckEnchantment", "int32") -- 0x1DD0 51 :field("ShoulderItemId", "int32") -- 0x1DD4 52 :field("ShoulderEnchantment", "int32") -- 0x1DD8 53 :field("ShirtItemId", "int32") -- 0x1DDC 54 :field("ShirtEnchantment", "int32") -- 0x1DE0 55 :field("ChestItemId", "int32") -- 0x1DE4 56 :field("ChestEnchantment", "int32") -- 0x1DE8 57 :field("BeltItemId", "int32") -- 0x1DEC 58 :field("BeltEnchantment", "int32") -- 0x1DF0 59 :field("LegsItemId", "int32") -- 0x1DF4 60 :field("LegsEnchantment", "int32") -- 0x1DF8 61 :field("FootItemId", "int32") -- 0x1DFC 62 :field("FootEnchantment", "int32") -- 0x1E00 63 :field("WristItemId", "int32") -- 0x1E04 64 :field("WristEnchantment", "int32") -- 0x1E08 65 :field("HandsItemId", "int32") -- 0x1E0C 66 :field("HandsEnchantment", "int32") -- 0x1E10 67 :field("Finger1ItemId", "int32") -- 0x1E14 68 :field("Finger1Enchantment", "int32") -- 0x1E18 69 :field("Finger2ItemId", "int32") -- 0x1E1C 70 :field("Finger2Enchantment", "int32") -- 0x1E20 71 :field("Trinket1ItemId", "int32") -- 0x1E24 72 :field("Trinket1Enchantment", "int32") -- 0x1E28 73 :field("Trinket2ItemId", "int32") -- 0x1E2C 74 :field("Trinket2Enchantment", "int32") -- 0x1E30 75 :field("CloackItemId", "int32") -- 0x1E34 76 :field("CloackEnchantment", "int32") -- 0x1E38 77 :field("MainHandItemId", "int32") -- 0x1E3C 78 :field("MainHandEnchantment", "int32") -- 0x1E40 79 :field("OffHandItemId", "int32") -- 0x1E44 80 :field("OffHandEnchantment", "int32") -- 0x1E48 81 :field("RangedItemId", "int32") -- 0x1E4C 82 :field("RangedEnchantment", "int32") -- 0x1E50 83 :field("TabardItemId", "int32") -- 0x1E54 84 :field("TabardEnchantment", "int32") -- 0x1E58 85 :field("ChosenTitle", "int32") -- 0x1E5C 86 :field("FakeInebriation", "int32") -- 0x1E60 87 :field("UnkPad", "int32") -- 0x1E64 88 89 :hex("HeadItemSlot", "uint64") -- 0x1E68 90 :hex("NeckItemSlot", "uint64") -- 0x1E70 91 :hex("ShoulderItemSlot", "uint64") -- 0x1E78 92 :hex("ShirtItemSlot", "uint64") -- 0x1E80 93 :hex("ChestItemSlot", "uint64") -- 0x1E88 94 :hex("BeltItemSlot", "uint64") -- 0x1E90 95 :hex("LegsItemSlot", "uint64") -- 0x1E98 96 :hex("FootItemSlot", "uint64") -- 0x1EA0 97 :hex("WristItemSlot", "uint64") -- 0x1EA8 98 :hex("HandsItemSlot", "uint64") -- 0x1EB0 99 :hex("Firnger1ItemSlot", "uint64") -- 0x1EB8 100 :hex("Finger2ItemSlot", "uint64") -- 0x1EC0 101 :hex("Trinket1ItemSlot", "uint64") -- 0x1EC8 102 :hex("Trinket2ItemSlot", "uint64") -- 0x1ED0 103 :hex("BackItemSlot", "uint64") -- 0x1ED8 104 :hex("MainHandItemSlot", "uint64") -- 0x1EE0 105 :hex("OffHandItemSlot", "uint64") -- 0x1EE8 106 :hex("RangedItemSlot", "uint64") -- 0x1EF0 107 :hex("TabardItemSlot", "uint64") -- 0x1EF8 108 109 :structArray("ContainerSlot", WoWGUID, 4) 110 :structArray("BagSlot", WoWGUID, 16) 111 :structArray("BankSlot", WoWGUID, 28) 112 :structArray("ContainerBankSlot", WoWGUID, 7) 113 :structArray("VendorBuyBackItem", WoWGUID, 12) 114 :structArray("KeyRing", WoWGUID, 32) 115 :structArray("Currency", WoWGUID, 32) 116 117 :hex("FarsightGUID", "uint64") -- 0x2318 118 :hex("KnownTitles1", "uint64") -- 0x2320 119 :hex("KnownTitles2", "uint64") -- 0x2328 120 :hex("KnownTitles3", "uint64") -- 0x2330 121 :hex("KnownCurrencies", "uint64") -- 0x2338 122 :field("XP", "int32") -- 0x2340 123 :field("NextLevelXP", "int32") -- 0x2344 124 125 :structArray("Skill", PlayerSkill, 128) 126 127 :field("FreeTalentPoints", "int32") -- 0x2948 128 :field("MainProfessionFreeSlot", "int32") -- 0x294C 129 :field("TrackCreaturesFlag", "int32") -- 0x2950 130 :field("ResourcesTrackFlags", "int32") -- 0x2954 131 :field("BlockPrecentage", "float") -- 0x2958 132 :field("DodgePercentage", "float") -- 0x295C 133 :field("ParryPercentage", "float") -- 0x2960 134 :field("ExpertiseMainHand", "int32") -- 0x2964 135 :field("ExpertiseOffHand", "int32") -- 0x2968 136 :field("CritPercentageMelee", "float") -- 0x296C 137 :field("CritPercentageRaged", "float") -- 0x2970 138 :field("CritPercentageOffhand", "float") -- 0x2974 139 :field("SpellCritPercentage1", "float") -- 0x2978 140 :field("CritPercentageSpellHoly", "float") -- 0x297C 141 :field("CritPercentageSpellFire", "float") -- 0x2980 142 :field("CritPercentageSpellnature", "float") -- 0x2984 143 :field("CritPercentageSpellFrost", "float") -- 0x2988 144 :field("CritPercentageSpellShadow", "float") -- 0x298C 145 :field("CritPercentageSpellArcane", "float") -- 0x2990 146 :field("BlockDamageValue", "int32") -- 0x2994 147 :field("BlockCritPercentage", "float") -- 0x2998 148 149 :structArray("ExploredZones", ExploredZones, 64) 150 151 :field("RestXP", "int32") -- 0x2B9C 152 :field("Money", "int32") -- 0x2BA0 153 :field("UnkField", "int32") -- 0x2BA4 154 :field("SpellPowerHoly", "int32") -- 0x2BA8 155 :field("SpellPowerFire", "int32") -- 0x2BAC 156 :field("SpellPowerNature", "int32") -- 0x2BB0 157 :field("SpellPowerFrost", "int32") -- 0x2BB4 158 :field("SpellPowerShadow", "int32") -- 0x2BB8 159 :field("SpellPowerArcane", "int32") -- 0x2BBC 160 :array("SpellPowerNegative", "int32", 7) -- 0x2BC0 161 :array("UnkDamagePercent", "float", 7) -- 0x2BDC 162 :field("ModHealingDonePos", "int32") -- 0x2BF8 163 :field("HealingPercent", "float") -- 0x2BFC 164 :field("HealingDonePercent", "float") -- 0x2C00 165 :field("TargetResistance", "int32") -- 0x2C04 166 :field("TargetPhysResistance", "int32") -- 0x2C08 167 :field("UnkPad", "int32") -- 0x2C0C 168 :field("AmmotSlotItemId", "int32") -- 0x2C10 169 :field("SelfResSpell", "int32") -- 0x2C14 170 :field("PVPMedals", "int32") -- 0x2C18 171 :array("BuyBackPrice", "int32", 12) -- 0x2C1C 172 :array("BuyBackTimeStamp", "int32", 12) -- 0x2C4C 173 :field("HonorKills", "int32") -- 0x2C7C 174 :field("TodayHonorContribution", "int32") -- 0x2C80 175 :field("YesterdayHonorContribution", "int32") -- 0x2C84 176 :field("LifetimeHonorableKills", "int32") -- 0x2C88 177 :field("bytes2field", "int32") -- 0x2C8C 178 :field("WatchedFactionIndex", "int32") -- 0x2C90 179 :field("UnkCombatRating", "int32") -- 0x2C94 180 :field("DefenceRate", "int32") -- 0x2C98 181 :field("DodgeRate", "int32") -- 0x2C9C 182 :field("ParryRate", "int32") -- 0x2CA0 183 :field("BlockRate", "int32") -- 0x2CA4 184 :field("HitRateMelee", "int32") -- 0x2CA8 185 :field("HitRateRanged", "int32") -- 0x2CAC 186 :field("HitRateSpell", "int32") -- 0x2CB0 187 :field("CritRateMelee", "int32") -- 0x2CB4 188 :field("CritRateRanged", "int32") -- 0x2CB8 189 :field("CritRateSpell", "int32") -- 0x2CBC 190 :field("UnkCombatRating", "int32") -- 0x2CC0 191 :field("UnkCombatRating", "int32") -- 0x2CC4 192 :field("UnkCombatRating", "int32") -- 0x2CC8 193 :field("ResilienceRate_1", "int32") -- 0x2CCC 194 :field("ResilienceRate_2", "int32") -- 0x2CD0 195 :field("ResilienceRate_3", "int32") -- 0x2CD4 196 :field("AttackSpeed_1", "int32") -- 0x2CD8 197 :field("HasteRate_1", "int32") -- 0x2CDC 198 :field("AttackSpeed_2", "int32") -- 0x2CE0 199 :field("HasteRate_2", "int32") -- 0x2CE4 200 :field("AttackSpeed_3", "int32") -- 0x2CE8 201 :field("HasteRate_3", "int32") -- 0x2CEC 202 :field("ExpertiseRate", "int32") -- 0x2CF0 203 :field("ArmorPenetrationRate", "int32") -- 0x2CF4 204 205 :structArray("ArenaTeam", ArenaTeam, 3) 206 207 :field("CurrencyHonor", "int32") -- 0x2D4C 208 :field("CurrencyArenaPoint", "int32") -- 0x2D50 209 :field("MaxLevel", "int32") -- 0x2D54 210 211 :structArray("DailyQuest", DailyQuest, 25) 212 213 :array("RuneRegen", "float", 4) -- 0x2DBC 214 :array("NoReagenCost", "int32", 3) -- 0x2DCC 215 :array("GlyphSlot", "int32", 6) -- 0x2DD8 216 :array("Glyph", "int32", 6) -- 0x2DF0 217 :field("GlyphsEnabletBitField", "int32") -- 0x2E08 218 :field("PetSpellPower", "int32") -- 0x2E0C 219 :field("UnkFlags", "int32") -- 0x2E10 220 :field("PetSpellBonusDamage", "float") -- 0x2E14 221 222 local PlayerCritterArray = Struct("CritterArray") 223 :field("memoryCapacity", "uint32") 224 :field("count", "uint32") 225 :hex("memoryPtr", "uint32") 226 227 local CGPlayer = Struct("CGPlayer", CGUnit) 228 :paddingTo(0x1850) 229 :field("unk_1850", "int32") -- 0x1850 230 :field("unk_1854", "int32") -- 0x1854 231 :field("farSightFlag", "int32") -- 0x1858 232 :ptr("unkTradeSkillObjVtbl") -- 0x185C 233 :field("unk_1860", "int32") -- 0x1860 234 :field("unk_1864", "int32") -- 0x1864 235 :field("unk_1868", "int32") -- 0x1868 236 :field("unk_186C", "int32") -- 0x186C 237 :field("unk_1870", "int32") -- 0x1870 238 :field("unk_1874", "int32") -- 0x1874 239 :field("unk_1878", "int32") -- 0x1878 240 :field("unk_187C", "int32") -- 0x187C 241 :field("unk_1880", "int32") -- 0x1880 242 :ptr("unkTradeSkillObjVptr") -- 0x1884 243 :field("unk_1888", "int32") -- 0x1888 244 :field("unk_188C", "int32") -- 0x188C 245 :field("unk_1890", "int32") -- 0x1890 246 :field("unk_1894", "int32") -- 0x1894 247 :field("unk_1898", "int32") -- 0x1898 248 :field("unk_189C", "int32") -- 0x189C 249 :ptr("unk_18A0") -- 0x18A0 250 :field("unk_18A4", "int32") -- 0x18A4 251 :field("unk_18A8", "int32") -- 0x18A8 252 :field("unk_18AC", "int32") -- 0x18AC 253 :field("unk_18B0", "int32") -- 0x18B0 254 :field("unk_18B4", "int32") -- 0x18B4 255 :field("unk_18B8", "int32") -- 0x18B8 256 :field("unk_18BC", "int32") -- 0x18BC 257 :field("unk_18C0", "int32") -- 0x18C0 258 :field("unk_18C4", "int32") -- 0x18C4 259 :field("unk_18C8", "int32") -- 0x18C8 260 261 :embed("m_critters", PlayerCritterArray) 262 263 :field("unk_18D8", "int32") -- 0x18D8 264 :field("unk_18DC", "int32") -- 0x18DC 265 :hex("LootTargetGUID", "uint64") -- 0x18E0 266 :hex("unkAutoLootFlags", "int32") -- 0x18E8 267 :field("unk_18EC", "int32") -- 0x18EC 268 :field("unk_18F0", "int32") -- 0x18F0 269 :ptr("playerInventoryPtr") -- 0x18F4 270 :field("playerGUID", "int32") -- 0x18F8 271 :field("unk_18FC", "int32") -- 0x18FC 272 :hex("unk_1900", "int32") -- 0x1900 273 :hex("unk_1904", "int32") -- 0x1904 274 :hex("MainHandVisibleItemClassID", "int32") -- 0x1908 275 :hex("MainHandVisibleItemSubtypeID", "int32") -- 0x190C 276 :hex("OffHandVisibleItemClassID", "int32") -- 0x1910 277 :hex("unkOffHandInventoryType", "int32") -- 0x1914 278 :hex("RangedVisibleItemClassID", "int32") -- 0x1918 279 :hex("unkRangedVisibleItemInventoryType", "int32") -- 0x191C 280 :field("standValue", "int32") -- 0x1920 281 :field("MetaSocketCount", "int32") -- 0x1924 282 :field("RedSocketCount", "int32") -- 0x1928 283 :field("YellowSocketCount", "int32") -- 0x192C 284 :field("BlueSocketCount", "int32") -- 0x1930 285 :field("combatModeLastUnitMS", "int32") -- 0x1934 286 :hex("combatModeLastUnitGUID", "uint64") -- 0x1938 287 :field("turnOffPVPModeMS", "int32") -- 0x1940 288 :field("unkDanceStudioField1", "int32") -- 0x1944 289 :field("unkDanceStudioField2", "int32") -- 0x1948 290 :field("totalPlayedTimeSeconds", "int32") -- 0x194C 291 :field("lastPlayedCmdTimestamp", "int32") -- 0x1950 292 :field("unk_1954", "int32") -- 0x1954 293 294 :embed("objectFields", ObjectFields) 295 296 :embed("unitFields", UnitFields) 297 298 :field("UnkBeginPlayerStructureField", "uint32") 299 :field("unkField", "uint32") 300 301 :embed("playerFields", PlayerFields) 302 303 -- #include "load_player.lua"