1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-25 22:17:45 +00:00

Added packet for linkshell events

This commit is contained in:
Mordred 2017-08-27 02:03:27 +02:00
parent 6403a1ae47
commit 3dd37773a1
4 changed files with 36 additions and 2 deletions

View file

@ -98,6 +98,9 @@ namespace Packets {
EventPlay = 0x0154, // updated for sb
EventStart = 0x015D, // updated for sb
EventFinish = 0x015E, // updated for sb
EventLinkshell = 0x0169,
QuestActiveList = 0x0171, // updated for sb
QuestUpdate = 0x0172, // updated for sb
QuestCompleteList = 0x0173, // updated for sb
@ -173,7 +176,8 @@ namespace Packets {
ReturnEventHandler = 0x0128,
TradeReturnEventHandler = 0x0129,
LinkshellEventHandler = 0x013C,
LinkshellEventHandler = 0x013B,
LinkshellEventHandler1 = 0x013C,
};
////////////////////////////////////////////////////////////////////////////////

View file

@ -1050,6 +1050,24 @@ struct FFXIVIpcEventFinish : FFXIVIpcBasePacket<EventFinish>
/* 000C */ uint32_t padding1;
};
/**
* Structural representation of the packet sent by the server
* to respond to a linkshell creation event
*/
struct FFXIVIpcEventLinkshell : FFXIVIpcBasePacket<EventLinkshell>
{
uint32_t eventId;
uint8_t scene;
uint8_t param1;
uint8_t param2;
uint8_t param3;
uint32_t unknown1;
uint32_t unknown2;
uint32_t unknown3;
uint32_t unknown4;
};
/**
* Structural representation of the packet sent by the server
* to send the active quests

View file

@ -86,6 +86,7 @@ Core::Network::GameConnection::GameConnection( Core::Network::HivePtr pHive,
setZoneHandler( ClientZoneIpcType::TradeReturnEventHandler, "EventHandlerReturn", &GameConnection::eventHandler );
setZoneHandler( ClientZoneIpcType::LinkshellEventHandler, "LinkshellEventHandler", &GameConnection::eventHandler );
setZoneHandler( ClientZoneIpcType::LinkshellEventHandler1, "LinkshellEventHandler1", &GameConnection::eventHandler );
setZoneHandler( ClientZoneIpcType::CFDutyInfoHandler, "CFDutyInfoRequest", &GameConnection::cfDutyInfoRequest );
setZoneHandler( ClientZoneIpcType::CFRegisterDuty, "CFRegisterDuty", &GameConnection::cfRegisterDuty );

View file

@ -2,6 +2,7 @@
#include <src/servers/Server_Common/Network/CommonNetwork.h>
#include <src/servers/Server_Common/Network/GamePacketNew.h>
#include <src/servers/Server_Common/Network/PacketContainer.h>
#include <src/servers/Server_Common/Network/PacketDef/Zone/ServerZoneDef.h>
#include <boost/format.hpp>
@ -130,12 +131,22 @@ void Core::Network::GameConnection::eventHandler( const Packets::GamePacket& inP
}
case ClientZoneIpcType::LinkshellEventHandler:
case ClientZoneIpcType::LinkshellEventHandler1:
{
uint32_t eventId = inPacket.getValAt< uint32_t >( 0x20 );
uint16_t subEvent = inPacket.getValAt< uint16_t >( 0x24 );
std::string lsName = inPacket.getStringAt( 0x27 );
abortEventFunc( pPlayer, 0, eventId );
GamePacketNew< FFXIVIpcEventLinkshell, ServerZoneIpcType > linkshellEvent( pPlayer->getId() );
linkshellEvent.data().eventId = eventId;
linkshellEvent.data().scene = subEvent;
linkshellEvent.data().param3 = 1;
linkshellEvent.data().unknown1 = 0x15a;
pPlayer->queuePacket( linkshellEvent );
// abortEventFunc( pPlayer, 0, eventId );
break;
}