[10647] Show die animation at totem destroy.

Or any creature type die with linked unsummon.

Original patch provided by Eggxp.
This commit is contained in:
VladimirMangos 2010-10-26 16:41:40 +04:00
parent edbb840103
commit fd7e86c79b
4 changed files with 14 additions and 8 deletions

View file

@ -723,7 +723,7 @@ Map::Remove(T *obj, bool remove)
else
obj->RemoveFromWorld();
UpdateObjectVisibility(obj,cell,p); // i think will be better to call this function while object still in grid, this changes nothing but logically is better(as for me)
UpdateObjectVisibility(obj,cell,p); // i think will be better to call this function while object still in grid, this changes nothing but logically is better(as for me)
RemoveFromGrid(obj,grid,cell);
obj->ResetMap();

View file

@ -220,7 +220,7 @@ void Object::DestroyForPlayer( Player *target, bool anim ) const
{
MANGOS_ASSERT(target);
WorldPacket data(SMSG_DESTROY_OBJECT, 8);
WorldPacket data(SMSG_DESTROY_OBJECT, 9);
data << GetObjectGuid();
data << uint8(anim ? 1 : 0); // WotLK (bool), may be despawn animation
target->GetSession()->SendPacket(&data);
@ -2084,4 +2084,4 @@ bool WorldObject::IsControlledByPlayer() const
default:
return false;
}
}
}

View file

@ -19359,12 +19359,18 @@ void Player::UpdateVisibilityOf(WorldObject const* viewPoint, WorldObject* targe
{
if(!target->isVisibleForInState(this, viewPoint, true))
{
if (target->GetTypeId()==TYPEID_UNIT)
BeforeVisibilityDestroy<Creature>((Creature*)target,this);
ObjectGuid t_guid = target->GetGUID();
target->DestroyForPlayer(this);
if (target->GetTypeId()==TYPEID_UNIT)
{
BeforeVisibilityDestroy<Creature>((Creature*)target,this);
// at remove from map (destroy) show kill animation (in different out of range/stealth case)
target->DestroyForPlayer(this, !target->IsInWorld() && ((Creature*)target)->isDead());
}
else
target->DestroyForPlayer(this);
m_clientGUIDs.erase(t_guid);
DEBUG_FILTER_LOG(LOG_FILTER_VISIBILITY_CHANGES, "%s out of range for player %u. Distance = %f",t_guid.GetString().c_str(),GetGUIDLow(),GetDistance(target));

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__
#define __REVISION_NR_H__
#define REVISION_NR "10646"
#define REVISION_NR "10647"
#endif // __REVISION_NR_H__