TrinityCore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI Struct Reference

Public Member Functions

 npc_thrall_old_hillsbradAI (Creature *creature)
 
void Initialize ()
 
void WaypointReached (uint32 waypointId) override
 
void Reset () override
 
void StartWP ()
 
void DoMount ()
 
void DoUnmount ()
 
void EnterCombat (Unit *) override
 
void JustSummoned (Creature *summoned) override
 
void KilledUnit (Unit *) override
 
void JustDied (Unit *slayer) override
 
void UpdateAI (uint32 diff) override
 
- Public Member Functions inherited from npc_escortAI
 npc_escortAI (Creature *creature)
 
 ~npc_escortAI ()
 
void AttackStart (Unit *who) override
 
void MoveInLineOfSight (Unit *who) override
 
void JustRespawned () override
 
void ReturnToLastPoint ()
 
void EnterEvadeMode (EvadeReason=EVADE_REASON_OTHER) override
 
virtual void UpdateEscortAI (uint32 diff)
 
void MovementInform (uint32, uint32) override
 
void AddWaypoint (uint32 id, float x, float y, float z, uint32 waitTime=0)
 
bool SetNextWaypoint (uint32 pointId, float x, float y, float z, float orientation)
 
bool SetNextWaypoint (uint32 pointId, bool setPosition=true, bool resetWaypointsOnFail=true)
 
bool GetWaypointPosition (uint32 pointId, float &x, float &y, float &z)
 
virtual void WaypointStart (uint32)
 
void Start (bool isActiveAttacker=true, bool run=false, ObjectGuid playerGUID=ObjectGuid::Empty, Quest const *quest=NULL, bool instantRespawn=false, bool canLoopPath=false, bool resetWaypoints=true)
 
void SetRun (bool on=true)
 
void SetEscortPaused (bool on)
 
bool HasEscortState (uint32 escortState)
 
virtual bool IsEscorted () const override
 
void SetMaxPlayerDistance (float newMax)
 
float GetMaxPlayerDistance () const
 
void SetDespawnAtEnd (bool despawn)
 
void SetDespawnAtFar (bool despawn)
 
bool GetAttack () const
 
void SetCanAttack (bool attack)
 
ObjectGuid GetEventStarterGUID () const
 
- Public Member Functions inherited from ScriptedAI
 ScriptedAI (Creature *creature)
 
virtual ~ScriptedAI ()
 
void AttackStartNoMove (Unit *target)
 
void DamageTaken (Unit *, uint32 &) override
 
void SummonedCreatureDespawn (Creature *) override
 
void SpellHit (Unit *, SpellInfo const *) override
 
void SpellHitTarget (Unit *, SpellInfo const *) override
 
void OnPossess (bool)
 
void DoStartMovement (Unit *target, float distance=0.0f, float angle=0.0f)
 
void DoStartNoMovement (Unit *target)
 
void DoStopAttack ()
 
void DoCastSpell (Unit *target, SpellInfo const *spellInfo, bool triggered=false)
 
void DoPlaySoundToSet (WorldObject *source, uint32 soundId)
 
void DoResetThreat ()
 
float DoGetThreat (Unit *unit)
 
void DoModifyThreatPercent (Unit *unit, int32 pct)
 
void DoTeleportTo (float x, float y, float z, uint32 time=0)
 
void DoTeleportTo (float const pos[4])
 
void DoTeleportPlayer (Unit *unit, float x, float y, float z, float o)
 
void DoTeleportAll (float x, float y, float z, float o)
 
UnitDoSelectLowestHpFriendly (float range, uint32 minHPDiff=1)
 
std::list< Creature * > DoFindFriendlyCC (float range)
 
std::list< Creature * > DoFindFriendlyMissingBuff (float range, uint32 spellId)
 
PlayerGetPlayerAtMinimumRange (float minRange)
 
CreatureDoSpawnCreature (uint32 entry, float offsetX, float offsetY, float offsetZ, float angle, uint32 type, uint32 despawntime)
 
bool HealthBelowPct (uint32 pct) const
 
bool HealthAbovePct (uint32 pct) const
 
SpellInfo constSelectSpell (Unit *target, uint32 school, uint32 mechanic, SelectTargetType targets, float rangeMin, float rangeMax, SelectEffect effect)
 
void SetEquipmentSlots (bool loadDefault, int32 mainHand=EQUIP_NO_CHANGE, int32 offHand=EQUIP_NO_CHANGE, int32 ranged=EQUIP_NO_CHANGE)
 
void SetCombatMovement (bool allowMovement)
 
bool IsCombatMovementAllowed () const
 
bool IsHeroic () const
 
Difficulty GetDifficulty () const
 
bool Is25ManRaid () const
 
template<class T >
const T & DUNGEON_MODE (const T &normal5, const T &heroic10) const
 
template<class T >
const T & RAID_MODE (const T &normal10, const T &normal25) const
 
template<class T >
const T & RAID_MODE (const T &normal10, const T &normal25, const T &heroic10, const T &heroic25) const
 
- Public Member Functions inherited from CreatureAI
void Talk (uint8 id, WorldObject const *whisperTarget=nullptr)
 
 CreatureAI (Creature *creature)
 
virtual ~CreatureAI ()
 
void MoveInLineOfSight_Safe (Unit *who)
 == Reactions At ================================= More...
 
void TriggerAlert (Unit const *who) const
 
virtual bool CanRespawn ()
 
virtual void IsSummonedBy (Unit *)
 
virtual void SummonedCreatureDies (Creature *, Unit *)
 
virtual void AttackedBy (Unit *)
 
void OnCharmed (bool apply) override
 
virtual void JustReachedHome ()
 
void DoZoneInCombat (Creature *creature=NULL, float maxRangeToNearestTarget=50.0f)
 
virtual void ReceiveEmote (Player *, uint32)
 
virtual void OwnerAttackedBy (Unit *)
 
virtual void OwnerAttacked (Unit *)
 
virtual void CorpseRemoved (uint32 &)
 == Triggered Actions Requested ================== More...
 
virtual void PassengerBoarded (Unit *, int8, bool)
 == Fields ======================================= More...
 
virtual void OnSpellClick (Unit *, bool &)
 
virtual bool CanSeeAlways (WorldObject const *)
 
int32 VisualizeBoundary (uint32 duration, Unit *owner=nullptr, bool fill=false) const
 
virtual bool CheckInRoom ()
 
CreatureBoundary constGetBoundary () const
 
- Public Member Functions inherited from UnitAI
 UnitAI (Unit *unit)
 
virtual ~UnitAI ()
 
virtual bool CanAIAttack (Unit const *) const
 
virtual void InitializeAI ()
 
virtual void DoAction (int32)
 
virtual uint32 GetData (uint32) const
 
virtual void SetData (uint32, uint32)
 
virtual void SetGUID (ObjectGuid, int32=0)
 
virtual ObjectGuid GetGUID (int32=0) const
 
UnitSelectTarget (SelectAggroTarget targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
 
template<class PREDICATE >
UnitSelectTarget (SelectAggroTarget targetType, uint32 position, PREDICATE const &predicate)
 
void SelectTargetList (std::list< Unit * > &targetList, uint32 num, SelectAggroTarget targetType, float dist=0.0f, bool playerOnly=false, int32 aura=0)
 
template<class PREDICATE >
void SelectTargetList (std::list< Unit * > &targetList, PREDICATE const &predicate, uint32 maxTargets, SelectAggroTarget targetType)
 
virtual void DamageDealt (Unit *, uint32 &, DamageEffectType)
 
virtual void HealReceived (Unit *, uint32 &)
 
virtual void HealDone (Unit *, uint32 &)
 
virtual void SpellInterrupted (uint32, uint32)
 
void AttackStartCaster (Unit *victim, float dist)
 
void DoCast (uint32 spellId)
 
void DoCast (Unit *victim, uint32 spellId, bool triggered=false)
 
void DoCastVictim (uint32 spellId, bool triggered=false)
 
void DoCastAOE (uint32 spellId, bool triggered=false)
 
void DoMeleeAttackIfReady ()
 
bool DoSpellAttackIfReady (uint32 spellId)
 
virtual void sGossipHello (Player *)
 
virtual void sGossipSelect (Player *, uint32, uint32)
 
virtual void sGossipSelectCode (Player *, uint32, uint32, char const *)
 
virtual void sQuestAccept (Player *, Quest const *)
 
virtual void sQuestSelect (Player *, Quest const *)
 
virtual void sQuestReward (Player *, Quest const *, uint32)
 
virtual bool sOnDummyEffect (Unit *, uint32, SpellEffIndex)
 
virtual void sOnGameEvent (bool, uint16)
 

Public Attributes

InstanceScriptinstance
 
bool LowHp
 
bool HadMount
 
- Public Attributes inherited from ScriptedAI
bool IsFleeing
 

Additional Inherited Members

- Public Types inherited from CreatureAI
enum  EvadeReason { EVADE_REASON_NO_HOSTILES, EVADE_REASON_BOUNDARY, EVADE_REASON_SEQUENCE_BREAK, EVADE_REASON_OTHER }
 
- Static Public Member Functions inherited from UnitAI
static void FillAISpellInfo ()
 
- Static Public Attributes inherited from UnitAI
static AISpellInfoTypeAISpellInfo
 
- Protected Member Functions inherited from npc_escortAI
PlayerGetPlayerForEscort ()
 
- Protected Member Functions inherited from CreatureAI
bool UpdateVictim ()
 
bool UpdateVictimWithGaze ()
 
void SetGazeOn (Unit *target)
 
CreatureDoSummon (uint32 entry, Position const &pos, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
CreatureDoSummon (uint32 entry, WorldObject *obj, float radius=5.0f, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
CreatureDoSummonFlyer (uint32 entry, WorldObject *obj, float flightZ, float radius=5.0f, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
bool CheckBoundary (Position const *who=nullptr) const
 
void SetBoundary (CreatureBoundary const *boundary)
 
bool _EnterEvadeMode (EvadeReason why=EVADE_REASON_OTHER)
 
- Protected Attributes inherited from CreatureAI
Creature *const me
 
CreatureBoundary const_boundary
 
- Protected Attributes inherited from UnitAI
Unit *const me
 

Constructor & Destructor Documentation

npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::npc_thrall_old_hillsbradAI ( Creature creature)
inline
277  : npc_escortAI(creature)
278  {
279  Initialize();
280  instance = creature->GetInstanceScript();
281  HadMount = false;
282  me->setActive(true);
283  }
npc_escortAI(Creature *creature)
Definition: ScriptedEscortAI.cpp:37
InstanceScript * GetInstanceScript()
Definition: Object.cpp:1540
void setActive(bool isActiveObject)
Definition: Object.cpp:1473
InstanceScript * instance
Definition: old_hillsbrad.cpp:290
Creature *const me
Definition: CreatureAI.h:71
void Initialize()
Definition: old_hillsbrad.cpp:285
bool HadMount
Definition: old_hillsbrad.cpp:293

+ Here is the call graph for this function:

Member Function Documentation

void npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::DoMount ( )
inline
480  {
483  }
#define SPEED_MOUNT
Definition: old_hillsbrad.cpp:175
Definition: old_hillsbrad.cpp:161
void Mount(uint32 mount, uint32 vehicleId=0, uint32 creatureEntry=0)
Definition: Unit.cpp:9695
Creature *const me
Definition: CreatureAI.h:71
Definition: Unit.h:600
void SetSpeed(UnitMoveType mtype, float rate, bool forced=false)
Definition: Unit.cpp:10531

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::DoUnmount ( )
inline
485  {
486  me->Dismount();
488  }
#define SPEED_RUN
Definition: old_hillsbrad.cpp:174
void Dismount()
Definition: Unit.cpp:9734
Creature *const me
Definition: CreatureAI.h:71
Definition: Unit.h:600
void SetSpeed(UnitMoveType mtype, float rate, bool forced=false)
Definition: Unit.cpp:10531

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::EnterCombat ( Unit )
inlineoverridevirtual

Reimplemented from ScriptedAI.

490  {
492  if (me->IsMounted())
493  {
494  DoUnmount();
495  HadMount = true;
496  }
497  }
Creature *const me
Definition: CreatureAI.h:71
bool HadMount
Definition: old_hillsbrad.cpp:293
Definition: old_hillsbrad.cpp:118
void DoUnmount()
Definition: old_hillsbrad.cpp:484
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42
bool IsMounted() const
Definition: Unit.h:1496

+ Here is the call graph for this function:

void npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::Initialize ( void  )
inline
286  {
287  LowHp = false;
288  }
bool LowHp
Definition: old_hillsbrad.cpp:292

+ Here is the caller graph for this function:

void npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::JustDied ( Unit slayer)
inlineoverridevirtual

Reimplemented from npc_escortAI.

521  {
523 
524  // Don't do a yell if he kills self (if player goes too far or at the end).
525  if (slayer == me)
526  return;
527 
529  }
Definition: old_hillsbrad.h:27
InstanceScript * instance
Definition: old_hillsbrad.cpp:290
Definition: InstanceScript.h:60
Creature *const me
Definition: CreatureAI.h:71
virtual void SetData(uint32, uint32)
Definition: ZoneScript.h:52
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42
Definition: old_hillsbrad.cpp:117

+ Here is the call graph for this function:

void npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::JustSummoned ( Creature summoned)
inlineoverridevirtual
Todo:
make Scarloc start into event instead, and not start attack directly

Reimplemented from ScriptedAI.

500  {
501  switch (summoned->GetEntry())
502  {
504  case NPC_BARN_GUARDSMAN:
505  case NPC_BARN_PROTECTOR:
506  case NPC_BARN_LOOKOUT:
507  case SKARLOC_MOUNT:
508  case EROZION_ENTRY:
509  break;
510  default:
511  summoned->AI()->AttackStart(me);
512  break;
513  }
514  }
Definition: old_hillsbrad.cpp:160
Definition: old_hillsbrad.cpp:162
Creature *const me
Definition: CreatureAI.h:71
Definition: old_hillsbrad.cpp:149
CreatureAI * AI() const
Definition: Creature.h:525
uint32 GetEntry() const
Definition: Object.h:107
Definition: old_hillsbrad.cpp:148
Definition: old_hillsbrad.cpp:150
virtual void AttackStart(Unit *)
Definition: UnitAI.cpp:29

+ Here is the call graph for this function:

void npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::KilledUnit ( Unit )
inlineoverridevirtual

Reimplemented from ScriptedAI.

517  {
519  }
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42
Definition: old_hillsbrad.cpp:119

+ Here is the call graph for this function:

void npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::Reset ( )
inlineoverridevirtual

Reimplemented from ScriptedAI.

455  {
456  Initialize();
457 
458  if (HadMount)
459  DoMount();
460 
462  {
463  DoUnmount();
464  HadMount = false;
465  me->SetVirtualItem(0, 0);
466  me->SetVirtualItem(1, 0);
468  }
470  {
472  }
473  }
void SetVirtualItem(uint32 slot, uint32 itemId, uint16 appearanceModId=0)
Definition: Unit.cpp:16427
Definition: ScriptedEscortAI.h:47
Definition: old_hillsbrad.cpp:120
Creature *const me
Definition: CreatureAI.h:71
void Initialize()
Definition: old_hillsbrad.cpp:285
bool HadMount
Definition: old_hillsbrad.cpp:293
void DoUnmount()
Definition: old_hillsbrad.cpp:484
void DoMount()
Definition: old_hillsbrad.cpp:479
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42
void SetDisplayId(uint32 modelId) override
Definition: Creature.cpp:2664
bool HasEscortState(uint32 escortState)
Definition: ScriptedEscortAI.h:96
Definition: old_hillsbrad.cpp:135

+ Here is the call graph for this function:

void npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::StartWP ( )
inline
475  {
477  SetEscortPaused(false);
478  }
Definition: Unit.h:735
Creature *const me
Definition: CreatureAI.h:71
void RemoveFlag(uint16 index, uint32 oldFlag)
Definition: Object.cpp:1214
void SetEscortPaused(bool on)
Definition: ScriptedEscortAI.cpp:507
Definition: UpdateFields.h:135

+ Here is the call graph for this function:

void npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::UpdateAI ( uint32  diff)
inlineoverridevirtual
Todo:
add his abilities'n-crap here

Reimplemented from npc_escortAI.

532  {
534 
535  if (!UpdateVictim())
536  return;
537 
539  if (!LowHp && HealthBelowPct(20))
540  {
542  LowHp = true;
543  }
544  }
bool UpdateVictim()
Definition: CreatureAI.cpp:233
bool HealthBelowPct(uint32 pct) const
Definition: ScriptedCreature.h:247
Definition: old_hillsbrad.cpp:116
bool LowHp
Definition: old_hillsbrad.cpp:292
void UpdateAI(uint32 diff) override
Definition: ScriptedEscortAI.cpp:227
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42

+ Here is the call graph for this function:

void npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::WaypointReached ( uint32  waypointId)
inlineoverridevirtual

Implements npc_escortAI.

296  {
297  switch (waypointId)
298  {
299  case 8:
300  SetRun(false);
301  me->SummonCreature(18764, 2181.87f, 112.46f, 89.45f, 0.26f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
302  break;
303  case 9:
306  //me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO, THRALL_WEAPON_INFO);
307  //me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+1, 781);
309  //me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+2, THRALL_SHIELD_INFO);
310  //me->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO+3, 1038);
311  break;
312  case 10:
314  break;
315  case 11:
316  SetRun();
317  break;
318  case 15:
319  me->SummonCreature(NPC_RIFLE, 2200.28f, 137.37f, 87.93f, 5.07f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
320  me->SummonCreature(NPC_WARDEN, 2197.44f, 131.83f, 87.93f, 0.78f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
321  me->SummonCreature(NPC_VETERAN, 2203.62f, 135.40f, 87.93f, 3.70f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
322  me->SummonCreature(NPC_VETERAN, 2200.75f, 130.13f, 87.93f, 1.48f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
323  break;
324  case 21:
325  me->SummonCreature(NPC_RIFLE, 2135.80f, 154.01f, 67.45f, 4.98f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
326  me->SummonCreature(NPC_WARDEN, 2144.36f, 151.87f, 67.74f, 4.46f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
327  me->SummonCreature(NPC_VETERAN, 2142.12f, 154.41f, 67.12f, 4.56f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
328  me->SummonCreature(NPC_VETERAN, 2138.08f, 155.38f, 67.24f, 4.60f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
329  break;
330  case 25:
331  me->SummonCreature(NPC_RIFLE, 2102.98f, 192.17f, 65.24f, 6.02f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
332  me->SummonCreature(NPC_WARDEN, 2108.48f, 198.75f, 65.18f, 5.15f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
333  me->SummonCreature(NPC_VETERAN, 2106.11f, 197.29f, 65.18f, 5.63f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
334  me->SummonCreature(NPC_VETERAN, 2104.18f, 194.82f, 65.18f, 5.75f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
335  break;
336  case 29:
338  me->SummonCreature(ENTRY_SCARLOC, 2036.48f, 271.22f, 63.43f, 5.27f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
339  //temporary, skarloc should rather be triggered to walk up to thrall
340  break;
341  case 30:
342  SetEscortPaused(true);
344  SetRun(false);
345  break;
346  case 31:
348  DoMount();
349  SetRun();
350  break;
351  case 37:
352  //possibly regular patrollers? If so, remove this and let database handle them
353  me->SummonCreature(NPC_WATCHMAN, 2124.26f, 522.16f, 56.87f, 3.99f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
354  me->SummonCreature(NPC_WATCHMAN, 2121.69f, 525.37f, 57.11f, 4.01f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
355  me->SummonCreature(NPC_SENTRY, 2124.65f, 524.55f, 56.63f, 3.98f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
356  break;
357  case 59:
358  me->SummonCreature(SKARLOC_MOUNT, 2488.64f, 625.77f, 58.26f, 4.71f, TEMPSUMMON_TIMED_DESPAWN, 10000);
359  DoUnmount();
360  HadMount = false;
361  SetRun(false);
362  break;
363  case 60:
365  //make horsie run off
366  SetEscortPaused(true);
369  SetRun();
370  break;
371  case 64:
372  SetRun(false);
373  break;
374  case 68:
375  me->SummonCreature(NPC_BARN_PROTECTOR, 2500.22f, 692.60f, 55.50f, 2.84f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
376  me->SummonCreature(NPC_BARN_LOOKOUT, 2500.13f, 696.55f, 55.51f, 3.38f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
377  me->SummonCreature(NPC_BARN_GUARDSMAN, 2500.55f, 693.64f, 55.50f, 3.14f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
378  me->SummonCreature(NPC_BARN_GUARDSMAN, 2500.94f, 695.81f, 55.50f, 3.14f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
379  break;
380  case 71:
381  SetRun();
382  break;
383  case 81:
384  SetRun(false);
385  break;
386  case 83:
387  me->SummonCreature(NPC_CHURCH_PROTECTOR, 2627.33f, 646.82f, 56.03f, 4.28f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5000);
388  me->SummonCreature(NPC_CHURCH_LOOKOUT, 2624.14f, 648.03f, 56.03f, 4.50f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5000);
389  me->SummonCreature(NPC_CHURCH_GUARDSMAN, 2625.32f, 649.60f, 56.03f, 4.38f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5000);
390  me->SummonCreature(NPC_CHURCH_GUARDSMAN, 2627.22f, 649.00f, 56.03f, 4.34f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 5000);
391  break;
392  case 84:
394  SetRun();
395  break;
396  case 91:
397  me->SetWalk(true);
398  SetRun(false);
399  break;
400  case 93:
401  me->SummonCreature(NPC_INN_PROTECTOR, 2652.71f, 660.31f, 61.93f, 1.67f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
402  me->SummonCreature(NPC_INN_LOOKOUT, 2648.96f, 662.59f, 61.93f, 0.79f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
403  me->SummonCreature(NPC_INN_GUARDSMAN, 2657.36f, 662.34f, 61.93f, 2.68f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
404  me->SummonCreature(NPC_INN_GUARDSMAN, 2656.39f, 659.77f, 61.93f, 2.61f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
405  break;
406  case 94:
409  break;
410  case 95:
413  SetEscortPaused(true);
414  break;
415  case 96:
417  break;
418  case 97:
420  SetRun();
421  break;
422  case 98:
423  //trigger epoch Yell("Thrall! Come outside and face your fate! ....")
424  //from here, thrall should not never be allowed to move to point 106 which he currently does.
425  break;
426  case 106:
427  {
428  //trigger taretha to run down outside
430  {
431  if (Player* player = GetPlayerForEscort())
432  ENSURE_AI(npc_escortAI, (Taretha->AI()))->Start(false, true, player->GetGUID());
433  }
434 
435  //kill credit Creature for quest
436  Map::PlayerList const& players = me->GetMap()->GetPlayers();
437  for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
438  {
439  if (Player* player = itr->GetSource())
440  player->KilledMonsterCredit(20156);
441  }
442 
443  //alot will happen here, thrall and taretha talk, erozion appear at spot to explain
444  me->SummonCreature(EROZION_ENTRY, 2646.47f, 680.416f, 55.38f, 4.16f, TEMPSUMMON_TIMED_DESPAWN, 120000);
445  }
446  break;
447  case 108:
448  //last waypoint, just set Thrall invisible, respawn is turned off
449  me->SetVisible(false);
450  break;
451  }
452  }
Definition: old_hillsbrad.cpp:160
Definition: old_hillsbrad.cpp:142
Definition: SharedDefines.h:2417
Definition: Unit.h:735
void SetVirtualItem(uint32 slot, uint32 itemId, uint16 appearanceModId=0)
Definition: Unit.cpp:16427
Definition: old_hillsbrad.cpp:111
Definition: ScriptedEscortAI.h:52
Definition: old_hillsbrad.cpp:162
Map * GetMap() const
Definition: Object.h:543
Definition: old_hillsbrad.cpp:157
Definition: old_hillsbrad.cpp:105
Definition: old_hillsbrad.cpp:145
Definition: old_hillsbrad.cpp:124
Player * GetPlayerForEscort()
Definition: ScriptedEscortAI.h:109
InstanceScript * instance
Definition: old_hillsbrad.cpp:290
Definition: old_hillsbrad.h:30
Definition: inflate.h:49
Definition: old_hillsbrad.cpp:110
Definition: Creature.h:467
Definition: old_hillsbrad.h:34
void SetFlag(uint16 index, uint32 newFlag)
Definition: Object.cpp:1199
iterator begin()
Definition: MapRefManager.h:37
Definition: old_hillsbrad.cpp:152
Definition: old_hillsbrad.cpp:153
Creature *const me
Definition: CreatureAI.h:71
Definition: old_hillsbrad.cpp:149
#define ENSURE_AI(a, b)
Definition: ScriptedCreature.h:29
virtual ObjectGuid GetGuidData(uint32 type) const override
Definition: InstanceScript.cpp:93
Taretha
Definition: old_hillsbrad.cpp:552
Definition: old_hillsbrad.cpp:112
Definition: old_hillsbrad.cpp:106
bool HadMount
Definition: old_hillsbrad.cpp:293
Definition: old_hillsbrad.cpp:109
Definition: old_hillsbrad.cpp:136
Definition: Object.h:56
Definition: old_hillsbrad.cpp:154
virtual void SetData(uint32, uint32)
Definition: ZoneScript.h:52
void DoUnmount()
Definition: old_hillsbrad.cpp:484
CreatureAI * AI() const
Definition: Creature.h:525
void SetVisible(bool x)
Definition: Unit.cpp:10368
void DoMount()
Definition: old_hillsbrad.cpp:479
Map * instance
Definition: InstanceScript.h:148
Definition: LinkedList.h:141
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42
Definition: old_hillsbrad.cpp:131
Definition: old_hillsbrad.cpp:146
Definition: old_hillsbrad.cpp:158
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
Definition: ObjectAccessor.cpp:174
void SetRun(bool on=true)
Definition: ScriptedEscortAI.cpp:417
Definition: old_hillsbrad.cpp:133
PlayerList const & GetPlayers() const
Definition: Map.h:433
Definition: old_hillsbrad.cpp:144
void SetDisplayId(uint32 modelId) override
Definition: Creature.cpp:2664
Definition: MapRefManager.h:26
void SetEscortPaused(bool on)
Definition: ScriptedEscortAI.cpp:507
Creature * GetCreature(ObjectGuid const &guid)
Definition: Map.cpp:3535
Definition: old_hillsbrad.cpp:113
bool SetWalk(bool enable)
Definition: Unit.cpp:15800
void HandleEmoteCommand(uint32 anim_id)
Definition: Unit.cpp:1444
Definition: UpdateFields.h:135
Definition: old_hillsbrad.cpp:140
Definition: old_hillsbrad.cpp:148
Definition: old_hillsbrad.cpp:150
Definition: old_hillsbrad.cpp:143
Definition: old_hillsbrad.h:29
iterator end()
Definition: MapRefManager.h:38
TempSummon * SummonCreature(uint32 id, Position const &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0) const
Definition: Object.cpp:2346
Definition: old_hillsbrad.cpp:156
Definition: Object.h:54

+ Here is the call graph for this function:

Member Data Documentation

bool npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::HadMount
InstanceScript* npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::instance
bool npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI::LowHp

The documentation for this struct was generated from the following file: