mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-30 08:07:46 +00:00
Mostly fixed for 4.4
This commit is contained in:
parent
83c5cd0b44
commit
0aa94d6efc
9 changed files with 10528 additions and 8524 deletions
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -197,7 +197,7 @@ enum ServerZoneIpcType :
|
||||||
|
|
||||||
// Unknown IPC types that still need to be sent
|
// Unknown IPC types that still need to be sent
|
||||||
// TODO: figure all these out properly
|
// TODO: figure all these out properly
|
||||||
IPCTYPE_UNK_320 = 0x0248, // updated 4.4
|
IPCTYPE_UNK_320 = 0x0249, // updated 4.4
|
||||||
IPCTYPE_UNK_322 = 0x024B, // updated 4.4
|
IPCTYPE_UNK_322 = 0x024B, // updated 4.4
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -249,40 +249,40 @@ enum ClientZoneIpcType :
|
||||||
|
|
||||||
ReqJoinNoviceNetwork = 0x0129, // updated 4.2
|
ReqJoinNoviceNetwork = 0x0129, // updated 4.2
|
||||||
|
|
||||||
ReqCountdownInitiate = 0x0138, // updated 4.3
|
ReqCountdownInitiate = 0x012F, // updated 4.4
|
||||||
ReqCountdownCancel = 0x0139, // updated 4.3
|
ReqCountdownCancel = 0x0130, // updated 4.4
|
||||||
ClearWaymarks = 0x013A, // updated 4.3
|
ClearWaymarks = 0x0131, // updated 4.4
|
||||||
|
|
||||||
ZoneLineHandler = 0x013C, // updated 4.3
|
ZoneLineHandler = 0x0133, // updated 4.4
|
||||||
ClientTrigger = 0x013D, // updated 4.3
|
ClientTrigger = 0x0134, // updated 4.4 was 13D in 4.3
|
||||||
DiscoveryHandler = 0x013E, // updated 4.3
|
DiscoveryHandler = 0x0135, // updated 4.4
|
||||||
|
|
||||||
AddWaymark = 0x013F, // updated 4.3
|
AddWaymark = 0x013F, // updated 4.3
|
||||||
|
|
||||||
SkillHandler = 0x0140, // updated 4.3
|
SkillHandler = 0x0137, // updated 4.4
|
||||||
GMCommand1 = 0x0141, // updated 4.3
|
GMCommand1 = 0x0138, // updated 4.4
|
||||||
GMCommand2 = 0x0142, // updated 4.3
|
GMCommand2 = 0x0139, // updated 4.4
|
||||||
|
|
||||||
UpdatePositionHandler = 0x0144, // updated 4.3
|
UpdatePositionHandler = 0x013B, // updated 4.4 was 144
|
||||||
UpdatePositionInstance = 0x0183, // updated 4.3
|
UpdatePositionInstance = 0x0183, // updated 4.3
|
||||||
|
|
||||||
InventoryModifyHandler = 0x014B, // updated 4.3
|
InventoryModifyHandler = 0x0142, // updated 4.4
|
||||||
|
|
||||||
TalkEventHandler = 0x0154, // updated 4.3
|
TalkEventHandler = 0x014B, // updated 4.4
|
||||||
EmoteEventHandler = 0x0155, // updated 4.3
|
EmoteEventHandler = 0x014C, // updated 4.4
|
||||||
WithinRangeEventHandler = 0x0156, // updated 4.3
|
WithinRangeEventHandler = 0x014D, // updated 4.4
|
||||||
OutOfRangeEventHandler = 0x0157, // updated 4.3
|
OutOfRangeEventHandler = 0x014E, // updated 4.4
|
||||||
EnterTeriEventHandler = 0x0158, // updated 4.3
|
EnterTeriEventHandler = 0x014F, // updated 4.4
|
||||||
|
|
||||||
ReturnEventHandler = 0x015D, // updated 4.3
|
ReturnEventHandler = 0x0154, // updated 4.4
|
||||||
TradeReturnEventHandler = 0x015E, // updated 4.3
|
TradeReturnEventHandler = 0x0155, // updated 4.4
|
||||||
|
|
||||||
LinkshellEventHandler = 0x0150, // updated 4.1 ??
|
LinkshellEventHandler = 0x0150, // updated 4.1 ??
|
||||||
LinkshellEventHandler1 = 0x0151, // updated 4.1 ??
|
LinkshellEventHandler1 = 0x0151, // updated 4.1 ??
|
||||||
|
|
||||||
PerformNoteHandler = 0x029B, // updated 4.3
|
PerformNoteHandler = 0x029B, // updated 4.3
|
||||||
|
|
||||||
ReqEquipDisplayFlagsChange = 0x0178, // updated 4.3
|
ReqEquipDisplayFlagsChange = 0x016F, // updated 4.4
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -59,8 +59,7 @@ struct FFXIVIpcServerList :
|
||||||
} server[6];
|
} server[6];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct FFXIVIpcCharList :
|
struct FFXIVIpcCharList : FFXIVIpcBasePacket< LobbyCharList >
|
||||||
FFXIVIpcBasePacket< LobbyCharList >
|
|
||||||
{
|
{
|
||||||
uint64_t seq;
|
uint64_t seq;
|
||||||
uint8_t counter; // current packet count * 4, count * 4 +1 on last packet.
|
uint8_t counter; // current packet count * 4, count * 4 +1 on last packet.
|
||||||
|
@ -82,6 +81,8 @@ struct FFXIVIpcCharList :
|
||||||
uint16_t unknown8;
|
uint16_t unknown8;
|
||||||
uint32_t entitledExpansion;
|
uint32_t entitledExpansion;
|
||||||
uint32_t padding2;
|
uint32_t padding2;
|
||||||
|
uint32_t padding3;
|
||||||
|
uint32_t padding4;
|
||||||
|
|
||||||
struct CharaDetails
|
struct CharaDetails
|
||||||
{
|
{
|
||||||
|
@ -92,16 +93,16 @@ struct FFXIVIpcCharList :
|
||||||
uint32_t padding2;
|
uint32_t padding2;
|
||||||
uint16_t serverId;
|
uint16_t serverId;
|
||||||
uint16_t serverId1;
|
uint16_t serverId1;
|
||||||
|
uint8_t unknown[9];
|
||||||
char nameChara[32];
|
char nameChara[32];
|
||||||
char nameServer[32];
|
char nameServer[32];
|
||||||
char nameServer1[32];
|
char nameServer1[32];
|
||||||
char charDetailJson[1028];
|
char charDetailJson[1051];
|
||||||
} charaDetails[2];
|
} charaDetails[2];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct FFXIVIpcEnterWorld :
|
struct FFXIVIpcEnterWorld : FFXIVIpcBasePacket< LobbyEnterWorld >
|
||||||
FFXIVIpcBasePacket< LobbyEnterWorld >
|
|
||||||
{
|
{
|
||||||
uint64_t seq;
|
uint64_t seq;
|
||||||
uint32_t charId;
|
uint32_t charId;
|
||||||
|
@ -115,8 +116,7 @@ struct FFXIVIpcEnterWorld :
|
||||||
uint64_t padding4;
|
uint64_t padding4;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct FFXIVIpcCharCreate :
|
struct FFXIVIpcCharCreate : FFXIVIpcBasePacket< LobbyCharCreate >
|
||||||
FFXIVIpcBasePacket< LobbyCharCreate >
|
|
||||||
{
|
{
|
||||||
uint64_t seq;
|
uint64_t seq;
|
||||||
uint8_t unknown;
|
uint8_t unknown;
|
||||||
|
@ -126,17 +126,23 @@ struct FFXIVIpcCharCreate :
|
||||||
uint32_t unknown_3;
|
uint32_t unknown_3;
|
||||||
uint32_t unknown_4;
|
uint32_t unknown_4;
|
||||||
uint32_t unknown_5;
|
uint32_t unknown_5;
|
||||||
|
uint64_t unknown_6;
|
||||||
|
uint64_t unknown_61;
|
||||||
|
uint64_t unknown_62;
|
||||||
|
uint64_t unknown_63;
|
||||||
uint64_t content_id;
|
uint64_t content_id;
|
||||||
uint16_t unknown_7;
|
uint16_t unknown_7;
|
||||||
uint16_t unknown_8;
|
uint16_t unknown_8;
|
||||||
uint32_t unknown_9;
|
uint32_t unknown_9;
|
||||||
uint16_t unknown_10;
|
uint16_t unknown_10;
|
||||||
|
uint8_t unknown_11[11];
|
||||||
char name[32];
|
char name[32];
|
||||||
char world[32];
|
char world[32];
|
||||||
|
char world2[32];
|
||||||
|
uint8_t unknown_12[0x953];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct FFXIVIpcLobbyError :
|
struct FFXIVIpcLobbyError : FFXIVIpcBasePacket< LobbyError >
|
||||||
FFXIVIpcBasePacket< LobbyError >
|
|
||||||
{
|
{
|
||||||
uint64_t seq;
|
uint64_t seq;
|
||||||
uint32_t error_id;
|
uint32_t error_id;
|
||||||
|
|
|
@ -716,6 +716,9 @@ struct FFXIVIpcInitZone :
|
||||||
uint16_t festivalId;
|
uint16_t festivalId;
|
||||||
uint16_t additionalFestivalId;
|
uint16_t additionalFestivalId;
|
||||||
uint32_t unknown8;
|
uint32_t unknown8;
|
||||||
|
uint32_t unknown9;
|
||||||
|
uint32_t unknown10;
|
||||||
|
uint32_t unknown11;
|
||||||
Common::FFXIVARR_POSITION3 pos;
|
Common::FFXIVARR_POSITION3 pos;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -100,11 +100,11 @@ std::string PlayerMinimal::getLookString()
|
||||||
std::string PlayerMinimal::getModelString()
|
std::string PlayerMinimal::getModelString()
|
||||||
{
|
{
|
||||||
std::string modelString = "\""
|
std::string modelString = "\""
|
||||||
|
+ std::to_string( m_modelEquip[ 0 ] ) + "\",\""
|
||||||
|
+ std::to_string( m_modelEquip[ 1 ] ) + "\",\""
|
||||||
+ std::to_string( m_modelEquip[ 2 ] ) + "\",\""
|
+ std::to_string( m_modelEquip[ 2 ] ) + "\",\""
|
||||||
+ std::to_string( m_modelEquip[ 3 ] ) + "\",\""
|
+ std::to_string( m_modelEquip[ 3 ] ) + "\",\""
|
||||||
+ std::to_string( m_modelEquip[ 4 ] ) + "\",\""
|
+ std::to_string( m_modelEquip[ 4 ] ) + "\",\"5\",\"6\",\"7\",\"8\",\"9\"";
|
||||||
+ std::to_string( m_modelEquip[ 6 ] ) + "\",\""
|
|
||||||
+ std::to_string( m_modelEquip[ 7 ] ) + "\",\"5\",\"6\",\"7\",\"8\",\"9\"";
|
|
||||||
return modelString;
|
return modelString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -163,11 +163,14 @@ void Core::Network::GameConnection::getCharList( FFXIVARR_PACKET_RAW& packet, ui
|
||||||
details.uniqueId = get< 1 >( charEntry );
|
details.uniqueId = get< 1 >( charEntry );
|
||||||
details.contentId = get< 2 >( charEntry );
|
details.contentId = get< 2 >( charEntry );
|
||||||
details.serverId = g_serverLobby.getConfig()->getValue< uint16_t >( "Lobby.WorldID", 1 );
|
details.serverId = g_serverLobby.getConfig()->getValue< uint16_t >( "Lobby.WorldID", 1 );
|
||||||
|
details.serverId1 = g_serverLobby.getConfig()->getValue< uint16_t >( "Lobby.WorldID", 1 );
|
||||||
details.index = charIndex;
|
details.index = charIndex;
|
||||||
strcpy( details.charDetailJson, get< 3 >( charEntry ).c_str() );
|
strcpy( details.charDetailJson, get< 3 >( charEntry ).c_str() );
|
||||||
strcpy( details.nameChara, get< 0 >( charEntry ).c_str() );
|
strcpy( details.nameChara, get< 0 >( charEntry ).c_str() );
|
||||||
strcpy( details.nameServer,
|
strcpy( details.nameServer,
|
||||||
g_serverLobby.getConfig()->getValue< std::string >( "Lobby.WorldName", "Sapphire" ).c_str() );
|
g_serverLobby.getConfig()->getValue< std::string >( "Lobby.WorldName", "Sapphire" ).c_str() );
|
||||||
|
strcpy( details.nameServer1,
|
||||||
|
g_serverLobby.getConfig()->getValue< std::string >( "Lobby.WorldName", "Sapphire" ).c_str() );
|
||||||
|
|
||||||
charListPacket->data().charaDetails[ j ] = details;
|
charListPacket->data().charaDetails[ j ] = details;
|
||||||
|
|
||||||
|
@ -342,6 +345,8 @@ bool Core::Network::GameConnection::createOrModifyChar( FFXIVARR_PACKET_RAW& pac
|
||||||
strcpy( charCreatePacket->data().name, name.c_str() );
|
strcpy( charCreatePacket->data().name, name.c_str() );
|
||||||
strcpy( charCreatePacket->data().world,
|
strcpy( charCreatePacket->data().world,
|
||||||
g_serverLobby.getConfig()->getValue< std::string >( "Lobby.WorldName", "Sapphire" ).c_str() );
|
g_serverLobby.getConfig()->getValue< std::string >( "Lobby.WorldName", "Sapphire" ).c_str() );
|
||||||
|
strcpy( charCreatePacket->data().world2,
|
||||||
|
g_serverLobby.getConfig()->getValue< std::string >( "Lobby.WorldName", "Sapphire" ).c_str() );
|
||||||
charCreatePacket->data().type = 2;
|
charCreatePacket->data().type = 2;
|
||||||
charCreatePacket->data().seq = sequence;
|
charCreatePacket->data().seq = sequence;
|
||||||
charCreatePacket->data().unknown = 1;
|
charCreatePacket->data().unknown = 1;
|
||||||
|
|
|
@ -96,7 +96,7 @@ uint32_t Core::Event::mapEventActorToRealActor( uint32_t eventActorId )
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
||||||
auto levelInfo = pExdData->get< Core::Data::Level >( eventActorId );
|
auto levelInfo = pExdData->get< Core::Data::Level >( eventActorId );
|
||||||
if( levelInfo )
|
if( levelInfo )
|
||||||
return levelInfo->objectKey;
|
return levelInfo->object;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,7 +77,7 @@ void Core::Network::GameConnection::cfRegisterDuty( const Packets::FFXIVARR_PACK
|
||||||
if( !cfCondition )
|
if( !cfCondition )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
auto instance = pTeriMgr->createInstanceContent( cfCondition->instanceContent );
|
auto instance = pTeriMgr->createInstanceContent( cfCondition->content );
|
||||||
if( !instance )
|
if( !instance )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue