70namespace Conversations
143 Creature* aratorClone = ObjectAccessor::GetCreature(*me, aratorGuid);
147 me->SetMountDisplayId(Mounts::VereesaWindrunnerMount);
148 aratorClone->SetMountDisplayId(Mounts::AratorMount);
149 task.Schedule(2s, [this, aratorGuid](TaskContext const& )
151 Creature* aratorClone = ObjectAccessor::GetCreature(*me, aratorGuid);
155 me->GetMotionMaster()->MovePath(Paths::VereesaOztanIslePath, false);
156 aratorClone->GetMotionMaster()->MovePath(Paths::AratorOztanIslePath, false);
171 me->DespawnOrUnsummon();
177 _scheduler.Update(diff);
217 conversation->AddActor(Conversations::Actors::VereesaActorOztanIsle, 0, vereesaClone->
GetGUID());
218 conversation->AddActor(Conversations::Actors::AratorActorOztanIsle, 1, aratorClone->
GetGUID());
219 conversation->Start();
224 LocaleConstant privateOwnerLocale = conversation->GetPrivateObjectOwnerLocale();
226 conversation->m_Events.AddEvent([conversation = conversation]()
232 if (
Creature* vereesaClone = conversation->GetActorCreature(0))
233 vereesaClone->SetFacingToObject(player);
235 }, conversation->GetLineEndTime(privateOwnerLocale, Conversations::Lines::VereesaOztanIsleSetFacing));
237 conversation->m_Events.AddEvent([conversation = conversation]()
239 if (
Creature* vereesaClone = conversation->GetActorCreature(0))
240 vereesaClone->SetMountDisplayId(Mounts::VereesaWindrunnerMount);
242 if (
Creature* aratorClone = conversation->GetActorCreature(1))
243 aratorClone->SetMountDisplayId(Mounts::AratorMount);
245 }, conversation->GetLastLineEndTime(privateOwnerLocale));
247 conversation->m_Events.AddEvent([conversation = conversation]()
253 if (
Creature* vereesaClone = conversation->GetActorCreature(0))
254 vereesaClone->GetMotionMaster()->MovePath(Paths::VereesaOztanIslePath,
false);
256 if (
Creature* aratorClone = conversation->GetActorCreature(1))
257 aratorClone->GetMotionMaster()->MovePath(Paths::AratorOztanIslePath,
false);
259 }, conversation->GetLastLineEndTime(privateOwnerLocale) + 2s);
272 if (!summonedAvenger)
275 conversation->AddActor(Conversations::Actors::SummonedSilverHandAvenger, 1, summonedAvenger->
GetGUID());
276 conversation->Start();
@ TEMPSUMMON_MANUAL_DESPAWN
#define RegisterConversationAI(ai_name)
Creature * GetClosestCreatureWithOptions(WorldObject *source, float maxSearchRange, FindCreatureOptions const &options)
void CloseGossipMenuFor(Player *player)
NPCFlags
Non Player Character flags.
@ UNIT_NPC_FLAG_QUESTGIVER
void AddSC_campaign_visions_of_a_shadowed_sun()
ObjectGuid const & GetGUID() const
ConversationAI(Conversation *c, uint32 scriptId={}) noexcept
static Conversation * CreateConversation(uint32 conversationEntry, Unit *creator, Position const &pos, ObjectGuid privateObjectOwner, SpellInfo const *spellInfo=nullptr, bool autoStart=true)
void KilledMonsterCredit(uint32 entry, ObjectGuid guid=ObjectGuid::Empty)
void OnCreate(Unit *creator) override
void OnCreate(Unit *creator) override
TaskScheduler & Schedule(duration_t time, task_handler_t task)
virtual void DoAction(int32 param)
Player * GetDemonCreatorPlayer() const
void RemoveNpcFlag(NPCFlags flags)
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
bool IsPrivateObject() const
TC_GAME_API Player * GetPlayer(Map const *, ObjectGuid const &guid)
static constexpr uint32 ActionSkipConversation
static constexpr uint32 AratorActorOztanIsle
static constexpr uint32 VereesaActorOztanIsle
static constexpr uint32 SummonedSilverHandAvenger
static constexpr uint32 ConversationVereesasTale
static constexpr uint32 VereesaOztanIsleSetFacing
static constexpr uint32 SummonedSilverHandAvenger
static constexpr uint32 AratorOztanIsle
static constexpr uint32 VereesaWindrunnerOztanIsle
static constexpr uint32 GossipVereesaOztanIsle
static constexpr uint32 OptionListenToVereesasTale
static constexpr uint32 OptionSkipListenToVereesasTale
static constexpr uint32 VereesaWindrunnerMount
static constexpr uint32 AratorMount
static constexpr uint32 VereesaOztanIslePath
static constexpr uint32 AratorOztanIslePath
CreatureAI * VereesaWindrunnerOztanIsleAISelector(Creature *creature)
constexpr void GetPosition(float &x, float &y) const
void DoAction(int32 action) override
npc_vereesa_windrunner_oztan_isle_private(Creature *creature)
void UpdateAI(uint32 diff) override
void WaypointPathEnded(uint32, uint32 pathId) override
bool OnGossipSelect(Player *player, uint32 menuId, uint32 gossipListId) override
npc_vereesa_windrunner_oztan_isle(Creature *creature)