diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 19651f7b..6435db07 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -43,29 +43,27 @@ namespace Sapphire::Network::Packets */ enum ServerZoneIpcType : uint16_t { - - // static opcode ( the ones that rarely, if ever, change ) - Ping = 0x0200, // updated 5.18 - Init = 0x018E, + Ping = 0x0106, // updated 5.2 + Init = 0x0307, // updated 5.2 ActorFreeSpawn = 0x009B, // updated 5.18 - InitZone = 0x007C, // updated 5.18 + InitZone = 0x033A, // updated 5.2 - EffectResult = 0x0267, // updated 5.18 - ActorControl = 0x03BE, // updated 5.18 - ActorControlSelf = 0x00E3, // updated 5.18 - ActorControlTarget = 0x24d, // updated 5.18 + EffectResult = 0x0340, // updated 5.2 + ActorControl = 0x01E1, // updated 5.2 + ActorControlSelf = 0x010E, // updated 5.2 + ActorControlTarget = 0x00AE, // updated 5.2 /*! * @brief Used when resting */ - UpdateHpMpTp = 0x0125, // updated 5.18 + UpdateHpMpTp = 0x00C1, // updated 5.2 /////////////////////////////////////////////////// ChatBanned = 0x006B, Playtime = 0x00E7, // updated 5.18 - Logout = 0x142, // updated 5.18 + Logout = 0x0A1, // updated 5.2 CFNotify = 0x01F8, // updated 5.18 CFMemberStatus = 0x0079, CFDutyInfo = 0x007A, @@ -84,25 +82,25 @@ namespace Sapphire::Network::Packets WorldVisitList = 0x00FE, // added 4.5 - SocialList = 0x01F1, // updated 5.18 + SocialList = 0x033E, // updated 5.2 ExamineSearchInfo = 0x012B, // updated 5.18 UpdateSearchInfo = 0x01E5, // updated 5.18 - InitSearchInfo = 0x01D0, // updated 5.18 + InitSearchInfo = 0x021C, // updated 5.2 ExamineSearchComment = 0x0102, // updated 4.1 ServerNoticeShort = 0x0115, // updated 5.0 - ServerNotice = 0x0088, // updated 5.18 - SetOnlineStatus = 0x015E, // updated 5.1 + ServerNotice = 0x0308, // updated 5.2 + SetOnlineStatus = 0x0185, // updated 5.2 CountdownInitiate = 0x0309, // updated 5.11 CountdownCancel = 0x00D9, // updated 5.18 PlayerAddedToBlacklist = 0x033F, // updated 5.1 PlayerRemovedFromBlacklist = 0x0385, // updated 5.1 - BlackList = 0x0253, // updated 5.18 + BlackList = 0x01A2, // updated 5.2 - LinkshellList = 0x00AC, // updated 5.18 + LinkshellList = 0x028C, // updated 5.2 MailDeleteRequest = 0x012B, // updated 5.0 @@ -125,24 +123,24 @@ namespace Sapphire::Network::Packets FreeCompanyUpdateShortMessage = 0x0157, // added 5.0 - StatusEffectList = 0x0183, // updated 5.18 + StatusEffectList = 0x0374, // updated 5.2 EurekaStatusEffectList = 0x0167, // updated 5.18 BossStatusEffectList = 0x0312, // added 5.1 - Effect = 0x026B, // updated 5.18 + Effect = 0x028A, // updated 5.2 AoeEffect8 = 0x033E, // updated 5.18 AoeEffect16 = 0x0305, // updated 5.18 AoeEffect24 = 0x023F, // updated 5.18 AoeEffect32 = 0x0352, // updated 5.18 - PersistantEffect = 0x019C, // updated 5.18 + PersistantEffect = 0x00CE, // updated 5.2 GCAffiliation = 0x016F, // updated 5.0 - PlayerSpawn = 0x0262, // updated 5.18 - NpcSpawn = 0x0186, // updated 5.18 + PlayerSpawn = 0x027D, // updated 5.2 + NpcSpawn = 0x034B, // updated 5.2 NpcSpawn2 = 0x010C, // ( Bigger statuseffectlist? ) updated 5.18 - ActorMove = 0x021B, // updated 5.18 + ActorMove = 0x0130, // updated 5.2 - ActorSetPos = 0x0068, // updated 5.18 + ActorSetPos = 0x00CF, // updated 5.2 ActorCast = 0x03B1, // updated 5.18 SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18 @@ -150,15 +148,15 @@ namespace Sapphire::Network::Packets PartyList = 0x0287, // updated 5.18 HateRank = 0x0226, // updated 5.18 HateList = 0x0361, // updated 5.18 - ObjectSpawn = 0x027F, // updated 5.18 + ObjectSpawn = 0x01B3, // updated 5.2 ObjectDespawn = 0x034B, // updated 5.18 - UpdateClassInfo = 0x0362, // updated 5.18 + UpdateClassInfo = 0x0131, // updated 5.2 SilentSetClassJob = 0x018E, // updated 5.0 - seems to be the case, not sure if it's actually used for anything - PlayerSetup = 0x0295, // updated 5.18 - PlayerStats = 0x017A, // updated 5.18 + PlayerSetup = 0x0278, // updated 5.2 + PlayerStats = 0x03C8, // updated 5.2 ActorOwner = 0x03BB, // updated 5.18 - PlayerStateFlags = 0x02C6, // updated 5.18 - PlayerClassInfo = 0x01B0, // updated 5.18 + PlayerStateFlags = 0x032B, // updated 5.2 + PlayerClassInfo = 0x039A, // updated 5.2 ModelEquip = 0x02E6, // updated 5.18 Examine = 0x0366, // updated 5.18 @@ -169,35 +167,35 @@ namespace Sapphire::Network::Packets SetLevelSync = 0x1186, // not updated for 4.4, not sure what it is anymore - ItemInfo = 0x00F2, // updated 5.18 - ContainerInfo = 0x01F2, // updated 5.18 - InventoryTransactionFinish = 0x00D2, // updated 5.18 - InventoryTransaction = 0x0233, // updated 5.18 - CurrencyCrystalInfo = 0x02BF, // updated 5.18 + ItemInfo = 0x03D4, // updated 5.2 + ContainerInfo = 0x01A5, // updated 5.2 + InventoryTransactionFinish = 0x02D7, // updated 5.2 + InventoryTransaction = 0x01D8, // updated 5.2 + CurrencyCrystalInfo = 0x0277, // updated 5.2 - InventoryActionAck = 0x02FA, // updated 5.18 - UpdateInventorySlot = 0x0370, // updated 5.18 + InventoryActionAck = 0x0094, // updated 5.2 + UpdateInventorySlot = 0x02E9, // updated 5.2 HuntingLogEntry = 0x01B3, // updated 5.0 - EventPlay = 0x0279, // updated 5.18 + EventPlay = 0x01F3, // updated 5.2 EventPlay4 = 0x02F7, // updated 5.18 EventPlay8 = 0x0119, // updated 5.18 EventPlay16 = 0x01FB, // updated 5.18 EventPlay32 = 0x0364, // updated 5.18 EventPlay64 = 0x00E5, // updated 5.18 EventPlay128 = 0x02BE, // updated 5.18 - EventPlay255 = 0x01B1, // updated 5.18 + EventPlay255 = 0x03B0, // updated 5.2 - EventStart = 0x0230, // updated 5.18 - EventFinish = 0x01E4, // updated 5.18 + EventStart = 0x023D, // updated 5.2 + EventFinish = 0x0318, // updated 5.2 UseMooch = 0x0233, // updated 5.18 EventLinkshell = 0x1169, - QuestActiveList = 0x031E, // updated 5.18 + QuestActiveList = 0x017B, // updated 5.2 QuestUpdate = 0x0066, // updated 5.18 - QuestCompleteList = 0x025D, // updated 5.18 + QuestCompleteList = 0x0255, // updated 5.2 QuestFinish = 0x013A, // updated 5.18 MSQTrackerComplete = 0x01D6, // updated 5.0 @@ -205,7 +203,7 @@ namespace Sapphire::Network::Packets QuestMessage = 0x00BF, // updated 5.18 - QuestTracker = 0x0289, // updated 5.18 + QuestTracker = 0x0306, // updated 5.2 Mount = 0x038F, // updated 5.18 @@ -227,7 +225,7 @@ namespace Sapphire::Network::Packets EorzeaTimeOffset = 0x03B8, // updated 5.1 - EquipDisplayFlags = 0x00FF, // updated 5.18 + EquipDisplayFlags = 0x0173, // updated 5.2 /// Housing ////////////////////////////////////// @@ -240,7 +238,7 @@ namespace Sapphire::Network::Packets LandRename = 0x023A, // updated 5.0 HousingEstateGreeting = 0x023B, // updated 5.0 HousingUpdateLandFlagsSlot = 0x023C, // updated 5.0 - HousingLandFlags = 0x01F3, // updated 5.18 + HousingLandFlags = 0x00FE, // updated 5.2 HousingShowEstateGuestAccess = 0x023E, // updated 5.0 HousingObjectInitialize = 0x0240, // updated 5.0 @@ -260,12 +258,12 @@ namespace Sapphire::Network::Packets DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui PerformNote = 0x0286, // updated 4.3 - PrepareZoning = 0x035C, // updated 5.18 - ActorGauge = 0x016D, // updated 5.18 + PrepareZoning = 0x0208, // updated 5.2 + ActorGauge = 0x0162, // updated 5.2 // daily quest info -> without them sent, login will take longer... - DailyQuests = 0x02D8, // updated 5.18 - DailyQuestRepeatFlags = 0x03A3, // updated 5.18 + DailyQuests = 0x00A2, // updated 5.2 + DailyQuestRepeatFlags = 0x013D, // updated 5.2 /// Doman Mahjong ////////////////////////////////////// MahjongOpenGui = 0x02A4, // only available in mahjong instance @@ -285,11 +283,10 @@ namespace Sapphire::Network::Packets */ enum ClientZoneIpcType : uint16_t { + PingHandler = 0x0106, // updated 5.2 + InitHandler = 0x0307, // updated 5.2 - PingHandler = 0x0200, // updated 5.18 - InitHandler = 0x018E, // updated 5.18 - - FinishLoadingHandler = 0x01F5, // updated 5.18 + FinishLoadingHandler = 0x012B, // updated 5.2 CFCommenceHandler = 0x006F, @@ -297,7 +294,7 @@ namespace Sapphire::Network::Packets CFRegisterDuty = 0x0071, CFRegisterRoulette = 0xFF72, PlayTimeHandler = 0x0276, // updated 5.1 - LogoutHandler = 0x015D, // updated 5.18 + LogoutHandler = 0x029C, // updated 5.2 CancelLogout = 0x008F, // updated 5.1 CFDutyInfoHandler = 0x0078, // updated 4.2 @@ -305,18 +302,18 @@ namespace Sapphire::Network::Packets SocialReqSendHandler = 0x00AE, // updated 4.1 CreateCrossWorldLS = 0x00AF, // updated 4.3 - ChatHandler = 0x0130, // updated 5.18 + ChatHandler = 0x013A, // updated 5.2 - SocialListHandler = 0x0090, // updated 5.18 - SetSearchInfoHandler = 0x0320, // updated 5.18 - ReqSearchInfoHandler = 0x0374, // updated 5.18 + SocialListHandler = 0x03E7, // updated 5.2 + SetSearchInfoHandler = 0x00A8, // updated 5.2 + ReqSearchInfoHandler = 0x007B, // updated 5.2 ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0 ReqRemovePlayerFromBlacklist = 0x00F1, // updated 5.0 - BlackListHandler = 0x01EB, // updated 5.18 + BlackListHandler = 0x0329, // updated 5.2 PlayerSearchHandler = 0x00F4, // updated 5.0 - LinkshellListHandler = 0x014A, // updated 5.18 + LinkshellListHandler = 0x00A7, // updated 5.2 MarketBoardRequestItemListingInfo = 0x0102, // updated 4.5 MarketBoardRequestItemListings = 0x0103, // updated 4.5 @@ -335,39 +332,39 @@ namespace Sapphire::Network::Packets ReqCountdownInitiate = 0x0135, // updated 5.0 ReqCountdownCancel = 0x0136, // updated 5.0 - ZoneLineHandler = 0x0174, // updated 5.18 - ClientTrigger = 0x03C0, // updated 5.18 + ZoneLineHandler = 0x00B9, // updated 5.2 + ClientTrigger = 0x017C, // updated 5.2 DiscoveryHandler = 0x017B, // updated 5.18 PlaceFieldMarker = 0x013C, // updated 5.0 - SkillHandler = 0x01BE, // updated 5.18 + SkillHandler = 0x0225, // updated 5.2 GMCommand1 = 0x014D, // updated 5.18 GMCommand2 = 0x03C2, // updated 5.18 AoESkillHandler = 0x0072, // updated 5.18 - UpdatePositionHandler = 0x0318, // updated 5.18 + UpdatePositionHandler = 0x0270, // updated 5.2 - InventoryModifyHandler = 0x03C5, // updated 5.18 + InventoryModifyHandler = 0x02E4, // updated 5.2 InventoryEquipRecommendedItems = 0x0149, // updated 5.0 ReqPlaceHousingItem = 0x014B, // updated 5.0 BuildPresetHandler = 0x0150, // updated 5.0 - TalkEventHandler = 0x02FD, // updated 5.18 + TalkEventHandler = 0x0340, // updated 5.2 EmoteEventHandler = 0x0183, // updated 5.18 WithinRangeEventHandler = 0x0167, // updated 5.18 OutOfRangeEventHandler = 0x02B5, // updated 5.18 EnterTeriEventHandler = 0x0267, // updated 5.18 ShopEventHandler = 0x0156, // updated 5.0 - ReturnEventHandler = 0x026B, // updated 5.18 - TradeReturnEventHandler = 0x02DD, // updated 5.18 + ReturnEventHandler = 0x027F, // updated 5.2 + TradeReturnEventHandler = 0x02DB, // updated 5.2 LinkshellEventHandler = 0x016B, // updated 4.5 LinkshellEventHandler1 = 0x016C, // updated 4.5 - ReqEquipDisplayFlagsChange = 0x01FE, // updated 5.18 + ReqEquipDisplayFlagsChange = 0x02E2, // updated 5.2 LandRenameHandler = 0xF177, // updated 5.0 HousingUpdateHouseGreeting = 0x0178, // updated 5.0 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 6e715282..75d10bfb 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -421,9 +421,9 @@ namespace Sapphire::Network::Packets::Server uint32_t max_hp; uint16_t current_mp; uint16_t max_mp; - uint16_t currentTp; uint8_t shieldPercentage; uint8_t unknown1; + uint16_t unknown2; Common::StatusEffect effect[30]; uint32_t padding; }; @@ -445,8 +445,6 @@ namespace Sapphire::Network::Packets::Server uint32_t current_hp; uint32_t max_hp; uint16_t current_mp; - uint16_t current_tp; - uint16_t max_mp; uint8_t unknown1; uint8_t classId; uint8_t shieldPercentage; @@ -464,7 +462,6 @@ namespace Sapphire::Network::Packets::Server uint32_t sourceActorId; } statusEntries[4]; - uint32_t unknown5; }; /** @@ -664,9 +661,8 @@ namespace Sapphire::Network::Packets::Server uint32_t displayFlags; uint16_t fateID; uint16_t mPCurr; - uint16_t tPCurr; uint16_t mPMax; - uint16_t tPMax; + uint16_t unk; // == 0 uint16_t modelChara; uint16_t rotation; uint16_t activeMinion; @@ -688,8 +684,11 @@ namespace Sapphire::Network::Packets::Server uint8_t mountFeet; uint8_t mountColor; uint8_t scale; - uint32_t elementalLevel; - uint32_t element; + + //uint32_t elementalLevel; one of these two field changed to 16bit + //uint32_t element; + uint8_t elementData[6]; + Common::StatusEffect effect[30]; Common::FFXIVARR_POSITION3 pos; uint32_t models[10]; @@ -1023,7 +1022,7 @@ namespace Sapphire::Network::Packets::Server unsigned char companionDefRank; unsigned char companionAttRank; unsigned char companionHealRank; - unsigned char u19[8]; + unsigned char u19[13]; unsigned char mountGuideMask[22]; char name[32]; unsigned char unknownOword[16]; diff --git a/src/world/Actor/Chara.cpp b/src/world/Actor/Chara.cpp index 6ecec118..35e1155e 100644 --- a/src/world/Actor/Chara.cpp +++ b/src/world/Actor/Chara.cpp @@ -539,9 +539,7 @@ void Sapphire::Entity::Chara::addStatusEffect( StatusEffect::StatusEffectPtr pEf statusEffectAdd->data().actor_id = pEffect->getTargetActorId(); statusEffectAdd->data().current_hp = getHp(); statusEffectAdd->data().current_mp = static_cast< uint16_t >( getMp() ); - statusEffectAdd->data().current_tp = getTp(); statusEffectAdd->data().max_hp = getMaxHp(); - statusEffectAdd->data().max_mp = static_cast< uint16_t >( getMaxMp() ); statusEffectAdd->data().classId = static_cast< uint8_t >( getClass() ); statusEffectAdd->data().entryCount = 1; @@ -661,7 +659,6 @@ void Sapphire::Entity::Chara::sendStatusEffectUpdate() statusEffectList->data().level1 = getLevel(); statusEffectList->data().current_hp = getHp(); statusEffectList->data().current_mp = getMp(); - statusEffectList->data().currentTp = getTp(); statusEffectList->data().max_hp = getMaxHp(); statusEffectList->data().max_mp = getMaxMp(); uint8_t slot = 0; diff --git a/src/world/Network/PacketWrappers/PlayerSpawnPacket.h b/src/world/Network/PacketWrappers/PlayerSpawnPacket.h index f20fdd7e..7ddbe23d 100644 --- a/src/world/Network/PacketWrappers/PlayerSpawnPacket.h +++ b/src/world/Network/PacketWrappers/PlayerSpawnPacket.h @@ -37,11 +37,9 @@ namespace Sapphire::Network::Packets::Server m_data.hPCurr = player.getHp(); m_data.mPCurr = player.getMp(); - m_data.tPCurr = player.getTp(); m_data.hPMax = player.getMaxHp(); m_data.mPMax = player.getMaxMp(); - //m_data.tPMax = 3000; m_data.level = player.getLevel(); m_data.gmRank = player.getGmRank(); m_data.pose = player.getPose();