diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp | 2 | ||||
-rw-r--r-- | src/game/Corpse.cpp | 8 | ||||
-rw-r--r-- | src/game/Object.cpp | 8 |
3 files changed, 11 insertions, 7 deletions
diff --git a/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp b/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp index b820b947e9e..3fca340a7b3 100644 --- a/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp +++ b/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp @@ -1012,7 +1012,7 @@ struct TRINITY_DLL_DECL npc_death_knight_initiateAI : public SpellAI { if (m_bIsDuelInProgress && pDoneBy->IsControlledByPlayer()) { - if (pDoneBy->GetGUID() != m_uiDuelerGUID || pDoneBy->GetOwnerGUID() != m_uiDuelerGUID) // other players cannot help + if (pDoneBy->GetGUID() != m_uiDuelerGUID && pDoneBy->GetOwnerGUID() != m_uiDuelerGUID) // other players cannot help uiDamage = 0; else if (uiDamage >= m_creature->GetHealth()) { diff --git a/src/game/Corpse.cpp b/src/game/Corpse.cpp index 7fc8dc7fb50..6aec1da7ef9 100644 --- a/src/game/Corpse.cpp +++ b/src/game/Corpse.cpp @@ -81,10 +81,6 @@ bool Corpse::Create( uint32 guidlow, Player *owner) { ASSERT(owner); - //we need to assign owner's map for corpse - //in other way we will get a crash in Corpse::SaveToDB() - SetMap(owner->GetMap()); - Relocate(owner->GetPositionX(), owner->GetPositionY(), owner->GetPositionZ(), owner->GetOrientation()); if(!IsPositionValid()) @@ -94,6 +90,10 @@ bool Corpse::Create( uint32 guidlow, Player *owner) return false; } + //we need to assign owner's map for corpse + //in other way we will get a crash in Corpse::SaveToDB() + SetMap(owner->GetMap()); + WorldObject::_Create(guidlow, HIGHGUID_CORPSE, owner->GetPhaseMask()); SetFloatValue( OBJECT_FIELD_SCALE_X, 1 ); diff --git a/src/game/Object.cpp b/src/game/Object.cpp index 334790402b9..2e3aa8e0528 100644 --- a/src/game/Object.cpp +++ b/src/game/Object.cpp @@ -82,10 +82,14 @@ Object::Object( ) : m_PackGUID(sizeof(uint64)+1) WorldObject::~WorldObject() { + // this may happen because there are many !create/delete if(m_isWorldObject && m_currMap) { - sLog.outCrash("Object::~Object - guid="UI64FMTD", typeid=%d, entry=%u deleted but still in map!!", GetGUID(), GetTypeId(), GetEntry()); - assert(false); + if(GetTypeId() == TYPEID_CORPSE) + { + sLog.outCrash("Object::~Object Corpse guid="UI64FMTD", type=%d, entry=%u deleted but still in map!!", GetGUID(), ((Corpse*)this)->GetType(), GetEntry()); + assert(false); + } ResetMap(); } } |