Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2019
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.41 KB | None | 0 0
  1. //INSERT INTO spell_script_names VALUES (999347, 'freakz_aura_remove_areatriggers_xylem_mage_tower');
  2. class freakz_aura_remove_areatriggers_xylem_mage_tower : public SpellScriptLoader
  3. {
  4. public:
  5. freakz_aura_remove_areatriggers_xylem_mage_tower() : SpellScriptLoader("freakz_aura_remove_areatriggers_xylem_mage_tower") { }
  6.  
  7. enum eMisc
  8. {
  9. //Creatures:
  10. NPC_XYLEM = 115244,
  11. NPC_XYLEM_CLONE = 116295,
  12. NPC_CORRUPTING_SHADOWS = 116839,
  13. //Spells:
  14. SPELL_ARCANE_AREATRIGGER = 231982,
  15. SPELL_PURPLE_GOO_AREATRIGGER = 232664
  16. };
  17.  
  18. class freakz_aura_remove_areatriggers_xylem_mage_tower_AuraScript : public AuraScript
  19. {
  20. PrepareAuraScript(freakz_aura_remove_areatriggers_xylem_mage_tower_AuraScript);
  21.  
  22. void HandleApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
  23. {
  24. if (!GetCaster())
  25. return;
  26.  
  27. Unit* caster = GetCaster();
  28.  
  29. Creature* xylem = caster->FindNearestCreature(NPC_XYLEM, 200.0f);
  30. Creature* corruptingShadows = caster->FindNearestCreature(NPC_CORRUPTING_SHADOWS, 200.0f, false);
  31.  
  32. if (!xylem && !corruptingShadows)
  33. return;
  34.  
  35. if (xylem)
  36. {
  37. std::list<Creature*> xylemClones;
  38. caster->GetCreatureListWithEntryInGrid(xylemClones, NPC_XYLEM_CLONE);
  39.  
  40. for (Creature* xylem_clone : xylemClones)
  41. if (xylem_clone->GetAreaTrigger(SPELL_ARCANE_AREATRIGGER))
  42. xylem_clone->GetAreaTrigger(SPELL_ARCANE_AREATRIGGER)->Remove();
  43. }
  44. else //if (corruptingShadows)
  45. {
  46. std::vector<AreaTrigger*> goo_areatriggers = corruptingShadows->GetAreaTriggers(SPELL_PURPLE_GOO_AREATRIGGER);
  47. for (AreaTrigger* at : goo_areatriggers)
  48. if (at)
  49. at->Remove();
  50. }
  51. }
  52.  
  53. void Register() override
  54. {
  55. AfterEffectApply += AuraEffectApplyFn(freakz_aura_remove_areatriggers_xylem_mage_tower_AuraScript::HandleApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
  56. }
  57. };
  58.  
  59. AuraScript* GetAuraScript() const override
  60. {
  61. return new freakz_aura_remove_areatriggers_xylem_mage_tower_AuraScript();
  62. }
  63. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement