From 6ebf6725574ab216ff0abf9e54427d209acf8708 Mon Sep 17 00:00:00 2001 From: Machiavelli Date: Thu, 17 Feb 2011 21:32:38 +0100 Subject: 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 --- src/server/game/Entities/Vehicle/Vehicle.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') 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)); } } -- cgit v1.2.3