From f9ca7d5dcf4ff730158bcf06dd1f0c423afeff11 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Sun, 22 Jul 2018 15:50:32 +0200 Subject: [PATCH 1/5] Core/Maps: fixed a crash regarding terrain swap grids --- src/server/game/Maps/Map.cpp | 2 +- src/server/scripts/Commands/cs_npc.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 476b369c1e6..9698cd2527a 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -2360,7 +2360,7 @@ GridMap* Map::GetGrid(uint32 mapId, float x, float y) GridMap* grid = GridMaps[gx][gy]; auto childMapItr = std::find_if(m_childTerrainMaps->begin(), m_childTerrainMaps->end(), [mapId](Map* childTerrainMap) { return childTerrainMap->GetId() == mapId; }); - if (childMapItr != m_childTerrainMaps->end() && (*childMapItr)->GridMaps[gx][gy]->fileExists()) + if (childMapItr != m_childTerrainMaps->end() && (*childMapItr)->GridMaps[gx][gy] && (*childMapItr)->GridMaps[gx][gy]->fileExists()) grid = (*childMapItr)->GridMaps[gx][gy]; return grid; diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp index 8b080f4243a..640e83ec446 100644 --- a/src/server/scripts/Commands/cs_npc.cpp +++ b/src/server/scripts/Commands/cs_npc.cpp @@ -794,7 +794,7 @@ public: std::string curRespawnDelayStr = secsToTimeString(uint64(curRespawnDelay), true); std::string defRespawnDelayStr = secsToTimeString(target->GetRespawnDelay(), true); - handler->PSendSysMessage(LANG_NPCINFO_CHAR, target->GetName().c_str(), target->GetSpawnId(), target->GetGUID().GetCounter(), entry, faction, npcflags, displayid, nativeid); + handler->PSendSysMessage(LANG_NPCINFO_CHAR, target->GetSpawnId(), target->GetGUID().GetCounter(), entry, faction, npcflags, displayid, nativeid); if (target->GetCreatureData() && target->GetCreatureData()->spawnGroupData->groupId) { SpawnGroupTemplateData const* const groupData = target->GetCreatureData()->spawnGroupData; From c07841e2ee110b3f027a2f2a250ca9f3f5b65de7 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Sun, 22 Jul 2018 20:54:05 +0200 Subject: [PATCH 2/5] Core/Scripts: fixed loading scriptnames for creatures --- src/server/game/Globals/ObjectMgr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 292cce2606f..5a1f1bf8f0d 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -1898,7 +1898,7 @@ void ObjectMgr::LoadCreatures() data.phaseId = fields[23].GetUInt32(); data.phaseGroup = fields[24].GetUInt32(); data.terrainSwapMap = fields[25].GetInt32(); - data.scriptId = GetScriptId(fields[22].GetString()); + data.scriptId = GetScriptId(fields[26].GetString()); data.spawnGroupData = &_spawnGroupDataStore[0]; MapEntry const* mapEntry = sMapStore.LookupEntry(data.spawnPoint.GetMapId()); From ce7757639cacdc7b2000a3035d36494838ccb9a4 Mon Sep 17 00:00:00 2001 From: Aokromes Date: Sun, 22 Jul 2018 21:37:25 +0200 Subject: [PATCH 3/5] Fix linux build --- src/server/game/Instances/InstanceScript.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp index b8fb662b9a4..19071c3350c 100644 --- a/src/server/game/Instances/InstanceScript.cpp +++ b/src/server/game/Instances/InstanceScript.cpp @@ -344,7 +344,7 @@ bool InstanceScript::SetBossState(uint32 id, EncounterState state) if (bossInfo->state == TO_BE_DECIDED) // loading { bossInfo->state = state; - TC_LOG_DEBUG("scripts", "InstanceScript: Initialize boss %u state as %s (map %u, %u).", id, GetBossStateName(state), instance->GetId(), instance->GetInstanceId()); + TC_LOG_DEBUG("scripts", "InstanceScript: Initialize boss %u state as %s (map %u, %u).", id, GetBossStateName(state).c_str(), instance->GetId(), instance->GetInstanceId()); return false; } @@ -355,7 +355,7 @@ bool InstanceScript::SetBossState(uint32 id, EncounterState state) if (bossInfo->state == DONE) { - TC_LOG_ERROR("map", "InstanceScript: Tried to set instance state from %s back to %s for map %u, instance id %u. Blocked!", GetBossStateName(bossInfo->state), GetBossStateName(state), instance->GetId(), instance->GetInstanceId()); + TC_LOG_ERROR("map", "InstanceScript: Tried to set instance state from %s back to %s for map %u, instance id %u. Blocked!", GetBossStateName(bossInfo->state).c_str(), GetBossStateName(state).c_str(), instance->GetId(), instance->GetInstanceId()); return false; } From ed6053e05cf2148941a4fecace43cf4b92813c35 Mon Sep 17 00:00:00 2001 From: Aokromes Date: Sun, 22 Jul 2018 23:39:30 +0200 Subject: [PATCH 4/5] make travis happy --- sql/base/auth_database.sql | 3 ++- src/server/game/Entities/Creature/Creature.cpp | 2 +- src/server/game/Globals/ObjectMgr.cpp | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/sql/base/auth_database.sql b/sql/base/auth_database.sql index 8d4e3dcb282..4ed53d49dc4 100644 --- a/sql/base/auth_database.sql +++ b/sql/base/auth_database.sql @@ -1962,7 +1962,8 @@ INSERT INTO `updates` VALUES ('2018_05_15_00_auth.sql','9076B44013D5BE1E92A06BDE7CE4F9B6663272CC','ARCHIVED','2018-05-15 01:40:04',0), ('2018_06_15_00_auth.sql','28E2E814F529190BC9423E2A220970F60307DD22','ARCHIVED','2018-06-15 01:40:04',0), ('2018_06_23_00_auth.sql','BE35312C386A127D047E5A7CE0D14DB41D905F8E','ARCHIVED','2018-06-23 01:40:04',0), -('2018_07_15_00_auth.sql','47DA80411544E574DD26BA2990165AC579BE72AB','ARCHIVED','2018-07-15 01:40:04',0); +('2018_07_15_00_auth.sql','47DA80411544E574DD26BA2990165AC579BE72AB','ARCHIVED','2018-07-15 01:40:04',0), +('2018_07_21_00_auth.sql','93185DC1BCA6A0225EA4CC4ACB1BA26F089E8131','ARCHIVED','2018-07-21 01:40:04',0); /*!40000 ALTER TABLE `updates` ENABLE KEYS */; UNLOCK TABLES; diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 6419fdff1f5..a92ae3e960d 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -916,7 +916,7 @@ void Creature::Motion_Initialize() GetMotionMaster()->Initialize(); } -bool Creature::Create(ObjectGuid::LowType guidlow, Map* map, uint32 phaseMask, uint32 entry, Position const& pos, CreatureData const* data /*= nullptr*/, uint32 vehId /*= 0*/, bool dynamic) +bool Creature::Create(ObjectGuid::LowType guidlow, Map* map, uint32 /*phaseMask*/, uint32 entry, Position const& pos, CreatureData const* data /*= nullptr*/, uint32 vehId /*= 0*/, bool dynamic) { ASSERT(map); SetMap(map); diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 5a1f1bf8f0d..c4f970117c3 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -2008,7 +2008,7 @@ void ObjectMgr::LoadCreatures() TC_LOG_ERROR("sql.sql", "Table `creature` have creature (GUID: %u Entry: %u) with `terrainSwapMap` %u does not exist, set to -1", guid, data.id, data.terrainSwapMap); data.terrainSwapMap = -1; } - else if (terrainSwapEntry->rootPhaseMap != data.spawnPoint.GetMapId()) + else if (terrainSwapEntry->rootPhaseMap != int32(data.spawnPoint.GetMapId())) { TC_LOG_ERROR("sql.sql", "Table `creature` have creature (GUID: %u Entry: %u) with `terrainSwapMap` %u which cannot be used on spawn map, set to -1", guid, data.id, data.terrainSwapMap); data.terrainSwapMap = -1; @@ -2314,7 +2314,7 @@ void ObjectMgr::LoadGameObjects() TC_LOG_ERROR("sql.sql", "Table `gameobject` have gameobject (GUID: %u Entry: %u) with `terrainSwapMap` %u does not exist, set to -1", guid, data.id, data.terrainSwapMap); data.terrainSwapMap = -1; } - else if (terrainSwapEntry->rootPhaseMap != data.spawnPoint.GetMapId()) + else if (terrainSwapEntry->rootPhaseMap != int32(data.spawnPoint.GetMapId())) { TC_LOG_ERROR("sql.sql", "Table `gameobject` have gameobject (GUID: %u Entry: %u) with `terrainSwapMap` %u which cannot be used on spawn map, set to -1", guid, data.id, data.terrainSwapMap); data.terrainSwapMap = -1; From e9a9e9af872f02a0d560735f61530030b57adbaf Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Mon, 23 Jul 2018 11:07:10 +0200 Subject: [PATCH 5/5] Core/GameObjects: fixed a crash regarding dynamic spawning. Thanks @koyaa for digging into it --- src/server/game/Globals/ObjectMgr.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index c4f970117c3..de82482aea3 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -2093,6 +2093,7 @@ ObjectGuid::LowType ObjectMgr::AddGameObjectData(uint32 entry, uint32 mapId, Pos data.phaseMask = PHASEMASK_NORMAL; data.artKit = goinfo->type == GAMEOBJECT_TYPE_CAPTURE_POINT ? 21 : 0; data.dbData = false; + data.spawnGroupData = GetLegacySpawnGroup(); AddGameobjectToGrid(spawnId, &data);