mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-05-06 18:57:45 +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:
parent
00cb4ade45
commit
b7b8f0b5fd
2 changed files with 183 additions and 190 deletions
|
@ -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 )
|
||||
{
|
||||
if( result.getResult( 0 ) == 1 )
|
||||
{
|
||||
Scene00001( player );
|
||||
}
|
||||
} );
|
||||
eventMgr().playQuestScene( player, getId(), 0, NONE, bindSceneReturn( &ManSea003::Scene00000Return ) );
|
||||
}
|
||||
|
||||
void Scene00001( Entity::Player& player )
|
||||
void Scene00000Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
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 );
|
||||
} );
|
||||
if( result.getResult( 0 ) == 1 )// accept quest
|
||||
{
|
||||
Scene00001( quest, player );
|
||||
}
|
||||
}
|
||||
|
||||
void Scene00002( Entity::Player& player )
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Scene00001( World::Quest& quest, Entity::Player& player )
|
||||
{
|
||||
eventMgr().playScene( player, getId(), 2, HIDE_HOTBAR,
|
||||
[ & ]( Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
Scene00003( player );
|
||||
} );
|
||||
eventMgr().playQuestScene( player, getId(), 1, FADE_OUT | CONDITION_CUTSCENE | HIDE_UI, bindSceneReturn( &ManSea003::Scene00001Return ) );
|
||||
}
|
||||
|
||||
void Scene00003( Entity::Player& player )
|
||||
void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
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 );
|
||||
} );
|
||||
quest.setSeq( Seq1 );
|
||||
quest.setUI8CH( 1 );
|
||||
}
|
||||
|
||||
void Scene00004( Entity::Player& player )
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
void Scene00002( World::Quest& quest, Entity::Player& player )
|
||||
{
|
||||
eventMgr().playScene( player, getId(), 4, HIDE_HOTBAR,
|
||||
[ & ]( Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
if( result.getResult( 0 ) == 1 )
|
||||
{
|
||||
Scene00005( player );
|
||||
}
|
||||
else
|
||||
return;
|
||||
} );
|
||||
eventMgr().playQuestScene( player, getId(), 2, HIDE_HOTBAR, bindSceneReturn( &ManSea003::Scene00002Return ) );
|
||||
}
|
||||
|
||||
void Scene00005( Entity::Player& player )
|
||||
void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
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 );
|
||||
} );
|
||||
Scene00003( quest, player );
|
||||
}
|
||||
|
||||
void Scene00006( Entity::Player& player )
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Scene00003( World::Quest& quest, Entity::Player& player )
|
||||
{
|
||||
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 );
|
||||
} );
|
||||
eventMgr().playQuestScene( player, getId(), 3, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ, bindSceneReturn( &ManSea003::Scene00003Return ) );
|
||||
}
|
||||
|
||||
void Scene00007( Entity::Player& player )
|
||||
void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
eventMgr().playScene( player, getId(), 7, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ,
|
||||
[ & ]( Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
if( result.getResult( 0 ) == 1 )
|
||||
{
|
||||
player.finishQuest( getId(), result.getResult( 1 ) );
|
||||
}
|
||||
} );
|
||||
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 )
|
||||
{
|
||||
Scene00005( quest, player );
|
||||
}
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Scene00005( World::Quest& quest, Entity::Player& player )
|
||||
{
|
||||
eventMgr().playQuestScene( player, getId(), 5, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ, bindSceneReturn( &ManSea003::Scene00005Return ) );
|
||||
}
|
||||
|
||||
void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
quest.setUI8CH( 0 );
|
||||
quest.setUI8BH( 1 );
|
||||
checkQuestCompletion( quest, player, 1 );
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
void Scene00006( World::Quest& quest, Entity::Player& player )
|
||||
{
|
||||
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 );
|
|
@ -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 )
|
||||
{
|
||||
if( result.getResult( 0 ) == 1 ) // accept quest
|
||||
{
|
||||
Scene00050( player );
|
||||
}
|
||||
} );
|
||||
eventMgr().playQuestScene( player, getId(), 0, HIDE_HOTBAR, bindSceneReturn( &ManWil003::Scene00000Return ) );
|
||||
}
|
||||
|
||||
void Scene00001( Entity::Player& player )
|
||||
void Scene00000Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
eventMgr().playScene( player, getId(), 1, HIDE_HOTBAR,
|
||||
[ & ]( Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
Scene00002( player );
|
||||
} );
|
||||
if( result.getResult( 0 ) == 1 )// accept quest
|
||||
{
|
||||
Scene00050( quest, player );
|
||||
}
|
||||
}
|
||||
|
||||
void Scene00002( Entity::Player& player )
|
||||
void Scene00001( World::Quest& quest, Entity::Player& player )
|
||||
{
|
||||
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 );
|
||||
} );
|
||||
eventMgr().playQuestScene( player, getId(), 1, HIDE_HOTBAR, bindSceneReturn( &ManWil003::Scene00001Return ) );
|
||||
}
|
||||
|
||||
void Scene00003( Entity::Player& player )
|
||||
void Scene00001Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
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 );
|
||||
} );
|
||||
Scene00002( quest, player );
|
||||
}
|
||||
|
||||
void Scene00004( Entity::Player& player )
|
||||
void Scene00002( World::Quest& quest, Entity::Player& player )
|
||||
{
|
||||
eventMgr().playScene( player, getId(), 4, HIDE_HOTBAR,
|
||||
[ & ]( Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
if( result.getResult( 0 ) == 1 )
|
||||
{
|
||||
Scene00005( player );
|
||||
}
|
||||
else
|
||||
return;
|
||||
} );
|
||||
eventMgr().playQuestScene( player, getId(), 2, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ, bindSceneReturn( &ManWil003::Scene00002Return ) );
|
||||
}
|
||||
|
||||
void Scene00005( Entity::Player& player )
|
||||
void Scene00002Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
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 );
|
||||
} );
|
||||
quest.setUI8BL( 1 );
|
||||
checkQuestCompletion( quest, player, 0 );
|
||||
}
|
||||
|
||||
void Scene00006( Entity::Player& player )
|
||||
void Scene00003( World::Quest& quest, Entity::Player& player )
|
||||
{
|
||||
eventMgr().playScene( player, getId(), 6, HIDE_HOTBAR,
|
||||
[ & ]( Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
} );
|
||||
eventMgr().playQuestScene( player, getId(), 3, HIDE_HOTBAR, bindSceneReturn( &ManWil003::Scene00003Return ) );
|
||||
}
|
||||
|
||||
void Scene00007( Entity::Player& player )
|
||||
void Scene00003Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
eventMgr().playScene( player, getId(), 7, HIDE_HOTBAR,
|
||||
[ & ]( Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
} );
|
||||
quest.setUI8AL( 1 );
|
||||
checkQuestCompletion( quest, player, 1 );
|
||||
}
|
||||
|
||||
void Scene00008( Entity::Player& player )
|
||||
void Scene00004( 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 )
|
||||
{
|
||||
if( result.getResult( 0 ) == 1 )
|
||||
{
|
||||
player.finishQuest( getId(), result.getResult( 1 ) );
|
||||
}
|
||||
} );
|
||||
eventMgr().playQuestScene( player, getId(), 4, HIDE_HOTBAR, bindSceneReturn( &ManWil003::Scene00004Return ) );
|
||||
}
|
||||
|
||||
void Scene00050( Entity::Player& player )
|
||||
void Scene00004Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
eventMgr().playScene( player, getId(), 50, FADE_OUT | CONDITION_CUTSCENE | HIDE_UI,
|
||||
[ & ]( 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
|
||||
if( result.getResult( 0 ) == 1 )
|
||||
{
|
||||
Scene00005( quest, player );
|
||||
}
|
||||
}
|
||||
|
||||
// teleport to real ul'dah
|
||||
warpMgr().requestMoveTerritoryType( player, Common::WarpType::WARP_TYPE_NORMAL, 130 );
|
||||
} );
|
||||
void Scene00005( World::Quest& quest, Entity::Player& player )
|
||||
{
|
||||
eventMgr().playQuestScene( player, getId(), 5, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ, bindSceneReturn( &ManWil003::Scene00005Return ) );
|
||||
}
|
||||
|
||||
void Scene00005Return( World::Quest& quest, Entity::Player& player, const Event::SceneResult& result )
|
||||
{
|
||||
quest.setUI8CH( 0 );
|
||||
quest.setUI8BH( 1 );
|
||||
checkQuestCompletion( quest, player, 2 );
|
||||
}
|
||||
|
||||
void Scene00006( World::Quest& quest, Entity::Player& player )
|
||||
{
|
||||
eventMgr().playQuestScene( player, getId(), 6, HIDE_HOTBAR );
|
||||
}
|
||||
|
||||
void Scene00007( World::Quest& quest, Entity::Player& player )
|
||||
{
|
||||
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( World::Quest& quest, Entity::Player& player )
|
||||
{
|
||||
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 )
|
||||
{
|
||||
// on quest accept
|
||||
quest.setSeq( Seq1 );
|
||||
quest.setUI8CH( 1 ); // receive key item
|
||||
|
||||
// teleport to real ul'dah
|
||||
warpMgr().requestMoveTerritoryType( player, Common::WarpType::WARP_TYPE_NORMAL, 130 );
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue