All pastes #916155 Raw Edit

Mine

public cpp v1 · immutable
#916155 ·published 2008-02-24 11:45 UTC
rendered paste body
/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>* This program is free software; you can redistribute it and/or modify* it under the terms of the GNU General Public License as published by* the Free Software Foundation; either version 2 of the License, or* (at your option) any later version.** This program is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the* GNU General Public License for more details.** You should have received a copy of the GNU General Public License* along with this program; if not, write to the Free Software* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA*//* ScriptDataSDName: boss_hexlordSD%Complete: 75%SQLUpdate: update `creature_template` set `ScriptName` = 'boss_hexlord' where entry = 24239;TODO:Random spawn 4 of a possible 8 choices as instance is created for groupThurg ID 24241Gazakroth ID 24244Lord Raadan ID 24243Darkheart ID 24246Alyson Antille ID 24240Slither ID 24242Fenstalker ID 24245Koragg ID 24247All of the above need AIWhen hexlord dies doors should openEndScriptData */#include "../../sc_defines.h"#include "../../creature/simple_ai.h"#include "../../../../../game/TargetedMovementGenerator.h"#define SPELL_DRAINSOUL 32862#define SPELL_SPIRITBOLTS 43382// Spells from Soul Drain Ability//Druid#define SPELL_DRUID_LIFEBLOOM 43421#define SPELL_DRUID_THORNS 43420#define SPELL_DRUID_MOONFIRE 43545//Hunter#define SPELL_HUNTER_EXPOSIVETRAP 43444#define SPELL_HUNTER_FREEZINGTRAP 43447//#define SPELL_HUNTER_SNAKETRAP 43449 //not working in core yet//Mage#define SPELL_MAGE_FIREBALL 41383#define SPELL_MAGE_FROSTBOLT 43428#define SPELL_MAGE_FROSTNOVA 43426#define SPELL_MAGE_ICELANCE 43427//Paladin#define SPELL_PALADIN_CONSECRATION 43429#define SPELL_PALADIN_HOLYLIGHT 43451#define SPELL_PALADIN_AVENGINGWRATH 43430//Priest#define SPELL_PRIEST_HEAL 41372//#define SPELL_PRIEST_MINDCONTROL 43550 //dissabled until fully supported in core#define SPELL_PRIEST_MINDBLAST 41374#define SPELL_PRIEST_SHADOWWORDDEATH 41375#define SPELL_PRIEST_PSYCHICSCREAM 43432//#define SPELL_PRIEST_PAINSUPPRESSION 44416//Rouge#define SPELL_ROUGE_BLIND 43433#define SPELL_ROUGE_SLICENDICE 43547#define SPELL_ROUGE_WOUNDPOISON 39665//Shaman#define SPELL_SHAMAN_FIRENOVATOTEM 43436#define SPELL_SHAMAN_HEALINGWAVE 43548#define SPELL_SHAMAN_CHAINLIGHTNING 43435//Warlock#define SPELL_WARLOCK_CURSEOFDOOM 43439#define SPELL_WARLOCK_RAINOFFIRE 43440#define SPELL_WARLOCK_UNSTABLEAFFLICTION 35183//Warrior#define SPELL_WARRIOR_SPELLREFLECT 43443#define SPELL_WARRIOR_WHIRLWIND 43442#define SPELL_WARRIOR_MORTALSTRIKE 43441struct MANGOS_DLL_DECL boss_hexlordAI : public ScriptedAI{bool InCombat;uint32 DruidDmgSpellTimer;uint32 DruidBuffSpellTimer;uint32 DruidHealSpellTimer;uint32 HunterDmgTrapTimer;uint32 HunterCCTrapTimer;uint32 MageCCSpellTimer;uint32 MageDmgSpellTimer;uint32 PaladinDmgSpellTimer;uint32 PaladinBuffSpellTimer;uint32 PaladinHealSpellTimer;uint32 PriestDmgSpellTimer;uint32 PriestCCSpellTimer;uint32 PriestHealSpellTimer;uint32 RougeDmgSpellTimer;uint32 RougeCCSpellTimer;uint32 RougeDeBuffSpellTimer;uint32 ShamanDmgSpellTimer;uint32 ShamanTotemTimer;uint32 ShamanHealSpellTimer;uint32 WarlockDmgSpellTimer;uint32 WarlockCODSpellTimer;uint32 WarlockCurseSpellTimer;uint32 WarriorDmgSpellTimer;uint32 WarriorAoEDmgSpellTimer;uint32 WarriorSpellReflectTimer;uint32 DrainSoulTimer;uint32 SpiritBoltVolleyTimer;ScriptedInstance* pInstance;boss_hexlordAI(Creature *c) : ScriptedAI(c) {pInstance = (c->GetInstanceData()) ? ((ScriptedInstance*)c->GetInstanceData()) : NULL;EnterEvadeMode();}void EnterEvadeMode(){InCombat = false;if (pInstance)pInstance->SetData("hexlordIsDead", 0);DruidDmgSpellTimer = 10000;DruidBuffSpellTimer = 10000;DruidHealSpellTimer = 10000;HunterDmgTrapTimer = 10000;HunterCCTrapTimer = 10000;MageCCSpellTimer = 10000;MageDmgSpellTimer = 10000;PaladinDmgSpellTimer = 10000;PaladinBuffSpellTimer = 10000;PaladinHealSpellTimer = 10000;PriestDmgSpellTimer = 10000;PriestCCSpellTimer = 10000;PriestHealSpellTimer = 10000;RougeDmgSpellTimer = 10000;RougeCCSpellTimer = 10000;RougeDeBuffSpellTimer = 10000;ShamanDmgSpellTimer = 10000;ShamanTotemTimer = 10000;ShamanHealSpellTimer = 10000;WarlockDmgSpellTimer = 10000;WarlockCODSpellTimer = 10000;WarlockCurseSpellTimer = 10000;WarriorDmgSpellTimer = 10000;WarriorAoEDmgSpellTimer = 10000;WarriorSpellReflectTimer = 10000;DrainSoulTimer = 10000;SpiritBoltVolleyTimer = 10000;m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_DISARM, true);m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_POLYMORPH, true);m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_INTERRUPT, true);m_creature->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_INTERRUPT_CAST, true);m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_SILENCE, true); m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_CONFUSED, true);m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_CHARM , true);m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_FEAR , true);m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_ROOT, true);m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_STUN, true);m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_FREEZE, true);m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_HORROR, true);m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_DAZE, true);m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_SLEEP, true);m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_BANISH, true);m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_SNARE, true);m_creature->RemoveAllAuras();m_creature->DeleteThreatList();m_creature->CombatStop();DoGoHome();}};CreatureAI* GetAI_boss_hexlord(Creature *_Creature){return new boss_hexlordAI(_Creature);}void AddSC_boss_hexlord(){    Script *newscript;    newscript = new Script;    newscript->Name="boss_hexlord";    newscript->GetAI = GetAI_boss_hexlord;    m_scripts[nrscripts++] = newscript;}