diff options
| author | Gacko <gacko28@gmx.de> | 2012-11-21 21:43:17 +0100 |
|---|---|---|
| committer | Gacko <gacko28@gmx.de> | 2012-11-23 15:59:10 +0100 |
| commit | 14b728255c47b4a3ab60ee1b7ef4ccf22f66720e (patch) | |
| tree | 7dc8a61e0f2dd332a59b65c50256ed9d09af6c70 /src/server/scripts/EasternKingdoms/ScarletEnclave | |
| parent | f09d8b3c71efe0dff4e7dfde13b48d29cbec18dc (diff) | |
Core/DB: Converted 11 scripts to creature text
Diffstat (limited to 'src/server/scripts/EasternKingdoms/ScarletEnclave')
| -rw-r--r-- | src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp | 213 |
1 files changed, 116 insertions, 97 deletions
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp index 7a6e9aab31d..cedcafc9f98 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp @@ -25,28 +25,27 @@ // texts signed for creature 28939 but used for 28939, 28940, 28610 enum win_friends { - SAY_PERSUADE1 = -1609501, - SAY_PERSUADE2 = -1609502, - SAY_PERSUADE3 = -1609503, - SAY_PERSUADE4 = -1609504, - SAY_PERSUADE5 = -1609505, - SAY_PERSUADE6 = -1609506, - SAY_PERSUADE7 = -1609507, - SAY_CRUSADER1 = -1609508, - SAY_CRUSADER2 = -1609509, - SAY_CRUSADER3 = -1609510, - SAY_CRUSADER4 = -1609511, - SAY_CRUSADER5 = -1609512, - SAY_CRUSADER6 = -1609513, - SAY_PERSUADED1 = -1609514, - SAY_PERSUADED2 = -1609515, - SAY_PERSUADED3 = -1609516, - SAY_PERSUADED4 = -1609517, - SAY_PERSUADED5 = -1609518, - SAY_PERSUADED6 = -1609519, - SPELL_PERSUASIVE_STRIKE = 52781 + SAY_CRUSADER = 1, + SAY_PERSUADED1 = 2, + SAY_PERSUADED2 = 3, + SAY_PERSUADED3 = 4, + SAY_PERSUADED4 = 5, + SAY_PERSUADED6 = 6, + SPELL_PERSUASIVE_STRIKE = 52781, + SPELL_THREAT_PULSE = 58111, + QUEST_HOW_TO_WIN_FRIENDS = 12720, }; +#define SAY_PERSUADED5 "LIES! The pain you are about to endure will be talked about for years to come!" + +#define SAY_PERSUADE1 "I'll tear the secrets from your soul! Tell me about the \"Crimson Dawn\" and your life may be spared!" +#define SAY_PERSUADE2 "Tell me what you know about \"Crimson Dawn\" or the beatings will continue!" +#define SAY_PERSUADE3 "I'm through being courteous with your kind, human! What is the \"Crimson Dawn\"?" +#define SAY_PERSUADE4 "Is your life worth so little? Just tell me what I need to know about \"Crimson Dawn\" and I'll end your suffering quickly." +#define SAY_PERSUADE5 "I can keep this up for a very long time, Scarlet dog! Tell me about the \"Crimson Dawn\"!" +#define SAY_PERSUADE6 "What is the \"Crimson Dawn\"?" +#define SAY_PERSUADE7 "\"Crimson Dawn\"! What is it! Speak!" + class npc_crusade_persuaded : public CreatureScript { public: @@ -61,97 +60,119 @@ public: { npc_crusade_persuadedAI(Creature* creature) : ScriptedAI(creature) {} - uint32 uiSpeech_timer; - uint32 uiSpeech_counter; - uint64 uiPlayerGUID; + uint32 speechTimer; + uint32 speechCounter; + uint64 playerGUID; void Reset() { - uiSpeech_timer = 0; - uiSpeech_counter = 0; - uiPlayerGUID = 0; + speechTimer = 0; + speechCounter = 0; + playerGUID = 0; me->SetReactState(REACT_AGGRESSIVE); me->RestoreFaction(); } void SpellHit(Unit* caster, const SpellInfo* spell) { - if (spell->Id == SPELL_PERSUASIVE_STRIKE && caster->GetTypeId() == TYPEID_PLAYER && me->isAlive() && !uiSpeech_counter) + if (spell->Id == SPELL_PERSUASIVE_STRIKE && caster->GetTypeId() == TYPEID_PLAYER && me->isAlive() && !speechCounter) { - if (CAST_PLR(caster)->GetQuestStatus(12720) == QUEST_STATUS_INCOMPLETE) + if (Player* player = caster->ToPlayer()) { - uiPlayerGUID = caster->GetGUID(); - uiSpeech_timer = 1000; - uiSpeech_counter = 1; - me->setFaction(caster->getFaction()); - me->CombatStop(true); - me->GetMotionMaster()->MoveIdle(); - me->SetReactState(REACT_PASSIVE); - DoCastAOE(58111, true); - - DoScriptText(RAND(SAY_PERSUADE1, SAY_PERSUADE2, SAY_PERSUADE3, - SAY_PERSUADE4, SAY_PERSUADE5, SAY_PERSUADE6, - SAY_PERSUADE7), caster); - - DoScriptText(RAND(SAY_CRUSADER1, SAY_CRUSADER2, SAY_CRUSADER3, - SAY_CRUSADER4, SAY_CRUSADER5, SAY_CRUSADER6), me); + if (player->GetQuestStatus(QUEST_HOW_TO_WIN_FRIENDS) == QUEST_STATUS_INCOMPLETE) + { + playerGUID = player->GetGUID(); + speechTimer = 1000; + speechCounter = 1; + me->setFaction(player->getFaction()); + me->CombatStop(true); + me->GetMotionMaster()->MoveIdle(); + me->SetReactState(REACT_PASSIVE); + DoCastAOE(SPELL_THREAT_PULSE, true); + + switch (urand(1, 7)) + { + case 1: + player->Say(SAY_PERSUADE1, LANG_UNIVERSAL); + break; + case 2: + player->Say(SAY_PERSUADE2, LANG_UNIVERSAL); + break; + case 3: + player->Say(SAY_PERSUADE3, LANG_UNIVERSAL); + break; + case 4: + player->Say(SAY_PERSUADE4, LANG_UNIVERSAL); + break; + case 5: + player->Say(SAY_PERSUADE5, LANG_UNIVERSAL); + break; + case 6: + player->Say(SAY_PERSUADE6, LANG_UNIVERSAL); + break; + case 7: + player->Say(SAY_PERSUADE7, LANG_UNIVERSAL); + break; + } + Talk(SAY_CRUSADER); + } } } } void UpdateAI(const uint32 diff) { - if (uiSpeech_counter) + if (speechCounter) { - if (uiSpeech_timer <= diff) + if (speechTimer <= diff) { - Player* player = Unit::GetPlayer(*me, uiPlayerGUID); + Player* player = Unit::GetPlayer(*me, playerGUID); if (!player) { EnterEvadeMode(); return; } - switch (uiSpeech_counter) + switch (speechCounter) { case 1: - DoScriptText(SAY_PERSUADED1, me); - uiSpeech_timer = 8000; + Talk(SAY_PERSUADED1); + speechTimer = 8000; break; case 2: - DoScriptText(SAY_PERSUADED2, me); - uiSpeech_timer = 8000; + Talk(SAY_PERSUADED2); + speechTimer = 8000; break; case 3: - DoScriptText(SAY_PERSUADED3, me); - uiSpeech_timer = 8000; + Talk(SAY_PERSUADED3); + speechTimer = 8000; break; case 4: - DoScriptText(SAY_PERSUADED4, me); - uiSpeech_timer = 8000; + Talk(SAY_PERSUADED4); + speechTimer = 8000; break; case 5: - DoScriptText(SAY_PERSUADED5, player); - uiSpeech_timer = 8000; + player->Say(SAY_PERSUADED5, LANG_UNIVERSAL); + speechTimer = 8000; break; case 6: - DoScriptText(SAY_PERSUADED6, me); + Talk(SAY_PERSUADED6); player->Kill(me); - //me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - //me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - uiSpeech_counter = 0; - player->GroupEventHappens(12720, me); + speechCounter = 0; + player->GroupEventHappens(QUEST_HOW_TO_WIN_FRIENDS, me); return; } - ++uiSpeech_counter; - DoCastAOE(58111, true); - } else uiSpeech_timer -= diff; + ++speechCounter; + DoCastAOE(SPELL_THREAT_PULSE, true); + + } else + speechTimer -= diff; return; } @@ -171,16 +192,16 @@ public: enum eKoltira { - SAY_BREAKOUT1 = -1609561, - SAY_BREAKOUT2 = -1609562, - SAY_BREAKOUT3 = -1609563, - SAY_BREAKOUT4 = -1609564, - SAY_BREAKOUT5 = -1609565, - SAY_BREAKOUT6 = -1609566, - SAY_BREAKOUT7 = -1609567, - SAY_BREAKOUT8 = -1609568, - SAY_BREAKOUT9 = -1609569, - SAY_BREAKOUT10 = -1609570, + SAY_BREAKOUT1 = 0, + SAY_BREAKOUT2 = 1, + SAY_BREAKOUT3 = 2, + SAY_BREAKOUT4 = 3, + SAY_BREAKOUT5 = 4, + SAY_BREAKOUT6 = 5, + SAY_BREAKOUT7 = 6, + SAY_BREAKOUT8 = 7, + SAY_BREAKOUT9 = 8, + SAY_BREAKOUT10 = 9, SPELL_KOLTIRA_TRANSFORM = 52899, SPELL_ANTI_MAGIC_ZONE = 52894, @@ -247,7 +268,7 @@ public: switch (waypointId) { case 0: - DoScriptText(SAY_BREAKOUT1, me); + Talk(SAY_BREAKOUT1); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); break; case 1: @@ -262,7 +283,7 @@ public: case 3: SetEscortPaused(true); me->SetStandState(UNIT_STAND_STATE_KNEEL); - DoScriptText(SAY_BREAKOUT2, me); + Talk(SAY_BREAKOUT2); DoCast(me, SPELL_ANTI_MAGIC_ZONE); // cast again that makes bubble up break; case 4: @@ -306,22 +327,22 @@ public: switch (m_uiWave) { case 0: - DoScriptText(SAY_BREAKOUT3, me); + Talk(SAY_BREAKOUT3); SummonAcolyte(3); m_uiWave_Timer = 20000; break; case 1: - DoScriptText(SAY_BREAKOUT4, me); + Talk(SAY_BREAKOUT4); SummonAcolyte(3); m_uiWave_Timer = 20000; break; case 2: - DoScriptText(SAY_BREAKOUT5, me); + Talk(SAY_BREAKOUT5); SummonAcolyte(4); m_uiWave_Timer = 20000; break; case 3: - DoScriptText(SAY_BREAKOUT6, me); + Talk(SAY_BREAKOUT6); me->SummonCreature(NPC_HIGH_INQUISITOR_VALROTH, 1642.329f, -6045.818f, 127.583f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 1000); m_uiWave_Timer = 1000; break; @@ -331,7 +352,7 @@ public: if (!temp || !temp->isAlive()) { - DoScriptText(SAY_BREAKOUT8, me); + Talk(SAY_BREAKOUT8); m_uiWave_Timer = 5000; } else @@ -342,13 +363,13 @@ public: break; } case 5: - DoScriptText(SAY_BREAKOUT9, me); + Talk(SAY_BREAKOUT9); me->RemoveAurasDueToSpell(SPELL_ANTI_MAGIC_ZONE); // i do not know why the armor will also be removed m_uiWave_Timer = 2500; break; case 6: - DoScriptText(SAY_BREAKOUT10, me); + Talk(SAY_BREAKOUT10); SetEscortPaused(false); break; } @@ -366,8 +387,8 @@ public: //Scarlet courier enum ScarletCourierEnum { - SAY_TREE1 = -1609531, - SAY_TREE2 = -1609532, + SAY_TREE1 = 0, + SAY_TREE2 = 1, SPELL_SHOOT = 52818, GO_INCONSPICUOUS_TREE = 191144, NPC_SCARLET_COURIER = 29076 @@ -399,7 +420,7 @@ public: void EnterCombat(Unit* /*who*/) { - DoScriptText(SAY_TREE2, me); + Talk(SAY_TREE2); me->Dismount(); uiStage = 0; } @@ -425,7 +446,7 @@ public: me->SetWalk(true); if (GameObject* tree = me->FindNearestGameObject(GO_INCONSPICUOUS_TREE, 40.0f)) { - DoScriptText(SAY_TREE1, me); + Talk(SAY_TREE1); float x, y, z; tree->GetContactPoint(me, x, y, z); me->GetMotionMaster()->MovePoint(1, x, y, z); @@ -455,12 +476,10 @@ public: enum valroth { - SAY_VALROTH1 = -1609581, - SAY_VALROTH2 = -1609582, - SAY_VALROTH3 = -1609583, - SAY_VALROTH4 = -1609584, - SAY_VALROTH5 = -1609585, - SAY_VALROTH6 = -1609586, + //SAY_VALROTH1 = 0, Unused + SAY_VALROTH_AGGRO = 1, + SAY_VALROTH_RAND = 2, + SAY_VALROTH_DEATH = 3, SPELL_RENEW = 38210, SPELL_INQUISITOR_PENANCE = 52922, SPELL_VALROTH_SMITE = 52926, @@ -494,7 +513,7 @@ public: void EnterCombat(Unit* who) { - DoScriptText(SAY_VALROTH2, me); + Talk(SAY_VALROTH_AGGRO); DoCast(who, SPELL_VALROTH_SMITE); } @@ -527,12 +546,12 @@ public: void Shout() { if (rand()%100 < 15) - DoScriptText(RAND(SAY_VALROTH3, SAY_VALROTH4, SAY_VALROTH5), me); + Talk(SAY_VALROTH_RAND); } void JustDied(Unit* killer) { - DoScriptText(SAY_VALROTH6, me); + Talk(SAY_VALROTH_DEATH); killer->CastSpell(me, SPELL_SUMMON_VALROTH_REMAINS, true); } }; |
