Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ...\src\server\scripts\Northrend\storm_peaks.cpp
- /*MINE SWEEPER by Farnham
- spell detonation 54355 ktory povodne triggerovala mina nedava knockback a ani dmg hracovi, npc okolo dava,
- zmeneny na spell Landmine Knockback Achievement 57064 ktory da na hraca auru Landmine Knockback Achievement Aura 57099, stackable 10x
- pridany knockback cca podobny (range) ako na videach z offi + provizorny dmg, da sa nahradit fireballom
- povodny spell detonation je zachovany lebo ma perfektny efekt vybuchu a dymoveho efektu
- detonation ale spawnuje landminebunny 29397, bude to vidiet aj v combat logu, ktoremu som prehodil extra_flags na trigger, invisible
- mysql updates
- DELETE FROM disables WHERE sourceType=4 AND entry=5258;
- DELETE FROM achievement_criteria_data WHERE criteria_id=5258;
- INSERT INTO achievement_criteria_data VALUES (5258,11,0,0,'achievement_mine_sweeper');
- DELETE FROM spell_script_names WHERE spell_id=57064;
- INSERT INTO spell_script_names VALUES ('57064', 'spell_mine_sweeper');
- UPDATE gameobject_template SET data3=57064 WHERE entry=191502;
- UPDATE creature_template SET flags_extra=128 WHERE entry=29397;
- */
- enum mine_sweeper
- {
- AURA=57099,
- KNOCK=40191,
- DETONATION=54355
- };
- class achievement_mine_sweeper : public AchievementCriteriaScript
- {
- public:
- achievement_mine_sweeper() : AchievementCriteriaScript("achievement_mine_sweeper") { }
- bool OnCheck(Player* player, Unit* /*target*/)
- {
- if(player)
- if (Aura *aura = player->GetAura(AURA))
- if(aura->GetStackAmount()>8)
- return true;
- return false;
- }
- };
- class spell_mine_sweeper : public SpellScriptLoader
- {
- public:
- spell_mine_sweeper() : SpellScriptLoader("spell_mine_sweeper") { }
- class spell_mine_sweeperSpellScript : public SpellScript
- {
- PrepareSpellScript(spell_mine_sweeperSpellScript)
- bool Validate(SpellInfo const* /*spellEntry*/)
- {
- if (!sSpellMgr->GetSpellInfo(AURA) || !sSpellMgr->GetSpellInfo(KNOCK))
- return false;
- return true;
- }
- bool Load(){return true;}
- void Unload(){}
- void HandleDummyHit(SpellEffIndex /*effIndex*/)
- {
- Unit *caster=GetCaster();
- if (Unit* target = GetHitUnit())
- {
- caster->CastSpell(target, KNOCK, true);
- caster->CastSpell(target, AURA, true);
- caster->CastSpell(target, DETONATION, true);
- caster->DealDamage(target,525+urand(0,150),0,SPELL_DIRECT_DAMAGE,SPELL_SCHOOL_MASK_FIRE);
- }
- }
- void Register()
- {
- OnEffectHitTarget += SpellEffectFn(spell_mine_sweeperSpellScript::HandleDummyHit, EFFECT_0, SPELL_EFFECT_DUMMY);
- }
- };
- SpellScript* GetSpellScript() const
- {
- return new spell_mine_sweeperSpellScript();
- }
- };
- void AddSC_storm_peaks()
- {
- new npc_agnetta_tyrsdottar;
- new npc_frostborn_scout;
- new npc_thorim;
- new npc_goblin_prisoner;
- new npc_victorious_challenger;
- new npc_loklira_crone;
- new npc_injured_goblin;
- new npc_roxi_ramrocket;
- new npc_brunnhildar_prisoner;
- new npc_icefang;
- new npc_hyldsmeet_protodrake;
- new achievement_mine_sweeper;
- new spell_mine_sweeper;
- }
Add Comment
Please, Sign In to add comment