Guest User

Untitled

a guest
May 23rd, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.38 KB | None | 0 0
  1. ...\src\server\scripts\Northrend\storm_peaks.cpp
  2. /*MINE SWEEPER by Farnham
  3. spell detonation 54355 ktory povodne triggerovala mina nedava knockback a ani dmg hracovi, npc okolo dava,
  4. zmeneny na spell Landmine Knockback Achievement 57064  ktory da na hraca auru Landmine Knockback Achievement Aura 57099, stackable 10x
  5. pridany knockback cca podobny (range) ako na videach z offi + provizorny dmg, da sa nahradit fireballom
  6. povodny spell detonation je zachovany lebo ma perfektny efekt vybuchu a dymoveho efektu
  7. detonation ale spawnuje landminebunny 29397, bude to vidiet aj v combat logu, ktoremu som prehodil extra_flags na trigger, invisible
  8.  
  9. mysql updates
  10.  
  11. DELETE FROM disables WHERE sourceType=4 AND entry=5258;
  12. DELETE FROM achievement_criteria_data WHERE criteria_id=5258;
  13. INSERT INTO achievement_criteria_data VALUES (5258,11,0,0,'achievement_mine_sweeper');
  14.  
  15. DELETE FROM spell_script_names WHERE spell_id=57064;
  16. INSERT INTO spell_script_names VALUES ('57064', 'spell_mine_sweeper');
  17.  
  18. UPDATE gameobject_template SET data3=57064 WHERE entry=191502;
  19.  
  20. UPDATE creature_template SET flags_extra=128 WHERE entry=29397;
  21. */
  22. enum mine_sweeper
  23.     {
  24.     AURA=57099,
  25.     KNOCK=40191,
  26.     DETONATION=54355
  27.     };
  28. class achievement_mine_sweeper : public AchievementCriteriaScript
  29. {
  30. public:
  31.     achievement_mine_sweeper() : AchievementCriteriaScript("achievement_mine_sweeper") { }
  32.  
  33.     bool OnCheck(Player* player, Unit* /*target*/)
  34.         {
  35.         if(player)
  36.             if (Aura *aura = player->GetAura(AURA))
  37.                 if(aura->GetStackAmount()>8)
  38.                     return true;
  39.         return false;
  40.         }
  41. };
  42.  
  43. class spell_mine_sweeper : public SpellScriptLoader
  44. {
  45. public:
  46.     spell_mine_sweeper() : SpellScriptLoader("spell_mine_sweeper") { }
  47.  
  48.     class spell_mine_sweeperSpellScript : public SpellScript
  49.         {
  50.         PrepareSpellScript(spell_mine_sweeperSpellScript)
  51.  
  52.         bool Validate(SpellInfo const* /*spellEntry*/)
  53.             {
  54.             if (!sSpellMgr->GetSpellInfo(AURA) || !sSpellMgr->GetSpellInfo(KNOCK))
  55.                 return false;
  56.             return true;
  57.             }
  58.  
  59.         bool Load(){return true;}
  60.  
  61.         void Unload(){}
  62.  
  63.         void HandleDummyHit(SpellEffIndex /*effIndex*/)
  64.             {
  65.             Unit *caster=GetCaster();
  66.             if (Unit* target = GetHitUnit())
  67.                 {
  68.                 caster->CastSpell(target, KNOCK, true);
  69.                 caster->CastSpell(target, AURA, true);
  70.                 caster->CastSpell(target, DETONATION, true);
  71.                 caster->DealDamage(target,525+urand(0,150),0,SPELL_DIRECT_DAMAGE,SPELL_SCHOOL_MASK_FIRE);
  72.                 }
  73.             }
  74.  
  75.         void Register()
  76.             {
  77.             OnEffectHitTarget += SpellEffectFn(spell_mine_sweeperSpellScript::HandleDummyHit, EFFECT_0, SPELL_EFFECT_DUMMY);
  78.             }
  79.         };
  80.  
  81.     SpellScript* GetSpellScript() const
  82.         {
  83.         return new spell_mine_sweeperSpellScript();
  84.         }
  85. };
  86.  
  87. void AddSC_storm_peaks()
  88. {
  89.     new npc_agnetta_tyrsdottar;
  90.     new npc_frostborn_scout;
  91.     new npc_thorim;
  92.     new npc_goblin_prisoner;
  93.     new npc_victorious_challenger;
  94.     new npc_loklira_crone;
  95.     new npc_injured_goblin;
  96.     new npc_roxi_ramrocket;
  97.     new npc_brunnhildar_prisoner;
  98.     new npc_icefang;
  99.     new npc_hyldsmeet_protodrake;
  100.     new achievement_mine_sweeper;
  101.     new spell_mine_sweeper;
  102. }
Add Comment
Please, Sign In to add comment