201 dest.
Relocate({ -1173.4531f, -5266.401f, 0.85905945f, 0.0f });
510 { -1158.99f, -5421.14f, 13.218976f, 0.2094395f },
511 { -1137.0f, -5528.23f, 11.979752f, 3.1764990f },
512 { -1145.95f, -5543.13f, 12.48863f, 1.7278759f },
513 { -1146.67f, -5430.05f, 13.596256f, 1.4835298f },
514 { -1152.22f, -5407.6f, 13.263395f, 4.904375f },
515 { -1136.46f, -5525.13f, 11.99673f, 3.3161256f },
516 { -1158.81f, -5533.08f, 11.939185f, 0.3141593f },
517 { -1149.92f, -5407.46f, 13.235063f, 4.956735f },
518 { -1151.54f, -5429.86f, 13.29182f, 1.256637f }
521template<u
int8 PitPos, u
int32 QuestID>
562 switch (gossipListId)
619template<u
int32 TrainerEntry>
644template<u
int32 TrainerId>
760 if (!garrosh || !voljin || !bunny || !brazier)
1014 if (!thrall || !bunny || !brazier)
First const & RAND(First const &first, Second const &second, Rest const &... rest)
@ QUEST_STATUS_INCOMPLETE
uint32 urand(uint32 min, uint32 max)
#define RegisterCreatureAI(ai_name)
#define RegisterSpellScript(spell_script)
void AddGossipItemFor(Player *player, GossipOptionNpc optionNpc, std::string text, uint32 sender, uint32 action)
void SendGossipMenuFor(Player *player, uint32 npcTextID, ObjectGuid const &guid)
void InitGossipMenuFor(Player *player, uint32 menuId)
void CloseGossipMenuFor(Player *player)
@ TARGET_DEST_NEARBY_ENTRY
@ EMOTE_ONESHOT_WORK_CHOPWOOD
@ EMOTE_ONESHOT_USE_STANDING
@ SPELL_EFFECT_APPLY_AURA
@ AURA_EFFECT_HANDLE_REAL
@ TRIGGERED_IGNORE_CAST_IN_PROGRESS
Will not check if a current cast is in progress.
@ TRIGGERED_DONT_REPORT_CAST_ERROR
Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.
#define SpellEffectFn(F, I, N)
#define SpellDestinationTargetSelectFn(F, I, N)
#define AuraEffectRemoveFn(F, I, N, M)
HookList< EffectApplyHandler > AfterEffectRemove
ObjectGuid const & GetGUID() const
void SetImmuneToPC(bool apply) override
void SetReactState(ReactStates st)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
bool HasStringId(std::string_view id) const
void SetGossipMenuId(uint32 gossipMenuId)
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
void CancelEvent(uint32 eventId)
void RescheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={}, Optional< float > speed={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default, Optional< float > closeEnoughDistance={}, Optional< MovementFadeObject > fadeObject={}, Scripting::v2::ActionResultSetter< MovementStopReason > &&scriptResult={})
void MovePath(uint32 pathId, bool repeatable, Optional< Milliseconds > duration={}, Optional< float > speed={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default, Optional< std::pair< Milliseconds, Milliseconds > > waitTimeRangeAtPathEnd={}, Optional< float > wanderDistanceAtPathEnds={}, Optional< bool > followPathBackwardsFromEndToStart={}, Optional< bool > exactSplinePath={}, bool generatePath=true, Optional< MovementFadeObject > fadeObject={}, Scripting::v2::ActionResultSetter< MovementStopReason > &&scriptResult={})
void KilledMonsterCredit(uint32 entry, ObjectGuid guid=ObjectGuid::Empty)
QuestStatus GetQuestStatus(uint32 quest_id) const
uint32 GetQuestId() const
bool OnTrigger(Player *player, AreaTriggerEntry const *) override
bool OnExit(Player *player, AreaTriggerEntry const *) override
at_hellscreams_fist_gunship()
CreatureAI * GetAI(Creature *creature) const override
quest_proving_pit(char const *scriptName)
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
quest_the_basics_hitting_things(char const *scriptName)
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
void SetDest(SpellDestination &dest)
void HandleHitTarget(SpellEffIndex) const
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleAfterEffectRemove(AuraEffect const *, AuraEffectHandleModes) const
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
HookList< DestinationTargetSelectHandler > OnDestinationTargetSelect
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
SpellCastResult DoCastSelf(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCast(uint32 spellId)
void SetHealth(uint64 val)
void RemoveAura(AuraApplicationMap::iterator &i, AuraRemoveMode mode=AURA_REMOVE_BY_DEFAULT)
void CancelTravelShapeshiftForm(AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT, bool force=false)
MotionMaster * GetMotionMaster()
void CancelMountAura(bool force=false)
bool SetWalk(bool enable)
void SetFacingTo(float const ori, bool force=true)
void HandleEmoteCommand(Emote emoteId, Player *target=nullptr, Trinity::IteratorPair< int32 const * > spellVisualKitIds={}, int32 sequenceVariation=0)
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
GameObject * FindNearestGameObject(uint32 entry, float range, bool spawnedOnly=true) const
Creature * FindNearestCreatureWithOptions(float range, FindCreatureOptions const &options) const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
GameObject * FindNearestGameObjectWithOptions(float range, FindGameObjectOptions const &options) const
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
TC_GAME_API GameObject * GetGameObject(WorldObject const &u, ObjectGuid const &guid)
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
static constexpr uint32 TeleportPlayerToCrashSite
static constexpr uint32 TeleportTimer
static constexpr uint32 PhasePlayer
Position const PrisonerPositionTwo
@ QUEST_PROVING_PIT_HUNTER
@ QUEST_PROVING_PIT_SHAMAN
@ SPELL_UNLEARN_ARCANE_MOMENTUM
@ QUEST_PROVING_PIT_PRIEST
@ QUEST_PROVING_PIT_DRUID
@ GOSSIP_OPTION_TRAIN_MOMENTUM
@ QUEST_PROVING_PIT_ROGUE
@ SPELL_LEARN_ARCANE_MOMENTUM
@ GOSSIP_OPTION_UNTRAIN_MOMENTUM
@ GOSSIP_MENU_ARCANE_MOMENTUN
@ QUEST_PROVING_PIT_WARLOCK
@ QUEST_PROVING_PIT_WARRIOR
@ SAY_THRALL_VISION_SCRIPT_TEXT_4
@ SAY_VOLJIN_SCRIPT_TEXT_11
@ EVENT_VOLJIN_VISION_SCRIPT_18
@ EVENT_VOLJIN_VISION_SCRIPT_3
@ QUEST_MORE_THAN_EXPECTED_WARLOCK
@ EVENT_VOLJIN_VISION_SCRIPT_5
@ SAY_VOLJIN_SCRIPT_TEXT_12
@ SAY_THRALL_VISION_SCRIPT_TEXT_6
@ SAY_THRALL_VISION_SCRIPT_TEXT_3
@ SAY_THRALL_VISION_SCRIPT_TEXT_5
@ SAY_VOLJIN_SCRIPT_TEXT_2
@ SPELL_VOLJINS_VISION_SMOKE
@ SAY_GORROSH_VISION_SCRIPT_TEXT_0
@ SAY_VOLJIN_SCRIPT_TEXT_3
@ EVENT_VOLJIN_VISION_SCRIPT_13
@ SAY_VOLJIN_SCRIPT_TEXT_6
@ SPELL_GENERIC_QUEST_INVISIBILITY_1
@ GOSSIP_MENU_VISION_IN_PROGRESS
@ SAY_GORROSH_VISION_SCRIPT_TEXT_1
@ EVENT_VOLJIN_VISION_SCRIPT_2
@ SAY_THRALL_VISION_SCRIPT_TEXT_7
@ SAY_THRALL_VISION_SCRIPT_TEXT_0
@ EVENT_VOLJIN_VISION_SCRIPT_7
@ SPELL_GENERIC_QUEST_INVISIBILITY_8
@ EVENT_VOLJIN_VISION_SCRIPT_10
@ SAY_VOLJIN_SCRIPT_TEXT_14
@ SAY_GORROSH_VISION_SCRIPT_TEXT_4
@ SAY_VOLJIN_SCRIPT_TEXT_10
@ EVENT_VOLJIN_VISION_SCRIPT_8
@ SAY_VOLJIN_SCRIPT_TEXT_7
@ EVENT_VOLJIN_VISION_SCRIPT_12
@ SAY_GORROSH_VISION_SCRIPT_TEXT_2
@ QUEST_MORE_THAN_EXPECTED_MAGE
@ GOSSIP_MENU_THRALL_VISION
@ EVENT_VOLJIN_VISION_SCRIPT_4
@ EVENT_VOLJIN_VISION_SCRIPT_11
@ SAY_VOLJIN_SCRIPT_TEXT_8
@ SAY_VOLJIN_SCRIPT_TEXT_5
@ SAY_VOLJIN_SCRIPT_TEXT_13
@ QUEST_MORE_THAN_EXPECTED_PRIEST
@ QUEST_MORE_THAN_EXPECTED_HUNTER
@ SAY_VOLJIN_SCRIPT_TEXT_0
@ SAY_VOLJIN_VISION_SCRIPT_TEXT_2
@ SAY_VOLJIN_VISION_SCRIPT_TEXT_0
@ SAY_VOLJIN_VISION_SCRIPT_TEXT_6
@ SAY_THRALL_VISION_SCRIPT_TEXT_2
@ SAY_GORROSH_VISION_SCRIPT_TEXT_3
@ EVENT_VOLJIN_VISION_SCRIPT_19
@ SAY_VOLJIN_VISION_SCRIPT_TEXT_4
@ EVENT_VOLJIN_VISION_SCRIPT_9
@ EVENT_VOLJIN_VISION_SCRIPT_21
@ EVENT_VOLJIN_VISION_SCRIPT_15
@ QUEST_MORE_THAN_EXPECTED_WARRIOR
@ EVENT_VOLJIN_VISION_SCRIPT_1
@ GOSSIP_MENU_GARROSH_VISION
@ EVENT_VOLJIN_VISION_SCRIPT_17
@ EVENT_VOLJIN_VISION_SCRIPT_22
@ EVENT_VOLJIN_VISION_SCRIPT_20
@ QUEST_MORE_THAN_EXPECTED_SHAMAN
@ QUEST_MORE_THAN_EXPECTED_ROGUE
@ SAY_VOLJIN_VISION_SCRIPT_TEXT_5
@ EVENT_VOLJIN_VISION_SCRIPT_16
@ EVENT_VOLJIN_VISION_SCRIPT_14
@ SAY_VOLJIN_SCRIPT_TEXT_4
@ SAY_THRALL_VISION_SCRIPT_TEXT_1
@ QUEST_MORE_THAN_EXPECTED_DRUID
@ SAY_VOLJIN_SCRIPT_TEXT_1
@ SAY_VOLJIN_VISION_SCRIPT_TEXT_1
@ SAY_VOLJIN_SCRIPT_TEXT_9
@ EVENT_VOLJIN_VISION_SCRIPT_6
@ SPELL_GENERIC_QUEST_INVISIBILITY_2
@ QUEST_MORE_THAN_EXPECTED_MONK
@ SAY_VOLJIN_VISION_SCRIPT_TEXT_3
Position const EchoIslandTrainersPitPoints[9]
Position const PrisonerPositionOne
@ SPELL_ARCANE_MISSILES_TRAINER
@ SPELL_TIKI_TARGET_DEATH
@ SPELL_TIKI_TARGET_VISUAL_3
@ SPELL_TIKI_TARGET_VISUAL_2
@ SPELL_TIKI_TARGET_VISUAL_1
CaptiveSpitescaleScoutData
@ SAY_SEND_YOU_TO_YOUR_DEATH
@ EVENT_DESPAWN_OUT_OF_COMBAT
@ EVENT_UPDATE_JAILOR_GOSSIP
@ POINT_PRISONER_POSITION
uint32 const TiKiTargetMask[3]
@ GOSSIP_JAILOR_EVENT_READY
@ TEXT_GOSSIP_EVENT_IN_PROGRESS
@ GOSSIP_JAILOR_EVENT_NOT_READY
@ EVENT_WALK_BACK_TO_HOME
@ GOSSIP_EVENT_IN_PROGRESS_ID
@ ACTION_MOVE_TO_PRISONER
@ EVENT_PLAYER_ACCEPT_CHALLENGE
@ NPC_CAPTIVE_SPITESCALE_SCOUT
constexpr void GetPosition(float &x, float &y) const
constexpr float GetOrientation() const
void JustEngagedWith(Unit *) override
void JustDied(Unit *) override
void EnterEvadeMode(EvadeReason) override
void JustAppeared() override
void DoAction(int32 param) override
void UpdateAI(uint32 diff) override
npc_captive_spitescale_scout(Creature *creature)
void MovementInform(uint32 type, uint32 id) override
npc_darkspear_jailor(Creature *creature)
void DoAction(int32 param) override
bool OnGossipSelect(Player *player, uint32, uint32) override
void JustAppeared() override
void WaypointPathEnded(uint32, uint32 pathId) override
void UpdateAI(uint32 diff) override
npc_durotar_tiki_target(Creature *creature)
void JustAppeared() override
void DamageTaken(Unit *attacker, uint32 &damage, DamageEffectType, SpellInfo const *) override
void OnQuestReward(Player *, Quest const *quest, LootItemType, uint32) override
bool OnGossipSelect(Player *player, uint32 menuId, uint32 gossipListId) override
void JustAppeared() override
void OnQuestAccept(Player *, Quest const *quest) override
void UpdateAI(uint32 diff) override
Position _initialHomePosition
void MovementInform(uint32 type, uint32 id) override
npc_echo_isles_class_trainer(Creature *creature)
void SpellHit(WorldObject *caster, SpellInfo const *spell) override
void UpdateAI(uint32 diff) override
npc_lazy_peonAI(Creature *creature)
void MovementInform(uint32, uint32 id) override
npc_mithaka(Creature *creature)
bool OnGossipHello(Player *player) override
void SetData(uint32, uint32 data) override
bool OnGossipSelect(Player *player, uint32, uint32) override
void UpdateAI(uint32 diff) override
void JustAppeared() override
void OnQuestReward(Player *, Quest const *quest, LootItemType, uint32) override
npc_voljin_garrosh_vision(Creature *creature)
npc_voljin_thrall_vision(Creature *creature)
bool OnGossipSelect(Player *player, uint32, uint32) override
void OnQuestReward(Player *, Quest const *quest, LootItemType, uint32) override
void JustAppeared() override
void UpdateAI(uint32 diff) override
void Relocate(Position const &pos)