129 me->GetMotionMaster()->MovementExpired();
131 me->GetMotionMaster()->MoveIdle();
134 me->GetMotionMaster()->MovePoint(
POINT_ID, go->GetPositionX(), go->GetPositionY(), go->GetPositionZ());
153 me->GetMotionMaster()->Clear();
224 me->SetDisableGravity(
false);
225 me->SetVisible(
true);
244 me->AddThreat(Dragonmaw, 100000.0f);
248 HostileReference* ref =
me->getThreatManager().getOnlineContainer().getReferenceByTarget(caster);
269 me->SetVisible(
false);
270 me->SetDisableGravity(
false);
304 me->GetRandomNearPosition(pos, 20);
308 me->SetDisableGravity(
true);
309 me->GetMotionMaster()->MovePoint(1, pos);
362 caster->GetClosePoint(x, y, z,
me->GetObjectSize());
365 me->GetMotionMaster()->MovePoint(1, x, y, z);
412 player->PlayerTalkClass->ClearMenus();
414 player->GetSession()->SendListInventory(creature->GetGUID());
421 if (creature->IsVendor() && player->GetReputationRank(1015) ==
REP_EXALTED)
424 player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
434#define GOSSIP_HSK1 "Take Flanis's Pack"
435#define GOSSIP_HSK2 "Take Kagrosh's Pack"
444 player->PlayerTalkClass->ClearMenus();
451 player->StoreNewItem(dest, 30658, 1,
true);
452 player->PlayerTalkClass->ClearMenus();
461 player->StoreNewItem(dest, 30659, 1,
true);
462 player->PlayerTalkClass->ClearMenus();
475 player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
485#define QUEST_11082 11082
487#define GOSSIP_HMO "I am here for you, overseer."
488#define GOSSIP_SMO1 "How dare you question an overseer of the Dragonmaw!"
489#define GOSSIP_SMO2 "Who speaks of me? What are you talking about, broken?"
490#define GOSSIP_SMO3 "Continue please."
491#define GOSSIP_SMO4 "Who are these bidders?"
492#define GOSSIP_SMO5 "Well... yes."
501 player->PlayerTalkClass->ClearMenus();
507 player->SEND_GOSSIP_MENU(10940, creature->GetGUID());
512 player->SEND_GOSSIP_MENU(10940, creature->GetGUID());
517 player->SEND_GOSSIP_MENU(10940, creature->GetGUID());
522 player->SEND_GOSSIP_MENU(10940, creature->GetGUID());
527 player->SEND_GOSSIP_MENU(10940, creature->GetGUID());
531 player->SEND_GOSSIP_MENU(10940, creature->GetGUID());
532 creature->CastSpell(player, 41121,
false);
544 player->SEND_GOSSIP_MENU(10940, creature->GetGUID());
553#define GOSSIP_ORONOK1 "I am ready to hear your story, Oronok."
554#define GOSSIP_ORONOK2 "How do I find the cipher?"
555#define GOSSIP_ORONOK3 "How do you know all of this?"
556#define GOSSIP_ORONOK4 "Yet what? What is it, Oronok?"
557#define GOSSIP_ORONOK5 "Continue, please."
558#define GOSSIP_ORONOK6 "So what of the cipher now? And your boys?"
559#define GOSSIP_ORONOK7 "I will find your boys and the cipher, Oronok."
568 player->PlayerTalkClass->ClearMenus();
572 player->GetSession()->SendListInventory(creature->GetGUID());
576 player->SEND_GOSSIP_MENU(10313, creature->GetGUID());
580 player->SEND_GOSSIP_MENU(10314, creature->GetGUID());
584 player->SEND_GOSSIP_MENU(10315, creature->GetGUID());
588 player->SEND_GOSSIP_MENU(10316, creature->GetGUID());
592 player->SEND_GOSSIP_MENU(10317, creature->GetGUID());
596 player->SEND_GOSSIP_MENU(10318, creature->GetGUID());
599 player->CLOSE_GOSSIP_MENU();
600 player->AreaExploredOrEventHappens(10519);
608 if (creature->IsQuestGiver())
609 player->PrepareQuestMenu(creature->GetGUID());
610 if (creature->IsVendor())
616 player->SEND_GOSSIP_MENU(10312, creature->GetGUID());
618 player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
775 me->GetMotionMaster()->MovePoint(0, -5104.41f, 595.297f, 85.6838f);
783 me->SetInFront(player);
932 Yarzill->SetTarget(0);
939 Yarzill->CastSpell(player, 41540,
true);
944 me->GetMotionMaster()->MovePoint(0, -5085.77f, 577.231f, 86.6719f);
1009 pEscortAI->Start(
false,
false, player->GetGUID(), quest);
1091 summoned->AI()->AttackStart(
me);
1116 if (std::rand() % 1)
1155#define QUEST_BATTLE_OF_THE_CRIMSON_WATCH 10781
1156#define EVENT_AREA_RADIUS 65
1157#define EVENT_COOLDOWN 30000
1185 {-4615.8556f, 1342.2532f, 139.9f, 1.612f},
1186 {-4598.9365f, 1377.3182f, 139.9f, 3.917f},
1187 {-4598.4697f, 1360.8999f, 139.9f, 2.427f},
1188 {-4589.3599f, 1369.1061f, 139.9f, 3.165f},
1189 {-4608.3477f, 1386.0076f, 139.9f, 4.108f},
1190 {-4633.1889f, 1359.8033f, 139.9f, 0.949f},
1191 {-4623.5791f, 1351.4574f, 139.9f, 0.971f},
1192 {-4607.2988f, 1351.6099f, 139.9f, 2.416f},
1193 {-4633.7764f, 1376.0417f, 139.9f, 5.608f},
1194 {-4600.2461f, 1369.1240f, 139.9f, 3.056f},
1195 {-4631.7808f, 1367.9459f, 139.9f, 0.020f},
1196 {-4600.2461f, 1369.1240f, 139.9f, 3.056f},
1197 {-4631.7808f, 1367.9459f, 139.9f, 0.020f},
1198 {-4615.5586f, 1353.0031f, 139.9f, 1.540f},
1199 {-4616.4736f, 1384.2170f, 139.9f, 4.971f},
1200 {-4627.1240f, 1378.8752f, 139.9f, 2.544f}
1211 {9, 0, 22075, 10000, 7000},
1212 {2, 9, 22074, 10000, 7000},
1213 {4, 11, 19797, 10000, 7000},
1214 {1, 15, 22076, 10000, 7000}
1224 {10000, 15000, 35871},
1225 {10000, 10000, 38985},
1226 {35000, 35000, 22884},
1227 {20000, 20000, 17194},
1228 {8000, 15000, 38010},
1229 {12000, 20000, 16102},
1230 {10000, 15000, 15284},
1231 {18000, 20000, 39082},
1232 {25000, 28000, 33961}
1302 me->SetTarget(AggroTarget->GetGUID());
1303 me->AddThreat(AggroTarget, 1);
1314 AggroTarget->GetPosition(x, y, z);
1315 me->GetMotionMaster()->MovePoint(0, x, y, z);
1369 switch (killer->GetTypeId())
1385 LordIllidan->AI()->EnterEvadeMode();
1424 me->SetVisible(
false);
1444 uint8 GroupMemberCount = 0;
1445 uint8 DeadMemberCount = 0;
1446 uint8 FailedMemberCount = 0;
1458 ++FailedMemberCount;
1462 if (GroupMember->
isDead())
1466 if (GroupMemberCount == FailedMemberCount)
1471 if (GroupMemberCount == DeadMemberCount)
1583 if (
me->GetEntry() == 22075)
1587 if (
me->GetEntry() == 22074)
1593 if (
me->GetEntry() == 19797)
1601 if (
me->GetEntry() == 22075)
1610 if (
me->GetEntry() == 22074)
1637 if (
me->GetEntry() == 19797)
1661 uint8 FelguardCount = 0;
1662 uint8 DreadlordCount = 0;
1664 for (
uint8 i = 0; i < count; ++i)
1676 Spawn->LoadCreaturesAddon();
1680 if (rand()%3 == 1 && FelguardCount<2)
1682 Spawn->SetDisplayId(18654);
1685 else if (DreadlordCount < 3)
1687 Spawn->SetDisplayId(19991);
1690 else if (FelguardCount<2)
1692 Spawn->SetDisplayId(18654);
1704 target->GetPosition(x, y, z);
1705 Spawn->GetMotionMaster()->MovePoint(0, x, y, z);
1823 switch (
me->GetEntry())
1851 Unit* totemOspirits = NULL;
1867 player->KilledMonsterCredit(credit, 0);
1950 tuber->SetPhaseMask(2,
true);
1963 boar->SetWalk(
false);
1964 boar->GetMotionMaster()->MovePoint(
POINT_TUBER,
me->GetPositionX(),
me->GetPositionY(),
me->GetPositionZ());
1979 tuber->SetPhaseMask(1,
true);
@ TEMPSUMMON_CORPSE_DESPAWN
@ TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT
@ TEMPSUMMON_TIMED_OR_DEAD_DESPAWN
std::vector< ItemPosCount > ItemPosCountVec
@ QUEST_STATUS_INCOMPLETE
#define GOSSIP_TEXT_BROWSE_GOODS
@ EMOTE_ONESHOT_ATTACK_UNARMED
@ SPELL_SCHOOL_MASK_NORMAL
@ UNIT_FLAG_NON_ATTACKABLE
@ UNIT_FLAG_NOT_SELECTABLE
@ UNIT_FIELD_NPC_EMOTESTATE
Creature * DoSummon(uint32 entry, Position const &pos, uint32 despawnTime=30000, TempSummonType summonType=TempSummonType::TEMPSUMMON_CORPSE_TIMED_DESPAWN)
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
virtual void EnterEvadeMode()
void SetDisplayId(uint32 modelId) OVERRIDE
void SetTarget(uint64 guid) OVERRIDE
void setDeathState(DeathState s) OVERRIDE
CreatureScript(const char *name)
static GameObject * GetGameObject(WorldObject &object, uint64 guid)
GameObjectScript(const char *name)
std::list< MemberSlot > MemberSlotList
MemberSlotList::const_iterator member_citerator
void MovePoint(uint32 id, Position const &pos, bool generatePath=true)
static Creature * GetCreature(WorldObject const &u, uint64 guid)
static Player * GetPlayer(WorldObject const &, uint64 guid)
void RemoveFlag(uint16 index, uint32 oldFlag)
void KilledMonsterCredit(uint32 entry, uint64 guid=0)
void GroupEventHappens(uint32 questId, WorldObject const *pEventObject)
QuestStatus GetQuestStatus(uint32 quest_id) const
void FailQuest(uint32 quest_id)
HookList< HitHandler > AfterHit
SpellScriptLoader(const char *name)
void DoMeleeAttackIfReady()
void DoCast(uint32 spellId)
Unit * SelectTarget(SelectAggroTarget targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
void DoCastVictim(uint32 spellId, bool triggered=false)
void setFaction(uint32 faction)
virtual void SetTarget(uint64)=0
void CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, uint64 originalCaster=0)
void RemoveAurasDueToSpell(uint32 spellId, uint64 casterGUID=0, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
MotionMaster * GetMotionMaster()
static Creature * GetCreature(WorldObject &object, uint64 guid)
static Unit * GetUnit(WorldObject &object, uint64 guid)
void HandleEmoteCommand(uint32 anim_id)
bool SetDisableGravity(bool disable, bool packetOnly=false)
bool IsWithinDistInMap(WorldObject const *obj, float dist2compare, bool is3D=true) const
GameObject * FindNearestGameObject(uint32 entry, float range) const
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
bool OnQuestAccept(Player *player, GameObject *, Quest const *quest) OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
bool OnGossipHello(Player *player, Creature *creature) OVERRIDE
bool OnGossipSelect(Player *player, Creature *creature, uint32, uint32 action) OVERRIDE
npc_drake_dealer_hurlunk()
bool OnQuestAccept(Player *player, Creature *creature, const Quest *quest) OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
npc_enslaved_netherwing_drake()
CreatureAI * GetAI(Creature *c) const OVERRIDE
bool OnQuestAccept(Player *player, Creature *creature, Quest const *quest) OVERRIDE
npc_lord_illidan_stormrage()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
npc_mature_netherwing_drake()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
bool OnGossipHello(Player *player, Creature *creature) OVERRIDE
bool OnGossipSelect(Player *player, Creature *creature, uint32, uint32 action) OVERRIDE
bool OnGossipHello(Player *player, Creature *creature) OVERRIDE
bool OnGossipSelect(Player *player, Creature *creature, uint32, uint32 action) OVERRIDE
bool OnQuestAccept(Player *player, Creature *creature, const Quest *_Quest) OVERRIDE
CreatureAI * GetAI(Creature *creature) const OVERRIDE
npc_shadowmoon_tuber_node()
CreatureAI * GetAI(Creature *creature) const OVERRIDE
npc_torloth_the_magnificent()
CreatureAI * GetAI(Creature *c) const OVERRIDE
bool OnGossipHello(Player *player, Creature *creature) OVERRIDE
npcs_flanis_swiftwing_and_kagrosh()
bool OnGossipSelect(Player *player, Creature *, uint32, uint32 action) OVERRIDE
PrepareSpellScript(spell_unlocking_zuluheds_chains_SpellScript)
spell_unlocking_zuluheds_chains()
SpellScript * GetSpellScript() const OVERRIDE
const Position SpawnLocation[]
float GetPositionZ() const
float GetPositionX() const
void GetPosition(float &x, float &y) const
float GetPositionY() const
bool HealthAbovePct(uint32 pct) const
Creature * DoSpawnCreature(uint32 entry, float offsetX, float offsetY, float offsetZ, float angle, TempSummonType type, uint32 despawntime)
ScriptedAI(Creature *creature)
void AttackStart(Unit *) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void MovementInform(uint32 type, uint32 id) OVERRIDE
npc_dragonmaw_peonAI(Creature *creature)
void SpellHit(Unit *caster, const SpellInfo *spell) OVERRIDE
npc_earthmender_wildaAI(Creature *creature)
void UpdateAI(uint32 uiDiff) OVERRIDE
== Triggered Actions Requested ==================
void EnterCombat(Unit *who) OVERRIDE
void WaypointReached(uint32 waypointId) OVERRIDE
void JustSummoned(Creature *summoned) OVERRIDE
void EnterCombat(Unit *) OVERRIDE
void JustDied(Unit *) OVERRIDE
npc_enraged_spiritAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void SpellHit(Unit *caster, const SpellInfo *spell) OVERRIDE
void MovementInform(uint32 type, uint32 id) OVERRIDE
npc_enslaved_netherwing_drakeAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
Player * GetPlayerForEscort()
npc_escortAI(Creature *creature)
npc_illidari_spawnAI(Creature *creature)
void JustDied(Unit *) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void EnterCombat(Unit *) OVERRIDE
void EnterCombat(Unit *) OVERRIDE
void MoveInLineOfSight(Unit *) OVERRIDE
npc_lord_illidan_stormrageAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void AttackStart(Unit *) OVERRIDE
npc_mature_netherwing_drakeAI(Creature *creature)
void SpellHit(Unit *pCaster, SpellInfo const *spell) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void MovementInform(uint32 type, uint32 id) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_overlord_morghorAI(Creature *creature)
uint32 NextStep(uint32 Step)
void SpellHit(Unit *, const SpellInfo *spell) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_shadowmoon_tuber_nodeAI(Creature *creature)
void SetData(uint32 id, uint32 data) OVERRIDE
void EnterCombat(Unit *) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void JustDied(Unit *killer) OVERRIDE
npc_torloth_the_magnificentAI(Creature *creature)
static WaveData WavesInfo[]
static SpawnSpells SpawnCast[]
@ GO_SHADOWMOON_TUBER_MOUND
#define QUEST_BATTLE_OF_THE_CRIMSON_WATCH
static Location SpawnLocation[]
void AddSC_shadowmoon_valley()
static TorlothCinematic TorlothAnim[]
@ QUEST_ENRAGED_SPIRITS_FIRE_EARTH
@ SPELL_EARTHEN_SOUL_CAPTURED_CREDIT
@ NPC_ENRAGED_WATER_SPIRIT
@ NPC_ENRAGED_EARTH_SPIRIT
@ RADIUS_TOTEM_OF_SPIRITS
@ NPC_ENRAGED_WATERY_SOUL
@ SPELL_WATERY_SOUL_CAPTURED_CREDIT
@ FACTION_ENRAGED_SOUL_FRIENDLY
@ SPELL_AIRY_SOUL_CAPTURED_CREDIT
@ QUEST_ENRAGED_SPIRITS_AIR
@ FACTION_ENRAGED_SOUL_HOSTILE
@ SPELL_FIERY_SOUL_CAPTURED_CREDIT
@ QUEST_ENRAGED_SPIRITS_WATER
@ NPC_ENRAGED_FIRE_SPIRIT
#define EVENT_AREA_RADIUS
@ NPC_DRAGONMAW_SUBJUGATOR
@ SPELL_HIT_FORCE_OF_NELTHARAKU
@ SPELL_FORCE_OF_NELTHARAKU
@ QUEST_LORD_ILLIDAN_STORMRAGE
static WaveData WavesInfo[5]
static SpawnSpells SpawnCast[4]