82 if (
me->GetHomePosition().GetPositionX() == X &&
me->GetHomePosition().GetPositionY() == Y)
91 Spyglass(-8868.88f, -99.1016f, -8936.5f, -246.743f, -8922.44f, -73.9883f, -8909.68f, -40.0247f, -8834.85f,
92 -119.701f, -9022.08f, -163.965f, -8776.55f, -79.158f, -8960.08f, -63.767f, -8983.12f, -202.827f);
95 void Spyglass(
float X1,
float Y1,
float X2,
float Y2,
float X3,
float Y3,
float X4,
float Y4,
float X5,
float Y5,
96 float X6,
float Y6,
float X7,
float Y7,
float X8,
float Y8,
float X9,
float Y9)
98 if ((
me->GetHomePosition().GetPositionX() != X1 &&
me->GetHomePosition().GetPositionY() != Y1) &&
99 (
me->GetHomePosition().GetPositionX() != X2 &&
me->GetHomePosition().GetPositionY() != Y2) &&
100 (
me->GetHomePosition().GetPositionX() != X3 &&
me->GetHomePosition().GetPositionY() != Y3) &&
101 (
me->GetHomePosition().GetPositionX() != X4 &&
me->GetHomePosition().GetPositionY() != Y4) &&
102 (
me->GetHomePosition().GetPositionX() != X5 &&
me->GetHomePosition().GetPositionY() != Y5) &&
103 (
me->GetHomePosition().GetPositionX() != X6 &&
me->GetHomePosition().GetPositionY() != Y6) &&
104 (
me->GetHomePosition().GetPositionX() != X7 &&
me->GetHomePosition().GetPositionY() != Y7) &&
105 (
me->GetHomePosition().GetPositionX() != X8 &&
me->GetHomePosition().GetPositionY() != Y8) &&
106 (
me->GetHomePosition().GetPositionX() != X9 &&
me->GetHomePosition().GetPositionY() != Y9))
107 if (
me->GetHomePosition().GetPositionX() ==
me->GetPositionX() &&
me->GetHomePosition().GetPositionY() ==
me->GetPositionY())
221 tSeek = std::rand() % 2000 + 1000;
222 cYell = std::rand() % 100;
223 tYell = std::rand() % 60000 + 5000;
230 me->getThreatManager().resetAllAggro();
231 who->AddThreat(
me, 1.0f);
232 me->AddThreat(who, 1.0f);
233 me->AI()->AttackStart(who);
235 else if (who->IsPet())
237 me->getThreatManager().resetAllAggro();
238 me->AddThreat(who, 1.0f);
239 me->AI()->AttackStart(who);
244 me->AddThreat(who, 1.0f);
245 me->AI()->AttackStart(who);
260 tYell = std::rand() % 120000 + 10000;
263 tYell = std::rand() % 120000 + 10000;
297 tSeek = std::rand() % 2000 + 1000;
298 tGrowl = std::rand() % 10000 + 8500;
306 me->getThreatManager().resetAllAggro();
307 who->AddThreat(
me, 1.0f);
308 me->AddThreat(who, 1.0f);
309 me->AI()->AttackStart(who);
311 else if (who->IsPet())
313 me->getThreatManager().resetAllAggro();
314 me->AddThreat(who, 1.0f);
315 me->AI()->AttackStart(who);
320 me->AddThreat(who, 1.0f);
321 me->AI()->AttackStart(who);
329 if ((
me->IsAlive()) && (!
me->IsInCombat() && (
me->GetDistance2d(
me->GetHomePosition().GetPositionX(),
me->GetHomePosition().GetPositionY()) <= 1.0f)))
333 me->AI()->AttackStart(enemy);
334 tSeek = std::rand() % 2000 + 1000;
345 tGrowl = std::rand() % 10000 + 8500;
445 if (
phase == 1 && damage >=
me->GetHealth())
449 me->RemoveAllAuras();
451 attacker->AttackStop();
456 me->GetMotionMaster()->MovePoint(1, -10136.9f, 670.009f, 36.03682f);
457 damage =
me->GetHealth() - 1;
468 switch (
events.ExecuteEvent())
485 me->GetMotionMaster()->MoveFollow(meat, 0.01f, 1.57079f);
486 me->SetFacingToObject(meat);
507 if (
Unit* victim =
me->SelectVictim())
509 me->GetMotionMaster()->MoveFollow(victim, 0.1f, 0.0f);
527 dumas->GetClosePoint(x, y, z, dumas->GetObjectSize() / 3, 2.5f);
528 dumas->GetMotionMaster()->MovePoint(0, x, y, z);
535 andromath->GetClosePoint(x, y, z, andromath->GetObjectSize() / 3, 2.5f);
536 andromath->GetMotionMaster()->MovePoint(0, x, y, z);
543 ragamuffin1->GetClosePoint(x, y, z, ragamuffin1->GetObjectSize() / 3, 2.5f);
544 ragamuffin1->GetMotionMaster()->MovePoint(0, x, y, z);
552 ragamuffin2->GetClosePoint(x, y, z, ragamuffin2->GetObjectSize() / 3, 2.5f);
553 ragamuffin2->GetMotionMaster()->MovePoint(0, x, y, z);
560 jonathan->SetWalk(
true);
561 jonathan->Dismount();
563 jonathan->GetClosePoint(x, y, z, jonathan->GetObjectSize() / 3, 10.0f);
564 jonathan->GetMotionMaster()->MovePoint(0, x, y, z);
565 me->SetFacingToObject(jonathan);
591 jonathan->MonsterSay(
"This beast leads the Riverpaw gnoll gang and may be the key to ending gnoll aggression in Elwynn.",
Language::LANG_UNIVERSAL, jonathan);
601 jonathan->MonsterSay(
"We're taking him into custody in the name of King Varian Wrynn.",
Language::LANG_UNIVERSAL, jonathan);
618 jonathan->SetFacingToObject(andromath);
631 dumas->DespawnOrUnsummon();
637 andromath->DespawnOrUnsummon();
643 jonathan->DespawnOrUnsummon();
646 for (
uint8 i = 0; i < 2; i++)
651 ragaMuffin->DespawnOrUnsummon();
655 std::list<Player*> playerList;
667 me->DespawnOrUnsummon();
736 me->GetMotionMaster()->MovePath(42260,
false);
741 me->DespawnOrUnsummon(1000);
752 if (
Unit* passenger =
me->GetVehicleKit()->GetPassenger(0))
754 passenger->ExitVehicle();
const T & RAND(const T &v1, const T &v2)
@ TEMPSUMMON_TIMED_OR_DEAD_DESPAWN
void GetPlayerListInGrid(std::list< Player * > &list, WorldObject *source, float maxSearchRange)
@ UNIT_STATE_IGNORE_PATHFINDING
@ UNIT_FLAG_NON_ATTACKABLE
@ UNIT_FLAG_IMMUNE_TO_NPC
void Talk(uint8 id, WorldObject const *whisperTarget=NULL)
virtual void MovementInform(uint32, uint32)
CreatureTemplate const * GetCreatureTemplate() const
CreatureScript(const char *name)
void SendPreparedGossip(WorldObject *source)
QuestStatus GetQuestStatus(uint32 quest_id) const
void PrepareGossipMenu(WorldObject *source, uint32 menuId=0, bool showQuests=false)
PlayerMenu * PlayerTalkClass
void DoMeleeAttackIfReady()
void DoCast(uint32 spellId)
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)
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
CreatureAI * GetAI(Creature *creature) const
npc_blackrock_battle_worg()
CreatureAI * GetAI(Creature *creature) const
CreatureAI * GetAI(Creature *creature) const
CreatureAI * GetAI(Creature *creature) const
CreatureAI * GetAI(Creature *creature) const
bool OnGossipHello(Player *player, Creature *creature) override
bool OnGossipSelect(Player *player, Creature *creature, uint32 sender, uint32 action) override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const
bool HealthAbovePct(uint32 pct) const
ScriptedAI(Creature *creature)
void AttackStart(Unit *) OVERRIDE
npc_blackrock_battle_worgAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void DamageTaken(Unit *who, uint32 &damage) OVERRIDE
npc_blackrock_invaderAI(Creature *creature)
void EnterCombat(Unit *) OVERRIDE
void UpdateAI(uint32) OVERRIDE
== Triggered Actions Requested ==================
npc_blackrock_spyAI(Creature *creature)
void GetCreature(float X, float Y)
void EnterCombat(Unit *) OVERRIDE
void Spyglass(float X1, float Y1, float X2, float Y2, float X3, float Y3, float X4, float Y4, float X5, float Y5, float X6, float Y6, float X7, float Y7, float X8, float Y8, float X9, float Y9)
void UpdateAI(uint32) OVERRIDE
== Triggered Actions Requested ==================
void EnterCombat(Unit *) OVERRIDE
npc_goblin_assassinAI(Creature *creature)
void UpdateAI(uint32) OVERRIDE
== Triggered Actions Requested ==================
@ SPELL_TELEPORT_VISUAL_ONLY
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
const Position jonathanSpawnPos
@ EVENT_TELEPORT_AND_DESPAWN
void EnterCombat(Unit *) OVERRIDE
void DamageTaken(Unit *attacker, uint32 &damage) OVERRIDE
const Position ragaMuffin2SpawnPos
const Position andromathSpawnPos
const Position dumasSpawnPos
const Position ragaMuffin1SpawnPos
npc_hogger_elwynnAI(Creature *creature)
void PassengerBoarded(Unit *who, int8, bool apply) OVERRIDE
== Fields =======================================
void MovementInform(uint32 type, uint32 id) OVERRIDE
npc_stormwind_chargerAI(Creature *creature)
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
npc_stormwind_infantryAI(Creature *creature)
void DamageTaken(Unit *who, uint32 &damage) OVERRIDE
static std::map< uint64, uint32 > s_DughanGossipCooldowns
@ NPC_BLACKROCK_BATTLE_WORG
void AddSC_elwynn_forest()