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

Instance join cutscene will no longer mess up the player, removed wrong field from event start, cotire server_zone only when using linux

This commit is contained in:
Mordred 2018-03-12 23:51:17 +01:00
parent 113273e571
commit 855ae3e961
8 changed files with 27 additions and 14 deletions

View file

@ -999,7 +999,7 @@ struct FFXIVIpcEventStart : FFXIVIpcBasePacket<EventStart>
/* 000D */ uint8_t param2;
/* 000E */ uint16_t padding;
/* 0010 */ uint32_t param3;
/* 0014 */ uint32_t contentId;
/* 0014 */ uint32_t padding1;
};
@ -1036,7 +1036,8 @@ struct FFXIVIpcDirectorPlayScene : FFXIVIpcBasePacket<DirectorPlayScene>
uint8_t param4;
uint8_t padding1[3];
uint32_t param5;
uint8_t unknown[0x40];
uint8_t unknown8[0x08];
uint8_t unknown[0x38];
};
/**

View file

@ -71,7 +71,7 @@ public:
void onEnterTerritory( Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override
{
player.directorPlayScene( getId(), 1, NO_DEFAULT_CAMERA | HIDE_HOTBAR, 0, 0xA );
player.directorPlayScene( getId(), 1, NO_DEFAULT_CAMERA | HIDE_HOTBAR | CONDITION_CUTSCENE, 0, 0xA );
}
};

View file

@ -54,7 +54,7 @@ public:
/*! start an event item action */
void eventItemActionStart( uint32_t eventId, uint32_t action, ActionCallback finishCallback, ActionCallback interruptCallback, uint64_t additional );
/*! start/register a normal event */
void eventStart( uint64_t actorId, uint32_t eventId, Event::EventHandler::EventType eventParam, uint8_t eventParam1, uint32_t eventParam2, uint32_t contentId = 0 );
void eventStart( uint64_t actorId, uint32_t eventId, Event::EventHandler::EventType eventParam, uint8_t eventParam1, uint32_t eventParam2 );
/*! play a subevent */
void eventPlay( uint32_t eventId, uint32_t scene, uint32_t flags, uint32_t eventParam2, uint32_t eventParam3 );

View file

@ -99,7 +99,7 @@ void Core::Entity::Player::directorPlayScene( uint32_t eventId, uint32_t scene,
void Core::Entity::Player::eventStart( uint64_t actorId, uint32_t eventId,
Event::EventHandler::EventType eventType, uint8_t eventParam1,
uint32_t eventParam2, uint32_t contentId )
uint32_t eventParam2 )
{
auto newEvent = Event::make_EventHandler( this, actorId, eventId, eventType, eventParam2 );
@ -108,7 +108,7 @@ void Core::Entity::Player::eventStart( uint64_t actorId, uint32_t eventId,
setStateFlag( PlayerStateFlag::InNpcEvent );
EventStartPacket eventStart( getId(), actorId, eventId, eventType, eventParam1, eventParam2, contentId );
EventStartPacket eventStart( getId(), actorId, eventId, eventType, eventParam1, eventParam2 );
queuePacket( eventStart );

View file

@ -67,4 +67,6 @@ target_link_libraries( sapphire_zone ${Boost_LIBRARIES} )
target_include_directories( sapphire_zone PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" )
target_include_directories( sapphire_zone PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/Script" )
target_include_directories( sapphire_zone PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/external" )
#cotire( sapphire_zone )
if (UNIX)
cotire( sapphire_zone )
endif()

View file

@ -170,7 +170,7 @@ void Core::Network::GameConnection::eventHandlerEnterTerritory( const Packets::G
if( auto instance = player.getCurrentInstance() )
{
player.eventStart( player.getId(), eventId, Event::EventHandler::EnterTerritory, 0, player.getZoneId(), instance->getDirectorId() & 0xFFFF );
player.eventStart( player.getId(), eventId, Event::EventHandler::EnterTerritory, 1, player.getZoneId() );
instance->onEnterTerritory( player, eventId, param1, param2 );
}
else

View file

@ -44,6 +44,19 @@ private:
m_data.param3 = param3;
m_data.param4 = param4;
m_data.param5 = param5;
m_data.unknown[0] = 0x05;
m_data.unknown[4] = 0x22;
m_data.unknown[5] = 0xD6;
m_data.unknown[6] = 0x62;
m_data.unknown[7] = 0x59;
m_data.unknown[0x14] = 0x08;
m_data.unknown[0x15] = 0x02;
m_data.unknown[0x18] = 0x19;
m_data.unknown[0x19] = 0x14;
m_data.unknown[0x1C] = 0x23;
m_data.unknown[0x20] = 0x40;
m_data.unknown[0x24] = 0x80;
};
};

View file

@ -20,11 +20,10 @@ public:
uint32_t eventId,
uint8_t param1 = 0,
uint8_t param2 = 0,
uint32_t param3 = 0,
uint32_t contentId = 0 ) :
uint32_t param3 = 0 ) :
ZoneChannelPacket< FFXIVIpcEventStart >( playerId, playerId )
{
initialize( actorId, eventId, param1, param2, param3, contentId );
initialize( actorId, eventId, param1, param2, param3 );
};
private:
@ -32,15 +31,13 @@ private:
uint32_t eventId,
uint8_t param1,
uint8_t param2,
uint32_t param3,
uint32_t contentId )
uint32_t param3 )
{
m_data.actorId = actorId;
m_data.eventId = eventId;
m_data.param1 = param1;
m_data.param2 = param2;
m_data.param3 = param3;
m_data.contentId = contentId;
};
};