diff options
author | Machiavelli <machiavelli.trinity@gmail.com> | 2011-02-17 21:32:38 +0100 |
---|---|---|
committer | Machiavelli <machiavelli.trinity@gmail.com> | 2011-02-17 21:32:38 +0100 |
commit | 6ebf6725574ab216ff0abf9e54427d209acf8708 (patch) | |
tree | 7ae53ebe08fb3eeda029a731f2988b64e9217d31 /src | |
parent | 253891bf9f5f1c898e96cdbd61f49cd364f39eb4 (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-x | src/server/game/Entities/Vehicle/Vehicle.cpp | 3 |
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)); } } |