From 8d8ce1203b5d3b511af9927b3ec1ade3c2e42788 Mon Sep 17 00:00:00 2001 From: Dantestyle Date: Tue, 31 Jul 2018 01:21:54 +0200 Subject: [PATCH] [Quests] Ul'dah sidequests + style --- .../quest/subquest/limsa/SubSea001.cpp | 31 +++-- .../quest/subquest/uldah/SubWil000.cpp | 103 +++++++++++++++ .../quest/subquest/uldah/SubWil001.cpp | 81 ++++++++++++ .../quest/subquest/uldah/SubWil006.cpp | 120 ++++++++++++++++++ .../quest/subquest/uldah/SubWil019.cpp | 81 ++++++++++++ .../quest/subquest/uldah/SubWil021.cpp | 107 ++++++++++++++++ 6 files changed, 507 insertions(+), 16 deletions(-) create mode 100644 src/servers/Scripts/quest/subquest/uldah/SubWil000.cpp create mode 100644 src/servers/Scripts/quest/subquest/uldah/SubWil001.cpp create mode 100644 src/servers/Scripts/quest/subquest/uldah/SubWil006.cpp create mode 100644 src/servers/Scripts/quest/subquest/uldah/SubWil019.cpp create mode 100644 src/servers/Scripts/quest/subquest/uldah/SubWil021.cpp diff --git a/src/servers/Scripts/quest/subquest/limsa/SubSea001.cpp b/src/servers/Scripts/quest/subquest/limsa/SubSea001.cpp index 223d2bb7..cc34923c 100644 --- a/src/servers/Scripts/quest/subquest/limsa/SubSea001.cpp +++ b/src/servers/Scripts/quest/subquest/limsa/SubSea001.cpp @@ -49,15 +49,14 @@ private: static constexpr auto Territorytype0 = 129; public: - SubSea001() : EventScript(65647) + SubSea001() : EventScript( 65647 ) {}; ~SubSea001() {}; - void onTalk(uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { auto actor = Event::mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); - auto currentCC = player.getQuestUI8AL( getId() ); if( actor == Actor0 ) { @@ -79,7 +78,7 @@ public: { Scene00003( player ); }, - nullptr, eventId ); + nullptr, eventId ); } else if( actor == Eobject1 ) { @@ -88,7 +87,7 @@ public: { Scene00005( player ); }, - nullptr, eventId ); + nullptr, eventId ); } else if( actor == Eobject2 ) { @@ -97,7 +96,7 @@ public: { Scene00007( player ); }, - nullptr, eventId ); + nullptr, eventId ); } else if( actor == Eobject3 ) { @@ -106,7 +105,7 @@ public: { Scene00009( player ); }, - nullptr, eventId ); + nullptr, eventId ); } else if( actor == Eobject4 ) { @@ -124,7 +123,7 @@ public: { Scene00013( player ); }, - nullptr, eventId ); + nullptr, eventId ); } }; @@ -139,8 +138,8 @@ private: if( currentCC + 1 >= 6 ) { player.updateQuest( getId(), SeqFinish ); - player.setQuestUI8BH(getId(), currentCC + 1); - player.setQuestUI8AL(getId(), currentCC + 1); + player.setQuestUI8BH( getId(), currentCC + 1 ); + player.setQuestUI8AL( getId(), currentCC + 1 ); } else { @@ -324,13 +323,13 @@ private: { player.playScene( getId(), 17, HIDE_HOTBAR, [&]( Entity::Player& player, const Event::SceneResult& result ) - { - if( result.param2 == 1 ) { - if( player.giveQuestRewards( getId(), 0 ) ) - player.finishQuest( getId() ); - } - } ); + if( result.param2 == 1 ) + { + if( player.giveQuestRewards( getId(), 0 ) ) + player.finishQuest( getId() ); + } + } ); } }; diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil000.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil000.cpp new file mode 100644 index 00000000..ce4c98ad --- /dev/null +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil000.cpp @@ -0,0 +1,103 @@ +#include +#include +#include + +// Quest Script: SubWil000_00149 +// Quest Name: Due Diligence +// Quest ID: 65685 +// Start NPC: 1001285 +// End NPC: 1002278 + +class SubWil000 : public EventScript +{ + private: + // Basic quest information + // Quest vars / flags used + // GetQuestUI8AL + // GetQuestUI8BH + + enum Sequence : uint8_t + { + Seq0 = 0, + SeqFinish = 255, + }; + + // Quest rewards + static constexpr auto RewardExpFactor = 50; + static constexpr auto RewardGil = 103; + + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1001285; + static constexpr auto Actor1 = 1002278; + static constexpr auto Item0 = 2000136; + + public: + SubWil000() : EventScript( 65685 ){}; + ~SubWil000(){}; + + void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + { + auto actor = Event::mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + + if( actor == Actor0 ) + { + Scene00000( player ); + } + else if( actor == Actor1 ) + { + Scene00001( player ); + } + } + + private: + + void Scene00000( Entity::Player& player ) + { + player.playScene( getId(), 0, HIDE_HOTBAR, + [&]( Entity::Player& player, const Event::SceneResult& result ) + { + if( result.param2 == 1 ) + { + player.updateQuest( getId(), SeqFinish ); + player.setQuestUI8BH( getId(), 1 ); + } + } ); + } + + void Scene00001( Entity::Player& player ) + { + player.playScene( getId(), 1, HIDE_HOTBAR, + [&]( Entity::Player& player, const Event::SceneResult& result ) + { + if( result.param2 == 1 ) + { + Scene00100( player ); + } + else return; + } ); + } + + void Scene00099( Entity::Player& player ) + { + player.playScene( getId(), 99, HIDE_HOTBAR, + [&]( Entity::Player& player, const Event::SceneResult& result ) + { + } ); + } + + void Scene00100( Entity::Player& player ) + { + player.playScene( getId(), 100, HIDE_HOTBAR, + [&]( Entity::Player& player, const Event::SceneResult& result ) + { + if( result.param2 == 1 ) + { + if( player.giveQuestRewards( getId(), 0 ) ) + { + player.finishQuest( getId() ); + } + } + } ); + } +}; + diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil001.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil001.cpp new file mode 100644 index 00000000..71171f7e --- /dev/null +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil001.cpp @@ -0,0 +1,81 @@ +#include +#include +#include + +// Quest Script: SubWil001_00150 +// Quest Name: Motivational Speaking +// Quest ID: 65686 +// Start NPC: 1001287 +// End NPC: 1001288 + +class SubWil001 : public EventScript +{ +private: + // Basic quest information + // Quest vars / flags used + // GetQuestUI8AL + + enum Sequence : uint8_t + { + Seq0 = 0, + SeqFinish = 255, + }; + + // Quest rewards + static constexpr auto RewardExpFactor = 50; + static constexpr auto RewardItem = 4551; + static constexpr auto RewardItemCount = 2; + + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1001287; + static constexpr auto Actor1 = 1001288; + static constexpr auto Seq0Actor0 = 0; + static constexpr auto Seq1Actor1 = 1; + +public: + SubWil001() : EventScript( 65686 ) {}; + ~SubWil001() {}; + + void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + { + auto actor = Event::mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + + if( actor == Actor0 ) + { + Scene00000( player ); + } + else if( actor == Actor1 ) + { + Scene00001( player ); + } + } + +private: + + void Scene00000(Entity::Player& player) + { + player.playScene( getId(), 0, HIDE_HOTBAR, + [&]( Entity::Player& player, const Event::SceneResult& result ) + { + if( result.param2 == 1 ) + { + player.updateQuest( getId(), SeqFinish ); + } + } ); + } + + void Scene00001( Entity::Player& player ) + { + player.playScene( getId(), 1, HIDE_HOTBAR, + [&]( Entity::Player& player, const Event::SceneResult& result ) + { + if( result.param2 == 1 ) + { + if( player.giveQuestRewards( getId(), 0 ) ) + { + player.finishQuest( getId() ); + } + } + } ); + } +}; \ No newline at end of file diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil006.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil006.cpp new file mode 100644 index 00000000..baf201e9 --- /dev/null +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil006.cpp @@ -0,0 +1,120 @@ +#include +#include +#include + +// Quest Script: SubWil006_00165 +// Quest Name: The Great Gladiator +// Quest ID: 65701 +// Start NPC: 1001295 +// End NPC: 1001299 + +class SubWil006 : public EventScript +{ + private: + // Basic quest information + // Quest vars / flags used + // GetQuestUI8AL + // GetQuestUI8BH + + enum Sequence : uint8_t + { + Seq0 = 0, + Seq1 = 1, + SeqFinish = 255, + }; + + // Quest rewards + static constexpr auto RewardExpFactor = 50; + static constexpr auto RewardItem = 5594; + static constexpr auto RewardItemCount = 10; + + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1001295; + static constexpr auto Actor1 = 1002280; + static constexpr auto Actor2 = 1001299; + static constexpr auto Item0 = 2000201; + + public: + SubWil006() : EventScript( 65701 ){}; + ~SubWil006(){}; + + void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + { + auto actor = Event::mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + + if( actor == Actor0 ) + { + Scene00000( player ); + } + else if( actor == Actor1 ) + { + Scene00001( player ); + } + else if( actor == Actor2 ) + { + Scene00004( player ); + } + } + + private: + + void Scene00000( Entity::Player& player ) + { + player.playScene( getId(), 0, HIDE_HOTBAR, + [&]( Entity::Player& player, const Event::SceneResult& result ) + { + if( result.param2 == 1 ) + { + player.updateQuest( getId(), Seq1 ); + player.setQuestUI8BH( getId(), 1 ); + } + } ); + } + + void Scene00001( Entity::Player& player ) + { + player.playScene( getId(), 1, HIDE_HOTBAR, + [&]( Entity::Player& player, const Event::SceneResult& result ) + { + if( result.param2 == 1 ) + { + Scene00002( player ); + } + else return; + } ); + } + + void Scene00002( Entity::Player& player ) + { + player.playScene( getId(), 2, HIDE_HOTBAR, + [&]( Entity::Player& player, const Event::SceneResult& result ) + { + player.updateQuest( getId(), SeqFinish ); + player.sendQuestMessage( getId(), 0, 2, 0, 0 ); + } ); + } + + void Scene00003( Entity::Player& player ) + { + player.playScene( getId(), 3, HIDE_HOTBAR, + [&]( Entity::Player& player, const Event::SceneResult& result ) + { + } ); + } + + void Scene00004( Entity::Player& player ) + { + player.playScene( getId(), 4, HIDE_HOTBAR, + [&]( Entity::Player& player, const Event::SceneResult& result ) + { + if( result.param2 == 1 ) + { + if( player.giveQuestRewards( getId(), 0 ) ) + { + player.finishQuest( getId() ); + } + } + } ); + } +}; + diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil019.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil019.cpp new file mode 100644 index 00000000..fb3f35dd --- /dev/null +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil019.cpp @@ -0,0 +1,81 @@ +#include +#include +#include + +// Quest Script: SubWil019_00392 +// Quest Name: Decisions, Decisions +// Quest ID: 65928 +// Start NPC: 1001680 +// End NPC: 1001691 + +class SubWil019 : public EventScript +{ + private: + // Basic quest information + // Quest vars / flags used + // GetQuestUI8AL + + enum Sequence : uint8_t + { + Seq0 = 0, + SeqFinish = 255, + }; + + // Quest rewards + static constexpr auto RewardExpFactor = 50; + static constexpr auto RewardGil = 111; + static constexpr auto RewardItem = 5539; + static constexpr auto RewardItemCount = 1; + + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1001680; + static constexpr auto Actor1 = 1001691; + + public: + SubWil019() : EventScript( 65928 ){}; + ~SubWil019(){}; + + void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + { + auto actor = Event::mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + + if( actor == Actor0 ) + { + Scene00000( player ); + } + else if( actor == Actor1 ) + { + Scene00001( player ); + } + } + + private: + + void Scene00000( Entity::Player& player ) + { + player.playScene( getId(), 0, HIDE_HOTBAR, + [&]( Entity::Player& player, const Event::SceneResult& result ) + { + if( result.param2 == 1 ) + { + player.updateQuest( getId(), SeqFinish ); + } + } ); + } + + void Scene00001( Entity::Player& player ) + { + player.playScene( getId(), 1, HIDE_HOTBAR, + [&]( Entity::Player& player, const Event::SceneResult& result ) + { + if( result.param2 == 1 ) + { + if( player.giveQuestRewards( getId(), 0 ) ) + { + player.finishQuest( getId() ); + } + } + } ); + } +}; + diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil021.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil021.cpp new file mode 100644 index 00000000..485cbf78 --- /dev/null +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil021.cpp @@ -0,0 +1,107 @@ +#include +#include +#include + +// Quest Script: SubWil021_00394 +// Quest Name: A Luxury Long Lost +// Quest ID: 65930 +// Start NPC: 1001766 +// End NPC: 1001657 + +class SubWil021 : public EventScript +{ + private: + // Basic quest information + // Quest vars / flags used + // GetQuestUI8AL + // GetQuestUI8BH + + enum Sequence : uint8_t + { + Seq0 = 0, + SeqFinish = 255, + }; + + // Quest rewards + static constexpr auto RewardExpFactor = 50; + static constexpr auto RewardGil = 111; + + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1001766; + static constexpr auto Actor1 = 1001657; + static constexpr auto Item0 = 2000196; + static constexpr auto Seq0Actor0 = 0; + static constexpr auto Seq1Actor1 = 1; + static constexpr auto Seq1Actor1Npctradeno = 99; + static constexpr auto Seq1Actor1Npctradeok = 100; + + public: + SubWil021() : EventScript( 65930 ){}; + ~SubWil021(){}; + + void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + { + auto actor = Event::mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ); + + if( actor == Actor0 ) + { + Scene00000( player ); + } + else if( actor == Actor1 ) + { + Scene00001( player ); + } + } + + private: + + void Scene00000( Entity::Player& player ) + { + player.playScene( getId(), 0, HIDE_HOTBAR, + [&]( Entity::Player& player, const Event::SceneResult& result ) + { + if( result.param2 == 1 ) + { + player.updateQuest( getId(), SeqFinish ); + player.setQuestUI8BH( getId(), 1 ); + } + } ); + } + + void Scene00001( Entity::Player& player ) + { + player.playScene( getId(), 1, HIDE_HOTBAR, + [&]( Entity::Player& player, const Event::SceneResult& result ) + { + if( result.param2 == 1 ) + { + Scene00100( player ); + } + else return; + } ); + } + + void Scene00099( Entity::Player& player ) + { + player.playScene( getId(), 99, HIDE_HOTBAR, + [&]( Entity::Player& player, const Event::SceneResult& result ) + { + } ); + } + + void Scene00100( Entity::Player& player ) + { + player.playScene( getId(), 100, HIDE_HOTBAR, + [&]( Entity::Player& player, const Event::SceneResult& result ) + { + if( result.param2 == 1 ) + { + if(player.giveQuestRewards( getId(), 0 ) ) + { + player.finishQuest( getId() ); + } + } + } ); + } +}; +