diff options
author | Blaymoira <none@none> | 2009-01-11 16:47:44 +0100 |
---|---|---|
committer | Blaymoira <none@none> | 2009-01-11 16:47:44 +0100 |
commit | ca342a8815f3c99119de6723c3f775baac6849c8 (patch) | |
tree | 1b94f263a8f96ca6c38806ba6d8eeb654a2c4145 /src/game/MiscHandler.cpp | |
parent | d719fb27072e8dafb8b650c150cb8660e065388b (diff) |
*Implemented requires_heroic_quest_done in areatrigger_teleport - by Anubisss
--HG--
branch : trunk
Diffstat (limited to 'src/game/MiscHandler.cpp')
-rw-r--r-- | src/game/MiscHandler.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/game/MiscHandler.cpp b/src/game/MiscHandler.cpp index dcf1f158e92..cfba9a5f7c4 100644 --- a/src/game/MiscHandler.cpp +++ b/src/game/MiscHandler.cpp @@ -860,6 +860,7 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket & recv_data) missingItem = at->requiredItem2; uint32 missingKey = 0; + uint32 missingHeroicQuest = 0; if(GetPlayer()->GetDifficulty() == DIFFICULTY_HEROIC) { if(at->heroicKey) @@ -870,19 +871,24 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket & recv_data) } 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) + 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_DIFFICULTY2); + else if(missingHeroicQuest) + SendAreaTriggerMessage(at->heroicQuestFailedText.c_str()); else if(missingQuest) SendAreaTriggerMessage(at->requiredFailedText.c_str()); else if(missingLevel) |