From d1421e2fbf266cdd95f3192ae108ed88d75445c9 Mon Sep 17 00:00:00 2001 From: dude22072 Date: Thu, 17 Feb 2022 16:31:45 -0600 Subject: [PATCH] MSQ: ABADABADABAH ABADABADABAH ABADABADABAH TITAN --- .../subquest/lanoscea_east/GaiUsb208.cpp | 149 ++ .../subquest/lanoscea_east/GaiUsb209.cpp | 128 ++ .../subquest/lanoscea_east/GaiUsb212.cpp | 160 +++ .../subquest/lanoscea_east/GaiUsb304.cpp | 149 ++ .../subquest/lanoscea_east/GaiUsb305.cpp | 126 ++ .../subquest/lanoscea_east/GaiUsb306.cpp | 140 ++ .../subquest/lanoscea_east/GaiUsb307.cpp | 253 ++++ .../subquest/lanoscea_east/GaiUsb309.cpp | 261 ++++ .../subquest/lanoscea_east/GaiUsb313.cpp | 701 +++++++++ .../subquest/lanoscea_east/GaiUsb314.cpp | 1264 +++++++++++++++++ .../subquest/lanoscea_east/GaiUsb315.cpp | 234 +++ .../subquest/lanoscea_upper/GaiUsb401.cpp | 193 +++ 12 files changed, 3758 insertions(+) create mode 100644 src/scripts/quest/subquest/lanoscea_east/GaiUsb208.cpp create mode 100644 src/scripts/quest/subquest/lanoscea_east/GaiUsb209.cpp create mode 100644 src/scripts/quest/subquest/lanoscea_east/GaiUsb212.cpp create mode 100644 src/scripts/quest/subquest/lanoscea_east/GaiUsb304.cpp create mode 100644 src/scripts/quest/subquest/lanoscea_east/GaiUsb305.cpp create mode 100644 src/scripts/quest/subquest/lanoscea_east/GaiUsb306.cpp create mode 100644 src/scripts/quest/subquest/lanoscea_east/GaiUsb307.cpp create mode 100644 src/scripts/quest/subquest/lanoscea_east/GaiUsb309.cpp create mode 100644 src/scripts/quest/subquest/lanoscea_east/GaiUsb313.cpp create mode 100644 src/scripts/quest/subquest/lanoscea_east/GaiUsb314.cpp create mode 100644 src/scripts/quest/subquest/lanoscea_east/GaiUsb315.cpp create mode 100644 src/scripts/quest/subquest/lanoscea_upper/GaiUsb401.cpp diff --git a/src/scripts/quest/subquest/lanoscea_east/GaiUsb208.cpp b/src/scripts/quest/subquest/lanoscea_east/GaiUsb208.cpp new file mode 100644 index 00000000..05fc1e74 --- /dev/null +++ b/src/scripts/quest/subquest/lanoscea_east/GaiUsb208.cpp @@ -0,0 +1,149 @@ +// This is an automatically generated C++ script template +// Content needs to be added by hand to make it function +// In order for this script to be loaded, move it to the correct folder in /scripts/ + +#include "Manager/EventMgr.h" +#include +#include +#include + +// Quest Script: GaiUsb208_00839 +// Quest Name: What Do You Mean You Forgot the Wine +// Quest ID: 66375 +// Start NPC: 1006266 +// End NPC: 1006305 + +using namespace Sapphire; + +class GaiUsb208 : public Sapphire::ScriptAPI::QuestScript +{ +private: + // Basic quest information + // Quest vars / flags used + // UI8AL + // UI8BH + + /// Countable Num: 0 Seq: 1 Event: 1 Listener: 1006272 + /// Countable Num: 0 Seq: 255 Event: 1 Listener: 1006305 + // Steps in this quest ( 0 is before accepting, + // 1 is first, 255 means ready for turning it in + enum Sequence : uint8_t + { + Seq0 = 0, + Seq1 = 1, + SeqFinish = 255, + }; + + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1006266;//Wheiskaet + static constexpr auto Actor1 = 1006272;//Dyrstweitz + static constexpr auto Actor2 = 1006305;//Shamani Lohmani + static constexpr auto Item0 = 2000653; + +public: + GaiUsb208() : Sapphire::ScriptAPI::QuestScript( 66375 ){}; + ~GaiUsb208() = default; + + ////////////////////////////////////////////////////////////////////// + // Event Handlers + void onTalk( World::Quest& quest, Entity::Player& player, uint64_t actorId ) override + { + switch( actorId ) + { + case Actor0: + { + if( quest.getSeq() == Seq0 ) + Scene00000( quest, player ); + break; + } + case Actor1: + { + if( quest.getSeq() == Seq1 ) + Scene00002( quest, player ); + break; + } + case Actor2: + { + if( quest.getSeq() == SeqFinish ) + Scene00003( quest, player ); + break; + } + } + } + + +private: + ////////////////////////////////////////////////////////////////////// + // Available Scenes in this quest, not necessarly all are used + ////////////////////////////////////////////////////////////////////// + + void Scene00000( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 0, HIDE_HOTBAR, bindSceneReturn( &GaiUsb208::Scene00000Return ) ); + } + + void Scene00000Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 )// accept quest + { + Scene00001( quest, player ); + } + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00001( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 1, HIDE_HOTBAR, bindSceneReturn( &GaiUsb208::Scene00001Return ) ); + } + + void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setSeq( Seq1 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00002( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 2, HIDE_HOTBAR, bindSceneReturn( &GaiUsb208::Scene00002Return ) ); + } + + void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + eventMgr().sendEventNotice( player, getId(), 0, 0 ); + quest.setSeq( SeqFinish ); + quest.setUI8BH( 1 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00003( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 3, HIDE_HOTBAR, bindSceneReturn( &GaiUsb208::Scene00003Return ) ); + } + + void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 ) + Scene00004( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00004( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 4, HIDE_HOTBAR, bindSceneReturn( &GaiUsb208::Scene00004Return ) ); + } + + void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + + if( result.getResult( 0 ) == 1 ) + { + player.finishQuest( getId(), result.getResult(1) ); + } + } +}; + +EXPOSE_SCRIPT( GaiUsb208 ); \ No newline at end of file diff --git a/src/scripts/quest/subquest/lanoscea_east/GaiUsb209.cpp b/src/scripts/quest/subquest/lanoscea_east/GaiUsb209.cpp new file mode 100644 index 00000000..59b6274f --- /dev/null +++ b/src/scripts/quest/subquest/lanoscea_east/GaiUsb209.cpp @@ -0,0 +1,128 @@ +// This is an automatically generated C++ script template +// Content needs to be added by hand to make it function +// In order for this script to be loaded, move it to the correct folder in /scripts/ + +#include "Manager/EventMgr.h" +#include +#include +#include + +// Quest Script: GaiUsb209_00840 +// Quest Name: An Offer You Can Refuse +// Quest ID: 66376 +// Start NPC: 1006305 +// End NPC: 1006305 + +using namespace Sapphire; + +class GaiUsb209 : public Sapphire::ScriptAPI::QuestScript +{ +private: + // Basic quest information + // Quest vars / flags used + // UI8AL + + /// Countable Num: 0 Seq: 1 Event: 1 Listener: 1006306 + /// Countable Num: 0 Seq: 255 Event: 1 Listener: 1006305 + // Steps in this quest ( 0 is before accepting, + // 1 is first, 255 means ready for turning it in + enum Sequence : uint8_t + { + Seq0 = 0, + Seq1 = 1, + SeqFinish = 255, + }; + + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1006305;//Shamani Lohmani + static constexpr auto Actor1 = 1006306;//Byrglaent + +public: + GaiUsb209() : Sapphire::ScriptAPI::QuestScript( 66376 ){}; + ~GaiUsb209() = default; + + ////////////////////////////////////////////////////////////////////// + // Event Handlers + void onTalk( World::Quest& quest, Entity::Player& player, uint64_t actorId ) override + { + switch( actorId ) + { + case Actor0: + { + if( quest.getSeq() == Seq0 ) + Scene00000( quest, player ); + else if( quest.getSeq() == SeqFinish ) + Scene00003( quest, player ); + break; + } + case Actor1: + { + if( quest.getSeq() == Seq1 ) + Scene00002( quest, player ); + break; + } + } + } + + +private: + ////////////////////////////////////////////////////////////////////// + // Available Scenes in this quest, not necessarly all are used + ////////////////////////////////////////////////////////////////////// + + void Scene00000( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 0, HIDE_HOTBAR, bindSceneReturn( &GaiUsb209::Scene00000Return ) ); + } + + void Scene00000Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 )// accept quest + { + Scene00001( quest, player ); + } + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00001( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 1, HIDE_HOTBAR, bindSceneReturn( &GaiUsb209::Scene00001Return ) ); + } + + void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setSeq( Seq1 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00002( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 2, HIDE_HOTBAR, bindSceneReturn( &GaiUsb209::Scene00002Return ) ); + } + + void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + eventMgr().sendEventNotice( player, getId(), 0, 0 ); + quest.setSeq( SeqFinish ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00003( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 3, HIDE_HOTBAR, bindSceneReturn( &GaiUsb209::Scene00003Return ) ); + } + + void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + + if( result.getResult( 0 ) == 1 ) + { + player.finishQuest( getId(), result.getResult(1) ); + } + } +}; + +EXPOSE_SCRIPT( GaiUsb209 ); \ No newline at end of file diff --git a/src/scripts/quest/subquest/lanoscea_east/GaiUsb212.cpp b/src/scripts/quest/subquest/lanoscea_east/GaiUsb212.cpp new file mode 100644 index 00000000..94de1534 --- /dev/null +++ b/src/scripts/quest/subquest/lanoscea_east/GaiUsb212.cpp @@ -0,0 +1,160 @@ +// This is an automatically generated C++ script template +// Content needs to be added by hand to make it function +// In order for this script to be loaded, move it to the correct folder in /scripts/ + +#include "Manager/EventMgr.h" +#include +#include +#include + +// Quest Script: GaiUsb212_00843 +// Quest Name: It Won't Work +// Quest ID: 66379 +// Start NPC: 1006305 +// End NPC: 1006305 + +using namespace Sapphire; + +class GaiUsb212 : public Sapphire::ScriptAPI::QuestScript +{ +private: + // Basic quest information + // Quest vars / flags used + // BitFlag8 + // UI8AL + + /// Countable Num: 0 Seq: 1 Event: 1 Listener: 1006308 + /// Countable Num: 0 Seq: 255 Event: 1 Listener: 1006309 + // Steps in this quest ( 0 is before accepting, + // 1 is first, 255 means ready for turning it in + enum Sequence : uint8_t + { + Seq0 = 0, + Seq1 = 1, + SeqFinish = 255, + }; + + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1006305;//Shamani Lohmani + static constexpr auto Actor1 = 1006308;//Durim Falurim + static constexpr auto Actor2 = 1006309;//Jungbhar + +public: + GaiUsb212() : Sapphire::ScriptAPI::QuestScript( 66379 ){}; + ~GaiUsb212() = default; + + ////////////////////////////////////////////////////////////////////// + // Event Handlers + void onTalk( World::Quest& quest, Entity::Player& player, uint64_t actorId ) override + { + switch( actorId ) + { + case Actor0: + { + if( quest.getSeq() == Seq0 ) + Scene00000( quest, player ); + else if( quest.getSeq() == SeqFinish ) + Scene00004( quest, player ); + break; + } + case Actor1: + { + if( quest.getSeq() == Seq1 ) + Scene00002( quest, player ); + break; + } + case Actor2: + { + if( quest.getSeq() == Seq1 ) + Scene00003( quest, player ); + break; + } + } + } + + +private: + void checkQuestCompletion( World::Quest& quest, Entity::Player& player ) + { + eventMgr().sendEventNotice( player, getId(), 0, 2, quest.getUI8AL(), 2 ); + if( quest.getUI8AL() >= 2 ) + { + quest.setUI8AL( 0 ); + quest.setSeq( SeqFinish ); + } + } + ////////////////////////////////////////////////////////////////////// + // Available Scenes in this quest, not necessarly all are used + ////////////////////////////////////////////////////////////////////// + + void Scene00000( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 0, HIDE_HOTBAR, bindSceneReturn( &GaiUsb212::Scene00000Return ) ); + } + + void Scene00000Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 )// accept quest + { + Scene00001( quest, player ); + } + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00001( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 1, HIDE_HOTBAR, bindSceneReturn( &GaiUsb212::Scene00001Return ) ); + } + + void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setSeq( Seq1 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00002( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 2, HIDE_HOTBAR, bindSceneReturn( &GaiUsb212::Scene00002Return ) ); + } + + void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setBitFlag8( 1, true ); + quest.setUI8AL( quest.getUI8AL() + 1 ); + checkQuestCompletion( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00003( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 3, HIDE_HOTBAR, bindSceneReturn( &GaiUsb212::Scene00003Return ) ); + } + + void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setBitFlag8( 2, true ); + quest.setUI8AL( quest.getUI8AL() + 1 ); + checkQuestCompletion( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00004( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 4, HIDE_HOTBAR, bindSceneReturn( &GaiUsb212::Scene00004Return ) ); + } + + void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + + if( result.getResult( 0 ) == 1 ) + { + player.finishQuest( getId(), result.getResult(1) ); + } + } +}; + +EXPOSE_SCRIPT( GaiUsb212 ); \ No newline at end of file diff --git a/src/scripts/quest/subquest/lanoscea_east/GaiUsb304.cpp b/src/scripts/quest/subquest/lanoscea_east/GaiUsb304.cpp new file mode 100644 index 00000000..5052c87f --- /dev/null +++ b/src/scripts/quest/subquest/lanoscea_east/GaiUsb304.cpp @@ -0,0 +1,149 @@ +// This is an automatically generated C++ script template +// Content needs to be added by hand to make it function +// In order for this script to be loaded, move it to the correct folder in /scripts/ + +#include "Manager/EventMgr.h" +#include +#include +#include + +// Quest Script: GaiUsb304_00845 +// Quest Name: Give a Man a Drink +// Quest ID: 66381 +// Start NPC: 1006305 +// End NPC: 1006312 + +using namespace Sapphire; + +class GaiUsb304 : public Sapphire::ScriptAPI::QuestScript +{ +private: + // Basic quest information + // Quest vars / flags used + // UI8AL + // UI8BH + + /// Countable Num: 0 Seq: 1 Event: 1 Listener: 1006311 + /// Countable Num: 0 Seq: 255 Event: 1 Listener: 1006312 + // Steps in this quest ( 0 is before accepting, + // 1 is first, 255 means ready for turning it in + enum Sequence : uint8_t + { + Seq0 = 0, + Seq1 = 1, + SeqFinish = 255, + }; + + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1006305;//Shamani Lohmani + static constexpr auto Actor1 = 1006311;//RHIITSKYLT + static constexpr auto Actor2 = 1006312;//DREST + static constexpr auto Item0 = 2000655; + +public: + GaiUsb304() : Sapphire::ScriptAPI::QuestScript( 66381 ){}; + ~GaiUsb304() = default; + + ////////////////////////////////////////////////////////////////////// + // Event Handlers + void onTalk( World::Quest& quest, Entity::Player& player, uint64_t actorId ) override + { + switch( actorId ) + { + case Actor0: + { + if( quest.getSeq() == Seq0 ) + Scene00000( quest, player ); + break; + } + case Actor1: + { + if( quest.getSeq() == Seq1 ) + Scene00002( quest, player ); + break; + } + case Actor2: + { + if( quest.getSeq() == SeqFinish ) + Scene00003( quest, player ); + break; + } + } + } + + +private: + ////////////////////////////////////////////////////////////////////// + // Available Scenes in this quest, not necessarly all are used + ////////////////////////////////////////////////////////////////////// + + void Scene00000( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 0, HIDE_HOTBAR, bindSceneReturn( &GaiUsb304::Scene00000Return ) ); + } + + void Scene00000Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 )// accept quest + { + Scene00001( quest, player ); + } + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00001( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 1, HIDE_HOTBAR, bindSceneReturn( &GaiUsb304::Scene00001Return ) ); + } + + void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setSeq( Seq1 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00002( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 2, HIDE_HOTBAR, bindSceneReturn( &GaiUsb304::Scene00002Return ) ); + } + + void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + eventMgr().sendEventNotice( player, getId(), 0, 0 ); + quest.setSeq( SeqFinish ); + quest.setUI8BH( 1 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00003( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 3, HIDE_HOTBAR, bindSceneReturn( &GaiUsb304::Scene00003Return ) ); + } + + void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 ) + Scene00004( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00004( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 4, HIDE_HOTBAR, bindSceneReturn( &GaiUsb304::Scene00004Return ) ); + } + + void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + + if( result.getResult( 0 ) == 1 ) + { + player.finishQuest( getId() ); + } + } +}; + +EXPOSE_SCRIPT( GaiUsb304 ); \ No newline at end of file diff --git a/src/scripts/quest/subquest/lanoscea_east/GaiUsb305.cpp b/src/scripts/quest/subquest/lanoscea_east/GaiUsb305.cpp new file mode 100644 index 00000000..5e1f1303 --- /dev/null +++ b/src/scripts/quest/subquest/lanoscea_east/GaiUsb305.cpp @@ -0,0 +1,126 @@ +// This is an automatically generated C++ script template +// Content needs to be added by hand to make it function +// In order for this script to be loaded, move it to the correct folder in /scripts/ + +#include "Manager/EventMgr.h" +#include +#include +#include + +// Quest Script: GaiUsb305_00846 +// Quest Name: That Weight +// Quest ID: 66382 +// Start NPC: 1006312 +// End NPC: 1006312 + +using namespace Sapphire; + +class GaiUsb305 : public Sapphire::ScriptAPI::QuestScript +{ +private: + // Basic quest information + // Quest vars / flags used + // UI8AL + + /// Countable Num: 0 Seq: 1 Event: 5 Listener: 136 + /// Countable Num: 0 Seq: 255 Event: 1 Listener: 1006312 + // Steps in this quest ( 0 is before accepting, + // 1 is first, 255 means ready for turning it in + enum Sequence : uint8_t + { + Seq0 = 0, + Seq1 = 1, + SeqFinish = 255, + }; + + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1006312;//Drest + static constexpr auto Enemy0 = 396;//Dung Midge Swarm (INCORRECT:136) + +public: + GaiUsb305() : Sapphire::ScriptAPI::QuestScript( 66382 ){}; + ~GaiUsb305() = default; + + ////////////////////////////////////////////////////////////////////// + // Event Handlers + void onTalk( World::Quest& quest, Entity::Player& player, uint64_t actorId ) override + { + switch( actorId ) + { + case Actor0: + { + if( quest.getSeq() == Seq0 ) + Scene00000( quest, player ); + else if( quest.getSeq() == SeqFinish ) + Scene00002( quest, player ); + break; + } + } + } + + void onBNpcKill( World::Quest& quest, uint16_t nameId, uint32_t layoutId, Entity::Player& player ) override + { + switch( nameId ) + { + case Enemy0: + { + quest.setUI8AL( quest.getUI8AL() + 1 ); + eventMgr().sendEventNotice( player, getId(), 0, 2, quest.getUI8AL(), 5 ); + if( quest.getUI8AL() >= 5 ) + { + quest.setUI8AL( 0 ); + quest.setSeq( SeqFinish ); + } + break; + } + } + } + +private: + ////////////////////////////////////////////////////////////////////// + // Available Scenes in this quest, not necessarly all are used + ////////////////////////////////////////////////////////////////////// + + void Scene00000( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 0, HIDE_HOTBAR, bindSceneReturn( &GaiUsb305::Scene00000Return ) ); + } + + void Scene00000Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 )// accept quest + { + Scene00001( quest, player ); + } + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00001( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 1, HIDE_HOTBAR, bindSceneReturn( &GaiUsb305::Scene00001Return ) ); + } + + void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setSeq( Seq1 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00002( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 2, HIDE_HOTBAR, bindSceneReturn( &GaiUsb305::Scene00002Return ) ); + } + + void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + + if( result.getResult( 0 ) == 1 ) + { + player.finishQuest( getId(), result.getResult(1) ); + } + } +}; + +EXPOSE_SCRIPT( GaiUsb305 ); \ No newline at end of file diff --git a/src/scripts/quest/subquest/lanoscea_east/GaiUsb306.cpp b/src/scripts/quest/subquest/lanoscea_east/GaiUsb306.cpp new file mode 100644 index 00000000..f3ddcfeb --- /dev/null +++ b/src/scripts/quest/subquest/lanoscea_east/GaiUsb306.cpp @@ -0,0 +1,140 @@ +// This is an automatically generated C++ script template +// Content needs to be added by hand to make it function +// In order for this script to be loaded, move it to the correct folder in /scripts/ + +#include "Manager/EventMgr.h" +#include +#include +#include + +// Quest Script: GaiUsb306_00847 +// Quest Name: Not My War +// Quest ID: 66383 +// Start NPC: 1006312 +// End NPC: 1006312 + +using namespace Sapphire; + +class GaiUsb306 : public Sapphire::ScriptAPI::QuestScript +{ +private: + // Basic quest information + // Quest vars / flags used + // UI8AL + // UI8BH + + /// Countable Num: 0 Seq: 1 Event: 9 Listener: 117 + /// Countable Num: 0 Seq: 255 Event: 1 Listener: 1006312 + // Steps in this quest ( 0 is before accepting, + // 1 is first, 255 means ready for turning it in + enum Sequence : uint8_t + { + Seq0 = 0, + Seq1 = 1, + SeqFinish = 255, + }; + + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1006312;//Drest + static constexpr auto Enemy0 = 352; //Jungle Coeurl (INCORRECT:117) + static constexpr auto Item0 = 2000656; + +public: + GaiUsb306() : Sapphire::ScriptAPI::QuestScript( 66383 ){}; + ~GaiUsb306() = default; + + ////////////////////////////////////////////////////////////////////// + // Event Handlers + void onTalk( World::Quest& quest, Entity::Player& player, uint64_t actorId ) override + { + switch( actorId ) + { + case Actor0: + { + if( quest.getSeq() == Seq0 ) + Scene00000( quest, player ); + else if( quest.getSeq() == SeqFinish ) + Scene00002( quest, player ); + break; + } + } + } + + void onBNpcKill( World::Quest& quest, uint16_t nameId, uint32_t layoutId, Entity::Player& player ) override + { + switch( nameId ) + { + case Enemy0: + { + quest.setUI8BH( quest.getUI8BH() + 1 ); + eventMgr().sendEventNotice( player, getId(), 0, 2, quest.getUI8BH(), 4 ); + + if( quest.getUI8BH() >= 4 ) + quest.setSeq( SeqFinish ); + + break; + } + } + } + +private: + ////////////////////////////////////////////////////////////////////// + // Available Scenes in this quest, not necessarly all are used + ////////////////////////////////////////////////////////////////////// + + void Scene00000( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 0, HIDE_HOTBAR, bindSceneReturn( &GaiUsb306::Scene00000Return ) ); + } + + void Scene00000Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 )// accept quest + { + Scene00001( quest, player ); + } + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00001( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 1, HIDE_HOTBAR, bindSceneReturn( &GaiUsb306::Scene00001Return ) ); + } + + void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setSeq( Seq1 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00002( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 2, HIDE_HOTBAR, bindSceneReturn( &GaiUsb306::Scene00002Return ) ); + } + + void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 ) + Scene00003( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00003( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 3, HIDE_HOTBAR, bindSceneReturn( &GaiUsb306::Scene00003Return ) ); + } + + void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + + if( result.getResult( 0 ) == 1 ) + { + player.finishQuest( getId(), result.getResult( 1 ) ); + } + } +}; + +EXPOSE_SCRIPT( GaiUsb306 ); \ No newline at end of file diff --git a/src/scripts/quest/subquest/lanoscea_east/GaiUsb307.cpp b/src/scripts/quest/subquest/lanoscea_east/GaiUsb307.cpp new file mode 100644 index 00000000..0aec4137 --- /dev/null +++ b/src/scripts/quest/subquest/lanoscea_east/GaiUsb307.cpp @@ -0,0 +1,253 @@ +// This is an automatically generated C++ script template +// Content needs to be added by hand to make it function +// In order for this script to be loaded, move it to the correct folder in /scripts/ + +#include "Manager/EventMgr.h" +#include +#include +#include + +// Quest Script: GaiUsb307_00848 +// Quest Name: Battle Scars +// Quest ID: 66384 +// Start NPC: 1006312 +// End NPC: 1006305 + +using namespace Sapphire; + +class GaiUsb307 : public Sapphire::ScriptAPI::QuestScript +{ +private: + // Basic quest information + // Quest vars / flags used + // BitFlag8 + // UI8AH + // UI8AL + // UI8BH + // UI8BL + // UI8CH + + /// Countable Num: 0 Seq: 1 Event: 1 Listener: 2002059 + /// Countable Num: 0 Seq: 255 Event: 1 Listener: 2002060 + // Steps in this quest ( 0 is before accepting, + // 1 is first, 255 means ready for turning it in + enum Sequence : uint8_t + { + Seq0 = 0, + Seq1 = 1, + SeqFinish = 255, + }; + + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1006312;//Drest + static constexpr auto Actor1 = 1006305;//Shamani Lohmani + static constexpr auto Eobject0 = 2002059; + static constexpr auto Eobject1 = 2002060; + static constexpr auto Eobject2 = 2002061; + static constexpr auto EventActionSearch = 1; + static constexpr auto Item0 = 2000657; + +public: + GaiUsb307() : Sapphire::ScriptAPI::QuestScript( 66384 ){}; + ~GaiUsb307() = default; + + ////////////////////////////////////////////////////////////////////// + // Event Handlers + void onTalk( World::Quest& quest, Entity::Player& player, uint64_t actorId ) override + { + switch( actorId ) + { + case Actor0: + { + if( quest.getSeq() == Seq0 ) + Scene00000( quest, player ); + break; + } + case Actor1: + { + if( quest.getSeq() == SeqFinish ) + Scene00008( quest, player ); + break; + } + case Eobject0: + { + eventMgr().eventActionStart( + player, getId(), EventActionSearch, + [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional ) { + Scene00002( quest, player ); + }, + nullptr, 0 ); + break; + } + case Eobject1: + { + eventMgr().eventActionStart( + player, getId(), EventActionSearch, + [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional ) { + Scene00004( quest, player ); + }, + nullptr, 0 ); + break; + } + case Eobject2: + { + eventMgr().eventActionStart( + player, getId(), EventActionSearch, + [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional ) { + Scene00006( quest, player ); + }, + nullptr, 0 ); + break; + } + } + } + + +private: + void checkQuestCompletion( World::Quest& quest, Entity::Player& player ) + { + eventMgr().sendEventNotice( player, getId(), 0, 2, quest.getUI8AH(), 3 ); + if( quest.getUI8CH() >= 3 && quest.getUI8AH() >= 3 ) + { + quest.setUI8BH( quest.getUI8CH() ); + quest.setSeq( SeqFinish ); + } + } + ////////////////////////////////////////////////////////////////////// + // Available Scenes in this quest, not necessarly all are used + ////////////////////////////////////////////////////////////////////// + + void Scene00000( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 0, HIDE_HOTBAR, bindSceneReturn( &GaiUsb307::Scene00000Return ) ); + } + + void Scene00000Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 )// accept quest + { + Scene00001( quest, player ); + } + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00001( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 1, HIDE_HOTBAR, bindSceneReturn( &GaiUsb307::Scene00001Return ) ); + } + + void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setSeq( Seq1 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00002( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 2, HIDE_HOTBAR, bindSceneReturn( &GaiUsb307::Scene00002Return ) ); + } + + void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setUI8AL( 1 ); //Hide EObj + quest.setUI8AH( quest.getUI8AH() + 1 );//Increment journal list + quest.setUI8CH( quest.getUI8CH() + 1 );//Increment KeyItem + checkQuestCompletion( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00003( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 3, HIDE_HOTBAR, bindSceneReturn( &GaiUsb307::Scene00003Return ) ); + } + + void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00004( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 4, HIDE_HOTBAR, bindSceneReturn( &GaiUsb307::Scene00004Return ) ); + } + + void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setUI8BH( 1 ); //Hide EObj + quest.setUI8AH( quest.getUI8AH() + 1 );//Increment journal list + quest.setUI8CH( quest.getUI8CH() + 1 );//Increment KeyItem + checkQuestCompletion( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00005( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 5, HIDE_HOTBAR, bindSceneReturn( &GaiUsb307::Scene00005Return ) ); + } + + void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00006( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 6, HIDE_HOTBAR, bindSceneReturn( &GaiUsb307::Scene00006Return ) ); + } + + void Scene00006Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setUI8BL( 1 ); //Hide EObj + quest.setUI8AH( quest.getUI8AH() + 1 );//Increment journal list + quest.setUI8CH( quest.getUI8CH() + 1 );//Increment KeyItem + checkQuestCompletion( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00007( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 7, HIDE_HOTBAR, bindSceneReturn( &GaiUsb307::Scene00007Return ) ); + } + + void Scene00007Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00008( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 8, HIDE_HOTBAR, bindSceneReturn( &GaiUsb307::Scene00008Return ) ); + } + + void Scene00008Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 ) + Scene00009( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00009( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 9, HIDE_HOTBAR, bindSceneReturn( &GaiUsb307::Scene00009Return ) ); + } + + void Scene00009Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + + if( result.getResult( 0 ) == 1 ) + { + player.finishQuest( getId(), result.getResult( 1 ) ); + } + } +}; + +EXPOSE_SCRIPT( GaiUsb307 ); \ No newline at end of file diff --git a/src/scripts/quest/subquest/lanoscea_east/GaiUsb309.cpp b/src/scripts/quest/subquest/lanoscea_east/GaiUsb309.cpp new file mode 100644 index 00000000..f38d74d5 --- /dev/null +++ b/src/scripts/quest/subquest/lanoscea_east/GaiUsb309.cpp @@ -0,0 +1,261 @@ +// This is an automatically generated C++ script template +// Content needs to be added by hand to make it function +// In order for this script to be loaded, move it to the correct folder in /scripts/ + +#include "Manager/EventMgr.h" +#include +#include +#include + +#include "Actor/BNpc.h" +#include "Manager/TerritoryMgr.h" +#include "Territory/Territory.h" + +// Quest Script: GaiUsb309_00850 +// Quest Name: It Was a Very Good Year +// Quest ID: 66386 +// Start NPC: 1006305 +// End NPC: 1006266 + +using namespace Sapphire; + +class GaiUsb309 : public Sapphire::ScriptAPI::QuestScript +{ +private: + // Basic quest information + // Quest vars / flags used + // BitFlag8 + // UI8AL + // UI8BH + + /// Countable Num: 0 Seq: 1 Event: 1 Listener: 1006312 + /// Countable Num: 0 Seq: 2 Event: 1 Listener: 2002062 + /// Countable Num: 0 Seq: 3 Event: 9 Listener: 1910 + /// Countable Num: 0 Seq: 255 Event: 1 Listener: 1006305 + // Steps in this quest ( 0 is before accepting, + // 1 is first, 255 means ready for turning it in + enum Sequence : uint8_t + { + Seq0 = 0, + Seq1 = 1, + Seq2 = 2, + Seq3 = 3, + SeqFinish = 255, + }; + + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1006305;//Shamani Lohmani + static constexpr auto Actor1 = 1006312;//Drest + static constexpr auto Actor2 = 1006266;//Wheiskaet + static constexpr auto Enemy0 = 4293297; + static constexpr auto Eobject0 = 2002062;//Destination + static constexpr auto EventActionSearch = 1; + static constexpr auto EventActionWaitingShor = 11; + static constexpr auto Item0 = 2000946; + static constexpr auto Item1 = 2000658; + static constexpr auto Item2 = 2000659; + static constexpr auto LocActor0 = 1006306; + static constexpr auto LocBgm1 = 82; + static constexpr auto LocFace1 = 617; + static constexpr auto LocFace2 = 605; + static constexpr auto LocFace3 = 619; + static constexpr auto LocPosActor0 = 4329615; + +public: + GaiUsb309() : Sapphire::ScriptAPI::QuestScript( 66386 ){}; + ~GaiUsb309() = default; + + ////////////////////////////////////////////////////////////////////// + // Event Handlers + void onTalk( World::Quest& quest, Entity::Player& player, uint64_t actorId ) override + { + switch( actorId ) + { + case Actor0: + { + if( quest.getSeq() == Seq0 ) + Scene00000( quest, player ); + else if( quest.getSeq() == Seq3 ) + Scene00006( quest, player ); + break; + } + case Actor1: + { + if( quest.getSeq() == Seq1 ) + Scene00002( quest, player ); + break; + } + case Actor2: + { + if( quest.getSeq() == SeqFinish ) + Scene00008( quest, player ); + break; + } + case Eobject0: + { + eventMgr().eventActionStart( + player, getId(), EventActionWaitingShor, + [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional ) { + Scene00005( quest, player ); + }, + nullptr, 0 ); + break; + } + } + } + + void onBNpcKill( World::Quest& quest, uint16_t nameId, uint32_t entityId, Entity::Player& player ) override + { + switch( entityId ) + { + case Enemy0: + { + eventMgr().sendEventNotice( player, getId(), 1, 0 ); + quest.setUI8BH( 1 ); + quest.setSeq( Seq3 ); + break; + } + } + } + +private: + ////////////////////////////////////////////////////////////////////// + // Available Scenes in this quest, not necessarly all are used + ////////////////////////////////////////////////////////////////////// + + void Scene00000( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 0, HIDE_HOTBAR, bindSceneReturn( &GaiUsb309::Scene00000Return ) ); + } + + void Scene00000Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 )// accept quest + { + Scene00001( quest, player ); + } + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00001( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 1, HIDE_HOTBAR, bindSceneReturn( &GaiUsb309::Scene00001Return ) ); + } + + void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setSeq( Seq1 ); + quest.setUI8BH( 1 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00002( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 2, HIDE_HOTBAR, bindSceneReturn( &GaiUsb309::Scene00002Return ) ); + } + + void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 ) + Scene00003( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00003( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 3, HIDE_HOTBAR, bindSceneReturn( &GaiUsb309::Scene00003Return ) ); + } + + void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + eventMgr().sendEventNotice( player, getId(), 0, 0 ); + quest.setUI8BH( 0 ); + quest.setSeq( Seq2 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00004( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 4, HIDE_HOTBAR, bindSceneReturn( &GaiUsb309::Scene00004Return ) ); + } + + void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00005( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 5, HIDE_HOTBAR, bindSceneReturn( &GaiUsb309::Scene00005Return ) ); + } + + void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setBitFlag8( 1, true ); + auto instance = teriMgr().getTerritoryByGuId( player.getTerritoryId() ); + auto enemy0 = instance->createBNpcFromInstanceId( Enemy0, 413 /*TODO: Find the right value, Lv33*/, Common::BNpcType::Enemy, player.getId() ); + enemy0->hateListAdd( player.getAsPlayer(), 1 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00006( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 6, HIDE_HOTBAR, bindSceneReturn( &GaiUsb309::Scene00006Return ) ); + } + + void Scene00006Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 ) + Scene00007( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00007( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 7, FADE_OUT | CONDITION_CUTSCENE | HIDE_UI, bindSceneReturn( &GaiUsb309::Scene00007Return ) ); + } + + void Scene00007Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + eventMgr().sendEventNotice( player, getId(), 2, 0 ); + quest.setSeq( SeqFinish ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00008( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 8, HIDE_HOTBAR, bindSceneReturn( &GaiUsb309::Scene00008Return ) ); + } + + void Scene00008Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 ) + Scene00009( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00009( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 9, HIDE_HOTBAR, bindSceneReturn( &GaiUsb309::Scene00009Return ) ); + } + + void Scene00009Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + + if( result.getResult( 0 ) == 1 ) + { + player.finishQuest( getId() ); + } + } +}; + +EXPOSE_SCRIPT( GaiUsb309 ); \ No newline at end of file diff --git a/src/scripts/quest/subquest/lanoscea_east/GaiUsb313.cpp b/src/scripts/quest/subquest/lanoscea_east/GaiUsb313.cpp new file mode 100644 index 00000000..4ec80559 --- /dev/null +++ b/src/scripts/quest/subquest/lanoscea_east/GaiUsb313.cpp @@ -0,0 +1,701 @@ +// This is an automatically generated C++ script template +// Content needs to be added by hand to make it function +// In order for this script to be loaded, move it to the correct folder in /scripts/ + +#include "Manager/EventMgr.h" +#include +#include +#include + +// Quest Script: GaiUsb313_00854 +// Quest Name: A Final Ignominy +// Quest ID: 66390 +// Start NPC: 1006266 +// End NPC: 1006266 + +using namespace Sapphire; + +class GaiUsb313 : public Sapphire::ScriptAPI::QuestScript +{ +private: + // Basic quest information + // Quest vars / flags used + // BitFlag8 + // UI8AL + // UI8BH + // UI8BL + // UI8CH + + /// Countable Num: 0 Seq: 1 Event: 1 Listener: 1006272 + /// Countable Num: 0 Seq: 2 Event: 1 Listener: 2002676 + /// Countable Num: 0 Seq: 3 Event: 1 Listener: 2002675 + /// Countable Num: 0 Seq: 4 Event: 1 Listener: 2002072 + /// Countable Num: 0 Seq: 255 Event: 1 Listener: 2002073 + // Steps in this quest ( 0 is before accepting, + // 1 is first, 255 means ready for turning it in + enum Sequence : uint8_t + { + Seq0 = 0, + Seq1 = 1, + Seq2 = 2, + Seq3 = 3, + Seq4 = 4, + SeqFinish = 255, + }; + + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1006266; //Wheiskaet + static constexpr auto Actor1 = 1006272; //Dyrstweitz + static constexpr auto Eobject0 = 2002676;//Feasting Table (Seq2) + static constexpr auto Eobject1 = 2002675;//Feasting Table (Seq3) + static constexpr auto Eobject2 = 2002072;//Unknown/Decoration + static constexpr auto Eobject3 = 2002073;//Unknown/Decoration + static constexpr auto Eobject4 = 2002074;//Unknown/Decoration + static constexpr auto Eobject5 = 2002067;//Empty Space (Far) + static constexpr auto Eobject6 = 2002068;//Empty Space (Left) + static constexpr auto Eobject7 = 2002069;//Empty Space (Right) + static constexpr auto Eobject8 = 2002070;//Unknown/Decoration + static constexpr auto Eobject9 = 2002071;//Unknown/Decoration + static constexpr auto EventActionSearch = 1; + static constexpr auto Item0 = 2000662; + static constexpr auto Item1 = 2000663; + static constexpr auto Item2 = 2000664; + +public: + GaiUsb313() : Sapphire::ScriptAPI::QuestScript( 66390 ){}; + ~GaiUsb313() = default; + + ////////////////////////////////////////////////////////////////////// + // Event Handlers + void onTalk( World::Quest& quest, Entity::Player& player, uint64_t actorId ) override + { + switch( actorId ) + { + case Actor0: + { + if( quest.getSeq() == Seq0 ) + Scene00000( quest, player ); + else if( quest.getSeq() == SeqFinish ) + Scene00029( quest, player ); + break; + } + case Actor1: + { + if( quest.getSeq() == Seq1 ) + Scene00002( quest, player ); + break; + } + case Eobject0: + { + Scene00003( quest, player ); + break; + } + case Eobject1: + { + Scene00005( quest, player ); + break; + } + case Eobject5: + { + Scene00013( quest, player ); + break; + } + case Eobject6: + { + Scene00015( quest, player ); + break; + } + case Eobject7: + { + Scene00017( quest, player ); + break; + } + } + } + + void onEventItem( World::Quest& quest, Entity::Player& player, uint64_t actorId ) override + { + if( quest.getSeq() == Seq4 ) + { + switch( actorId ) + { + case Eobject5: + { + Scene00014( quest, player ); + break; + } + case Eobject6: + { + Scene00016( quest, player ); + break; + } + case Eobject7: + { + Scene00018( quest, player ); + break; + } + } + } + } + + +private: + void checkQuestCompletion( World::Quest& quest, Entity::Player& player ) + { + eventMgr().sendEventNotice( player, getId(), 3, 2, quest.getUI8AL(), 3 ); + if( quest.getUI8AL() >= 3 ) + { + quest.setSeq( SeqFinish ); + } + } + ////////////////////////////////////////////////////////////////////// + // Available Scenes in this quest, not necessarly all are used + ////////////////////////////////////////////////////////////////////// + + void Scene00000( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 0, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00000Return ) ); + } + + void Scene00000Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 )// accept quest + { + Scene00001( quest, player ); + } + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00001( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 1, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00001Return ) ); + } + + void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setSeq( Seq1 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00002( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 2, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00002Return ) ); + } + + void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + eventMgr().sendEventNotice( player, getId(), 0, 0 ); + quest.setUI8BH( 3 ); + quest.setUI8BL( 3 ); + quest.setUI8CH( 2 ); + quest.setSeq( Seq2 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00003( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 3, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00003Return ) ); + } + + void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 ) + Scene00004( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00004( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 4, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00004Return ) ); + } + + void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + eventMgr().sendEventNotice( player, getId(), 1, 0 ); + quest.setUI8BL( 2 ); + quest.setUI8CH( 0 ); + quest.setSeq( Seq3 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00005( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 5, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00005Return ) ); + } + + void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 ) + Scene00006( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00006( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 6, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00006Return ) ); + } + + void Scene00006Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + eventMgr().sendEventNotice( player, getId(), 2, 0 ); + quest.setUI8BL( 0 ); + quest.setSeq( Seq4 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00007( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 7, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00007Return ) ); + } + + void Scene00007Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00008( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 8, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00008Return ) ); + } + + void Scene00008Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00009( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 9, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00009Return ) ); + } + + void Scene00009Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00010( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 10, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00010Return ) ); + } + + void Scene00010Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00011( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 11, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00011Return ) ); + } + + void Scene00011Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00012( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 12, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00012Return ) ); + } + + void Scene00012Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00013( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 13, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00013Return ) ); + } + + void Scene00013Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + //Opens KeyItem Inventory + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00014( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 14, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00014Return ) ); + } + + void Scene00014Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setBitFlag8( 1, true ); //Hide EObj + quest.setUI8AL( quest.getUI8AL() + 1 );//Increment Journal + quest.setUI8BH( quest.getUI8BH() - 1 );//Decrement KeyItem + checkQuestCompletion( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00015( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 15, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00015Return ) ); + } + + void Scene00015Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + //Opens KeyItem Inventory + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00016( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 16, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00016Return ) ); + } + + void Scene00016Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setBitFlag8( 2, true ); //Hide EObj + quest.setUI8AL( quest.getUI8AL() + 1 );//Increment Journal + quest.setUI8BH( quest.getUI8BH() - 1 );//Decrement KeyItem + checkQuestCompletion( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00017( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 17, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00017Return ) ); + } + + void Scene00017Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + //Opens KeyItem Inventory + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00018( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 18, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00018Return ) ); + } + + void Scene00018Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setBitFlag8( 3, true ); //Hide EObj + quest.setUI8AL( quest.getUI8AL() + 1 );//Increment Journal + quest.setUI8BH( quest.getUI8BH() - 1 );//Decrement KeyItem + checkQuestCompletion( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00019( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 19, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00019Return ) ); + } + + void Scene00019Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00020( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 20, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00020Return ) ); + } + + void Scene00020Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00021( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 21, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00021Return ) ); + } + + void Scene00021Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00022( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 22, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00022Return ) ); + } + + void Scene00022Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00023( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 23, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00023Return ) ); + } + + void Scene00023Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00024( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 24, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00024Return ) ); + } + + void Scene00024Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00025( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 25, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00025Return ) ); + } + + void Scene00025Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00026( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 26, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00026Return ) ); + } + + void Scene00026Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00027( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 27, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00027Return ) ); + } + + void Scene00027Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00028( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 28, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00028Return ) ); + } + + void Scene00028Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00029( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 29, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00029Return ) ); + } + + void Scene00029Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + + if( result.getResult( 0 ) == 1 ) + { + player.finishQuest( getId() ); + } + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00030( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 30, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00030Return ) ); + } + + void Scene00030Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00031( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 31, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00031Return ) ); + } + + void Scene00031Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00032( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 32, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00032Return ) ); + } + + void Scene00032Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00033( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 33, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00033Return ) ); + } + + void Scene00033Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00034( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 34, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00034Return ) ); + } + + void Scene00034Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00035( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 35, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00035Return ) ); + } + + void Scene00035Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00036( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 36, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00036Return ) ); + } + + void Scene00036Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00037( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 37, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00037Return ) ); + } + + void Scene00037Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00038( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 38, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00038Return ) ); + } + + void Scene00038Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00039( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 39, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00039Return ) ); + } + + void Scene00039Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00040( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 40, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00040Return ) ); + } + + void Scene00040Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00041( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 41, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00041Return ) ); + } + + void Scene00041Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00042( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 42, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00042Return ) ); + } + + void Scene00042Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00043( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 43, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00043Return ) ); + } + + void Scene00043Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00044( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 44, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00044Return ) ); + } + + void Scene00044Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00045( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 45, HIDE_HOTBAR, bindSceneReturn( &GaiUsb313::Scene00045Return ) ); + } + + void Scene00045Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } +}; + +EXPOSE_SCRIPT( GaiUsb313 ); \ No newline at end of file diff --git a/src/scripts/quest/subquest/lanoscea_east/GaiUsb314.cpp b/src/scripts/quest/subquest/lanoscea_east/GaiUsb314.cpp new file mode 100644 index 00000000..2a3e37bb --- /dev/null +++ b/src/scripts/quest/subquest/lanoscea_east/GaiUsb314.cpp @@ -0,0 +1,1264 @@ +// This is an automatically generated C++ script template +// Content needs to be added by hand to make it function +// In order for this script to be loaded, move it to the correct folder in /scripts/ + +#include "Manager/EventMgr.h" +#include +#include +#include + +// Quest Script: GaiUsb314_00855 +// Quest Name: In the Company of Heroes +// Quest ID: 66391 +// Start NPC: 1006676 +// End NPC: 1006676 + +using namespace Sapphire; + +class GaiUsb314 : public Sapphire::ScriptAPI::QuestScript +{ +private: + // Basic quest information + // Quest vars / flags used + // BitFlag16 + // UI8AH + // UI8AL + // UI8BH + // UI8BL + // UI8CH + // UI8CL + + /// Countable Num: 0 Seq: 1 Event: 1 Listener: 1006314 + /// Countable Num: 0 Seq: 2 Event: 1 Listener: 1006313 + /// Countable Num: 0 Seq: 3 Event: 1 Listener: 1006315 + /// Countable Num: 0 Seq: 255 Event: 1 Listener: 1006316 + // Steps in this quest ( 0 is before accepting, + // 1 is first, 255 means ready for turning it in + enum Sequence : uint8_t + { + Seq0 = 0, + Seq1 = 1, + Seq2 = 2, + Seq3 = 3, + SeqFinish = 255, + }; + + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1006676;//Y'shtola + static constexpr auto Actor1 = 1006314;//Bronze-skinned Beauty + static constexpr auto Actor2 = 1006313; + static constexpr auto Actor3 = 1006315; + static constexpr auto Actor4 = 1006316;//U'odh Nunh + static constexpr auto Actor5 = 1006317;//Landenel + static constexpr auto Actor6 = 1006318;//Brayflox Alltalks + static constexpr auto Actor7 = 1006319;//Shamani Lohmani + static constexpr auto Actor8 = 1006266;//Wheiskaet + static constexpr auto BgmLvup = 23; + static constexpr auto CutScene01 = 369; + static constexpr auto Eobject0 = 2002075; + static constexpr auto Eobject1 = 2002076; + static constexpr auto Eobject2 = 2002077; + static constexpr auto Eobject3 = 2002078; + static constexpr auto Eobject4 = 2002079; + static constexpr auto Eobject5 = 2002080; + static constexpr auto Eobject6 = 2002081; + static constexpr auto Eobject7 = 2002082; + static constexpr auto Eobject8 = 2002598;//Exotic Feast (Seq2) + static constexpr auto EventActionSearch = 1; + static constexpr auto LocAction0 = 788; + static constexpr auto LocAction1 = 1016; + static constexpr auto LocAction2 = 683; + static constexpr auto LocActor1 = 1006272; + static constexpr auto LocEobj1 = 2002687; + static constexpr auto LocPosActor0 = 4374246; + static constexpr auto LocPosActor1 = 4258358; + static constexpr auto LocPosCam1 = 4374251; + static constexpr auto LocPosEobj1 = 4373897; + +public: + GaiUsb314() : Sapphire::ScriptAPI::QuestScript( 66391 ){}; + ~GaiUsb314() = default; + + ////////////////////////////////////////////////////////////////////// + // Event Handlers + void onTalk( World::Quest& quest, Entity::Player& player, uint64_t actorId ) override + { + switch( actorId ) + { + case Actor0: + { + if( quest.getSeq() == Seq0 ) + Scene00000( quest, player ); + else if( quest.getSeq() == SeqFinish ) + Scene00075( quest, player ); + break; + } + case Actor1: + { + if( quest.getSeq() == Seq1 ) + Scene00003( quest, player ); + else if( quest.getSeq() == Seq2 ) + Scene00029( quest, player ); + else if( quest.getSeq() == Seq3 ) + Scene00063( quest, player ); + else if( quest.getSeq() == SeqFinish ) + Scene00077( quest, player ); + break; + } + case Actor2: + { + break; + } + case Actor3: + { + break; + } + case Actor4: + { + if( quest.getSeq() == Seq1 ) + Scene00006( quest, player ); + else if( quest.getSeq() == Seq2 ) + Scene00031( quest, player ); + else if( quest.getSeq() == Seq3 ) + { + if( quest.getUI8BL() < 1 ) + Scene00055( quest, player ); + else + Scene00056( quest, player ); + } + else if( quest.getSeq() == SeqFinish ) + Scene00079( quest, player ); + break; + } + case Actor5: + { + if( quest.getSeq() == Seq1 ) + Scene00007( quest, player ); + else if( quest.getSeq() == Seq2 ) + Scene00032( quest, player ); + else if( quest.getSeq() == Seq3 ) + { + if( quest.getUI8BH() < 1 ) + Scene00053( quest, player ); + else + Scene00054( quest, player ); + } + else if( quest.getSeq() == SeqFinish ) + Scene00080( quest, player ); + break; + } + case Actor6: + { + if( quest.getSeq() == Seq1 ) + Scene00008( quest, player ); + else if( quest.getSeq() == Seq2 ) + Scene00033( quest, player ); + else if( quest.getSeq() == Seq3 ) + { + if( quest.getUI8CH() < 1 ) + Scene00057( quest, player ); + else + Scene00058( quest, player ); + } + else if( quest.getSeq() == SeqFinish ) + Scene00081( quest, player ); + break; + } + case Actor7: + { + if( quest.getSeq() == Seq1 ) + Scene00009( quest, player ); + else if( quest.getSeq() == Seq2 ) + Scene00034( quest, player ); + else if( quest.getSeq() == Seq3 ) + { + if( quest.getUI8CL() < 1 ) + Scene00059( quest, player ); + else + Scene00061( quest, player ); + } + else if( quest.getSeq() == SeqFinish ) + Scene00082( quest, player ); + break; + } + case Actor8: + { + if( quest.getSeq() == Seq3 ) + Scene00051( quest, player ); + break; + } + case Eobject8: + { + Scene00027( quest, player ); + break; + } + } + } + + +private: + void checkQuestCompletion( World::Quest& quest, Entity::Player& player ) + { + eventMgr().sendEventNotice( player, getId(), 2, 2, quest.getUI8AH(), 5 ); + if( quest.getUI8AH() >= 5 ) + { + quest.setSeq( SeqFinish ); + } + } + ////////////////////////////////////////////////////////////////////// + // Available Scenes in this quest, not necessarly all are used + ////////////////////////////////////////////////////////////////////// + + void Scene00000( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 0, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00000Return ) ); + } + + void Scene00000Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 )// accept quest + { + Scene00001( quest, player ); + } + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00001( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 1, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00001Return ) ); + } + + void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + Scene00002( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00002( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 2, FADE_OUT | CONDITION_CUTSCENE | HIDE_UI, bindSceneReturn( &GaiUsb314::Scene00002Return ) ); + } + + void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setSeq( Seq1 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00003( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 3, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00003Return ) ); + } + + void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + eventMgr().sendEventNotice( player, getId(), 0, 0 ); + quest.setSeq( Seq2 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00004( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 4, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00004Return ) ); + } + + void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00005( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 5, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00005Return ) ); + } + + void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00006( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 6, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00006Return ) ); + } + + void Scene00006Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00007( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 7, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00007Return ) ); + } + + void Scene00007Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00008( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 8, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00008Return ) ); + } + + void Scene00008Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00009( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 9, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00009Return ) ); + } + + void Scene00009Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00010( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 10, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00010Return ) ); + } + + void Scene00010Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00011( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 11, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00011Return ) ); + } + + void Scene00011Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00012( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 12, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00012Return ) ); + } + + void Scene00012Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00013( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 13, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00013Return ) ); + } + + void Scene00013Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00014( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 14, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00014Return ) ); + } + + void Scene00014Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00015( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 15, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00015Return ) ); + } + + void Scene00015Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00016( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 16, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00016Return ) ); + } + + void Scene00016Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00017( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 17, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00017Return ) ); + } + + void Scene00017Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00018( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 18, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00018Return ) ); + } + + void Scene00018Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00019( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 19, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00019Return ) ); + } + + void Scene00019Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00020( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 20, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00020Return ) ); + } + + void Scene00020Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00021( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 21, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00021Return ) ); + } + + void Scene00021Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00022( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 22, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00022Return ) ); + } + + void Scene00022Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00023( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 23, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00023Return ) ); + } + + void Scene00023Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00024( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 24, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00024Return ) ); + } + + void Scene00024Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00025( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 25, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00025Return ) ); + } + + void Scene00025Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00026( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 26, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00026Return ) ); + } + + void Scene00026Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00027( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 27, FADE_OUT | CONDITION_CUTSCENE | HIDE_UI, bindSceneReturn( &GaiUsb314::Scene00027Return ) ); + } + + void Scene00027Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + eventMgr().sendEventNotice( player, getId(), 1, 0 ); + quest.setSeq( Seq3 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00028( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 28, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00028Return ) ); + } + + void Scene00028Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00029( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 29, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00029Return ) ); + } + + void Scene00029Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00030( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 30, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00030Return ) ); + } + + void Scene00030Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00031( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 31, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00031Return ) ); + } + + void Scene00031Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00032( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 32, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00032Return ) ); + } + + void Scene00032Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00033( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 33, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00033Return ) ); + } + + void Scene00033Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00034( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 34, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00034Return ) ); + } + + void Scene00034Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00035( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 35, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00035Return ) ); + } + + void Scene00035Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00036( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 36, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00036Return ) ); + } + + void Scene00036Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00037( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 37, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00037Return ) ); + } + + void Scene00037Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00038( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 38, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00038Return ) ); + } + + void Scene00038Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00039( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 39, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00039Return ) ); + } + + void Scene00039Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00040( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 40, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00040Return ) ); + } + + void Scene00040Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00041( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 41, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00041Return ) ); + } + + void Scene00041Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00042( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 42, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00042Return ) ); + } + + void Scene00042Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00043( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 43, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00043Return ) ); + } + + void Scene00043Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00044( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 44, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00044Return ) ); + } + + void Scene00044Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00045( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 45, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00045Return ) ); + } + + void Scene00045Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00046( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 46, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00046Return ) ); + } + + void Scene00046Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00047( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 47, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00047Return ) ); + } + + void Scene00047Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00048( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 48, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00048Return ) ); + } + + void Scene00048Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00049( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 49, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00049Return ) ); + } + + void Scene00049Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00050( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 50, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00050Return ) ); + } + + void Scene00050Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00051( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 51, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00051Return ) ); + } + + void Scene00051Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setUI8AL( 1 ); //Hide Quest Icon + quest.setUI8AH( quest.getUI8AH() + 1 );//Increment journal + checkQuestCompletion( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00052( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 52, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00052Return ) ); + } + + void Scene00052Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00053( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 53, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00053Return ) ); + } + + void Scene00053Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setUI8BH( 1 ); //Hide Quest Icon + quest.setUI8AH( quest.getUI8AH() + 1 );//Increment journal + checkQuestCompletion( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00054( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 54, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00054Return ) ); + } + + void Scene00054Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00055( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 55, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00055Return ) ); + } + + void Scene00055Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setUI8BL( 1 ); //Hide Quest Icon + quest.setUI8AH( quest.getUI8AH() + 1 );//Increment journal + checkQuestCompletion( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00056( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 56, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00056Return ) ); + } + + void Scene00056Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00057( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 57, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00057Return ) ); + } + + void Scene00057Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setUI8CH( 1 ); //Hide Quest Icon + quest.setUI8AH( quest.getUI8AH() + 1 );//Increment journal + checkQuestCompletion( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00058( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 58, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00058Return ) ); + } + + void Scene00058Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00059( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 59, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00059Return ) ); + } + + void Scene00059Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setUI8CL( 1 ); //Hide Quest Icon + quest.setUI8AH( quest.getUI8AH() + 1 );//Increment journal + checkQuestCompletion( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00060( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 60, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00060Return ) ); + } + + void Scene00060Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00061( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 61, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00061Return ) ); + } + + void Scene00061Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00062( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 62, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00062Return ) ); + } + + void Scene00062Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00063( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 63, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00063Return ) ); + } + + void Scene00063Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00064( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 64, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00064Return ) ); + } + + void Scene00064Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00065( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 65, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00065Return ) ); + } + + void Scene00065Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00066( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 66, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00066Return ) ); + } + + void Scene00066Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00067( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 67, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00067Return ) ); + } + + void Scene00067Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00068( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 68, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00068Return ) ); + } + + void Scene00068Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00069( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 69, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00069Return ) ); + } + + void Scene00069Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00070( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 70, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00070Return ) ); + } + + void Scene00070Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00071( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 71, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00071Return ) ); + } + + void Scene00071Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00072( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 72, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00072Return ) ); + } + + void Scene00072Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00073( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 73, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00073Return ) ); + } + + void Scene00073Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00074( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 74, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00074Return ) ); + } + + void Scene00074Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00075( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 75, FADE_OUT | CONDITION_CUTSCENE | HIDE_UI, bindSceneReturn( &GaiUsb314::Scene00075Return ) ); + } + + void Scene00075Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + + if( result.getResult( 0 ) == 1 ) + { + player.finishQuest( getId(), result.getResult( 1 ) ); + } + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00076( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 76, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00076Return ) ); + } + + void Scene00076Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00077( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 77, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00077Return ) ); + } + + void Scene00077Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00078( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 78, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00078Return ) ); + } + + void Scene00078Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00079( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 79, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00079Return ) ); + } + + void Scene00079Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00080( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 80, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00080Return ) ); + } + + void Scene00080Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00081( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 81, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00081Return ) ); + } + + void Scene00081Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00082( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 82, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00082Return ) ); + } + + void Scene00082Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00083( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 83, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00083Return ) ); + } + + void Scene00083Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00084( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 84, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00084Return ) ); + } + + void Scene00084Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00085( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 85, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00085Return ) ); + } + + void Scene00085Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00086( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 86, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00086Return ) ); + } + + void Scene00086Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00087( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 87, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00087Return ) ); + } + + void Scene00087Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00088( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 88, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00088Return ) ); + } + + void Scene00088Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00089( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 89, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00089Return ) ); + } + + void Scene00089Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00090( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 90, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00090Return ) ); + } + + void Scene00090Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00091( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 91, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00091Return ) ); + } + + void Scene00091Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00092( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 92, HIDE_HOTBAR, bindSceneReturn( &GaiUsb314::Scene00092Return ) ); + } + + void Scene00092Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } +}; + +EXPOSE_SCRIPT( GaiUsb314 ); \ No newline at end of file diff --git a/src/scripts/quest/subquest/lanoscea_east/GaiUsb315.cpp b/src/scripts/quest/subquest/lanoscea_east/GaiUsb315.cpp new file mode 100644 index 00000000..6a325bf6 --- /dev/null +++ b/src/scripts/quest/subquest/lanoscea_east/GaiUsb315.cpp @@ -0,0 +1,234 @@ +// This is an automatically generated C++ script template +// Content needs to be added by hand to make it function +// In order for this script to be loaded, move it to the correct folder in /scripts/ + +#include "Manager/EventMgr.h" +#include +#include +#include + +// Quest Script: GaiUsb315_00856 +// Quest Name: As You Wish +// Quest ID: 66392 +// Start NPC: 1006266 +// End NPC: 1006341 + +using namespace Sapphire; + +class GaiUsb315 : public Sapphire::ScriptAPI::QuestScript +{ +private: + // Basic quest information + // Quest vars / flags used + // BitFlag8 + // UI8AH + // UI8AL + // UI8BH + // UI8BL + + /// Countable Num: 0 Seq: 1 Event: 1 Listener: 2002083 + /// Countable Num: 0 Seq: 255 Event: 1 Listener: 2002084 + // Steps in this quest ( 0 is before accepting, + // 1 is first, 255 means ready for turning it in + enum Sequence : uint8_t + { + Seq0 = 0, + Seq1 = 1, + SeqFinish = 255, + }; + + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1006266;//Wheiskaet + static constexpr auto Actor1 = 1006341;//Riol + static constexpr auto Eobject0 = 2002083; + static constexpr auto Eobject1 = 2002084; + static constexpr auto Eobject2 = 2002085; + static constexpr auto EventAction = 30; + +public: + GaiUsb315() : Sapphire::ScriptAPI::QuestScript( 66392 ){}; + ~GaiUsb315() = default; + + ////////////////////////////////////////////////////////////////////// + // Event Handlers + void onTalk( World::Quest& quest, Entity::Player& player, uint64_t actorId ) override + { + switch( actorId ) + { + case Actor0: + { + if( quest.getSeq() == Seq0 ) + Scene00000( quest, player ); + break; + } + case Actor1: + { + if( quest.getSeq() == SeqFinish ) + Scene00008( quest, player ); + break; + } + case Eobject0: + { + eventMgr().eventActionStart( + player, getId(), EventAction, + [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional ) { + Scene00002( quest, player ); + }, + nullptr, 0 ); + break; + } + case Eobject1: + { + eventMgr().eventActionStart( + player, getId(), EventAction, + [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional ) { + Scene00004( quest, player ); + }, + nullptr, 0 ); + break; + } + case Eobject2: + { + eventMgr().eventActionStart( + player, getId(), EventAction, + [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional ) { + Scene00006( quest, player ); + }, + nullptr, 0 ); + break; + } + } + } + + +private: + void checkQuestCompletion( World::Quest& quest, Entity::Player& player ) + { + eventMgr().sendEventNotice( player, getId(), 0, 2, quest.getUI8AH(), 3 ); + if( quest.getUI8AH() >= 3 ) + { + quest.setSeq( SeqFinish ); + } + } + ////////////////////////////////////////////////////////////////////// + // Available Scenes in this quest, not necessarly all are used + ////////////////////////////////////////////////////////////////////// + + void Scene00000( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 0, HIDE_HOTBAR, bindSceneReturn( &GaiUsb315::Scene00000Return ) ); + } + + void Scene00000Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 )// accept quest + { + Scene00001( quest, player ); + } + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00001( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 1, HIDE_HOTBAR, bindSceneReturn( &GaiUsb315::Scene00001Return ) ); + } + + void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setSeq( Seq1 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00002( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 2, HIDE_HOTBAR, bindSceneReturn( &GaiUsb315::Scene00002Return ) ); + } + + void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setUI8AL( 1 ); //Hide EObj + quest.setUI8AH( quest.getUI8AH() + 1 );//Increment Journal + checkQuestCompletion( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00003( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 3, HIDE_HOTBAR, bindSceneReturn( &GaiUsb315::Scene00003Return ) ); + } + + void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00004( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 4, HIDE_HOTBAR, bindSceneReturn( &GaiUsb315::Scene00004Return ) ); + } + + void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setUI8BH( 1 ); //Hide EObj + quest.setUI8AH( quest.getUI8AH() + 1 );//Increment Journal + checkQuestCompletion( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00005( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 5, HIDE_HOTBAR, bindSceneReturn( &GaiUsb315::Scene00005Return ) ); + } + + void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00006( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 6, HIDE_HOTBAR, bindSceneReturn( &GaiUsb315::Scene00006Return ) ); + } + + void Scene00006Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setUI8BL( 1 ); //Hide EObj + quest.setUI8AH( quest.getUI8AH() + 1 );//Increment Journal + checkQuestCompletion( quest, player ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00007( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 7, HIDE_HOTBAR, bindSceneReturn( &GaiUsb315::Scene00007Return ) ); + } + + void Scene00007Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00008( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 8, HIDE_HOTBAR, bindSceneReturn( &GaiUsb315::Scene00008Return ) ); + } + + void Scene00008Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + + if( result.getResult( 0 ) == 1 ) + { + player.finishQuest( getId() ); + } + } +}; + +EXPOSE_SCRIPT( GaiUsb315 ); \ No newline at end of file diff --git a/src/scripts/quest/subquest/lanoscea_upper/GaiUsb401.cpp b/src/scripts/quest/subquest/lanoscea_upper/GaiUsb401.cpp new file mode 100644 index 00000000..5329b79f --- /dev/null +++ b/src/scripts/quest/subquest/lanoscea_upper/GaiUsb401.cpp @@ -0,0 +1,193 @@ +// This is an automatically generated C++ script template +// Content needs to be added by hand to make it function +// In order for this script to be loaded, move it to the correct folder in /scripts/ + +#include "Manager/EventMgr.h" +#include +#include +#include + +// Quest Script: GaiUsb401_00857 +// Quest Name: Lord of Crags +// Quest ID: 66393 +// Start NPC: 1006341 +// End NPC: 1006343 + +using namespace Sapphire; + +class GaiUsb401 : public Sapphire::ScriptAPI::QuestScript +{ +private: + // Basic quest information + // Quest vars / flags used + // UI8AL + + /// Countable Num: 0 Seq: 1 Event: 1 Listener: 2002086 + /// Countable Num: 0 Seq: 2 Event: 1 Listener: 5010000 + /// Countable Num: 0 Seq: 255 Event: 1 Listener: 1007711 + // Steps in this quest ( 0 is before accepting, + // 1 is first, 255 means ready for turning it in + enum Sequence : uint8_t + { + Seq0 = 0, + Seq1 = 1, + Seq2 = 2, + SeqFinish = 255, + }; + + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1006341;//Riol + static constexpr auto Actor2 = 1007711; + static constexpr auto Actor3 = 1007712;//Y'shtola (Seq2) + static constexpr auto Actor4 = 1006343;//Y'shtola (SeqFinish) + static constexpr auto CutScene01 = 243; + static constexpr auto CutScene02 = 371; + static constexpr auto Eobject0 = 2002086;//Beastman Aetheryte + static constexpr auto EventActionProcessUpperMiddle = 32; + static constexpr auto Instancedungeon0 = 20002; + static constexpr auto Poprange0 = 4332843; + static constexpr auto ScreenImageUnlock = 111; + static constexpr auto UnlockAddNewContentToCf = 3702; + static constexpr auto UnlockImageVsTitan = 77; + +public: + GaiUsb401() : Sapphire::ScriptAPI::QuestScript( 66393 ){}; + ~GaiUsb401() = default; + + ////////////////////////////////////////////////////////////////////// + // Event Handlers + void onTalk( World::Quest& quest, Entity::Player& player, uint64_t actorId ) override + { + switch( actorId ) + { + case Actor0: + { + if( quest.getSeq() == Seq0 ) + Scene00000( quest, player ); + break; + } + case Actor2: + { + break; + } + case Actor3: + { + if( quest.getSeq() == Seq2 ) + Scene00005( quest, player ); + break; + } + case Actor4: + { + if( quest.getSeq() == SeqFinish ) + Scene00006( quest, player ); + break; + } + case Eobject0: + { + eventMgr().eventActionStart( + player, getId(), EventActionProcessUpperMiddle, + [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional ) { + Scene00003( quest, player ); + }, + nullptr, 0 ); + break; + } + } + } + + +private: + ////////////////////////////////////////////////////////////////////// + // Available Scenes in this quest, not necessarly all are used + ////////////////////////////////////////////////////////////////////// + + void Scene00000( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 0, HIDE_HOTBAR, bindSceneReturn( &GaiUsb401::Scene00000Return ) ); + } + + void Scene00000Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 )// accept quest + { + Scene00001( quest, player ); + } + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00001( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 1, FADE_OUT | CONDITION_CUTSCENE | HIDE_UI, bindSceneReturn( &GaiUsb401::Scene00001Return ) ); + } + + void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + quest.setSeq( Seq1 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00002( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 2, HIDE_HOTBAR, bindSceneReturn( &GaiUsb401::Scene00002Return ) ); + } + + void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00003( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 3, FADE_OUT | CONDITION_CUTSCENE | HIDE_UI, bindSceneReturn( &GaiUsb401::Scene00003Return ) ); + } + + void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + //TODO: Unlock Titan + eventMgr().sendEventNotice( player, getId(), 0, 0 ); + quest.setSeq( Seq2 ); + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00004( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 4, HIDE_HOTBAR, bindSceneReturn( &GaiUsb401::Scene00004Return ) ); + } + + void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00005( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 5, HIDE_HOTBAR, bindSceneReturn( &GaiUsb401::Scene00005Return ) ); + } + + void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + } + + ////////////////////////////////////////////////////////////////////// + + void Scene00006( World::Quest& quest, Entity::Player& player ) + { + eventMgr().playQuestScene( player, getId(), 6, HIDE_HOTBAR, bindSceneReturn( &GaiUsb401::Scene00006Return ) ); + } + + void Scene00006Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + + if( result.getResult( 0 ) == 1 ) + { + player.finishQuest( getId() ); + } + } +}; + +EXPOSE_SCRIPT( GaiUsb401 ); \ No newline at end of file