diff options
author | xinef1 <w.szyszko2@gmail.com> | 2016-12-31 20:50:56 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2016-12-31 20:50:56 +0100 |
commit | 8ce5712552df47c6eff45c596b95a8890826d8b4 (patch) | |
tree | dd4ea473bf64210fec46c9315d64b20ff11d5d50 | |
parent | 48f30911b9e09e45ed4426d41c4284141037bcc6 (diff) |
Core/Pets: Fixed exploit where warlock can abandon its pet to generate new name (#18606)
-rw-r--r-- | src/server/game/Handlers/PetHandler.cpp | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index 6be8389a485..348f6048064 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -676,20 +676,15 @@ void WorldSession::HandlePetAbandon(WorldPacket& recvData) // pet/charmed Creature* pet = ObjectAccessor::GetCreatureOrPetOrVehicle(*_player, guid); - if (pet) + if (pet && pet->ToPet() && pet->ToPet()->getPetType() == HUNTER_PET) { - if (pet->IsPet()) + if (pet->GetGUID() == _player->GetPetGUID()) { - if (pet->GetGUID() == _player->GetPetGUID()) - { - uint32 feelty = pet->GetPower(POWER_HAPPINESS); - pet->SetPower(POWER_HAPPINESS, feelty > 50000 ? (feelty-50000) : 0); - } - - _player->RemovePet((Pet*)pet, PET_SAVE_AS_DELETED); + uint32 feelty = pet->GetPower(POWER_HAPPINESS); + pet->SetPower(POWER_HAPPINESS, feelty > 50000 ? (feelty-50000) : 0); } - else if (pet->GetGUID() == _player->GetCharmGUID()) - _player->StopCastingCharm(); + + _player->RemovePet((Pet*)pet, PET_SAVE_AS_DELETED); } } |