diff options
author | Shauren <shauren.trinity@gmail.com> | 2016-04-26 18:56:35 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2016-05-20 23:50:20 +0200 |
commit | df6d557a4d778093ec522d2c39c6c01acc41d978 (patch) | |
tree | 55ea1573d75628f8aa4516d4632607ad49c4a4f7 | |
parent | 70102f32fe38ae7d49acbd5ddee0239602d3cb94 (diff) |
Core/Entities: Updated updatefields to 7.0.3.21414
-rw-r--r-- | sql/base/characters_database.sql | 1 | ||||
-rw-r--r-- | sql/updates/characters/2016_xx_xx_xx_characters_legion_03.sql | 1 | ||||
-rw-r--r-- | sql/updates/world/2016_xx_xx_xx_world_legion_01.sql | 1 | ||||
-rw-r--r-- | src/server/database/Database/Implementation/CharacterDatabase.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 9 | ||||
-rw-r--r-- | src/server/game/Entities/Object/Updates/UpdateFieldFlags.cpp | 65 | ||||
-rw-r--r-- | src/server/game/Entities/Object/Updates/UpdateFields.h | 280 | ||||
-rw-r--r-- | src/server/game/Entities/Pet/Pet.cpp | 1 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 20 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.h | 2 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/StatSystem.cpp | 5 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 7 | ||||
-rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 15 | ||||
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 9 | ||||
-rw-r--r-- | src/server/game/Miscellaneous/SharedDefines.h | 3 |
15 files changed, 231 insertions, 192 deletions
diff --git a/sql/base/characters_database.sql b/sql/base/characters_database.sql index 1d9fc2dcfcc..1f20780bc92 100644 --- a/sql/base/characters_database.sql +++ b/sql/base/characters_database.sql @@ -1460,7 +1460,6 @@ CREATE TABLE `character_stats` ( `agility` int(10) unsigned NOT NULL DEFAULT '0', `stamina` int(10) unsigned NOT NULL DEFAULT '0', `intellect` int(10) unsigned NOT NULL DEFAULT '0', - `spirit` int(10) unsigned NOT NULL DEFAULT '0', `armor` int(10) unsigned NOT NULL DEFAULT '0', `resHoly` int(10) unsigned NOT NULL DEFAULT '0', `resFire` int(10) unsigned NOT NULL DEFAULT '0', diff --git a/sql/updates/characters/2016_xx_xx_xx_characters_legion_03.sql b/sql/updates/characters/2016_xx_xx_xx_characters_legion_03.sql new file mode 100644 index 00000000000..03320194c94 --- /dev/null +++ b/sql/updates/characters/2016_xx_xx_xx_characters_legion_03.sql @@ -0,0 +1 @@ +ALTER TABLE `character_stats` DROP `spirit`; diff --git a/sql/updates/world/2016_xx_xx_xx_world_legion_01.sql b/sql/updates/world/2016_xx_xx_xx_world_legion_01.sql new file mode 100644 index 00000000000..44e87058b38 --- /dev/null +++ b/sql/updates/world/2016_xx_xx_xx_world_legion_01.sql @@ -0,0 +1 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_sha_mana_tide_totem'; diff --git a/src/server/database/Database/Implementation/CharacterDatabase.cpp b/src/server/database/Database/Implementation/CharacterDatabase.cpp index 6399b588b5d..6055abdd08d 100644 --- a/src/server/database/Database/Implementation/CharacterDatabase.cpp +++ b/src/server/database/Database/Implementation/CharacterDatabase.cpp @@ -578,9 +578,9 @@ void CharacterDatabaseConnection::DoPrepareStatements() PrepareStatement(CHAR_UPD_CHAR_SKILLS, "UPDATE character_skills SET value = ?, max = ? WHERE guid = ? AND skill = ?", CONNECTION_ASYNC); PrepareStatement(CHAR_INS_CHAR_SPELL, "INSERT INTO character_spell (guid, spell, active, disabled) VALUES (?, ?, ?, ?)", CONNECTION_ASYNC); PrepareStatement(CHAR_DEL_CHAR_STATS, "DELETE FROM character_stats WHERE guid = ?", CONNECTION_ASYNC); - PrepareStatement(CHAR_INS_CHAR_STATS, "INSERT INTO character_stats (guid, maxhealth, maxpower1, maxpower2, maxpower3, maxpower4, maxpower5, maxpower6, strength, agility, stamina, intellect, spirit, " + PrepareStatement(CHAR_INS_CHAR_STATS, "INSERT INTO character_stats (guid, maxhealth, maxpower1, maxpower2, maxpower3, maxpower4, maxpower5, maxpower6, strength, agility, stamina, intellect, " "armor, resHoly, resFire, resNature, resFrost, resShadow, resArcane, blockPct, dodgePct, parryPct, critPct, rangedCritPct, spellCritPct, attackPower, rangedAttackPower, " - "spellPower, resilience) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC); + "spellPower, resilience) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC); PrepareStatement(CHAR_DEL_PETITION_BY_OWNER, "DELETE FROM petition WHERE ownerguid = ?", CONNECTION_ASYNC); PrepareStatement(CHAR_DEL_PETITION_SIGNATURE_BY_OWNER, "DELETE FROM petition_sign WHERE ownerguid = ?", CONNECTION_ASYNC); PrepareStatement(CHAR_INS_CHAR_GLYPHS, "INSERT INTO character_glyphs (guid, talentGroup, glyph1, glyph2, glyph3, glyph4, glyph5, glyph6) VALUES(?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC); diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 979390baaeb..553b4f0babc 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -702,9 +702,8 @@ void Creature::RegenerateMana() if (IsInCombat() || !GetCharmerOrOwnerGUID().IsEmpty()) { float ManaIncreaseRate = sWorld->getRate(RATE_POWER_MANA); - float Spirit = GetStat(STAT_SPIRIT); - addvalue = uint32((Spirit / 5.0f + 17.0f) * ManaIncreaseRate); + addvalue = uint32((27.0f / 5.0f + 17.0f) * ManaIncreaseRate); } else addvalue = maxValue / 3; @@ -737,12 +736,8 @@ void Creature::RegenerateHealth() if (!GetCharmerOrOwnerGUID().IsEmpty()) { float HealthIncreaseRate = sWorld->getRate(RATE_HEALTH); - float Spirit = GetStat(STAT_SPIRIT); - if (GetPower(POWER_MANA) > 0) - addvalue = uint32(Spirit * 0.25 * HealthIncreaseRate); - else - addvalue = uint32(Spirit * 0.80 * HealthIncreaseRate); + addvalue = 0.015f * ((float)GetMaxHealth()) * HealthIncreaseRate; } else addvalue = maxValue/3; diff --git a/src/server/game/Entities/Object/Updates/UpdateFieldFlags.cpp b/src/server/game/Entities/Object/Updates/UpdateFieldFlags.cpp index bafdac92251..52a975d6032 100644 --- a/src/server/game/Entities/Object/Updates/UpdateFieldFlags.cpp +++ b/src/server/game/Entities/Object/Updates/UpdateFieldFlags.cpp @@ -393,17 +393,14 @@ uint32 UnitUpdateFieldFlags[PLAYER_END] = UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_STAT+1 UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_STAT+2 UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_STAT+3 - UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_STAT+4 UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POSSTAT UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POSSTAT+1 UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POSSTAT+2 UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POSSTAT+3 - UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POSSTAT+4 UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_NEGSTAT UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_NEGSTAT+1 UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_NEGSTAT+2 UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_NEGSTAT+3 - UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_NEGSTAT+4 UF_FLAG_PRIVATE | UF_FLAG_OWNER | UF_FLAG_SPECIAL_INFO, // UNIT_FIELD_RESISTANCES UF_FLAG_PRIVATE | UF_FLAG_OWNER | UF_FLAG_SPECIAL_INFO, // UNIT_FIELD_RESISTANCES+1 UF_FLAG_PRIVATE | UF_FLAG_OWNER | UF_FLAG_SPECIAL_INFO, // UNIT_FIELD_RESISTANCES+2 @@ -437,6 +434,7 @@ uint32 UnitUpdateFieldFlags[PLAYER_END] = UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_RANGED_ATTACK_POWER_MOD_POS UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_RANGED_ATTACK_POWER_MOD_NEG UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER + UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_ATTACK_SPEED_AURA UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_MINRANGEDDAMAGE UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_MAXRANGEDDAMAGE UF_FLAG_PRIVATE | UF_FLAG_OWNER, // UNIT_FIELD_POWER_COST_MODIFIER @@ -1249,6 +1247,56 @@ uint32 UnitUpdateFieldFlags[PLAYER_END] = UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+747 UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+748 UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+749 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+750 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+751 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+752 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+753 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+754 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+755 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+756 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+757 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+758 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+759 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+760 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+761 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+762 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+763 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+764 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+765 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+766 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+767 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+768 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+769 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+770 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+771 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+772 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+773 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+774 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+775 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+776 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+777 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+778 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+779 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+780 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+781 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+782 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+783 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+784 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+785 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+786 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+787 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+788 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+789 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+790 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+791 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+792 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+793 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+794 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+795 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+796 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+797 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+798 + UF_FLAG_PARTY_MEMBER, // PLAYER_QUEST_LOG+799 UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM+1 UF_FLAG_PUBLIC, // PLAYER_VISIBLE_ITEM+2 @@ -2051,6 +2099,10 @@ uint32 UnitUpdateFieldFlags[PLAYER_END] = UF_FLAG_PRIVATE, // PLAYER_FARSIGHT+1 UF_FLAG_PRIVATE, // PLAYER_FARSIGHT+2 UF_FLAG_PRIVATE, // PLAYER_FARSIGHT+3 + UF_FLAG_PRIVATE, // PLAYER_FIELD_SUMMONED_BATTLE_PET_ID + UF_FLAG_PRIVATE, // PLAYER_FIELD_SUMMONED_BATTLE_PET_ID+1 + UF_FLAG_PRIVATE, // PLAYER_FIELD_SUMMONED_BATTLE_PET_ID+2 + UF_FLAG_PRIVATE, // PLAYER_FIELD_SUMMONED_BATTLE_PET_ID+3 UF_FLAG_PRIVATE, // PLAYER__FIELD_KNOWN_TITLES UF_FLAG_PRIVATE, // PLAYER__FIELD_KNOWN_TITLES+1 UF_FLAG_PRIVATE, // PLAYER__FIELD_KNOWN_TITLES+2 @@ -2939,6 +2991,7 @@ uint32 UnitUpdateFieldFlags[PLAYER_END] = UF_FLAG_PRIVATE, // PLAYER_FIELD_ARENA_TEAM_INFO_1_1+35 UF_FLAG_PRIVATE, // PLAYER_FIELD_MAX_LEVEL UF_FLAG_PRIVATE, // PLAYER_FIELD_SCALING_PLAYER_LEVEL_DELTA + UF_FLAG_PRIVATE, // PLAYER_FIELD_MAX_CREATURE_SCALING_LEVEL UF_FLAG_PRIVATE, // PLAYER_NO_REAGENT_COST_1 UF_FLAG_PRIVATE, // PLAYER_NO_REAGENT_COST_1+1 UF_FLAG_PRIVATE, // PLAYER_NO_REAGENT_COST_1+2 @@ -2960,10 +3013,6 @@ uint32 UnitUpdateFieldFlags[PLAYER_END] = UF_FLAG_PRIVATE, // PLAYER_FIELD_UI_SPELL_HIT_MODIFIER UF_FLAG_PRIVATE, // PLAYER_FIELD_HOME_REALM_TIME_OFFSET UF_FLAG_PRIVATE, // PLAYER_FIELD_MOD_PET_HASTE - UF_FLAG_PRIVATE, // PLAYER_FIELD_SUMMONED_BATTLE_PET_ID - UF_FLAG_PRIVATE, // PLAYER_FIELD_SUMMONED_BATTLE_PET_ID+1 - UF_FLAG_PRIVATE, // PLAYER_FIELD_SUMMONED_BATTLE_PET_ID+2 - UF_FLAG_PRIVATE, // PLAYER_FIELD_SUMMONED_BATTLE_PET_ID+3 UF_FLAG_PRIVATE | UF_FLAG_URGENT_SELF_ONLY, // PLAYER_FIELD_BYTES2 UF_FLAG_PRIVATE, // PLAYER_FIELD_LFG_BONUS_FACTION_ID UF_FLAG_PRIVATE, // PLAYER_FIELD_LOOT_SPEC_ID @@ -3872,6 +3921,7 @@ uint32 UnitDynamicUpdateFieldFlags[PLAYER_DYNAMIC_END] = UF_FLAG_PRIVATE, // PLAYER_DYNAMIC_FIELD_TOYS UF_FLAG_PRIVATE, // PLAYER_DYNAMIC_FIELD_TRANSMOG UF_FLAG_PRIVATE, // PLAYER_DYNAMIC_FIELD_CONDITIONAL_TRANSMOG + UF_FLAG_PRIVATE, // PLAYER_DYNAMIC_FIELD_CHARACTER_RESTRICTIONS }; uint32 GameObjectUpdateFieldFlags[GAMEOBJECT_END] = @@ -4030,6 +4080,7 @@ uint32 AreaTriggerUpdateFieldFlags[AREATRIGGER_END] = UF_FLAG_DYNAMIC, // AREATRIGGER_SPELLVISUALID UF_FLAG_DYNAMIC | UF_FLAG_URGENT, // AREATRIGGER_BOUNDS_RADIUS_2D UF_FLAG_PUBLIC, // AREATRIGGER_DECAL_PROPERTIES_ID + UF_FLAG_PUBLIC | UF_FLAG_URGENT, // AREATRIGGER_VISUAL_ANIMATION }; uint32 SceneObjectUpdateFieldFlags[SCENEOBJECT_END] = diff --git a/src/server/game/Entities/Object/Updates/UpdateFields.h b/src/server/game/Entities/Object/Updates/UpdateFields.h index 12de8ccd7b7..f599c8e5a04 100644 --- a/src/server/game/Entities/Object/Updates/UpdateFields.h +++ b/src/server/game/Entities/Object/Updates/UpdateFields.h @@ -19,7 +19,7 @@ #ifndef _UPDATEFIELDS_H #define _UPDATEFIELDS_H -// Auto generated for version 7, 0, 1, 20810 +// Auto generated for version 7, 0, 3, 21414 enum ObjectFields { @@ -142,46 +142,47 @@ enum UnitFields UNIT_CREATED_BY_SPELL = OBJECT_END + 0x071, // Size: 1, Flags: PUBLIC UNIT_NPC_FLAGS = OBJECT_END + 0x072, // Size: 2, Flags: PUBLIC, DYNAMIC UNIT_NPC_EMOTESTATE = OBJECT_END + 0x074, // Size: 1, Flags: PUBLIC - UNIT_FIELD_STAT = OBJECT_END + 0x075, // Size: 5, Flags: PRIVATE, OWNER - UNIT_FIELD_POSSTAT = OBJECT_END + 0x07A, // Size: 5, Flags: PRIVATE, OWNER - UNIT_FIELD_NEGSTAT = OBJECT_END + 0x07F, // Size: 5, Flags: PRIVATE, OWNER - UNIT_FIELD_RESISTANCES = OBJECT_END + 0x084, // Size: 7, Flags: PRIVATE, OWNER, SPECIAL_INFO - UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE = OBJECT_END + 0x08B, // Size: 7, Flags: PRIVATE, OWNER - UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE = OBJECT_END + 0x092, // Size: 7, Flags: PRIVATE, OWNER - UNIT_FIELD_MOD_BONUS_ARMOR = OBJECT_END + 0x099, // Size: 1, Flags: PRIVATE, OWNER - UNIT_FIELD_BASE_MANA = OBJECT_END + 0x09A, // Size: 1, Flags: PUBLIC - UNIT_FIELD_BASE_HEALTH = OBJECT_END + 0x09B, // Size: 1, Flags: PRIVATE, OWNER - UNIT_FIELD_BYTES_2 = OBJECT_END + 0x09C, // Size: 1, Flags: PUBLIC - UNIT_FIELD_ATTACK_POWER = OBJECT_END + 0x09D, // Size: 1, Flags: PRIVATE, OWNER - UNIT_FIELD_ATTACK_POWER_MOD_POS = OBJECT_END + 0x09E, // Size: 1, Flags: PRIVATE, OWNER - UNIT_FIELD_ATTACK_POWER_MOD_NEG = OBJECT_END + 0x09F, // Size: 1, Flags: PRIVATE, OWNER - UNIT_FIELD_ATTACK_POWER_MULTIPLIER = OBJECT_END + 0x0A0, // Size: 1, Flags: PRIVATE, OWNER - UNIT_FIELD_RANGED_ATTACK_POWER = OBJECT_END + 0x0A1, // Size: 1, Flags: PRIVATE, OWNER - UNIT_FIELD_RANGED_ATTACK_POWER_MOD_POS = OBJECT_END + 0x0A2, // Size: 1, Flags: PRIVATE, OWNER - UNIT_FIELD_RANGED_ATTACK_POWER_MOD_NEG = OBJECT_END + 0x0A3, // Size: 1, Flags: PRIVATE, OWNER - UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER = OBJECT_END + 0x0A4, // Size: 1, Flags: PRIVATE, OWNER - UNIT_FIELD_MINRANGEDDAMAGE = OBJECT_END + 0x0A5, // Size: 1, Flags: PRIVATE, OWNER - UNIT_FIELD_MAXRANGEDDAMAGE = OBJECT_END + 0x0A6, // Size: 1, Flags: PRIVATE, OWNER - UNIT_FIELD_POWER_COST_MODIFIER = OBJECT_END + 0x0A7, // Size: 7, Flags: PRIVATE, OWNER - UNIT_FIELD_POWER_COST_MULTIPLIER = OBJECT_END + 0x0AE, // Size: 7, Flags: PRIVATE, OWNER - UNIT_FIELD_MAXHEALTHMODIFIER = OBJECT_END + 0x0B5, // Size: 1, Flags: PRIVATE, OWNER - UNIT_FIELD_HOVERHEIGHT = OBJECT_END + 0x0B6, // Size: 1, Flags: PUBLIC - UNIT_FIELD_MIN_ITEM_LEVEL_CUTOFF = OBJECT_END + 0x0B7, // Size: 1, Flags: PUBLIC - UNIT_FIELD_MIN_ITEM_LEVEL = OBJECT_END + 0x0B8, // Size: 1, Flags: PUBLIC - UNIT_FIELD_MAXITEMLEVEL = OBJECT_END + 0x0B9, // Size: 1, Flags: PUBLIC - UNIT_FIELD_WILD_BATTLEPET_LEVEL = OBJECT_END + 0x0BA, // Size: 1, Flags: PUBLIC - UNIT_FIELD_BATTLEPET_COMPANION_NAME_TIMESTAMP = OBJECT_END + 0x0BB, // Size: 1, Flags: PUBLIC - UNIT_FIELD_INTERACT_SPELLID = OBJECT_END + 0x0BC, // Size: 1, Flags: PUBLIC - UNIT_FIELD_STATE_SPELL_VISUAL_ID = OBJECT_END + 0x0BD, // Size: 1, Flags: DYNAMIC, URGENT - UNIT_FIELD_STATE_ANIM_ID = OBJECT_END + 0x0BE, // Size: 1, Flags: DYNAMIC, URGENT - UNIT_FIELD_STATE_ANIM_KIT_ID = OBJECT_END + 0x0BF, // Size: 1, Flags: DYNAMIC, URGENT - UNIT_FIELD_STATE_WORLD_EFFECT_ID = OBJECT_END + 0x0C0, // Size: 4, Flags: DYNAMIC, URGENT - UNIT_FIELD_SCALE_DURATION = OBJECT_END + 0x0C4, // Size: 1, Flags: PUBLIC - UNIT_FIELD_LOOKS_LIKE_MOUNT_ID = OBJECT_END + 0x0C5, // Size: 1, Flags: PUBLIC - UNIT_FIELD_LOOKS_LIKE_CREATURE_ID = OBJECT_END + 0x0C6, // Size: 1, Flags: PUBLIC - UNIT_FIELD_LOOK_AT_CONTROLLER_ID = OBJECT_END + 0x0C7, // Size: 1, Flags: PUBLIC - UNIT_FIELD_LOOK_AT_CONTROLLER_TARGET = OBJECT_END + 0x0C8, // Size: 4, Flags: PUBLIC - UNIT_END = OBJECT_END + 0x0CC, + UNIT_FIELD_STAT = OBJECT_END + 0x075, // Size: 4, Flags: PRIVATE, OWNER + UNIT_FIELD_POSSTAT = OBJECT_END + 0x079, // Size: 4, Flags: PRIVATE, OWNER + UNIT_FIELD_NEGSTAT = OBJECT_END + 0x07D, // Size: 4, Flags: PRIVATE, OWNER + UNIT_FIELD_RESISTANCES = OBJECT_END + 0x081, // Size: 7, Flags: PRIVATE, OWNER, SPECIAL_INFO + UNIT_FIELD_RESISTANCEBUFFMODSPOSITIVE = OBJECT_END + 0x088, // Size: 7, Flags: PRIVATE, OWNER + UNIT_FIELD_RESISTANCEBUFFMODSNEGATIVE = OBJECT_END + 0x08F, // Size: 7, Flags: PRIVATE, OWNER + UNIT_FIELD_MOD_BONUS_ARMOR = OBJECT_END + 0x096, // Size: 1, Flags: PRIVATE, OWNER + UNIT_FIELD_BASE_MANA = OBJECT_END + 0x097, // Size: 1, Flags: PUBLIC + UNIT_FIELD_BASE_HEALTH = OBJECT_END + 0x098, // Size: 1, Flags: PRIVATE, OWNER + UNIT_FIELD_BYTES_2 = OBJECT_END + 0x099, // Size: 1, Flags: PUBLIC + UNIT_FIELD_ATTACK_POWER = OBJECT_END + 0x09A, // Size: 1, Flags: PRIVATE, OWNER + UNIT_FIELD_ATTACK_POWER_MOD_POS = OBJECT_END + 0x09B, // Size: 1, Flags: PRIVATE, OWNER + UNIT_FIELD_ATTACK_POWER_MOD_NEG = OBJECT_END + 0x09C, // Size: 1, Flags: PRIVATE, OWNER + UNIT_FIELD_ATTACK_POWER_MULTIPLIER = OBJECT_END + 0x09D, // Size: 1, Flags: PRIVATE, OWNER + UNIT_FIELD_RANGED_ATTACK_POWER = OBJECT_END + 0x09E, // Size: 1, Flags: PRIVATE, OWNER + UNIT_FIELD_RANGED_ATTACK_POWER_MOD_POS = OBJECT_END + 0x09F, // Size: 1, Flags: PRIVATE, OWNER + UNIT_FIELD_RANGED_ATTACK_POWER_MOD_NEG = OBJECT_END + 0x0A0, // Size: 1, Flags: PRIVATE, OWNER + UNIT_FIELD_RANGED_ATTACK_POWER_MULTIPLIER = OBJECT_END + 0x0A1, // Size: 1, Flags: PRIVATE, OWNER + UNIT_FIELD_ATTACK_SPEED_AURA = OBJECT_END + 0x0A2, // Size: 1, Flags: PRIVATE, OWNER + UNIT_FIELD_MINRANGEDDAMAGE = OBJECT_END + 0x0A3, // Size: 1, Flags: PRIVATE, OWNER + UNIT_FIELD_MAXRANGEDDAMAGE = OBJECT_END + 0x0A4, // Size: 1, Flags: PRIVATE, OWNER + UNIT_FIELD_POWER_COST_MODIFIER = OBJECT_END + 0x0A5, // Size: 7, Flags: PRIVATE, OWNER + UNIT_FIELD_POWER_COST_MULTIPLIER = OBJECT_END + 0x0AC, // Size: 7, Flags: PRIVATE, OWNER + UNIT_FIELD_MAXHEALTHMODIFIER = OBJECT_END + 0x0B3, // Size: 1, Flags: PRIVATE, OWNER + UNIT_FIELD_HOVERHEIGHT = OBJECT_END + 0x0B4, // Size: 1, Flags: PUBLIC + UNIT_FIELD_MIN_ITEM_LEVEL_CUTOFF = OBJECT_END + 0x0B5, // Size: 1, Flags: PUBLIC + UNIT_FIELD_MIN_ITEM_LEVEL = OBJECT_END + 0x0B6, // Size: 1, Flags: PUBLIC + UNIT_FIELD_MAXITEMLEVEL = OBJECT_END + 0x0B7, // Size: 1, Flags: PUBLIC + UNIT_FIELD_WILD_BATTLEPET_LEVEL = OBJECT_END + 0x0B8, // Size: 1, Flags: PUBLIC + UNIT_FIELD_BATTLEPET_COMPANION_NAME_TIMESTAMP = OBJECT_END + 0x0B9, // Size: 1, Flags: PUBLIC + UNIT_FIELD_INTERACT_SPELLID = OBJECT_END + 0x0BA, // Size: 1, Flags: PUBLIC + UNIT_FIELD_STATE_SPELL_VISUAL_ID = OBJECT_END + 0x0BB, // Size: 1, Flags: DYNAMIC, URGENT + UNIT_FIELD_STATE_ANIM_ID = OBJECT_END + 0x0BC, // Size: 1, Flags: DYNAMIC, URGENT + UNIT_FIELD_STATE_ANIM_KIT_ID = OBJECT_END + 0x0BD, // Size: 1, Flags: DYNAMIC, URGENT + UNIT_FIELD_STATE_WORLD_EFFECT_ID = OBJECT_END + 0x0BE, // Size: 4, Flags: DYNAMIC, URGENT + UNIT_FIELD_SCALE_DURATION = OBJECT_END + 0x0C2, // Size: 1, Flags: PUBLIC + UNIT_FIELD_LOOKS_LIKE_MOUNT_ID = OBJECT_END + 0x0C3, // Size: 1, Flags: PUBLIC + UNIT_FIELD_LOOKS_LIKE_CREATURE_ID = OBJECT_END + 0x0C4, // Size: 1, Flags: PUBLIC + UNIT_FIELD_LOOK_AT_CONTROLLER_ID = OBJECT_END + 0x0C5, // Size: 1, Flags: PUBLIC + UNIT_FIELD_LOOK_AT_CONTROLLER_TARGET = OBJECT_END + 0x0C6, // Size: 4, Flags: PUBLIC + UNIT_END = OBJECT_END + 0x0CA, }; enum UnitDynamicFields @@ -207,101 +208,102 @@ enum PlayerFields PLAYER_BYTES_4 = UNIT_END + 0x014, // Size: 1, Flags: PUBLIC PLAYER_DUEL_TEAM = UNIT_END + 0x015, // Size: 1, Flags: PUBLIC PLAYER_GUILD_TIMESTAMP = UNIT_END + 0x016, // Size: 1, Flags: PUBLIC - PLAYER_QUEST_LOG = UNIT_END + 0x017, // Size: 750, Flags: PARTY_MEMBER - PLAYER_VISIBLE_ITEM = UNIT_END + 0x305, // Size: 38, Flags: PUBLIC - PLAYER_CHOSEN_TITLE = UNIT_END + 0x32B, // Size: 1, Flags: PUBLIC - PLAYER_FAKE_INEBRIATION = UNIT_END + 0x32C, // Size: 1, Flags: PUBLIC - PLAYER_FIELD_VIRTUAL_PLAYER_REALM = UNIT_END + 0x32D, // Size: 1, Flags: PUBLIC - PLAYER_FIELD_CURRENT_SPEC_ID = UNIT_END + 0x32E, // Size: 1, Flags: PUBLIC - PLAYER_FIELD_TAXI_MOUNT_ANIM_KIT_ID = UNIT_END + 0x32F, // Size: 1, Flags: PUBLIC - PLAYER_FIELD_AVG_ITEM_LEVEL = UNIT_END + 0x330, // Size: 4, Flags: PUBLIC - PLAYER_FIELD_CURRENT_BATTLE_PET_BREED_QUALITY = UNIT_END + 0x334, // Size: 1, Flags: PUBLIC - PLAYER_FIELD_PRESTIGE = UNIT_END + 0x335, // Size: 1, Flags: PUBLIC - PLAYER_FIELD_HONOR_LEVEL = UNIT_END + 0x336, // Size: 1, Flags: PUBLIC - PLAYER_FIELD_INV_SLOT_HEAD = UNIT_END + 0x337, // Size: 748, Flags: PRIVATE - PLAYER_FIELD_END_NOT_SELF = UNIT_END + 0x337, - PLAYER_FARSIGHT = UNIT_END + 0x623, // Size: 4, Flags: PRIVATE - PLAYER__FIELD_KNOWN_TITLES = UNIT_END + 0x627, // Size: 12, Flags: PRIVATE - PLAYER_FIELD_COINAGE = UNIT_END + 0x633, // Size: 2, Flags: PRIVATE - PLAYER_XP = UNIT_END + 0x635, // Size: 1, Flags: PRIVATE - PLAYER_NEXT_LEVEL_XP = UNIT_END + 0x636, // Size: 1, Flags: PRIVATE - PLAYER_SKILL_LINEID = UNIT_END + 0x637, // Size: 448, Flags: PRIVATE - PLAYER_CHARACTER_POINTS = UNIT_END + 0x7F7, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_MAX_TALENT_TIERS = UNIT_END + 0x7F8, // Size: 1, Flags: PRIVATE - PLAYER_TRACK_CREATURES = UNIT_END + 0x7F9, // Size: 1, Flags: PRIVATE - PLAYER_TRACK_RESOURCES = UNIT_END + 0x7FA, // Size: 1, Flags: PRIVATE - PLAYER_EXPERTISE = UNIT_END + 0x7FB, // Size: 1, Flags: PRIVATE - PLAYER_OFFHAND_EXPERTISE = UNIT_END + 0x7FC, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_RANGED_EXPERTISE = UNIT_END + 0x7FD, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_COMBAT_RATING_EXPERTISE = UNIT_END + 0x7FE, // Size: 1, Flags: PRIVATE - PLAYER_BLOCK_PERCENTAGE = UNIT_END + 0x7FF, // Size: 1, Flags: PRIVATE - PLAYER_DODGE_PERCENTAGE = UNIT_END + 0x800, // Size: 1, Flags: PRIVATE - PLAYER_PARRY_PERCENTAGE = UNIT_END + 0x801, // Size: 1, Flags: PRIVATE - PLAYER_CRIT_PERCENTAGE = UNIT_END + 0x802, // Size: 1, Flags: PRIVATE - PLAYER_RANGED_CRIT_PERCENTAGE = UNIT_END + 0x803, // Size: 1, Flags: PRIVATE - PLAYER_OFFHAND_CRIT_PERCENTAGE = UNIT_END + 0x804, // Size: 1, Flags: PRIVATE - PLAYER_SPELL_CRIT_PERCENTAGE1 = UNIT_END + 0x805, // Size: 1, Flags: PRIVATE - PLAYER_SHIELD_BLOCK = UNIT_END + 0x806, // Size: 1, Flags: PRIVATE - PLAYER_SHIELD_BLOCK_CRIT_PERCENTAGE = UNIT_END + 0x807, // Size: 1, Flags: PRIVATE - PLAYER_MASTERY = UNIT_END + 0x808, // Size: 1, Flags: PRIVATE - PLAYER_SPEED = UNIT_END + 0x809, // Size: 1, Flags: PRIVATE - PLAYER_LIFESTEAL = UNIT_END + 0x80A, // Size: 1, Flags: PRIVATE - PLAYER_AVOIDANCE = UNIT_END + 0x80B, // Size: 1, Flags: PRIVATE - PLAYER_STURDINESS = UNIT_END + 0x80C, // Size: 1, Flags: PRIVATE - PLAYER_VERSATILITY = UNIT_END + 0x80D, // Size: 1, Flags: PRIVATE - PLAYER_VERSATILITY_BONUS = UNIT_END + 0x80E, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_PVP_POWER_DAMAGE = UNIT_END + 0x80F, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_PVP_POWER_HEALING = UNIT_END + 0x810, // Size: 1, Flags: PRIVATE - PLAYER_EXPLORED_ZONES_1 = UNIT_END + 0x811, // Size: 256, Flags: PRIVATE - PLAYER_FIELD_REST_INFO = UNIT_END + 0x911, // Size: 4, Flags: PRIVATE - PLAYER_FIELD_MOD_DAMAGE_DONE_POS = UNIT_END + 0x915, // Size: 7, Flags: PRIVATE - PLAYER_FIELD_MOD_DAMAGE_DONE_NEG = UNIT_END + 0x91C, // Size: 7, Flags: PRIVATE - PLAYER_FIELD_MOD_DAMAGE_DONE_PCT = UNIT_END + 0x923, // Size: 7, Flags: PRIVATE - PLAYER_FIELD_MOD_HEALING_DONE_POS = UNIT_END + 0x92A, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_MOD_HEALING_PCT = UNIT_END + 0x92B, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_MOD_HEALING_DONE_PCT = UNIT_END + 0x92C, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_MOD_PERIODIC_HEALING_DONE_PERCENT = UNIT_END + 0x92D, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_WEAPON_DMG_MULTIPLIERS = UNIT_END + 0x92E, // Size: 3, Flags: PRIVATE - PLAYER_FIELD_WEAPON_ATK_SPEED_MULTIPLIERS = UNIT_END + 0x931, // Size: 3, Flags: PRIVATE - PLAYER_FIELD_MOD_SPELL_POWER_PCT = UNIT_END + 0x934, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_MOD_RESILIENCE_PERCENT = UNIT_END + 0x935, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_OVERRIDE_SPELL_POWER_BY_AP_PCT = UNIT_END + 0x936, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_OVERRIDE_AP_BY_SPELL_POWER_PERCENT = UNIT_END + 0x937, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_MOD_TARGET_RESISTANCE = UNIT_END + 0x938, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_MOD_TARGET_PHYSICAL_RESISTANCE = UNIT_END + 0x939, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_LOCAL_FLAGS = UNIT_END + 0x93A, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_BYTES = UNIT_END + 0x93B, // Size: 1, Flags: PRIVATE - PLAYER_SELF_RES_SPELL = UNIT_END + 0x93C, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_PVP_MEDALS = UNIT_END + 0x93D, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_BUYBACK_PRICE_1 = UNIT_END + 0x93E, // Size: 12, Flags: PRIVATE - PLAYER_FIELD_BUYBACK_TIMESTAMP_1 = UNIT_END + 0x94A, // Size: 12, Flags: PRIVATE - PLAYER_FIELD_KILLS = UNIT_END + 0x956, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_LIFETIME_HONORABLE_KILLS = UNIT_END + 0x957, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_WATCHED_FACTION_INDEX = UNIT_END + 0x958, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_COMBAT_RATING_1 = UNIT_END + 0x959, // Size: 32, Flags: PRIVATE - PLAYER_FIELD_ARENA_TEAM_INFO_1_1 = UNIT_END + 0x979, // Size: 36, Flags: PRIVATE - PLAYER_FIELD_MAX_LEVEL = UNIT_END + 0x99D, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_SCALING_PLAYER_LEVEL_DELTA = UNIT_END + 0x99E, // Size: 1, Flags: PRIVATE - PLAYER_NO_REAGENT_COST_1 = UNIT_END + 0x99F, // Size: 4, Flags: PRIVATE - PLAYER_PET_SPELL_POWER = UNIT_END + 0x9A3, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_RESEARCHING_1 = UNIT_END + 0x9A4, // Size: 10, Flags: PRIVATE - PLAYER_PROFESSION_SKILL_LINE_1 = UNIT_END + 0x9AE, // Size: 2, Flags: PRIVATE - PLAYER_FIELD_UI_HIT_MODIFIER = UNIT_END + 0x9B0, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_UI_SPELL_HIT_MODIFIER = UNIT_END + 0x9B1, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_HOME_REALM_TIME_OFFSET = UNIT_END + 0x9B2, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_MOD_PET_HASTE = UNIT_END + 0x9B3, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_SUMMONED_BATTLE_PET_ID = UNIT_END + 0x9B4, // Size: 4, Flags: PRIVATE - PLAYER_FIELD_BYTES2 = UNIT_END + 0x9B8, // Size: 1, Flags: PRIVATE, URGENT_SELF_ONLY - PLAYER_FIELD_LFG_BONUS_FACTION_ID = UNIT_END + 0x9B9, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_LOOT_SPEC_ID = UNIT_END + 0x9BA, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_OVERRIDE_ZONE_PVP_TYPE = UNIT_END + 0x9BB, // Size: 1, Flags: PRIVATE, URGENT_SELF_ONLY - PLAYER_FIELD_BAG_SLOT_FLAGS = UNIT_END + 0x9BC, // Size: 4, Flags: PRIVATE - PLAYER_FIELD_BANK_BAG_SLOT_FLAGS = UNIT_END + 0x9C0, // Size: 7, Flags: PRIVATE - PLAYER_FIELD_INSERT_ITEMS_LEFT_TO_RIGHT = UNIT_END + 0x9C7, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_QUEST_COMPLETED = UNIT_END + 0x9C8, // Size: 875, Flags: PRIVATE - PLAYER_FIELD_HONOR = UNIT_END + 0xD33, // Size: 1, Flags: PRIVATE - PLAYER_FIELD_HONOR_NEXT_LEVEL = UNIT_END + 0xD34, // Size: 1, Flags: PRIVATE - PLAYER_END = UNIT_END + 0xD35, + PLAYER_QUEST_LOG = UNIT_END + 0x017, // Size: 800, Flags: PARTY_MEMBER + PLAYER_VISIBLE_ITEM = UNIT_END + 0x337, // Size: 38, Flags: PUBLIC + PLAYER_CHOSEN_TITLE = UNIT_END + 0x35D, // Size: 1, Flags: PUBLIC + PLAYER_FAKE_INEBRIATION = UNIT_END + 0x35E, // Size: 1, Flags: PUBLIC + PLAYER_FIELD_VIRTUAL_PLAYER_REALM = UNIT_END + 0x35F, // Size: 1, Flags: PUBLIC + PLAYER_FIELD_CURRENT_SPEC_ID = UNIT_END + 0x360, // Size: 1, Flags: PUBLIC + PLAYER_FIELD_TAXI_MOUNT_ANIM_KIT_ID = UNIT_END + 0x361, // Size: 1, Flags: PUBLIC + PLAYER_FIELD_AVG_ITEM_LEVEL = UNIT_END + 0x362, // Size: 4, Flags: PUBLIC + PLAYER_FIELD_CURRENT_BATTLE_PET_BREED_QUALITY = UNIT_END + 0x366, // Size: 1, Flags: PUBLIC + PLAYER_FIELD_PRESTIGE = UNIT_END + 0x367, // Size: 1, Flags: PUBLIC + PLAYER_FIELD_HONOR_LEVEL = UNIT_END + 0x368, // Size: 1, Flags: PUBLIC + PLAYER_FIELD_INV_SLOT_HEAD = UNIT_END + 0x369, // Size: 748, Flags: PRIVATE + PLAYER_FIELD_END_NOT_SELF = UNIT_END + 0x369, + PLAYER_FARSIGHT = UNIT_END + 0x655, // Size: 4, Flags: PRIVATE + PLAYER_FIELD_SUMMONED_BATTLE_PET_ID = UNIT_END + 0x659, // Size: 4, Flags: PRIVATE + PLAYER__FIELD_KNOWN_TITLES = UNIT_END + 0x65D, // Size: 12, Flags: PRIVATE + PLAYER_FIELD_COINAGE = UNIT_END + 0x669, // Size: 2, Flags: PRIVATE + PLAYER_XP = UNIT_END + 0x66B, // Size: 1, Flags: PRIVATE + PLAYER_NEXT_LEVEL_XP = UNIT_END + 0x66C, // Size: 1, Flags: PRIVATE + PLAYER_SKILL_LINEID = UNIT_END + 0x66D, // Size: 448, Flags: PRIVATE + PLAYER_CHARACTER_POINTS = UNIT_END + 0x82D, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_MAX_TALENT_TIERS = UNIT_END + 0x82E, // Size: 1, Flags: PRIVATE + PLAYER_TRACK_CREATURES = UNIT_END + 0x82F, // Size: 1, Flags: PRIVATE + PLAYER_TRACK_RESOURCES = UNIT_END + 0x830, // Size: 1, Flags: PRIVATE + PLAYER_EXPERTISE = UNIT_END + 0x831, // Size: 1, Flags: PRIVATE + PLAYER_OFFHAND_EXPERTISE = UNIT_END + 0x832, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_RANGED_EXPERTISE = UNIT_END + 0x833, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_COMBAT_RATING_EXPERTISE = UNIT_END + 0x834, // Size: 1, Flags: PRIVATE + PLAYER_BLOCK_PERCENTAGE = UNIT_END + 0x835, // Size: 1, Flags: PRIVATE + PLAYER_DODGE_PERCENTAGE = UNIT_END + 0x836, // Size: 1, Flags: PRIVATE + PLAYER_PARRY_PERCENTAGE = UNIT_END + 0x837, // Size: 1, Flags: PRIVATE + PLAYER_CRIT_PERCENTAGE = UNIT_END + 0x838, // Size: 1, Flags: PRIVATE + PLAYER_RANGED_CRIT_PERCENTAGE = UNIT_END + 0x839, // Size: 1, Flags: PRIVATE + PLAYER_OFFHAND_CRIT_PERCENTAGE = UNIT_END + 0x83A, // Size: 1, Flags: PRIVATE + PLAYER_SPELL_CRIT_PERCENTAGE1 = UNIT_END + 0x83B, // Size: 1, Flags: PRIVATE + PLAYER_SHIELD_BLOCK = UNIT_END + 0x83C, // Size: 1, Flags: PRIVATE + PLAYER_SHIELD_BLOCK_CRIT_PERCENTAGE = UNIT_END + 0x83D, // Size: 1, Flags: PRIVATE + PLAYER_MASTERY = UNIT_END + 0x83E, // Size: 1, Flags: PRIVATE + PLAYER_SPEED = UNIT_END + 0x83F, // Size: 1, Flags: PRIVATE + PLAYER_LIFESTEAL = UNIT_END + 0x840, // Size: 1, Flags: PRIVATE + PLAYER_AVOIDANCE = UNIT_END + 0x841, // Size: 1, Flags: PRIVATE + PLAYER_STURDINESS = UNIT_END + 0x842, // Size: 1, Flags: PRIVATE + PLAYER_VERSATILITY = UNIT_END + 0x843, // Size: 1, Flags: PRIVATE + PLAYER_VERSATILITY_BONUS = UNIT_END + 0x844, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_PVP_POWER_DAMAGE = UNIT_END + 0x845, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_PVP_POWER_HEALING = UNIT_END + 0x846, // Size: 1, Flags: PRIVATE + PLAYER_EXPLORED_ZONES_1 = UNIT_END + 0x847, // Size: 256, Flags: PRIVATE + PLAYER_FIELD_REST_INFO = UNIT_END + 0x947, // Size: 4, Flags: PRIVATE + PLAYER_FIELD_MOD_DAMAGE_DONE_POS = UNIT_END + 0x94B, // Size: 7, Flags: PRIVATE + PLAYER_FIELD_MOD_DAMAGE_DONE_NEG = UNIT_END + 0x952, // Size: 7, Flags: PRIVATE + PLAYER_FIELD_MOD_DAMAGE_DONE_PCT = UNIT_END + 0x959, // Size: 7, Flags: PRIVATE + PLAYER_FIELD_MOD_HEALING_DONE_POS = UNIT_END + 0x960, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_MOD_HEALING_PCT = UNIT_END + 0x961, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_MOD_HEALING_DONE_PCT = UNIT_END + 0x962, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_MOD_PERIODIC_HEALING_DONE_PERCENT = UNIT_END + 0x963, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_WEAPON_DMG_MULTIPLIERS = UNIT_END + 0x964, // Size: 3, Flags: PRIVATE + PLAYER_FIELD_WEAPON_ATK_SPEED_MULTIPLIERS = UNIT_END + 0x967, // Size: 3, Flags: PRIVATE + PLAYER_FIELD_MOD_SPELL_POWER_PCT = UNIT_END + 0x96A, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_MOD_RESILIENCE_PERCENT = UNIT_END + 0x96B, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_OVERRIDE_SPELL_POWER_BY_AP_PCT = UNIT_END + 0x96C, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_OVERRIDE_AP_BY_SPELL_POWER_PERCENT = UNIT_END + 0x96D, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_MOD_TARGET_RESISTANCE = UNIT_END + 0x96E, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_MOD_TARGET_PHYSICAL_RESISTANCE = UNIT_END + 0x96F, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_LOCAL_FLAGS = UNIT_END + 0x970, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_BYTES = UNIT_END + 0x971, // Size: 1, Flags: PRIVATE + PLAYER_SELF_RES_SPELL = UNIT_END + 0x972, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_PVP_MEDALS = UNIT_END + 0x973, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_BUYBACK_PRICE_1 = UNIT_END + 0x974, // Size: 12, Flags: PRIVATE + PLAYER_FIELD_BUYBACK_TIMESTAMP_1 = UNIT_END + 0x980, // Size: 12, Flags: PRIVATE + PLAYER_FIELD_KILLS = UNIT_END + 0x98C, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_LIFETIME_HONORABLE_KILLS = UNIT_END + 0x98D, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_WATCHED_FACTION_INDEX = UNIT_END + 0x98E, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_COMBAT_RATING_1 = UNIT_END + 0x98F, // Size: 32, Flags: PRIVATE + PLAYER_FIELD_ARENA_TEAM_INFO_1_1 = UNIT_END + 0x9AF, // Size: 36, Flags: PRIVATE + PLAYER_FIELD_MAX_LEVEL = UNIT_END + 0x9D3, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_SCALING_PLAYER_LEVEL_DELTA = UNIT_END + 0x9D4, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_MAX_CREATURE_SCALING_LEVEL = UNIT_END + 0x9D5, // Size: 1, Flags: PRIVATE + PLAYER_NO_REAGENT_COST_1 = UNIT_END + 0x9D6, // Size: 4, Flags: PRIVATE + PLAYER_PET_SPELL_POWER = UNIT_END + 0x9DA, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_RESEARCHING_1 = UNIT_END + 0x9DB, // Size: 10, Flags: PRIVATE + PLAYER_PROFESSION_SKILL_LINE_1 = UNIT_END + 0x9E5, // Size: 2, Flags: PRIVATE + PLAYER_FIELD_UI_HIT_MODIFIER = UNIT_END + 0x9E7, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_UI_SPELL_HIT_MODIFIER = UNIT_END + 0x9E8, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_HOME_REALM_TIME_OFFSET = UNIT_END + 0x9E9, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_MOD_PET_HASTE = UNIT_END + 0x9EA, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_BYTES2 = UNIT_END + 0x9EB, // Size: 1, Flags: PRIVATE, URGENT_SELF_ONLY + PLAYER_FIELD_LFG_BONUS_FACTION_ID = UNIT_END + 0x9EC, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_LOOT_SPEC_ID = UNIT_END + 0x9ED, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_OVERRIDE_ZONE_PVP_TYPE = UNIT_END + 0x9EE, // Size: 1, Flags: PRIVATE, URGENT_SELF_ONLY + PLAYER_FIELD_BAG_SLOT_FLAGS = UNIT_END + 0x9EF, // Size: 4, Flags: PRIVATE + PLAYER_FIELD_BANK_BAG_SLOT_FLAGS = UNIT_END + 0x9F3, // Size: 7, Flags: PRIVATE + PLAYER_FIELD_INSERT_ITEMS_LEFT_TO_RIGHT = UNIT_END + 0x9FA, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_QUEST_COMPLETED = UNIT_END + 0x9FB, // Size: 875, Flags: PRIVATE + PLAYER_FIELD_HONOR = UNIT_END + 0xD66, // Size: 1, Flags: PRIVATE + PLAYER_FIELD_HONOR_NEXT_LEVEL = UNIT_END + 0xD67, // Size: 1, Flags: PRIVATE + PLAYER_END = UNIT_END + 0xD68, }; enum PlayerDynamicFields @@ -315,7 +317,8 @@ enum PlayerDynamicFields PLAYER_DYNAMIC_FIELD_TOYS = UNIT_DYNAMIC_END + 0x006, // Flags: PRIVATE PLAYER_DYNAMIC_FIELD_TRANSMOG = UNIT_DYNAMIC_END + 0x007, // Flags: PRIVATE PLAYER_DYNAMIC_FIELD_CONDITIONAL_TRANSMOG = UNIT_DYNAMIC_END + 0x008, // Flags: PRIVATE - PLAYER_DYNAMIC_END = UNIT_DYNAMIC_END + 0x009, + PLAYER_DYNAMIC_FIELD_CHARACTER_RESTRICTIONS = UNIT_DYNAMIC_END + 0x009, // Flags: PRIVATE + PLAYER_DYNAMIC_END = UNIT_DYNAMIC_END + 0x00A, }; enum GameObjectFields @@ -389,7 +392,8 @@ enum AreaTriggerFields AREATRIGGER_SPELLVISUALID = OBJECT_END + 0x017, // Size: 1, Flags: DYNAMIC AREATRIGGER_BOUNDS_RADIUS_2D = OBJECT_END + 0x018, // Size: 1, Flags: DYNAMIC, URGENT AREATRIGGER_DECAL_PROPERTIES_ID = OBJECT_END + 0x019, // Size: 1, Flags: PUBLIC - AREATRIGGER_END = OBJECT_END + 0x01A, + AREATRIGGER_VISUAL_ANIMATION = OBJECT_END + 0x01A, // Size: 1, Flags: PUBLIC, URGENT + AREATRIGGER_END = OBJECT_END + 0x01B, }; enum AreaTriggerDynamicFields diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp index a3ca26c99c5..332924c0ea0 100644 --- a/src/server/game/Entities/Pet/Pet.cpp +++ b/src/server/game/Entities/Pet/Pet.cpp @@ -884,7 +884,6 @@ bool Guardian::InitStatsForLevel(uint8 petlevel) SetCreateStat(STAT_AGILITY, 22); SetCreateStat(STAT_STAMINA, 25); SetCreateStat(STAT_INTELLECT, 28); - SetCreateStat(STAT_SPIRIT, 27); } SetBonusDamage(0); diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 2809cf121d1..fefceea25e1 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -7205,10 +7205,10 @@ void Player::_ApplyItemBonuses(Item* item, uint8 slot, bool apply) HandleStatModifier(UNIT_MOD_STAT_INTELLECT, BASE_VALUE, float(val), apply); ApplyStatBuffMod(STAT_INTELLECT, CalculatePct(val, GetModifierValue(UNIT_MOD_STAT_INTELLECT, BASE_PCT_EXCLUDE_CREATE)), apply); break; - case ITEM_MOD_SPIRIT: //modify spirit - HandleStatModifier(UNIT_MOD_STAT_SPIRIT, BASE_VALUE, float(val), apply); - ApplyStatBuffMod(STAT_SPIRIT, CalculatePct(val, GetModifierValue(UNIT_MOD_STAT_SPIRIT, BASE_PCT_EXCLUDE_CREATE)), apply); - break; + // case ITEM_MOD_SPIRIT: //modify spirit + // HandleStatModifier(UNIT_MOD_STAT_SPIRIT, BASE_VALUE, float(val), apply); + // ApplyStatBuffMod(STAT_SPIRIT, CalculatePct(val, GetModifierValue(UNIT_MOD_STAT_SPIRIT, BASE_PCT_EXCLUDE_CREATE)), apply); + // break; case ITEM_MOD_STAMINA: //modify stamina HandleStatModifier(UNIT_MOD_STAT_STAMINA, BASE_VALUE, float(val), apply); ApplyStatBuffMod(STAT_STAMINA, CalculatePct(val, GetModifierValue(UNIT_MOD_STAT_STAMINA, BASE_PCT_EXCLUDE_CREATE)), apply); @@ -12930,11 +12930,11 @@ void Player::ApplyEnchantment(Item* item, EnchantmentSlot slot, bool apply, bool HandleStatModifier(UNIT_MOD_STAT_INTELLECT, TOTAL_VALUE, float(enchant_amount), apply); ApplyStatBuffMod(STAT_INTELLECT, (float)enchant_amount, apply); break; - case ITEM_MOD_SPIRIT: - TC_LOG_DEBUG("entities.player.items", "+ %u SPIRIT", enchant_amount); - HandleStatModifier(UNIT_MOD_STAT_SPIRIT, TOTAL_VALUE, float(enchant_amount), apply); - ApplyStatBuffMod(STAT_SPIRIT, (float)enchant_amount, apply); - break; + // case ITEM_MOD_SPIRIT: + // TC_LOG_DEBUG("entities.player.items", "+ %u SPIRIT", enchant_amount); + // HandleStatModifier(UNIT_MOD_STAT_SPIRIT, TOTAL_VALUE, float(enchant_amount), apply); + // ApplyStatBuffMod(STAT_SPIRIT, (float)enchant_amount, apply); + // break; case ITEM_MOD_STAMINA: TC_LOG_DEBUG("entities.player.items", "+ %u STAMINA", enchant_amount); HandleStatModifier(UNIT_MOD_STAT_STAMINA, TOTAL_VALUE, float(enchant_amount), apply); @@ -19641,7 +19641,7 @@ void Player::outDebugValues() const TC_LOG_DEBUG("entities.unit", "HP is: \t\t\t%u\t\tMP is: \t\t\t%u", GetMaxHealth(), GetMaxPower(POWER_MANA)); TC_LOG_DEBUG("entities.unit", "AGILITY is: \t\t%f\t\tSTRENGTH is: \t\t%f", GetStat(STAT_AGILITY), GetStat(STAT_STRENGTH)); - TC_LOG_DEBUG("entities.unit", "INTELLECT is: \t\t%f\t\tSPIRIT is: \t\t%f", GetStat(STAT_INTELLECT), GetStat(STAT_SPIRIT)); + TC_LOG_DEBUG("entities.unit", "INTELLECT is: \t\t%f", GetStat(STAT_INTELLECT)); TC_LOG_DEBUG("entities.unit", "STAMINA is: \t\t%f", GetStat(STAT_STAMINA)); TC_LOG_DEBUG("entities.unit", "Armor is: \t\t%u\t\tBlock is: \t\t%f", GetArmor(), GetFloatValue(PLAYER_BLOCK_PERCENTAGE)); TC_LOG_DEBUG("entities.unit", "HolyRes is: \t\t%u\t\tFireRes is: \t\t%u", GetResistance(SPELL_SCHOOL_HOLY), GetResistance(SPELL_SCHOOL_FIRE)); diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index e943672c4f0..2f2258118b0 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -681,7 +681,7 @@ enum QuestSlotOffsets }; #define MAX_QUEST_COUNTS 24 -#define MAX_QUEST_OFFSET 15 +#define MAX_QUEST_OFFSET 16 enum QuestSlotStateMask { diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp index ed6b9ec3696..447169a28d0 100644 --- a/src/server/game/Entities/Unit/StatSystem.cpp +++ b/src/server/game/Entities/Unit/StatSystem.cpp @@ -91,7 +91,7 @@ void Unit::UpdateDamagePhysical(WeaponAttackType attType) bool Player::UpdateStats(Stats stat) { - if (stat > STAT_SPIRIT) + if (stat >= MAX_STATS) return false; // value = ((base_value * base_pct) + total_value) * total_pct @@ -120,8 +120,6 @@ bool Player::UpdateStats(Stats stat) UpdateAllSpellCritChances(); UpdateArmor(); //SPELL_AURA_MOD_RESISTANCE_OF_INTELLECT_PERCENT, only armor currently break; - case STAT_SPIRIT: - break; default: break; } @@ -1023,7 +1021,6 @@ bool Guardian::UpdateStats(Stats stat) case STAT_AGILITY: UpdateArmor(); break; case STAT_STAMINA: UpdateMaxHealth(); break; case STAT_INTELLECT: UpdateMaxPower(POWER_MANA); break; - case STAT_SPIRIT: default: break; } diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 964572e5f02..47b65b6a425 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -6122,8 +6122,6 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg if (GetStat(STAT_AGILITY) > stat) { trigger_spell_id = 60233;stat = GetStat(STAT_AGILITY); } // intellect if (GetStat(STAT_INTELLECT)> stat) { trigger_spell_id = 60234;stat = GetStat(STAT_INTELLECT);} - // spirit - if (GetStat(STAT_SPIRIT) > stat) { trigger_spell_id = 60235; } break; } case 64568: // Blood Reserve @@ -10740,8 +10738,7 @@ bool Unit::HandleStatModifier(UnitMods unitMod, UnitModifierType modifierType, f case UNIT_MOD_STAT_STRENGTH: case UNIT_MOD_STAT_AGILITY: case UNIT_MOD_STAT_STAMINA: - case UNIT_MOD_STAT_INTELLECT: - case UNIT_MOD_STAT_SPIRIT: UpdateStats(GetStatByAuraGroup(unitMod)); break; + case UNIT_MOD_STAT_INTELLECT: UpdateStats(GetStatByAuraGroup(unitMod)); break; case UNIT_MOD_ARMOR: UpdateArmor(); break; case UNIT_MOD_HEALTH: UpdateMaxHealth(); break; @@ -10854,8 +10851,6 @@ Stats Unit::GetStatByAuraGroup(UnitMods unitMod) const case UNIT_MOD_STAT_AGILITY: stat = STAT_AGILITY; break; case UNIT_MOD_STAT_STAMINA: stat = STAT_STAMINA; break; case UNIT_MOD_STAT_INTELLECT: stat = STAT_INTELLECT; break; - case UNIT_MOD_STAT_SPIRIT: stat = STAT_SPIRIT; break; - default: break; } diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 68b27049f71..bf766267fee 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -482,11 +482,10 @@ enum TriggerCastFlags enum UnitMods { - UNIT_MOD_STAT_STRENGTH, // UNIT_MOD_STAT_STRENGTH..UNIT_MOD_STAT_SPIRIT must be in existed order, it's accessed by index values of Stats enum. + UNIT_MOD_STAT_STRENGTH, // UNIT_MOD_STAT_STRENGTH..UNIT_MOD_STAT_INTELLECT must be in existed order, it's accessed by index values of Stats enum. UNIT_MOD_STAT_AGILITY, UNIT_MOD_STAT_STAMINA, UNIT_MOD_STAT_INTELLECT, - UNIT_MOD_STAT_SPIRIT, UNIT_MOD_HEALTH, UNIT_MOD_MANA, // UNIT_MOD_MANA..UNIT_MOD_RUNIC_POWER must be in existed order, it's accessed by index values of Powers enum. UNIT_MOD_RAGE, @@ -499,6 +498,14 @@ enum UnitMods UNIT_MOD_ECLIPSE, UNIT_MOD_HOLY_POWER, UNIT_MOD_ALTERNATIVE, + UNIT_MOD_MAELSTROM, + UNIT_MOD_CHI, + UNIT_MOD_INSANITY, + UNIT_MOD_BURNING_EMBERS, + UNIT_MOD_DEMONIC_FURY, + UNIT_MOD_ARCANE_CHARGES, + UNIT_MOD_FURY, + UNIT_MOD_PAIN, UNIT_MOD_ARMOR, // UNIT_MOD_ARMOR..UNIT_MOD_RESISTANCE_ARCANE must be in existed order, it's accessed by index values of SpellSchools enum. UNIT_MOD_RESISTANCE_HOLY, UNIT_MOD_RESISTANCE_FIRE, @@ -514,11 +521,11 @@ enum UnitMods UNIT_MOD_END, // synonyms UNIT_MOD_STAT_START = UNIT_MOD_STAT_STRENGTH, - UNIT_MOD_STAT_END = UNIT_MOD_STAT_SPIRIT + 1, + UNIT_MOD_STAT_END = UNIT_MOD_STAT_INTELLECT + 1, UNIT_MOD_RESISTANCE_START = UNIT_MOD_ARMOR, UNIT_MOD_RESISTANCE_END = UNIT_MOD_RESISTANCE_ARCANE + 1, UNIT_MOD_POWER_START = UNIT_MOD_MANA, - UNIT_MOD_POWER_END = UNIT_MOD_ALTERNATIVE + 1 + UNIT_MOD_POWER_END = UNIT_MOD_PAIN + 1 }; enum BaseModGroup diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 0e93e93a136..5f7039b4b10 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -3579,63 +3579,54 @@ void ObjectMgr::BuildPlayerLevelInfo(uint8 race, uint8 _class, uint8 level, Play info->stats[STAT_STAMINA] += (lvl > 23 ? 2: (lvl > 1 ? 1: 0)); info->stats[STAT_AGILITY] += (lvl > 36 ? 1: (lvl > 6 && (lvl%2) ? 1: 0)); info->stats[STAT_INTELLECT] += (lvl > 9 && !(lvl%2) ? 1: 0); - info->stats[STAT_SPIRIT] += (lvl > 9 && !(lvl%2) ? 1: 0); break; case CLASS_PALADIN: info->stats[STAT_STRENGTH] += (lvl > 3 ? 1: 0); info->stats[STAT_STAMINA] += (lvl > 33 ? 2: (lvl > 1 ? 1: 0)); info->stats[STAT_AGILITY] += (lvl > 38 ? 1: (lvl > 7 && !(lvl%2) ? 1: 0)); info->stats[STAT_INTELLECT] += (lvl > 6 && (lvl%2) ? 1: 0); - info->stats[STAT_SPIRIT] += (lvl > 7 ? 1: 0); break; case CLASS_HUNTER: info->stats[STAT_STRENGTH] += (lvl > 4 ? 1: 0); info->stats[STAT_STAMINA] += (lvl > 4 ? 1: 0); info->stats[STAT_AGILITY] += (lvl > 33 ? 2: (lvl > 1 ? 1: 0)); info->stats[STAT_INTELLECT] += (lvl > 8 && (lvl%2) ? 1: 0); - info->stats[STAT_SPIRIT] += (lvl > 38 ? 1: (lvl > 9 && !(lvl%2) ? 1: 0)); break; case CLASS_ROGUE: info->stats[STAT_STRENGTH] += (lvl > 5 ? 1: 0); info->stats[STAT_STAMINA] += (lvl > 4 ? 1: 0); info->stats[STAT_AGILITY] += (lvl > 16 ? 2: (lvl > 1 ? 1: 0)); info->stats[STAT_INTELLECT] += (lvl > 8 && !(lvl%2) ? 1: 0); - info->stats[STAT_SPIRIT] += (lvl > 38 ? 1: (lvl > 9 && !(lvl%2) ? 1: 0)); break; case CLASS_PRIEST: info->stats[STAT_STRENGTH] += (lvl > 9 && !(lvl%2) ? 1: 0); info->stats[STAT_STAMINA] += (lvl > 5 ? 1: 0); info->stats[STAT_AGILITY] += (lvl > 38 ? 1: (lvl > 8 && (lvl%2) ? 1: 0)); info->stats[STAT_INTELLECT] += (lvl > 22 ? 2: (lvl > 1 ? 1: 0)); - info->stats[STAT_SPIRIT] += (lvl > 3 ? 1: 0); break; case CLASS_SHAMAN: info->stats[STAT_STRENGTH] += (lvl > 34 ? 1: (lvl > 6 && (lvl%2) ? 1: 0)); info->stats[STAT_STAMINA] += (lvl > 4 ? 1: 0); info->stats[STAT_AGILITY] += (lvl > 7 && !(lvl%2) ? 1: 0); info->stats[STAT_INTELLECT] += (lvl > 5 ? 1: 0); - info->stats[STAT_SPIRIT] += (lvl > 4 ? 1: 0); break; case CLASS_MAGE: info->stats[STAT_STRENGTH] += (lvl > 9 && !(lvl%2) ? 1: 0); info->stats[STAT_STAMINA] += (lvl > 5 ? 1: 0); info->stats[STAT_AGILITY] += (lvl > 9 && !(lvl%2) ? 1: 0); info->stats[STAT_INTELLECT] += (lvl > 24 ? 2: (lvl > 1 ? 1: 0)); - info->stats[STAT_SPIRIT] += (lvl > 33 ? 2: (lvl > 2 ? 1: 0)); break; case CLASS_WARLOCK: info->stats[STAT_STRENGTH] += (lvl > 9 && !(lvl%2) ? 1: 0); info->stats[STAT_STAMINA] += (lvl > 38 ? 2: (lvl > 3 ? 1: 0)); info->stats[STAT_AGILITY] += (lvl > 9 && !(lvl%2) ? 1: 0); info->stats[STAT_INTELLECT] += (lvl > 33 ? 2: (lvl > 2 ? 1: 0)); - info->stats[STAT_SPIRIT] += (lvl > 38 ? 2: (lvl > 3 ? 1: 0)); break; case CLASS_DRUID: info->stats[STAT_STRENGTH] += (lvl > 38 ? 2: (lvl > 6 && (lvl%2) ? 1: 0)); info->stats[STAT_STAMINA] += (lvl > 32 ? 2: (lvl > 4 ? 1: 0)); info->stats[STAT_AGILITY] += (lvl > 38 ? 2: (lvl > 8 && (lvl%2) ? 1: 0)); info->stats[STAT_INTELLECT] += (lvl > 38 ? 3: (lvl > 4 ? 1: 0)); - info->stats[STAT_SPIRIT] += (lvl > 38 ? 3: (lvl > 5 ? 1: 0)); } } } diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index 1ef2e7b0ed9..ed516b9faa9 100644 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -241,10 +241,9 @@ enum Stats : uint16 STAT_AGILITY = 1, STAT_STAMINA = 2, STAT_INTELLECT = 3, - STAT_SPIRIT = 4 }; -#define MAX_STATS 5 +#define MAX_STATS 4 enum Powers // (6.0) { |