diff options
author | Machiavelli <none@none> | 2010-12-25 02:22:35 +0100 |
---|---|---|
committer | Machiavelli <none@none> | 2010-12-25 02:22:35 +0100 |
commit | 06955a1113bc921335c944adf8a193ce7c79c95d (patch) | |
tree | 35da0779e8d4176d570f55ab2ac6a66e18fd0ef9 /src | |
parent | 95eb430dc0e5b12b60dbfa1f7d127266776d3b7d (diff) |
Core/Entities: Fix guid lookup for linked respawn system
--HG--
branch : trunk
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Entities/Creature/Creature.cpp | 3 | ||||
-rwxr-xr-x | src/server/game/Entities/GameObject/GameObject.cpp | 5 |
2 files changed, 5 insertions, 3 deletions
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 |