diff --git a/src/scripts/CMakeLists.txt b/src/scripts/CMakeLists.txt index 33459e24..85534757 100644 --- a/src/scripts/CMakeLists.txt +++ b/src/scripts/CMakeLists.txt @@ -45,7 +45,7 @@ foreach(_scriptDir ${children}) MODULE ${SCRIPT_BUILD_FILES} "${SCRIPT_INCLUDE_FILES}" - "${_scriptDir}/ScriptLoader.cpp" ) + "${_scriptDir}/ScriptLoader.cpp" "quest/classquest/MAR/ClsMar999.cpp" "quest/classquest/MAR/ClsMar998.cpp") target_link_libraries( "script_${_name}" world ) diff --git a/src/scripts/quest/classquest/MAR/ClsMar998.cpp b/src/scripts/quest/classquest/MAR/ClsMar998.cpp new file mode 100644 index 00000000..86d5bd46 --- /dev/null +++ b/src/scripts/quest/classquest/MAR/ClsMar998.cpp @@ -0,0 +1,97 @@ +// 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 + +// Quest Script: ClsMar998_00181 +// Quest Name: Way of the Maruader +// Quest ID: 65846 +// Start NPC: 1000926 +// End NPC: 1000927 + +using namespace Sapphire; + +class ClsMar998 : public Sapphire::ScriptAPI::QuestScript +{ +private: + // Basic quest information + // Quest vars / flags used + + // 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 + }; + static constexpr auto Actor0 = 1000926; + static constexpr auto Actor1 = 1000927; + + // Entities found in the script data of the quest + +public: + ClsMar998() : Sapphire::ScriptAPI::QuestScript(65846) {}; + ~ClsMar998() = 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) { + Scene00001(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, NONE, bindSceneReturn(&ClsMar998::Scene00000Return)); + } + + void Scene00000Return(World::Quest& quest, Entity::Player& player, const Event::SceneResult& result) + { + if (result.getResult( 0 ) == 1) + { + quest.setSeq(SEQFINISH); + } + } + + void Scene00001(World::Quest& quest, Entity::Player& player) + { + eventMgr().playQuestScene(player, getId(), 1, NONE, bindSceneReturn(&ClsMar998::Scene00001Return)); + } + + void Scene00001Return(World::Quest& quest, Entity::Player& player, const Event::SceneResult& result) + { + if (result.getResult( 0 ) == 1) + { + player.finishQuest(getId()); + player.setLevelForClass(1, Sapphire::Common::ClassJob::Marauder); + player.setMaxGearSets(player.getMaxGearSets() + 1); + } + } +}; + +EXPOSE_SCRIPT(ClsMar998); \ No newline at end of file diff --git a/src/scripts/quest/classquest/MAR/ClsMar999.cpp b/src/scripts/quest/classquest/MAR/ClsMar999.cpp new file mode 100644 index 00000000..b88f51e2 --- /dev/null +++ b/src/scripts/quest/classquest/MAR/ClsMar999.cpp @@ -0,0 +1,72 @@ +// 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 + +// Quest Script: ClsMar999_00181 +// Quest Name: So You Want to Be an Archer +// Quest ID: 65715 +// Start NPC: 1000926 +// End NPC: 1000926 + +using namespace Sapphire; + +class ClsMar999 : public Sapphire::ScriptAPI::QuestScript +{ +private: + // Basic quest information + // Quest vars / flags used + + // Steps in this quest ( 0 is before accepting, + // 1 is first, 255 means ready for turning it in + enum Sequence : uint8_t + { + }; + static constexpr auto Actor0 = 1000926; + + // Entities found in the script data of the quest + +public: + ClsMar999() : Sapphire::ScriptAPI::QuestScript( 65715 ){}; + ~ClsMar999() = default; + + ////////////////////////////////////////////////////////////////////// + // Event Handlers + void onTalk( World::Quest& quest, Entity::Player& player, uint64_t actorId ) override + { + switch( actorId ) + { + case Actor0: + { + Scene00000( 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( &ClsMar999::Scene00000Return ) ); + } + + void Scene00000Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) + { + if( result.getResult( 0 ) == 1 ) + { + player.finishQuest( getId(), 0 ); + } + } +}; + +EXPOSE_SCRIPT( ClsMar999 ); \ No newline at end of file