diff options
| author | megamage <none@none> | 2009-03-06 18:09:01 -0600 |
|---|---|---|
| committer | megamage <none@none> | 2009-03-06 18:09:01 -0600 |
| commit | 7915fd768a34604f6edf6be63bdf77fb2663d556 (patch) | |
| tree | 372241b979bda672dcc03c9f203a1928848bc553 /src/game/MiscHandler.cpp | |
| parent | 13fc3dcd7e95288cd9482e7440df3b15a3c580cb (diff) | |
| parent | b49732c04db0d5bf67bf78e73e9c22f2078fd47c (diff) | |
*Merge.
--HG--
branch : trunk
Diffstat (limited to 'src/game/MiscHandler.cpp')
| -rw-r--r-- | src/game/MiscHandler.cpp | 56 |
1 files changed, 2 insertions, 54 deletions
diff --git a/src/game/MiscHandler.cpp b/src/game/MiscHandler.cpp index 3a582f96f27..7f48f2c20b8 100644 --- a/src/game/MiscHandler.cpp +++ b/src/game/MiscHandler.cpp @@ -856,60 +856,8 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket & recv_data) if(!at) return; - if(!GetPlayer()->isGameMaster()) - { - uint32 missingLevel = 0; - if(GetPlayer()->getLevel() < at->requiredLevel && !sWorld.getConfig(CONFIG_INSTANCE_IGNORE_LEVEL)) - missingLevel = at->requiredLevel; - - // must have one or the other, report the first one that's missing - uint32 missingItem = 0; - if(at->requiredItem) - { - if(!GetPlayer()->HasItemCount(at->requiredItem, 1) && - (!at->requiredItem2 || !GetPlayer()->HasItemCount(at->requiredItem2, 1))) - missingItem = at->requiredItem; - } - else if(at->requiredItem2 && !GetPlayer()->HasItemCount(at->requiredItem2, 1)) - missingItem = at->requiredItem2; - - uint32 missingKey = 0; - uint32 missingHeroicQuest = 0; - if(GetPlayer()->GetDifficulty() == DIFFICULTY_HEROIC) - { - if(at->heroicKey) - { - if(!GetPlayer()->HasItemCount(at->heroicKey, 1) && - (!at->heroicKey2 || !GetPlayer()->HasItemCount(at->heroicKey2, 1))) - missingKey = at->heroicKey; - } - else if(at->heroicKey2 && !GetPlayer()->HasItemCount(at->heroicKey2, 1)) - missingKey = at->heroicKey2; - - if(at->heroicQuest && !GetPlayer()->GetQuestRewardStatus(at->heroicQuest)) - missingHeroicQuest = at->heroicQuest; - } - - uint32 missingQuest = 0; - if(at->requiredQuest && !GetPlayer()->GetQuestRewardStatus(at->requiredQuest)) - missingQuest = at->requiredQuest; - - if(missingLevel || missingItem || missingKey || missingQuest || missingHeroicQuest) - { - // TODO: all this is probably wrong - if(missingItem) - SendAreaTriggerMessage(GetTrinityString(LANG_LEVEL_MINREQUIRED_AND_ITEM), at->requiredLevel, objmgr.GetItemPrototype(missingItem)->Name1); - else if(missingKey) - GetPlayer()->SendTransferAborted(at->target_mapId, TRANSFER_ABORT_DIFFICULTY, DIFFICULTY_HEROIC); - else if(missingHeroicQuest) - SendAreaTriggerMessage(at->heroicQuestFailedText.c_str()); - else if(missingQuest) - SendAreaTriggerMessage(at->requiredFailedText.c_str()); - else if(missingLevel) - SendAreaTriggerMessage(GetTrinityString(LANG_LEVEL_MINREQUIRED), missingLevel); - return; - } - } + if(!GetPlayer()->Satisfy(objmgr.GetAccessRequirement(at->access_id), at->target_mapId, true)) + return; GetPlayer()->TeleportTo(at->target_mapId,at->target_X,at->target_Y,at->target_Z,at->target_Orientation,TELE_TO_NOT_LEAVE_TRANSPORT); } |
