mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 04:37:00 +00:00
[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:
parent
edbb840103
commit
fd7e86c79b
4 changed files with 14 additions and 8 deletions
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "10646"
|
||||
#define REVISION_NR "10647"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue