From 06955a1113bc921335c944adf8a193ce7c79c95d Mon Sep 17 00:00:00 2001 From: Machiavelli Date: Sat, 25 Dec 2010 02:22:35 +0100 Subject: Core/Entities: Fix guid lookup for linked respawn system --HG-- branch : trunk --- src/server/game/Entities/Creature/Creature.cpp | 3 ++- src/server/game/Entities/GameObject/GameObject.cpp | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index caeba5de081..4230ef7708d 100755 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -464,7 +464,8 @@ void Creature::Update(uint32 diff) if (!allowed) // Will be rechecked on next Update call break; - time_t linkedRespawntime = sObjectMgr->GetLinkedRespawnTime(GetGUID(), GetMap()->GetInstanceId()); + uint64 dbtableHighGuid = MAKE_NEW_GUID(m_DBTableGuid, GetEntry(), HIGHGUID_UNIT); + time_t linkedRespawntime = sObjectMgr->GetLinkedRespawnTime(dbtableHighGuid, GetMap()->GetInstanceId()); if (!linkedRespawntime) // Can respawn Respawn(); else // the master is dead diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 5e117f3d153..73499dad5bb 100755 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -326,10 +326,11 @@ void GameObject::Update(uint32 diff) time_t now = time(NULL); if (m_respawnTime <= now) // timer expired { - time_t linkedRespawntime = sObjectMgr->GetLinkedRespawnTime(GetGUID(), GetMap()->GetInstanceId()); + uint64 dbtableHighGuid = MAKE_NEW_GUID(m_DBTableGuid, GetEntry(), HIGHGUID_GAMEOBJECT); + time_t linkedRespawntime = sObjectMgr->GetLinkedRespawnTime(dbtableHighGuid, GetMap()->GetInstanceId()); if (linkedRespawntime) // Can't respawn, the master is dead { - uint64 targetGuid = sObjectMgr->GetLinkedRespawnGuid(GetGUID()); + uint64 targetGuid = sObjectMgr->GetLinkedRespawnGuid(dbtableHighGuid); if (targetGuid == GetGUID()) // if linking self, never respawn (check delayed to next day) SetRespawnTime(DAY); else -- cgit v1.2.3