From 73cc3f3deb3b0f6113b01a5281ab44d92cc03de5 Mon Sep 17 00:00:00 2001 From: Biscuit Date: Sat, 30 Dec 2017 14:21:33 +1100 Subject: [PATCH 1/3] Ported the Quarrels with Squirrels Quest from Chai Ported the Quarrels with Squirrels from the old ChaiScript over to Native. I cannot Test the Port up to Killing a NPC right now since a Bug, but after the Bug is fixed it should work fine. --- .../quest/subquest/gridania/SubFst002.cpp | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 scripts/native/quest/subquest/gridania/SubFst002.cpp diff --git a/scripts/native/quest/subquest/gridania/SubFst002.cpp b/scripts/native/quest/subquest/gridania/SubFst002.cpp new file mode 100644 index 00000000..19a21bb4 --- /dev/null +++ b/scripts/native/quest/subquest/gridania/SubFst002.cpp @@ -0,0 +1,76 @@ +#include "../../../ScriptObject.h" + +// Quest Script: SubFst002_00025 +// Quest Name: Quarrels with Squirrels +// Quest ID: 65561 +// Start NPC: 1000263 +// End NPC: 1000263 + +class SubFst002 : public EventScript +{ +private: + static constexpr auto SEQ_0 = 0; + static constexpr auto SEQ_1 = 1; + static constexpr auto SEQ_2 = 2; + static constexpr auto SEQ_FINISH = 255; + static constexpr auto ACTOR0 = 1000263; + static constexpr auto ENEMY0 = 37; + static constexpr auto SEQ_0_ACTOR0 = 0; + static constexpr auto SEQ_2_ACTOR0 = 1; + + void Scene00000( Entity::Player& player ) + { + auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 ) + { + if( param2 == 1 ) // accept quest + { + player.updateQuest( getId(), SEQ_1 ); + } + }; + + player.eventPlay ( getId (), 0, NONE, callback ); + } + + void Scene00001(Entity::Player& player) + { + auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 ) + { + if( param2 == 1 ) // finish quest + { + if(player.giveQuestRewards( getId(), 0 ) ) + player.finishQuest( getId() ); + } + }; + + player.eventPlay ( getId (), 1, NONE, callback ); + } + +public: + SubFst002() : EventScript( "SubFst002", 65561 ) {} + + void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + { + auto actor = Event::mapEventActorToRealActor( static_cast< uint32_t >(actorId) ); + + if( actor == ACTOR0 && !player.hasQuest( getId() ) ) + Scene00000( player ); + else if( actor == ACTOR0 && player.getQuestSeq( getId() ) == SEQ_FINISH ) + Scene00001( player ); + } + + void onNpcKill( uint32_t npcId, Entity::Player& player ) override + { + if( npcId != ENEMY0 ) + return; + + auto currentKC = player.getQuestUI8AL( getId() ) + 1; + + if( currentKC >= 6 ) + player.updateQuest( getId(), SEQ_FINISH ); + else + { + player.setQuestUI8AL( getId(), currentKC ); + player.sendQuestMessage( getId(), 0, 2, currentKC, 6 ); + } + } +}; From 9b3026b4a6439806172f5d7083375dbcff753c07 Mon Sep 17 00:00:00 2001 From: Biscuit Date: Fri, 5 Jan 2018 09:11:57 +1100 Subject: [PATCH 2/3] Fixed Formatting --- .../quest/subquest/gridania/SubFst002.cpp | 90 +++++++++---------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/scripts/native/quest/subquest/gridania/SubFst002.cpp b/scripts/native/quest/subquest/gridania/SubFst002.cpp index 19a21bb4..82109e64 100644 --- a/scripts/native/quest/subquest/gridania/SubFst002.cpp +++ b/scripts/native/quest/subquest/gridania/SubFst002.cpp @@ -1,63 +1,63 @@ -#include "../../../ScriptObject.h" - +#include "../../../ScriptObject.h" + // Quest Script: SubFst002_00025 // Quest Name: Quarrels with Squirrels // Quest ID: 65561 // Start NPC: 1000263 -// End NPC: 1000263 - -class SubFst002 : public EventScript +// End NPC: 1000263 + +class SubFst002 : public EventScript { -private: - static constexpr auto SEQ_0 = 0; - static constexpr auto SEQ_1 = 1; - static constexpr auto SEQ_2 = 2; - static constexpr auto SEQ_FINISH = 255; - static constexpr auto ACTOR0 = 1000263; - static constexpr auto ENEMY0 = 37; - static constexpr auto SEQ_0_ACTOR0 = 0; - static constexpr auto SEQ_2_ACTOR0 = 1; - - void Scene00000( Entity::Player& player ) - { +private: + static constexpr auto SEQ_0 = 0; + static constexpr auto SEQ_1 = 1; + static constexpr auto SEQ_2 = 2; + static constexpr auto SEQ_FINISH = 255; + static constexpr auto ACTOR0 = 1000263; + static constexpr auto ENEMY0 = 37; + static constexpr auto SEQ_0_ACTOR0 = 0; + static constexpr auto SEQ_2_ACTOR0 = 1; + + void Scene00000( Entity::Player& player ) + { auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 ) { if( param2 == 1 ) // accept quest { player.updateQuest( getId(), SEQ_1 ); } - }; - - player.eventPlay ( getId (), 0, NONE, callback ); - } - - void Scene00001(Entity::Player& player) - { + }; + + player.eventPlay( getId (), 0, NONE, callback ); + } + + void Scene00001(Entity::Player& player) + { auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 ) { if( param2 == 1 ) // finish quest { - if(player.giveQuestRewards( getId(), 0 ) ) + if( player.giveQuestRewards( getId(), 0 ) ) player.finishQuest( getId() ); } - }; - - player.eventPlay ( getId (), 1, NONE, callback ); - } - -public: - SubFst002() : EventScript( "SubFst002", 65561 ) {} - - void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override - { - auto actor = Event::mapEventActorToRealActor( static_cast< uint32_t >(actorId) ); - - if( actor == ACTOR0 && !player.hasQuest( getId() ) ) - Scene00000( player ); - else if( actor == ACTOR0 && player.getQuestSeq( getId() ) == SEQ_FINISH ) - Scene00001( player ); - } - + }; + + player.eventPlay( getId (), 1, NONE, callback ); + } + +public: + SubFst002() : EventScript( "SubFst002", 65561 ) {} + + void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + { + auto actor = Event::mapEventActorToRealActor( static_cast< uint32_t >(actorId) ); + + if( actor == ACTOR0 && !player.hasQuest( getId() ) ) + Scene00000( player ); + else if( actor == ACTOR0 && player.getQuestSeq( getId() ) == SEQ_FINISH ) + Scene00001( player ); + } + void onNpcKill( uint32_t npcId, Entity::Player& player ) override { if( npcId != ENEMY0 ) @@ -72,5 +72,5 @@ public: player.setQuestUI8AL( getId(), currentKC ); player.sendQuestMessage( getId(), 0, 2, currentKC, 6 ); } - } -}; + } +}; From 98e2415c65ba40871fb8cfdec60fa06757620d50 Mon Sep 17 00:00:00 2001 From: Biscuit Boy Date: Fri, 5 Jan 2018 23:33:41 +1100 Subject: [PATCH 3/3] Fixed The Formatting Again Please be the last time --- .../quest/subquest/gridania/SubFst002.cpp | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/scripts/native/quest/subquest/gridania/SubFst002.cpp b/scripts/native/quest/subquest/gridania/SubFst002.cpp index 82109e64..238101e0 100644 --- a/scripts/native/quest/subquest/gridania/SubFst002.cpp +++ b/scripts/native/quest/subquest/gridania/SubFst002.cpp @@ -26,6 +26,7 @@ private: { player.updateQuest( getId(), SEQ_1 ); } +<<<<<<< HEAD }; player.eventPlay( getId (), 0, NONE, callback ); @@ -33,6 +34,15 @@ private: void Scene00001(Entity::Player& player) { +======= + }; + + player.eventPlay( getId (), 0, NONE, callback ); + } + + void Scene00001(Entity::Player& player) + { +>>>>>>> 8dc9faa... Fixed The Formatting Again auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 ) { if( param2 == 1 ) // finish quest @@ -40,6 +50,7 @@ private: if( player.giveQuestRewards( getId(), 0 ) ) player.finishQuest( getId() ); } +<<<<<<< HEAD }; player.eventPlay( getId (), 1, NONE, callback ); @@ -58,6 +69,26 @@ public: Scene00001( player ); } +======= + }; + + player.eventPlay( getId (), 1, NONE, callback ); + } + +public: + SubFst002() : EventScript( "SubFst002", 65561 ) {} + + void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + { + auto actor = Event::mapEventActorToRealActor( static_cast< uint32_t >(actorId) ); + + if( actor == ACTOR0 && !player.hasQuest( getId() ) ) + Scene00000( player ); + else if( actor == ACTOR0 && player.getQuestSeq( getId() ) == SEQ_FINISH ) + Scene00001( player ); + } + +>>>>>>> 8dc9faa... Fixed The Formatting Again void onNpcKill( uint32_t npcId, Entity::Player& player ) override { if( npcId != ENEMY0 )