1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-26 14:37:44 +00:00

Simplified scripts a bit, a bit easier on the eyes

This commit is contained in:
Mordred 2018-03-20 00:05:54 +01:00
parent 642282ca21
commit 836279de09
24 changed files with 168 additions and 143 deletions

View file

@ -14,7 +14,7 @@ set(RUNTIME_OUTPUT_DIRECTORY "${SCRIPT_LIB_DIR}")
file(GLOB children "${CMAKE_CURRENT_SOURCE_DIR}/*" )
foreach(_scriptDir ${children})
get_filename_component(_name "${_scriptDir}" NAME_WE)
if(IS_DIRECTORY ${_scriptDir} AND NOT ${_name} MATCHES "CMakeFiles")
if(IS_DIRECTORY ${_scriptDir} AND NOT ${_name} MATCHES "CMakeFiles" AND NOT ${_name} MATCHES "\\.dir$")
message("discovered plugin lib: ${_scriptDir} (${_name})")
file(GLOB_RECURSE SCRIPT_BUILD_FILES "${_scriptDir}/*.cpp")

View file

@ -21,11 +21,11 @@ public:
{
if( player.isAetheryteRegistered( eventId & 0xFFFF ) )
{
player.eventPlay( eventId, 2, 0, []( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
player.eventPlay( eventId, 2, 0, []( Entity::Player& player, const Event::SceneResult& result )
{
if( param1 == 256 )
if( result.param1 == 256 )
{
player.teleport( param2, 2 );
player.teleport( result.param2, 2 );
}
} );
}

View file

@ -23,20 +23,20 @@ public:
{
if( player.isAetheryteRegistered( eventId & 0xFFFF ) )
{
player.eventPlay( eventId, 0, 1, []( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
player.eventPlay( eventId, 0, 1, []( Entity::Player& player, const Event::SceneResult& result )
{
if( param1 == 256 ) // set homepoint
if( result.param1 == 256 ) // set homepoint
{
player.setHomepoint( eventId & 0xFFFF );
player.sendQuestMessage( eventId, 2, 0xEA, 0, 0 );
player.setHomepoint( result.eventId & 0xFFFF );
player.sendQuestMessage( result.eventId, 2, 0xEA, 0, 0 );
}
else if( param1 == 512 ) // aethernet access
else if( result.param1 == 512 ) // aethernet access
{
if( param2 == 4 )
if( result.param2 == 4 )
{
player.teleport( param3, 2 );
player.teleport( result.param3, 2 );
}
else if( param2 == 2 ) // register favored destination
else if( result.param2 == 2 ) // register favored destination
{
}

View file

@ -10,11 +10,11 @@ public:
void Scene00000( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 != 0 )
if( result.param2 != 0 )
{
Scene00001( player, param2 );
Scene00001( player, result.param2 );
}
};
@ -23,7 +23,7 @@ public:
void Scene00001( Entity::Player& player, uint16_t returnScene )
{
auto callback = []( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = []( Entity::Player& player, const Event::SceneResult& result )
{
// todo: this is fucked
};

View file

@ -11,10 +11,10 @@ public:
// menu
void Scene00000( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 > 0 )
Scene00001( player, param2 );
if( result.param2 > 0 )
Scene00001( player, result.param2 );
};
player.eventPlay( getId(), 0, 0x2000, 0, 1, callback );
@ -23,9 +23,9 @@ public:
// lay down
void Scene00001( Entity::Player& player, uint16_t param )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
Scene00002( player, param2 );
Scene00002( player, result.param2 );
};
player.eventPlay( getId(), 1, 0xF32E48F8, 0, 1, param, callback );
@ -40,7 +40,7 @@ public:
// wake up
void Scene00100( Entity::Player& player )
{
auto callback = []( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = []( Entity::Player& player, const Event::SceneResult& result )
{};
player.eventPlay( getId(), 100, 0x800, 0, 0, callback );

View file

@ -14,9 +14,9 @@ public:
void Scene00001( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
switch( param2 )
switch( result.param2 )
{
case ACTION_CREATE:
Scene00002( player );

View file

@ -28,7 +28,7 @@ private:
void Scene00000( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
player.setOpeningSequence( 1 );
Scene00001( player );
@ -56,7 +56,7 @@ private:
void Scene00040( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
if( player.getOpeningSequence() == 2 )
{

View file

@ -43,7 +43,7 @@ private:
void Scene00000( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
player.setOpeningSequence( 1 );
Scene00001( player );
@ -71,7 +71,7 @@ private:
void Scene00040( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
if( player.getOpeningSequence() == 2 )
{

View file

@ -29,7 +29,7 @@ private:
void Scene00000( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
player.setOpeningSequence( 1 );
Scene00001( player );
@ -57,7 +57,7 @@ private:
void Scene00040( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
if( player.getOpeningSequence() == 2 )
Scene00030( player );

View file

@ -1,5 +1,6 @@
#include <Script/NativeScriptApi.h>
#include <Actor/Player.h>
#include <sapphire_zone/Event/EventHandler.h>
#include "../ScriptObject.h"
#include "Event/EventHelper.h"
@ -34,9 +35,9 @@ private:
void Scene00000( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 ) // accept quest
if( result.param2 == 1 ) // accept quest
{
player.setOpeningSequence( 2 );
Scene00001( player );
@ -48,7 +49,7 @@ private:
void Scene00001( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
Scene00002( player );
};
@ -58,7 +59,7 @@ private:
void Scene00002( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
player.updateQuest( getId(), SEQ_FINISH );
@ -70,7 +71,7 @@ private:
void Scene00004( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
Scene00005( player );
};
@ -80,9 +81,9 @@ private:
void Scene00005( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 )
if( result.param2 == 1 )
{
if( player.giveQuestRewards( getId(), 0 ) )
player.finishQuest( getId() );

View file

@ -1,5 +1,6 @@
#include <Script/NativeScriptApi.h>
#include <Actor/Player.h>
#include <sapphire_zone/Event/EventHandler.h>
#include "Event/EventHelper.h"
#include "../ScriptObject.h"
@ -15,6 +16,7 @@ private:
static constexpr auto SEQ_0 = 0;
static constexpr auto SEQ_1 = 1;
static constexpr auto SEQ_2 = 2;
static constexpr auto SEQ_FINISH = 255;
//this.SEQ_OFFER = ?;
@ -80,107 +82,107 @@ private:
void Scene00000( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 ) // accept quest
if( result.param2 == 1 ) // accept quest
Scene00050( player );
};
player.eventPlay( getId(), 0, HIDE_HOTBAR, 0, 0, callback );
player.eventPlay( getId(), SEQ_0_ACTOR0, HIDE_HOTBAR, 0, 0, callback );
}
void Scene00001( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
player.setQuestUI8AL( getId(), 1 );
checkQuestCompletion( player, 0 );
};
player.eventPlay( getId(), 1, 0x0EFB, 0, 0, callback );
player.eventPlay( getId(), SEQ_1_ACTOR1, 0x0EFB, 0, 0, callback );
}
void Scene00002( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
player.setQuestUI8BH( getId(), 1 );
checkQuestCompletion( player, 3 );
};
player.eventPlay( getId(), 2, NONE, 0, 0, callback );
player.eventPlay( getId(), SEQ_1_ACTOR2, NONE, 0, 0, callback );
}
void Scene00003( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 )
if( result.param2 == 1 )
Scene00100( player );
else
Scene00099( player );
};
player.eventPlay( getId(), 3, NONE, 0, 0, callback );
player.eventPlay( getId(), SEQ_1_ACTOR3, NONE, 0, 0, callback );
}
void Scene00004( Entity::Player& player )
{
player.eventPlay( getId(), 4, NONE, 0, 0 );
player.eventPlay( getId(), SEQ_1_ACTOR0, NONE, 0, 0 );
}
void Scene00005( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 ) // finish quest
if( result.param2 == 1 ) // finish quest
{
if( player.giveQuestRewards( getId(), 0 ) )
player.finishQuest( getId() );
}
};
player.eventPlay( getId(), 5, FADE_OUT | CONDITION_CUTSCENE | HIDE_UI, 0, 0, callback );
player.eventPlay( getId(), SEQ_2_ACTOR4, FADE_OUT | CONDITION_CUTSCENE | HIDE_UI, 0, 0, callback );
}
void Scene00050( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
// on quest accept
player.updateQuest( getId(), 1 );
player.updateQuest( getId(), SEQ_1 );
player.setQuestUI8CH( getId(), 1 ); // receive key item
// teleport to real gridania
player.forceZoneing( 132 );
player.forceZoneing( TERRITORYTYPE0 );
};
player.eventPlay( getId(), 50, FADE_OUT | CONDITION_CUTSCENE | HIDE_UI, 0, 0, callback );
player.eventPlay( getId(), SEQ_0_ACTOR0_LQ, FADE_OUT | CONDITION_CUTSCENE | HIDE_UI, 0, 0, callback );
}
void Scene00051( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
Scene00001( player );
};
player.eventPlay( getId(), 51, NONE, 0, 0, callback );
player.eventPlay( getId(), SEQ_1_ACTOR1_WAIT, NONE, 0, 0, callback );
}
void Scene00099( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
Scene00004( player );
};
player.eventPlay( getId(), 99, NONE, 0, 0, callback );
player.eventPlay( getId(), SEQ_1_ACTOR3_NPCTRADENO, NONE, 0, 0, callback );
}
void Scene00100( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
player.setQuestUI8CH( getId(), 0 ); // remove traded key item
player.setQuestUI8BL( getId(), 1 );
@ -188,7 +190,7 @@ private:
checkQuestCompletion( player, 2 );
};
player.eventPlay( getId(), 100, 0x0EFB, 0, 0, callback );
player.eventPlay( getId(), SEQ_1_ACTOR3_NPCTRADEOK, 0x0EFB, 0, 0, callback );
}
public:

View file

@ -144,9 +144,9 @@ class ManFst004 : public EventScript
void Scene00000( Entity::Player& player )
{
player.eventPlay( m_id, 0, 0x2000,
[&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
[&]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 ) // accept quest
if( result.param2 == 1 ) // accept quest
{
Scene00050( player );
}
@ -156,7 +156,7 @@ class ManFst004 : public EventScript
void Scene00001( Entity::Player& player )
{
player.eventPlay( m_id, 1, 0,
[&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
[&]( Entity::Player& player, const Event::SceneResult& result )
{
player.setQuestUI8AL( m_id, 1 );
checkQuestCompletion( player, 0 );
@ -166,7 +166,7 @@ class ManFst004 : public EventScript
void Scene00002( Entity::Player& player )
{
player.eventPlay( m_id, 2, 0,
[&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
[&]( Entity::Player& player, const Event::SceneResult& result )
{
player.setQuestUI8BH( m_id, 1 );
checkQuestCompletion( player, 3 );
@ -176,9 +176,9 @@ class ManFst004 : public EventScript
void Scene00003( Entity::Player& player )
{
player.eventPlay( m_id, 3, 0,
[&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
[&]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 )
if( result.param2 == 1 )
{
Scene00100( player );
}
@ -197,9 +197,9 @@ class ManFst004 : public EventScript
void Scene00005( Entity::Player& player )
{
player.eventPlay( m_id, 5, FADE_OUT | CONDITION_CUTSCENE | HIDE_UI, 0, 0,
[&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
[&]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 ) // finish quest
if( result.param2 == 1 ) // finish quest
{
if( player.giveQuestRewards( m_id, 0 ) )
{
@ -212,7 +212,7 @@ class ManFst004 : public EventScript
void Scene00050( Entity::Player& player )
{
player.eventPlay( m_id, 50, FADE_OUT | CONDITION_CUTSCENE | HIDE_UI, 0/*unk*/, 0/*unk*/,
[&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
[&]( Entity::Player& player, const Event::SceneResult& result )
{
// accepting quest "close to home"
player.updateQuest( m_id, 1 );
@ -226,7 +226,7 @@ class ManFst004 : public EventScript
void Scene00051( Entity::Player& player )
{
player.eventPlay( m_id, 51, NONE,
[&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
[&]( Entity::Player& player, const Event::SceneResult& result )
{
Scene00001( player );
});
@ -235,7 +235,7 @@ class ManFst004 : public EventScript
void Scene00099( Entity::Player& player )
{
player.eventPlay( m_id, 99, NONE,
[&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
[&]( Entity::Player& player, const Event::SceneResult& result )
{
Scene00004( player );
});
@ -244,7 +244,7 @@ class ManFst004 : public EventScript
void Scene00100( Entity::Player& player )
{
player.eventPlay( m_id, 100, NONE,
[&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
[&]( Entity::Player& player, const Event::SceneResult& result )
{
player.setQuestUI8CH( m_id, 0 ); // remove key item, since we have just traded it
player.setQuestUI8BL( m_id, 1 );

View file

@ -27,9 +27,9 @@ private:
void Scene00000( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 )
if( result.param2 == 1 )
{
player.setOpeningSequence( 2 );
Scene00001( player );
@ -41,7 +41,7 @@ private:
void Scene00001( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
Scene00002( player );
};
@ -51,7 +51,7 @@ private:
void Scene00002( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
Scene00003( player );
};
@ -61,7 +61,7 @@ private:
void Scene00003( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
player.eventPlay( OPENING_EVENT_HANDLER, 0x1E, HIDE_HOTBAR | NO_DEFAULT_CAMERA, 1, 0 );
};
@ -76,7 +76,7 @@ private:
void Scene00005( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
Scene00006( player );
};
@ -86,7 +86,7 @@ private:
void Scene00006( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
player.updateQuest( getId(), SEQ_FINISH );
player.prepareZoning( player.getZoneId(), true, 1, 0 );
@ -118,7 +118,7 @@ private:
void Scene00011( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
Scene00012( player );
};
@ -128,9 +128,9 @@ private:
void Scene00012( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 ) // finish quest
if( result.param2 == 1 ) // finish quest
{
if( player.giveQuestRewards( getId(), 0 ) )
player.finishQuest( getId() );

View file

@ -35,9 +35,9 @@ private:
void Scene00000( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 ) // accept quest
if( result.param2 == 1 ) // accept quest
Scene00050( player );
};
@ -46,7 +46,7 @@ private:
void Scene00001( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
};
@ -56,7 +56,7 @@ private:
void Scene00002( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
};
@ -66,7 +66,7 @@ private:
void Scene00003( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
};
@ -76,7 +76,7 @@ private:
void Scene00004( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
};
@ -86,7 +86,7 @@ private:
void Scene00005( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
};
@ -96,7 +96,7 @@ private:
void Scene00006( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
};
@ -106,7 +106,7 @@ private:
void Scene00007( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
};
@ -116,7 +116,7 @@ private:
void Scene00008( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
};
@ -126,7 +126,7 @@ private:
void Scene00050( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
// on quest accept
player.updateQuest( getId(), 1 );

View file

@ -28,9 +28,9 @@ private:
void Scene00000( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 )
if( result.param2 == 1 )
{
player.setOpeningSequence( 2 );
Scene00001( player );
@ -42,7 +42,7 @@ private:
void Scene00001( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
Scene00002( player );
};
@ -52,7 +52,7 @@ private:
void Scene00002( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
player.eventPlay( OPENING_EVENT_HANDLER, 0x1E, HIDE_HOTBAR | NO_DEFAULT_CAMERA, 0, 0 );
};
@ -67,7 +67,7 @@ private:
void Scene00004( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
Scene00005( player );
};
@ -77,9 +77,9 @@ private:
void Scene00005( Entity::Player& player )
{
auto callback = [ this ]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 )
if( result.param2 == 1 )
{
if( player.giveQuestRewards( getId(), 0 ) )
player.finishQuest( getId() );

View file

@ -41,9 +41,9 @@ private:
void Scene00000( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 ) // accept quest
if( result.param2 == 1 ) // accept quest
Scene00050( player );
};
@ -52,7 +52,7 @@ private:
void Scene00001( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
};
@ -62,7 +62,7 @@ private:
void Scene00002( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
};
@ -72,7 +72,7 @@ private:
void Scene00003( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
};
@ -82,7 +82,7 @@ private:
void Scene00004( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
};
@ -92,7 +92,7 @@ private:
void Scene00005( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
};
@ -102,7 +102,7 @@ private:
void Scene00006( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
};
@ -112,7 +112,7 @@ private:
void Scene00007( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
};
@ -122,7 +122,7 @@ private:
void Scene00008( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
};
@ -132,7 +132,7 @@ private:
void Scene00050( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
// on quest accept
player.updateQuest( getId(), 1 );

View file

@ -24,9 +24,9 @@ private:
void Scene00000( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 ) // accept quest
if( result.param2 == 1 ) // accept quest
{
player.setQuestUI8AL( getId(), 1 );
player.setQuestUI8BH( getId(), 1 );
@ -49,9 +49,9 @@ private:
void Scene00100( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 ) // accept quest
if( result.param2 == 1 ) // accept quest
{
if( player.giveQuestRewards( getId(), 0 ) )
player.finishQuest( getId() );

View file

@ -23,9 +23,9 @@ private:
void Scene00000( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 ) // accept quest
if( result.param2 == 1 ) // accept quest
{
player.updateQuest( getId(), SEQ_1 );
}
@ -36,9 +36,9 @@ private:
void Scene00001(Entity::Player& player)
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 ) // finish quest
if( result.param2 == 1 ) // finish quest
{
if( player.giveQuestRewards( getId(), 0 ) )
player.finishQuest( getId() );

View file

@ -21,9 +21,9 @@ private:
void Scene00000( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 ) // accept quest
if( result.param2 == 1 ) // accept quest
player.updateQuest( getId(), SEQ_FINISH );
};
@ -32,9 +32,9 @@ private:
void Scene00001( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 ) // finish quest
if( result.param2 == 1 ) // finish quest
{
if( player.giveQuestRewards( getId(), 0 ) )
player.finishQuest( getId() );

View file

@ -41,9 +41,9 @@ private:
void Scene00000( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 )
if( result.param2 == 1 )
{
player.updateQuest( getId(), SEQ_1 );
}
@ -59,7 +59,7 @@ private:
void Scene00002( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
player.updateQuest( getId(), SEQ_3 );
};
@ -74,7 +74,7 @@ private:
void Scene00004( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
player.updateQuest( getId(), SEQ_5 );
};
@ -89,9 +89,9 @@ private:
void Scene00006( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
if( param2 == 1 ) // finish quest
if( result.param2 == 1 ) // finish quest
{
if( player.giveQuestRewards( getId(), 0 ) )
player.finishQuest( getId() );
@ -108,7 +108,7 @@ private:
void Scene00096( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
player.updateQuest( getId(), SEQ_FINISH );
player.sendQuestMessage( getId(), 4, 2, 0, 0 );
@ -124,7 +124,7 @@ private:
void Scene00098( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
player.updateQuest( getId(), SEQ_4 );
player.sendQuestMessage( getId(), 2, 2, 0, 0 );
@ -140,7 +140,7 @@ private:
void Scene00100( Entity::Player& player )
{
auto callback = [&]( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2, uint16_t param3 )
auto callback = [&]( Entity::Player& player, const Event::SceneResult& result )
{
player.updateQuest( getId(), SEQ_2 );
player.sendQuestMessage( getId(), 0, 2, 0, 0 );

View file

@ -20,14 +20,16 @@ class Director
public:
enum DirectorType
{
InstanceContent = 0x8003, // used for dungeons/raids
CompanyLeve = 0x8007,
QuestBattle = 0x8006,
GatheringLeve = 0x8002,
BattleLeve = 0x8001,
GatheringLeve = 0x8002,
InstanceContent = 0x8003, // used for dungeons/raids
PublicContent = 0x8004,
QuestBattle = 0x8006,
CompanyLeve = 0x8007,
GoldSaucer = 0x800A,
Fate = 0x801A,
DpsChallange = 0x800D
DpsChallange = 0x800D,
Fate = 0x801A
};
Director( DirectorType type, uint16_t contentId );

View file

@ -6,6 +6,14 @@
namespace Core {
namespace Event {
using SceneResult = struct
{
uint32_t eventId;
uint16_t param1;
uint16_t param2;
uint16_t param3;
};
class EventHandler
{
public:
@ -64,7 +72,7 @@ namespace Core {
ICDirector = 0x8003,
};
using SceneReturnCallback = std::function< void( Entity::Player&, uint32_t, uint16_t, uint16_t, uint16_t ) > ;
using SceneReturnCallback = std::function< void( Entity::Player&, const SceneResult& ) > ;
EventHandler( Entity::Player* pOwner, uint64_t actorId, uint32_t eventId, EventType eventType, uint32_t eventParam );

View file

@ -6,6 +6,7 @@
#include <Network/GamePacketNew.h>
#include <Network/PacketContainer.h>
#include <Network/PacketDef/Zone/ServerZoneDef.h>
#include <sapphire_zone/Event/EventHandler.h>
#include "Network/GameConnection.h"
#include "Network/PacketWrappers/ServerNoticePacket.h"
@ -209,7 +210,15 @@ void Core::Network::GameConnection::eventHandlerReturn( const Packets::GamePacke
auto eventCallback = pEvent->getEventReturnCallback();
// if there is one, proceed to call it
if( eventCallback )
eventCallback( player, eventId, param1, param2, param3 );
{
Event::SceneResult result;
result.eventId = eventId;
result.param1 = param1;
result.param2 = param2;
result.param3 = param3;
eventCallback( player, result );
}
}
player.checkEvent( eventId );

View file

@ -271,7 +271,7 @@ void createScript( boost::shared_ptr< Core::Data::QuestInfo >& pQuestData, std::
constructor += rewards + "\n";
constructor += sentities + "\n";
constructor += " public:\n";
constructor += " " + className + "() : EventScript" + "( \"" + pQuestData->name + "\", " + std::to_string( pQuestData->id ) + " ){}; \n";
constructor += " " + className + "() : EventScript" + "( " + std::to_string( pQuestData->id ) + " ){}; \n";
constructor += " ~" + className + "(){}; \n";
std::string classString(
@ -299,12 +299,15 @@ int main( int argc, char** argv )
bool unluac = false;
// std::string datLocation( "/opt/sapphire_3_15_0/bin/sqpack" );
std::string datLocation( "C:/Program Files (x86)/SquareEnix/FINAL FANTASY XIV - A Realm Reborn/game/sqpack" );
//std::string datLocation( "C:/Program Files (x86)/SquareEnix/FINAL FANTASY XIV - A Realm Reborn/game/sqpack" );
std::string datLocation( "C:/SquareEnix/FINAL FANTASY XIV - A Realm Reborn/game/sqpack" );
if ( argc > 1 )
datLocation = std::string( argv[1] );
if ( argc > 2 )
unluac = (bool)atoi( argv[2] );
unluac = true;
g_log.info( "Setting up EXD data" );
if( !g_exdData.init( datLocation ) )
{