aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGacko <gacko28@gmx.de>2013-01-01 21:43:17 +0100
committerGacko <gacko28@gmx.de>2013-01-01 21:43:17 +0100
commit01b705c84422902201a9ae51b1fb457f9f53d601 (patch)
tree10e1321e6fe23e4f94adbb0d08c8920c216519c9 /src
parent87368cab45b82e0931045e2f5de9009d7075b58c (diff)
Core/Player: Fix armor calculation - 2nd try
Base armor value from WDB data includes the ArmorDamageModifier. Items of same item level, required level, armor type and equiptment slot should have (nearly) the same armor values. See following links for further proofs: http://pastebin.com/fqNJLYj4 http://www.wowhead.com/item=50466#comments:id=889035:reply=444786 The shown item should have a base armor value of 177 as similar items and a bonus armor value of 560 which equals 737 - like in DB atm.
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp4
-rw-r--r--src/server/game/Handlers/ItemHandler.cpp2
2 files changed, 5 insertions, 1 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 66e37a2e10f..a762cf18ffe 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -7957,8 +7957,12 @@ void Player::_ApplyItemBonuses(ItemTemplate const* proto, uint8 slot, bool apply
// If set ScalingStatValue armor get it or use item armor
uint32 armor = proto->Armor;
if (ssv)
+ {
if (uint32 ssvarmor = ssv->getArmorMod(proto->ScalingStatValue))
armor = ssvarmor;
+ }
+ else if (armor && proto->ArmorDamageModifier)
+ armor -= uint32(proto->ArmorDamageModifier);
if (armor)
{
diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp
index 712b1f5f25a..77d44dffd1b 100644
--- a/src/server/game/Handlers/ItemHandler.cpp
+++ b/src/server/game/Handlers/ItemHandler.cpp
@@ -348,7 +348,7 @@ void WorldSession::HandleItemQuerySingleOpcode(WorldPacket& recvData)
}
// resistances (7)
- data << (pProto->Armor ? pProto->Armor + uint32(pProto->ArmorDamageModifier) : 0);
+ data << pProto->Armor;
data << pProto->HolyRes;
data << pProto->FireRes;
data << pProto->NatureRes;