diff options
author | Shauren <shauren.trinity@gmail.com> | 2019-01-15 16:54:57 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2019-01-15 16:54:57 +0100 |
commit | ec1cfa36f4c286ad8037516460a4e99ea5d7a5ed (patch) | |
tree | e350c0dc66fc456db9136b07def1a362c5424fe1 /src | |
parent | 6859dfa2d157f0d174004a00a9d047d6eb38f9a1 (diff) |
Core/Commands: Fixed creature/gameobject move commands not updating which cell they belong to
Closes #22720
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Commands/cs_gobject.cpp | 4 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_npc.cpp | 4 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/server/scripts/Commands/cs_gobject.cpp b/src/server/scripts/Commands/cs_gobject.cpp index f13ca7b9c9b..0e65130fe61 100644 --- a/src/server/scripts/Commands/cs_gobject.cpp +++ b/src/server/scripts/Commands/cs_gobject.cpp @@ -503,7 +503,11 @@ public: Map* map = object->GetMap(); object->Relocate(x, y, z, object->GetOrientation()); + + // update which cell has this gameobject registered for loading + sObjectMgr->RemoveGameobjectFromGrid(guidLow, object->GetGameObjectData()); object->SaveToDB(); + sObjectMgr->AddGameobjectToGrid(guidLow, object->GetGameObjectData()); // Generate a completely new spawn with new guid // 3.3.5a client caches recently deleted objects and brings them back to life diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp index 3148b700730..243aa3cb104 100644 --- a/src/server/scripts/Commands/cs_npc.cpp +++ b/src/server/scripts/Commands/cs_npc.cpp @@ -778,7 +778,9 @@ public: } // update position in memory + sObjectMgr->RemoveCreatureFromGrid(lowguid, data); const_cast<CreatureData*>(data)->spawnPoint.Relocate(*player); + sObjectMgr->AddCreatureToGrid(lowguid, data); // update position in DB PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_CREATURE_POSITION); @@ -837,7 +839,7 @@ public: handler->SetSentErrorMessage(true); return false; } - + if (!sCreatureDisplayInfoStore.LookupEntry(displayId)) { handler->PSendSysMessage(LANG_COMMAND_INVALID_PARAM, args); |