diff options
author | joschiwald <joschiwald.trinity@gmail.com> | 2015-08-30 16:12:51 +0200 |
---|---|---|
committer | joschiwald <joschiwald.trinity@gmail.com> | 2015-08-30 16:12:51 +0200 |
commit | 5c68223ab60bd0206b90b48e86275c0af79d5097 (patch) | |
tree | ede872763cbf2371a175b526b1e2c62fded1d255 | |
parent | 6fedea54ef3f1c678f0869807ac38b1db72351fd (diff) | |
parent | 3748dddaa4607275d67c3a810ee9a27411c40ffe (diff) |
Merge pull request #15385 from Tonghost/3.3.5
Core/Scripts: Remove duplicate code
-rw-r--r-- | src/server/scripts/World/npcs_special.cpp | 122 |
1 files changed, 36 insertions, 86 deletions
diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp index d1d2ddc8a80..57346443390 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -942,6 +942,28 @@ public: { npc_garments_of_questsAI(Creature* creature) : npc_escortAI(creature) { + switch (me->GetEntry()) + { + case ENTRY_SHAYA: + quest = QUEST_MOON; + break; + case ENTRY_ROBERTS: + quest = QUEST_LIGHT_1; + break; + case ENTRY_DOLF: + quest = QUEST_LIGHT_2; + break; + case ENTRY_KORJA: + quest = QUEST_SPIRIT; + break; + case ENTRY_DG_KEL: + quest = QUEST_DARKNESS; + break; + default: + quest = 0; + break; + } + Reset(); } @@ -951,6 +973,7 @@ public: bool CanRun; uint32 RunAwayTimer; + uint32 quest; void Reset() override { @@ -982,93 +1005,20 @@ public: if (Player* player = caster->ToPlayer()) { - switch (me->GetEntry()) + if (quest && player->GetQuestStatus(quest) == QUEST_STATUS_INCOMPLETE) { - case ENTRY_SHAYA: - if (player->GetQuestStatus(QUEST_MOON) == QUEST_STATUS_INCOMPLETE) - { - if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1) - { - Talk(SAY_THANKS, caster); - CanRun = true; - } - else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2) - { - CasterGUID = caster->GetGUID(); - me->SetStandState(UNIT_STAND_STATE_STAND); - Talk(SAY_HEALED, caster); - IsHealed = true; - } - } - break; - case ENTRY_ROBERTS: - if (player->GetQuestStatus(QUEST_LIGHT_1) == QUEST_STATUS_INCOMPLETE) - { - if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1) - { - Talk(SAY_THANKS, caster); - CanRun = true; - } - else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2) - { - CasterGUID = caster->GetGUID(); - me->SetStandState(UNIT_STAND_STATE_STAND); - Talk(SAY_HEALED, caster); - IsHealed = true; - } - } - break; - case ENTRY_DOLF: - if (player->GetQuestStatus(QUEST_LIGHT_2) == QUEST_STATUS_INCOMPLETE) - { - if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1) - { - Talk(SAY_THANKS, caster); - CanRun = true; - } - else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2) - { - CasterGUID = caster->GetGUID(); - me->SetStandState(UNIT_STAND_STATE_STAND); - Talk(SAY_HEALED, caster); - IsHealed = true; - } - } - break; - case ENTRY_KORJA: - if (player->GetQuestStatus(QUEST_SPIRIT) == QUEST_STATUS_INCOMPLETE) - { - if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1) - { - Talk(SAY_THANKS, caster); - CanRun = true; - } - else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2) - { - CasterGUID = caster->GetGUID(); - me->SetStandState(UNIT_STAND_STATE_STAND); - Talk(SAY_HEALED, caster); - IsHealed = true; - } - } - break; - case ENTRY_DG_KEL: - if (player->GetQuestStatus(QUEST_DARKNESS) == QUEST_STATUS_INCOMPLETE) - { - if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1) - { - Talk(SAY_THANKS, caster); - CanRun = true; - } - else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2) - { - CasterGUID = caster->GetGUID(); - me->SetStandState(UNIT_STAND_STATE_STAND); - Talk(SAY_HEALED, caster); - IsHealed = true; - } - } - break; + if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1) + { + Talk(SAY_THANKS, caster); + CanRun = true; + } + else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2) + { + CasterGUID = caster->GetGUID(); + me->SetStandState(UNIT_STAND_STATE_STAND); + Talk(SAY_HEALED, caster); + IsHealed = true; + } } // give quest credit, not expect any special quest objectives |