Public feed #726866

Deedee/HyjalMobs

public cpp v1 · immutable
Raw Edit
·published 2007-10-05 15:38 UTC
rendered paste body
/* Copyright (C) 2006,2007 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*//****************************** *  Another Script still      * *   under development!       * ******************************/#include "../../../sc_defines.h"#include "../../../creature/simple_ai.h"//NPCs#define FOOTMAN_AGGRO_1        "Let these monsters taste cold steel!"#define FOOTMAN_AGGRO_2        "Back, hold them back!"#define FOOTMAN_AGGRO_3        "Back to the void with you!"#define FOOTMAN_KILL_1         "One less demon to contend with!"#define FOOTMAN_DEATH_1        "I... can't..."#define FOOTMAN_DEATH_2        "Agghh!"#define KNIGHT_AGGRO_1         "For Lordaeron! For victory!"#define KNIGHT_AGGRO_2         "Rout these demons!"#define KNIGHT_AGGRO_3         "For the Light!"#define KNIGHT_KILL_1          "Justice is served!"#define KNIGHT_DEATH_1         "Light receive me!"#define KNIGHT_DEATH_2         "Good will... prevail."#define RIFLEMAN_AGGRO_1       "I'm itchin' to shoot somethin'!"#define RIFLEMAN_AGGRO_2       "Blow 'em away!"//#define RIFLEMAN_KILL_1        "Take that, ya"  unfinished#define RIFLEMAN_DEATH_1       "Carry on the fight!"#define SORCERESS_KILL_1       "Next!"#define SORCERESS_DEATH_1      "Ras...?"#define PRIEST_KILL_1          "Vengeance is ours!"//Monsters#define NECRO_DEATH_1          "You will... ultimately fail."#define NECRO_DEATH_2          "My life... to the master."#define NECRO_DEATH_3          "A pleasure... to serve the master."CreatureAI* GetAI_mob_hyjal(Creature *_Creature){    SimpleAI* ai = new SimpleAI (_Creature);    uint32 CreatureID = _Creature->GetEntry();    switch (CreatureID)     {        //Abomination    case 17898:         ai->Spell[0].Enabled = true;                        ai->Spell[0].Spell_Id = 29865;        //Poison Aura - too weak!          ai->Spell[0].Cooldown = 15000;                         ai->Spell[0].First_Cast = 15000;                     ai->Spell[0].Cast_Target_Type = CAST_HOSTILE_TARGET;        break;        //Ghoul    case 17895:        ai->Spell[0].Enabled = true;                        ai->Spell[0].Spell_Id = 20578;        //Cannibalize              ai->Spell[0].Cooldown = 30000;                         ai->Spell[0].First_Cast = -15;                     ai->Spell[0].Cast_Target_Type = CAST_SELF;        break;        //Shadowy Necromancer    case 17899:        ai->Death_Text[0] = NECRO_DEATH_1;        ai->Death_Say[0] = true;        ai->Death_Text[1] = NECRO_DEATH_2;        ai->Death_Say[1] = true;        ai->Death_Text[2] = NECRO_DEATH_3;        ai->Death_Say[2] = true;            ai->Spell[0].Enabled = true;                        ai->Spell[0].Spell_Id = 31626;        //Unholy Frenzy              ai->Spell[0].Cooldown = 10000;                         ai->Spell[0].First_Cast = 10000;                     ai->Spell[0].Cast_Target_Type = CAST_SELF; //Should be CAST_FRIENDLY_RANDOM, but that's NYI                        ai->Spell[1].Enabled = true;        ai->Spell[1].Spell_Id = 29487;		//Shadow Bolt        ai->Spell[1].Cooldown = 3000;        ai->Spell[1].First_Cast = 3000;        ai->Spell[1].Cast_Target_Type = CAST_HOSTILE_TARGET;                        ai->Spell[2].Enabled = true;        ai->Spell[2].Spell_Id = 11443;		//Cripple        ai->Spell[2].Cooldown = 10000;        ai->Spell[2].First_Cast = 10000;        ai->Spell[2].Cast_Target_Type = CAST_HOSTILE_RANDOM;        ai->Spell[3].Enabled = false;        ai->Spell[3].Spell_Id = 31624;		//Raise Dead - Skeleton Invader        ai->Spell[3].Cooldown = 10000;      //Bugged        ai->Spell[3].First_Cast = 10000;        ai->Spell[3].Cast_Target_Type = CAST_KILLEDUNIT_VICTIM;                        ai->Spell[4].Enabled = false;        ai->Spell[4].Spell_Id = 31625;		//Raise Dead - Skeleton Mage        ai->Spell[4].Cooldown = 10000;      //Bugged        ai->Spell[4].First_Cast = 10000;        ai->Spell[4].Cast_Target_Type = CAST_KILLEDUNIT_VICTIM;        break;        //Crypt Fiend    case 17897:        ai->Spell[0].Enabled = true;                        ai->Spell[0].Spell_Id = 745;        //Web           ai->Spell[0].Cooldown = 10000;                         ai->Spell[0].First_Cast = 10000;                     ai->Spell[0].Cast_Target_Type = CAST_HOSTILE_RANDOM;        break;        //Alliance Footman    case 17919:        ai->Aggro_Text[0] = FOOTMAN_AGGRO_1;        ai->Aggro_Say[0] = true;        ai->Aggro_Text[1] = FOOTMAN_AGGRO_2;        ai->Aggro_Say[1] = true;        ai->Aggro_Text[2] = FOOTMAN_AGGRO_3;        ai->Aggro_Say[2] = true;        ai->Kill_Text[0] = FOOTMAN_KILL_1;        ai->Kill_Say[0] = true;        ai->Death_Text[0] = FOOTMAN_DEATH_1;        ai->Death_Say[0] = true;        ai->Death_Text[1] = FOOTMAN_DEATH_2;        ai->Death_Say[1] = true;        ai->Spell[0].Enabled = true;                        ai->Spell[0].Spell_Id = 31731;        //Shield Wall           ai->Spell[0].Cooldown = 30000;                         ai->Spell[0].First_Cast = 10000;                     ai->Spell[0].Cast_Target_Type = CAST_SELF;        break;        //Alliance Knight    case 17920:        ai->Aggro_Text[0] = KNIGHT_AGGRO_1;        ai->Aggro_Say[0] = true;        ai->Aggro_Text[1] = KNIGHT_AGGRO_2;        ai->Aggro_Say[1] = true;        ai->Aggro_Text[2] = KNIGHT_AGGRO_3;        ai->Aggro_Say[2] = true;        ai->Kill_Text[0] = KNIGHT_KILL_1;        ai->Kill_Say[0] = true;        ai->Death_Text[0] = KNIGHT_DEATH_1;        ai->Death_Say[0] = true;        ai->Death_Text[1] = KNIGHT_DEATH_2;        ai->Death_Say[1] = true;        ai->Spell[0].Enabled = true;                        ai->Spell[0].Spell_Id = 31732;        //Rallying Cry           ai->Spell[0].Cooldown = 45000;                         ai->Spell[0].First_Cast = 30000;                     ai->Spell[0].Cast_Target_Type = CAST_SELF;        break;        //Alliance Rifleman    case 17921:        ai->Aggro_Text[0] = RIFLEMAN_AGGRO_1;        ai->Aggro_Say[0] = true;        ai->Aggro_Text[1] = RIFLEMAN_AGGRO_2;        ai->Aggro_Say[1] = true;        ai->Death_Text[0] = RIFLEMAN_DEATH_1;        ai->Death_Say[0] = true;        ai->Spell[0].Enabled = true;                        ai->Spell[0].Spell_Id = 32103;        //Shoot           ai->Spell[0].Cooldown = 1000;                         ai->Spell[0].First_Cast = 1000;                     ai->Spell[0].Cast_Target_Type = CAST_HOSTILE_TARGET;                        ai->Spell[1].Enabled = true;                        ai->Spell[1].Spell_Id = 33792;        //Exploding Shot           ai->Spell[1].Cooldown = 10000;                         ai->Spell[1].First_Cast = 1000;                     ai->Spell[1].Cast_Target_Type = CAST_HOSTILE_TARGET;        break;        //Alliance Sorceress    case 17922:        ai->Kill_Text[0] = SORCERESS_KILL_1;        ai->Kill_Say[0] = true;        ai->Death_Text[0] = SORCERESS_DEATH_1;        ai->Death_Say[0] = true;        break;        //Alliance Priest    case 17928:        ai->Kill_Text[0] = PRIEST_KILL_1;        ai->Kill_Say[0] = true;        ai->Spell[0].Enabled = true;                        ai->Spell[0].Spell_Id = 31740;        //Holy Smite           ai->Spell[0].Cooldown = 10000;                         ai->Spell[0].First_Cast = 5000;                     ai->Spell[0].Cast_Target_Type = CAST_HOSTILE_TARGET;                ai->Spell[1].Enabled = true;                        ai->Spell[1].Spell_Id = 31739;        //Heal           ai->Spell[1].Cooldown = 15000;                         ai->Spell[1].First_Cast = 20000;                     ai->Spell[1].Cast_Target_Type = CAST_SELF; //Should be CAST_FRIENDLY_RANDOM, but that's NYI        break;    }    ai->EnterEvadeMode();    return ai;}void AddSC_mob_hyjal(){    Script *newscript;    newscript = new Script;    newscript->Name="mob_hyjal";    newscript->GetAI = GetAI_mob_hyjal;    m_scripts[nrscripts++] = newscript;}