aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMachiavelli <machiavelli.trinity@gmail.com>2011-02-17 21:32:38 +0100
committerMachiavelli <machiavelli.trinity@gmail.com>2011-02-17 21:32:38 +0100
commit6ebf6725574ab216ff0abf9e54427d209acf8708 (patch)
tree7ae53ebe08fb3eeda029a731f2988b64e9217d31 /src
parent253891bf9f5f1c898e96cdbd61f49cd364f39eb4 (diff)
Core/Vehicles: Take in account current health percentage of vehichle when recalculating new HP based on vehicle gear scaling. Fixes an exploit that would allow vehicles to reset their HP in a jiffy.
Closes ticket #317
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Entities/Vehicle/Vehicle.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/server/game/Entities/Vehicle/Vehicle.cpp b/src/server/game/Entities/Vehicle/Vehicle.cpp
index f641680d2b2..6bd339afa14 100755
--- a/src/server/game/Entities/Vehicle/Vehicle.cpp
+++ b/src/server/game/Entities/Vehicle/Vehicle.cpp
@@ -352,9 +352,10 @@ bool Vehicle::AddPassenger(Unit *unit, int8 seatId, bool byAura)
averageItemLevel = scalingInfo->baseItemLevel;
averageItemLevel -= scalingInfo->baseItemLevel;
+ float currentHealthPct = me->GetHealthPct();
m_bonusHP = uint32(me->GetMaxHealth() * (averageItemLevel * scalingInfo->scalingFactor));
me->SetMaxHealth(me->GetMaxHealth() + m_bonusHP);
- me->SetHealth(me->GetHealth() + m_bonusHP);
+ me->SetHealth(uint32((me->GetHealth() + m_bonusHP) * currentHealthPct));
}
}