Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- From ddb41b1afe3ea930f17d973ccdd44367920c5432 Mon Sep 17 00:00:00 2001
- From: unknown <cristi@cristis-PC.(none)>
- Date: Sat, 14 Jul 2012 19:30:47 +0300
- Subject: [PATCH] Mine Sweeper Achievement Fix
- ---
- src/server/scripts/Northrend/storm_peaks.cpp | 100 ++++++++++++++++++++++++++
- 1 file changed, 100 insertions(+)
- diff --git a/src/server/scripts/Northrend/storm_peaks.cpp b/src/server/scripts/Northrend/storm_peaks.cpp
- index 15239e9..1e702a5 100644
- --- a/src/server/scripts/Northrend/storm_peaks.cpp
- +++ b/src/server/scripts/Northrend/storm_peaks.cpp
- @@ -746,6 +746,103 @@ class npc_hyldsmeet_protodrake : public CreatureScript
- }
- };
- +/*################
- +### Support for achievement Mine Sweeper
- +#########################*/
- +
- +enum MineSweeperEntries
- +{
- + SPELL_KNOCK_BACK = 54402,
- + NPC_LAND_MINE_BUNNY = 29397,
- + SPELL_LANDMINE_KNOCKBACK_ACHIEVEMENT = 57064,
- + SPELL_LANDMINE_KNOCKBACK_ACHIEVEMENT_AURA = 57099
- +};
- +
- +class mob_land_mine_bunny : public CreatureScript
- +{
- +public:
- + mob_land_mine_bunny() : CreatureScript("mob_land_mine_bunny") { }
- +
- + CreatureAI* GetAI(Creature* creature) const
- + {
- + return new mob_land_mine_bunnyAI (creature);
- + }
- +
- + struct mob_land_mine_bunnyAI : public ScriptedAI
- + {
- + mob_land_mine_bunnyAI(Creature* creature) : ScriptedAI(creature)
- + {
- + }
- +
- + void AttackStart(Unit* /*who*/) {}
- + void MoveInLineOfSight(Unit* who)
- + {
- + Player* player = who->ToPlayer();
- + me->CastSpell(me,SPELL_KNOCK_BACK);
- + if(player)
- + player->CastSpell(player,SPELL_LANDMINE_KNOCKBACK_ACHIEVEMENT_AURA);
- + }
- + void UpdateAI(const uint32 /*diff*/) {}
- + };
- +
- +};
- +
- +class spell_gen_landmine_knockback_achievement_aura : public SpellScriptLoader
- +{
- + public:
- + spell_gen_landmine_knockback_achievement_aura() : SpellScriptLoader("spell_gen_landmine_knockback_achievement_aura") { }
- +
- + class spell_gen_landmine_knockback_achievement_aura_SpellScript : public SpellScript
- + {
- + PrepareSpellScript(spell_gen_landmine_knockback_achievement_aura_SpellScript);
- +
- + bool Validate(SpellInfo const* /*spell*/)
- + {
- + if (!sSpellMgr->GetSpellInfo(SPELL_LANDMINE_KNOCKBACK_ACHIEVEMENT))
- + return false;
- + return true;
- + }
- +
- + void HandleScript(SpellEffIndex /*effIndex*/)
- + {
- + if (Player* target = GetHitPlayer())
- + {
- + Aura const* aura = target->GetAura(GetSpellInfo()->Id);
- + if (!(aura && aura->GetStackAmount() == 10))
- + return;
- +
- + target->CastSpell(target, SPELL_LANDMINE_KNOCKBACK_ACHIEVEMENT, true);
- + }
- + }
- +
- + void Register()
- + {
- + OnEffectHitTarget += SpellEffectFn(spell_gen_landmine_knockback_achievement_aura_SpellScript::HandleScript, EFFECT_1, SPELL_EFFECT_APPLY_AURA);
- + }
- + };
- +
- + SpellScript* GetSpellScript() const
- + {
- + return new spell_gen_landmine_knockback_achievement_aura_SpellScript();
- + }
- +};
- +
- +
- +class achievement_mine_sweeper : public AchievementCriteriaScript
- +{
- + public:
- + achievement_mine_sweeper() : AchievementCriteriaScript("achievement_mine_sweeper") { }
- +
- + bool OnCheck(Player* source, Unit* /* target */)
- + {
- + Aura const* aura = source->GetAura(SPELL_LANDMINE_KNOCKBACK_ACHIEVEMENT_AURA);
- + if (!(aura && aura->GetStackAmount() == 10))
- + return false;
- +
- + return true;
- + }
- +};
- +
- void AddSC_storm_peaks()
- {
- new npc_agnetta_tyrsdottar();
- @@ -758,4 +855,7 @@ void AddSC_storm_peaks()
- new npc_brunnhildar_prisoner();
- new npc_icefang();
- new npc_hyldsmeet_protodrake();
- + new mob_land_mine_bunny();
- + new spell_gen_landmine_knockback_achievement_aura();
- + new achievement_mine_sweeper();
- }
- --
- 1.7.10.msysgit.1
Advertisement
Add Comment
Please, Sign In to add comment