mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-26 22:37:45 +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;
|
float z;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum ClientLanguage : uint8_t
|
||||||
|
{
|
||||||
|
Japanese = 1,
|
||||||
|
English = 2,
|
||||||
|
German = 4,
|
||||||
|
French = 8
|
||||||
|
};
|
||||||
|
|
||||||
enum EquipSlot : uint8_t
|
enum EquipSlot : uint8_t
|
||||||
{
|
{
|
||||||
MainHand = 0,
|
MainHand = 0,
|
||||||
|
|
|
@ -9,6 +9,8 @@ namespace Network {
|
||||||
namespace Packets {
|
namespace Packets {
|
||||||
namespace Client {
|
namespace Client {
|
||||||
|
|
||||||
|
#pragma pack(push, 1)
|
||||||
|
|
||||||
struct FFXIVIpcGmCommand1 : FFXIVIpcBasePacket< GMCommand1 >
|
struct FFXIVIpcGmCommand1 : FFXIVIpcBasePacket< GMCommand1 >
|
||||||
{
|
{
|
||||||
/* 0000 */ uint32_t commandId;
|
/* 0000 */ uint32_t commandId;
|
||||||
|
@ -25,8 +27,6 @@ struct FFXIVIpcGmCommand2 : FFXIVIpcBasePacket< GMCommand2 >
|
||||||
/* 0014 */ char param1[0x20];
|
/* 0014 */ char param1[0x20];
|
||||||
};
|
};
|
||||||
|
|
||||||
#pragma pack(push, 4)
|
|
||||||
|
|
||||||
struct FFXIVIpcClientTrigger : FFXIVIpcBasePacket< ClientTrigger >
|
struct FFXIVIpcClientTrigger : FFXIVIpcBasePacket< ClientTrigger >
|
||||||
{
|
{
|
||||||
/* 0000 */ uint16_t commandId;
|
/* 0000 */ uint16_t commandId;
|
||||||
|
@ -47,8 +47,6 @@ struct FFXIVIpcClientTrigger : FFXIVIpcBasePacket< ClientTrigger >
|
||||||
/* 0018 */ uint64_t param3;
|
/* 0018 */ uint64_t param3;
|
||||||
};
|
};
|
||||||
|
|
||||||
#pragma pack(pop)
|
|
||||||
|
|
||||||
struct FFXIVIpcSkillHandler : FFXIVIpcBasePacket< SkillHandler >
|
struct FFXIVIpcSkillHandler : FFXIVIpcBasePacket< SkillHandler >
|
||||||
{
|
{
|
||||||
/* 0000 */ char pad_0000[1];
|
/* 0000 */ char pad_0000[1];
|
||||||
|
@ -119,6 +117,25 @@ struct FFXIVIpcPingHandler : FFXIVIpcBasePacket< PingHandler >
|
||||||
/* 0000 */ uint32_t timestamp; // maybe lol..
|
/* 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 );
|
stmtS1->setInt( 2, m_id );
|
||||||
pDb->execute( stmtS1 );
|
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->setString( 1, string( m_searchMessage != nullptr ? m_searchMessage : "" ) );
|
||||||
stmtS2->setInt( 2, m_id );
|
stmtS2->setInt( 2, m_id );
|
||||||
pDb->execute( stmtS2 );
|
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,
|
void Core::Network::GameConnection::setSearchInfoHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket,
|
||||||
Entity::Player& player )
|
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] );
|
const auto& inval = packet.data().status1;
|
||||||
auto inval1 = *reinterpret_cast< uint32_t* >( ©.data[0x14] );
|
const auto& inval1 = packet.data().status2;
|
||||||
auto status = *reinterpret_cast< uint64_t* >( ©.data[0x10] );
|
const auto& status = packet.data().status;
|
||||||
|
const auto& selectRegion = packet.data().language;
|
||||||
|
|
||||||
auto selectRegion = copy.data[0x21];
|
player.setSearchInfo( selectRegion, 0, packet.data().searchComment );
|
||||||
|
|
||||||
player.setSearchInfo( selectRegion, 0, reinterpret_cast< char* >( ©.data[0x22] ) );
|
|
||||||
|
|
||||||
player.setOnlineStatusMask( status );
|
player.setOnlineStatusMask( status );
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue