1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-30 16:17:46 +00:00

sendEventNotice has been moved from player to eventMgr, reformatted scripts

This commit is contained in:
Mordred 2021-12-21 13:48:24 +01:00
parent d6dd81ad1b
commit 9f83094c43
33 changed files with 1386 additions and 1348 deletions

View file

@ -8,7 +8,7 @@
using namespace Sapphire; using namespace Sapphire;
class Aetheryte : class Aetheryte :
public Sapphire::ScriptAPI::EventScript public Sapphire::ScriptAPI::EventScript
{ {
private: private:
constexpr static auto ACTION_ATTUNE = 0x13; constexpr static auto ACTION_ATTUNE = 0x13;
@ -22,7 +22,7 @@ private:
public: public:
Aetheryte() : Aetheryte() :
Sapphire::ScriptAPI::EventScript( 0x00050000 ) Sapphire::ScriptAPI::EventScript( 0x00050000 )
{ {
} }
@ -30,7 +30,7 @@ public:
{ {
if( player.isAetheryteRegistered( eventId & 0xFFFF ) ) if( player.isAetheryteRegistered( eventId & 0xFFFF ) )
{ {
eventMgr().playScene( player, eventId, 2, 0, [this]( Entity::Player& player, const Event::SceneResult& result ) eventMgr().playScene( player, eventId, 2, 0, [ this ]( Entity::Player& player, const Event::SceneResult& result )
{ {
auto destination = result.getResult( 0 ); auto destination = result.getResult( 0 );
if( result.numOfResults == 1 && destination != 0 ) if( result.numOfResults == 1 && destination != 0 )
@ -42,15 +42,15 @@ public:
else else
{ {
eventMgr().eventActionStart( player, eventId, ACTION_ATTUNE, eventMgr().eventActionStart( player, eventId, ACTION_ATTUNE,
[ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional ) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
player.registerAetheryte( eventId & 0xFFFF ); player.registerAetheryte( eventId & 0xFFFF );
eventMgr().playScene( player, eventId, 3, 0 ); eventMgr().playScene( player, eventId, 3, 0 );
}, },
[]( Entity::Player& ply, uint32_t evntId, uint64_t additional ) []( Entity::Player& ply, uint32_t evntId, uint64_t additional )
{ {
}, 0 ); }, 0 );
} }
} }
@ -60,12 +60,12 @@ public:
if( player.isAetheryteRegistered( eventId & 0xFFFF ) ) if( player.isAetheryteRegistered( eventId & 0xFFFF ) )
{ {
// eventParam4 (or params[1] if using EventPlay8, which is actually used on retail) anything bigger than 1 will show select instance menu item // eventParam4 (or params[1] if using EventPlay8, which is actually used on retail) anything bigger than 1 will show select instance menu item
eventMgr().playScene( player, eventId, 0, 1, { 1, 2 }, [this]( Entity::Player& player, const Event::SceneResult& result ) eventMgr().playScene( player, eventId, 0, 1, { 1, 2 }, [ this ]( Entity::Player& player, const Event::SceneResult& result )
{ {
if( result.numOfResults == 1 ) // set homepoint if( result.numOfResults == 1 ) // set homepoint
{ {
player.setHomepoint( result.eventId & 0xFFFF ); player.setHomepoint( result.eventId & 0xFFFF );
player.sendEventNotice( result.eventId, 2, 0xEA, 0, 0 ); eventMgr().sendEventNotice( player, result.eventId, 2, 0xEA, 0, 0 );
} }
else if( result.numOfResults == 2 ) // aethernet access else if( result.numOfResults == 2 ) // aethernet access
{ {
@ -90,22 +90,22 @@ public:
else else
{ {
eventMgr().eventActionStart( player, eventId, ACTION_ATTUNE, eventMgr().eventActionStart( player, eventId, ACTION_ATTUNE,
[this]( Entity::Player& player, uint32_t eventId, uint64_t additional ) [ this ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
player.registerAetheryte( eventId & 0xFFFF ); player.registerAetheryte( eventId & 0xFFFF );
if( player.isActionLearned( Common::UnlockEntry::Teleport ) ) if( player.isActionLearned( Common::UnlockEntry::Teleport ) )
{ {
player.sendEventNotice( eventId, 0, 2, 0, 0 ); eventMgr().sendEventNotice( player, eventId, 0, 2, 0, 0 );
} }
else else
{ {
player.sendEventNotice( eventId, 0, 1, 1, 0 ); eventMgr().sendEventNotice( player, eventId, 0, 1, 1, 0 );
player.learnAction( Common::UnlockEntry::Teleport ); player.learnAction( Common::UnlockEntry::Teleport );
} }
}, },
[]( Entity::Player& player, uint32_t eventId, uint64_t additional ) []( Entity::Player& player, uint32_t eventId, uint64_t additional )
{}, 0 ); {}, 0 );
} }
} }

View file

@ -69,11 +69,11 @@ private:
void checkQuestCompletion( World::Quest& quest, Entity::Player& player, uint32_t varIdx ) void checkQuestCompletion( World::Quest& quest, Entity::Player& player, uint32_t varIdx )
{ {
if( varIdx == 3 ) if( varIdx == 3 )
player.sendEventNotice( getId(), 1, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 1, 0, 0, 0 );
else if( varIdx == 2 ) else if( varIdx == 2 )
player.sendEventNotice( getId(), 2, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 2, 0, 0, 0 );
else else
player.sendEventNotice( getId(), 0, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 0, 0, 0, 0 );
auto var_attuned = quest.getUI8AL(); auto var_attuned = quest.getUI8AL();
auto var_class = quest.getUI8BH(); auto var_class = quest.getUI8BH();
@ -199,7 +199,7 @@ public:
// attune // attune
auto event = [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional ) auto event = [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
player.sendEventNotice( 0x050002, 0, 1, 0, 0 ); eventMgr().sendEventNotice( player, 0x050002, 0, 1, 0, 0 );
player.registerAetheryte( 2 ); player.registerAetheryte( 2 );
player.learnAction( Common::UnlockEntry::Return ); player.learnAction( Common::UnlockEntry::Return );

View file

@ -59,7 +59,9 @@ private:
static constexpr auto UnlockDesion = 14; static constexpr auto UnlockDesion = 14;
public: public:
ManFst003() : Sapphire::ScriptAPI::QuestScript( 65659 ){}; ManFst003() : Sapphire::ScriptAPI::QuestScript( 65659 )
{};
~ManFst003() = default; ~ManFst003() = default;
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -73,14 +75,14 @@ public:
else if( actorId == Actor1 ) else if( actorId == Actor1 )
{ {
eventMgr().eventActionStart( player, 0x050002, 0x13, eventMgr().eventActionStart( player, 0x050002, 0x13,
[ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional ) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
player.sendEventNotice( 0x050002, 0, 1, 0, 0 ); eventMgr().sendEventNotice( player, 0x050002, 0, 1, 0, 0 );
player.registerAetheryte( 2 ); player.registerAetheryte( 2 );
player.learnAction( Common::UnlockEntry::Return ); player.learnAction( Common::UnlockEntry::Return );
Scene00051( quest, player ); Scene00051( quest, player );
}, },
nullptr, quest.getId() ); nullptr, quest.getId() );
} }
else if( actorId == Actor2 ) else if( actorId == Actor2 )
{ {
@ -107,15 +109,15 @@ private:
if( varIdx == 3 ) if( varIdx == 3 )
{ {
player.sendEventNotice( getId(), 1, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 1, 0, 0, 0 );
} }
else if( varIdx == 2 ) else if( varIdx == 2 )
{ {
player.sendEventNotice( getId(), 2, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 2, 0, 0, 0 );
} }
else else
{ {
player.sendEventNotice( getId(), 0, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 0, 0, 0, 0 );
} }
auto QUEST_VAR_ATTUNE = quest.getUI8AL(); auto QUEST_VAR_ATTUNE = quest.getUI8AL();

View file

@ -59,7 +59,9 @@ private:
static constexpr auto UnlockDesion = 14; static constexpr auto UnlockDesion = 14;
public: public:
ManFst004() : Sapphire::ScriptAPI::QuestScript( 65660 ){}; ManFst004() : Sapphire::ScriptAPI::QuestScript( 65660 )
{};
~ManFst004() = default; ~ManFst004() = default;
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -76,14 +78,14 @@ public:
// player.eventStart( actorId, 0x050002, 7, 0, 0); // player.eventStart( actorId, 0x050002, 7, 0, 0);
// starting the eventaction 0x13 ( attuning ) // starting the eventaction 0x13 ( attuning )
eventMgr().eventActionStart( player, 0x050002, 0x13, eventMgr().eventActionStart( player, 0x050002, 0x13,
[ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional ) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
player.sendEventNotice( 0x050002, 0, 1, 0, 0 ); eventMgr().sendEventNotice( player, 0x050002, 0, 1, 0, 0 );
player.registerAetheryte( 2 ); player.registerAetheryte( 2 );
player.learnAction( Common::UnlockEntry::Return ); player.learnAction( Common::UnlockEntry::Return );
Scene00051( quest, player ); Scene00051( quest, player );
}, },
nullptr, quest.getId() ); nullptr, quest.getId() );
} }
else if( actorId == ManFst004::Actor2 ) else if( actorId == ManFst004::Actor2 )
{ {
@ -104,15 +106,15 @@ private:
{ {
if( varIdx == 3 ) if( varIdx == 3 )
{ {
player.sendEventNotice( getId(), 1, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 1, 0, 0, 0 );
} }
else if( varIdx == 2 ) else if( varIdx == 2 )
{ {
player.sendEventNotice( getId(), 2, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 2, 0, 0, 0 );
} }
else else
{ {
player.sendEventNotice( getId(), 0, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 0, 0, 0, 0 );
} }
auto QUEST_VAR_ATTUNE = quest.getUI8AL(); auto QUEST_VAR_ATTUNE = quest.getUI8AL();
@ -196,7 +198,7 @@ private:
void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
eventMgr().playQuestScene( player, getId(), 4, 0 ); eventMgr().playQuestScene( player, getId(), 4, 0 );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////

View file

@ -56,7 +56,7 @@ public:
eventMgr().eventActionStart( player, 0x050002, 0x13, eventMgr().eventActionStart( player, 0x050002, 0x13,
[ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional ) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
player.sendEventNotice( 0x050002, 0, 1, 0, 0 ); eventMgr().sendEventNotice( player, 0x050002, 0, 1, 0, 0 );
player.registerAetheryte( 2 ); player.registerAetheryte( 2 );
player.learnAction( Common::UnlockEntry::Return ); player.learnAction( Common::UnlockEntry::Return );
Scene00002( player ); Scene00002( player );
@ -83,15 +83,15 @@ private:
{ {
if( varIdx == 1 ) if( varIdx == 1 )
{ {
player.sendEventNotice( getId(), 1, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 1, 0, 0, 0 );
} }
else if( varIdx == 2 ) else if( varIdx == 2 )
{ {
player.sendEventNotice( getId(), 2, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 2, 0, 0, 0 );
} }
else else
{ {
player.sendEventNotice( getId(), 0, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 0, 0, 0, 0 );
} }
auto pQuest = player.getQuest( getId() ); auto pQuest = player.getQuest( getId() );

View file

@ -68,14 +68,14 @@ public:
else if( actorId == Aetheryte0 ) else if( actorId == Aetheryte0 )
{ {
eventMgr().eventActionStart( player, 0x050002, 0x13, eventMgr().eventActionStart( player, 0x050002, 0x13,
[ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional ) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
player.sendEventNotice( 0x050002, 0, 1, 0, 0 ); eventMgr().sendEventNotice( player, 0x050002, 0, 1, 0, 0 );
player.registerAetheryte( 2 ); player.registerAetheryte( 2 );
player.learnAction( Common::UnlockEntry::Return ); player.learnAction( Common::UnlockEntry::Return );
Scene00002( player ); Scene00002( player );
}, },
nullptr, getId() ); nullptr, getId() );
} }
else if( actorId == Actor1 ) else if( actorId == Actor1 )
{ {
@ -97,15 +97,15 @@ private:
{ {
if( varIdx == 1 ) if( varIdx == 1 )
{ {
player.sendEventNotice( getId(), 1, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 1, 0, 0, 0 );
} }
else if( varIdx == 2 ) else if( varIdx == 2 )
{ {
player.sendEventNotice( getId(), 2, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 2, 0, 0, 0 );
} }
else else
{ {
player.sendEventNotice( getId(), 0, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 0, 0, 0, 0 );
} }
auto questId = getId(); auto questId = getId();
@ -127,102 +127,102 @@ private:
void Scene00000( Entity::Player& player ) void Scene00000( Entity::Player& player )
{ {
eventMgr().playScene( player, getId(), 0, HIDE_HOTBAR, eventMgr().playScene( player, getId(), 0, HIDE_HOTBAR,
[ & ]( Entity::Player& player, const Event::SceneResult& result ) [ & ]( Entity::Player& player, const Event::SceneResult& result )
{ {
if( result.getResult( 0 ) == 1 ) if( result.getResult( 0 ) == 1 )
{ {
Scene00001( player ); Scene00001( player );
} }
} ); } );
} }
void Scene00001( Entity::Player& player ) void Scene00001( Entity::Player& player )
{ {
eventMgr().playScene( player, getId(), 1, FADE_OUT | CONDITION_CUTSCENE | HIDE_UI, eventMgr().playScene( player, getId(), 1, FADE_OUT | CONDITION_CUTSCENE | HIDE_UI,
[ & ]( Entity::Player& player, const Event::SceneResult& result ) [ & ]( Entity::Player& player, const Event::SceneResult& result )
{ {
auto pQuest = player.getQuest( getId() ); auto pQuest = player.getQuest( getId() );
if( !pQuest ) if( !pQuest )
return; return;
pQuest->setSeq( Seq1 ); pQuest->setSeq( Seq1 );
pQuest->setUI8CH( 1 ); pQuest->setUI8CH( 1 );
} ); } );
} }
void Scene00002( Entity::Player& player ) void Scene00002( Entity::Player& player )
{ {
eventMgr().playScene( player, getId(), 2, HIDE_HOTBAR, eventMgr().playScene( player, getId(), 2, HIDE_HOTBAR,
[ & ]( Entity::Player& player, const Event::SceneResult& result ) [ & ]( Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00003( player ); Scene00003( player );
} ); } );
} }
void Scene00003( Entity::Player& player ) void Scene00003( Entity::Player& player )
{ {
eventMgr().playScene( player, getId(), 3, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ, eventMgr().playScene( player, getId(), 3, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ,
[ & ]( Entity::Player& player, const Event::SceneResult& result ) [ & ]( Entity::Player& player, const Event::SceneResult& result )
{ {
auto pQuest = player.getQuest( getId() ); auto pQuest = player.getQuest( getId() );
if( !pQuest ) if( !pQuest )
return; return;
pQuest->setUI8BL( 1 ); pQuest->setUI8BL( 1 );
checkQuestCompletion( player, 0 ); checkQuestCompletion( player, 0 );
} ); } );
} }
void Scene00004( Entity::Player& player ) void Scene00004( Entity::Player& player )
{ {
eventMgr().playScene( player, getId(), 4, HIDE_HOTBAR, eventMgr().playScene( player, getId(), 4, HIDE_HOTBAR,
[ & ]( Entity::Player& player, const Event::SceneResult& result ) [ & ]( Entity::Player& player, const Event::SceneResult& result )
{ {
if( result.getResult( 0 ) == 1 ) if( result.getResult( 0 ) == 1 )
{ {
Scene00005( player ); Scene00005( player );
} }
else else
return; return;
} ); } );
} }
void Scene00005( Entity::Player& player ) void Scene00005( Entity::Player& player )
{ {
eventMgr().playScene( player, getId(), 5, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ, eventMgr().playScene( player, getId(), 5, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ,
[ & ]( Entity::Player& player, const Event::SceneResult& result ) [ & ]( Entity::Player& player, const Event::SceneResult& result )
{ {
auto pQuest = player.getQuest( getId() ); auto pQuest = player.getQuest( getId() );
if( !pQuest ) if( !pQuest )
return; return;
pQuest->setUI8CH( 0 ); pQuest->setUI8CH( 0 );
pQuest->setUI8BH( 1 ); pQuest->setUI8BH( 1 );
checkQuestCompletion( player, 1 ); checkQuestCompletion( player, 1 );
} ); } );
} }
void Scene00006( Entity::Player& player ) void Scene00006( Entity::Player& player )
{ {
eventMgr().playScene( player, getId(), 6, HIDE_HOTBAR, eventMgr().playScene( player, getId(), 6, HIDE_HOTBAR,
[ & ]( Entity::Player& player, const Event::SceneResult& result ) [ & ]( Entity::Player& player, const Event::SceneResult& result )
{ {
auto pQuest = player.getQuest( getId() ); auto pQuest = player.getQuest( getId() );
if( !pQuest ) if( !pQuest )
return; return;
pQuest->setUI8AL( 1 ); pQuest->setUI8AL( 1 );
checkQuestCompletion( player, 2 ); checkQuestCompletion( player, 2 );
} ); } );
} }
void Scene00007( Entity::Player& player ) void Scene00007( Entity::Player& player )
{ {
eventMgr().playScene( player, getId(), 7, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ, eventMgr().playScene( player, getId(), 7, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ,
[ & ]( Entity::Player& player, const Event::SceneResult& result ) [ & ]( Entity::Player& player, const Event::SceneResult& result )
{ {
if( result.getResult( 0 ) == 1 ) if( result.getResult( 0 ) == 1 )
{ {
player.finishQuest( getId(), result.getResult( 1 ) ); player.finishQuest( getId(), result.getResult( 1 ) );
} }
} ); } );
} }
}; };

View file

@ -88,7 +88,7 @@ public:
eventMgr().eventActionStart( player, 0x050002, 0x13, eventMgr().eventActionStart( player, 0x050002, 0x13,
[ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional ) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
player.sendEventNotice( 0x050002, 0, 1, 0, 0 ); eventMgr().sendEventNotice( player, 0x050002, 0, 1, 0, 0 );
player.registerAetheryte( 2 ); player.registerAetheryte( 2 );
player.learnAction( Common::UnlockEntry::Return ); player.learnAction( Common::UnlockEntry::Return );
Scene00001( quest, player ); Scene00001( quest, player );
@ -103,15 +103,15 @@ private:
{ {
if( varIdx == 1 ) if( varIdx == 1 )
{ {
player.sendEventNotice( getId(), 1, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 1, 0, 0, 0 );
} }
else if( varIdx == 2 ) else if( varIdx == 2 )
{ {
player.sendEventNotice( getId(), 2, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 2, 0, 0, 0 );
} }
else else
{ {
player.sendEventNotice( getId(), 0, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 0, 0, 0, 0 );
} }
auto QUEST_VAR_ATTUNE = quest.getUI8AL(); auto QUEST_VAR_ATTUNE = quest.getUI8AL();

View file

@ -88,7 +88,7 @@ public:
eventMgr().eventActionStart( player, 0x050002, 0x13, eventMgr().eventActionStart( player, 0x050002, 0x13,
[ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional ) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
player.sendEventNotice( 0x050002, 0, 1, 0, 0 ); eventMgr().sendEventNotice( player, 0x050002, 0, 1, 0, 0 );
player.registerAetheryte( 2 ); player.registerAetheryte( 2 );
player.learnAction( Common::UnlockEntry::Return ); player.learnAction( Common::UnlockEntry::Return );
Scene00001( player ); Scene00001( player );
@ -103,15 +103,15 @@ private:
{ {
if( varIdx == 1 ) if( varIdx == 1 )
{ {
player.sendEventNotice( getId(), 1, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 1, 0, 0, 0 );
} }
else if( varIdx == 2 ) else if( varIdx == 2 )
{ {
player.sendEventNotice( getId(), 2, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 2, 0, 0, 0 );
} }
else else
{ {
player.sendEventNotice( getId(), 0, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 0, 0, 0, 0 );
} }
auto pQuest = player.getQuest( getId() ); auto pQuest = player.getQuest( getId() );

View file

@ -88,7 +88,7 @@ public:
eventMgr().eventActionStart( player, 0x050002, 0x13, eventMgr().eventActionStart( player, 0x050002, 0x13,
[ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional ) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
player.sendEventNotice( 0x050002, 0, 1, 0, 0 ); eventMgr().sendEventNotice( player, 0x050002, 0, 1, 0, 0 );
player.registerAetheryte( 2 ); player.registerAetheryte( 2 );
player.learnAction( Common::UnlockEntry::Return ); player.learnAction( Common::UnlockEntry::Return );
Scene00001( player ); Scene00001( player );
@ -103,15 +103,15 @@ private:
{ {
if( varIdx == 1 ) if( varIdx == 1 )
{ {
player.sendEventNotice( getId(), 1, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 1, 0, 0, 0 );
} }
else if( varIdx == 2 ) else if( varIdx == 2 )
{ {
player.sendEventNotice( getId(), 2, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 2, 0, 0, 0 );
} }
else else
{ {
player.sendEventNotice( getId(), 0, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 0, 0, 0, 0 );
} }
auto pQuest = player.getQuest( getId() ); auto pQuest = player.getQuest( getId() );

View file

@ -143,23 +143,23 @@ class ClsArc004 : public Sapphire::ScriptAPI::QuestScript
} }
case Eobject3: case Eobject3:
{ {
eventMgr().eventActionStart(player, getId(), 0x0A, eventMgr().eventActionStart( player, getId(), 0x0A,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [&]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00013(quest, player); Scene00013( quest, player );
player.sendEventNotice(getId(), 2, 2, 0, 0); eventMgr().sendEventNotice( player, getId(), 2, 2, 0, 0 );
}, },
nullptr, 0); nullptr, 0);
break; break;
} }
case Eobject4: case Eobject4:
{ {
eventMgr().eventActionStart(player, getId(), 0x01, eventMgr().eventActionStart( player, getId(), 0x01,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [&]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00015(quest, player); Scene00015( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
} }
@ -169,20 +169,20 @@ class ClsArc004 : public Sapphire::ScriptAPI::QuestScript
private: private:
void checkQuestCompletion(World::Quest& quest, Entity::Player& player) void checkQuestCompletion( World::Quest& quest, Entity::Player& player )
{ {
auto currentCC = quest.getUI8AL(); auto currentCC = quest.getUI8AL();
player.sendEventNotice(getId(), 1, 2, currentCC + 1, 3); eventMgr().sendEventNotice( player, getId(), 1, 2, currentCC + 1, 3 );
if (currentCC + 1 >= 3) if( currentCC + 1 >= 3 )
{ {
quest.setSeq(Seq3); quest.setSeq( Seq3 );
quest.setUI8AL(0); quest.setUI8AL( 0 );
} }
else else
{ {
quest.setUI8AL(currentCC + 1); quest.setUI8AL( currentCC + 1 );
} }
} }
@ -199,7 +199,7 @@ class ClsArc004 : public Sapphire::ScriptAPI::QuestScript
{ {
if( result.getResult( 0 ) == 1 ) // accept quest if( result.getResult( 0 ) == 1 ) // accept quest
{ {
Scene00001(quest, player); Scene00001( quest, player );
} }
} }
@ -224,8 +224,8 @@ class ClsArc004 : public Sapphire::ScriptAPI::QuestScript
void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
player.sendEventNotice(getId(), 0, 2, 0, 0); eventMgr().sendEventNotice( player, getId(), 0, 2, 0, 0 );
quest.setSeq(Seq2); quest.setSeq( Seq2 );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -263,8 +263,8 @@ class ClsArc004 : public Sapphire::ScriptAPI::QuestScript
void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
quest.setBitFlag8(3, true); quest.setBitFlag8( 3, true );
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -384,7 +384,7 @@ class ClsArc004 : public Sapphire::ScriptAPI::QuestScript
void Scene00015Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00015Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00016(quest, player); Scene00016( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -396,12 +396,13 @@ class ClsArc004 : public Sapphire::ScriptAPI::QuestScript
void Scene00016Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00016Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
if (result.getResult(0) == 1) { if( result.getResult( 0) == 1 )
quest.setSeq(Seq5); {
quest.setSeq( Seq5 );
auto& pTeriMgr = Common::Service< Sapphire::World::Manager::TerritoryMgr >::ref(); auto& pTeriMgr = Common::Service< Sapphire::World::Manager::TerritoryMgr >::ref();
eventMgr().eventFinish(player, result.eventId, 0); eventMgr().eventFinish( player, result.eventId, 0 );
pTeriMgr.createAndJoinQuestBattle(player, Questbattle0); pTeriMgr.createAndJoinQuestBattle( player, Questbattle0 );
} }
} }
@ -426,8 +427,8 @@ class ClsArc004 : public Sapphire::ScriptAPI::QuestScript
void Scene00018Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00018Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
player.sendEventNotice(getId(), 4, 2, 0, 0); eventMgr().sendEventNotice( player, getId(), 4, 2, 0, 0 );
quest.setSeq(SeqFinish); quest.setSeq( SeqFinish );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////

View file

@ -18,82 +18,84 @@ using namespace Sapphire;
class ClsArc005 : public Sapphire::ScriptAPI::QuestScript class ClsArc005 : public Sapphire::ScriptAPI::QuestScript
{ {
private: private:
// Basic quest information // Basic quest information
// Quest vars / flags used // Quest vars / flags used
// BitFlag8 // BitFlag8
// UI8AL // UI8AL
/// Countable Num: 1 Seq: 1 Event: 1 Listener: 1000204 /// Countable Num: 1 Seq: 1 Event: 1 Listener: 1000204
/// Countable Num: 1 Seq: 2 Event: 1 Listener: 1000199 /// Countable Num: 1 Seq: 2 Event: 1 Listener: 1000199
/// Countable Num: 1 Seq: 3 Event: 1 Listener: 2000951 /// Countable Num: 1 Seq: 3 Event: 1 Listener: 2000951
/// Countable Num: 1 Seq: 4 Event: 1 Listener: 1000534 /// Countable Num: 1 Seq: 4 Event: 1 Listener: 1000534
/// Countable Num: 1 Seq: 255 Event: 1 Listener: 2001840 /// Countable Num: 1 Seq: 255 Event: 1 Listener: 2001840
// Steps in this quest ( 0 is before accepting, // Steps in this quest ( 0 is before accepting,
// 1 is first, 255 means ready for turning it in // 1 is first, 255 means ready for turning it in
enum Sequence : uint8_t enum Sequence : uint8_t
{ {
Seq0 = 0, Seq0 = 0,
Seq1 = 1, Seq1 = 1,
Seq2 = 2, Seq2 = 2,
Seq3 = 3, Seq3 = 3,
Seq4 = 4, Seq4 = 4,
SeqFinish = 255, SeqFinish = 255,
}; };
// Entities found in the script data of the quest // Entities found in the script data of the quest
static constexpr auto Actor0 = 1000200; static constexpr auto Actor0 = 1000200;
static constexpr auto Actor1 = 1000204; static constexpr auto Actor1 = 1000204;
static constexpr auto Actor2 = 1000199; static constexpr auto Actor2 = 1000199;
static constexpr auto Actor3 = 1000534; static constexpr auto Actor3 = 1000534;
static constexpr auto Actor4 = 1001284; static constexpr auto Actor4 = 1001284;
static constexpr auto Actor5 = 1003025; static constexpr auto Actor5 = 1003025;
static constexpr auto Actor6 = 1003026; static constexpr auto Actor6 = 1003026;
static constexpr auto Eobject0 = 2000951; static constexpr auto Eobject0 = 2000951;
static constexpr auto Eobject1 = 2001840; static constexpr auto Eobject1 = 2001840;
static constexpr auto EventActionSearch = 1; static constexpr auto EventActionSearch = 1;
static constexpr auto EventActionWaiting = 10; static constexpr auto EventActionWaiting = 10;
static constexpr auto LocActor5Action1 = 834; static constexpr auto LocActor5Action1 = 834;
static constexpr auto LocPosActor5 = 3877820; static constexpr auto LocPosActor5 = 3877820;
static constexpr auto LocPosPc = 3877813; static constexpr auto LocPosPc = 3877813;
static constexpr auto Questbattle0 = 4; static constexpr auto Questbattle0 = 4;
static constexpr auto Territorytype0 = 230; static constexpr auto Territorytype0 = 230;
public: public:
ClsArc005() : Sapphire::ScriptAPI::QuestScript( 65607 ){}; ClsArc005() : Sapphire::ScriptAPI::QuestScript( 65607 )
~ClsArc005() = default; {};
~ClsArc005() = default;
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Event Handlers // 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 ) switch( actorId )
{ {
case Actor0: case Actor0:
{ {
if (!player.hasQuest(getId())) if( !player.hasQuest( getId()))
Scene00000(quest, player); Scene00000( quest, player );
else if (quest.getSeq() == SeqFinish) else if( quest.getSeq() == SeqFinish )
Scene00010(quest, player); Scene00010( quest, player );
break; break;
} }
case Actor1: case Actor1:
{ {
if (quest.getSeq() == Seq1) if( quest.getSeq() == Seq1 )
Scene00002(quest, player); Scene00002( quest, player );
break; break;
} }
case Actor2: case Actor2:
{ {
if (quest.getSeq() == Seq2) if( quest.getSeq() == Seq2 )
Scene00003(quest, player); Scene00003( quest, player );
break; break;
} }
case Actor3: case Actor3:
{ {
if (quest.getSeq() == Seq4) if( quest.getSeq() == Seq4 )
Scene00006(quest, player); Scene00006( quest, player );
break; break;
} }
case Actor4: case Actor4:
@ -110,161 +112,162 @@ class ClsArc005 : public Sapphire::ScriptAPI::QuestScript
} }
case Eobject0: case Eobject0:
{ {
eventMgr().eventActionStart(player, getId(), 0x0A, eventMgr().eventActionStart( player, getId(), 0x0A,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player &player, uint32_t eventId, uint64_t additional )
{ {
Scene00004(quest, player); Scene00004( quest, player );
player.sendEventNotice(getId(), 2, 2, 0, 0); eventMgr().sendEventNotice( player, getId(), 2, 2, 0, 0 );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
} }
} }
private: private:
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Available Scenes in this quest, not necessarly all are used // 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( &ClsArc005::Scene00000Return ) ); eventMgr().playQuestScene( player, getId(), 0, HIDE_HOTBAR, bindSceneReturn( &ClsArc005::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 if( result.getResult( 0 ) == 1 ) // accept quest
{ {
Scene00001(quest, player); Scene00001( quest, player );
} }
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
void Scene00001( World::Quest& quest, Entity::Player& player ) void Scene00001( World::Quest &quest, Entity::Player &player )
{ {
eventMgr().playQuestScene( player, getId(), 1, HIDE_HOTBAR, bindSceneReturn( &ClsArc005::Scene00001Return ) ); eventMgr().playQuestScene( player, getId(), 1, HIDE_HOTBAR, bindSceneReturn( &ClsArc005::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.setSeq(Seq1); quest.setSeq( Seq1 );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
void Scene00002( World::Quest& quest, Entity::Player& player ) void Scene00002( World::Quest &quest, Entity::Player &player )
{ {
eventMgr().playQuestScene( player, getId(), 2, HIDE_HOTBAR, bindSceneReturn( &ClsArc005::Scene00002Return ) ); eventMgr().playQuestScene( player, getId(), 2, HIDE_HOTBAR, bindSceneReturn( &ClsArc005::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 )
{ {
player.sendEventNotice(getId(), 0, 2, 0, 0); eventMgr().sendEventNotice( player, getId(), 0, 2, 0, 0 );
quest.setSeq(Seq2); quest.setSeq( Seq2 );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
void Scene00003( World::Quest& quest, Entity::Player& player ) void Scene00003( World::Quest &quest, Entity::Player &player )
{ {
eventMgr().playQuestScene( player, getId(), 3, HIDE_HOTBAR, bindSceneReturn( &ClsArc005::Scene00003Return ) ); eventMgr().playQuestScene( player, getId(), 3, HIDE_HOTBAR, bindSceneReturn( &ClsArc005::Scene00003Return ) );
} }
void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00003Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result )
{ {
player.sendEventNotice(getId(), 1, 2, 0, 0); eventMgr().sendEventNotice( player, getId(), 1, 2, 0, 0 );
quest.setSeq(Seq3); quest.setSeq( Seq3 );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
void Scene00004( World::Quest& quest, Entity::Player& player ) void Scene00004( World::Quest &quest, Entity::Player &player )
{ {
eventMgr().playQuestScene( player, getId(), 4, HIDE_HOTBAR, bindSceneReturn( &ClsArc005::Scene00004Return ) ); eventMgr().playQuestScene( player, getId(), 4, HIDE_HOTBAR, bindSceneReturn( &ClsArc005::Scene00004Return ) );
} }
void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00004Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result )
{ {
Scene00005(quest, player); Scene00005( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
void Scene00005( World::Quest& quest, Entity::Player& player ) void Scene00005( World::Quest &quest, Entity::Player &player )
{ {
eventMgr().playQuestScene( player, getId(), 5, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ, bindSceneReturn( &ClsArc005::Scene00005Return ) ); eventMgr().playQuestScene( player, getId(), 5, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ, bindSceneReturn( &ClsArc005::Scene00005Return ) );
} }
void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00005Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result )
{ {
quest.setSeq(Seq4); quest.setSeq( Seq4 );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
void Scene00006( World::Quest& quest, Entity::Player& player ) void Scene00006( World::Quest &quest, Entity::Player &player )
{ {
eventMgr().playQuestScene( player, getId(), 6, HIDE_HOTBAR, bindSceneReturn( &ClsArc005::Scene00006Return ) ); eventMgr().playQuestScene( player, getId(), 6, HIDE_HOTBAR, bindSceneReturn( &ClsArc005::Scene00006Return ) );
} }
void Scene00006Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00006Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result )
{ {
Scene00007(quest, player); Scene00007( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
void Scene00007( World::Quest& quest, Entity::Player& player ) void Scene00007( World::Quest &quest, Entity::Player &player )
{ {
eventMgr().playQuestScene( player, getId(), 7, HIDE_HOTBAR, bindSceneReturn( &ClsArc005::Scene00007Return ) ); eventMgr().playQuestScene( player, getId(), 7, HIDE_HOTBAR, bindSceneReturn( &ClsArc005::Scene00007Return ) );
} }
void Scene00007Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00007Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result )
{ {
if (result.getResult(0) == 1) { if( result.getResult( 0 ) == 1 )
quest.setSeq(SeqFinish); {
auto& pTeriMgr = Common::Service< Sapphire::World::Manager::TerritoryMgr >::ref(); quest.setSeq( SeqFinish );
auto &pTeriMgr = Common::Service< Sapphire::World::Manager::TerritoryMgr >::ref();
eventMgr().eventFinish(player, result.eventId, 0); eventMgr().eventFinish( player, result.eventId, 0 );
pTeriMgr.createAndJoinQuestBattle(player, Questbattle0); pTeriMgr.createAndJoinQuestBattle( player, Questbattle0 );
} }
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
void Scene00008( World::Quest& quest, Entity::Player& player ) void Scene00008( World::Quest &quest, Entity::Player &player )
{ {
eventMgr().playQuestScene( player, getId(), 8, HIDE_HOTBAR, bindSceneReturn( &ClsArc005::Scene00008Return ) ); eventMgr().playQuestScene( player, getId(), 8, HIDE_HOTBAR, bindSceneReturn( &ClsArc005::Scene00008Return ) );
} }
void Scene00008Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00008Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result )
{ {
//Empty //Empty
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
void Scene00009( World::Quest& quest, Entity::Player& player ) void Scene00009( World::Quest &quest, Entity::Player &player )
{ {
eventMgr().playQuestScene( player, getId(), 9, HIDE_HOTBAR, bindSceneReturn( &ClsArc005::Scene00009Return ) ); eventMgr().playQuestScene( player, getId(), 9, HIDE_HOTBAR, bindSceneReturn( &ClsArc005::Scene00009Return ) );
} }
void Scene00009Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00009Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result )
{ {
//Empty //Empty
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
void Scene00010( World::Quest& quest, Entity::Player& player ) void Scene00010( World::Quest &quest, Entity::Player &player )
{ {
eventMgr().playQuestScene( player, getId(), 10, HIDE_HOTBAR, bindSceneReturn( &ClsArc005::Scene00010Return ) ); eventMgr().playQuestScene( player, getId(), 10, HIDE_HOTBAR, bindSceneReturn( &ClsArc005::Scene00010Return ) );
} }
void Scene00010Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00010Return( World::Quest &quest, Entity::Player &player, const Event::SceneResult &result )
{ {
if( result.getResult( 0 ) == 1 ) if( result.getResult( 0 ) == 1 )

View file

@ -17,37 +17,39 @@ using namespace Sapphire;
class SubFst004 : public Sapphire::ScriptAPI::QuestScript class SubFst004 : public Sapphire::ScriptAPI::QuestScript
{ {
private: private:
// Basic quest information // Basic quest information
// Quest vars / flags used // Quest vars / flags used
// UI8AL // UI8AL
// UI8BH // UI8BH
/// Countable Num: 1 Seq: 1 Event: 1 Listener: 1000686 /// Countable Num: 1 Seq: 1 Event: 1 Listener: 1000686
/// Countable Num: 1 Seq: 255 Event: 1 Listener: 1000789 /// Countable Num: 1 Seq: 255 Event: 1 Listener: 1000789
// Steps in this quest ( 0 is before accepting, // Steps in this quest ( 0 is before accepting,
// 1 is first, 255 means ready for turning it in // 1 is first, 255 means ready for turning it in
enum Sequence : uint8_t enum Sequence : uint8_t
{ {
Seq0 = 0, Seq0 = 0,
Seq1 = 1, Seq1 = 1,
SeqFinish = 255, SeqFinish = 255,
}; };
// Entities found in the script data of the quest // Entities found in the script data of the quest
static constexpr auto Actor0 = 1000194; static constexpr auto Actor0 = 1000194;
static constexpr auto Actor1 = 1000686; static constexpr auto Actor1 = 1000686;
static constexpr auto Actor2 = 1000789; static constexpr auto Actor2 = 1000789;
static constexpr auto Item0 = 2000024; static constexpr auto Item0 = 2000024;
static constexpr auto Seq0Actor0 = 0; static constexpr auto Seq0Actor0 = 0;
static constexpr auto Seq1Actor1 = 1; static constexpr auto Seq1Actor1 = 1;
static constexpr auto Seq2Actor2 = 2; static constexpr auto Seq2Actor2 = 2;
static constexpr auto Seq2Actor2Npctradeno = 99; static constexpr auto Seq2Actor2Npctradeno = 99;
static constexpr auto Seq2Actor2Npctradeok = 100; static constexpr auto Seq2Actor2Npctradeok = 100;
public: public:
SubFst004() : Sapphire::ScriptAPI::QuestScript( 65563 ){}; SubFst004() : Sapphire::ScriptAPI::QuestScript( 65563 )
~SubFst004() = default; {};
~SubFst004() = default;
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Event Handlers // Event Handlers
@ -74,7 +76,7 @@ class SubFst004 : public Sapphire::ScriptAPI::QuestScript
} }
private: private:
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Available Scenes in this quest, not necessarly all are used // Available Scenes in this quest, not necessarly all are used
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -101,7 +103,7 @@ class SubFst004 : public Sapphire::ScriptAPI::QuestScript
void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
player.sendEventNotice( getId(), 0, 2, 21002, 0); eventMgr().sendEventNotice( player, getId(), 0, 2, 21002, 0 );
quest.setUI8BH( 1 ); quest.setUI8BH( 1 );
quest.setSeq( SeqFinish ); quest.setSeq( SeqFinish );
} }
@ -115,7 +117,7 @@ class SubFst004 : public Sapphire::ScriptAPI::QuestScript
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) if( result.getResult( 0 ) == 1 )
Scene00100( quest, player ); Scene00100( quest, player );
else else
Scene00099( quest, player ); Scene00099( quest, player );

View file

@ -104,7 +104,7 @@ private:
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 ); quest.setUI8BH( 1 );
player.sendEventNotice( getId(), 0, 0, 0, 0 ); eventMgr().sendEventNotice( player, getId(), 0, 0, 0, 0 );
quest.setSeq( SeqFinish ); quest.setSeq( SeqFinish );
} }

View file

@ -17,51 +17,53 @@ using namespace Sapphire;
class SubFst013 : public Sapphire::ScriptAPI::QuestScript class SubFst013 : public Sapphire::ScriptAPI::QuestScript
{ {
private: private:
// Basic quest information // Basic quest information
// Quest vars / flags used // Quest vars / flags used
// UI8AL // UI8AL
/// Countable Num: 1 Seq: 1 Event: 1 Listener: 1000161 /// Countable Num: 1 Seq: 1 Event: 1 Listener: 1000161
/// Countable Num: 1 Seq: 2 Event: 2 Listener: 1000161 /// Countable Num: 1 Seq: 2 Event: 2 Listener: 1000161
/// Countable Num: 1 Seq: 3 Event: 1 Listener: 1000162 /// Countable Num: 1 Seq: 3 Event: 1 Listener: 1000162
/// Countable Num: 1 Seq: 4 Event: 1 Listener: 1000161 /// Countable Num: 1 Seq: 4 Event: 1 Listener: 1000161
/// Countable Num: 1 Seq: 5 Event: 2 Listener: 1000161 /// Countable Num: 1 Seq: 5 Event: 2 Listener: 1000161
/// Countable Num: 1 Seq: 255 Event: 1 Listener: 1000162 /// Countable Num: 1 Seq: 255 Event: 1 Listener: 1000162
// Steps in this quest ( 0 is before accepting, // Steps in this quest ( 0 is before accepting,
// 1 is first, 255 means ready for turning it in // 1 is first, 255 means ready for turning it in
enum Sequence : uint8_t enum Sequence : uint8_t
{ {
Seq0 = 0, Seq0 = 0,
Seq1 = 1, Seq1 = 1,
Seq2 = 2, Seq2 = 2,
Seq3 = 3, Seq3 = 3,
Seq4 = 4, Seq4 = 4,
Seq5 = 5, Seq5 = 5,
SeqFinish = 255, SeqFinish = 255,
}; };
// Entities found in the script data of the quest // Entities found in the script data of the quest
static constexpr auto Actor0 = 1000162; static constexpr auto Actor0 = 1000162;
static constexpr auto Actor1 = 1000161; static constexpr auto Actor1 = 1000161;
static constexpr auto FirstQuest = 65575; static constexpr auto FirstQuest = 65575;
static constexpr auto Seq0Actor0 = 0; static constexpr auto Seq0Actor0 = 0;
static constexpr auto Seq1Actor1 = 1; static constexpr auto Seq1Actor1 = 1;
static constexpr auto Seq1Actor1Emoteno = 99; static constexpr auto Seq1Actor1Emoteno = 99;
static constexpr auto Seq1Actor1Emoteok = 100; static constexpr auto Seq1Actor1Emoteok = 100;
static constexpr auto Seq2Actor0 = 2; static constexpr auto Seq2Actor0 = 2;
static constexpr auto Seq3Actor1 = 3; static constexpr auto Seq3Actor1 = 3;
static constexpr auto Seq3Actor1Emoteno = 97; static constexpr auto Seq3Actor1Emoteno = 97;
static constexpr auto Seq3Actor1Emoteok = 98; static constexpr auto Seq3Actor1Emoteok = 98;
static constexpr auto Seq4Actor0 = 4; static constexpr auto Seq4Actor0 = 4;
static constexpr auto Seq5Actor1 = 5; static constexpr auto Seq5Actor1 = 5;
static constexpr auto Seq5Actor1Emoteno = 95; static constexpr auto Seq5Actor1Emoteno = 95;
static constexpr auto Seq5Actor1Emoteok = 96; static constexpr auto Seq5Actor1Emoteok = 96;
static constexpr auto Seq6Actor0 = 6; static constexpr auto Seq6Actor0 = 6;
public: public:
SubFst013() : Sapphire::ScriptAPI::QuestScript( 65576 ){}; SubFst013() : Sapphire::ScriptAPI::QuestScript( 65576 )
~SubFst013() = default; {};
~SubFst013() = default;
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Event Handlers // Event Handlers
@ -71,37 +73,37 @@ class SubFst013 : public Sapphire::ScriptAPI::QuestScript
{ {
case Actor0: case Actor0:
{ {
if (quest.getSeq() == Seq2) if( quest.getSeq() == Seq2 )
Scene00002(quest, player); Scene00002( quest, player );
else if (quest.getSeq() == Seq4) else if( quest.getSeq() == Seq4 )
Scene00004(quest, player); Scene00004( quest, player );
else if (quest.getSeq() == SeqFinish) else if( quest.getSeq() == SeqFinish )
Scene00006(quest, player); Scene00006( quest, player );
break; break;
} }
case Actor1: // talking to Aunillie while on quest case Actor1: // talking to Aunillie while on quest
{ {
Scene00003(quest, player); Scene00003( quest, player );
break; break;
} }
} }
} }
void onEmote(World::Quest& quest, uint64_t actorId, uint32_t emoteId, Sapphire::Entity::Player& player) override void onEmote( World::Quest& quest, uint64_t actorId, uint32_t emoteId, Sapphire::Entity::Player& player ) override
{ {
if (actorId != Actor1) if( actorId != Actor1 )
return; return;
if (emoteId == 5 && quest.getSeq() == Seq1) if( emoteId == 5 && quest.getSeq() == Seq1 )
Scene00100(quest, player); Scene00100( quest, player );
else if (emoteId == 18 && quest.getSeq() == Seq3) else if( emoteId == 18 && quest.getSeq() == Seq3 )
Scene00098(quest, player); Scene00098( quest, player );
else if (emoteId == 11 && quest.getSeq() == Seq5) else if( emoteId == 11 && quest.getSeq() == Seq5 )
Scene00096(quest, player); Scene00096( quest, player );
} }
private: private:
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Available Scenes in this quest, not necessarly all are used // Available Scenes in this quest, not necessarly all are used
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -115,7 +117,7 @@ class SubFst013 : public Sapphire::ScriptAPI::QuestScript
{ {
if( result.getResult( 0 ) == 1 ) // accept quest if( result.getResult( 0 ) == 1 ) // accept quest
{ {
quest.setSeq(Seq1); quest.setSeq( Seq1 );
} }
} }
@ -140,7 +142,7 @@ class SubFst013 : public Sapphire::ScriptAPI::QuestScript
void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
quest.setSeq(Seq3); quest.setSeq( Seq3 );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -164,7 +166,7 @@ class SubFst013 : public Sapphire::ScriptAPI::QuestScript
void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
quest.setSeq(Seq5); quest.setSeq( Seq5 );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -217,8 +219,8 @@ class SubFst013 : public Sapphire::ScriptAPI::QuestScript
void Scene00096Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00096Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
quest.setSeq(SeqFinish); quest.setSeq( SeqFinish );
player.sendEventNotice(getId(), 4, 2, 0, 0); eventMgr().sendEventNotice( player, getId(), 4, 2, 0, 0 );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -242,7 +244,7 @@ class SubFst013 : public Sapphire::ScriptAPI::QuestScript
void Scene00098Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00098Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
quest.setSeq(Seq4); quest.setSeq( Seq4 );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -266,8 +268,8 @@ class SubFst013 : public Sapphire::ScriptAPI::QuestScript
void Scene00100Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00100Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
quest.setSeq(Seq2); quest.setSeq( Seq2 );
player.sendEventNotice(getId(), 0, 2, 0, 0); eventMgr().sendEventNotice( player, getId(), 0, 2, 0, 0 );
} }
}; };

View file

@ -17,38 +17,40 @@ using namespace Sapphire;
class SubFst014 : public Sapphire::ScriptAPI::QuestScript class SubFst014 : public Sapphire::ScriptAPI::QuestScript
{ {
private: private:
// Basic quest information // Basic quest information
// Quest vars / flags used // Quest vars / flags used
// BitFlag8 // BitFlag8
// UI8AL // UI8AL
// UI8BH // UI8BH
/// Countable Num: 6 Seq: 1 Event: 1 Listener: 2000026 /// Countable Num: 6 Seq: 1 Event: 1 Listener: 2000026
/// Countable Num: 1 Seq: 255 Event: 1 Listener: 2000027 /// Countable Num: 1 Seq: 255 Event: 1 Listener: 2000027
// Steps in this quest ( 0 is before accepting, // Steps in this quest ( 0 is before accepting,
// 1 is first, 255 means ready for turning it in // 1 is first, 255 means ready for turning it in
enum Sequence : uint8_t enum Sequence : uint8_t
{ {
Seq0 = 0, Seq0 = 0,
Seq1 = 1, Seq1 = 1,
SeqFinish = 255, SeqFinish = 255,
}; };
// Entities found in the script data of the quest // Entities found in the script data of the quest
static constexpr auto Actor0 = 1000300; static constexpr auto Actor0 = 1000300;
static constexpr auto Eobject0 = 2000026; static constexpr auto Eobject0 = 2000026;
static constexpr auto Eobject1 = 2000027; static constexpr auto Eobject1 = 2000027;
static constexpr auto Eobject2 = 2000028; static constexpr auto Eobject2 = 2000028;
static constexpr auto Eobject3 = 2000029; static constexpr auto Eobject3 = 2000029;
static constexpr auto Eobject4 = 2000030; static constexpr auto Eobject4 = 2000030;
static constexpr auto Eobject5 = 2000031; static constexpr auto Eobject5 = 2000031;
static constexpr auto EventActionSearch = 1; static constexpr auto EventActionSearch = 1;
static constexpr auto Item0 = 2000084; static constexpr auto Item0 = 2000084;
public: public:
SubFst014() : Sapphire::ScriptAPI::QuestScript( 65577 ){}; SubFst014() : Sapphire::ScriptAPI::QuestScript( 65577 )
~SubFst014() = default; {};
~SubFst014() = default;
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Event Handlers // Event Handlers
@ -58,92 +60,92 @@ class SubFst014 : public Sapphire::ScriptAPI::QuestScript
{ {
case Actor0: case Actor0:
{ {
if (!player.hasQuest(getId())) if( !player.hasQuest( getId() ) )
Scene00000(quest, player); Scene00000( quest, player );
else if (quest.getSeq() == SeqFinish) else if( quest.getSeq() == SeqFinish )
Scene00007(quest, player); Scene00007( quest, player );
break; break;
} }
case Eobject0: case Eobject0:
{ {
eventMgr().eventActionStart(player, getId(), 0x01, eventMgr().eventActionStart( player, getId(), 0x01,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00001(quest, player); Scene00001( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
case Eobject1: case Eobject1:
{ {
eventMgr().eventActionStart(player, getId(), 0x01, eventMgr().eventActionStart( player, getId(), 0x01,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00002(quest, player); Scene00002( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
case Eobject2: case Eobject2:
{ {
eventMgr().eventActionStart(player, getId(), 0x01, eventMgr().eventActionStart( player, getId(), 0x01,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00003(quest, player); Scene00003( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
case Eobject3: case Eobject3:
{ {
eventMgr().eventActionStart(player, getId(), 0x01, eventMgr().eventActionStart( player, getId(), 0x01,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00004(quest, player); Scene00004( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
case Eobject4: case Eobject4:
{ {
eventMgr().eventActionStart(player, getId(), 0x01, eventMgr().eventActionStart( player, getId(), 0x01,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00005(quest, player); Scene00005( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
case Eobject5: case Eobject5:
{ {
eventMgr().eventActionStart(player, getId(), 0x01, eventMgr().eventActionStart( player, getId(), 0x01,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00006(quest, player); Scene00006( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
} }
} }
private: private:
void checkQuestCompletion(World::Quest& quest, Entity::Player& player) void checkQuestCompletion( World::Quest& quest, Entity::Player& player )
{
auto currentCC = quest.getUI8AL();
eventMgr().sendEventNotice( player, getId(), 0, 2, currentCC + 1, 6 );
quest.setUI8AL( currentCC + 1 );
quest.setUI8BH( currentCC + 1 );
if( currentCC + 1 >= 6 )
{ {
auto currentCC = quest.getUI8AL(); quest.setSeq( SeqFinish );
player.sendEventNotice(getId(), 0, 2, currentCC + 1, 6);
quest.setUI8AL(currentCC + 1);
quest.setUI8BH(currentCC + 1);
if (currentCC + 1 >= 6)
{
quest.setSeq(SeqFinish);
}
} }
}
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Available Scenes in this quest, not necessarly all are used // Available Scenes in this quest, not necessarly all are used
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -157,7 +159,7 @@ class SubFst014 : public Sapphire::ScriptAPI::QuestScript
{ {
if( result.getResult( 0 ) == 1 ) // accept quest if( result.getResult( 0 ) == 1 ) // accept quest
{ {
quest.setSeq(Seq1); quest.setSeq( Seq1 );
} }
} }
@ -170,7 +172,7 @@ class SubFst014 : public Sapphire::ScriptAPI::QuestScript
void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00100(quest, player); Scene00100( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -182,7 +184,7 @@ class SubFst014 : public Sapphire::ScriptAPI::QuestScript
void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00098(quest, player); Scene00098( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -194,7 +196,7 @@ class SubFst014 : public Sapphire::ScriptAPI::QuestScript
void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00096(quest, player); Scene00096( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -206,7 +208,7 @@ class SubFst014 : public Sapphire::ScriptAPI::QuestScript
void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00094(quest, player); Scene00094( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -218,7 +220,7 @@ class SubFst014 : public Sapphire::ScriptAPI::QuestScript
void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00092(quest, player); Scene00092( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -230,7 +232,7 @@ class SubFst014 : public Sapphire::ScriptAPI::QuestScript
void Scene00006Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00006Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00090(quest, player); Scene00090( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -242,8 +244,8 @@ class SubFst014 : public Sapphire::ScriptAPI::QuestScript
void Scene00007Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00007Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
if (result.getResult(0) == 1) if( result.getResult( 0 ) == 1 )
Scene00088(quest, player); Scene00088( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -296,8 +298,8 @@ class SubFst014 : public Sapphire::ScriptAPI::QuestScript
void Scene00090Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00090Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(6, true); quest.setBitFlag8( 6, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -321,8 +323,8 @@ class SubFst014 : public Sapphire::ScriptAPI::QuestScript
void Scene00092Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00092Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(5, true); quest.setBitFlag8( 5, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -346,8 +348,8 @@ class SubFst014 : public Sapphire::ScriptAPI::QuestScript
void Scene00094Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00094Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(4, true); quest.setBitFlag8( 4, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -371,8 +373,8 @@ class SubFst014 : public Sapphire::ScriptAPI::QuestScript
void Scene00096Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00096Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(3, true); quest.setBitFlag8( 3, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -396,8 +398,8 @@ class SubFst014 : public Sapphire::ScriptAPI::QuestScript
void Scene00098Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00098Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(2, true); quest.setBitFlag8( 2, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -422,8 +424,8 @@ class SubFst014 : public Sapphire::ScriptAPI::QuestScript
void Scene00100Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00100Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(1, true); quest.setBitFlag8( 1, true );
} }
}; };

View file

@ -17,36 +17,38 @@ using namespace Sapphire;
class SubFst015 : public Sapphire::ScriptAPI::QuestScript class SubFst015 : public Sapphire::ScriptAPI::QuestScript
{ {
private: private:
// Basic quest information // Basic quest information
// Quest vars / flags used // Quest vars / flags used
// BitFlag8 // BitFlag8
// UI8AL // UI8AL
/// Countable Num: 6 Seq: 1 Event: 1 Listener: 2000020 /// Countable Num: 6 Seq: 1 Event: 1 Listener: 2000020
/// Countable Num: 1 Seq: 255 Event: 1 Listener: 2000021 /// Countable Num: 1 Seq: 255 Event: 1 Listener: 2000021
// Steps in this quest ( 0 is before accepting, // Steps in this quest ( 0 is before accepting,
// 1 is first, 255 means ready for turning it in // 1 is first, 255 means ready for turning it in
enum Sequence : uint8_t enum Sequence : uint8_t
{ {
Seq0 = 0, Seq0 = 0,
Seq1 = 1, Seq1 = 1,
SeqFinish = 255, SeqFinish = 255,
}; };
// Entities found in the script data of the quest // Entities found in the script data of the quest
static constexpr auto Actor0 = 1000286; static constexpr auto Actor0 = 1000286;
static constexpr auto Eobject0 = 2000020; static constexpr auto Eobject0 = 2000020;
static constexpr auto Eobject1 = 2000021; static constexpr auto Eobject1 = 2000021;
static constexpr auto Eobject2 = 2000022; static constexpr auto Eobject2 = 2000022;
static constexpr auto Eobject3 = 2000023; static constexpr auto Eobject3 = 2000023;
static constexpr auto Eobject4 = 2000024; static constexpr auto Eobject4 = 2000024;
static constexpr auto Eobject5 = 2000025; static constexpr auto Eobject5 = 2000025;
static constexpr auto EventActionSearch = 1; static constexpr auto EventActionSearch = 1;
public: public:
SubFst015() : Sapphire::ScriptAPI::QuestScript( 65578 ){}; SubFst015() : Sapphire::ScriptAPI::QuestScript( 65578 )
~SubFst015() = default; {};
~SubFst015() = default;
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Event Handlers // Event Handlers
@ -56,94 +58,94 @@ class SubFst015 : public Sapphire::ScriptAPI::QuestScript
{ {
case Actor0: case Actor0:
{ {
if (!player.hasQuest(getId())) if( !player.hasQuest( getId() ) )
Scene00000(quest, player); Scene00000( quest, player );
else else
Scene00007(quest, player); Scene00007( quest, player );
break; break;
} }
case Eobject0: case Eobject0:
{ {
eventMgr().eventActionStart(player, getId(), 0x01, eventMgr().eventActionStart( player, getId(), 0x01,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00001(quest, player); Scene00001( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
case Eobject1: case Eobject1:
{ {
eventMgr().eventActionStart(player, getId(), 0x01, eventMgr().eventActionStart( player, getId(), 0x01,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00002(quest, player); Scene00002( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
case Eobject2: case Eobject2:
{ {
eventMgr().eventActionStart(player, getId(), 0x01, eventMgr().eventActionStart( player, getId(), 0x01,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00003(quest, player); Scene00003( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
case Eobject3: case Eobject3:
{ {
eventMgr().eventActionStart(player, getId(), 0x01, eventMgr().eventActionStart( player, getId(), 0x01,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00004(quest, player); Scene00004( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
case Eobject4: case Eobject4:
{ {
eventMgr().eventActionStart(player, getId(), 0x01, eventMgr().eventActionStart( player, getId(), 0x01,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00005(quest, player); Scene00005( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
case Eobject5: case Eobject5:
{ {
eventMgr().eventActionStart(player, getId(), 0x01, eventMgr().eventActionStart( player, getId(), 0x01,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00006(quest, player); Scene00006( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
} }
} }
private: private:
void checkQuestCompletion(World::Quest& quest, Entity::Player& player) void checkQuestCompletion( World::Quest& quest, Entity::Player& player )
{
auto currentCC = quest.getUI8AL();
eventMgr().sendEventNotice( player, getId(), 0, 2, currentCC + 1, 6 );
if( currentCC + 1 >= 6 )
{ {
auto currentCC = quest.getUI8AL(); quest.setSeq( SeqFinish );
player.sendEventNotice(getId(), 0, 2, currentCC + 1, 6);
if (currentCC + 1 >= 6)
{
quest.setSeq(SeqFinish);
}
else
{
quest.setUI8AL(currentCC + 1);
}
} }
else
{
quest.setUI8AL( currentCC + 1 );
}
}
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Available Scenes in this quest, not necessarly all are used // Available Scenes in this quest, not necessarly all are used
@ -158,7 +160,7 @@ class SubFst015 : public Sapphire::ScriptAPI::QuestScript
{ {
if( result.getResult( 0 ) == 1 ) // accept quest if( result.getResult( 0 ) == 1 ) // accept quest
{ {
quest.setSeq(Seq1); quest.setSeq( Seq1 );
} }
} }
@ -171,7 +173,7 @@ class SubFst015 : public Sapphire::ScriptAPI::QuestScript
void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00100(quest, player); Scene00100( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -183,7 +185,7 @@ class SubFst015 : public Sapphire::ScriptAPI::QuestScript
void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00098(quest, player); Scene00098( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -195,7 +197,7 @@ class SubFst015 : public Sapphire::ScriptAPI::QuestScript
void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00096(quest, player); Scene00096( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -207,7 +209,7 @@ class SubFst015 : public Sapphire::ScriptAPI::QuestScript
void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00094(quest, player); Scene00094( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -219,7 +221,7 @@ class SubFst015 : public Sapphire::ScriptAPI::QuestScript
void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00092(quest, player); Scene00092( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -231,7 +233,7 @@ class SubFst015 : public Sapphire::ScriptAPI::QuestScript
void Scene00006Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00006Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00090(quest, player); Scene00090( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -272,8 +274,8 @@ class SubFst015 : public Sapphire::ScriptAPI::QuestScript
void Scene00090Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00090Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(6, true); quest.setBitFlag8( 6, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -297,8 +299,8 @@ class SubFst015 : public Sapphire::ScriptAPI::QuestScript
void Scene00092Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00092Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(5, true); quest.setBitFlag8( 5, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -322,8 +324,8 @@ class SubFst015 : public Sapphire::ScriptAPI::QuestScript
void Scene00094Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00094Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(4, true); quest.setBitFlag8( 4, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -347,8 +349,8 @@ class SubFst015 : public Sapphire::ScriptAPI::QuestScript
void Scene00096Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00096Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(3, true); quest.setBitFlag8( 3, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -372,8 +374,8 @@ class SubFst015 : public Sapphire::ScriptAPI::QuestScript
void Scene00098Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00098Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(2, true); quest.setBitFlag8( 2, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -397,8 +399,8 @@ class SubFst015 : public Sapphire::ScriptAPI::QuestScript
void Scene00100Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00100Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(1, true); quest.setBitFlag8( 1, true );
} }
}; };

View file

@ -17,47 +17,49 @@ using namespace Sapphire;
class SubFst030 : public Sapphire::ScriptAPI::QuestScript class SubFst030 : public Sapphire::ScriptAPI::QuestScript
{ {
private: private:
// Basic quest information // Basic quest information
// Quest vars / flags used // Quest vars / flags used
// UI8AL // UI8AL
// UI8BH // UI8BH
/// Countable Num: 1 Seq: 1 Event: 1 Listener: 1000784 /// Countable Num: 1 Seq: 1 Event: 1 Listener: 1000784
/// Countable Num: 1 Seq: 2 Event: 1 Listener: 2000146 /// Countable Num: 1 Seq: 2 Event: 1 Listener: 2000146
/// Countable Num: 1 Seq: 3 Event: 1 Listener: 1000764 /// Countable Num: 1 Seq: 3 Event: 1 Listener: 1000764
/// Countable Num: 1 Seq: 255 Event: 1 Listener: 1000632 /// Countable Num: 1 Seq: 255 Event: 1 Listener: 1000632
// Steps in this quest ( 0 is before accepting, // Steps in this quest ( 0 is before accepting,
// 1 is first, 255 means ready for turning it in // 1 is first, 255 means ready for turning it in
enum Sequence : uint8_t enum Sequence : uint8_t
{ {
Seq0 = 0, Seq0 = 0,
Seq1 = 1, Seq1 = 1,
Seq2 = 2, Seq2 = 2,
Seq3 = 3, Seq3 = 3,
SeqFinish = 255, SeqFinish = 255,
}; };
// Entities found in the script data of the quest // Entities found in the script data of the quest
static constexpr auto Actor0 = 1000632; static constexpr auto Actor0 = 1000632;
static constexpr auto Actor1 = 1000784; static constexpr auto Actor1 = 1000784;
static constexpr auto Actor2 = 1000764; static constexpr auto Actor2 = 1000764;
static constexpr auto Eobject0 = 2000146; static constexpr auto Eobject0 = 2000146;
static constexpr auto EventActionGatherShort = 6; static constexpr auto EventActionGatherShort = 6;
static constexpr auto Item0 = 2000140; static constexpr auto Item0 = 2000140;
static constexpr auto Seq0Actor0 = 0; static constexpr auto Seq0Actor0 = 0;
static constexpr auto Seq1Actor1 = 1; static constexpr auto Seq1Actor1 = 1;
static constexpr auto Seq2Eobject0 = 2; static constexpr auto Seq2Eobject0 = 2;
static constexpr auto Seq2Eobject0Eventactionno = 99; static constexpr auto Seq2Eobject0Eventactionno = 99;
static constexpr auto Seq2Eobject0Eventactionok = 100; static constexpr auto Seq2Eobject0Eventactionok = 100;
static constexpr auto Seq3Actor2 = 3; static constexpr auto Seq3Actor2 = 3;
static constexpr auto Seq3Actor2Npctradeno = 97; static constexpr auto Seq3Actor2Npctradeno = 97;
static constexpr auto Seq3Actor2Npctradeok = 98; static constexpr auto Seq3Actor2Npctradeok = 98;
static constexpr auto Seq4Actor0 = 4; static constexpr auto Seq4Actor0 = 4;
public: public:
SubFst030() : Sapphire::ScriptAPI::QuestScript( 65709 ){}; SubFst030() : Sapphire::ScriptAPI::QuestScript( 65709 )
~SubFst030() = default; {};
~SubFst030() = default;
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Event Handlers // Event Handlers
@ -67,37 +69,37 @@ class SubFst030 : public Sapphire::ScriptAPI::QuestScript
{ {
case Actor0: case Actor0:
{ {
if (!player.hasQuest(getId())) if( !player.hasQuest( getId() ) )
Scene00000(quest, player); Scene00000( quest, player );
else else
Scene00004(quest, player); Scene00004( quest, player );
break; break;
} }
case Actor1: case Actor1:
{ {
Scene00001(quest, player); Scene00001( quest, player );
break; break;
} }
case Actor2: case Actor2:
{ {
Scene00003(quest, player); Scene00003( quest, player );
break; break;
} }
case Eobject0: case Eobject0:
{ {
eventMgr().eventActionStart(player, getId(), 0x06, eventMgr().eventActionStart( player, getId(), 0x06,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00002(quest, player); Scene00002( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
} }
} }
private: private:
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Available Scenes in this quest, not necessarly all are used // Available Scenes in this quest, not necessarly all are used
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -111,7 +113,7 @@ class SubFst030 : public Sapphire::ScriptAPI::QuestScript
{ {
if( result.getResult( 0 ) == 1 ) // accept quest if( result.getResult( 0 ) == 1 ) // accept quest
{ {
quest.setSeq(Seq1); quest.setSeq( Seq1 );
} }
} }
@ -124,8 +126,8 @@ class SubFst030 : public Sapphire::ScriptAPI::QuestScript
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.setSeq(Seq2); quest.setSeq( Seq2 );
player.sendEventNotice(getId(), 0, 2, 0, 0); eventMgr().sendEventNotice( player, getId(), 0, 2, 0, 0 );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -137,7 +139,7 @@ class SubFst030 : public Sapphire::ScriptAPI::QuestScript
void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00100(quest, player); Scene00100( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -149,10 +151,10 @@ class SubFst030 : public Sapphire::ScriptAPI::QuestScript
void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
if (result.getResult(0) == 1) if( result.getResult( 0 ) == 1 )
Scene00098(quest, player); Scene00098( quest, player );
else else
Scene00097(quest, player); Scene00097( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -194,8 +196,8 @@ class SubFst030 : public Sapphire::ScriptAPI::QuestScript
void Scene00098Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00098Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
quest.setSeq(SeqFinish); quest.setSeq( SeqFinish );
player.sendEventNotice(getId(), 2, 2, 0, 0); eventMgr().sendEventNotice( player, getId(), 2, 2, 0, 0 );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -220,10 +222,10 @@ class SubFst030 : public Sapphire::ScriptAPI::QuestScript
void Scene00100Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00100Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
quest.setSeq(Seq3); quest.setSeq( Seq3 );
player.sendEventNotice(getId(), 1, 2, 0, 0); eventMgr().sendEventNotice( player, getId(), 1, 2, 0, 0 );
quest.setUI8FL(1); quest.setUI8FL( 1 );
quest.setUI8BH(1); quest.setUI8BH( 1 );
} }
}; };

View file

@ -17,41 +17,43 @@ using namespace Sapphire;
class SubFst043 : public Sapphire::ScriptAPI::QuestScript class SubFst043 : public Sapphire::ScriptAPI::QuestScript
{ {
private: private:
// Basic quest information // Basic quest information
// Quest vars / flags used // Quest vars / flags used
// BitFlag8 // BitFlag8
// UI8AL // UI8AL
/// Countable Num: 2 Seq: 1 Event: 1 Listener: 2000143 /// Countable Num: 2 Seq: 1 Event: 1 Listener: 2000143
/// Countable Num: 1 Seq: 255 Event: 1 Listener: 2000144 /// Countable Num: 1 Seq: 255 Event: 1 Listener: 2000144
// Steps in this quest ( 0 is before accepting, // Steps in this quest ( 0 is before accepting,
// 1 is first, 255 means ready for turning it in // 1 is first, 255 means ready for turning it in
enum Sequence : uint8_t enum Sequence : uint8_t
{ {
Seq0 = 0, Seq0 = 0,
Seq1 = 1, Seq1 = 1,
SeqFinish = 255, SeqFinish = 255,
}; };
// Entities found in the script data of the quest // Entities found in the script data of the quest
static constexpr auto Actor0 = 1000172; static constexpr auto Actor0 = 1000172;
static constexpr auto Actor1 = 1000627; static constexpr auto Actor1 = 1000627;
static constexpr auto Eobject0 = 2000143; static constexpr auto Eobject0 = 2000143;
static constexpr auto Eobject1 = 2000144; static constexpr auto Eobject1 = 2000144;
static constexpr auto EventActionProcessMiddle = 16; static constexpr auto EventActionProcessMiddle = 16;
static constexpr auto Seq0Actor0 = 0; static constexpr auto Seq0Actor0 = 0;
static constexpr auto Seq1Eobject0 = 1; static constexpr auto Seq1Eobject0 = 1;
static constexpr auto Seq1Eobject0Eventactionno = 99; static constexpr auto Seq1Eobject0Eventactionno = 99;
static constexpr auto Seq1Eobject0Eventactionok = 100; static constexpr auto Seq1Eobject0Eventactionok = 100;
static constexpr auto Seq1Eobject1 = 2; static constexpr auto Seq1Eobject1 = 2;
static constexpr auto Seq1Eobject1Eventactionno = 97; static constexpr auto Seq1Eobject1Eventactionno = 97;
static constexpr auto Seq1Eobject1Eventactionok = 98; static constexpr auto Seq1Eobject1Eventactionok = 98;
static constexpr auto Seq2Actor1 = 3; static constexpr auto Seq2Actor1 = 3;
public: public:
SubFst043() : Sapphire::ScriptAPI::QuestScript( 65735 ){}; SubFst043() : Sapphire::ScriptAPI::QuestScript( 65735 )
~SubFst043() = default; {};
~SubFst043() = default;
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Event Handlers // Event Handlers
@ -61,56 +63,56 @@ class SubFst043 : public Sapphire::ScriptAPI::QuestScript
{ {
case Actor0: case Actor0:
{ {
Scene00000(quest, player); Scene00000( quest, player );
break; break;
} }
case Actor1: case Actor1:
{ {
if (quest.getSeq() == SeqFinish) if( quest.getSeq() == SeqFinish )
Scene00003(quest, player); Scene00003( quest, player );
break; break;
} }
case Eobject0: case Eobject0:
{ {
eventMgr().eventActionStart(player, getId(), EventActionProcessMiddle, eventMgr().eventActionStart( player, getId(), EventActionProcessMiddle,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00001(quest, player); Scene00001( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
case Eobject1: case Eobject1:
{ {
eventMgr().eventActionStart(player, getId(), EventActionProcessMiddle, eventMgr().eventActionStart( player, getId(), EventActionProcessMiddle,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00002(quest, player); Scene00002( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
} }
} }
private: private:
void checkQuestCompletion(World::Quest& quest, Entity::Player& player) void checkQuestCompletion( World::Quest& quest, Entity::Player& player )
{ {
auto credit = quest.getUI8AL(); auto credit = quest.getUI8AL();
if (credit + 1 >= 2) if( credit + 1 >= 2 )
{ {
quest.setUI8AL(credit + 1); quest.setUI8AL( credit + 1 );
player.sendEventNotice(getId(), 0, 2, credit + 1, 2); eventMgr().sendEventNotice( player, getId(), 0, 2, credit + 1, 2 );
quest.setSeq(SeqFinish); quest.setSeq( SeqFinish );
}
else
{
quest.setUI8AL( credit + 1);
player.sendEventNotice(getId(), 0, 2, credit + 1, 2);
}
} }
else
{
quest.setUI8AL( credit + 1 );
eventMgr().sendEventNotice( player, getId(), 0, 2, credit + 1, 2 );
}
}
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Available Scenes in this quest, not necessarly all are used // Available Scenes in this quest, not necessarly all are used
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -124,7 +126,7 @@ class SubFst043 : public Sapphire::ScriptAPI::QuestScript
{ {
if( result.getResult( 0 ) == 1 ) // accept quest if( result.getResult( 0 ) == 1 ) // accept quest
{ {
quest.setSeq(Seq1); quest.setSeq( Seq1 );
} }
} }
@ -137,7 +139,7 @@ class SubFst043 : public Sapphire::ScriptAPI::QuestScript
void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00100(quest, player); Scene00100( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -149,7 +151,7 @@ class SubFst043 : public Sapphire::ScriptAPI::QuestScript
void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00098(quest, player); Scene00098( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -190,8 +192,8 @@ class SubFst043 : public Sapphire::ScriptAPI::QuestScript
void Scene00098Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00098Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(2, true); quest.setBitFlag8( 2, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -215,8 +217,8 @@ class SubFst043 : public Sapphire::ScriptAPI::QuestScript
void Scene00100Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00100Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(1, true); quest.setBitFlag8( 1, true );
} }
}; };

View file

@ -17,38 +17,40 @@ using namespace Sapphire;
class SubFst046 : public Sapphire::ScriptAPI::QuestScript class SubFst046 : public Sapphire::ScriptAPI::QuestScript
{ {
private: private:
// Basic quest information // Basic quest information
// Quest vars / flags used // Quest vars / flags used
// BitFlag8 // BitFlag8
// UI8AL // UI8AL
/// Countable Num: 3 Seq: 1 Event: 1 Listener: 1000792 /// Countable Num: 3 Seq: 1 Event: 1 Listener: 1000792
/// Countable Num: 1 Seq: 255 Event: 1 Listener: 1000793 /// Countable Num: 1 Seq: 255 Event: 1 Listener: 1000793
// Steps in this quest ( 0 is before accepting, // Steps in this quest ( 0 is before accepting,
// 1 is first, 255 means ready for turning it in // 1 is first, 255 means ready for turning it in
enum Sequence : uint8_t enum Sequence : uint8_t
{ {
Seq0 = 0, Seq0 = 0,
Seq1 = 1, Seq1 = 1,
SeqFinish = 255, SeqFinish = 255,
}; };
// Entities found in the script data of the quest // Entities found in the script data of the quest
static constexpr auto ActionTimelineEventBaseIdle = 783; static constexpr auto ActionTimelineEventBaseIdle = 783;
static constexpr auto Actor0 = 1000408; static constexpr auto Actor0 = 1000408;
static constexpr auto Actor1 = 1000792; static constexpr auto Actor1 = 1000792;
static constexpr auto Actor2 = 1000793; static constexpr auto Actor2 = 1000793;
static constexpr auto Actor3 = 1000794; static constexpr auto Actor3 = 1000794;
static constexpr auto Seq0Actor0 = 0; static constexpr auto Seq0Actor0 = 0;
static constexpr auto Seq1Actor1 = 1; static constexpr auto Seq1Actor1 = 1;
static constexpr auto Seq1Actor2 = 2; static constexpr auto Seq1Actor2 = 2;
static constexpr auto Seq1Actor3 = 3; static constexpr auto Seq1Actor3 = 3;
static constexpr auto Seq2Actor0 = 4; static constexpr auto Seq2Actor0 = 4;
public: public:
SubFst046() : Sapphire::ScriptAPI::QuestScript( 65746 ){}; SubFst046() : Sapphire::ScriptAPI::QuestScript( 65746 )
~SubFst046() = default; {};
~SubFst046() = default;
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Event Handlers // Event Handlers
@ -58,49 +60,49 @@ class SubFst046 : public Sapphire::ScriptAPI::QuestScript
{ {
case Actor0: case Actor0:
{ {
if (!player.hasQuest(getId())) if( !player.hasQuest( getId() ) )
Scene00000(quest, player); Scene00000( quest, player );
else if (quest.getSeq() == SeqFinish) else if( quest.getSeq() == SeqFinish )
Scene00004(quest, player); Scene00004( quest, player );
break; break;
} }
case Actor1: case Actor1:
{ {
Scene00001(quest, player); Scene00001( quest, player );
break; break;
} }
case Actor2: case Actor2:
{ {
Scene00002(quest, player); Scene00002( quest, player );
break; break;
} }
case Actor3: case Actor3:
{ {
Scene00003(quest, player); Scene00003( quest, player );
break; break;
} }
} }
} }
private: private:
void checkQuestCompletion(World::Quest& quest, Entity::Player& player) void checkQuestCompletion( World::Quest& quest, Entity::Player& player )
{
auto credit = quest.getUI8AL();
if( credit + 1 >= 3 )
{ {
auto credit = quest.getUI8AL(); quest.setUI8AL( credit + 1 );
eventMgr().sendEventNotice( player, getId(), 0, 0, credit + 1, 3 );
if (credit + 1 >= 3) quest.setSeq( SeqFinish );
{
quest.setUI8AL(credit + 1);
player.sendEventNotice(getId(), 0, 0, credit + 1, 3);
quest.setSeq(SeqFinish);
}
else
{
quest.setUI8AL(credit + 1);
player.sendEventNotice(getId(), 0, 0, credit + 1, 3);
}
} }
else
{
quest.setUI8AL( credit + 1 );
eventMgr().sendEventNotice( player, getId(), 0, 0, credit + 1, 3 );
}
}
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Available Scenes in this quest, not necessarly all are used // Available Scenes in this quest, not necessarly all are used
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -114,7 +116,7 @@ class SubFst046 : public Sapphire::ScriptAPI::QuestScript
{ {
if( result.getResult( 0 ) == 1 ) // accept quest if( result.getResult( 0 ) == 1 ) // accept quest
{ {
quest.setSeq(Seq1); quest.setSeq( Seq1 );
} }
} }
@ -127,8 +129,8 @@ class SubFst046 : public Sapphire::ScriptAPI::QuestScript
void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(1, true); quest.setBitFlag8( 1, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -140,8 +142,8 @@ class SubFst046 : public Sapphire::ScriptAPI::QuestScript
void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(2, true); quest.setBitFlag8( 2, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -153,8 +155,8 @@ class SubFst046 : public Sapphire::ScriptAPI::QuestScript
void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(3, true); quest.setBitFlag8( 3, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////

View file

@ -17,37 +17,39 @@ using namespace Sapphire;
class SubFst048 : public Sapphire::ScriptAPI::QuestScript class SubFst048 : public Sapphire::ScriptAPI::QuestScript
{ {
private: private:
// Basic quest information // Basic quest information
// Quest vars / flags used // Quest vars / flags used
// BitFlag8 // BitFlag8
// UI8AL // UI8AL
/// Countable Num: 3 Seq: 1 Event: 1 Listener: 1000474 /// Countable Num: 3 Seq: 1 Event: 1 Listener: 1000474
/// Countable Num: 1 Seq: 255 Event: 1 Listener: 1000476 /// Countable Num: 1 Seq: 255 Event: 1 Listener: 1000476
// Steps in this quest ( 0 is before accepting, // Steps in this quest ( 0 is before accepting,
// 1 is first, 255 means ready for turning it in // 1 is first, 255 means ready for turning it in
enum Sequence : uint8_t enum Sequence : uint8_t
{ {
Seq0 = 0, Seq0 = 0,
Seq1 = 1, Seq1 = 1,
SeqFinish = 255, SeqFinish = 255,
}; };
// Entities found in the script data of the quest // Entities found in the script data of the quest
static constexpr auto Actor0 = 1000742; static constexpr auto Actor0 = 1000742;
static constexpr auto Actor1 = 1000474; static constexpr auto Actor1 = 1000474;
static constexpr auto Actor2 = 1000476; static constexpr auto Actor2 = 1000476;
static constexpr auto Actor3 = 1000483; static constexpr auto Actor3 = 1000483;
static constexpr auto Seq0Actor0 = 0; static constexpr auto Seq0Actor0 = 0;
static constexpr auto Seq1Actor1 = 1; static constexpr auto Seq1Actor1 = 1;
static constexpr auto Seq1Actor2 = 2; static constexpr auto Seq1Actor2 = 2;
static constexpr auto Seq1Actor3 = 3; static constexpr auto Seq1Actor3 = 3;
static constexpr auto Seq2Actor0 = 4; static constexpr auto Seq2Actor0 = 4;
public: public:
SubFst048() : Sapphire::ScriptAPI::QuestScript( 65911 ){}; SubFst048() : Sapphire::ScriptAPI::QuestScript( 65911 )
~SubFst048() = default; {};
~SubFst048() = default;
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Event Handlers // Event Handlers
@ -57,48 +59,48 @@ class SubFst048 : public Sapphire::ScriptAPI::QuestScript
{ {
case Actor0: case Actor0:
{ {
if (!player.hasQuest(getId())) if( !player.hasQuest( getId() ) )
Scene00000(quest, player); Scene00000( quest, player );
else if (quest.getSeq() == SeqFinish) else if( quest.getSeq() == SeqFinish )
Scene00004(quest, player); Scene00004( quest, player );
break; break;
} }
case Actor1: case Actor1:
{ {
Scene00001(quest, player); Scene00001( quest, player );
break; break;
} }
case Actor2: case Actor2:
{ {
Scene00002(quest, player); Scene00002( quest, player );
break; break;
} }
case Actor3: case Actor3:
{ {
Scene00003(quest, player); Scene00003( quest, player );
break; break;
} }
} }
} }
private: private:
void checkQuestCompletion(World::Quest& quest, Entity::Player& player) void checkQuestCompletion( World::Quest& quest, Entity::Player& player )
{ {
auto credit = quest.getUI8AL(); auto credit = quest.getUI8AL();
if (credit + 1 >= 3) if( credit + 1 >= 3 )
{ {
quest.setUI8AL(credit + 1); quest.setUI8AL( credit + 1 );
player.sendEventNotice(getId(), 0, 2, credit + 1, 3); eventMgr().sendEventNotice( player, getId(), 0, 2, credit + 1, 3 );
quest.setSeq(SeqFinish); quest.setSeq( SeqFinish );
}
else
{
quest.setUI8AL(credit + 1);
player.sendEventNotice(getId(), 0, 2, credit + 1, 3);
}
} }
else
{
quest.setUI8AL( credit + 1 );
eventMgr().sendEventNotice( player, getId(), 0, 2, credit + 1, 3 );
}
}
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Available Scenes in this quest, not necessarly all are used // Available Scenes in this quest, not necessarly all are used
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -112,7 +114,7 @@ class SubFst048 : public Sapphire::ScriptAPI::QuestScript
{ {
if( result.getResult( 0 ) == 1 ) // accept quest if( result.getResult( 0 ) == 1 ) // accept quest
{ {
quest.setSeq(Seq1); quest.setSeq( Seq1 );
} }
} }
@ -125,8 +127,8 @@ class SubFst048 : public Sapphire::ScriptAPI::QuestScript
void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(1, true); quest.setBitFlag8( 1, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -138,8 +140,8 @@ class SubFst048 : public Sapphire::ScriptAPI::QuestScript
void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(2, true); quest.setBitFlag8( 2, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -151,8 +153,8 @@ class SubFst048 : public Sapphire::ScriptAPI::QuestScript
void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(3, true); quest.setBitFlag8( 3, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////

View file

@ -17,46 +17,48 @@ using namespace Sapphire;
class SubSea001 : public Sapphire::ScriptAPI::QuestScript class SubSea001 : public Sapphire::ScriptAPI::QuestScript
{ {
private: private:
// Basic quest information // Basic quest information
// Quest vars / flags used // Quest vars / flags used
// BitFlag8 // BitFlag8
// UI8AL // UI8AL
// UI8BH // UI8BH
/// Countable Num: 1 Seq: 1 Event: 1 Listener: 1000969 /// Countable Num: 1 Seq: 1 Event: 1 Listener: 1000969
/// Countable Num: 0 Seq: 2 Event: 1 Listener: 2001563 /// Countable Num: 0 Seq: 2 Event: 1 Listener: 2001563
/// Countable Num: 0 Seq: 255 Event: 1 Listener: 2001564 /// Countable Num: 0 Seq: 255 Event: 1 Listener: 2001564
// Steps in this quest ( 0 is before accepting, // Steps in this quest ( 0 is before accepting,
// 1 is first, 255 means ready for turning it in // 1 is first, 255 means ready for turning it in
enum Sequence : uint8_t enum Sequence : uint8_t
{ {
Seq0 = 0, Seq0 = 0,
Seq1 = 1, Seq1 = 1,
Seq2 = 2, Seq2 = 2,
SeqFinish = 255, SeqFinish = 255,
}; };
// Entities found in the script data of the quest // Entities found in the script data of the quest
static constexpr auto Actor0 = 1002698; static constexpr auto Actor0 = 1002698;
static constexpr auto Actor1 = 1000969; static constexpr auto Actor1 = 1000969;
static constexpr auto Actor2 = 1003604; static constexpr auto Actor2 = 1003604;
static constexpr auto Eobject0 = 2001563; static constexpr auto Eobject0 = 2001563;
static constexpr auto Eobject1 = 2001564; static constexpr auto Eobject1 = 2001564;
static constexpr auto Eobject2 = 2001565; static constexpr auto Eobject2 = 2001565;
static constexpr auto Eobject3 = 2001566; static constexpr auto Eobject3 = 2001566;
static constexpr auto Eobject4 = 2001567; static constexpr auto Eobject4 = 2001567;
static constexpr auto Eobject5 = 2001568; static constexpr auto Eobject5 = 2001568;
static constexpr auto EventActionProcess = 14; static constexpr auto EventActionProcess = 14;
static constexpr auto Item0 = 2000447; static constexpr auto Item0 = 2000447;
static constexpr auto Poprange0 = 4161445; static constexpr auto Poprange0 = 4161445;
static constexpr auto Quest0 = 65644; static constexpr auto Quest0 = 65644;
static constexpr auto Quest1 = 65645; static constexpr auto Quest1 = 65645;
static constexpr auto Territorytype0 = 129; static constexpr auto Territorytype0 = 129;
public: public:
SubSea001() : Sapphire::ScriptAPI::QuestScript( 65647 ){}; SubSea001() : Sapphire::ScriptAPI::QuestScript( 65647 )
~SubSea001() = default; {};
~SubSea001() = default;
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Event Handlers // Event Handlers
@ -66,82 +68,82 @@ class SubSea001 : public Sapphire::ScriptAPI::QuestScript
{ {
case Actor0: case Actor0:
{ {
Scene00000(quest, player); Scene00000( quest, player );
break; break;
} }
case Actor1: case Actor1:
{ {
Scene00002(quest, player); Scene00002( quest, player );
break; break;
} }
case Actor2: case Actor2:
{ {
Scene00016(quest, player); Scene00016( quest, player );
break; break;
} }
case Eobject0: case Eobject0:
{ {
eventMgr().eventActionStart(player, getId(), 0x0E, eventMgr().eventActionStart( player, getId(), 0x0E,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00003(quest, player); Scene00003( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
case Eobject1: case Eobject1:
{ {
eventMgr().eventActionStart(player, getId(), 0x0E, eventMgr().eventActionStart( player, getId(), 0x0E,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00005(quest, player); Scene00005( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
case Eobject2: case Eobject2:
{ {
eventMgr().eventActionStart(player, getId(), 0x0E, eventMgr().eventActionStart( player, getId(), 0x0E,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00007(quest, player); Scene00007( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
case Eobject3: case Eobject3:
{ {
eventMgr().eventActionStart(player, getId(), 0x0E, eventMgr().eventActionStart( player, getId(), 0x0E,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00009(quest, player); Scene00009( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
case Eobject4: case Eobject4:
{ {
eventMgr().eventActionStart(player, getId(), 0x0E, eventMgr().eventActionStart( player, getId(), 0x0E,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00011(quest, player); Scene00011( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
case Eobject5: case Eobject5:
{ {
eventMgr().eventActionStart(player, getId(), 0x0E, eventMgr().eventActionStart( player, getId(), 0x0E,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00013(quest, player); Scene00013( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
@ -149,27 +151,27 @@ class SubSea001 : public Sapphire::ScriptAPI::QuestScript
} }
private: private:
void checkQuestCompletion(World::Quest& quest, Entity::Player& player) void checkQuestCompletion( World::Quest& quest, Entity::Player& player )
{
auto currentCC = quest.getUI8BH();
eventMgr().sendEventNotice( player, getId(), 1, 3, currentCC + 1, 6 );
if( currentCC + 1 >= 6 )
{ {
auto currentCC = quest.getUI8BH(); quest.setSeq( SeqFinish );
quest.setUI8BH( currentCC + 1 );
player.sendEventNotice(getId(), 1, 3, currentCC + 1, 6); quest.setUI8AL( currentCC + 1 );
if (currentCC + 1 >= 6)
{
quest.setSeq(SeqFinish);
quest.setUI8BH(currentCC + 1);
quest.setUI8AL(currentCC + 1);
}
else
{
quest.setUI8BH(currentCC + 1);
quest.setUI8AL(currentCC + 1);
}
} }
else
{
quest.setUI8BH( currentCC + 1 );
quest.setUI8AL( currentCC + 1 );
}
}
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Available Scenes in this quest, not necessarly all are used // Available Scenes in this quest, not necessarly all are used
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -183,7 +185,7 @@ class SubSea001 : public Sapphire::ScriptAPI::QuestScript
{ {
if( result.getResult( 0 ) == 1 ) // accept quest if( result.getResult( 0 ) == 1 ) // accept quest
{ {
quest.setSeq(Seq1); quest.setSeq( Seq1 );
} }
} }
@ -209,13 +211,13 @@ class SubSea001 : public Sapphire::ScriptAPI::QuestScript
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 (player.hasQuest(Quest0) || player.hasQuest(Quest1)) if( player.hasQuest( Quest0 ) || player.hasQuest( Quest1 ) )
{ {
if (result.getResult(0) == 1) if( result.getResult( 0 ) == 1 )
{ {
quest.setSeq(Seq2); quest.setSeq( Seq2 );
player.changePosition(10, 21, 13, -2); player.changePosition( 10, 21, 13, -2 );
player.forceZoneing(Territorytype0); //Teleport to real Limsa player.forceZoneing( Territorytype0 ); //Teleport to real Limsa
} }
} }
else else
@ -233,7 +235,7 @@ class SubSea001 : public Sapphire::ScriptAPI::QuestScript
void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00004(quest, player); Scene00004( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -245,8 +247,8 @@ class SubSea001 : public Sapphire::ScriptAPI::QuestScript
void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(1, true); quest.setBitFlag8( 1, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -258,7 +260,7 @@ class SubSea001 : public Sapphire::ScriptAPI::QuestScript
void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00006(quest, player); Scene00006( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -270,8 +272,8 @@ class SubSea001 : public Sapphire::ScriptAPI::QuestScript
void Scene00006Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00006Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(2, true); quest.setBitFlag8( 2, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -283,7 +285,7 @@ class SubSea001 : public Sapphire::ScriptAPI::QuestScript
void Scene00007Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00007Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00008(quest, player); Scene00008( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -295,8 +297,8 @@ class SubSea001 : public Sapphire::ScriptAPI::QuestScript
void Scene00008Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00008Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(3, true); quest.setBitFlag8( 3, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -308,7 +310,7 @@ class SubSea001 : public Sapphire::ScriptAPI::QuestScript
void Scene00009Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00009Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00010(quest, player); Scene00010( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -320,8 +322,8 @@ class SubSea001 : public Sapphire::ScriptAPI::QuestScript
void Scene00010Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00010Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(4, true); quest.setBitFlag8( 4, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -333,7 +335,7 @@ class SubSea001 : public Sapphire::ScriptAPI::QuestScript
void Scene00011Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00011Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00012(quest, player); Scene00012( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -345,8 +347,8 @@ class SubSea001 : public Sapphire::ScriptAPI::QuestScript
void Scene00012Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00012Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(5, true); quest.setBitFlag8( 5, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -358,7 +360,7 @@ class SubSea001 : public Sapphire::ScriptAPI::QuestScript
void Scene00013Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00013Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00014(quest, player); Scene00014( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -370,8 +372,8 @@ class SubSea001 : public Sapphire::ScriptAPI::QuestScript
void Scene00014Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00014Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(6, true); quest.setBitFlag8( 6, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -396,7 +398,7 @@ class SubSea001 : public Sapphire::ScriptAPI::QuestScript
void Scene00016Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00016Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00017(quest, player); Scene00017( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////

View file

@ -17,40 +17,42 @@ using namespace Sapphire;
class SubWil004 : public Sapphire::ScriptAPI::QuestScript class SubWil004 : public Sapphire::ScriptAPI::QuestScript
{ {
private: private:
// Basic quest information // Basic quest information
// Quest vars / flags used // Quest vars / flags used
// BitFlag8 // BitFlag8
// UI8AH // UI8AH
// UI8AL // UI8AL
// UI8BH // UI8BH
/// Countable Num: 1 Seq: 1 Event: 1 Listener: 1001292 /// Countable Num: 1 Seq: 1 Event: 1 Listener: 1001292
/// Countable Num: 2 Seq: 2 Event: 1 Listener: 2000691 /// Countable Num: 2 Seq: 2 Event: 1 Listener: 2000691
/// Countable Num: 1 Seq: 255 Event: 8 Listener: 2000691 /// Countable Num: 1 Seq: 255 Event: 8 Listener: 2000691
// Steps in this quest ( 0 is before accepting, // Steps in this quest ( 0 is before accepting,
// 1 is first, 255 means ready for turning it in // 1 is first, 255 means ready for turning it in
enum Sequence : uint8_t enum Sequence : uint8_t
{ {
Seq0 = 0, Seq0 = 0,
Seq1 = 1, Seq1 = 1,
Seq2 = 2, Seq2 = 2,
SeqFinish = 255, SeqFinish = 255,
}; };
// Entities found in the script data of the quest // Entities found in the script data of the quest
static constexpr auto Actor0 = 1001291; static constexpr auto Actor0 = 1001291;
static constexpr auto Actor1 = 1001292; static constexpr auto Actor1 = 1001292;
static constexpr auto Actor2 = 1003896; static constexpr auto Actor2 = 1003896;
static constexpr auto Eobject0 = 2000691; static constexpr auto Eobject0 = 2000691;
static constexpr auto Eobject1 = 2000692; static constexpr auto Eobject1 = 2000692;
static constexpr auto Eobject2 = 2000693; static constexpr auto Eobject2 = 2000693;
static constexpr auto EventActionSearch = 1; static constexpr auto EventActionSearch = 1;
static constexpr auto Item0 = 2000137; static constexpr auto Item0 = 2000137;
public: public:
SubWil004() : Sapphire::ScriptAPI::QuestScript( 65689 ){}; SubWil004() : Sapphire::ScriptAPI::QuestScript( 65689 )
~SubWil004() = default; {};
~SubWil004() = default;
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Event Handlers // Event Handlers
@ -60,77 +62,77 @@ class SubWil004 : public Sapphire::ScriptAPI::QuestScript
{ {
case Actor0: case Actor0:
{ {
Scene00000(quest, player); Scene00000( quest, player );
break; break;
} }
case Actor1: case Actor1:
{ {
Scene00001(quest, player); Scene00001( quest, player );
break; break;
} }
case Actor2: case Actor2:
{ {
Scene00008(quest, player); Scene00008( quest, player );
break; break;
} }
case Eobject0: case Eobject0:
{ {
eventMgr().eventActionStart(player, getId(), 0x01, eventMgr().eventActionStart( player, getId(), 0x01,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00003(quest, player); Scene00003( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
case Eobject1: case Eobject1:
{ {
eventMgr().eventActionStart(player, getId(), 0x01, eventMgr().eventActionStart( player, getId(), 0x01,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00005(quest, player); Scene00005( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
case Eobject2: case Eobject2:
{ {
eventMgr().eventActionStart(player, getId(), 0x01, eventMgr().eventActionStart( player, getId(), 0x01,
[&](Entity::Player& player, uint32_t eventId, uint64_t additional) [ & ]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{ {
Scene00007(quest, player); Scene00007( quest, player );
}, },
nullptr, 0); nullptr, 0 );
break; break;
} }
} }
} }
private: private:
void checkQuestCompletion(World::Quest& quest, Entity::Player& player) void checkQuestCompletion( World::Quest& quest, Entity::Player& player )
{
auto currentCC = quest.getUI8AL();
auto currentQC = quest.getUI8BH();
eventMgr().sendEventNotice( player, getId(), 1, 3, currentCC + 1, 3 );
if( currentCC + 1 >= 3 )
{ {
auto currentCC = quest.getUI8AL(); quest.setSeq( SeqFinish );
auto currentQC = quest.getUI8BH(); quest.setUI8AH( currentCC + 1 );
quest.setUI8AL( currentCC + 1 );
player.sendEventNotice(getId(), 1, 3, currentCC + 1, 3); quest.setUI8BH( 0 );
if (currentCC + 1 >= 3)
{
quest.setSeq(SeqFinish);
quest.setUI8AH(currentCC + 1);
quest.setUI8AL(currentCC + 1);
quest.setUI8BH(0);
}
else
{
quest.setUI8AH(currentCC + 1);
quest.setUI8AL(currentCC + 1);
quest.setUI8BH(currentQC - 1);
}
} }
else
{
quest.setUI8AH( currentCC + 1 );
quest.setUI8AL( currentCC + 1 );
quest.setUI8BH( currentQC - 1 );
}
}
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Available Scenes in this quest, not necessarly all are used // Available Scenes in this quest, not necessarly all are used
@ -145,7 +147,7 @@ class SubWil004 : public Sapphire::ScriptAPI::QuestScript
{ {
if( result.getResult( 0 ) == 1 ) // accept quest if( result.getResult( 0 ) == 1 ) // accept quest
{ {
quest.setSeq(Seq1); quest.setSeq( Seq1 );
} }
} }
@ -158,9 +160,9 @@ class SubWil004 : public Sapphire::ScriptAPI::QuestScript
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.setSeq(Seq2); quest.setSeq( Seq2 );
player.sendEventNotice(getId(), 0, 2, 0, 0); eventMgr().sendEventNotice( player, getId(), 0, 2, 0, 0 );
quest.setUI8BH(3); quest.setUI8BH( 3 );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -172,7 +174,7 @@ class SubWil004 : public Sapphire::ScriptAPI::QuestScript
void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00003(quest, player); Scene00003( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -184,8 +186,8 @@ class SubWil004 : public Sapphire::ScriptAPI::QuestScript
void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(1, true); quest.setBitFlag8( 1, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -197,7 +199,7 @@ class SubWil004 : public Sapphire::ScriptAPI::QuestScript
void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00005(quest, player); Scene00005( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -209,8 +211,8 @@ class SubWil004 : public Sapphire::ScriptAPI::QuestScript
void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(2, true); quest.setBitFlag8( 2, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -222,7 +224,7 @@ class SubWil004 : public Sapphire::ScriptAPI::QuestScript
void Scene00006Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00006Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00007(quest, player); Scene00007( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -234,8 +236,8 @@ class SubWil004 : public Sapphire::ScriptAPI::QuestScript
void Scene00007Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00007Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(3, true); quest.setBitFlag8( 3, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////

View file

@ -17,32 +17,34 @@ using namespace Sapphire;
class SubWil006 : public Sapphire::ScriptAPI::QuestScript class SubWil006 : public Sapphire::ScriptAPI::QuestScript
{ {
private: private:
// Basic quest information // Basic quest information
// Quest vars / flags used // Quest vars / flags used
// UI8AL // UI8AL
// UI8BH // UI8BH
/// Countable Num: 1 Seq: 1 Event: 1 Listener: 1002280 /// Countable Num: 1 Seq: 1 Event: 1 Listener: 1002280
/// Countable Num: 1 Seq: 255 Event: 1 Listener: 1001299 /// Countable Num: 1 Seq: 255 Event: 1 Listener: 1001299
// Steps in this quest ( 0 is before accepting, // Steps in this quest ( 0 is before accepting,
// 1 is first, 255 means ready for turning it in // 1 is first, 255 means ready for turning it in
enum Sequence : uint8_t enum Sequence : uint8_t
{ {
Seq0 = 0, Seq0 = 0,
Seq1 = 1, Seq1 = 1,
SeqFinish = 255, SeqFinish = 255,
}; };
// Entities found in the script data of the quest // Entities found in the script data of the quest
static constexpr auto Actor0 = 1001295; static constexpr auto Actor0 = 1001295;
static constexpr auto Actor1 = 1002280; static constexpr auto Actor1 = 1002280;
static constexpr auto Actor2 = 1001299; static constexpr auto Actor2 = 1001299;
static constexpr auto Item0 = 2000201; static constexpr auto Item0 = 2000201;
public: public:
SubWil006() : Sapphire::ScriptAPI::QuestScript( 65701 ){}; SubWil006() : Sapphire::ScriptAPI::QuestScript( 65701 )
~SubWil006() = default; {};
~SubWil006() = default;
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Event Handlers // Event Handlers
@ -52,24 +54,24 @@ class SubWil006 : public Sapphire::ScriptAPI::QuestScript
{ {
case Actor0: case Actor0:
{ {
Scene00000(quest, player); Scene00000( quest, player );
break; break;
} }
case Actor1: case Actor1:
{ {
Scene00001(quest, player); Scene00001( quest, player );
break; break;
} }
case Actor2: case Actor2:
{ {
Scene00004(quest, player); Scene00004( quest, player );
break; break;
} }
} }
} }
private: private:
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Available Scenes in this quest, not necessarly all are used // Available Scenes in this quest, not necessarly all are used
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -83,8 +85,8 @@ class SubWil006 : public Sapphire::ScriptAPI::QuestScript
{ {
if( result.getResult( 0 ) == 1 ) // accept quest if( result.getResult( 0 ) == 1 ) // accept quest
{ {
quest.setSeq(Seq1); quest.setSeq( Seq1 );
quest.setUI8BH(1); quest.setUI8BH( 1 );
} }
} }
@ -97,10 +99,10 @@ class SubWil006 : public Sapphire::ScriptAPI::QuestScript
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 )
Scene00002(quest, player); Scene00002( quest, player );
else else
Scene00003(quest, player); Scene00003( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -112,8 +114,8 @@ class SubWil006 : public Sapphire::ScriptAPI::QuestScript
void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
quest.setSeq(SeqFinish); quest.setSeq( SeqFinish );
player.sendEventNotice(getId(), 0, 2, 0, 0); eventMgr().sendEventNotice( player, getId(), 0, 2, 0, 0 );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////

View file

@ -17,37 +17,39 @@ using namespace Sapphire;
class SubWil007 : public Sapphire::ScriptAPI::QuestScript class SubWil007 : public Sapphire::ScriptAPI::QuestScript
{ {
private: private:
// Basic quest information // Basic quest information
// Quest vars / flags used // Quest vars / flags used
// BitFlag8 // BitFlag8
// UI8AL // UI8AL
/// Countable Num: 1 Seq: 1 Event: 1 Listener: 1007621 /// Countable Num: 1 Seq: 1 Event: 1 Listener: 1007621
/// Countable Num: 5 Seq: 2 Event: 2 Listener: 1007621 /// Countable Num: 5 Seq: 2 Event: 2 Listener: 1007621
/// Countable Num: 1 Seq: 255 Event: 1 Listener: 1001297 /// Countable Num: 1 Seq: 255 Event: 1 Listener: 1001297
// Steps in this quest ( 0 is before accepting, // Steps in this quest ( 0 is before accepting,
// 1 is first, 255 means ready for turning it in // 1 is first, 255 means ready for turning it in
enum Sequence : uint8_t enum Sequence : uint8_t
{ {
Seq0 = 0, Seq0 = 0,
Seq1 = 1, Seq1 = 1,
Seq2 = 2, Seq2 = 2,
SeqFinish = 255, SeqFinish = 255,
}; };
// Entities found in the script data of the quest // Entities found in the script data of the quest
static constexpr auto Actor0 = 1007621; static constexpr auto Actor0 = 1007621;
static constexpr auto Actor1 = 1001297; static constexpr auto Actor1 = 1001297;
static constexpr auto Actor2 = 1001692; static constexpr auto Actor2 = 1001692;
static constexpr auto Actor3 = 1001693; static constexpr auto Actor3 = 1001693;
static constexpr auto Actor4 = 1001697; static constexpr auto Actor4 = 1001697;
static constexpr auto Actor5 = 1001698; static constexpr auto Actor5 = 1001698;
static constexpr auto FirstQuest = 66130; static constexpr auto FirstQuest = 66130;
public: public:
SubWil007() : Sapphire::ScriptAPI::QuestScript( 65703 ){}; SubWil007() : Sapphire::ScriptAPI::QuestScript( 65703 )
~SubWil007() = default; {};
~SubWil007() = default;
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Event Handlers // Event Handlers
@ -57,90 +59,90 @@ class SubWil007 : public Sapphire::ScriptAPI::QuestScript
{ {
case Actor0: case Actor0:
{ {
if (!player.hasQuest(getId())) if( !player.hasQuest( getId() ) )
Scene00000(quest, player); Scene00000( quest, player );
else if (quest.getSeq() == SeqFinish) else if( quest.getSeq() == SeqFinish )
Scene00020(quest, player); Scene00020( quest, player );
break; break;
} }
case Actor1: case Actor1:
{ {
Scene00005(quest, player); Scene00005( quest, player );
break; break;
} }
case Actor2: case Actor2:
{ {
Scene00008(quest, player); Scene00008( quest, player );
break; break;
} }
case Actor3: case Actor3:
{ {
Scene00011(quest, player); Scene00011( quest, player );
break; break;
} }
case Actor4: case Actor4:
{ {
Scene00014(quest, player); Scene00014( quest, player );
break; break;
} }
case Actor5: case Actor5:
{ {
Scene00017(quest, player); Scene00017( quest, player );
break; break;
} }
} }
} }
void onEmote(World::Quest& quest, uint64_t actorId, uint32_t emoteId, Entity::Player& player) override void onEmote( World::Quest& quest, uint64_t actorId, uint32_t emoteId, Entity::Player& player ) override
{ {
if (emoteId != 41) if( emoteId != 41 )
return; return;
if (actorId == Actor0 && quest.getSeq() == Seq1) if( actorId == Actor0 && quest.getSeq() == Seq1 )
{ {
Scene00003(quest, player); Scene00003( quest, player );
} }
else if (actorId == Actor1 && quest.getSeq() == Seq2) else if( actorId == Actor1 && quest.getSeq() == Seq2 )
{ {
Scene00006(quest, player); Scene00006( quest, player );
} }
else if (actorId == Actor2 && quest.getSeq() == Seq2) else if( actorId == Actor2 && quest.getSeq() == Seq2 )
{ {
Scene00009(quest, player); Scene00009( quest, player );
} }
else if (actorId == Actor3 && quest.getSeq() == Seq2) else if( actorId == Actor3 && quest.getSeq() == Seq2 )
{ {
Scene00012(quest, player); Scene00012( quest, player );
} }
else if (actorId == Actor4 && quest.getSeq() == Seq2) else if( actorId == Actor4 && quest.getSeq() == Seq2 )
{ {
Scene00015(quest, player); Scene00015( quest, player );
} }
else if (actorId == Actor5 && quest.getSeq() == Seq2) else if( actorId == Actor5 && quest.getSeq() == Seq2 )
{ {
Scene00018(quest, player); Scene00018( quest, player );
} }
} }
private: private:
void checkQuestCompletion(World::Quest& quest, Entity::Player& player) void checkQuestCompletion( World::Quest& quest, Entity::Player& player )
{
auto currentQC = quest.getUI8AL() + 1;
if( currentQC >= 5 )
{ {
auto currentQC = quest.getUI8AL() + 1; quest.setSeq( SeqFinish );
eventMgr().sendEventNotice( player, getId(), 1, 2, currentQC, 5 );
if (currentQC >= 5)
{
quest.setSeq(SeqFinish);
player.sendEventNotice(getId(), 1, 2, currentQC, 5);
}
else
{
quest.setUI8AL(currentQC);
player.sendEventNotice(getId(), 1, 2, currentQC, 5);
}
} }
else
{
quest.setUI8AL( currentQC );
eventMgr().sendEventNotice( player, getId(), 1, 2, currentQC, 5 );
}
}
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Available Scenes in this quest, not necessarly all are used // Available Scenes in this quest, not necessarly all are used
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -154,7 +156,7 @@ class SubWil007 : public Sapphire::ScriptAPI::QuestScript
{ {
if( result.getResult( 0 ) == 1 ) // accept quest if( result.getResult( 0 ) == 1 ) // accept quest
{ {
Scene00001(quest, player); Scene00001( quest, player );
} }
} }
@ -167,7 +169,7 @@ class SubWil007 : public Sapphire::ScriptAPI::QuestScript
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.setSeq(Seq1); quest.setSeq( Seq1 );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -191,8 +193,8 @@ class SubWil007 : public Sapphire::ScriptAPI::QuestScript
void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
quest.setSeq(Seq2); quest.setSeq( Seq2 );
player.sendEventNotice(getId(), 0, 1, 0, 0); eventMgr().sendEventNotice( player, getId(), 0, 1, 0, 0 );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -228,8 +230,8 @@ class SubWil007 : public Sapphire::ScriptAPI::QuestScript
void Scene00006Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00006Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(1, true); quest.setBitFlag8( 1, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -265,8 +267,8 @@ class SubWil007 : public Sapphire::ScriptAPI::QuestScript
void Scene00009Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00009Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(2, true); quest.setBitFlag8( 2, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -302,8 +304,8 @@ class SubWil007 : public Sapphire::ScriptAPI::QuestScript
void Scene00012Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00012Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(3, true); quest.setBitFlag8( 3, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -339,8 +341,8 @@ class SubWil007 : public Sapphire::ScriptAPI::QuestScript
void Scene00015Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00015Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(4, true); quest.setBitFlag8( 4, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -376,8 +378,8 @@ class SubWil007 : public Sapphire::ScriptAPI::QuestScript
void Scene00018Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00018Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(5, true); quest.setBitFlag8( 5, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////

View file

@ -17,37 +17,39 @@ using namespace Sapphire;
class SubWil018 : public Sapphire::ScriptAPI::QuestScript class SubWil018 : public Sapphire::ScriptAPI::QuestScript
{ {
private: private:
// Basic quest information // Basic quest information
// Quest vars / flags used // Quest vars / flags used
// BitFlag8 // BitFlag8
// UI8AL // UI8AL
// UI8BH // UI8BH
/// Countable Num: 5 Seq: 1 Event: 1 Listener: 2000695 /// Countable Num: 5 Seq: 1 Event: 1 Listener: 2000695
/// Countable Num: 1 Seq: 255 Event: 1 Listener: 2000696 /// Countable Num: 1 Seq: 255 Event: 1 Listener: 2000696
// Steps in this quest ( 0 is before accepting, // Steps in this quest ( 0 is before accepting,
// 1 is first, 255 means ready for turning it in // 1 is first, 255 means ready for turning it in
enum Sequence : uint8_t enum Sequence : uint8_t
{ {
Seq0 = 0, Seq0 = 0,
Seq1 = 1, Seq1 = 1,
SeqFinish = 255, SeqFinish = 255,
}; };
// Entities found in the script data of the quest // Entities found in the script data of the quest
static constexpr auto Actor0 = 1001675; static constexpr auto Actor0 = 1001675;
static constexpr auto Eobject0 = 2000695; static constexpr auto Eobject0 = 2000695;
static constexpr auto Eobject1 = 2000696; static constexpr auto Eobject1 = 2000696;
static constexpr auto Eobject2 = 2000697; static constexpr auto Eobject2 = 2000697;
static constexpr auto Eobject3 = 2001089; static constexpr auto Eobject3 = 2001089;
static constexpr auto Eobject4 = 2001090; static constexpr auto Eobject4 = 2001090;
static constexpr auto EventActionSearch = 1; static constexpr auto EventActionSearch = 1;
static constexpr auto Item0 = 2000198; static constexpr auto Item0 = 2000198;
public: public:
SubWil018() : Sapphire::ScriptAPI::QuestScript( 65932 ){}; SubWil018() : Sapphire::ScriptAPI::QuestScript( 65932 )
~SubWil018() = default; {};
~SubWil018() = default;
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Event Handlers // Event Handlers
@ -57,61 +59,61 @@ class SubWil018 : public Sapphire::ScriptAPI::QuestScript
{ {
case Actor0: case Actor0:
{ {
if (!player.hasQuest(getId())) if( !player.hasQuest( getId() ) )
Scene00000(quest, player); Scene00000( quest, player );
else else
Scene00016(quest, player); Scene00016( quest, player );
break; break;
} }
case Eobject0: case Eobject0:
{ {
Scene00001(quest, player); Scene00001( quest, player );
break; break;
} }
case Eobject1: case Eobject1:
{ {
Scene00004(quest, player); Scene00004( quest, player );
break; break;
} }
case Eobject2: case Eobject2:
{ {
Scene00007(quest, player); Scene00007( quest, player );
break; break;
} }
case Eobject3: case Eobject3:
{ {
Scene00010(quest, player); Scene00010( quest, player );
break; break;
} }
case Eobject4: case Eobject4:
{ {
Scene00013(quest, player); Scene00013( quest, player );
break; break;
} }
} }
} }
private: private:
void checkQuestCompletion(World::Quest& quest, Entity::Player& player) void checkQuestCompletion( World::Quest& quest, Entity::Player& player )
{
auto currentCC = quest.getUI8AL();
eventMgr().sendEventNotice( player, getId(), 0, 3, currentCC + 1, 5 );
if( currentCC + 1 >= 5 )
{ {
auto currentCC = quest.getUI8AL(); quest.setSeq( SeqFinish );
quest.setUI8BH( currentCC + 1 );
player.sendEventNotice(getId(), 0, 3, currentCC + 1, 5); quest.setUI8AL( currentCC + 1 );
if (currentCC + 1 >= 5)
{
quest.setSeq(SeqFinish);
quest.setUI8BH(currentCC + 1);
quest.setUI8AL(currentCC + 1);
}
else
{
quest.setUI8BH(currentCC + 1);
quest.setUI8AL(currentCC + 1);
}
} }
else
{
quest.setUI8BH( currentCC + 1 );
quest.setUI8AL( currentCC + 1 );
}
}
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Available Scenes in this quest, not necessarly all are used // Available Scenes in this quest, not necessarly all are used
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -125,7 +127,7 @@ class SubWil018 : public Sapphire::ScriptAPI::QuestScript
{ {
if( result.getResult( 0 ) == 1 ) // accept quest if( result.getResult( 0 ) == 1 ) // accept quest
{ {
quest.setSeq(Seq1); quest.setSeq( Seq1 );
} }
} }
@ -138,7 +140,7 @@ class SubWil018 : public Sapphire::ScriptAPI::QuestScript
void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00002(quest, player); Scene00002( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -150,8 +152,8 @@ class SubWil018 : public Sapphire::ScriptAPI::QuestScript
void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(1, true); quest.setBitFlag8( 1, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -175,7 +177,7 @@ class SubWil018 : public Sapphire::ScriptAPI::QuestScript
void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00005(quest, player); Scene00005( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -187,8 +189,8 @@ class SubWil018 : public Sapphire::ScriptAPI::QuestScript
void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(2, true); quest.setBitFlag8( 2, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -212,7 +214,7 @@ class SubWil018 : public Sapphire::ScriptAPI::QuestScript
void Scene00007Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00007Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00008(quest, player); Scene00008( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -224,8 +226,8 @@ class SubWil018 : public Sapphire::ScriptAPI::QuestScript
void Scene00008Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00008Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(3, true); quest.setBitFlag8( 3, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -249,7 +251,7 @@ class SubWil018 : public Sapphire::ScriptAPI::QuestScript
void Scene00010Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00010Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00011(quest, player); Scene00011( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -261,8 +263,8 @@ class SubWil018 : public Sapphire::ScriptAPI::QuestScript
void Scene00011Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00011Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(4, true); quest.setBitFlag8( 4, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -286,7 +288,7 @@ class SubWil018 : public Sapphire::ScriptAPI::QuestScript
void Scene00013Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00013Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00014(quest, player); Scene00014( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -298,8 +300,8 @@ class SubWil018 : public Sapphire::ScriptAPI::QuestScript
void Scene00014Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00014Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
checkQuestCompletion(quest, player); checkQuestCompletion( quest, player );
quest.setBitFlag8(5, true); quest.setBitFlag8( 5, true );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -323,10 +325,10 @@ class SubWil018 : public Sapphire::ScriptAPI::QuestScript
void Scene00016Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result ) void Scene00016Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{ {
if (result.getResult(0) == 1) if( result.getResult( 0 ) == 1 )
Scene00017(quest, player); Scene00017( quest, player );
else else
Scene00018(quest, player); Scene00018( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////

View file

@ -17,41 +17,43 @@ using namespace Sapphire;
class SubWil020 : public Sapphire::ScriptAPI::QuestScript class SubWil020 : public Sapphire::ScriptAPI::QuestScript
{ {
private: private:
// Basic quest information // Basic quest information
// Quest vars / flags used // Quest vars / flags used
// BitFlag8 // BitFlag8
// UI8AH // UI8AH
// UI8AL // UI8AL
// UI8BH // UI8BH
/// Countable Num: 8 Seq: 1 Event: 1 Listener: 1001940 /// Countable Num: 8 Seq: 1 Event: 1 Listener: 1001940
/// Countable Num: 1 Seq: 1 Event: 1 Listener: 1001937 /// Countable Num: 1 Seq: 1 Event: 1 Listener: 1001937
/// Countable Num: 0 Seq: 255 Event: 1 Listener: 1001939 /// Countable Num: 0 Seq: 255 Event: 1 Listener: 1001939
// Steps in this quest ( 0 is before accepting, // Steps in this quest ( 0 is before accepting,
// 1 is first, 255 means ready for turning it in // 1 is first, 255 means ready for turning it in
enum Sequence : uint8_t enum Sequence : uint8_t
{ {
Seq0 = 0, Seq0 = 0,
Seq1 = 1, Seq1 = 1,
SeqFinish = 255, SeqFinish = 255,
}; };
// Entities found in the script data of the quest // Entities found in the script data of the quest
static constexpr auto Actor0 = 1001685; static constexpr auto Actor0 = 1001685;
static constexpr auto Actor1 = 1001940; static constexpr auto Actor1 = 1001940;
static constexpr auto Actor2 = 1001937; static constexpr auto Actor2 = 1001937;
static constexpr auto Actor3 = 1001939; static constexpr auto Actor3 = 1001939;
static constexpr auto Actor4 = 1001942; static constexpr auto Actor4 = 1001942;
static constexpr auto Actor5 = 1001949; static constexpr auto Actor5 = 1001949;
static constexpr auto Actor6 = 1003902; static constexpr auto Actor6 = 1003902;
static constexpr auto Actor7 = 1001914; static constexpr auto Actor7 = 1001914;
static constexpr auto Actor8 = 1003899; static constexpr auto Actor8 = 1003899;
static constexpr auto Actor9 = 1001945; static constexpr auto Actor9 = 1001945;
public: public:
SubWil020() : Sapphire::ScriptAPI::QuestScript( 65929 ){}; SubWil020() : Sapphire::ScriptAPI::QuestScript( 65929 )
~SubWil020() = default; {};
~SubWil020() = default;
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Event Handlers // Event Handlers
@ -62,91 +64,91 @@ class SubWil020 : public Sapphire::ScriptAPI::QuestScript
{ {
case Actor0: case Actor0:
{ {
Scene00000(quest, player); Scene00000( quest, player );
break; break;
} }
case Actor1: case Actor1:
{ {
if (!quest.getBitFlag8(1)) if( !quest.getBitFlag8( 1 ) )
Scene00001(quest, player); Scene00001( quest, player );
else else
Scene00002(quest, player); Scene00002( quest, player );
break; break;
} }
case Actor2: case Actor2:
{ {
if (!quest.getBitFlag8(2)) if( !quest.getBitFlag8( 2 ) )
Scene00003(quest, player); Scene00003( quest, player );
else else
Scene00004(quest, player); Scene00004( quest, player );
break; break;
} }
case Actor3: case Actor3:
{ {
if (!quest.getBitFlag8(3)) if( !quest.getBitFlag8( 3 ) )
Scene00005(quest, player); Scene00005( quest, player );
else else
Scene00006(quest, player); Scene00006( quest, player );
break; break;
} }
case Actor4: case Actor4:
{ {
if (!quest.getBitFlag8(4)) if( !quest.getBitFlag8( 4 ) )
Scene00007(quest, player); Scene00007( quest, player );
else else
Scene00008(quest, player); Scene00008( quest, player );
break; break;
} }
case Actor5: case Actor5:
{ {
if (!quest.getBitFlag8(5)) if( !quest.getBitFlag8( 5 ) )
Scene00009(quest, player); Scene00009( quest, player );
else else
Scene00010(quest, player); Scene00010( quest, player );
break; break;
} }
case Actor6: case Actor6:
{ {
if (!quest.getBitFlag8(6)) if( !quest.getBitFlag8( 6 ) )
Scene00011(quest, player); Scene00011( quest, player );
else else
Scene00012(quest, player); Scene00012( quest, player );
break; break;
} }
case Actor7: case Actor7:
{ {
if (!quest.getBitFlag8(7)) if( !quest.getBitFlag8( 7 ) )
Scene00013(quest, player); Scene00013( quest, player );
else else
Scene00014(quest, player); Scene00014( quest, player );
break; break;
} }
case Actor8: case Actor8:
{ {
if (!quest.getBitFlag8(0)) if( !quest.getBitFlag8( 0 ) )
Scene00015(quest, player); Scene00015( quest, player );
else else
Scene00016(quest, player); Scene00016( quest, player );
break; break;
} }
case Actor9: case Actor9:
{ {
Scene00017(quest, player); Scene00017( quest, player );
break; break;
} }
} }
} }
private: private:
void checkQuestProgression(World::Quest& quest, Entity::Player& player) void checkQuestProgression( World::Quest& quest, Entity::Player& player )
{
if( quest.getUI8AL() == 6 && quest.getUI8BH() == 2 )
{ {
if (quest.getUI8AL() == 6 && quest.getUI8BH() == 2) quest.setSeq( SeqFinish );
{
quest.setSeq(SeqFinish);
}
} }
}
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Available Scenes in this quest, not necessarly all are used // Available Scenes in this quest, not necessarly all are used
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -160,7 +162,7 @@ class SubWil020 : public Sapphire::ScriptAPI::QuestScript
{ {
if( result.getResult( 0 ) == 1 ) // accept quest if( result.getResult( 0 ) == 1 ) // accept quest
{ {
quest.setSeq(Seq1); quest.setSeq( Seq1 );
} }
} }
@ -175,10 +177,10 @@ class SubWil020 : public Sapphire::ScriptAPI::QuestScript
{ {
auto hustCount = quest.getUI8AL(); auto hustCount = quest.getUI8AL();
hustCount += 1; hustCount += 1;
quest.setUI8AL(hustCount); quest.setUI8AL( hustCount );
player.sendEventNotice(getId(), 0, 2, hustCount, 6); eventMgr().sendEventNotice( player, getId(), 0, 2, hustCount, 6 );
quest.setBitFlag8(1, true); quest.setBitFlag8( 1, true );
checkQuestProgression(quest, player); checkQuestProgression( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -192,10 +194,10 @@ class SubWil020 : public Sapphire::ScriptAPI::QuestScript
{ {
auto hustCount = quest.getUI8AL(); auto hustCount = quest.getUI8AL();
hustCount += 1; hustCount += 1;
quest.setUI8AL(hustCount); quest.setUI8AL( hustCount );
player.sendEventNotice(getId(), 0, 2, hustCount, 6); eventMgr().sendEventNotice( player, getId(), 0, 2, hustCount, 6 );
quest.setBitFlag8(2, true); quest.setBitFlag8( 2, true );
checkQuestProgression(quest, player); checkQuestProgression( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -209,10 +211,10 @@ class SubWil020 : public Sapphire::ScriptAPI::QuestScript
{ {
auto hustCount = quest.getUI8AL(); auto hustCount = quest.getUI8AL();
hustCount += 1; hustCount += 1;
quest.setUI8AL(hustCount); quest.setUI8AL( hustCount );
player.sendEventNotice(getId(), 0, 2, hustCount, 6); eventMgr().sendEventNotice( player, getId(), 0, 2, hustCount, 6 );
quest.setBitFlag8(3, true); quest.setBitFlag8( 3, true );
checkQuestProgression(quest, player); checkQuestProgression( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -226,10 +228,10 @@ class SubWil020 : public Sapphire::ScriptAPI::QuestScript
{ {
auto hustCount = quest.getUI8AL(); auto hustCount = quest.getUI8AL();
hustCount += 1; hustCount += 1;
quest.setUI8AL(hustCount); quest.setUI8AL( hustCount );
player.sendEventNotice(getId(), 0, 2, hustCount, 6); eventMgr().sendEventNotice( player, getId(), 0, 2, hustCount, 6 );
quest.setBitFlag8(4, true); quest.setBitFlag8( 4, true );
checkQuestProgression(quest, player); checkQuestProgression( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -243,10 +245,10 @@ class SubWil020 : public Sapphire::ScriptAPI::QuestScript
{ {
auto hustCount = quest.getUI8AL(); auto hustCount = quest.getUI8AL();
hustCount += 1; hustCount += 1;
quest.setUI8AL(hustCount); quest.setUI8AL( hustCount );
player.sendEventNotice(getId(), 0, 2, hustCount, 6); eventMgr().sendEventNotice( player, getId(), 0, 2, hustCount, 6 );
quest.setBitFlag8(5, true); quest.setBitFlag8( 5, true );
checkQuestProgression(quest, player); checkQuestProgression( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -260,10 +262,10 @@ class SubWil020 : public Sapphire::ScriptAPI::QuestScript
{ {
auto hustCount = quest.getUI8AL(); auto hustCount = quest.getUI8AL();
hustCount += 1; hustCount += 1;
quest.setUI8AL(hustCount); quest.setUI8AL( hustCount );
player.sendEventNotice(getId(), 0, 2, hustCount, 6); eventMgr().sendEventNotice( player, getId(), 0, 2, hustCount, 6 );
quest.setBitFlag8(6, true); quest.setBitFlag8( 6, true );
checkQuestProgression(quest, player); checkQuestProgression( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -277,10 +279,10 @@ class SubWil020 : public Sapphire::ScriptAPI::QuestScript
{ {
auto hustCount = quest.getUI8AL(); auto hustCount = quest.getUI8AL();
hustCount += 1; hustCount += 1;
quest.setUI8AL(hustCount); quest.setUI8AL( hustCount );
player.sendEventNotice(getId(), 0, 2, hustCount, 6); eventMgr().sendEventNotice( player, getId(), 0, 2, hustCount, 6 );
quest.setBitFlag8(7, true); quest.setBitFlag8( 7, true );
checkQuestProgression(quest, player); checkQuestProgression( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -294,10 +296,10 @@ class SubWil020 : public Sapphire::ScriptAPI::QuestScript
{ {
auto hustCount = quest.getUI8AL(); auto hustCount = quest.getUI8AL();
hustCount += 1; hustCount += 1;
quest.setUI8AL(hustCount); quest.setUI8AL( hustCount );
player.sendEventNotice(getId(), 0, 2, hustCount, 6); eventMgr().sendEventNotice( player, getId(), 0, 2, hustCount, 6 );
quest.setBitFlag8(8, true); quest.setBitFlag8( 8, true );
checkQuestProgression(quest, player); checkQuestProgression( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////

View file

@ -17,32 +17,34 @@ using namespace Sapphire;
class SubWil029 : public Sapphire::ScriptAPI::QuestScript class SubWil029 : public Sapphire::ScriptAPI::QuestScript
{ {
private: private:
// Basic quest information // Basic quest information
// Quest vars / flags used // Quest vars / flags used
// UI8AL // UI8AL
// UI8BH // UI8BH
/// Countable Num: 1 Seq: 1 Event: 1 Listener: 1001390 /// Countable Num: 1 Seq: 1 Event: 1 Listener: 1001390
/// Countable Num: 1 Seq: 255 Event: 1 Listener: 1001992 /// Countable Num: 1 Seq: 255 Event: 1 Listener: 1001992
// Steps in this quest ( 0 is before accepting, // Steps in this quest ( 0 is before accepting,
// 1 is first, 255 means ready for turning it in // 1 is first, 255 means ready for turning it in
enum Sequence : uint8_t enum Sequence : uint8_t
{ {
Seq0 = 0, Seq0 = 0,
Seq1 = 1, Seq1 = 1,
SeqFinish = 255, SeqFinish = 255,
}; };
// Entities found in the script data of the quest // Entities found in the script data of the quest
static constexpr auto Actor0 = 1001313; static constexpr auto Actor0 = 1001313;
static constexpr auto Actor1 = 1001390; static constexpr auto Actor1 = 1001390;
static constexpr auto Actor2 = 1001992; static constexpr auto Actor2 = 1001992;
static constexpr auto Item0 = 2000410; static constexpr auto Item0 = 2000410;
public: public:
SubWil029() : Sapphire::ScriptAPI::QuestScript( 65926 ){}; SubWil029() : Sapphire::ScriptAPI::QuestScript( 65926 )
~SubWil029() = default; {};
~SubWil029() = default;
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Event Handlers // Event Handlers
@ -52,24 +54,24 @@ class SubWil029 : public Sapphire::ScriptAPI::QuestScript
{ {
case Actor0: case Actor0:
{ {
Scene00000(quest, player); Scene00000( quest, player );
break; break;
} }
case Actor1: case Actor1:
{ {
Scene00001(quest, player); Scene00001( quest, player );
break; break;
} }
case Actor2: case Actor2:
{ {
Scene00002(quest, player); Scene00002( quest, player );
break; break;
} }
} }
} }
private: private:
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
// Available Scenes in this quest, not necessarly all are used // Available Scenes in this quest, not necessarly all are used
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -83,7 +85,7 @@ class SubWil029 : public Sapphire::ScriptAPI::QuestScript
{ {
if( result.getResult( 0 ) == 1 ) // accept quest if( result.getResult( 0 ) == 1 ) // accept quest
{ {
quest.setSeq(Seq1); quest.setSeq( Seq1 );
} }
} }
@ -96,9 +98,9 @@ class SubWil029 : public Sapphire::ScriptAPI::QuestScript
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.setSeq(SeqFinish); quest.setSeq( SeqFinish );
quest.setUI8BH(1); quest.setUI8BH( 1 );
player.sendEventNotice(getId(), 0, 2, 0, 0); eventMgr().sendEventNotice( player, getId(), 0, 2, 0, 0 );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -110,10 +112,10 @@ class SubWil029 : public Sapphire::ScriptAPI::QuestScript
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) if( result.getResult( 0 ) == 1 )
Scene00003(quest, player); Scene00003( quest, player );
else else
Scene00004(quest, player); Scene00004( quest, player );
} }
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////

View file

@ -582,9 +582,6 @@ namespace Sapphire::Entity
/*! send the entire inventory sequence */ /*! send the entire inventory sequence */
void sendInventory(); void sendInventory();
/*! send a quest specific message */
void sendEventNotice( uint32_t questId, int8_t noticeId, uint8_t numOfArgs, uint32_t var1, uint32_t var2 );
/*! returns true if loading is complete ( 0x69 has been received ) */ /*! returns true if loading is complete ( 0x69 has been received ) */
bool isLoadingComplete() const; bool isLoadingComplete() const;

View file

@ -142,12 +142,6 @@ void Sapphire::Entity::Player::addQuestTracking( uint8_t idx )
} }
} }
void
Sapphire::Entity::Player::sendEventNotice( uint32_t questId, int8_t noticeId, uint8_t numOfArgs, uint32_t var1, uint32_t var2 )
{
queuePacket( std::make_shared< Notice2Packet >( getAsPlayer(), questId, noticeId, numOfArgs, var1, var2 ) );
}
void Sapphire::Entity::Player::updateQuestsCompleted( uint32_t questId ) void Sapphire::Entity::Player::updateQuestsCompleted( uint32_t questId )
{ {
uint8_t index = questId / 8; uint8_t index = questId / 8;

View file

@ -17,6 +17,7 @@
#include "Network/PacketWrappers/EventStartPacket.h" #include "Network/PacketWrappers/EventStartPacket.h"
#include "Network/PacketWrappers/EventPlayPacket.h" #include "Network/PacketWrappers/EventPlayPacket.h"
#include "Network/PacketWrappers/EventFinishPacket.h" #include "Network/PacketWrappers/EventFinishPacket.h"
#include "Network/PacketWrappers/Notice2Packet.h"
#include "Territory/Territory.h" #include "Territory/Territory.h"
#include "Territory/InstanceContent.h" #include "Territory/InstanceContent.h"
@ -739,3 +740,10 @@ Sapphire::Event::EventHandlerPtr EventMgr::bootstrapSceneEvent( Entity::Player&
return pEvent; return pEvent;
} }
void EventMgr::sendEventNotice( Entity::Player& player, uint32_t questId, int8_t noticeId, uint8_t numOfArgs, uint32_t var1, uint32_t var2 )
{
auto noticePacket = std::make_shared< Notice2Packet >( player.getId(), questId, noticeId, numOfArgs, var1, var2 );
auto& server = Common::Service< World::WorldServer >::ref();
server.queueForPlayer( player.getCharacterId(), noticePacket );
}

View file

@ -65,6 +65,8 @@ namespace Sapphire::World::Manager
bool sendEventPlay( Entity::Player& player, uint32_t eventid, uint32_t scene, uint32_t flags ); bool sendEventPlay( Entity::Player& player, uint32_t eventid, uint32_t scene, uint32_t flags );
void sendEventNotice( Entity::Player& player, uint32_t eventId, int8_t noticeId, uint8_t numOfArgs = 0, uint32_t var1 = 0, uint32_t var2 = 0 );
/*! setup the event and return a ptr to it */ /*! setup the event and return a ptr to it */
Event::EventHandlerPtr bootstrapSceneEvent( Entity::Player& player, uint32_t eventId, uint32_t flags ); Event::EventHandlerPtr bootstrapSceneEvent( Entity::Player& player, uint32_t eventId, uint32_t flags );
}; };

View file

@ -2,7 +2,6 @@
#define _QUESTMESSAGE_H #define _QUESTMESSAGE_H
#include <Network/GamePacket.h> #include <Network/GamePacket.h>
#include "Actor/Player.h"
#include "Forwards.h" #include "Forwards.h"
namespace Sapphire::Network::Packets::WorldPackets::Server namespace Sapphire::Network::Packets::WorldPackets::Server
@ -14,20 +13,19 @@ namespace Sapphire::Network::Packets::WorldPackets::Server
class Notice2Packet : public ZoneChannelPacket< FFXIVIpcNotice2 > class Notice2Packet : public ZoneChannelPacket< FFXIVIpcNotice2 >
{ {
public: public:
Notice2Packet( Entity::GameObjectPtr pActor, uint32_t questId, int8_t msgId, Notice2Packet( uint32_t entityId, uint32_t questId, int8_t msgId, uint8_t numOfArgs = 0, uint32_t var1 = 0, uint32_t var2 = 0 ) :
uint8_t type = 0, uint32_t var1 = 0, uint32_t var2 = 0 ) : ZoneChannelPacket< FFXIVIpcNotice2 >( entityId, entityId )
ZoneChannelPacket< FFXIVIpcNotice2 >( pActor->getId(), pActor->getId() )
{ {
initialize( questId, msgId, type, var1, var2 ); initialize( questId, msgId, numOfArgs, var1, var2 );
}; };
private: private:
void initialize( uint32_t questId, int8_t msgId, uint8_t type, uint32_t var1, uint32_t var2 ) void initialize( uint32_t questId, int8_t msgId, uint8_t numOfArgs, uint32_t var1, uint32_t var2 )
{ {
m_data.handlerId = questId; m_data.handlerId = questId;
m_data.noticeId = msgId; m_data.noticeId = msgId;
// todo: not correct // todo: not correct
m_data.numOfArgs = type; m_data.numOfArgs = numOfArgs;
m_data.args[0] = var1; m_data.args[0] = var1;
m_data.args[1] = var2; m_data.args[1] = var2;
}; };

View file

@ -177,7 +177,8 @@ void Sapphire::QuestBattle::onFinishLoading( Entity::Player& player )
void Sapphire::QuestBattle::onInitDirector( Entity::Player& player ) void Sapphire::QuestBattle::onInitDirector( Entity::Player& player )
{ {
player.sendEventNotice( getDirectorId(), 0, 2, Util::getTimeSeconds(), 0x0708 ); auto& eventMgr = Common::Service< World::Manager::EventMgr >::ref();
eventMgr.sendEventNotice( player, getDirectorId(), 0, 2, Util::getTimeSeconds(), 0x0708 );
sendDirectorVars( player ); sendDirectorVars( player );
player.setDirectorInitialized( true ); player.setDirectorInitialized( true );
} }