aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorclick <none@none>2010-07-21 15:49:47 +0200
committerclick <none@none>2010-07-21 15:49:47 +0200
commit66adaf5825b78c97974ce6534a2e00945d807377 (patch)
tree3ed00ff68899671201c95906e8624f5644384a4d
parent04fd9ac4ce0d474c764b194fb0057dc149803810 (diff)
Fix: Make stabled pets follow official regulations for levelling when taken out of stabled mode:
If the pet is more than five levels below the hunter, then as soon as it's removed from the stable it will level up to be exactly five levels below the hunter. --HG-- branch : trunk
-rw-r--r--src/server/game/Entities/Pet/Pet.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp
index 7e122adc8c1..9a8a5f58e40 100644
--- a/src/server/game/Entities/Pet/Pet.cpp
+++ b/src/server/game/Entities/Pet/Pet.cpp
@@ -2002,6 +2002,12 @@ void Pet::SynchronizeLevelWithOwner()
SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, objmgr.GetXPForLevel(owner->getLevel())/5);
SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, GetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP)-1);
}
+ if (getLevel() < owner->getLevel()-5)
+ {
+ GivePetLevel(owner->getLevel()-5);
+ SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, objmgr.GetXPForLevel(owner->getLevel()-5)/5);
+ SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, GetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP)-1);
+ }
break;
default:
break;