aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2016-04-26 18:56:35 +0200
committerShauren <shauren.trinity@gmail.com>2016-05-20 23:50:20 +0200
commitdf6d557a4d778093ec522d2c39c6c01acc41d978 (patch)
tree55ea1573d75628f8aa4516d4632607ad49c4a4f7 /src/server/game
parent70102f32fe38ae7d49acbd5ddee0239602d3cb94 (diff)
Core/Entities: Updated updatefields to 7.0.3.21414
Diffstat (limited to 'src/server/game')
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp9
-rw-r--r--src/server/game/Entities/Object/Updates/UpdateFieldFlags.cpp65
-rw-r--r--src/server/game/Entities/Object/Updates/UpdateFields.h280
-rw-r--r--src/server/game/Entities/Pet/Pet.cpp1
-rw-r--r--src/server/game/Entities/Player/Player.cpp20
-rw-r--r--src/server/game/Entities/Player/Player.h2
-rw-r--r--src/server/game/Entities/Unit/StatSystem.cpp5
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp7
-rw-r--r--src/server/game/Entities/Unit/Unit.h15
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp9
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h3
11 files changed, 227 insertions, 189 deletions
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)
{