1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-07 11:17:46 +00:00

Updating starting quests to use new quest parse format

(Pugilist and Arcanist ver.)
Lambda function wasn't getting run. Figured it would be more efficient to just upgrade it.
This commit is contained in:
Pinapelz 2023-02-19 18:17:29 -08:00
parent 00cb4ade45
commit b7b8f0b5fd
2 changed files with 183 additions and 190 deletions

View file

@ -64,7 +64,7 @@ public:
{
if( actorId == Actor0 )
{
Scene00000( player );
Scene00000( quest, player );
}
else if( actorId == Aetheryte0 )
{
@ -74,27 +74,27 @@ public:
eventMgr().sendEventNotice( player, 0x050002, 0, 1, 0, 0 );
player.registerAetheryte( 2 );
player.setRewardFlag( Common::UnlockEntry::Return );
Scene00002( player );
Scene00002( quest, player );
},
nullptr, getId() );
}
else if( actorId == Actor1 )
{
Scene00004( player );
Scene00004( quest, player );
}
else if( actorId == Actor2 )
{
Scene00006( player );
Scene00006( quest, player );
}
else if( actorId == Actor3 )
{
Scene00007( player );
Scene00007( quest, player );
}
}
private:
void checkQuestCompletion( Entity::Player& player, uint32_t varIdx )
void checkQuestCompletion( World::Quest& quest, Entity::Player& player, uint32_t varIdx )
{
if( varIdx == 1 )
{
@ -121,110 +121,121 @@ private:
if( QUEST_VAR_ATTUNE == 1 && QUEST_VAR_CLASS == 1 && QUEST_VAR_TRADE == 1 )
{
pQuest->setSeq( SeqFinish );
quest.setSeq( SeqFinish );
}
}
void Scene00000( Entity::Player& player )
void Scene00000( World::Quest& quest, Entity::Player& player )
{
eventMgr().playScene( player, getId(), 0, HIDE_HOTBAR,
[ & ]( Entity::Player& player, const Event::SceneResult& result )
eventMgr().playQuestScene( player, getId(), 0, NONE, bindSceneReturn( &ManSea003::Scene00000Return ) );
}
void Scene00000Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{
if( result.getResult( 0 ) == 1 )// accept quest
{
Scene00001( quest, player );
}
}
//////////////////////////////////////////////////////////////////////
void Scene00001( World::Quest& quest, Entity::Player& player )
{
eventMgr().playQuestScene( player, getId(), 1, FADE_OUT | CONDITION_CUTSCENE | HIDE_UI, bindSceneReturn( &ManSea003::Scene00001Return ) );
}
void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{
quest.setSeq( Seq1 );
quest.setUI8CH( 1 );
}
//////////////////////////////////////////////////////////////////////
void Scene00002( World::Quest& quest, Entity::Player& player )
{
eventMgr().playQuestScene( player, getId(), 2, HIDE_HOTBAR, bindSceneReturn( &ManSea003::Scene00002Return ) );
}
void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{
Scene00003( quest, player );
}
//////////////////////////////////////////////////////////////////////
void Scene00003( World::Quest& quest, Entity::Player& player )
{
eventMgr().playQuestScene( player, getId(), 3, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ, bindSceneReturn( &ManSea003::Scene00003Return ) );
}
void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{
quest.setUI8BL( 1 );
checkQuestCompletion( quest, player, 1 );
}
//////////////////////////////////////////////////////////////////////
void Scene00004( World::Quest& quest, Entity::Player& player )
{
eventMgr().playQuestScene( player, getId(), 4, HIDE_HOTBAR, bindSceneReturn( &ManSea003::Scene00004Return ) );
}
void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{
if( result.getResult( 0 ) == 1 )
{
Scene00001( player );
}
} );
}
void Scene00001( Entity::Player& player )
{
eventMgr().playScene( player, getId(), 1, FADE_OUT | CONDITION_CUTSCENE | HIDE_UI,
[ & ]( Entity::Player& player, const Event::SceneResult& result )
{
auto pQuest = player.getQuest( getId() );
if( !pQuest )
return;
pQuest->setSeq( Seq1 );
pQuest->setUI8CH( 1 );
} );
}
void Scene00002( Entity::Player& player )
{
eventMgr().playScene( player, getId(), 2, HIDE_HOTBAR,
[ & ]( Entity::Player& player, const Event::SceneResult& result )
{
Scene00003( player );
} );
}
void Scene00003( Entity::Player& player )
{
eventMgr().playScene( player, getId(), 3, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ,
[ & ]( Entity::Player& player, const Event::SceneResult& result )
{
auto pQuest = player.getQuest( getId() );
if( !pQuest )
return;
pQuest->setUI8BL( 1 );
checkQuestCompletion( player, 0 );
} );
}
void Scene00004( Entity::Player& player )
{
eventMgr().playScene( player, getId(), 4, HIDE_HOTBAR,
[ & ]( Entity::Player& player, const Event::SceneResult& result )
{
if( result.getResult( 0 ) == 1 )
{
Scene00005( player );
Scene00005( quest, player );
}
else
return;
} );
}
void Scene00005( Entity::Player& player )
//////////////////////////////////////////////////////////////////////
void Scene00005( World::Quest& quest, Entity::Player& player )
{
eventMgr().playScene( player, getId(), 5, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ,
[ & ]( Entity::Player& player, const Event::SceneResult& result )
{
auto pQuest = player.getQuest( getId() );
if( !pQuest )
return;
pQuest->setUI8CH( 0 );
pQuest->setUI8BH( 1 );
checkQuestCompletion( player, 1 );
} );
eventMgr().playQuestScene( player, getId(), 5, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ, bindSceneReturn( &ManSea003::Scene00005Return ) );
}
void Scene00006( Entity::Player& player )
void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{
eventMgr().playScene( player, getId(), 6, HIDE_HOTBAR,
[ & ]( Entity::Player& player, const Event::SceneResult& result )
{
auto pQuest = player.getQuest( getId() );
if( !pQuest )
return;
pQuest->setUI8AL( 1 );
checkQuestCompletion( player, 2 );
} );
quest.setUI8CH( 0 );
quest.setUI8BH( 1 );
checkQuestCompletion( quest, player, 1 );
}
void Scene00007( Entity::Player& player )
//////////////////////////////////////////////////////////////////////
void Scene00006( World::Quest& quest, Entity::Player& player )
{
eventMgr().playScene( player, getId(), 7, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ,
[ & ]( Entity::Player& player, const Event::SceneResult& result )
eventMgr().playQuestScene( player, getId(), 6, HIDE_HOTBAR, bindSceneReturn( &ManSea003::Scene00006Return ) );
}
void Scene00006Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{
quest.setUI8AL( 1 );
checkQuestCompletion( quest, player, 2 );
}
//////////////////////////////////////////////////////////////////////
void Scene00007( World::Quest& quest, Entity::Player& player )
{
eventMgr().playQuestScene( player, getId(), 7, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ, bindSceneReturn( &ManSea003::Scene00007Return ) );
}
void Scene00007Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{
if( result.getResult( 0 ) == 1 )
{
player.finishQuest( getId(), result.getResult( 1 ) );
}
} );
}
};
EXPOSE_SCRIPT( ManSea003 );

View file

@ -61,27 +61,25 @@ public:
{
};
~ManWil003()
{
};
~ManWil003() = default;
void onTalk( World::Quest& quest, Entity::Player& player, uint64_t actorId ) override
{
if( actorId == Actor0 )
{
Scene00000( player );
Scene00000( quest, player );
}
else if( actorId == Actor1 )
{
Scene00003( player );
Scene00003( quest, player );
}
else if( actorId == Actor2 )
{
Scene00004( player );
Scene00004( quest, player );
}
else if( actorId == Actor3 )
{
Scene00008( player );
Scene00008( quest, player );
}
else if( actorId == Aetheryte0 )
{
@ -91,7 +89,7 @@ public:
eventMgr().sendEventNotice( player, 0x050002, 0, 1, 0, 0 );
player.registerAetheryte( 2 );
player.setRewardFlag( Common::UnlockEntry::Return );
Scene00001( player );
Scene00001( quest, player );
},
nullptr, getId() );
}
@ -99,7 +97,7 @@ public:
private:
void checkQuestCompletion( Entity::Player& player, uint32_t varIdx )
void checkQuestCompletion( World::Quest& quest, Entity::Player& player, uint32_t varIdx )
{
if( varIdx == 1 )
{
@ -114,138 +112,122 @@ private:
eventMgr().sendEventNotice( player, getId(), 0, 0, 0, 0 );
}
auto pQuest = player.getQuest( getId() );
if( !pQuest )
return;
auto QUEST_VAR_ATTUNE = pQuest->getUI8AL();
auto QUEST_VAR_CLASS = pQuest->getUI8BH();
auto QUEST_VAR_TRADE = pQuest->getUI8BL();
auto QUEST_VAR_ATTUNE = quest.getUI8AL();
auto QUEST_VAR_CLASS = quest.getUI8BH();
auto QUEST_VAR_TRADE = quest.getUI8BL();
if( QUEST_VAR_ATTUNE == 1 && QUEST_VAR_CLASS == 1 && QUEST_VAR_TRADE == 1 )
{
pQuest->setSeq( SeqFinish );
quest.setSeq( SeqFinish );
}
}
void Scene00000( Entity::Player& player )
void Scene00000( World::Quest& quest, Entity::Player& player )
{
eventMgr().playScene( player, getId(), 0, HIDE_HOTBAR,
[ & ]( Entity::Player& player, const Event::SceneResult& result )
eventMgr().playQuestScene( player, getId(), 0, HIDE_HOTBAR, bindSceneReturn( &ManWil003::Scene00000Return ) );
}
void Scene00000Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{
if( result.getResult( 0 ) == 1 )// accept quest
{
Scene00050( player );
Scene00050( quest, player );
}
} );
}
void Scene00001( Entity::Player& player )
void Scene00001( World::Quest& quest, Entity::Player& player )
{
eventMgr().playScene( player, getId(), 1, HIDE_HOTBAR,
[ & ]( Entity::Player& player, const Event::SceneResult& result )
{
Scene00002( player );
} );
eventMgr().playQuestScene( player, getId(), 1, HIDE_HOTBAR, bindSceneReturn( &ManWil003::Scene00001Return ) );
}
void Scene00002( Entity::Player& player )
void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{
eventMgr().playScene( player, getId(), 2, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ,
[ & ]( Entity::Player& player, const Event::SceneResult& result )
{
auto pQuest = player.getQuest( getId() );
if( !pQuest )
return;
pQuest->setUI8BL( 1 );
checkQuestCompletion( player, 0 );
} );
Scene00002( quest, player );
}
void Scene00003( Entity::Player& player )
void Scene00002( World::Quest& quest, Entity::Player& player )
{
eventMgr().playScene( player, getId(), 3, HIDE_HOTBAR,
[ & ]( Entity::Player& player, const Event::SceneResult& result )
{
auto pQuest = player.getQuest( getId() );
if( !pQuest )
return;
pQuest->setUI8AL( 1 );
checkQuestCompletion( player, 1 );
} );
eventMgr().playQuestScene( player, getId(), 2, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ, bindSceneReturn( &ManWil003::Scene00002Return ) );
}
void Scene00004( Entity::Player& player )
void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{
eventMgr().playScene( player, getId(), 4, HIDE_HOTBAR,
[ & ]( Entity::Player& player, const Event::SceneResult& result )
quest.setUI8BL( 1 );
checkQuestCompletion( quest, player, 0 );
}
void Scene00003( World::Quest& quest, Entity::Player& player )
{
eventMgr().playQuestScene( player, getId(), 3, HIDE_HOTBAR, bindSceneReturn( &ManWil003::Scene00003Return ) );
}
void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{
quest.setUI8AL( 1 );
checkQuestCompletion( quest, player, 1 );
}
void Scene00004( World::Quest& quest, Entity::Player& player )
{
eventMgr().playQuestScene( player, getId(), 4, HIDE_HOTBAR, bindSceneReturn( &ManWil003::Scene00004Return ) );
}
void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{
if( result.getResult( 0 ) == 1 )
{
Scene00005( player );
Scene00005( quest, player );
}
else
return;
} );
}
void Scene00005( Entity::Player& player )
void Scene00005( World::Quest& quest, Entity::Player& player )
{
eventMgr().playScene( player, getId(), 5, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ,
[ & ]( Entity::Player& player, const Event::SceneResult& result )
{
auto pQuest = player.getQuest( getId() );
if( !pQuest )
return;
pQuest->setUI8CH( 0 );
pQuest->setUI8BH( 1 );
checkQuestCompletion( player, 2 );
} );
eventMgr().playQuestScene( player, getId(), 5, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ, bindSceneReturn( &ManWil003::Scene00005Return ) );
}
void Scene00006( Entity::Player& player )
void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{
eventMgr().playScene( player, getId(), 6, HIDE_HOTBAR,
[ & ]( Entity::Player& player, const Event::SceneResult& result )
{
} );
quest.setUI8CH( 0 );
quest.setUI8BH( 1 );
checkQuestCompletion( quest, player, 2 );
}
void Scene00007( Entity::Player& player )
void Scene00006( World::Quest& quest, Entity::Player& player )
{
eventMgr().playScene( player, getId(), 7, HIDE_HOTBAR,
[ & ]( Entity::Player& player, const Event::SceneResult& result )
{
} );
eventMgr().playQuestScene( player, getId(), 6, HIDE_HOTBAR );
}
void Scene00008( Entity::Player& player )
void Scene00007( World::Quest& quest, Entity::Player& player )
{
eventMgr().playScene( player, getId(), 8, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ,
[ & ]( Entity::Player& player, const Event::SceneResult& result )
eventMgr().playQuestScene( player, getId(), 7, HIDE_HOTBAR );
}
void Scene00008( World::Quest& quest, Entity::Player& player )
{
eventMgr().playQuestScene( player, getId(), 8, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ, bindSceneReturn( &ManWil003::Scene00008Return ) );
}
void Scene00008Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{
if( result.getResult( 0 ) == 1 )
{
player.finishQuest( getId(), result.getResult( 1 ) );
}
} );
}
void Scene00050( Entity::Player& player )
void Scene00050( World::Quest& quest, Entity::Player& player )
{
eventMgr().playScene( player, getId(), 50, FADE_OUT | CONDITION_CUTSCENE | HIDE_UI,
[ & ]( Entity::Player& player, const Event::SceneResult& result )
eventMgr().playQuestScene( player, getId(), 50, FADE_OUT | CONDITION_CUTSCENE | HIDE_UI, bindSceneReturn( &ManWil003::Scene00050Return ) );
}
void Scene00050Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
{
auto pQuest = player.getQuest( getId() );
if( !pQuest )
return;
// on quest accept
pQuest->setSeq( Seq1 );
pQuest->setUI8CH( 1 ); // receive key item
quest.setSeq( Seq1 );
quest.setUI8CH( 1 ); // receive key item
// teleport to real ul'dah
warpMgr().requestMoveTerritoryType( player, Common::WarpType::WARP_TYPE_NORMAL, 130 );
} );
}
};