From 7b27b98599bf7f648ed0dfc329421b27bb2783c4 Mon Sep 17 00:00:00 2001 From: Tartalo Date: Fri, 9 Jul 2010 13:12:25 +0200 Subject: Remove double requirement check in AreaTrigger teleport --HG-- branch : trunk --- src/server/game/Server/Protocol/Handlers/MiscHandler.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp b/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp index 3bc5e8d507f..06a2210d79f 100644 --- a/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp @@ -931,8 +931,9 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket & recv_data) if (!at) return; - if (!GetPlayer()->Satisfy(objmgr.GetAccessRequirement(at->access_id), at->target_mapId, true)) - return; + // MapManager::CanPlayerEnter() calls players->Satisfy() so this is not needed here + // if (!GetPlayer()->Satisfy(objmgr.GetAccessRequirement(at->access_id), at->target_mapId, true)) + // return; // check if player can enter instance : instance not full, and raid instance not in encounter fight if (!sMapMgr.CanPlayerEnter(at->target_mapId, GetPlayer(), false)) -- cgit v1.2.3 From a95bafefda815e2a06470de68e2544784309b5ae Mon Sep 17 00:00:00 2001 From: Tartalo Date: Fri, 9 Jul 2010 13:22:07 +0200 Subject: Check map entering requirements only if areatrigger teleport changes map --HG-- branch : trunk --- src/server/game/Server/Protocol/Handlers/MiscHandler.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp b/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp index 06a2210d79f..4225a99c72b 100644 --- a/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp @@ -935,8 +935,9 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket & recv_data) // if (!GetPlayer()->Satisfy(objmgr.GetAccessRequirement(at->access_id), at->target_mapId, true)) // return; + // Check only if target map != current player's map // check if player can enter instance : instance not full, and raid instance not in encounter fight - if (!sMapMgr.CanPlayerEnter(at->target_mapId, GetPlayer(), false)) + if (GetPlayer()->GetMapId() != at->target_mapId && !sMapMgr.CanPlayerEnter(at->target_mapId, GetPlayer(), false)) return; GetPlayer()->TeleportTo(at->target_mapId,at->target_X,at->target_Y,at->target_Z,at->target_Orientation,TELE_TO_NOT_LEAVE_TRANSPORT); -- cgit v1.2.3 From 9182ab6ead9ca4f7f08dc5741ec72496a0041e62 Mon Sep 17 00:00:00 2001 From: Tartalo Date: Fri, 9 Jul 2010 13:23:22 +0200 Subject: Uncomment the assert that I commented some revs ago on InstanceMap::CanEnter() --HG-- branch : trunk --- src/server/game/Maps/Map.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 5c908ba445f..f0d1b5d05ee 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -2369,7 +2369,7 @@ bool InstanceMap::CanEnter(Player *player) if (player->GetMapRef().getTarget() == this) { sLog.outError("InstanceMap::CanEnter - player %s(%u) already in map %d,%d,%d!", player->GetName(), player->GetGUIDLow(), GetId(), GetInstanceId(), GetSpawnMode()); - //assert(false); + assert(false); return false; } -- cgit v1.2.3