aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Northrend
diff options
context:
space:
mode:
authorNay <dnpd.dd@gmail.com>2012-08-21 23:40:38 +0100
committerNay <dnpd.dd@gmail.com>2012-08-21 23:40:38 +0100
commite3ea3b28bd6d505495908899de154dcf92a219d8 (patch)
tree78e2be369f41de7e109f097ddb434f32747f0c13 /src/server/scripts/Northrend
parentdf2d42e5c7619e0eb5bc9e22ab23d32facbb33ca (diff)
Merge remote-tracking branch 'origin/master' into 4.3.4
Conflicts: src/server/game/Groups/Group.cpp src/server/game/Handlers/BattleGroundHandler.cpp src/server/game/Handlers/MailHandler.cpp src/server/game/Handlers/MiscHandler.cpp src/server/game/Server/Protocol/Opcodes.cpp src/server/game/Server/Protocol/Opcodes.h src/server/game/Server/WorldSession.cpp src/server/game/Server/WorldSocket.cpp src/server/worldserver/worldserver.conf.dist
Diffstat (limited to 'src/server/scripts/Northrend')
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp12
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp14
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp16
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp6
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp11
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp2
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h4
-rw-r--r--src/server/scripts/Northrend/wintergrasp.cpp35
8 files changed, 58 insertions, 42 deletions
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
index 1019deac106..89fdcc7f725 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
@@ -207,7 +207,7 @@ public:
{
if (!m_bIntro)
{
- DoScriptText(SAY_INTRO, me);
+ Talk(SAY_INTRO);
m_bIntro = false;
}
}
@@ -225,7 +225,7 @@ public:
void JustDied(Unit* /*killer*/)
{
Summons.DespawnAll();
- DoScriptText(SAY_DEATH, me);
+ Talk(SAY_DEATH);
if (instance)
instance->SetData(TYPE_ANUBARAK, DONE);
}
@@ -242,7 +242,7 @@ public:
break;
case NPC_SPIKE:
summoned->CombatStart(target);
- DoScriptText(EMOTE_SPIKE, me, target);
+ Talk(EMOTE_SPIKE, target->GetGUID());
break;
}
Summons.Summon(summoned);
@@ -260,7 +260,7 @@ public:
void EnterCombat(Unit* /*who*/)
{
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
me->SetInCombatWithZone();
if (instance)
@@ -405,8 +405,8 @@ public:
{
m_bReachedPhase3 = true;
DoCastAOE(SPELL_LEECHING_SWARM);
- DoScriptText(EMOTE_LEECHING_SWARM, me);
- DoScriptText(SAY_LEECHING_SWARM, me);
+ Talk(EMOTE_LEECHING_SWARM);
+ Talk(SAY_LEECHING_SWARM);
}
if (m_uiBerserkTimer <= uiDiff && !me->HasAura(SPELL_BERSERK))
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
index f9e2080895a..10f7150351e 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp
@@ -161,7 +161,7 @@ public:
void JustDied(Unit* /*killer*/)
{
Summons.DespawnAll();
- DoScriptText(SAY_DEATH, me);
+ Talk(SAY_DEATH);
if (instance)
instance->SetData(TYPE_JARAXXUS, DONE);
}
@@ -176,7 +176,7 @@ public:
me->SetInCombatWithZone();
if (instance)
instance->SetData(TYPE_JARAXXUS, IN_PROGRESS);
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
}
void UpdateAI(const uint32 uiDiff)
@@ -186,8 +186,8 @@ public:
if (m_uiSummonInfernalEruptionTimer <= uiDiff)
{
- DoScriptText(EMOTE_INFERNAL_ERUPTION, me);
- DoScriptText(SAY_INFERNAL_ERUPTION, me);
+ Talk(EMOTE_INFERNAL_ERUPTION);
+ Talk(SAY_INFERNAL_ERUPTION);
DoCast(SPELL_INFERNAL_ERUPTION);
m_uiSummonInfernalEruptionTimer = 2*MINUTE*IN_MILLISECONDS;
} else m_uiSummonInfernalEruptionTimer -= uiDiff;
@@ -217,8 +217,8 @@ public:
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0, true))
{
- DoScriptText(EMOTE_INCINERATE, me, target);
- DoScriptText(SAY_INCINERATE, me);
+ Talk(EMOTE_INCINERATE, target->GetGUID());
+ Talk(SAY_INCINERATE);
DoCast(target, SPELL_INCINERATE_FLESH);
}
m_uiIncinerateFleshTimer = urand(20*IN_MILLISECONDS, 25*IN_MILLISECONDS);
@@ -234,7 +234,7 @@ public:
{
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0, true))
{
- DoScriptText(EMOTE_LEGION_FLAME, me, target);
+ Talk(EMOTE_LEGION_FLAME, target->GetGUID());
DoCast(target, SPELL_LEGION_FLAME);
}
m_uiLegionFlameTimer = 30*IN_MILLISECONDS;
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
index db9bc3581ea..88e0fe5ba66 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp
@@ -905,6 +905,8 @@ public:
if (m_uiMassiveCrashTimer <= diff)
{
me->GetMotionMaster()->MoveJump(ToCCommonLoc[1].GetPositionX(), ToCCommonLoc[1].GetPositionY(), ToCCommonLoc[1].GetPositionZ(), 10.0f, 20.0f); // 1: Middle of the room
+ SetCombatMovement(false);
+ me->AttackStop();
m_uiStage = 7; //Invalid (Do nothing more than move)
m_uiMassiveCrashTimer = 30*IN_MILLISECONDS;
} else m_uiMassiveCrashTimer -= diff;
@@ -913,22 +915,28 @@ public:
break;
case 1:
DoCastAOE(SPELL_MASSIVE_CRASH);
+ me->StopMoving();
+ me->AttackStop();
m_uiStage = 2;
break;
case 2:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0, true))
{
+ me->StopMoving();
+ me->AttackStop();
m_uiTrampleTargetGUID = target->GetGUID();
me->SetTarget(m_uiTrampleTargetGUID);
m_bTrampleCasted = false;
- SetCombatMovement(false);
- me->GetMotionMaster()->MoveIdle();
+ //SetCombatMovement(false);
+ //me->GetMotionMaster()->MoveIdle();
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
m_uiTrampleTimer = 4*IN_MILLISECONDS;
m_uiStage = 3;
} else m_uiStage = 6;
break;
case 3:
+ me->StopMoving();
+ me->AttackStop();
if (m_uiTrampleTimer <= diff)
{
if (Unit* target = Unit::GetPlayer(*me, m_uiTrampleTargetGUID))
@@ -941,12 +949,14 @@ public:
me->GetMotionMaster()->MoveJump(2*me->GetPositionX()-m_fTrampleTargetX,
2*me->GetPositionY()-m_fTrampleTargetY,
me->GetPositionZ(),
- 10.0f, 20.0f); // 2: Hop Backwards
+ 20.0f, 30.0f); // 2: Hop Backwards
m_uiStage = 7; //Invalid (Do nothing more than move)
} else m_uiStage = 6;
} else m_uiTrampleTimer -= diff;
break;
case 4:
+ me->StopMoving();
+ me->AttackStop();
Talk(EMOTE_TRAMPLE_START, m_uiTrampleTargetGUID);
me->GetMotionMaster()->MoveCharge(m_fTrampleTargetX, m_fTrampleTargetY, m_fTrampleTargetZ+2, 42, 1);
me->SetTarget(0);
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
index 203e49420be..a65eaebbc0c 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
@@ -254,7 +254,7 @@ struct boss_twin_baseAI : public ScriptedAI
void JustDied(Unit* /*killer*/)
{
- DoScriptText(SAY_DEATH, me);
+ Talk(SAY_DEATH);
if (instance)
{
if (Creature* pSister = GetSister())
@@ -296,7 +296,7 @@ struct boss_twin_baseAI : public ScriptedAI
instance->SetData(TYPE_VALKIRIES, IN_PROGRESS);
}
- DoScriptText(SAY_AGGRO, me);
+ Talk(SAY_AGGRO);
DoCast(me, m_uiSurgeSpellId);
}
@@ -384,7 +384,7 @@ struct boss_twin_baseAI : public ScriptedAI
if (!m_bIsBerserk && m_uiBerserkTimer <= uiDiff)
{
DoCast(me, SPELL_BERSERK);
- DoScriptText(SAY_BERSERK, me);
+ Talk(SAY_BERSERK);
m_bIsBerserk = true;
}
else
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp
index 3fb76ea52dc..9767126371b 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp
@@ -244,10 +244,18 @@ class instance_trial_of_the_crusader : public InstanceMapScript
switch (type)
{
case TYPE_JARAXXUS:
+ // Cleanup Icehowl
+ if (Creature* icehowl = instance->GetCreature(IcehowlGUID))
+ icehowl->DespawnOrUnsummon();
if (data == DONE)
EventStage = 2000;
break;
case TYPE_CRUSADERS:
+ // Cleanup Jaraxxus
+ if (Creature* jaraxxus = instance->GetCreature(JaraxxusGUID))
+ jaraxxus->DespawnOrUnsummon();
+ if (Creature* fizzlebang = instance->GetCreature(FizzlebangGUID))
+ fizzlebang->DespawnOrUnsummon();
switch (data)
{
case IN_PROGRESS:
@@ -267,6 +275,9 @@ class instance_trial_of_the_crusader : public InstanceMapScript
}
break;
case TYPE_VALKIRIES:
+ // Cleanup chest
+ if (GameObject* cache = instance->GetGameObject(CrusadersCacheGUID))
+ cache->Delete();
switch (data)
{
case FAIL:
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
index 7064368f090..37d08484f0b 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp
@@ -789,7 +789,7 @@ class npc_tirion_toc : public CreatureScript
case 5005:
m_uiUpdateTimer = 8000;
instance->SetData(TYPE_EVENT, 5010);
- me->SummonCreature(NPC_LICH_KING_1, ToCSpawnLoc[0].GetPositionX(), ToCSpawnLoc[0].GetPositionY(), ToCSpawnLoc[0].GetPositionZ(), 5);
+ me->SummonCreature(NPC_LICH_KING_1, ToCCommonLoc[2].GetPositionX(), ToCCommonLoc[2].GetPositionY(), ToCCommonLoc[2].GetPositionZ(), 5);
break;
case 5020:
Talk(SAY_STAGE_4_03);
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h
index f361c3521d1..ba230551b24 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h
@@ -53,8 +53,8 @@ const Position ToCCommonLoc[]=
{563.833008f, 195.244995f, 394.585561f, 0}, // 5 - Center
{573.5f, 180.5f, 395.14f, 0}, // 6 Move 0 Right
{553.5f, 180.5f, 395.14f, 0}, // 7 Move 0 Left
- {585.5f, 170.0f, 395.14f, 0}, // 8 Move 1 Right
- {545.5f, 170.0f, 395.14f, 0}, // 9 Move 1 Left
+ {573.0f, 170.0f, 395.14f, 0}, // 8 Move 1 Right
+ {555.5f, 170.0f, 395.14f, 0}, // 9 Move 1 Left
{563.8f, 216.1f, 395.1f, 0}, // 10 Behind the door
{575.042358f, 195.260727f, 395.137146f, 0}, // 5
diff --git a/src/server/scripts/Northrend/wintergrasp.cpp b/src/server/scripts/Northrend/wintergrasp.cpp
index 37994e40b63..fc967acf9e2 100644
--- a/src/server/scripts/Northrend/wintergrasp.cpp
+++ b/src/server/scripts/Northrend/wintergrasp.cpp
@@ -139,7 +139,7 @@ class npc_wg_demolisher_engineer : public CreatureScript
return true;
}
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender */, uint32 action)
+ bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
{
player->CLOSE_GOSSIP_MENU();
@@ -207,7 +207,7 @@ class npc_wg_spirit_guide : public CreatureScript
return true;
}
- bool OnGossipSelect(Player* player, Creature* /*creature */ , uint32 /*sender */ , uint32 action)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/ , uint32 /*sender */ , uint32 action)
{
player->CLOSE_GOSSIP_MENU();
@@ -225,17 +225,16 @@ class npc_wg_spirit_guide : public CreatureScript
struct npc_wg_spirit_guideAI : public ScriptedAI
{
- npc_wg_spirit_guideAI(Creature* creature) : ScriptedAI(creature)
- { }
+ npc_wg_spirit_guideAI(Creature* creature) : ScriptedAI(creature) { }
- void UpdateAI(const uint32 /* diff */)
+ void UpdateAI(uint32 const /*diff*/)
{
if (!me->HasUnitState(UNIT_STATE_CASTING))
DoCast(me, SPELL_CHANNEL_SPIRIT_HEAL);
}
};
- CreatureAI *GetAI(Creature* creature) const
+ CreatureAI* GetAI(Creature* creature) const
{
return new npc_wg_spirit_guideAI(creature);
}
@@ -258,7 +257,7 @@ class npc_wg_queue : public CreatureScript
if (wintergrasp->IsWarTime())
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, sObjectMgr->GetTrinityStringForDBCLocale(WG_NPCQUEUE_TEXTOPTION_JOIN), GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
- player->SEND_GOSSIP_MENU(wintergrasp->GetDefenderTeam()? WG_NPCQUEUE_TEXT_H_WAR : WG_NPCQUEUE_TEXT_A_WAR, creature->GetGUID());
+ player->SEND_GOSSIP_MENU(wintergrasp->GetDefenderTeam() ? WG_NPCQUEUE_TEXT_H_WAR : WG_NPCQUEUE_TEXT_A_WAR, creature->GetGUID());
}
else
{
@@ -275,7 +274,7 @@ class npc_wg_queue : public CreatureScript
return true;
}
- bool OnGossipSelect(Player* player, Creature* /*creature */ , uint32 /*sender */ , uint32 /*action*/)
+ bool OnGossipSelect(Player* player, Creature* /*creature*/ , uint32 /*sender*/ , uint32 /*action*/)
{
player->CLOSE_GOSSIP_MENU();
@@ -302,9 +301,7 @@ class go_wg_vehicle_teleporter : public GameObjectScript
struct go_wg_vehicle_teleporterAI : public GameObjectAI
{
- go_wg_vehicle_teleporterAI(GameObject* gameObject) : GameObjectAI(gameObject),
- _checkTimer(1000)
- { }
+ go_wg_vehicle_teleporterAI(GameObject* gameObject) : GameObjectAI(gameObject), _checkTimer(1000) { }
void UpdateAI(uint32 diff)
{
@@ -324,6 +321,7 @@ class go_wg_vehicle_teleporter : public GameObjectScript
}
else _checkTimer -= diff;
}
+
private:
uint32 _checkTimer;
};
@@ -358,12 +356,12 @@ class npc_wg_quest_giver : public CreatureScript
for (QuestRelations::const_iterator i = objectQIR.first; i != objectQIR.second; ++i)
{
- uint32 quest_id = i->second;
- QuestStatus status = player->GetQuestStatus(quest_id);
+ uint32 questId = i->second;
+ QuestStatus status = player->GetQuestStatus(questId);
if (status == QUEST_STATUS_COMPLETE)
- qm.AddMenuItem(quest_id, 4);
+ qm.AddMenuItem(questId, 4);
else if (status == QUEST_STATUS_INCOMPLETE)
- qm.AddMenuItem(quest_id, 4);
+ qm.AddMenuItem(questId, 4);
//else if (status == QUEST_STATUS_AVAILABLE)
// qm.AddMenuItem(quest_id, 2);
}
@@ -549,17 +547,14 @@ public:
}
};
-
-
void AddSC_wintergrasp()
{
new npc_wg_queue();
new npc_wg_spirit_guide();
new npc_wg_demolisher_engineer();
+ new go_wg_vehicle_teleporter();
new npc_wg_quest_giver();
- new achievement_wg_didnt_stand_a_chance();
new spell_wintergrasp_force_building();
new spell_wintergrasp_grab_passenger();
-
- new go_wg_vehicle_teleporter();
+ new achievement_wg_didnt_stand_a_chance();
}