153 conversation->
Start();
161template<u
int32 QuestId, u
int32 ObjectiveId, u
int32 SpellId>
172 player->
CastSpell(
nullptr, SpellId,
false);
200 conversation->
Start();
327 conversation->
Start();
362 conversation->
Start();
449 if (!cyrusObject || !gennObject || !greyguardOneObject || !greyguardTwoObject)
456 if (!cyrusClone || !gennClone || !greyguardOneClone || !greyguardTwoClone)
470 conversation->
Start();
493 if (!privateObjectOwner)
497 gennClone->DespawnOrUnsummon();
569 conversation->
Start();
614 if (!privateObjectOwner)
681 if (!magusStormwind || !magusExodar || !magusIronforge)
687 if (!magusStormwindClone || !magusExodarClone || !magusIronforgeClone)
T GetEntry(std::unordered_map< uint32, T > const &map, CriteriaTreeEntry const *tree)
@ TEMPSUMMON_MANUAL_DESPAWN
@ QUEST_STATUS_INCOMPLETE
#define RegisterCreatureAI(ai_name)
#define RegisterAreaTriggerAI(ai_name)
#define RegisterSpellScript(spell_script)
Creature * GetClosestCreatureWithOptions(WorldObject *source, float maxSearchRange, FindCreatureOptions const &options)
void CloseGossipMenuFor(Player *player)
#define SpellEffectFn(F, I, N)
NPCFlags
Non Player Character flags.
@ UNIT_NPC_FLAG_QUESTGIVER
@ CURRENT_CHANNELED_SPELL
Milliseconds GetLineEndTime(LocaleConstant locale, int32 lineId) const
void AddActor(int32 actorId, uint32 actorIdx, ObjectGuid const &actorGuid)
LocaleConstant GetPrivateObjectOwnerLocale() const
static Conversation * CreateConversation(uint32 conversationEntry, Unit *creator, Position const &pos, ObjectGuid privateObjectOwner, SpellInfo const *spellInfo=nullptr, bool autoStart=true)
Milliseconds GetLastLineEndTime(LocaleConstant locale) const
Creature * GetActorCreature(uint32 actorIdx) const
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
void ScheduleEvent(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={})
void MoveFollow(Unit *target, float dist, ChaseAngle angle, Optional< Milliseconds > duration={}, MovementSlot slot=MOTION_SLOT_ACTIVE)
static ObjectGuid GetGUID(Object const *o)
static Player * ToPlayer(Object *o)
static bool OnConditionChange(WorldObject *object, bool updateVisibility=true)
void KilledMonsterCredit(uint32 entry, ObjectGuid guid=ObjectGuid::Empty)
int32 GetQuestObjectiveData(uint32 questId, uint32 objectiveId) const
QuestStatus GetQuestStatus(uint32 quest_id) const
uint32 GetQuestId() const
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
TaskContext & Schedule(std::chrono::duration< Rep, Period > time, TaskScheduler::task_handler_t task)
TaskScheduler & Schedule(std::chrono::duration< Rep, Period > time, task_handler_t task)
TaskScheduler & Update(success_t const &callback=nullptr)
Unit * GetSummonerUnit() const
SpellCastResult DoCastAOE(uint32 spellId, CastSpellExtraArgs const &args={})
MotionMaster * GetMotionMaster()
void SetFacingToObject(WorldObject const *object, bool force=true)
void RemoveNpcFlag(NPCFlags flags)
TempSummon * ToTempSummon()
bool SetWalk(bool enable)
void NearTeleportTo(Position const &pos, bool casting=false)
void SetFacingTo(float const ori, bool force=true)
void InterruptSpell(CurrentSpellTypes spellType, bool withDelayed=true, bool withInstant=true)
TempSummon * SummonPersonalClone(Position const &pos, TempSummonType despawnType=TEMPSUMMON_MANUAL_DESPAWN, Milliseconds despawnTime=0s, uint32 vehId=0, uint32 spellId=0, Player *privateObjectOwner=nullptr)
Creature * FindNearestCreatureWithOptions(float range, FindCreatureOptions const &options) const
ObjectGuid GetPrivateObjectOwner() const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
void OnConversationCreate(Conversation *conversation, Unit *creator) override
conversation_boralus_accept_old_knight()
conversation_boralus_cyrus_meets_genn()
ObjectGuid _gennCloneGUID
void OnConversationCreate(Conversation *conversation, Unit *creator) override
void OnConversationStart(Conversation *conversation) override
OldKnightsConversationData
@ EVENT_OLD_KNIGHTS_CLONE_DESPAWN
@ CONVO_LINE_CYRUS_AND_GENN_DESPAWN
void OnConversationUpdate(Conversation *conversation, uint32 diff) override
void OnConversationCreate(Conversation *conversation, Unit *creator) override
conversation_boralus_enter_harbormaster_office()
conversation_boralus_hub_tour_00()
void OnConversationCreate(Conversation *conversation, Unit *creator) override
conversation_boralus_hub_tour_counting_house()
Position const & GetGuardMovePosition()
Position const & GetGuardMovePosition()
conversation_boralus_hub_tour_ferry()
Position const & GetGuardMovePosition()
conversation_boralus_hub_tour_flight_master()
conversation_boralus_hub_tour_harbor_inn()
Position const & GetGuardMovePosition()
void OnConversationCreate(Conversation *conversation, Unit *creator) override
void OnConversationUpdate(Conversation *conversation, uint32 diff) override
virtual uint32 GetKillCreditId()=0
conversation_boralus_hub_tour(char const *scriptName)
void OnConversationStart(Conversation *conversation) override
virtual Position const & GetGuardMovePosition()=0
void OnConversationCreate(Conversation *conversation, Unit *creator) override
void OnConversationUpdate(Conversation *conversation, uint32 diff) override
void OnConversationStart(Conversation *conversation) override
conversation_cyrus_crestfall_shaking_hands()
ShakingHandsConversationData
@ CONVO_LINE_CYRUS_CHANGE_FACING_GENN
@ POINT_CYRUS_MOVE_BACK_TO_GENN
@ CONVO_LINE_CYRUS_START_WALK_TO_FIRE
@ EVENT_CYRUS_MOVE_BACK_TO_GENN
@ CONVO_LINE_CYRUS_MOVE_BACK_TO_GENN
@ EVENT_CYRUS_DESPAWN_CLONE_OFFICE
@ EVENT_CYRUS_CHANGE_FACING_GENN
@ EVENT_CYRUS_START_WALK_TO_FIRE
@ CONVO_LINE_CYRUS_DESPAWN_CLONE_OFFICE
@ POINT_CYRUS_MOVE_TO_OFFICE_FIRE
void OnSceneCancel(Player *player, uint32, SceneTemplate const *) override
scene_boralus_client_scene_cyrus_and_genn()
void OnSceneComplete(Player *player, uint32, SceneTemplate const *) override
void HandleHitTarget(SpellEffIndex)
TC_GAME_API Unit * GetUnit(WorldObject const &, ObjectGuid const &guid)
TC_GAME_API Player * GetPlayer(Map const *, ObjectGuid const &guid)
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
constexpr void GetPosition(float &x, float &y) const
at_boralus_get_your_bearings(AreaTrigger *areatrigger)
void OnUnitEnter(Unit *unit) override
at_boralus_old_knight_enter_harbormasters_office(AreaTrigger *areatrigger)
void OnUnitEnter(Unit *unit) override
void OnUnitEnter(Unit *unit) override
at_boralus_old_knight_genn_arrives_boralus(AreaTrigger *areatrigger)
void OnUnitEnter(Unit *unit) override
at_boralus_sanctum_of_the_sages_conversation(AreaTrigger *areatrigger)
npc_7th_legion_magus_sanctum_of_the_sages(Creature *creature)
void UpdateAI(uint32 diff) override
void WaypointReached(uint32, uint32 pathId) override
bool OnGossipSelect(Player *player, uint32 menuId, uint32 gossipListId) override
npc_cyrus_crestfall_old_knight(Creature *creature)
bool OnGossipSelect(Player *player, uint32 menuId, uint32 gossipListId) override
void IsSummonedBy(WorldObject *summoner) override
npc_taelia_get_your_bearings(Creature *creature)
void WaypointPathEnded(uint32, uint32 pathId) override
void OnQuestAccept(Player *player, Quest const *quest) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void MovementInform(uint32 type, uint32 pointId) override
Position const TaeliaTeleportOfficePos
void AddSC_zone_boralus()
Position const GennOfficePos
Position const CyrusOfficePos
Position const TaeliaFerryPos
Position const TaeliaBankPos
Position const CyrusMoveToOfficeFirePos
Position const TaeliaFlightMasterPos
Position const CyrusStaticOfficePos
@ SPELL_ENTER_HARBOR_MASTERS_OFFICE
@ GOSSIP_OPTION_CYRUS_SHAKING_HANDS
@ PATH_GREYGUARD_ONE_AFTER_SCENE_OFFICE
@ PATH_KULTIRAN_GUARD_ENTER_OFFICE
@ OBJECTIVE_ENTER_HARBORMASTERS_OFFICE
@ PATH_GENN_GREYMANE_AFTER_SCENE_OFFICE
@ SPELL_FIND_CYRUS_OBJECTIVE_COMPLETE
@ SPELL_CLIENT_SCENE_CYRUS_AND_GENN
@ PATH_CYRUS_CRESTFAL_AFTER_SCENE_OFFICE
@ PATH_KULTIRAN_GUARD_AFTER_SCENE_OFFICE
@ CONVO_ACTOR_CYRUS_CRESTFAL
@ CONVO_CYRUS_MEETS_GENN_IN_OFFICE
@ KILLCREDIT_HEAR_CYRUS_TALE_OLD_KNIGHT
@ GOSSIP_MENU_CYRUS_SHAKING_HANDS
@ CONVO_ACCEPT_OLD_KNIGHT_QUEST
@ CONVO_CYRUS_SHAKING_HAND
@ KILLCREDIT_SPEAK_WITH_CYRUS_OLD_KNIGHT
@ PATH_GREYGUARD_TWO_AFTER_SCENE_OFFICE
Position const GreyguardTwoOfficePos
Position const TaeliaInnPos
@ GOSSIP_OPTION_OPEN_CITY_PORTALS
@ PATH_MAGUS_OPEN_PORTAL_IRONFORGE
@ PATH_MAGUS_OPEN_PORTAL_STORMWIND
@ KILLCREDIT_OPEN_CAPITAL_PORTALS
@ QUEST_SANCTUM_OF_THE_SAGES
@ NPC_7TH_LEGION_MAGUS_WITH_GOSSIP
@ PATH_MAGUS_FINISH_PORTAL_IRONFORGE
@ PATH_MAGUS_FINISH_PORTAL_EXODAR
@ PATH_MAGUS_OPEN_PORTAL_EXODAR
@ PATH_MAGUS_FINISH_PORTAL_STORMWIND
@ SPELL_LEGION_MAGUS_ARCANE_CHANNEL
@ CONVO_SANCTUM_OF_THE_SAGES
@ GOSSIP_MENU_OPEN_CITY_PORTALS
@ OBJECTIVE_FERRY_DOCK_VISITED
@ OBJECTIVE_FLIGHT_MASTER_VISITED
@ SPELL_HUB_TOUR_CONVO_BANK
@ CONVO_ACTOR_KULTIRAN_GUARD
@ KILL_CREDIT_FLIGHT_MASTER_VISITED
@ QUEST_GET_YOUR_BEARINGS
@ OBJECTIVE_COUNTING_HOUSE_VISITED
@ SPELL_HUB_TOUR_CONVO_FERRY
@ SPELL_HUB_TOUR_CONVO_FLIGHT_MASTER
@ KILL_CREDIT_COUNTING_HOUSE_VISITED
@ SPELL_HUB_TOUR_CONVO_INN
@ OBJECTIVE_SNUG_HARBOR_INN_VISITED
@ KILL_CREDIT_SNUG_HARBOR_INN_VISITED
@ KILL_CREDIT_FERRY_DOCK_VISITED
@ NPC_SUMMONED_KULTIRAN_GUARD
@ POINT_KULTIRAN_GUARD_FLIGHT_MASTER
Position const GreyguardOneOfficePos