187 dest.
Relocate({ -1173.4531f, -5266.401f, 0.85905945f, 0.0f });
496 { -1158.99f, -5421.14f, 13.218976f, 0.2094395f },
497 { -1137.0f, -5528.23f, 11.979752f, 3.1764990f },
498 { -1145.95f, -5543.13f, 12.48863f, 1.7278759f },
499 { -1146.67f, -5430.05f, 13.596256f, 1.4835298f },
500 { -1152.22f, -5407.6f, 13.263395f, 4.904375f },
501 { -1136.46f, -5525.13f, 11.99673f, 3.3161256f },
502 { -1158.81f, -5533.08f, 11.939185f, 0.3141593f },
503 { -1149.92f, -5407.46f, 13.235063f, 4.956735f },
504 { -1151.54f, -5429.86f, 13.29182f, 1.256637f }
507template<u
int8 PitPos, u
int32 QuestID>
548 switch (gossipListId)
605template<u
int32 TrainerEntry>
630template<u
int32 TrainerId>
746 if (!garrosh || !voljin || !bunny || !brazier)
1000 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
#define SpellEffectFn(F, I, N)
#define SpellDestinationTargetSelectFn(F, I, N)
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
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 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={}, bool generatePath=true)
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={}, Optional< float > speed={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default, Optional< float > closeEnoughDistance={})
static ObjectGuid GetGUID(Object const *o)
static Player * ToPlayer(Object *o)
void KilledMonsterCredit(uint32 entry, ObjectGuid guid=ObjectGuid::Empty)
QuestStatus GetQuestStatus(uint32 quest_id) const
uint32 GetQuestId() const
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)
MotionMaster * GetMotionMaster()
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)
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
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 HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
TC_GAME_API GameObject * GetGameObject(WorldObject const &u, ObjectGuid const &guid)
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
constexpr void GetPosition(float &x, float &y) const
constexpr float GetOrientation() const
void Relocate(Position const &pos)
void JustEngagedWith(Unit *) override
void EnterEvadeMode(EvadeReason) override
void JustDied(Unit *) override
void DoAction(int32 param) override
void JustAppeared() override
void UpdateAI(uint32 diff) override
void MovementInform(uint32 type, uint32 id) override
npc_captive_spitescale_scout(Creature *creature)
void DoAction(int32 param) override
void UpdateAI(uint32 diff) override
void JustAppeared() override
void WaypointPathEnded(uint32, uint32 pathId) override
npc_darkspear_jailor(Creature *creature)
bool OnGossipSelect(Player *player, uint32, uint32) override
void JustAppeared() override
npc_durotar_tiki_target(Creature *creature)
void DamageTaken(Unit *attacker, uint32 &damage, DamageEffectType, SpellInfo const *) override
npc_echo_isles_class_trainer(Creature *creature)
void OnQuestReward(Player *, Quest const *quest, LootItemType, uint32) override
bool OnGossipSelect(Player *player, uint32 menuId, uint32 gossipListId) override
Position _initialHomePosition
void JustAppeared() override
void OnQuestAccept(Player *, Quest const *quest) override
void UpdateAI(uint32 diff) override
void MovementInform(uint32 type, uint32 id) override
npc_lazy_peonAI(Creature *creature)
void MovementInform(uint32, uint32 id) override
void SpellHit(WorldObject *caster, SpellInfo const *spell) override
void UpdateAI(uint32 diff) override
npc_mithaka(Creature *creature)
bool OnGossipHello(Player *player) override
void SetData(uint32, uint32 data) override
void OnQuestReward(Player *, Quest const *quest, LootItemType, uint32) override
void UpdateAI(uint32 diff) override
npc_voljin_garrosh_vision(Creature *creature)
bool OnGossipSelect(Player *player, uint32, uint32) override
void JustAppeared() override
bool OnGossipSelect(Player *player, uint32, uint32) override
npc_voljin_thrall_vision(Creature *creature)
void JustAppeared() override
void OnQuestReward(Player *, Quest const *quest, LootItemType, uint32) override
void UpdateAI(uint32 diff) override
Position const PrisonerPositionOne
@ TEXT_GOSSIP_EVENT_IN_PROGRESS
@ EVENT_PLAYER_ACCEPT_CHALLENGE
@ NPC_CAPTIVE_SPITESCALE_SCOUT
@ EVENT_WALK_BACK_TO_HOME
@ GOSSIP_EVENT_IN_PROGRESS_ID
@ GOSSIP_JAILOR_EVENT_NOT_READY
@ GOSSIP_JAILOR_EVENT_READY
@ ACTION_MOVE_TO_PRISONER
@ SAY_VOLJIN_SCRIPT_TEXT_13
@ EVENT_VOLJIN_VISION_SCRIPT_1
@ SAY_GORROSH_VISION_SCRIPT_TEXT_0
@ SAY_VOLJIN_SCRIPT_TEXT_5
@ EVENT_VOLJIN_VISION_SCRIPT_5
@ GOSSIP_MENU_VISION_IN_PROGRESS
@ SAY_VOLJIN_VISION_SCRIPT_TEXT_6
@ SAY_THRALL_VISION_SCRIPT_TEXT_1
@ SPELL_GENERIC_QUEST_INVISIBILITY_1
@ EVENT_VOLJIN_VISION_SCRIPT_7
@ EVENT_VOLJIN_VISION_SCRIPT_18
@ SPELL_VOLJINS_VISION_SMOKE
@ EVENT_VOLJIN_VISION_SCRIPT_15
@ SAY_THRALL_VISION_SCRIPT_TEXT_7
@ SPELL_GENERIC_QUEST_INVISIBILITY_8
@ SAY_VOLJIN_SCRIPT_TEXT_7
@ SAY_GORROSH_VISION_SCRIPT_TEXT_2
@ EVENT_VOLJIN_VISION_SCRIPT_19
@ GOSSIP_MENU_GARROSH_VISION
@ EVENT_VOLJIN_VISION_SCRIPT_14
@ SAY_VOLJIN_VISION_SCRIPT_TEXT_0
@ SAY_VOLJIN_VISION_SCRIPT_TEXT_5
@ SAY_GORROSH_VISION_SCRIPT_TEXT_4
@ QUEST_MORE_THAN_EXPECTED_ROGUE
@ SAY_VOLJIN_VISION_SCRIPT_TEXT_3
@ EVENT_VOLJIN_VISION_SCRIPT_17
@ SAY_GORROSH_VISION_SCRIPT_TEXT_3
@ SAY_VOLJIN_VISION_SCRIPT_TEXT_4
@ SAY_VOLJIN_SCRIPT_TEXT_8
@ EVENT_VOLJIN_VISION_SCRIPT_9
@ SAY_GORROSH_VISION_SCRIPT_TEXT_1
@ SAY_VOLJIN_SCRIPT_TEXT_2
@ SAY_VOLJIN_SCRIPT_TEXT_9
@ QUEST_MORE_THAN_EXPECTED_WARRIOR
@ QUEST_MORE_THAN_EXPECTED_HUNTER
@ EVENT_VOLJIN_VISION_SCRIPT_16
@ QUEST_MORE_THAN_EXPECTED_WARLOCK
@ EVENT_VOLJIN_VISION_SCRIPT_3
@ SAY_VOLJIN_SCRIPT_TEXT_0
@ EVENT_VOLJIN_VISION_SCRIPT_13
@ SAY_VOLJIN_SCRIPT_TEXT_12
@ SAY_THRALL_VISION_SCRIPT_TEXT_0
@ QUEST_MORE_THAN_EXPECTED_PRIEST
@ QUEST_MORE_THAN_EXPECTED_DRUID
@ GOSSIP_MENU_THRALL_VISION
@ SAY_VOLJIN_SCRIPT_TEXT_1
@ EVENT_VOLJIN_VISION_SCRIPT_2
@ SAY_VOLJIN_SCRIPT_TEXT_3
@ QUEST_MORE_THAN_EXPECTED_MONK
@ EVENT_VOLJIN_VISION_SCRIPT_4
@ SAY_VOLJIN_VISION_SCRIPT_TEXT_2
@ SAY_VOLJIN_SCRIPT_TEXT_6
@ QUEST_MORE_THAN_EXPECTED_MAGE
@ SAY_THRALL_VISION_SCRIPT_TEXT_2
@ EVENT_VOLJIN_VISION_SCRIPT_21
@ SAY_THRALL_VISION_SCRIPT_TEXT_4
@ SAY_VOLJIN_SCRIPT_TEXT_4
@ SAY_VOLJIN_SCRIPT_TEXT_14
@ SAY_THRALL_VISION_SCRIPT_TEXT_3
@ SAY_THRALL_VISION_SCRIPT_TEXT_5
@ EVENT_VOLJIN_VISION_SCRIPT_11
@ EVENT_VOLJIN_VISION_SCRIPT_20
@ EVENT_VOLJIN_VISION_SCRIPT_22
@ QUEST_MORE_THAN_EXPECTED_SHAMAN
@ SAY_THRALL_VISION_SCRIPT_TEXT_6
@ SAY_VOLJIN_VISION_SCRIPT_TEXT_1
@ SAY_VOLJIN_SCRIPT_TEXT_11
@ SPELL_GENERIC_QUEST_INVISIBILITY_2
@ EVENT_VOLJIN_VISION_SCRIPT_10
@ SAY_VOLJIN_SCRIPT_TEXT_10
@ EVENT_VOLJIN_VISION_SCRIPT_8
@ EVENT_VOLJIN_VISION_SCRIPT_12
@ EVENT_VOLJIN_VISION_SCRIPT_6
@ SPELL_TIKI_TARGET_VISUAL_3
@ SPELL_TIKI_TARGET_DEATH
@ SPELL_TIKI_TARGET_VISUAL_2
@ SPELL_ARCANE_MISSILES_TRAINER
@ SPELL_TIKI_TARGET_VISUAL_1
uint32 const TiKiTargetMask[3]
Position const EchoIslandTrainersPitPoints[9]
@ QUEST_PROVING_PIT_WARRIOR
@ SPELL_UNLEARN_ARCANE_MOMENTUM
@ GOSSIP_OPTION_UNTRAIN_MOMENTUM
@ SPELL_LEARN_ARCANE_MOMENTUM
@ GOSSIP_MENU_ARCANE_MOMENTUN
@ QUEST_PROVING_PIT_ROGUE
@ QUEST_PROVING_PIT_SHAMAN
@ QUEST_PROVING_PIT_DRUID
@ QUEST_PROVING_PIT_PRIEST
@ QUEST_PROVING_PIT_HUNTER
@ GOSSIP_OPTION_TRAIN_MOMENTUM
@ QUEST_PROVING_PIT_WARLOCK
Position const PrisonerPositionTwo
CaptiveSpitescaleScoutData
@ EVENT_DESPAWN_OUT_OF_COMBAT
@ EVENT_UPDATE_JAILOR_GOSSIP
@ POINT_PRISONER_POSITION
@ SAY_SEND_YOU_TO_YOUR_DEATH