*A temp fix for the bug that dismiss pets cause crash.
--HG-- branch : trunk
This commit is contained in:
@@ -63,9 +63,13 @@ void WorldSession::HandlePetAction( WorldPacket & recv_data )
|
||||
if(pet->GetTypeId() == TYPEID_PLAYER && !(flag == ACT_COMMAND && spellid == COMMAND_ATTACK))
|
||||
return;
|
||||
|
||||
for(ControlList::iterator itr = GetPlayer()->m_Controlled.begin(); itr != GetPlayer()->m_Controlled.end(); ++itr)
|
||||
if((*itr)->GetEntry() == pet->GetEntry() && (*itr)->isAlive())
|
||||
HandlePetActionHelper(*itr, guid1, spellid, flag, guid2);
|
||||
for(ControlList::iterator itr = GetPlayer()->m_Controlled.begin(); itr != GetPlayer()->m_Controlled.end();)
|
||||
{
|
||||
Unit *unit = *itr;
|
||||
++itr;
|
||||
if(unit->GetEntry() == pet->GetEntry() && unit->isAlive())
|
||||
HandlePetActionHelper(unit, guid1, spellid, flag, guid2);
|
||||
}
|
||||
}
|
||||
|
||||
void WorldSession::HandlePetActionHelper(Unit *pet, uint64 guid1, uint16 spellid, uint16 flag, uint64 guid2)
|
||||
|
||||
@@ -8253,7 +8253,6 @@ Unit* Unit::GetCharm() const
|
||||
|
||||
void Unit::SetPet(Creature* pet, bool apply)
|
||||
{
|
||||
sLog.outError("before %u", GetPetGUID());
|
||||
if(apply)
|
||||
{
|
||||
if(!GetPetGUID())
|
||||
@@ -8280,7 +8279,6 @@ void Unit::SetPet(Creature* pet, bool apply)
|
||||
}
|
||||
}
|
||||
}
|
||||
sLog.outError("after %u", GetPetGUID());
|
||||
}
|
||||
|
||||
void Unit::SetCharm(Unit* charm, bool apply)
|
||||
@@ -11221,10 +11219,6 @@ void Unit::RemoveFromWorld()
|
||||
RemoveCharmAuras();
|
||||
RemoveBindSightAuras();
|
||||
RemoveNotOwnSingleTargetAuras();
|
||||
}
|
||||
|
||||
//if(m_uint32Values)
|
||||
{
|
||||
// if it has charmer or owner, it must be in someone's controllist and server will crash
|
||||
assert(!GetCharmerGUID());
|
||||
assert(!GetOwnerGUID());
|
||||
|
||||
Reference in New Issue
Block a user