mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-26 14:37:44 +00:00
fix searchinfo update, add searchinfo ipc struct
This commit is contained in:
parent
7607f42a67
commit
0fa55e3d9a
4 changed files with 36 additions and 12 deletions
|
@ -27,6 +27,14 @@ namespace Common {
|
|||
float z;
|
||||
};
|
||||
|
||||
enum ClientLanguage : uint8_t
|
||||
{
|
||||
Japanese = 1,
|
||||
English = 2,
|
||||
German = 4,
|
||||
French = 8
|
||||
};
|
||||
|
||||
enum EquipSlot : uint8_t
|
||||
{
|
||||
MainHand = 0,
|
||||
|
|
|
@ -9,6 +9,8 @@ namespace Network {
|
|||
namespace Packets {
|
||||
namespace Client {
|
||||
|
||||
#pragma pack(push, 1)
|
||||
|
||||
struct FFXIVIpcGmCommand1 : FFXIVIpcBasePacket< GMCommand1 >
|
||||
{
|
||||
/* 0000 */ uint32_t commandId;
|
||||
|
@ -25,8 +27,6 @@ struct FFXIVIpcGmCommand2 : FFXIVIpcBasePacket< GMCommand2 >
|
|||
/* 0014 */ char param1[0x20];
|
||||
};
|
||||
|
||||
#pragma pack(push, 4)
|
||||
|
||||
struct FFXIVIpcClientTrigger : FFXIVIpcBasePacket< ClientTrigger >
|
||||
{
|
||||
/* 0000 */ uint16_t commandId;
|
||||
|
@ -47,8 +47,6 @@ struct FFXIVIpcClientTrigger : FFXIVIpcBasePacket< ClientTrigger >
|
|||
/* 0018 */ uint64_t param3;
|
||||
};
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
struct FFXIVIpcSkillHandler : FFXIVIpcBasePacket< SkillHandler >
|
||||
{
|
||||
/* 0000 */ char pad_0000[1];
|
||||
|
@ -119,6 +117,25 @@ struct FFXIVIpcPingHandler : FFXIVIpcBasePacket< PingHandler >
|
|||
/* 0000 */ uint32_t timestamp; // maybe lol..
|
||||
};
|
||||
|
||||
struct FFXIVIpcSetSearchInfo : FFXIVIpcBasePacket< SetSearchInfoHandler >
|
||||
{
|
||||
union
|
||||
{
|
||||
/* 0000 */ uint64_t status;
|
||||
struct
|
||||
{
|
||||
/* 0000 */ uint32_t status1;
|
||||
/* 0004 */ uint32_t status2;
|
||||
};
|
||||
};
|
||||
|
||||
/* 0008 */ char pad_0008[9];
|
||||
/* 0011 */ Common::ClientLanguage language;
|
||||
/* 0012 */ char searchComment[193];
|
||||
};
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -488,7 +488,7 @@ void Core::Entity::Player::updateDbSearchInfo() const
|
|||
stmtS1->setInt( 2, m_id );
|
||||
pDb->execute( stmtS1 );
|
||||
|
||||
auto stmtS2 = pDb->getPreparedStatement( Db::CHARA_SEARCHINFO_UP_SELECTREGION );
|
||||
auto stmtS2 = pDb->getPreparedStatement( Db::CHARA_SEARCHINFO_UP_SEARCHCOMMENT );
|
||||
stmtS2->setString( 1, string( m_searchMessage != nullptr ? m_searchMessage : "" ) );
|
||||
stmtS2->setInt( 2, m_id );
|
||||
pDb->execute( stmtS2 );
|
||||
|
|
|
@ -63,15 +63,14 @@ void Core::Network::GameConnection::fcInfoReqHandler( const Core::Network::Packe
|
|||
void Core::Network::GameConnection::setSearchInfoHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket,
|
||||
Entity::Player& player )
|
||||
{
|
||||
Packets::FFXIVARR_PACKET_RAW copy = inPacket;
|
||||
const auto packet = ZoneChannelPacket< Client::FFXIVIpcSetSearchInfo >( inPacket, true );
|
||||
|
||||
auto inval = *reinterpret_cast< uint32_t* >( ©.data[0x10] );
|
||||
auto inval1 = *reinterpret_cast< uint32_t* >( ©.data[0x14] );
|
||||
auto status = *reinterpret_cast< uint64_t* >( ©.data[0x10] );
|
||||
const auto& inval = packet.data().status1;
|
||||
const auto& inval1 = packet.data().status2;
|
||||
const auto& status = packet.data().status;
|
||||
const auto& selectRegion = packet.data().language;
|
||||
|
||||
auto selectRegion = copy.data[0x21];
|
||||
|
||||
player.setSearchInfo( selectRegion, 0, reinterpret_cast< char* >( ©.data[0x22] ) );
|
||||
player.setSearchInfo( selectRegion, 0, packet.data().searchComment );
|
||||
|
||||
player.setOnlineStatusMask( status );
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue