From 02244211c486e72fb32bbc10d3210caab072b10a Mon Sep 17 00:00:00 2001 From: goaaats Date: Sat, 7 Jul 2018 14:06:10 +0200 Subject: [PATCH 1/4] Correctly initialize m_targetId in Chara --- src/servers/sapphire_zone/Actor/Chara.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/Actor/Chara.cpp b/src/servers/sapphire_zone/Actor/Chara.cpp index 64a673d3..4fbc8716 100644 --- a/src/servers/sapphire_zone/Actor/Chara.cpp +++ b/src/servers/sapphire_zone/Actor/Chara.cpp @@ -34,7 +34,8 @@ using namespace Core::Network::Packets::Server; using namespace Core::Network::ActorControl; Core::Entity::Chara::Chara( ObjKind type ) : - Actor( type ) + Actor( type ), + m_targetId( INVALID_GAME_OBJECT_ID ) { // initialize the free slot queue for( uint8_t i = 0; i < MAX_STATUS_EFFECTS; i++ ) From f961b962ed9bb2b8f6e08c596c19c82f74b9298d Mon Sep 17 00:00:00 2001 From: Tahir Akhlaq Date: Sat, 7 Jul 2018 15:22:22 +0100 Subject: [PATCH 2/4] fixed lobby not showing multiple characters - updated initui for player commendations --- .../Network/PacketDef/Lobby/ServerLobbyDef.h | 2 +- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 14 ++++++++------ src/servers/sapphire_lobby/GameConnection.cpp | 1 - 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/common/Network/PacketDef/Lobby/ServerLobbyDef.h b/src/common/Network/PacketDef/Lobby/ServerLobbyDef.h index a414fb3b..92d1f304 100644 --- a/src/common/Network/PacketDef/Lobby/ServerLobbyDef.h +++ b/src/common/Network/PacketDef/Lobby/ServerLobbyDef.h @@ -91,7 +91,7 @@ struct FFXIVIpcCharList : FFXIVIpcBasePacket char nameChara[32]; char nameServer[32]; char nameServer1[32]; - char charDetailJson[1030]; + char charDetailJson[1028]; } charaDetails[2]; }; diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index d04a06f7..dedc5058 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -624,18 +624,20 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket unsigned short pvpWolfFoldWeeklyMatches; unsigned short pvpWolfFoldWeeklyVictories; unsigned short pvpStats[6]; - unsigned short playerCommendations; + unsigned short unknown74; unsigned short pvpStats1; unsigned char frontlineCampaigns[4]; unsigned short frontlineCampaignsWeekly; unsigned char currentRelic; unsigned char currentBook; unsigned char masterCrafterMask; - unsigned char unknown69; - unsigned char unknown6A; - unsigned char unknown6B; - unsigned char unknown6C[4]; - unsigned char unknown70[34]; + unsigned char unknown81; + unsigned char unknown82; + unsigned char unknown83; + unsigned char unknown84[4]; + unsigned char unknown88[10]; + unsigned short playerCommendations; + unsigned char unknown94[22]; unsigned short unknown18; unsigned char maxLevel; unsigned char expansion; diff --git a/src/servers/sapphire_lobby/GameConnection.cpp b/src/servers/sapphire_lobby/GameConnection.cpp index c5cc7ed0..72e60013 100644 --- a/src/servers/sapphire_lobby/GameConnection.cpp +++ b/src/servers/sapphire_lobby/GameConnection.cpp @@ -191,7 +191,6 @@ void Core::Network::GameConnection::getCharList( FFXIVARR_PACKET_RAW& packet, ui charListPacket->data().counter = ( i * 4 ) + 1; charListPacket->data().unknown4 = 128; } - Packets::LobbyPacketContainer pRP( m_encKey ); pRP.addPacket( charListPacket ); sendPacket( pRP ); From 406b69b88deb4f85cba2e7b27888628735563422 Mon Sep 17 00:00:00 2001 From: Mordred Date: Sun, 8 Jul 2018 00:43:03 +0200 Subject: [PATCH 3/4] Walking displays correctly --- src/common/Common.h | 2 +- src/servers/sapphire_zone/Actor/Player.cpp | 3 +-- src/servers/sapphire_zone/Actor/Player.h | 3 --- .../Network/Handlers/PacketHandlers.cpp | 26 ++++++++++--------- 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index 8088c90b..4036e5da 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -195,7 +195,7 @@ namespace Common { Walking = 0x02, Strafing = 0x04, Jumping = 0x10, - BackWalk = Walking | Strafing, + BackWalk = 0x06, }; enum MoveState : uint8_t diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index f8df9442..8621da64 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -68,8 +68,7 @@ Core::Entity::Player::Player() : m_markedForRemoval( false ), m_mount( 0 ), m_directorInitialized( false ), - m_onEnterEventDone( false ), - m_bJumping( false ) + m_onEnterEventDone( false ) { m_id = 0; m_currentStance = Stance::Passive; diff --git a/src/servers/sapphire_zone/Actor/Player.h b/src/servers/sapphire_zone/Actor/Player.h index fbfa96fc..a61454ae 100644 --- a/src/servers/sapphire_zone/Actor/Player.h +++ b/src/servers/sapphire_zone/Actor/Player.h @@ -595,13 +595,10 @@ public: /*! checks if a spawn index is valid */ bool isObjSpawnIndexValid( uint8_t index ); - uint64_t m_lastMoveTime; uint8_t m_lastMoveflag; - bool m_bJumping; - private: uint32_t m_lastWrite; uint32_t m_lastPing; diff --git a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp index 4e1d36f9..abe7cace 100644 --- a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp @@ -191,13 +191,21 @@ void Core::Network::GameConnection::updatePositionHandler( const Core::Network:: //pLog->debug( std::to_string( moveState ) + " -- moveState " ); //pLog->debug( std::to_string( moveType ) + " -- moveType " ); + if( moveType & MoveType::Running ) + { + unk1 = 0x7F; + unk2 = 0x00; + unk4 = 0x3C; + } + if( moveType & MoveType::Strafing ) { unk2 = 0x40; - if( IPC_OP_019A.strafeRight == 1 ) - unk1 = 0xbf; - else - unk1 = 0x5f; + unk1 = 0x7F; + //if( IPC_OP_019A.strafeRight == 1 ) + // unk1 = 0xbf; + //else + // unk1 = 0x5f; unk4 = 0x3C; } @@ -206,22 +214,16 @@ void Core::Network::GameConnection::updatePositionHandler( const Core::Network:: unk1 = 0x7F; unk2 = 0x02; unk3 = 0x00; - unk4 = 0x0518; + unk4 = 0x18; } - if( moveType & MoveType::BackWalk ) + if( moveType & MoveType::Walking && moveType & MoveType::Strafing ) { unk2 = 0x06; unk1 = 0xFF; unk4 = 0x18; } - if( moveType & MoveType::Running ) - { - unk1 = 0x7F; - unk4 = 0x3C; - } - if( moveType & MoveType::Jumping ) { From 05afa413c92f643afd114c02268f7105cd504afb Mon Sep 17 00:00:00 2001 From: Mordred Date: Sun, 8 Jul 2018 00:59:22 +0200 Subject: [PATCH 4/4] Fixed localtime --- src/common/Network/GamePacketNew.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/common/Network/GamePacketNew.h b/src/common/Network/GamePacketNew.h index f45835dc..459aeb81 100644 --- a/src/common/Network/GamePacketNew.h +++ b/src/common/Network/GamePacketNew.h @@ -10,6 +10,7 @@ #include #include #include +#include #include "CommonNetwork.h" #include "PacketDef/Ipcs.h" @@ -224,6 +225,7 @@ protected: // The IPC type itself. m_ipcHdr.type = static_cast< ServerZoneIpcType >( m_data._ServerIpcType ); + m_ipcHdr.timestamp = Util::getTimeSeconds(); m_segHdr.size = sizeof( T ) + sizeof( FFXIVARR_IPC_HEADER ) + sizeof( FFXIVARR_PACKET_SEGMENT_HEADER ); };