mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-26 06:27:45 +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:
parent
113273e571
commit
855ae3e961
8 changed files with 27 additions and 14 deletions
|
@ -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];
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -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 );
|
||||
}
|
||||
|
||||
};
|
|
@ -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 );
|
||||
|
||||
|
|
|
@ -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 );
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
};
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue