* Fix remaining errors in scripts project

* Remove now obsolete ScriptedInstance.h file

--HG--
branch : trunk
This commit is contained in:
azazel
2010-08-09 00:56:10 +06:00
parent b3b7ffdfeb
commit e5c797cef6
24 changed files with 426 additions and 323 deletions

View File

@@ -1,18 +0,0 @@
/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
* This program is free software licensed under GPL version 2
* Please see the included DOCS/LICENSE.TXT for more information */
#ifndef SC_INSTANCE_H
#define SC_INSTANCE_H
#include "InstanceScript.h"
#include "Map.h"
#define OUT_SAVE_INST_DATA sLog.outDebug("TSCR: Saving Instance Data for Instance %s (Map %d, Instance Id %d)", instance->GetMapName(), instance->GetId(), instance->GetInstanceId())
#define OUT_SAVE_INST_DATA_COMPLETE sLog.outDebug("TSCR: Saving Instance Data for Instance %s (Map %d, Instance Id %d) completed.", instance->GetMapName(), instance->GetId(), instance->GetInstanceId())
#define OUT_LOAD_INST_DATA(a) sLog.outDebug("TSCR: Loading Instance Data for Instance %s (Map %d, Instance Id %d). Input is '%s'", instance->GetMapName(), instance->GetId(), instance->GetInstanceId(), a)
#define OUT_LOAD_INST_DATA_COMPLETE sLog.outDebug("TSCR: Instance Data Load for Instance %s (Map %d, Instance Id: %d) is complete.",instance->GetMapName(), instance->GetId(), instance->GetInstanceId())
#define OUT_LOAD_INST_DATA_FAIL sLog.outError("TSCR: Unable to load Instance Data for Instance %s (Map %d, Instance Id: %d).",instance->GetMapName(), instance->GetId(), instance->GetInstanceId())
#endif

View File

@@ -58,165 +58,13 @@ EndScriptData */
#define SAY_DANCE "I always thought I was a good dancer"
#define SAY_SALUTE "Move out Soldier!"
struct TRINITY_DLL_DECL custom_exampleAI : public ScriptedAI
{
//*** HANDLED FUNCTION ***
//This is the constructor, called only once when the Creature is first created
custom_exampleAI(Creature *c) : ScriptedAI(c) {}
//*** CUSTOM VARIABLES ****
//These variables are for use only by this individual script.
//Nothing else will ever call them but us.
uint32 Say_Timer; //Timer for random chat
uint32 Rebuff_Timer; //Timer for rebuffing
uint32 Spell_1_Timer; //Timer for spell 1 when in combat
uint32 Spell_2_Timer; //Timer for spell 1 when in combat
uint32 Spell_3_Timer; //Timer for spell 1 when in combat
uint32 Beserk_Timer; //Timer until we go into Beserk (enraged) mode
uint32 Phase; //The current battle phase we are in
uint32 Phase_Timer; //Timer until phase transition
//*** HANDLED FUNCTION ***
//This is called whenever the core decides we need to evade
void Reset()
{
Phase = 1; //Start in phase 1
Phase_Timer = 60000; //60 seconds
Spell_1_Timer = 5000; //5 seconds
Spell_2_Timer = 37000; //37 seconds
Spell_3_Timer = 19000; //19 seconds
Beserk_Timer = 120000; //2 minutes
}
//*** HANDLED FUNCTION ***
//Attack Start is called whenever someone hits us.
void EnterCombat(Unit *who)
{
//Say some stuff
DoSay(SAY_AGGRO,LANG_UNIVERSAL,NULL);
DoPlaySoundToSet(me,8280);
}
//*** HANDLED FUNCTION ***
//Update AI is called Every single map update (roughly once every 100ms if a player is within the grid)
void UpdateAI(const uint32 diff)
{
//Out of combat timers
if (!me->getVictim())
{
//Random Say timer
if (Say_Timer < diff)
{
//Random switch between 5 outcomes
switch (rand()%5)
{
case 0:
DoYell(SAY_RANDOM_0,LANG_UNIVERSAL,NULL);
DoPlaySoundToSet(me,8831); //8831 is the index of the sound we are playing. You find these numbers in SoundEntries.dbc
break;
case 1:
DoYell(SAY_RANDOM_1,LANG_UNIVERSAL,NULL);
DoPlaySoundToSet(me,8818);
break;
case 2:
DoYell(SAY_RANDOM_2,LANG_UNIVERSAL,NULL);
DoPlaySoundToSet(me,8041);
break;
case 3:
DoYell(SAY_RANDOM_3,LANG_UNIVERSAL,NULL);
DoPlaySoundToSet(me,8581);
break;
case 4:
DoYell(SAY_RANDOM_4,LANG_UNIVERSAL,NULL);
DoPlaySoundToSet(me,8791);
break;
}
Say_Timer = 45000; //Say something agian in 45 seconds
}else Say_Timer -= diff;
//Rebuff timer
if (Rebuff_Timer < diff)
{
DoCast(me,SPELL_BUFF);
Rebuff_Timer = 900000; //Rebuff agian in 15 minutes
}else Rebuff_Timer -= diff;
}
//Return since we have no target
if (!UpdateVictim())
return;
//Spell 1 timer
if (Spell_1_Timer < diff)
{
//Cast spell one on our current target.
if (rand()%50 > 10)
DoCast(me->getVictim(),SPELL_ONE_ALT);
else if (me->IsWithinDist(me->getVictim(), 25))
DoCast(me->getVictim(),SPELL_ONE);
Spell_1_Timer = 5000;
}else Spell_1_Timer -= diff;
//Spell 2 timer
if (Spell_2_Timer < diff)
{
//Cast spell one on our current target.
DoCast(me->getVictim(),SPELL_TWO);
Spell_2_Timer = 37000;
}else Spell_2_Timer -= diff;
//Spell 3 timer
if (Phase > 1)
if (Spell_3_Timer < diff)
{
//Cast spell one on our current target.
DoCast(me->getVictim(),SPELL_THREE);
Spell_3_Timer = 19000;
}else Spell_3_Timer -= diff;
//Beserk timer
if (Phase > 1)
if (Beserk_Timer < diff)
{
//Say our line then cast uber death spell
DoPlaySoundToSet(me,8588);
DoYell(SAY_BESERK,LANG_UNIVERSAL,me->getVictim());
DoCast(me->getVictim(),SPELL_BESERK);
//Cast our beserk spell agian in 12 seconds if we didn't kill everyone
Beserk_Timer = 12000;
}else Beserk_Timer -= diff;
//Phase timer
if (Phase == 1)
if (Phase_Timer < diff)
{
//Go to next phase
Phase++;
DoYell(SAY_PHASE,LANG_UNIVERSAL,NULL);
DoCast(me,SPELL_ENRAGE);
}else Phase_Timer -= diff;
DoMeleeAttackIfReady();
}
};
//This is the GetAI method used by all scripts that involve AI
//It is called every time a new Creature using this script is created
class custom_example : public CreatureScript
{
public:
custom_example() : CreatureScript("custom_example") { }
bool OnReceiveEmote(Player* pPlayer, Creature* pCreature, uint32 emote)
{
pCreature->HandleEmoteCommand(emote);
@@ -229,7 +77,7 @@ public:
return true;
}
bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 uiSender, uint32 uiAction)
{
if (uiSender == GOSSIP_SENDER_MAIN)
@@ -237,7 +85,7 @@ public:
return true;
}
bool OnGossipHello(Player* pPlayer, Creature* pCreature)
{
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
@@ -245,30 +93,176 @@ public:
return true;
}
//This function is called when the player clicks an option on the gossip menu
void SendDefaultMenu(Player* pPlayer, Creature* pCreature, uint32 uiAction)
{
if (uiAction == GOSSIP_ACTION_INFO_DEF + 1) //Fight time
{
//Set our faction to hostile twoards all
pCreature->setFaction(24);
pCreature->Attack(pPlayer, true);
pPlayer->PlayerTalkClass->CloseGossip();
}
}
CreatureAI* GetAI(Creature* pCreature)
{
return new custom_exampleAI (pCreature);
}
};
//This function is called when the player clicks an option on the gossip menu
void SendDefaultMenu_custom_example(Player* pPlayer, Creature* pCreature, uint32 uiAction)
{
struct custom_exampleAI : public ScriptedAI
{
//Set our faction to hostile twoards all
pCreature->setFaction(24);
pCreature->Attack(pPlayer, true);
pPlayer->PlayerTalkClass->CloseGossip();
}
{
//*** HANDLED FUNCTION ***
//This is the constructor, called only once when the Creature is first created
custom_exampleAI(Creature *c) : ScriptedAI(c) {}
//*** CUSTOM VARIABLES ****
//These variables are for use only by this individual script.
//Nothing else will ever call them but us.
uint32 Say_Timer; //Timer for random chat
uint32 Rebuff_Timer; //Timer for rebuffing
uint32 Spell_1_Timer; //Timer for spell 1 when in combat
uint32 Spell_2_Timer; //Timer for spell 1 when in combat
uint32 Spell_3_Timer; //Timer for spell 1 when in combat
uint32 Beserk_Timer; //Timer until we go into Beserk (enraged) mode
uint32 Phase; //The current battle phase we are in
uint32 Phase_Timer; //Timer until phase transition
//*** HANDLED FUNCTION ***
//This is called whenever the core decides we need to evade
void Reset()
{
Phase = 1; //Start in phase 1
Phase_Timer = 60000; //60 seconds
Spell_1_Timer = 5000; //5 seconds
Spell_2_Timer = 37000; //37 seconds
Spell_3_Timer = 19000; //19 seconds
Beserk_Timer = 120000; //2 minutes
}
//*** HANDLED FUNCTION ***
//Attack Start is called whenever someone hits us.
void EnterCombat(Unit *who)
{
//Say some stuff
DoSay(SAY_AGGRO,LANG_UNIVERSAL,NULL);
DoPlaySoundToSet(me,8280);
}
//*** HANDLED FUNCTION ***
//Update AI is called Every single map update (roughly once every 100ms if a player is within the grid)
void UpdateAI(const uint32 diff)
{
//Out of combat timers
if (!me->getVictim())
{
//Random Say timer
if (Say_Timer < diff)
{
//Random switch between 5 outcomes
switch (rand()%5)
{
case 0:
DoYell(SAY_RANDOM_0,LANG_UNIVERSAL,NULL);
DoPlaySoundToSet(me,8831); //8831 is the index of the sound we are playing. You find these numbers in SoundEntries.dbc
break;
case 1:
DoYell(SAY_RANDOM_1,LANG_UNIVERSAL,NULL);
DoPlaySoundToSet(me,8818);
break;
case 2:
DoYell(SAY_RANDOM_2,LANG_UNIVERSAL,NULL);
DoPlaySoundToSet(me,8041);
break;
case 3:
DoYell(SAY_RANDOM_3,LANG_UNIVERSAL,NULL);
DoPlaySoundToSet(me,8581);
break;
case 4:
DoYell(SAY_RANDOM_4,LANG_UNIVERSAL,NULL);
DoPlaySoundToSet(me,8791);
break;
}
Say_Timer = 45000; //Say something agian in 45 seconds
}else Say_Timer -= diff;
//Rebuff timer
if (Rebuff_Timer < diff)
{
DoCast(me,SPELL_BUFF);
Rebuff_Timer = 900000; //Rebuff agian in 15 minutes
}else Rebuff_Timer -= diff;
}
//Return since we have no target
if (!UpdateVictim())
return;
//Spell 1 timer
if (Spell_1_Timer < diff)
{
//Cast spell one on our current target.
if (rand()%50 > 10)
DoCast(me->getVictim(),SPELL_ONE_ALT);
else if (me->IsWithinDist(me->getVictim(), 25))
DoCast(me->getVictim(),SPELL_ONE);
Spell_1_Timer = 5000;
}else Spell_1_Timer -= diff;
//Spell 2 timer
if (Spell_2_Timer < diff)
{
//Cast spell one on our current target.
DoCast(me->getVictim(),SPELL_TWO);
Spell_2_Timer = 37000;
}else Spell_2_Timer -= diff;
//Spell 3 timer
if (Phase > 1)
if (Spell_3_Timer < diff)
{
//Cast spell one on our current target.
DoCast(me->getVictim(),SPELL_THREE);
Spell_3_Timer = 19000;
}else Spell_3_Timer -= diff;
//Beserk timer
if (Phase > 1)
if (Beserk_Timer < diff)
{
//Say our line then cast uber death spell
DoPlaySoundToSet(me,8588);
DoYell(SAY_BESERK,LANG_UNIVERSAL,me->getVictim());
DoCast(me->getVictim(),SPELL_BESERK);
//Cast our beserk spell agian in 12 seconds if we didn't kill everyone
Beserk_Timer = 12000;
}else Beserk_Timer -= diff;
//Phase timer
if (Phase == 1)
if (Phase_Timer < diff)
{
//Go to next phase
Phase++;
DoYell(SAY_PHASE,LANG_UNIVERSAL,NULL);
DoCast(me,SPELL_ENRAGE);
}else Phase_Timer -= diff;
DoMeleeAttackIfReady();
}
};
};
//This is the actual function called only once durring InitScripts()

View File

@@ -43,7 +43,8 @@ EndContentData */
/*######
+## go_shadowforge_brazier
+######*/
class go_shadowforge_brazier : public GameObjectScript
{
public:
go_shadowforge_brazier() : GameObjectScript("go_shadowforge_brazier") { }
@@ -99,7 +100,8 @@ uint32 RingBoss[]=
9031, // Anub'shiah
9032, // Hedrum
};
};
class at_ring_of_law : public AreaTriggerScript
{
public:
at_ring_of_law() : AreaTriggerScript("at_ring_of_law") { }
@@ -135,7 +137,8 @@ enum GrimstoneTexts
SCRIPT_TEXT6 = -1000005
};
};
//TODO: implement quest part of event (different end boss)
class npc_grimstone : public CreatureScript
{
public:
npc_grimstone() : CreatureScript("npc_grimstone") { }
@@ -375,7 +378,8 @@ enum PhalanxSpells
SPELL_FIREBALLVOLLEY = 22425,
SPELL_MIGHTYBLOW = 14099
};
SPELL_FIREBALLVOLLEY = 22425,
class mob_phalanx : public CreatureScript
{
public:
mob_phalanx() : CreatureScript("mob_phalanx") { }
@@ -457,7 +461,8 @@ enum KharamQuests
#define GOSSIP_ITEM_KHARAN_8 "Continue with your story please."
#define GOSSIP_ITEM_KHARAN_9 "Indeed."
#define GOSSIP_ITEM_KHARAN_10 "The door is open, Kharan. You are a free man."
#define GOSSIP_ITEM_KHARAN_7 "So you suspect that someone on the inside was involved? That they were tipped off?"
class npc_kharan_mighthammer : public CreatureScript
{
public:
npc_kharan_mighthammer() : CreatureScript("npc_kharan_mighthammer") { }
@@ -554,7 +559,8 @@ enum LokhtosSpells
#define GOSSIP_ITEM_SHOW_ACCESS "Show me what I have access to, Lothos."
#define GOSSIP_ITEM_GET_CONTRACT "Get Thorium Brotherhood Contract"
SPELL_CREATE_THORIUM_BROTHERHOOD_CONTRACT_DND = 23059
class npc_lokhtos_darkbargainer : public CreatureScript
{
public:
npc_lokhtos_darkbargainer() : CreatureScript("npc_lokhtos_darkbargainer") { }
@@ -610,7 +616,8 @@ enum DughalQuests
#define SAY_DUGHAL_FREE "Thank you, $N! I'm free!!!"
#define GOSSIP_DUGHAL "You're free, Dughal! Get out of here!"
QUEST_JAIL_BREAK = 4322
/*
class npc_dughal_stormwing : public CreatureScript
{
public:
npc_dughal_stormwing() : CreatureScript("npc_dughal_stormwing") { }
@@ -719,7 +726,8 @@ public:
#define MOB_ENTRY_REGINALD_WINDSOR 9682
Player* pPlayerStart;
#define SAY_WINDSOR_4_2 "Get him out of there!"
/*
class npc_marshal_windsor : public CreatureScript
{
public:
npc_marshal_windsor() : CreatureScript("npc_marshal_windsor") { }
@@ -892,7 +900,8 @@ public:
#define MOB_ENTRY_CREST_KILLER 9680
int wp = 0;
#define SAY_REGINALD_WINDSOR_14_1 "Get him out of there!"
/*
class npc_marshal_reginald_windsor : public CreatureScript
{
public:
npc_marshal_reginald_windsor() : CreatureScript("npc_marshal_reginald_windsor") { }
@@ -1094,7 +1103,8 @@ public:
######*/
#define SAY_TOBIAS_FREE "Thank you! I will run for safety immediately!"
};
/*
class npc_tobias_seecher : public CreatureScript
{
public:
npc_tobias_seecher() : CreatureScript("npc_tobias_seecher") { }
@@ -1211,7 +1221,8 @@ enum RocknotQuests
{
QUEST_ALE = 4295
};
class npc_rocknot : public CreatureScript
{
public:
npc_rocknot() : CreatureScript("npc_rocknot") { }

View File

@@ -95,7 +95,8 @@ static InfernalPoint InfernalPoints[] =
#define EQUIP_ID_AXE 33542 //Axes info
//---------Infernal code first
//---------Infernal code first
class netherspite_infernal : public CreatureScript
{
public:
netherspite_infernal() : CreatureScript("netherspite_infernal") { }
@@ -161,17 +162,12 @@ public:
damage = 0;
}
void Cleanup()
{
Unit *pMalchezaar = Unit::GetUnit(*me, malchezaar);
if (pMalchezaar && pMalchezaar->isAlive())
CAST_AI(boss_malchezaar::boss_malchezaarAI, CAST_CRE(pMalchezaar)->AI())->Cleanup(me, point);
void Cleanup();
};
};
class boss_malchezaar : public CreatureScript
{
public:
boss_malchezaar() : CreatureScript("boss_malchezaar") { }
@@ -600,6 +596,14 @@ public:
};
void netherspite_infernal::netherspite_infernalAI::Cleanup()
{
Unit *pMalchezaar = Unit::GetUnit(*me, malchezaar);
if (pMalchezaar && pMalchezaar->isAlive())
CAST_AI(boss_malchezaar::boss_malchezaarAI, CAST_CRE(pMalchezaar)->AI())->Cleanup(me, point);
}
void AddSC_boss_malchezaar()
{
new boss_malchezaar();

View File

@@ -80,7 +80,8 @@ enum SuperSpell
SUPER_BLIZZARD,
SUPER_AE,
};
class boss_shade_of_aran : public CreatureScript
{
public:
boss_shade_of_aran() : CreatureScript("boss_shade_of_aran") { }
@@ -507,7 +508,8 @@ public:
};
};
};
class mob_aran_elemental : public CreatureScript
{
public:
mob_aran_elemental() : CreatureScript("mob_aran_elemental") { }
@@ -545,7 +547,8 @@ public:
};
};
// CONVERT TO ACID
class mob_shadow_of_aran : public CreatureScript
{
public:
mob_shadow_of_aran() : CreatureScript("mob_shadow_of_aran") { }

View File

@@ -50,7 +50,8 @@ const float afKaelLandPoint[] = {225.045, -276.236, -5.434};
#define GOSSIP_ITEM_KAEL_5 "What would Kil'jaeden want with a mortal woman?"
// This is friendly keal that appear after used Orb.
// If we assume DB handle summon, summon appear somewhere outside the platform where Orb is
// If we assume DB handle summon, summon appear somewhere outside the platform where Orb is
class npc_kalecgos : public CreatureScript
{
public:
npc_kalecgos() : CreatureScript("npc_kalecgos") { }

View File

@@ -238,7 +238,8 @@ static Speech Speeches[]=
{SAY_KALECGOS_GOODBYE, DATA_KALECGOS_KJ, 12000},
};
//AI for Kalecgos
//AI for Kalecgos
class boss_kalecgos_kj : public CreatureScript
{
public:
boss_kalecgos_kj() : CreatureScript("boss_kalecgos_kj") { }
@@ -367,7 +368,8 @@ public:
};
};
};
class go_orb_of_the_blue_flight : public GameObjectScript
{
public:
go_orb_of_the_blue_flight() : GameObjectScript("go_orb_of_the_blue_flight") { }
@@ -391,7 +393,8 @@ public:
};
};
//AI for Kil'jaeden Event Controller
class mob_kiljaeden_controller : public CreatureScript
{
public:
mob_kiljaeden_controller() : CreatureScript("mob_kiljaeden_controller") { }
@@ -491,7 +494,8 @@ public:
};
};
//AI for Kil'jaeden
class boss_kiljaeden : public CreatureScript
{
public:
boss_kiljaeden() : CreatureScript("boss_kiljaeden") { }
@@ -904,7 +908,8 @@ public:
};
//AI for Hand of the Deceiver
class mob_hand_of_the_deceiver : public CreatureScript
{
public:
mob_hand_of_the_deceiver() : CreatureScript("mob_hand_of_the_deceiver") { }
@@ -1005,7 +1010,8 @@ public:
};
};
//AI for Felfire Portal
class mob_felfire_portal : public CreatureScript
{
public:
mob_felfire_portal() : CreatureScript("mob_felfire_portal") { }
@@ -1050,7 +1056,8 @@ public:
};
}
//AI for Felfire Fiend
class mob_volatile_felfire_fiend : public CreatureScript
{
public:
mob_volatile_felfire_fiend() : CreatureScript("mob_volatile_felfire_fiend") { }
@@ -1108,7 +1115,8 @@ public:
};
}
//AI for Armageddon target
class mob_armageddon : public CreatureScript
{
public:
mob_armageddon() : CreatureScript("mob_armageddon") { }
@@ -1163,7 +1171,8 @@ public:
};
}
//AI for Shield Orbs
class mob_shield_orb : public CreatureScript
{
public:
mob_shield_orb() : CreatureScript("mob_shield_orb") { }
@@ -1251,7 +1260,8 @@ public:
};
return;
//AI for Sinister Reflection
class mob_sinster_reflection : public CreatureScript
{
public:
mob_sinster_reflection() : CreatureScript("mob_sinster_reflection") { }

View File

@@ -300,6 +300,7 @@ static float m_fVorshaCoord[]={3633.056885, 1172.924072, -5.388};
class npc_muglash : public CreatureScript
{
public:
npc_muglash() : CreatureScript("npc_muglash") { }
struct npc_muglashAI : public npc_escortAI
{
@@ -425,7 +426,7 @@ class npc_muglash : public CreatureScript
}
};
CreatureAI* GetAI(Creature* creature) const
CreatureAI* GetAI(Creature* pCreature) const
{
return new npc_muglashAI(pCreature);
}
@@ -455,11 +456,11 @@ class go_naga_brazier : public GameObjectScript
{
}
bool GOHello_go_naga_brazier(Player* player, GameObject* go)
bool OnGossipHello(Player* player, GameObject* go)
{
if (Creature* creature = GetClosestCreatureWithEntry(go, NPC_MUGLASH, INTERACTION_DISTANCE*2))
{
if (npc_muglash::npc_muglashAI* pEscortAI = CAST_AI(npc_muglashAI, creature->AI()))
if (npc_muglash::npc_muglashAI* pEscortAI = CAST_AI(npc_muglash::npc_muglashAI, creature->AI()))
{
DoScriptText(SAY_MUG_BRAZIER_WAIT, creature);

View File

@@ -64,7 +64,8 @@ enum eKerlonian
FACTION_KER_ESCORTEE = 113
};
//TODO: make concept similar as "ringo" -escort. Find a way to run the scripted attacks, _if_ player are choosing road.
//TODO: make concept similar as "ringo" -escort. Find a way to run the scripted attacks, _if_ player are choosing road.
class npc_kerlonian : public CreatureScript
{
public:
npc_kerlonian() : CreatureScript("npc_kerlonian") { }
@@ -204,7 +205,8 @@ enum eRemtravel
NPC_GRAVEL_BONE = 2159,
NPC_GRAVEL_GEO = 2160
};
};
class npc_prospector_remtravel : public CreatureScript
{
public:
npc_prospector_remtravel() : CreatureScript("npc_prospector_remtravel") { }
@@ -327,7 +329,8 @@ enum eThreshwackonator
};
#define GOSSIP_ITEM_INSERT_KEY "[PH] Insert key"
class npc_threshwackonator : public CreatureScript
{
public:
npc_threshwackonator() : CreatureScript("npc_threshwackonator") { }

View File

@@ -51,7 +51,8 @@ enum eHuskSpirit
NPC_RISEN_SPIRIT = 23554,
NPC_RESTLESS_APPARITION = 23861
};
class mobs_risen_husk_spirit : public CreatureScript
{
public:
mobs_risen_husk_spirit() : CreatureScript("mobs_risen_husk_spirit") { }
@@ -126,7 +127,8 @@ enum eRestlessApparition
SAY_RESTLESS_2 = -1000470,
SAY_RESTLESS_3 = -1000471
};
};
class npc_restless_apparition : public CreatureScript
{
public:
npc_restless_apparition() : CreatureScript("npc_restless_apparition") { }
@@ -158,7 +160,8 @@ enum eAgitator
QUEST_TRAITORS_AMONG_US = 11126,
FACTION_THER_DESERTER = 1883
};
FACTION_THER_DESERTER = 1883
class npc_deserter_agitator : public CreatureScript
{
public:
npc_deserter_agitator() : CreatureScript("npc_deserter_agitator") { }
@@ -206,7 +209,8 @@ enum eLadyJaina
};
#define GOSSIP_ITEM_JAINA "I know this is rather silly but i have a young ward who is a bit shy and would like your autograph."
};
class npc_lady_jaina_proudmoore : public CreatureScript
{
public:
npc_lady_jaina_proudmoore() : CreatureScript("npc_lady_jaina_proudmoore") { }
@@ -245,7 +249,8 @@ enum eNatPagle
{
QUEST_NATS_MEASURING_TAPE = 8227
};
enum eNatPagle
class npc_nat_pagle : public CreatureScript
{
public:
npc_nat_pagle() : CreatureScript("npc_nat_pagle") { }
@@ -298,7 +303,8 @@ enum eHendel
NPC_TERVOSH = 4967
};
NPC_SENTRY = 5184, //helps hendel
//TODO: develop this further, end event not created
class npc_private_hendel : public CreatureScript
{
public:
npc_private_hendel() : CreatureScript("npc_private_hendel") { }
@@ -366,7 +372,8 @@ enum eZelfrax
SAY_ZELFRAX = -1000472,
SAY_ZELFRAX_2 = -1000473
};
class npc_zelfrax : public CreatureScript
{
public:
npc_zelfrax() : CreatureScript("npc_zelfrax") { }

View File

@@ -38,7 +38,8 @@ EndContentData */
#define QUEST_5727 5727
#define GOSSIP_HNF "You may speak frankly, Neeru..."
#define GOSSIP_SNF "[PH] ..."
#define GOSSIP_SNF "[PH] ..."
class npc_neeru_fireblade : public CreatureScript
{
public:
npc_neeru_fireblade() : CreatureScript("npc_neeru_fireblade") { }
@@ -82,7 +83,8 @@ enum eShenthul
{
QUEST_SHATTERED_SALUTE = 2460
};
};
class npc_shenthul : public CreatureScript
{
public:
npc_shenthul() : CreatureScript("npc_shenthul") { }
@@ -188,7 +190,8 @@ public:
#define GOSSIP_STW5 "I live only to serve, Warchief! My life is empty and meaningless without your guidance."
#define GOSSIP_STW6 "Of course, Warchief!"
#define GOSSIP_STW6 "Of course, Warchief!"
//TODO: verify abilities/timers
class npc_thrall_warchief : public CreatureScript
{
public:
npc_thrall_warchief() : CreatureScript("npc_thrall_warchief") { }

View File

@@ -36,7 +36,8 @@ EndScriptData */
#define SPELL_UPPERCUT 22916
#define GOSSIP_HCB "I know this is rather silly but a young ward who is a bit shy would like your hoofprint."
//TODO: verify abilities/timers
//TODO: verify abilities/timers
class npc_cairne_bloodhoof : public CreatureScript
{
public:
npc_cairne_bloodhoof() : CreatureScript("npc_cairne_bloodhoof") { }

View File

@@ -217,7 +217,8 @@ Locations TwilightEggsSarth[] =
/*######
## Boss Sartharion
######*/
class boss_sartharion : public CreatureScript
{
public:
boss_sartharion() : CreatureScript("boss_sartharion") { }
@@ -1001,7 +1002,8 @@ struct dummy_dragonAI : public ScriptedAI
/*######
## Mob Tenebron
######*/
######*/
class mob_tenebron : public CreatureScript
{
public:
mob_tenebron() : CreatureScript("mob_tenebron") { }
@@ -1095,7 +1097,8 @@ public:
/*######
## Mob Shadron
######*/
## Mob Shadron
class mob_shadron : public CreatureScript
{
public:
mob_shadron() : CreatureScript("mob_shadron") { }
@@ -1204,7 +1207,8 @@ public:
/*######
## Mob Vesperon
######*/
/*######
class mob_vesperon : public CreatureScript
{
public:
mob_vesperon() : CreatureScript("mob_vesperon") { }
@@ -1304,7 +1308,8 @@ public:
/*######
## Mob Acolyte of Shadron
######*/
class mob_acolyte_of_shadron : public CreatureScript
{
public:
mob_acolyte_of_shadron() : CreatureScript("mob_acolyte_of_shadron") { }
@@ -1412,7 +1417,8 @@ public:
/*######
## Mob Acolyte of Vesperon
######*/
class mob_acolyte_of_vesperon : public CreatureScript
{
public:
mob_acolyte_of_vesperon() : CreatureScript("mob_acolyte_of_vesperon") { }
@@ -1507,7 +1513,8 @@ public:
/*######
## Mob Twilight Eggs
######*/
};
class mob_twilight_eggs : public CreatureScript
{
public:
mob_twilight_eggs() : CreatureScript("mob_twilight_eggs") { }
@@ -1578,7 +1585,8 @@ public:
/*######
## Mob Flame Tsunami
};
######*/
class npc_flame_tsunami : public CreatureScript
{
public:
npc_flame_tsunami() : CreatureScript("npc_flame_tsunami") { }
@@ -1628,7 +1636,8 @@ public:
};
LavaBlaze->CastSpell(LavaBlaze, SPELL_FLAME_TSUNAMI_BUFF, true);
// Twilight Fissure
class npc_twilight_fissure : public CreatureScript
{
public:
npc_twilight_fissure() : CreatureScript("npc_twilight_fissure") { }
@@ -1679,7 +1688,8 @@ public:
/*######
## Mob Twilight Whelps
######*/
class mob_twilight_whelp : public CreatureScript
{
public:
mob_twilight_whelp() : CreatureScript("mob_twilight_whelp") { }

View File

@@ -80,7 +80,8 @@ enum Yells
SAY_SUMMON_2 = -1603018,
SAY_SUMMON_3 = -1603019,
};
class boss_algalon : public CreatureScript
{
public:
boss_algalon() : CreatureScript("boss_algalon") { }
@@ -338,7 +339,8 @@ public:
};
//Collapsing Star
class mob_collapsing_star : public CreatureScript
{
public:
mob_collapsing_star() : CreatureScript("mob_collapsing_star") { }
@@ -379,8 +381,6 @@ public:
};
};
void AddSC_boss_Algalon()
{
new boss_algalon();

View File

@@ -196,7 +196,8 @@ const Position PosDemolisher[5] =
{-756.01,-219.23,430.50,2.369},
{-798.01,-227.24,429.84,1.446},
};
class boss_flame_leviathan : public CreatureScript
{
public:
boss_flame_leviathan() : CreatureScript("boss_flame_leviathan") { }
@@ -525,7 +526,8 @@ public:
};
//#define BOSS_DEBUG
//#define BOSS_DEBUG
class boss_flame_leviathan_seat : public CreatureScript
{
public:
boss_flame_leviathan_seat() : CreatureScript("boss_flame_leviathan_seat") { }
@@ -593,7 +595,8 @@ public:
};
};
class boss_flame_leviathan_defense_turret : public CreatureScript
{
public:
boss_flame_leviathan_defense_turret() : CreatureScript("boss_flame_leviathan_defense_turret") { }
@@ -622,7 +625,8 @@ public:
};
};
};
class boss_flame_leviathan_overload_device : public CreatureScript
{
public:
boss_flame_leviathan_overload_device() : CreatureScript("boss_flame_leviathan_overload_device") { }
@@ -663,7 +667,8 @@ public:
};
};
}
class boss_flame_leviathan_safety_container : public CreatureScript
{
public:
boss_flame_leviathan_safety_container() : CreatureScript("boss_flame_leviathan_safety_container") { }
@@ -691,7 +696,8 @@ public:
void UpdateAI(const uint32 diff)
{
}
}
};
};
class npc_mechanolift : public CreatureScript
{
@@ -761,7 +767,8 @@ public:
};
MoveTimer-=diff;
class spell_pool_of_tar : public CreatureScript
{
public:
spell_pool_of_tar() : CreatureScript("spell_pool_of_tar") { }
@@ -791,7 +798,8 @@ public:
};
};
{
class npc_colossus : public CreatureScript
{
public:
npc_colossus() : CreatureScript("npc_colossus") { }
@@ -828,7 +836,8 @@ public:
};
};
{
class npc_thorims_hammer : public CreatureScript
{
public:
npc_thorims_hammer() : CreatureScript("npc_thorims_hammer") { }
@@ -870,7 +879,8 @@ public:
};
};
if (!me->HasAura(AURA_DUMMY_BLUE))
class npc_mimirons_inferno : public CreatureScript
{
public:
npc_mimirons_inferno() : CreatureScript("npc_mimirons_inferno") { }
@@ -929,7 +939,8 @@ public:
};
infernoTimer -= diff;
class npc_hodirs_fury : public CreatureScript
{
public:
npc_hodirs_fury() : CreatureScript("npc_hodirs_fury") { }
@@ -971,7 +982,8 @@ public:
};
};
void UpdateAI(const uint32 diff)
class npc_freyas_ward : public CreatureScript
{
public:
npc_freyas_ward() : CreatureScript("npc_freyas_ward") { }
@@ -1015,7 +1027,8 @@ public:
};
};
else
class npc_freya_ward_summon : public CreatureScript
{
public:
npc_freya_ward_summon() : CreatureScript("npc_freya_ward_summon") { }
@@ -1060,7 +1073,8 @@ public:
//npc lore keeper
#define GOSSIP_ITEM_1 "Activate secondary defensive systems"
lashTimer = 20000;
#define GOSSIP_ITEM_2 "Confirmed"
class npc_lorekeeper : public CreatureScript
{
public:
npc_lorekeeper() : CreatureScript("npc_lorekeeper") { }
@@ -1154,7 +1168,9 @@ public:
////npc_brann_bronzebeard this requires more work involving area triggers. if reached this guy speaks through his radio..
//#define GOSSIP_ITEM_1 "xxxxx"
//#define GOSSIP_ITEM_2 "xxxxx"
DoSummon(VEHICLE_CHOPPER, PosChopper[i],3000,TEMPSUMMON_CORPSE_TIMED_DESPAWN);
//
/*
class npc_brann_bronzebeard : public CreatureScript
{
public:
npc_brann_bronzebeard() : CreatureScript("npc_brann_bronzebeard") { }
@@ -1193,7 +1209,11 @@ public:
// }
// return true;
//}
// break;
//
}
*/
class go_ulduar_tower : public GameObjectScript
{
public:
go_ulduar_tower() : GameObjectScript("go_ulduar_tower") { }
@@ -1222,7 +1242,8 @@ public:
}
};
{
class at_RX_214_repair_o_matic_station : public AreaTriggerScript
{
public:
at_RX_214_repair_o_matic_station() : AreaTriggerScript("at_RX_214_repair_o_matic_station") { }

View File

@@ -574,7 +574,8 @@ public:
*
* XS-013 SCRAPBOT
*
*///----------------------------------------------------
*///----------------------------------------------------
class mob_scrapbot : public CreatureScript
{
public:
mob_scrapbot() : CreatureScript("mob_scrapbot") { }
@@ -626,7 +627,8 @@ public:
*
* XM-024 PUMMELLER
*
*
*///----------------------------------------------------
class mob_pummeller : public CreatureScript
{
public:
mob_pummeller() : CreatureScript("mob_pummeller") { }
@@ -692,7 +694,8 @@ public:
*
* XE-321 BOOMBOT
*
* XE-321 BOOMBOT
*///----------------------------------------------------
class mob_boombot : public CreatureScript
{
public:
mob_boombot() : CreatureScript("mob_boombot") { }
@@ -747,7 +750,8 @@ public:
*
* VOID ZONE
*
*
*///----------------------------------------------------
class mob_void_zone : public CreatureScript
{
public:
mob_void_zone() : CreatureScript("mob_void_zone") { }
@@ -810,7 +814,8 @@ public:
*
* LIFE SPARK
*
/*-------------------------------------------------------
*///----------------------------------------------------
class mob_life_spark : public CreatureScript
{
public:
mob_life_spark() : CreatureScript("mob_life_spark") { }

View File

@@ -93,7 +93,8 @@ EndScriptData */
#define OLUM_Z -7.54773f
#define OLUM_O 0.401581f
//Fathom-Lord Karathress AI
//Fathom-Lord Karathress AI
class boss_fathomlord_karathress : public CreatureScript
{
public:
boss_fathomlord_karathress() : CreatureScript("boss_fathomlord_karathress") { }
@@ -303,7 +304,8 @@ public:
};
//Fathom-Guard Sharkkis AI
class boss_fathomguard_sharkkis : public CreatureScript
{
public:
boss_fathomguard_sharkkis() : CreatureScript("boss_fathomguard_sharkkis") { }
@@ -456,7 +458,8 @@ public:
};
};
//Fathom-Guard Tidalvess AI
class boss_fathomguard_tidalvess : public CreatureScript
{
public:
boss_fathomguard_tidalvess() : CreatureScript("boss_fathomguard_tidalvess") { }
@@ -582,7 +585,8 @@ public:
};
//Fathom-Guard Caribdis AI
class boss_fathomguard_caribdis : public CreatureScript
{
public:
boss_fathomguard_caribdis() : CreatureScript("boss_fathomguard_caribdis") { }

View File

@@ -132,7 +132,8 @@ float ShieldGeneratorChannelPos[4][4] =
{49.3126, -943.398, 42.5501, 2.40174}
};
//Lady Vashj AI
//Lady Vashj AI
class boss_lady_vashj : public CreatureScript
{
public:
boss_lady_vashj() : CreatureScript("boss_lady_vashj") { }
@@ -575,7 +576,8 @@ public:
};
//Enchanted Elemental
//Enchanted Elemental
//If one of them reaches Vashj he will increase her damage done by 5%.
class mob_enchanted_elemental : public CreatureScript
{
public:
mob_enchanted_elemental() : CreatureScript("mob_enchanted_elemental") { }
@@ -676,7 +678,8 @@ public:
};
//Tainted Elemental
//This mob has 7,900 life, doesn't move, and shoots Poison Bolts at one person anywhere in the area, doing 3,000 nature damage and placing a posion doing 2,000 damage every 2 seconds. He will switch targets often, or sometimes just hang on a single player, but there is nothing you can do about it except heal the damage and kill the Tainted Elemental
class mob_tainted_elemental : public CreatureScript
{
public:
mob_tainted_elemental() : CreatureScript("mob_tainted_elemental") { }
@@ -750,7 +753,8 @@ public:
};
//Toxic Sporebat
};
//Toxic Spores: Used in Phase 3 by the Spore Bats, it creates a contaminated green patch of ground, dealing about 2775-3225 nature damage every second to anyone who stands in it.
class mob_toxic_sporebat : public CreatureScript
{
public:
mob_toxic_sporebat() : CreatureScript("mob_toxic_sporebat") { }
@@ -857,7 +861,8 @@ public:
};
//Coilfang Elite
//It's an elite Naga mob with 170,000 HP. It does about 5000 damage on plate, and has a nasty cleave hitting for about 7500 damage
class mob_coilfang_elite : public CreatureScript
{
public:
mob_coilfang_elite() : CreatureScript("mob_coilfang_elite") { }
@@ -881,7 +886,8 @@ public:
};
//Coilfang Strider
}
//It hits plate for about 8000 damage, has a Mind Blast spell doing about 3000 shadow damage, and a Psychic Scream Aura, which fears everybody in a 8 yard range of it every 2-3 seconds , for 5 seconds and increasing their movement speed by 150% during the fear.
class mob_coilfang_strider : public CreatureScript
{
public:
mob_coilfang_strider() : CreatureScript("mob_coilfang_strider") { }
@@ -905,7 +911,8 @@ public:
}
};
ai->EnterEvadeMode();
class mob_shield_generator_channel : public CreatureScript
{
public:
mob_shield_generator_channel() : CreatureScript("mob_shield_generator_channel") { }
@@ -963,7 +970,8 @@ public:
};
};
}
class item_tainted_core : public ItemScript
{
public:
item_tainted_core() : ItemScript("item_tainted_core") { }

View File

@@ -66,7 +66,8 @@ EndScriptData */
#define SAY_FINAL_FORM -1548018
#define SAY_FREE -1548019
#define SAY_DEATH -1548020
class mob_inner_demon : public CreatureScript
{
public:
mob_inner_demon() : CreatureScript("mob_inner_demon") { }
@@ -156,7 +157,8 @@ public:
};
//Original Leotheras the Blind AI
class boss_leotheras_the_blind : public CreatureScript
{
public:
boss_leotheras_the_blind() : CreatureScript("boss_leotheras_the_blind") { }
@@ -581,7 +583,8 @@ public:
};
};
//Leotheras the Blind Demon Form AI
class boss_leotheras_the_blind_demonform : public CreatureScript
{
public:
boss_leotheras_the_blind_demonform() : CreatureScript("boss_leotheras_the_blind_demonform") { }
@@ -651,9 +654,10 @@ public:
//Do NOT deal any melee damage to the target.
}
//Do NOT deal any melee damage to the target.
};
};
class mob_greyheart_spellbinder : public CreatureScript
{
public:
mob_greyheart_spellbinder() : CreatureScript("mob_greyheart_spellbinder") { }

View File

@@ -97,7 +97,8 @@ float MurlocCords[10][5] =
#define WATER_GLOBULE 21913
#define TIDEWALKER_LURKER 21920
//Morogrim Tidewalker AI
//Morogrim Tidewalker AI
class boss_morogrim_tidewalker : public CreatureScript
{
public:
boss_morogrim_tidewalker() : CreatureScript("boss_morogrim_tidewalker") { }
@@ -301,7 +302,8 @@ public:
//Water Globule AI
#define SPELL_GLOBULE_EXPLOSION 37871
#define SPELL_GLOBULE_EXPLOSION 37871
class mob_water_globule : public CreatureScript
{
public:
mob_water_globule() : CreatureScript("mob_water_globule") { }

View File

@@ -105,7 +105,8 @@ bool CheckAllBossDied(InstanceScript* pInstance, Creature* me)
return false;
}
//High King Maulgar AI
//High King Maulgar AI
class boss_high_king_maulgar : public CreatureScript
{
public:
boss_high_king_maulgar() : CreatureScript("boss_high_king_maulgar") { }
@@ -303,7 +304,8 @@ public:
};
//Olm The Summoner AI
class boss_olm_the_summoner : public CreatureScript
{
public:
boss_olm_the_summoner() : CreatureScript("boss_olm_the_summoner") { }
@@ -430,7 +432,8 @@ public:
};
};
//Kiggler The Crazed AI
class boss_kiggler_the_crazed : public CreatureScript
{
public:
boss_kiggler_the_crazed() : CreatureScript("boss_kiggler_the_crazed") { }
@@ -551,7 +554,8 @@ public:
};
//Blindeye The Seer AI
class boss_blindeye_the_seer : public CreatureScript
{
public:
boss_blindeye_the_seer() : CreatureScript("boss_blindeye_the_seer") { }
@@ -660,7 +664,8 @@ public:
};
};
//Krosh Firehand AI
class boss_krosh_firehand : public CreatureScript
{
public:
boss_krosh_firehand() : CreatureScript("boss_krosh_firehand") { }

View File

@@ -47,7 +47,8 @@ bool obelisk_one, obelisk_two, obelisk_three, obelisk_four, obelisk_five;
## mobs_bladespire_ogre
######*/
//TODO: add support for quest 10512 + Creature abilities
//TODO: add support for quest 10512 + Creature abilities
class mobs_bladespire_ogre : public CreatureScript
{
public:
mobs_bladespire_ogre() : CreatureScript("mobs_bladespire_ogre") { }
@@ -98,7 +99,8 @@ enum eNetherdrake
SPELL_MANA_BURN = 38884,
SPELL_INTANGIBLE_PRESENCE = 36513
};
};
class mobs_nether_drake : public CreatureScript
{
public:
mobs_nether_drake() : CreatureScript("mobs_nether_drake") { }
@@ -263,7 +265,8 @@ enum eDaranelle
SAY_SPELL_INFLUENCE = -1000174,
SPELL_LASHHAN_CHANNEL = 36904
};
SPELL_LASHHAN_CHANNEL = 36904
class npc_daranelle : public CreatureScript
{
public:
npc_daranelle() : CreatureScript("npc_daranelle") { }
@@ -305,7 +308,8 @@ public:
######*/
#define GOSSIP_HELLO_ON "Overseer, I am here to negotiate on behalf of the Cenarion Expedition."
######*/
class npc_overseer_nuaar : public CreatureScript
{
public:
npc_overseer_nuaar() : CreatureScript("npc_overseer_nuaar") { }
@@ -339,7 +343,8 @@ public:
#define GOSSIP_HELLO_STE "Yes... yes, it's me."
#define GOSSIP_SELECT_STE "Yes elder. Tell me more of the book."
######*/
class npc_saikkal_the_elder : public CreatureScript
{
public:
npc_saikkal_the_elder() : CreatureScript("npc_saikkal_the_elder") { }
@@ -376,7 +381,8 @@ public:
/*######
## go_legion_obelisk
######*/
class go_legion_obelisk : public GameObjectScript
{
public:
go_legion_obelisk() : GameObjectScript("go_legion_obelisk") { }
@@ -433,7 +439,8 @@ enum eBloodmaul
NPC_QUEST_CREDIT = 21241,
GO_KEG = 184315
};
enum eBloodmaul
class npc_bloodmaul_brutebane : public CreatureScript
{
public:
npc_bloodmaul_brutebane() : CreatureScript("npc_bloodmaul_brutebane") { }
@@ -470,7 +477,8 @@ public:
/*######
## npc_ogre_brute
######*/
class npc_ogre_brute : public CreatureScript
{
public:
npc_ogre_brute() : CreatureScript("npc_ogre_brute") { }

View File

@@ -41,7 +41,8 @@ EndContentData */
/*######
## mob_shattered_rumbler - this should be done with ACID
######*/
class mob_shattered_rumbler : public CreatureScript
{
public:
mob_shattered_rumbler() : CreatureScript("mob_shattered_rumbler") { }
@@ -100,7 +101,8 @@ public:
#define GOSSIP_SL1 "Why are Boulderfist out this far? You know that this is Kurenai territory."
#define GOSSIP_SL2 "And you think you can just eat anything you want? You're obviously trying to eat the Broken of Telaar."
#define GOSSIP_SL3 "This means war, Lump! War I say!"
#define GOSSIP_SL3 "This means war, Lump! War I say!"
class mob_lump : public CreatureScript
{
public:
mob_lump() : CreatureScript("mob_lump") { }
@@ -246,7 +248,8 @@ public:
/*####
# mob_sunspring_villager - should be done with ACID
####*/
# mob_sunspring_villager - should be done with ACID
class mob_sunspring_villager : public CreatureScript
{
public:
mob_sunspring_villager() : CreatureScript("mob_sunspring_villager") { }
@@ -294,7 +297,8 @@ public:
#define GOSSIP_SATS4 "Forge camps?"
#define GOSSIP_SATS5 "Ok."
#define GOSSIP_SATS6 "[PH] Story done"
#define GOSSIP_SATS4 "Forge camps?"
class npc_altruis_the_sufferer : public CreatureScript
{
public:
npc_altruis_the_sufferer() : CreatureScript("npc_altruis_the_sufferer") { }
@@ -399,7 +403,8 @@ public:
#define GOSSIP_SGG10 "It is my Warchief, Greatmother. The leader of my people. From my world. He ... He is the son of Durotan. He is your grandchild."
#define GOSSIP_SGG11 "I will return to Azeroth at once, Greatmother."
#define GOSSIP_SGG9 "Greatmother, I never had the honor. Durotan died long before my time, but his heroics are known to all on my world. The orcs of Azeroth reside in a place known as Durotar, named after your son. And ... (You take a moment to breathe and think through what you are about to tell the Greatmother.)"
//all the textId's for the below is unknown, but i do believe the gossip item texts are proper.
class npc_greatmother_geyah : public CreatureScript
{
public:
npc_greatmother_geyah() : CreatureScript("npc_greatmother_geyah") { }
@@ -502,7 +507,8 @@ public:
#define GOSSIP_SLB5 "My people ask that you pull back your Boulderfist ogres and cease all attacks on our territories. In return, we will also pull back our forces."
#define GOSSIP_SLB6 "We will fight you until the end, then, Lantresor. We will not stand idly by as you pillage our towns and kill our people."
#define GOSSIP_SLB7 "What do I need to do?"
#define GOSSIP_SLB3 "I have heard of your kind, but I never thought to see the day when I would meet a half-breed."
class npc_lantresor_of_the_blade : public CreatureScript
{
public:
npc_lantresor_of_the_blade() : CreatureScript("npc_lantresor_of_the_blade") { }
@@ -595,7 +601,8 @@ enum eMagharCaptive
static float m_afAmbushA[]= {-1568.805786, 8533.873047, 1.958};
static float m_afAmbushB[]= {-1491.554321, 8506.483398, 1.248};
NPC_MURK_SCAVENGER = 18207,
class npc_maghar_captive : public CreatureScript
{
public:
npc_maghar_captive() : CreatureScript("npc_maghar_captive") { }
@@ -741,7 +748,8 @@ public:
/*######
## npc_creditmarker_visist_with_ancestors
######*/
};
class npc_creditmarker_visit_with_ancestors : public CreatureScript
{
public:
npc_creditmarker_visit_with_ancestors() : CreatureScript("npc_creditmarker_visit_with_ancestors") { }
@@ -789,7 +797,8 @@ public:
#define SPELL_SPARROWHAWK_NET 39810
#define SPELL_ITEM_CAPTIVE_SPARROWHAWK 39812
class mob_sparrowhawk : public CreatureScript
{
public:
mob_sparrowhawk() : CreatureScript("mob_sparrowhawk") { }

View File

@@ -60,7 +60,8 @@ EndContentData */
#define SPELL_DISABLE_VISUAL 35031
#define SPELL_INTERRUPT_1 35016 //ACID mobs should cast this
#define SPELL_INTERRUPT_2 35176 //ACID mobs should cast this (Manaforge Ara-version)
class npc_manaforge_control_console : public CreatureScript
{
public:
npc_manaforge_control_console() : CreatureScript("npc_manaforge_control_console") { }
@@ -296,7 +297,8 @@ public:
## go_manaforge_control_console
######*/
//TODO: clean up this workaround when Trinity adds support to do it properly (with gossip selections instead of instant summon)
class go_manaforge_control_console : public GameObjectScript
{
public:
go_manaforge_control_console() : GameObjectScript("go_manaforge_control_console") { }
@@ -373,7 +375,8 @@ const uint32 CreatureEntry[3] =
19831, // Dawnforge
21504 // Pathaleon
};
21504 // Pathaleon
class npc_commander_dawnforge : public CreatureScript
{
public:
npc_commander_dawnforge() : CreatureScript("npc_commander_dawnforge") { }
@@ -625,7 +628,8 @@ public:
};
class at_commander_dawnforge : public AreaTriggerScript
{
public:
at_commander_dawnforge() : AreaTriggerScript("at_commander_dawnforge") { }
@@ -661,7 +665,8 @@ public:
#define QUEST_DIMENSIUS 10439
#define QUEST_ON_NETHERY_WINGS 10438
#define WHISPER_DABIRI -1000302
class npc_professor_dabiri : public CreatureScript
{
public:
npc_professor_dabiri() : CreatureScript("npc_professor_dabiri") { }
@@ -719,7 +724,8 @@ public:
#define SPELL_MANA_BURN 13321
#define SPELL_MATERIALIZE 34804
#define SPELL_DE_MATERIALIZE 34814
#define SPELL_RECHARGING_BATTERY 34219
class mob_phase_hunter : public CreatureScript
{
public:
mob_phase_hunter() : CreatureScript("mob_phase_hunter") { }
@@ -848,7 +854,8 @@ public:
#define SPAWN_SECOND 19881
#define SAY_THADELL_1 -1000304
#define SAY_THADELL_2 -1000305
#define Q_ALMABTRIEB 10337
class npc_bessy : public CreatureScript
{
public:
npc_bessy() : CreatureScript("npc_bessy") { }