diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp | 394 |
1 files changed, 45 insertions, 349 deletions
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp index ba35f642194..95d9b3bd9dd 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp @@ -562,62 +562,19 @@ public: //used by 29032, 29061, 29065, 29067, 29068, 29070, 29074, 29072, 29073, 29071 but signed for 29032 enum SpecialSurprise { - SAY_EXEC_START_1 = 0, // speech for all - SAY_EXEC_START_2 = 1, - SAY_EXEC_START_3 = 2, - SAY_EXEC_PROG_1 = 3, - SAY_EXEC_PROG_2 = 4, - SAY_EXEC_PROG_3 = 5, - SAY_EXEC_PROG_4 = 6, - SAY_EXEC_PROG_5 = 7, - SAY_EXEC_PROG_6 = 8, - SAY_EXEC_PROG_7 = 9, - SAY_EXEC_NAME_1 = 10, - SAY_EXEC_NAME_2 = 11, - SAY_EXEC_RECOG_1 = 12, - SAY_EXEC_RECOG_2 = 13, - SAY_EXEC_RECOG_3 = 14, - SAY_EXEC_RECOG_4 = 15, - SAY_EXEC_RECOG_5 = 16, - SAY_EXEC_RECOG_6 = 17, - SAY_EXEC_NOREM_1 = 18, - SAY_EXEC_NOREM_2 = 19, - SAY_EXEC_NOREM_3 = 20, - SAY_EXEC_NOREM_4 = 21, - SAY_EXEC_NOREM_5 = 22, - SAY_EXEC_NOREM_6 = 23, - SAY_EXEC_NOREM_7 = 24, - SAY_EXEC_NOREM_8 = 25, - SAY_EXEC_NOREM_9 = 26, - SAY_EXEC_THINK_1 = 27, - SAY_EXEC_THINK_2 = 28, - SAY_EXEC_THINK_3 = 29, - SAY_EXEC_THINK_4 = 30, - SAY_EXEC_THINK_5 = 31, - SAY_EXEC_THINK_6 = 32, - SAY_EXEC_THINK_7 = 33, - SAY_EXEC_THINK_8 = 34, - SAY_EXEC_THINK_9 = 35, - SAY_EXEC_THINK_10 = 36, - SAY_EXEC_LISTEN_1 = 37, - SAY_EXEC_LISTEN_2 = 38, - SAY_EXEC_LISTEN_3 = 39, - SAY_EXEC_LISTEN_4 = 40, - SAY_PLAGUEFIST = 41, - SAY_EXEC_TIME_1 = 42, - SAY_EXEC_TIME_2 = 43, - SAY_EXEC_TIME_3 = 44, - SAY_EXEC_TIME_4 = 45, - SAY_EXEC_TIME_5 = 46, - SAY_EXEC_TIME_6 = 47, - SAY_EXEC_TIME_7 = 48, - SAY_EXEC_TIME_8 = 49, - SAY_EXEC_TIME_9 = 50, - SAY_EXEC_TIME_10 = 51, - SAY_EXEC_WAITING = 52, - EMOTE_DIES = 53, - - NPC_PLAGUEFIST = 29053 + SAY_EXEC_START = 0, + SAY_EXEC_PROG = 1, + SAY_EXEC_NAME = 2, + SAY_EXEC_RECOG = 3, + SAY_EXEC_NOREM = 4, + SAY_EXEC_THINK = 5, + SAY_EXEC_LISTEN = 6, + SAY_EXEC_TIME = 7, + SAY_EXEC_WAITING = 8, + EMOTE_DIES = 9, + + SAY_PLAGUEFIST = 0, + NPC_PLAGUEFIST = 29053 }; class npc_a_special_surprise : public CreatureScript @@ -728,310 +685,49 @@ public: return; } - /// @todo simplify text's selection - - switch (player->getRace()) + switch (ExecuteSpeech_Counter) { - case RACE_HUMAN: - switch (ExecuteSpeech_Counter) - { - case 0: Talk(SAY_EXEC_START_1, player); break; - case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break; - case 2: Talk(SAY_EXEC_PROG_5, player); break; - case 3: Talk(SAY_EXEC_NAME_1, player); break; - case 4: Talk(SAY_EXEC_RECOG_1, player); break; - case 5: Talk(SAY_EXEC_NOREM_5, player); break; - case 6: Talk(SAY_EXEC_THINK_7, player); break; - case 7: Talk(SAY_EXEC_LISTEN_1, player); break; - case 8: - if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f)) - Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player); - break; - case 9: - Talk(SAY_EXEC_TIME_6, player); - me->SetStandState(UNIT_STAND_STATE_KNEEL); - me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); - break; - case 10: - Talk(SAY_EXEC_WAITING, player); - break; - case 11: - Talk(EMOTE_DIES); - me->setDeathState(JUST_DIED); - me->SetHealth(0); - return; - } + case 0: + Talk(SAY_EXEC_START, player); break; - case RACE_ORC: - switch (ExecuteSpeech_Counter) - { - case 0: Talk(SAY_EXEC_START_1, player); break; - case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break; - case 2: Talk(SAY_EXEC_PROG_6, player); break; - case 3: Talk(SAY_EXEC_NAME_1, player); break; - case 4: Talk(SAY_EXEC_RECOG_1, player); break; - case 5: Talk(SAY_EXEC_NOREM_7, player); break; - case 6: Talk(SAY_EXEC_THINK_8, player); break; - case 7: Talk(SAY_EXEC_LISTEN_1, player); break; - case 8: - if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f)) - Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player); - break; - case 9: - Talk(SAY_EXEC_TIME_8, player); - me->SetStandState(UNIT_STAND_STATE_KNEEL); - me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); - break; - case 10: - Talk(SAY_EXEC_WAITING, player); - break; - case 11: - Talk(EMOTE_DIES); - me->setDeathState(JUST_DIED); - me->SetHealth(0); - return; - } + case 1: + me->SetStandState(UNIT_STAND_STATE_STAND); break; - case RACE_DWARF: - switch (ExecuteSpeech_Counter) - { - case 0: Talk(SAY_EXEC_START_2, player); break; - case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break; - case 2: Talk(SAY_EXEC_PROG_2, player); break; - case 3: Talk(SAY_EXEC_NAME_1, player); break; - case 4: Talk(SAY_EXEC_RECOG_3, player); break; - case 5: Talk(SAY_EXEC_NOREM_2, player); break; - case 6: Talk(SAY_EXEC_THINK_5, player); break; - case 7: Talk(SAY_EXEC_LISTEN_2, player); break; - case 8: - if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f)) - Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player); - break; - case 9: - Talk(SAY_EXEC_TIME_3, player); - me->SetStandState(UNIT_STAND_STATE_KNEEL); - me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); - break; - case 10: - Talk(SAY_EXEC_WAITING, player); - break; - case 11: - Talk(EMOTE_DIES); - me->setDeathState(JUST_DIED); - me->SetHealth(0); - return; - } + case 2: + Talk(SAY_EXEC_PROG, player); break; - case RACE_NIGHTELF: - switch (ExecuteSpeech_Counter) - { - case 0: Talk(SAY_EXEC_START_1, player); break; - case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break; - case 2: Talk(SAY_EXEC_PROG_5, player); break; - case 3: Talk(SAY_EXEC_NAME_1, player); break; - case 4: Talk(SAY_EXEC_RECOG_1, player); break; - case 5: Talk(SAY_EXEC_NOREM_6, player); break; - case 6: Talk(SAY_EXEC_THINK_2, player); break; - case 7: Talk(SAY_EXEC_LISTEN_1, player); break; - case 8: - if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f)) - Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player); - break; - case 9: - Talk(SAY_EXEC_TIME_7, player); - me->SetStandState(UNIT_STAND_STATE_KNEEL); - me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); - break; - case 10: - Talk(SAY_EXEC_WAITING, player); - break; - case 11: - Talk(EMOTE_DIES); - me->setDeathState(JUST_DIED); - me->SetHealth(0); - return; - } + case 3: + Talk(SAY_EXEC_NAME, player); break; - case RACE_UNDEAD_PLAYER: - switch (ExecuteSpeech_Counter) - { - case 0: Talk(SAY_EXEC_START_1, player); break; - case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break; - case 2: Talk(SAY_EXEC_PROG_3, player); break; - case 3: Talk(SAY_EXEC_NAME_1, player); break; - case 4: Talk(SAY_EXEC_RECOG_4, player); break; - case 5: Talk(SAY_EXEC_NOREM_3, player); break; - case 6: Talk(SAY_EXEC_THINK_1, player); break; - case 7: Talk(SAY_EXEC_LISTEN_3, player); break; - case 8: - if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f)) - Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player); - break; - case 9: - Talk(SAY_EXEC_TIME_4, player); - me->SetStandState(UNIT_STAND_STATE_KNEEL); - me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); - break; - case 10: - Talk(SAY_EXEC_WAITING, player); - break; - case 11: - Talk(EMOTE_DIES); - me->setDeathState(JUST_DIED); - me->SetHealth(0); - return; - } + case 4: + Talk(SAY_EXEC_RECOG, player); break; - case RACE_TAUREN: - switch (ExecuteSpeech_Counter) - { - case 0: Talk(SAY_EXEC_START_1, player); break; - case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break; - case 2: Talk(SAY_EXEC_PROG_1, player); break; - case 3: Talk(SAY_EXEC_NAME_1, player); break; - case 4: Talk(SAY_EXEC_RECOG_5, player); break; - case 5: Talk(SAY_EXEC_NOREM_8, player); break; - case 6: Talk(SAY_EXEC_THINK_9, player); break; - case 7: Talk(SAY_EXEC_LISTEN_1, player); break; - case 8: - if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f)) - Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player); - break; - case 9: - Talk(SAY_EXEC_TIME_9, player); - me->SetStandState(UNIT_STAND_STATE_KNEEL); - me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); - break; - case 10: - Talk(SAY_EXEC_WAITING, player); - break; - case 11: - Talk(EMOTE_DIES); - me->setDeathState(JUST_DIED); - me->SetHealth(0); - return; - } + case 5: + Talk(SAY_EXEC_NOREM, player); break; - case RACE_GNOME: - switch (ExecuteSpeech_Counter) - { - case 0: Talk(SAY_EXEC_START_1, player); break; - case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break; - case 2: Talk(SAY_EXEC_PROG_4, player); break; - case 3: Talk(SAY_EXEC_NAME_1, player); break; - case 4: Talk(SAY_EXEC_RECOG_1, player); break; - case 5: Talk(SAY_EXEC_NOREM_4, player); break; - case 6: Talk(SAY_EXEC_THINK_6, player); break; - case 7: Talk(SAY_EXEC_LISTEN_1, player); break; - case 8: - if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f)) - Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player); - break; - case 9: - Talk(SAY_EXEC_TIME_5, player); - me->SetStandState(UNIT_STAND_STATE_KNEEL); - me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); - break; - case 10: - Talk(SAY_EXEC_WAITING, player); - break; - case 11: - Talk(EMOTE_DIES); - me->setDeathState(JUST_DIED); - me->SetHealth(0); - return; - } + case 6: + Talk(SAY_EXEC_THINK, player); break; - case RACE_TROLL: - switch (ExecuteSpeech_Counter) - { - case 0: Talk(SAY_EXEC_START_3, player); break; - case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break; - case 2: Talk(SAY_EXEC_PROG_7, player); break; - case 3: Talk(SAY_EXEC_NAME_2, player); break; - case 4: Talk(SAY_EXEC_RECOG_6, player); break; - case 5: Talk(SAY_EXEC_NOREM_9, player); break; - case 6: Talk(SAY_EXEC_THINK_10, player); break; - case 7: Talk(SAY_EXEC_LISTEN_4, player); break; - case 8: - if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f)) - Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player); - break; - case 9: - Talk(SAY_EXEC_TIME_10, player); - me->SetStandState(UNIT_STAND_STATE_KNEEL); - me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); - break; - case 10: - Talk(SAY_EXEC_WAITING, player); - break; - case 11: - Talk(EMOTE_DIES); - me->setDeathState(JUST_DIED); - me->SetHealth(0); - return; - } + case 7: + Talk(SAY_EXEC_LISTEN, player); break; - case RACE_BLOODELF: - switch (ExecuteSpeech_Counter) - { - case 0: Talk(SAY_EXEC_START_1, player); break; - case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break; - case 2: Talk(SAY_EXEC_PROG_1, player); break; - case 3: Talk(SAY_EXEC_NAME_1, player); break; - case 4: Talk(SAY_EXEC_RECOG_1, player); break; - //case 5: //unknown - case 6: Talk(SAY_EXEC_THINK_3, player); break; - case 7: Talk(SAY_EXEC_LISTEN_1, player); break; - case 8: - if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f)) - Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player); - break; - case 9: - Talk(SAY_EXEC_TIME_1, player); - me->SetStandState(UNIT_STAND_STATE_KNEEL); - me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); - break; - case 10: - Talk(SAY_EXEC_WAITING, player); - break; - case 11: - Talk(EMOTE_DIES); - me->setDeathState(JUST_DIED); - me->SetHealth(0); - return; - } + case 8: + if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f)) + Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player); break; - case RACE_DRAENEI: - switch (ExecuteSpeech_Counter) - { - case 0: Talk(SAY_EXEC_START_1, player); break; - case 1: me->SetStandState(UNIT_STAND_STATE_STAND); break; - case 2: Talk(SAY_EXEC_PROG_1, player); break; - case 3: Talk(SAY_EXEC_NAME_1, player); break; - case 4: Talk(SAY_EXEC_RECOG_2, player); break; - case 5: Talk(SAY_EXEC_NOREM_1, player); break; - case 6: Talk(SAY_EXEC_THINK_4, player); break; - case 7: Talk(SAY_EXEC_LISTEN_1, player); break; - case 8: - if (Creature* Plaguefist = GetClosestCreatureWithEntry(me, NPC_PLAGUEFIST, 85.0f)) - Plaguefist->AI()->Talk(SAY_PLAGUEFIST, player); - break; - case 9: - Talk(SAY_EXEC_TIME_2, player); - me->SetStandState(UNIT_STAND_STATE_KNEEL); - me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); - break; - case 10: - Talk(SAY_EXEC_WAITING, player); - break; - case 11: - Talk(EMOTE_DIES); - me->setDeathState(JUST_DIED); - me->SetHealth(0); - return; - } + case 9: + Talk(SAY_EXEC_TIME, player); + me->SetStandState(UNIT_STAND_STATE_KNEEL); + me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); + break; + case 10: + Talk(SAY_EXEC_WAITING, player); break; + case 11: + Talk(EMOTE_DIES); + me->setDeathState(JUST_DIED); + me->SetHealth(0); + return; } if (ExecuteSpeech_Counter >= 9) |