aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLopin <davca.hr@seznam.cz>2011-06-23 21:20:54 +0200
committerLopin <davca.hr@seznam.cz>2011-06-23 21:20:54 +0200
commit327c5d65bd889b0e44f7630c5d2226b83b63c97a (patch)
tree296eec3cd08e8cedc474b93dda9a1ca762f2a3a0 /src
parent42a80ceaafe14ccb44b212cd7629e59efd89a1e6 (diff)
Scripts/Azjol'Nerub: Properly fixed achievement Watch Him Die and remove forgotten stuff from last recent commit
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp67
-rw-r--r--src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp20
2 files changed, 36 insertions, 51 deletions
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp
index 71063c9a80b..0affcc59605 100644
--- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp
+++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp
@@ -75,11 +75,6 @@ enum Yells
SAY_PREFIGHT_3 = -1601019
};
-enum Misc
-{
- ACHIEV_WATH_HIM_DIE = 1296
-};
-
const Position SpawnPoint[] =
{
{ 566.164f, 682.087f, 769.079f, 2.21657f },
@@ -186,24 +181,8 @@ public:
{
DoScriptText(SAY_DEATH, me);
- if (!pInstance)
- return;
-
- pInstance->SetData(DATA_KRIKTHIR_THE_GATEWATCHER_EVENT, DONE);
- //Achievement: Watch him die
- Creature *pAdd = Unit::GetCreature(*me, pInstance->GetData64(DATA_WATCHER_GASHRA));
- if (!pAdd || !pAdd->isAlive())
- return;
-
- pAdd = Unit::GetCreature(*me, pInstance->GetData64(DATA_WATCHER_SILTHIK));
- if (!pAdd || !pAdd->isAlive())
- return;
-
- pAdd = Unit::GetCreature(*me, pInstance->GetData64(DATA_WATCHER_NARJIL));
- if (!pAdd || !pAdd->isAlive())
- return;
-
- pInstance->DoCompleteAchievement(ACHIEV_WATH_HIM_DIE);
+ if (pInstance)
+ pInstance->SetData(DATA_KRIKTHIR_THE_GATEWATCHER_EVENT, DONE);
}
void KilledUnit(Unit* victim)
@@ -551,14 +530,40 @@ public:
}
};
+class achievement_watch_him_die : public AchievementCriteriaScript
+{
+ public:
+ achievement_watch_him_die() : AchievementCriteriaScript("achievement_watch_him_die")
+ {
+ }
+
+ bool OnCheck(Player* /*player*/, Unit* target)
+ {
+ InstanceScript* instance = target->GetInstanceScript();
+ Creature* Watcher[3];
+ if (!instance)
+ return false;
+
+ for (uint8 n = 0; n < 3; ++n)
+ {
+ Watcher[n] = ObjectAccessor::GetCreature(*target, instance->GetData64(DATA_WATCHER_GASHRA + n));
+ if (Watcher[n] && !Watcher[n]->isAlive())
+ return false;
+ }
+
+ return true;
+ }
+};
+
void AddSC_boss_krik_thir()
{
- new boss_krik_thir;
- new npc_skittering_infector;
- new npc_anub_ar_skirmisher;
- new npc_anub_ar_shadowcaster;
- new npc_watcher_gashra;
- new npc_anub_ar_warrior;
- new npc_watcher_silthik;
- new npc_watcher_narjil;
+ new boss_krik_thir();
+ new npc_skittering_infector();
+ new npc_anub_ar_skirmisher();
+ new npc_anub_ar_shadowcaster();
+ new npc_watcher_gashra();
+ new npc_anub_ar_warrior();
+ new npc_watcher_silthik();
+ new npc_watcher_narjil();
+ new achievement_watch_him_die();
}
diff --git a/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp b/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp
index 93acb74cee6..6adf8314d5e 100644
--- a/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp
+++ b/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp
@@ -32,7 +32,6 @@ enum Spells
SPELL_STAMPEDE = 55218,
SPELL_WHIRLING_SLASH = 55250,
H_SPELL_WHIRLING_SLASH = 59824,
- SPELL_ECK_RESIDUE = 55817
};
//Yells
@@ -50,11 +49,6 @@ enum Yells
SAY_TRANSFORM_2 = -1604009
};
-enum Achievements
-{
- ACHIEV_WHAT_THE_ECK = 1864,
-};
-
enum Displays
{
DISPLAY_RHINO = 26265,
@@ -276,21 +270,7 @@ public:
DoScriptText(SAY_DEATH, me);
if (pInstance)
- {
- if (IsHeroic())
- {
- AchievementEntry const *achievWhatTheEck = GetAchievementStore()->LookupEntry(ACHIEV_WHAT_THE_ECK);
- if (achievWhatTheEck)
- {
- Map::PlayerList const &players = pInstance->instance->GetPlayers();
- for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
- if (itr->getSource()->HasAura(SPELL_ECK_RESIDUE))
- itr->getSource()->CompletedAchievement(achievWhatTheEck);
- }
- }
-
pInstance->SetData(DATA_GAL_DARAH_EVENT, DONE);
- }
}
void KilledUnit(Unit* victim)