From 90018d0137f45f4148ec281b233c4ee5f16e047b Mon Sep 17 00:00:00 2001 From: Mordred Date: Mon, 20 Dec 2021 00:06:52 +0100 Subject: [PATCH] Fixed quest state breaking on zoning, fixed some formatting issues in some quests, more are still messed up though --- .../quest/subquest/gridania/SubFst001.cpp | 80 ++++++------- .../quest/subquest/gridania/SubFst003.cpp | 92 +++++++-------- .../quest/subquest/gridania/SubFst004.cpp | 22 ++-- .../quest/subquest/gridania/SubFst005.cpp | 62 +++++----- .../quest/subquest/gridania/SubFst008.cpp | 106 +++++++++--------- src/world/Actor/Player.h | 2 +- src/world/Actor/PlayerQuest.cpp | 4 +- src/world/Network/Handlers/PacketHandlers.cpp | 13 ++- src/world/WorldServer.cpp | 2 - 9 files changed, 196 insertions(+), 187 deletions(-) diff --git a/src/scripts/quest/subquest/gridania/SubFst001.cpp b/src/scripts/quest/subquest/gridania/SubFst001.cpp index 939f7e79..f37721f6 100644 --- a/src/scripts/quest/subquest/gridania/SubFst001.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst001.cpp @@ -17,50 +17,52 @@ using namespace Sapphire; class SubFst001 : public Sapphire::ScriptAPI::QuestScript { - private: - // Basic quest information - // Quest vars / flags used - // UI8AL - // UI8BH +private: + // Basic quest information + // Quest vars / flags used + // UI8AL + // UI8BH - /// Countable Num: 1 Seq: 255 Event: 1 Listener: 1000233 - // Steps in this quest ( 0 is before accepting, - // 1 is first, 255 means ready for turning it in - enum Sequence : uint8_t - { - Seq0 = 0, - SeqFinish = 255, - }; + /// Countable Num: 1 Seq: 255 Event: 1 Listener: 1000233 + // Steps in this quest ( 0 is before accepting, + // 1 is first, 255 means ready for turning it in + enum Sequence : uint8_t + { + Seq0 = 0, + SeqFinish = 255, + }; - // Entities found in the script data of the quest - static constexpr auto Actor0 = 1000206; - static constexpr auto Actor1 = 1000233; - static constexpr auto Item0 = 2000079; - static constexpr auto Seq0Actor0 = 0; - static constexpr auto Seq1Actor1 = 1; - static constexpr auto Seq1Actor1Npctradeno = 99; - static constexpr auto Seq1Actor1Npctradeok = 100; + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1000206; + static constexpr auto Actor1 = 1000233; + static constexpr auto Item0 = 2000079; + static constexpr auto Seq0Actor0 = 0; + static constexpr auto Seq1Actor1 = 1; + static constexpr auto Seq1Actor1Npctradeno = 99; + static constexpr auto Seq1Actor1Npctradeok = 100; - public: - SubFst001() : Sapphire::ScriptAPI::QuestScript( 65560 ){}; - ~SubFst001() = default; +public: + SubFst001() : Sapphire::ScriptAPI::QuestScript( 65560 ) + {}; + + ~SubFst001() = default; ////////////////////////////////////////////////////////////////////// // Event Handlers - void onTalk( World::Quest& quest, Entity::Player& player, uint64_t actorId ) override + void onTalk( World::Quest &quest, Entity::Player &player, uint64_t actorId ) override { switch( actorId ) { case Actor0: { - if (!player.hasQuest(getId())) + if( !player.hasQuest( getId() ) ) Scene00000( quest, player ); else Scene00001( quest, player ); } case Actor1: { - if (!player.hasQuest(getId())) + if( !player.hasQuest( getId() ) ) Scene00099( quest, player ); else Scene00100( quest, player ); @@ -69,23 +71,23 @@ class SubFst001 : public Sapphire::ScriptAPI::QuestScript } - private: +private: ////////////////////////////////////////////////////////////////////// // Available Scenes in this quest, not necessarly all are used ////////////////////////////////////////////////////////////////////// - void Scene00000( World::Quest& quest, Entity::Player& player ) + void Scene00000( World::Quest &quest, Entity::Player &player ) { eventMgr().playQuestScene( player, getId(), 0, NONE, bindSceneReturn( &SubFst001::Scene00000Return ) ); } - void Scene00000Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + void Scene00000Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result ) { if( result.getResult( 0 ) == 1 ) // accept quest { - quest.setUI8AL(1); - quest.setUI8BH( 1); - quest.setSeq(SeqFinish); + quest.setUI8AL( 1 ); + quest.setUI8BH( 1 ); + quest.setSeq( SeqFinish ); } @@ -93,12 +95,12 @@ class SubFst001 : public Sapphire::ScriptAPI::QuestScript ////////////////////////////////////////////////////////////////////// - void Scene00001( World::Quest& quest, Entity::Player& player ) + void Scene00001( World::Quest &quest, Entity::Player &player ) { eventMgr().playQuestScene( player, getId(), 1, NONE, bindSceneReturn( &SubFst001::Scene00001Return ) ); } - void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + void Scene00001Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result ) { @@ -106,12 +108,12 @@ class SubFst001 : public Sapphire::ScriptAPI::QuestScript ////////////////////////////////////////////////////////////////////// - void Scene00099( World::Quest& quest, Entity::Player& player ) + void Scene00099( World::Quest &quest, Entity::Player &player ) { eventMgr().playQuestScene( player, getId(), 99, NONE, bindSceneReturn( &SubFst001::Scene00099Return ) ); } - void Scene00099Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + void Scene00099Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result ) { @@ -119,12 +121,12 @@ class SubFst001 : public Sapphire::ScriptAPI::QuestScript ////////////////////////////////////////////////////////////////////// - void Scene00100( World::Quest& quest, Entity::Player& player ) + void Scene00100( World::Quest &quest, Entity::Player &player ) { eventMgr().playQuestScene( player, getId(), 100, NONE, bindSceneReturn( &SubFst001::Scene00100Return ) ); } - void Scene00100Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + void Scene00100Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result ) { if( result.getResult( 0 ) == 1 ) diff --git a/src/scripts/quest/subquest/gridania/SubFst003.cpp b/src/scripts/quest/subquest/gridania/SubFst003.cpp index 98cdf3af..ef3a5f39 100644 --- a/src/scripts/quest/subquest/gridania/SubFst003.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst003.cpp @@ -17,115 +17,117 @@ using namespace Sapphire; class SubFst003 : public Sapphire::ScriptAPI::QuestScript { - private: - // Basic quest information - // Quest vars / flags used - // UI8AL - // UI8BH +private: + // Basic quest information + // Quest vars / flags used + // UI8AL + // UI8BH - /// Countable Num: 1 Seq: 255 Event: 1 Listener: 1000315 - // Steps in this quest ( 0 is before accepting, - // 1 is first, 255 means ready for turning it in - enum Sequence : uint8_t - { - Seq0 = 0, - SeqFinish = 255, - }; + /// Countable Num: 1 Seq: 255 Event: 1 Listener: 1000315 + // Steps in this quest ( 0 is before accepting, + // 1 is first, 255 means ready for turning it in + enum Sequence : uint8_t + { + Seq0 = 0, + SeqFinish = 255, + }; - // Entities found in the script data of the quest - static constexpr auto Actor0 = 1000297; - static constexpr auto Actor1 = 1000315; - static constexpr auto Item0 = 2000028; - static constexpr auto Seq0Actor0 = 0; - static constexpr auto Seq1Actor1 = 1; - static constexpr auto Seq1Actor1Npctradeno = 99; - static constexpr auto Seq1Actor1Npctradeok = 100; + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1000297; + static constexpr auto Actor1 = 1000315; + static constexpr auto Item0 = 2000028; + static constexpr auto Seq0Actor0 = 0; + static constexpr auto Seq1Actor1 = 1; + static constexpr auto Seq1Actor1Npctradeno = 99; + static constexpr auto Seq1Actor1Npctradeok = 100; - public: - SubFst003() : Sapphire::ScriptAPI::QuestScript( 65562 ){}; - ~SubFst003() = default; +public: + SubFst003() : Sapphire::ScriptAPI::QuestScript( 65562 ) + {}; + + ~SubFst003() = default; ////////////////////////////////////////////////////////////////////// // Event Handlers - void onTalk( World::Quest& quest, Entity::Player& player, uint64_t actorId ) override + void onTalk( World::Quest &quest, Entity::Player &player, uint64_t actorId ) override { switch( actorId ) { case Actor0: { - Scene00000(quest, player); + Scene00000( quest, player ); break; } case Actor1: { - Scene00001(quest, player); + Scene00001( quest, player ); break; } } } - private: +private: ////////////////////////////////////////////////////////////////////// // Available Scenes in this quest, not necessarly all are used ////////////////////////////////////////////////////////////////////// - void Scene00000( World::Quest& quest, Entity::Player& player ) + void Scene00000( World::Quest &quest, Entity::Player &player ) { eventMgr().playQuestScene( player, getId(), 0, HIDE_HOTBAR, bindSceneReturn( &SubFst003::Scene00000Return ) ); } - void Scene00000Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + void Scene00000Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result ) { if( result.getResult( 0 ) == 1 ) // accept quest { - quest.setSeq(SeqFinish); - quest.setUI8BH(1); + quest.setSeq( SeqFinish ); + quest.setUI8BH( 1 ); } } ////////////////////////////////////////////////////////////////////// - void Scene00001( World::Quest& quest, Entity::Player& player ) + void Scene00001( World::Quest &quest, Entity::Player &player ) { eventMgr().playQuestScene( player, getId(), 1, HIDE_HOTBAR, bindSceneReturn( &SubFst003::Scene00001Return ) ); } - void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + void Scene00001Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result ) { - if (result.getResult(0) == 1) - Scene00100(quest, player); + if( result.getResult( 0 ) == 1 ) + Scene00100( quest, player ); else - Scene00099(quest, player); + Scene00099( quest, player ); } ////////////////////////////////////////////////////////////////////// - void Scene00099( World::Quest& quest, Entity::Player& player ) + void Scene00099( World::Quest &quest, Entity::Player &player ) { eventMgr().playQuestScene( player, getId(), 99, HIDE_HOTBAR, bindSceneReturn( &SubFst003::Scene00099Return ) ); } - void Scene00099Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + void Scene00099Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result ) { - eventMgr().playScene(player, getId(), 99, 0, 0); + eventMgr().playScene( player, getId(), 99, 0, 0 ); } ////////////////////////////////////////////////////////////////////// - void Scene00100( World::Quest& quest, Entity::Player& player ) + void Scene00100( World::Quest &quest, Entity::Player &player ) { eventMgr().playQuestScene( player, getId(), 100, HIDE_HOTBAR, bindSceneReturn( &SubFst003::Scene00100Return ) ); } - void Scene00100Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + void Scene00100Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result ) { if( result.getResult( 0 ) == 1 ) { - if (player.giveQuestRewards(getId(), 0)) - quest.setUI8BH(0); - player.finishQuest( getId() ); + if( player.giveQuestRewards( getId(), 0 ) ) + quest.setUI8BH( 0 ); + player.finishQuest( getId() ); } } diff --git a/src/scripts/quest/subquest/gridania/SubFst004.cpp b/src/scripts/quest/subquest/gridania/SubFst004.cpp index c12b376c..569a6d4b 100644 --- a/src/scripts/quest/subquest/gridania/SubFst004.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst004.cpp @@ -57,17 +57,17 @@ class SubFst004 : public Sapphire::ScriptAPI::QuestScript { case Actor0: { - Scene00000(quest, player); + Scene00000( quest, player ); break; } case Actor1: { - Scene00001(quest, player); + Scene00001( quest, player ); break; } case Actor2: { - Scene00002(quest, player); + Scene00002( quest, player ); break; } } @@ -88,7 +88,7 @@ class SubFst004 : public Sapphire::ScriptAPI::QuestScript { if( result.getResult( 0 ) == 1 ) // accept quest { - quest.setSeq(Seq1); + quest.setSeq( Seq1 ); } } @@ -101,9 +101,9 @@ class SubFst004 : public Sapphire::ScriptAPI::QuestScript void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) { - player.sendEventNotice(getId(), 0, 2, 21002, 0); - quest.setUI8BH(1); - quest.setSeq(SeqFinish); + player.sendEventNotice( getId(), 0, 2, 21002, 0); + quest.setUI8BH( 1 ); + quest.setSeq( SeqFinish ); } ////////////////////////////////////////////////////////////////////// @@ -115,10 +115,10 @@ class SubFst004 : public Sapphire::ScriptAPI::QuestScript void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) { - if (result.getResult(0) == 1) - Scene00100(quest, player); + if( result.getResult( 0) == 1) + Scene00100( quest, player ); else - Scene00099(quest, player); + Scene00099( quest, player ); } ////////////////////////////////////////////////////////////////////// @@ -130,7 +130,7 @@ class SubFst004 : public Sapphire::ScriptAPI::QuestScript void Scene00099Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) { - eventMgr().playScene(player, getId(), 99, 0, 0); + eventMgr().playScene( player, getId(), 99, 0, 0 ); } ////////////////////////////////////////////////////////////////////// diff --git a/src/scripts/quest/subquest/gridania/SubFst005.cpp b/src/scripts/quest/subquest/gridania/SubFst005.cpp index 6f93d56e..cec9406f 100644 --- a/src/scripts/quest/subquest/gridania/SubFst005.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst005.cpp @@ -17,72 +17,74 @@ using namespace Sapphire; class SubFst005 : public Sapphire::ScriptAPI::QuestScript { - private: - // Basic quest information - // Quest vars / flags used - // GetQuestUI8AL +private: + // Basic quest information + // Quest vars / flags used + // GetQuestUI8AL - // Steps in this quest ( 0 is before accepting, - // 1 is first, 255 means ready for turning it in - enum Sequence : uint8_t - { - Seq0 = 0, - SeqFinish = 255, - }; + // Steps in this quest ( 0 is before accepting, + // 1 is first, 255 means ready for turning it in + enum Sequence : uint8_t + { + Seq0 = 0, + SeqFinish = 255, + }; - // Entities found in the script data of the quest - static constexpr auto Actor0 = 1000100; - static constexpr auto Actor1 = 1000421; - static constexpr auto Seq0Actor0 = 0; - static constexpr auto Seq1Actor1 = 1; + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1000100; + static constexpr auto Actor1 = 1000421; + static constexpr auto Seq0Actor0 = 0; + static constexpr auto Seq1Actor1 = 1; - public: - SubFst005() : Sapphire::ScriptAPI::QuestScript( 65564 ){}; - ~SubFst005() = default; +public: + SubFst005() : Sapphire::ScriptAPI::QuestScript( 65564 ) + {}; + + ~SubFst005() = default; ////////////////////////////////////////////////////////////////////// // Event Handlers - void onTalk( World::Quest& quest, Entity::Player& player, uint64_t actorId ) override + void onTalk( World::Quest &quest, Entity::Player &player, uint64_t actorId ) override { - if ( actorId == Actor0 ) + if( actorId == Actor0 ) { Scene00000( quest, player ); } - else if ( actorId == Actor1 ) + else if( actorId == Actor1 ) { Scene00001( quest, player ); } } - private: +private: ////////////////////////////////////////////////////////////////////// // Available Scenes in this quest, not necessarly all are used ////////////////////////////////////////////////////////////////////// - void Scene00000( World::Quest& quest, Entity::Player& player ) + void Scene00000( World::Quest &quest, Entity::Player &player ) { eventMgr().playQuestScene( player, getId(), 0, NONE, bindSceneReturn( &SubFst005::Scene00000Return ) ); } - void Scene00000Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + void Scene00000Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result ) { - if ( result.getResult( 0 ) == 1 ) + if( result.getResult( 0 ) == 1 ) quest.setSeq( SeqFinish ); } ////////////////////////////////////////////////////////////////////// - void Scene00001( World::Quest& quest, Entity::Player& player ) + void Scene00001( World::Quest &quest, Entity::Player &player ) { eventMgr().playQuestScene( player, getId(), 1, NONE, bindSceneReturn( &SubFst005::Scene00001Return ) ); } - void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + void Scene00001Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result ) { - if ( result.getResult( 0 ) == 1 ) + if( result.getResult( 0 ) == 1 ) { - if ( player.giveQuestRewards( getId(), 0 ) ) + if( player.giveQuestRewards( getId(), 0 ) ) player.finishQuest( getId() ); } } diff --git a/src/scripts/quest/subquest/gridania/SubFst008.cpp b/src/scripts/quest/subquest/gridania/SubFst008.cpp index f717b392..32e492ec 100644 --- a/src/scripts/quest/subquest/gridania/SubFst008.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst008.cpp @@ -17,135 +17,137 @@ using namespace Sapphire; class SubFst008 : public Sapphire::ScriptAPI::QuestScript { - private: - // Basic quest information - // Quest vars / flags used - // UI8AL - // UI8BH +private: + // Basic quest information + // Quest vars / flags used + // UI8AL + // UI8BH - /// Countable Num: 1 Seq: 1 Event: 1 Listener: 1000311 - /// Countable Num: 1 Seq: 255 Event: 1 Listener: 1000629 - // 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, - }; + /// Countable Num: 1 Seq: 1 Event: 1 Listener: 1000311 + /// Countable Num: 1 Seq: 255 Event: 1 Listener: 1000629 + // 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 = 1000372; - static constexpr auto Actor1 = 1000311; - static constexpr auto Actor2 = 1000629; - static constexpr auto Item0 = 2000029; - static constexpr auto Seq0Actor0 = 0; - static constexpr auto Seq1Actor1 = 1; - static constexpr auto Seq2Actor2 = 2; - static constexpr auto Seq2Actor2Npctradeno = 99; - static constexpr auto Seq2Actor2Npctradeok = 100; + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1000372; + static constexpr auto Actor1 = 1000311; + static constexpr auto Actor2 = 1000629; + static constexpr auto Item0 = 2000029; + static constexpr auto Seq0Actor0 = 0; + static constexpr auto Seq1Actor1 = 1; + static constexpr auto Seq2Actor2 = 2; + static constexpr auto Seq2Actor2Npctradeno = 99; + static constexpr auto Seq2Actor2Npctradeok = 100; - public: - SubFst008() : Sapphire::ScriptAPI::QuestScript( 65568 ){}; - ~SubFst008() = default; +public: + SubFst008() : Sapphire::ScriptAPI::QuestScript( 65568 ) + {}; + + ~SubFst008() = default; ////////////////////////////////////////////////////////////////////// // Event Handlers - void onTalk( World::Quest& quest, Entity::Player& player, uint64_t actorId ) override + void onTalk( World::Quest &quest, Entity::Player &player, uint64_t actorId ) override { switch( actorId ) { case Actor0: { - Scene00000(quest, player); + Scene00000( quest, player ); break; } case Actor1: { - Scene00001(quest, player); + Scene00001( quest, player ); break; } case Actor2: { - Scene00002(quest, player); + Scene00002( quest, player ); break; } } } - private: +private: ////////////////////////////////////////////////////////////////////// // Available Scenes in this quest, not necessarly all are used ////////////////////////////////////////////////////////////////////// - void Scene00000( World::Quest& quest, Entity::Player& player ) + void Scene00000( World::Quest &quest, Entity::Player &player ) { eventMgr().playQuestScene( player, getId(), 0, NONE, bindSceneReturn( &SubFst008::Scene00000Return ) ); } - void Scene00000Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + void Scene00000Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result ) { if( result.getResult( 0 ) == 1 ) // accept quest { - quest.setSeq(Seq1); + quest.setSeq( Seq1 ); } } ////////////////////////////////////////////////////////////////////// - void Scene00001( World::Quest& quest, Entity::Player& player ) + void Scene00001( World::Quest &quest, Entity::Player &player ) { eventMgr().playQuestScene( player, getId(), 1, NONE, bindSceneReturn( &SubFst008::Scene00001Return ) ); } - void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + void Scene00001Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result ) { - quest.setUI8BH(1); - player.sendEventNotice(getId(), 0, 0, 0, 0); - quest.setSeq(SeqFinish); + quest.setUI8BH( 1 ); + player.sendEventNotice( getId(), 0, 0, 0, 0 ); + quest.setSeq( SeqFinish ); } ////////////////////////////////////////////////////////////////////// - void Scene00002( World::Quest& quest, Entity::Player& player ) + void Scene00002( World::Quest &quest, Entity::Player &player ) { eventMgr().playQuestScene( player, getId(), 2, NONE, bindSceneReturn( &SubFst008::Scene00002Return ) ); } - void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + void Scene00002Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result ) { - if (result.getResult(0) == 1) - Scene00100(quest, player); + if( result.getResult( 0 ) == 1 ) + Scene00100( quest, player ); else - Scene00099(quest, player); + Scene00099( quest, player ); } ////////////////////////////////////////////////////////////////////// - void Scene00099( World::Quest& quest, Entity::Player& player ) + void Scene00099( World::Quest &quest, Entity::Player &player ) { eventMgr().playQuestScene( player, getId(), 99, NONE, bindSceneReturn( &SubFst008::Scene00099Return ) ); } - void Scene00099Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + void Scene00099Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result ) { - eventMgr().playScene(player, getId(), 99, 0, 0); + eventMgr().playScene( player, getId(), 99, 0, 0 ); } ////////////////////////////////////////////////////////////////////// - void Scene00100( World::Quest& quest, Entity::Player& player ) + void Scene00100( World::Quest &quest, Entity::Player &player ) { eventMgr().playQuestScene( player, getId(), 100, NONE, bindSceneReturn( &SubFst008::Scene00100Return ) ); } - void Scene00100Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + void Scene00100Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result ) { if( result.getResult( 0 ) == 1 ) { - if( player.giveQuestRewards( getId(), result.getResult(1)) ) + if( player.giveQuestRewards( getId(), result.getResult( 1 ) ) ) player.finishQuest( getId() ); } diff --git a/src/world/Actor/Player.h b/src/world/Actor/Player.h index 6cd2ea0c..e33ea974 100644 --- a/src/world/Actor/Player.h +++ b/src/world/Actor/Player.h @@ -114,7 +114,7 @@ namespace Sapphire::Entity int16_t getQuestTracking( uint8_t index ) const; /*! finish a given quest */ - void finishQuest( uint16_t questId ); + void finishQuest( uint16_t questId, uint8_t optionalChoice = 0 ); /*! finish a given quest */ void unfinishQuest( uint16_t questId ); diff --git a/src/world/Actor/PlayerQuest.cpp b/src/world/Actor/PlayerQuest.cpp index 7bda310e..386e0954 100644 --- a/src/world/Actor/PlayerQuest.cpp +++ b/src/world/Actor/PlayerQuest.cpp @@ -17,7 +17,7 @@ using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; using namespace Sapphire::Network::Packets::WorldPackets::Server; -void Sapphire::Entity::Player::finishQuest( uint16_t questId ) +void Sapphire::Entity::Player::finishQuest( uint16_t questId, uint8_t optionalChoice ) { removeQuest( questId ); @@ -183,7 +183,7 @@ bool Sapphire::Entity::Player::giveQuestRewards( uint32_t questId, uint32_t opti uint32_t exp = ( questInfo->data().Reward.ExpBonus * paramGrowth->data().EventExpRate * ( 45 + 5 * questInfo->data().ClassLevel ) ) / 100; - exp = questInfo->data().Reward.ExpBonus; + //exp = questInfo->data().Reward.ExpBonus; //auto rewardItemCount = questInfo->data().Reward.itemReward0.size(); //uint16_t optionalItemCount = static_cast< uint16_t >( questInfo->itemReward1.size() ); diff --git a/src/world/Network/Handlers/PacketHandlers.cpp b/src/world/Network/Handlers/PacketHandlers.cpp index c61a790a..32ba3e2d 100644 --- a/src/world/Network/Handlers/PacketHandlers.cpp +++ b/src/world/Network/Handlers/PacketHandlers.cpp @@ -350,10 +350,10 @@ void Sapphire::Network::GameConnection::zoneJumpHandler( const Packets::FFXIVARR pPopRange->header.transform.rotation.z, rotation ); - auto preparePacket = makeZonePacket< FFXIVIpcPrepareZoning >( player.getId() ); - preparePacket->data().targetZone = pExitRange->data.destTerritoryType; + // auto preparePacket = makeZonePacket< FFXIVIpcPrepareZoning >( player.getId() ); + // preparePacket->data().targetZone = pExitRange->data.destTerritoryType; - server.queueForPlayer( player.getCharacterId(), preparePacket ); + //server.queueForPlayer( player.getCharacterId(), preparePacket ); } } @@ -415,8 +415,11 @@ void Sapphire::Network::GameConnection::syncHandler( const Packets::FFXIVARR_PAC void Sapphire::Network::GameConnection::setLanguageHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { - auto& questMgr = Common::Service< World::Manager::QuestMgr >::ref(); - questMgr.sendQuestsInfo( player ); + if( player.isLogin() ) + { + auto &questMgr = Common::Service< World::Manager::QuestMgr >::ref(); + questMgr.sendQuestsInfo( player ); + } auto& playerMgr = Common::Service< World::Manager::PlayerMgr >::ref(); diff --git a/src/world/WorldServer.cpp b/src/world/WorldServer.cpp index c9ab8879..58a792fe 100644 --- a/src/world/WorldServer.cpp +++ b/src/world/WorldServer.cpp @@ -258,8 +258,6 @@ void Sapphire::World::WorldServer::run( int32_t argc, char* argv[] ) Common::Service< Manager::BlacklistMgr >::set( pBlacklistMgr ); Common::Service< ContentFinder >::set( contentFinder ); - auto& exdData = Common::Service< Sapphire::Data::ExdData >::ref(); - Logger::info( "World server running on {0}:{1}", m_ip, m_port ); mainLoop();