diff options
Diffstat (limited to 'src/server/scripts')
| -rw-r--r-- | src/server/scripts/Commands/cs_go.cpp | 6 | ||||
| -rw-r--r-- | src/server/scripts/Commands/cs_group.cpp | 2 | ||||
| -rw-r--r-- | src/server/scripts/Commands/cs_misc.cpp | 13 |
3 files changed, 13 insertions, 8 deletions
diff --git a/src/server/scripts/Commands/cs_go.cpp b/src/server/scripts/Commands/cs_go.cpp index 5ab5395612f..5645425f356 100644 --- a/src/server/scripts/Commands/cs_go.cpp +++ b/src/server/scripts/Commands/cs_go.cpp @@ -338,14 +338,16 @@ public: } // update to parent zone if exist (client map show only zones without parents) - AreaTableEntry const* zoneEntry = areaEntry->ParentAreaID ? sAreaTableStore.LookupEntry(areaEntry->ParentAreaID) : areaEntry; + AreaTableEntry const* zoneEntry = areaEntry->ParentAreaID && areaEntry->GetFlags().HasFlag(AreaFlags::IsSubzone) + ? sAreaTableStore.LookupEntry(areaEntry->ParentAreaID) + : areaEntry; ASSERT(zoneEntry); x /= 100.0f; y /= 100.0f; std::shared_ptr<TerrainInfo> terrain = sTerrainMgr.LoadTerrain(zoneEntry->ContinentID); - if (!sDB2Manager.Zone2MapCoordinates(areaEntry->ParentAreaID ? uint32(areaEntry->ParentAreaID) : areaId, x, y)) + if (!sDB2Manager.Zone2MapCoordinates(zoneEntry->ID, x, y)) { handler->PSendSysMessage(LANG_INVALID_ZONE_MAP, areaId, areaEntry->AreaName[handler->GetSessionDbcLocale()], terrain->GetId(), terrain->GetMapName()); handler->SetSentErrorMessage(true); diff --git a/src/server/scripts/Commands/cs_group.cpp b/src/server/scripts/Commands/cs_group.cpp index 6ddaa03c675..24e412e0c93 100644 --- a/src/server/scripts/Commands/cs_group.cpp +++ b/src/server/scripts/Commands/cs_group.cpp @@ -506,7 +506,7 @@ public: phases = PhasingHandler::FormatPhases(p->GetPhaseShift()); AreaTableEntry const* area = sAreaTableStore.LookupEntry(p->GetAreaId()); - if (area) + if (area && area->GetFlags().HasFlag(AreaFlags::IsSubzone)) { AreaTableEntry const* zone = sAreaTableStore.LookupEntry(area->ParentAreaID); if (zone) diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp index a368b7033e5..30504875544 100644 --- a/src/server/scripts/Commands/cs_misc.cpp +++ b/src/server/scripts/Commands/cs_misc.cpp @@ -1014,7 +1014,7 @@ public: uint32 zoneId = player->GetZoneId(); AreaTableEntry const* areaEntry = sAreaTableStore.LookupEntry(zoneId); - if (!areaEntry || areaEntry->ParentAreaID !=0) + if (!areaEntry || areaEntry->GetFlags().HasFlag(AreaFlags::IsSubzone)) { handler->PSendSysMessage(LANG_COMMAND_GRAVEYARDWRONGZONE, graveyardId, zoneId); handler->SetSentErrorMessage(true); @@ -1953,11 +1953,14 @@ public: { zoneName = area->AreaName[locale]; - AreaTableEntry const* zone = sAreaTableStore.LookupEntry(area->ParentAreaID); - if (zone) + if (area->GetFlags().HasFlag(AreaFlags::IsSubzone)) { - areaName = zoneName; - zoneName = zone->AreaName[locale]; + AreaTableEntry const* zone = sAreaTableStore.LookupEntry(area->ParentAreaID); + if (zone) + { + areaName = zoneName; + zoneName = zone->AreaName[locale]; + } } } |
