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

ManSea002 now work properly and it's over

This commit is contained in:
Dantestyle 2018-05-15 02:39:35 +02:00
parent 5b10dcf722
commit 4fc7884c63
2 changed files with 119 additions and 58 deletions

View file

@ -41,14 +41,69 @@ public:
void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
{ {
auto actor = Event::mapEventActorToRealActor( static_cast<uint32_t>( actorId ) ); auto actor = Event::mapEventActorToRealActor( actorId );
if( actor == ACTOR0 ) if( actor == ACTOR0 )
{
Scene00000( player ); Scene00000( player );
}
else if( actor == AETHERYTE0 )
{
player.eventActionStart( 0x050002, 0x13,
[&]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{
player.sendQuestMessage( 0x050002, 0, 1, 0, 0 );
player.registerAetheryte( 2 );
player.learnAction( 1 );
Scene00002( player );
},
[&]( Entity::Player& player, uint32_t eventId, uint64_t additional )
{},
eventId );
}
else if( actor == ACTOR1 )
{
Scene00004( player );
}
else if( actor == ACTOR2 )
{
Scene00006( player );
}
else if( actor == ACTOR3 )
{
Scene00007( player );
}
} }
private: private:
void checkQuestCompletion( Entity::Player& player, uint32_t varIdx )
{
if ( varIdx == 1 )
{
player.sendQuestMessage( getId(), 1, 0, 0, 0 );
}
else if ( varIdx == 2 )
{
player.sendQuestMessage( getId(), 2, 0, 0, 0 );
}
else
{
player.sendQuestMessage( getId(), 0, 0, 0, 0 );
}
auto questId = getId();
auto QUEST_VAR_ATTUNE = player.getQuestUI8AL( questId );
auto QUEST_VAR_CLASS = player.getQuestUI8BH( questId );
auto QUEST_VAR_TRADE = player.getQuestUI8BL( questId );
if ( QUEST_VAR_ATTUNE == 1 && QUEST_VAR_CLASS == 1 && QUEST_VAR_TRADE == 1 )
{
player.updateQuest( questId, SEQ_FINISH );
}
}
void Scene00000( Entity::Player& player ) void Scene00000( Entity::Player& player )
{ {
player.playScene( getId(), 0, HIDE_HOTBAR, player.playScene( getId(), 0, HIDE_HOTBAR,
@ -72,61 +127,69 @@ private:
void Scene00002( Entity::Player& player ) void Scene00002( Entity::Player& player )
{ {
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result ) player.playScene( getId(), 2, HIDE_HOTBAR,
[&]( Entity::Player& player, const Event::SceneResult& result )
{ {
Scene00003( player );
}; } );
player.playScene( getId(), 2, NONE, callback );
} }
void Scene00003( Entity::Player& player ) void Scene00003( Entity::Player& player )
{ {
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result ) player.playScene( getId(), 3, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ,
[&]( Entity::Player& player, const Event::SceneResult& result )
{ {
player.setQuestUI8BL( getId(), 1 );
}; checkQuestCompletion( player, 0 );
} );
player.playScene( getId(), 3, NONE, callback);
} }
void Scene00004( Entity::Player& player ) void Scene00004( Entity::Player& player )
{ {
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result ) player.playScene( getId(), 4, HIDE_HOTBAR,
[&]( Entity::Player& player, const Event::SceneResult& result )
{ {
if( result.param2 == 1 )
}; {
Scene00005( player );
player.playScene( getId(), 4, NONE, callback); }
else return;
} );
} }
void Scene00005( Entity::Player& player ) void Scene00005( Entity::Player& player )
{ {
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result ) player.playScene( getId(), 5, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ, 0, 0,
[&]( Entity::Player& player, const Event::SceneResult& result )
{ {
player.setQuestUI8CH( getId(), 0 ); // remove key item, since we have just traded it
}; player.setQuestUI8BH( getId(), 1 );
checkQuestCompletion( player, 1 );
player.playScene( getId(), 5, NONE, callback); } );
} }
void Scene00006( Entity::Player& player ) void Scene00006( Entity::Player& player )
{ {
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result ) player.playScene( getId(), 6, HIDE_HOTBAR,
[&]( Entity::Player& player, const Event::SceneResult& result )
{ {
player.setQuestUI8AL( getId(), 1 );
}; checkQuestCompletion( player, 2 );
} );
player.playScene( getId(), 6, NONE, callback);
} }
void Scene00007( Entity::Player& player ) void Scene00007( Entity::Player& player )
{ {
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result ) player.playScene( getId(), 7, SET_EOBJ_BASE | HIDE_HOTBAR | INVIS_EOBJ, 0, 0,
[&]( Entity::Player& player, const Event::SceneResult& result )
{ {
if ( result.param2 == 1 ) // finish quest
}; {
if (player.giveQuestRewards( getId(), 0 ) )
player.playScene( getId(), 7, NONE, callback); {
player.finishQuest( getId() );
}
}
} );
} }
}; };

View file

@ -50,9 +50,9 @@ class SubSea001 : public EventScript
public: public:
SubSea001() : EventScript( 65647 ) SubSea001() : EventScript( 65647 )
{ }; {};
~SubSea001() ~SubSea001()
{ }; {};
void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override
{ {
@ -76,35 +76,34 @@ class SubSea001 : public EventScript
void Scene00000( Entity::Player& player ) void Scene00000( Entity::Player& player )
{ {
player.playScene( getId(), 0, 8192, player.playScene( getId(), 0, HIDE_HOTBAR,
[&]( Entity::Player& player, const Event::SceneResult& result ) [&]( Entity::Player& player, const Event::SceneResult& result )
{ {
if (result.param2 == 1) if( result.param2 == 1 )
player.updateQuest( getId(), 1); player.updateQuest( getId(), 1 );
} ); } );
} }
void Scene00001( Entity::Player& player ) void Scene00001( Entity::Player& player )
{ {
player.playScene( getId(), 1, 8192, player.playScene( getId(), 1, HIDE_HOTBAR,
[&]( Entity::Player& player, const Event::SceneResult& result ) [&]( Entity::Player& player, const Event::SceneResult& result )
{ {
} ); } );
} }
void Scene00002( Entity::Player& player ) void Scene00002( Entity::Player& player )
{ {
player.playScene( getId(), 2, 8192, player.playScene( getId(), 2, HIDE_HOTBAR,
[&]( Entity::Player& player, const Event::SceneResult& result ) [&]( Entity::Player& player, const Event::SceneResult& result )
{ {
if( result.param2 == 1 && player.hasQuest( 65644 ) ) if( result.param2 == 1 && player.hasQuest( 65644 ) )
{ {
player.updateQuest( getId(), 2); player.updateQuest( getId(), 2);
player.prepareZoning( 129, true, 1, 0 ); // teleport to real limsa
player.changePosition( 10, 21, 13, -2 ); player.changePosition( 10, 21, 13, -2 );
player.forceZoneing( Territorytype0 ); // teleport to real limsa
//HARDCODE for autocomplete quest //Autocomplete quest
if (player.getQuestSeq( getId() ) == 2 ) if (player.getQuestSeq( getId() ) == 2 )
{ {
player.setQuestUI8BH( getId(), 6 ); player.setQuestUI8BH( getId(), 6 );
@ -117,7 +116,7 @@ class SubSea001 : public EventScript
void Scene00003( Entity::Player& player ) void Scene00003( Entity::Player& player )
{ {
player.playScene( getId(), 3, 8192, player.playScene( getId(), 3, HIDE_HOTBAR,
[&]( Entity::Player& player, const Event::SceneResult& result ) [&]( Entity::Player& player, const Event::SceneResult& result )
{ {
} ); } );
@ -125,7 +124,7 @@ class SubSea001 : public EventScript
void Scene00004( Entity::Player& player ) void Scene00004( Entity::Player& player )
{ {
player.playScene( getId(), 4, 8192, player.playScene( getId(), 4, HIDE_HOTBAR,
[&]( Entity::Player& player, const Event::SceneResult& result ) [&]( Entity::Player& player, const Event::SceneResult& result )
{ {
} ); } );
@ -133,7 +132,7 @@ class SubSea001 : public EventScript
void Scene00005( Entity::Player& player ) void Scene00005( Entity::Player& player )
{ {
player.playScene( getId(), 5, 8192, player.playScene( getId(), 5, HIDE_HOTBAR,
[&]( Entity::Player& player, const Event::SceneResult& result ) [&]( Entity::Player& player, const Event::SceneResult& result )
{ {
} ); } );
@ -141,7 +140,7 @@ class SubSea001 : public EventScript
void Scene00006( Entity::Player& player ) void Scene00006( Entity::Player& player )
{ {
player.playScene( getId(), 6, 8192, player.playScene( getId(), 6, HIDE_HOTBAR,
[&]( Entity::Player& player, const Event::SceneResult& result ) [&]( Entity::Player& player, const Event::SceneResult& result )
{ {
} ); } );
@ -149,7 +148,7 @@ class SubSea001 : public EventScript
void Scene00007( Entity::Player& player ) void Scene00007( Entity::Player& player )
{ {
player.playScene( getId(), 7, 8192, player.playScene( getId(), 7, HIDE_HOTBAR,
[&]( Entity::Player& player, const Event::SceneResult& result ) [&]( Entity::Player& player, const Event::SceneResult& result )
{ {
} ); } );
@ -157,7 +156,7 @@ class SubSea001 : public EventScript
void Scene00008( Entity::Player& player ) void Scene00008( Entity::Player& player )
{ {
player.playScene( getId(), 8, 8192, player.playScene( getId(), 8, HIDE_HOTBAR,
[&]( Entity::Player& player, const Event::SceneResult& result ) [&]( Entity::Player& player, const Event::SceneResult& result )
{ {
} ); } );
@ -165,7 +164,7 @@ class SubSea001 : public EventScript
void Scene00009( Entity::Player& player ) void Scene00009( Entity::Player& player )
{ {
player.playScene( getId(), 9, 8192, player.playScene( getId(), 9, HIDE_HOTBAR,
[&]( Entity::Player& player, const Event::SceneResult& result ) [&]( Entity::Player& player, const Event::SceneResult& result )
{ {
} ); } );
@ -173,7 +172,7 @@ class SubSea001 : public EventScript
void Scene00010( Entity::Player& player ) void Scene00010( Entity::Player& player )
{ {
player.playScene( getId(), 10, 8192, player.playScene( getId(), 10, HIDE_HOTBAR,
[&]( Entity::Player& player, const Event::SceneResult& result ) [&]( Entity::Player& player, const Event::SceneResult& result )
{ {
} ); } );
@ -181,7 +180,7 @@ class SubSea001 : public EventScript
void Scene00011( Entity::Player& player ) void Scene00011( Entity::Player& player )
{ {
player.playScene( getId(), 11, 8192, player.playScene( getId(), 11, HIDE_HOTBAR,
[&]( Entity::Player& player, const Event::SceneResult& result ) [&]( Entity::Player& player, const Event::SceneResult& result )
{ {
} ); } );
@ -189,7 +188,7 @@ class SubSea001 : public EventScript
void Scene00012( Entity::Player& player ) void Scene00012( Entity::Player& player )
{ {
player.playScene( getId(), 12, 8192, player.playScene( getId(), 12, HIDE_HOTBAR,
[&]( Entity::Player& player, const Event::SceneResult& result ) [&]( Entity::Player& player, const Event::SceneResult& result )
{ {
} ); } );
@ -197,7 +196,7 @@ class SubSea001 : public EventScript
void Scene00013( Entity::Player& player ) void Scene00013( Entity::Player& player )
{ {
player.playScene( getId(), 13, 8192, player.playScene( getId(), 13, HIDE_HOTBAR,
[&]( Entity::Player& player, const Event::SceneResult& result ) [&]( Entity::Player& player, const Event::SceneResult& result )
{ {
} ); } );
@ -205,7 +204,7 @@ class SubSea001 : public EventScript
void Scene00014( Entity::Player& player ) void Scene00014( Entity::Player& player )
{ {
player.playScene( getId(), 14, 8192, player.playScene( getId(), 14, HIDE_HOTBAR,
[&]( Entity::Player& player, const Event::SceneResult& result ) [&]( Entity::Player& player, const Event::SceneResult& result )
{ {
} ); } );
@ -213,16 +212,15 @@ class SubSea001 : public EventScript
void Scene00015( Entity::Player& player ) void Scene00015( Entity::Player& player )
{ {
player.playScene( getId(), 15, 8192, player.playScene( getId(), 15, HIDE_HOTBAR,
[&]( Entity::Player& player, const Event::SceneResult& result ) [&]( Entity::Player& player, const Event::SceneResult& result )
{ {
} ); } );
} }
void Scene00016( Entity::Player& player ) void Scene00016( Entity::Player& player )
{ {
player.playScene( getId(), 16, 8192, player.playScene( getId(), 16, HIDE_HOTBAR,
[&]( Entity::Player& player, const Event::SceneResult& result ) [&]( Entity::Player& player, const Event::SceneResult& result )
{ {
if( result.param2 == 1 ) if( result.param2 == 1 )
@ -235,12 +233,12 @@ class SubSea001 : public EventScript
void Scene00017( Entity::Player& player ) void Scene00017( Entity::Player& player )
{ {
player.playScene( getId(), 17, 8192, player.playScene( getId(), 17, HIDE_HOTBAR,
[&]( Entity::Player& player, const Event::SceneResult& result ) [&]( Entity::Player& player, const Event::SceneResult& result )
{ {
player.setQuestUI8BH( getId(), 0 ); player.setQuestUI8BH( getId(), 0 );
if (player.giveQuestRewards( getId(), 0 ) ) if( player.giveQuestRewards( getId(), 0 ) )
player.finishQuest( getId() ); player.finishQuest( getId() );
} ); } );
} }