1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-28 15:17:46 +00:00

5.35 updates

This commit is contained in:
collett 2020-11-11 02:07:59 +09:00
parent c6e1405802
commit 0ec4c4e4fd
6 changed files with 358 additions and 164 deletions

View file

@ -51,11 +51,11 @@ namespace Sapphire::Common
enum InventoryOperation : uint16_t enum InventoryOperation : uint16_t
{ {
Discard = 0x0180, Discard = 0x013C,
Move = 0x0181, Move = 0x013D,
Swap = 0x0182, Swap = 0x013E,
Split = 0x0183, Split = 0x013F,
Merge = 0x0185, Merge = 0x0141,
}; };
enum ClientLanguage : uint8_t enum ClientLanguage : uint8_t

View file

@ -271,9 +271,9 @@ namespace Sapphire::Network::ActorControl
* Retail sends 12 for mount speed star 1 unlocked and 15 for mount speed star 2 unlocked * Retail sends 12 for mount speed star 1 unlocked and 15 for mount speed star 2 unlocked
* This also has to be sent before mounting finishes for it to take effect * This also has to be sent before mounting finishes for it to take effect
*/ */
SetMountSpeed = 0x39F, SetMountSpeed = 0x3A0, // updated 5.35 hotfix
Dismount = 0x3A1, // updated 4.5 Dismount = 0x3A2, // updated 5.35 hotfix
// Duty Recorder // Duty Recorder
BeginReplayAck = 0x3A2, BeginReplayAck = 0x3A2,

View file

@ -43,78 +43,81 @@ namespace Sapphire::Network::Packets
*/ */
enum ServerZoneIpcType : uint16_t enum ServerZoneIpcType : uint16_t
{ {
Ping = 0x017A, // updated 5.25 Ping = 0x0219, // updated 5.35 hotfix
Init = 0x03B9, // updated 5.25 Init = 0x0185, // updated 5.35 hotfix
ActorFreeSpawn = 0x022F, // updated 5.3 ActorFreeSpawn = 0x0239, // updated 5.35 hotfix
InitZone = 0x0388, // updated 5.3 InitZone = 0x03CD, // updated 5.35 hotfix
EffectResult = 0x0346, // updated 5.3 EffectResult = 0x01C2, // updated 5.35 hotfix
ActorControl = 0x0344, // updated 5.3 ActorControl = 0x02A4, // updated 5.35 hotfix
ActorControlSelf = 0x0212, // updated 5.3 ActorControlSelf = 0x02C8, // updated 5.35 hotfix
ActorControlTarget = 0x01EB, // updated 5.25 ActorControlTarget = 0x0209, // updated 5.35 hotfix
/*! /*!
* @brief Used when resting * @brief Used when resting
*/ */
UpdateHpMpTp = 0x00F8, // updated 5.25 UpdateHpMpTp = 0x0319, // updated 5.35 hotfix
/////////////////////////////////////////////////// ///////////////////////////////////////////////////
ChatBanned = 0xF06B, ChatBanned = 0xF06B,
Playtime = 0x0207, // updated 5.3 Playtime = 0x03A4, // updated 5.35 hotfix
Logout = 0x00CD, // updated 5.25 Logout = 0x02AD, // updated 5.35 hotfix
CFNotify = 0x00FD, // updated 5.3 CFNotify = 0x02C4, // updated 5.35 hotfix
CFMemberStatus = 0x0079, CFMemberStatus = 0x0079,
CFDutyInfo = 0x007A, CFDutyInfo = 0x007A,
CFPlayerInNeed = 0xF07F, CFPlayerInNeed = 0xF07F,
CFPreferredRole = 0x013C, // updated 5.3 CFPreferredRole = 0x0196, // updated 5.35 hotfix
CFCancel = 0x00B7, // updated 5.25 CFCancel = 0x00EC, // updated 5.35 hotfix
SocialRequestError = 0xF0AD, SocialRequestError = 0xF0AD,
CFRegistered = 0x00B8, // updated 4.1 CFRegistered = 0x010C, // updated 5.35 hotfix
SocialRequestResponse = 0x00BB, // updated 4.1 SocialRequestResponse = 0x01C7, // updated 5.35 hotfix
SocialMessage = 0x0308, // updated 5.35 hotfix
SocialMessage2 = 0x037C, // updated 5.35 hotfix
CancelAllianceForming = 0x00C6, // updated 4.2 CancelAllianceForming = 0x00C6, // updated 4.2
LogMessage = 0x00D0, LogMessage = 0x00D0,
Chat = 0x0161, // updated 5.25 Chat = 0x0349, // updated 5.35 hotfix
PartyChat = 0x0065,
WorldVisitList = 0xF0FE, // added 4.5 WorldVisitList = 0xF0FE, // added 4.5
SocialList = 0x0269, // updated 5.25 SocialList = 0x0216, // updated 5.35 hotfix
ExamineSearchInfo = 0x03A1, // updated 5.3 ExamineSearchInfo = 0x03C3, // updated 5.35 hotfix
UpdateSearchInfo = 0x009E, // updated 5.3 UpdateSearchInfo = 0x0121, // updated 5.35 hotfix
InitSearchInfo = 0x0347, // updated 5.25 InitSearchInfo = 0x036F, // updated 5.35 hotfix
ExamineSearchComment = 0x0102, // updated 4.1 ExamineSearchComment = 0x0102, // updated 4.1
ServerNoticeShort = 0x0115, // updated 5.0 ServerNoticeShort = 0x0115, // updated 5.0
ServerNotice = 0x00E9, // updated 5.25 ServerNotice = 0x02F8, // updated 5.35 hotfix
SetOnlineStatus = 0x0381, // updated 5.25 SetOnlineStatus = 0x03D7, // updated 5.35 hotfix
CountdownInitiate = 0x0237, // updated 5.25 CountdownInitiate = 0x0237, // updated 5.25
CountdownCancel = 0x00D9, // updated 5.18 CountdownCancel = 0x00D9, // updated 5.18
PlayerAddedToBlacklist = 0x033F, // updated 5.1 PlayerAddedToBlacklist = 0x033F, // updated 5.1
PlayerRemovedFromBlacklist = 0x0385, // updated 5.1 PlayerRemovedFromBlacklist = 0x0385, // updated 5.1
BlackList = 0x027A, // updated 5.25 BlackList = 0x02DB, // updated 5.35 hotfix
LinkshellList = 0x00A9, // updated 5.25 LinkshellList = 0x01F0, // updated 5.35 hotfix
MailDeleteRequest = 0xF12B, // updated 5.0 MailDeleteRequest = 0xF12B, // updated 5.0
// 12D - 137 - constant gap between 4.5x -> 5.0 // 12D - 137 - constant gap between 4.5x -> 5.0
ReqMoogleMailList = 0x0138, // updated 5.0 ReqMoogleMailList = 0xF138, // updated 5.0
ReqMoogleMailLetter = 0x0139, // updated 5.0 ReqMoogleMailLetter = 0xF139, // updated 5.0
MailLetterNotification = 0x013A, // updated 5.0 MailLetterNotification = 0x013A, // updated 5.0
MarketTaxRates = 0x00C6, // updated 5.3 MarketTaxRates = 0x01F8, // updated 5.35 hotfix
MarketBoardSearchResult = 0x00C0, // updated 5.3 MarketBoardSearchResult = 0x032C, // updated 5.35 hotfix
MarketBoardItemListingCount = 0x016C, // updated 5.3 MarketBoardItemListingCount = 0x038F, // updated 5.35 hotfix
MarketBoardItemListingHistory = 0x03BB, // updated 5.3 MarketBoardItemListingHistory = 0x0186, // updated 5.35 hotfix
MarketBoardItemListing = 0x0233, // updated 5.3 MarketBoardItemListing = 0x025F, // updated 5.35 hotfix
CharaFreeCompanyTag = 0x013B, // updated 4.5 CharaFreeCompanyTag = 0x013B, // updated 4.5
FreeCompanyBoardMsg = 0x013C, // updated 4.5 FreeCompanyBoardMsg = 0x013C, // updated 4.5
@ -123,96 +126,97 @@ namespace Sapphire::Network::Packets
FreeCompanyUpdateShortMessage = 0xF157, // added 5.0 FreeCompanyUpdateShortMessage = 0xF157, // added 5.0
StatusEffectList = 0x0172, // updated 5.3 StatusEffectList = 0x0382, // updated 5.35 hotfix
EurekaStatusEffectList = 0x0167, // updated 5.18 EurekaStatusEffectList = 0x0167, // updated 5.18
BossStatusEffectList = 0x0312, // added 5.1 BossStatusEffectList = 0x0312, // added 5.1
Effect = 0x00F4, // updated 5.3 Effect = 0x0192, // updated 5.35 hotfix
AoeEffect8 = 0x00C9, // updated 5.3 AoeEffect8 = 0x012C, // updated 5.35 hotfix
AoeEffect16 = 0x03BF, // updated 5.3 AoeEffect16 = 0x03BF, // updated 5.3
AoeEffect24 = 0x027E, // updated 5.3 AoeEffect24 = 0x027E, // updated 5.3
AoeEffect32 = 0x017E, // updated 5.3 AoeEffect32 = 0x017E, // updated 5.3
PersistantEffect = 0x032E, // updated 5.25 PersistantEffect = 0x0317, // updated 5.35 hotfix
GCAffiliation = 0xF16F, // updated 5.0 GCAffiliation = 0xF16F, // updated 5.0
PlayerSpawn = 0x038E, // updated 5.3 PlayerSpawn = 0x0179, // updated 5.35 hotfix
NpcSpawn = 0x0083, // updated 5.3 NpcSpawn = 0x03A8, // updated 5.35 hotfix
NpcSpawn2 = 0x01CB, // ( Bigger statuseffectlist? ) updated 5.3 NpcSpawn2 = 0x01CB, // ( Bigger statuseffectlist? ) updated 5.3
ActorMove = 0x0352, // updated 5.3 ActorMove = 0x01BF, // updated 5.35 hotfix
ActorSetPos = 0x02A5, // updated 5.3 ActorSetPos = 0x03DF, // updated 5.35 hotfix
ActorCast = 0x00E7, // updated 5.3 ActorCast = 0x0302, // updated 5.35 hotfix
SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18 SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18
PartyList = 0x0287, // updated 5.18 PartyList = 0x02B2, // updated 5.35 hotfix
HateRank = 0x012E, // updated 5.25 PartyMessage = 0x00AE, // updated 5.35 hotfix
HateList = 0x02C4, // updated 5.25 HateRank = 0x02CC, // updated 5.35 hotfix
ObjectSpawn = 0x01A0, // updated 5.3 HateList = 0x0198, // updated 5.35 hotfix
ObjectDespawn = 0x034B, // updated 5.18 ObjectSpawn = 0x02B8, // updated 5.35 hotfix
UpdateClassInfo = 0x039A, // updated 5.3 ObjectDespawn = 0xF34B, // updated 5.18
UpdateClassInfo = 0x0235, // updated 5.35 hotfix
SilentSetClassJob = 0x018E, // updated 5.0 - seems to be the case, not sure if it's actually used for anything SilentSetClassJob = 0x018E, // updated 5.0 - seems to be the case, not sure if it's actually used for anything
PlayerSetup = 0x00D4, // updated 5.3 PlayerSetup = 0x0290, // updated 5.35 hotfix
PlayerStats = 0x3D8, // updated 5.3 PlayerStats = 0x023B, // updated 5.35 hotfix
ActorOwner = 0x0149, // updated 5.25 ActorOwner = 0x00E8, // updated 5.35 hotfix
PlayerStateFlags = 0x0125, // updated 5.25 PlayerStateFlags = 0x00F8, // updated 5.35 hotfix
PlayerClassInfo = 0x034F, // updated 5.25 PlayerClassInfo = 0x02C3, // updated 5.35 hotfix
CharaVisualEffect = 0x0258, // updated 5.25 CharaVisualEffect = 0x02E2, // updated 5.35 hotfix
ModelEquip = 0x01E5, // updated 5.25 ModelEquip = 0x0277, // updated 5.35 hotfix
Examine = 0x03C4, // updated 5.3 Examine = 0x00BC, // updated 5.35 hotfix
CharaNameReq = 0x0127, // updated 5.3 CharaNameReq = 0x008E, // updated 5.35 hotfix
// nb: see #565 on github // nb: see #565 on github
UpdateRetainerItemSalePrice = 0x019F, // updated 5.0 UpdateRetainerItemSalePrice = 0xF19F, // updated 5.0
RetainerSaleHistory = 0x020E, // updated 5.21 hotfix RetainerSaleHistory = 0x020E, // updated 5.21 hotfix
RetainerInformation = 0x02B0, // updated 5.3 RetainerInformation = 0x01F9, // updated 5.35 hotfix
SetLevelSync = 0x1186, // not updated for 4.4, not sure what it is anymore SetLevelSync = 0x1186, // not updated for 4.4, not sure what it is anymore
ItemInfo = 0x02A4, // updated 5.3 ItemInfo = 0x0214, // updated 5.35 hotfix
ContainerInfo = 0x02A8, // updated 5.25 ContainerInfo = 0x00C5, // updated 5.35 hotfix
InventoryTransactionFinish = 0x0193, // updated 5.25 InventoryTransactionFinish = 0x02F0, // updated 5.35 hotfix
InventoryTransaction = 0x00C5, // updated 5.3 InventoryTransaction = 0x01FD, // updated 5.35 hotfix
CurrencyCrystalInfo = 0x00D7, // updated 5.3 CurrencyCrystalInfo = 0x0379, // updated 5.35 hotfix
InventoryActionAck = 0x01AE, // updated 5.25 InventoryActionAck = 0x03E4, // updated 5.35 hotfix
UpdateInventorySlot = 0x036A, // updated 5.3 UpdateInventorySlot = 0x036A, // updated 5.35 hotfix
HuntingLogEntry = 0xF1B3, // updated 5.0 HuntingLogEntry = 0x0146, // updated 5.35 hotfix
EventPlay = 0x0379, // updated 5.3 EventPlay = 0x00F3, // updated 5.35 hotfix
EventPlay4 = 0x030B, // updated 5.3 EventPlay4 = 0x00AC, // updated 5.35 hotfix
EventPlay8 = 0x014C, // updated 5.25 EventPlay8 = 0x023F, // updated 5.35 hotfix
EventPlay16 = 0x0074, // updated 5.25 EventPlay16 = 0x025B, // updated 5.35 hotfix
EventPlay32 = 0x02D9, // updated 5.25 EventPlay32 = 0x029A, // updated 5.35 hotfix
EventPlay64 = 0x0388, // updated 5.25 EventPlay64 = 0x02C1, // updated 5.35 hotfix
EventPlay128 = 0x03A4, // updated 5.25 EventPlay128 = 0x038A, // updated 5.35 hotfix
EventPlay255 = 0x01AC, // updated 5.25 EventPlay255 = 0x034B, // updated 5.35 hotfix
EventStart = 0x020D, // updated 5.3 EventStart = 0x009A, // updated 5.35 hotfix
EventFinish = 0x00DF, // updated 5.3 EventFinish = 0x007E, // updated 5.35 hotfix
EventLinkshell = 0x1169, EventLinkshell = 0x1169,
QuestActiveList = 0x0391, // updated 5.25 QuestActiveList = 0x0117, // updated 5.35 hotfix
QuestUpdate = 0x0352, // updated 5.25 QuestUpdate = 0x0073, // updated 5.35 hotfix
QuestCompleteList = 0x0231, // updated 5.25 QuestCompleteList = 0x0240, // updated 5.35 hotfix
QuestFinish = 0x02B6, // updated 5.25 QuestFinish = 0x00E9, // updated 5.35 hotfix
MSQTrackerComplete = 0x01D6, // updated 5.0 MSQTrackerComplete = 0xF1D6, // updated 5.0
MSQTrackerProgress = 0xF1CD, // updated 4.5 ? this actually looks like the two opcodes have been combined, see #474 MSQTrackerProgress = 0xF1CD, // updated 4.5 ? this actually looks like the two opcodes have been combined, see #474
QuestMessage = 0x0093, // updated 5.25 QuestMessage = 0x0381, // updated 5.35 hotfix
QuestTracker = 0x00AD, // updated 5.25 QuestTracker = 0x018B, // updated 5.35 hotfix
Mount = 0x02BE, // updated 5.25 Mount = 0x01B5, // updated 5.35 hotfix
DirectorVars = 0x00E6, // updated 5.18 DirectorVars = 0x00E6, // updated 5.18
SomeDirectorUnk1 = 0x0084, // updated 5.18 SomeDirectorUnk1 = 0x0084, // updated 5.18
SomeDirectorUnk2 = 0xF0C1, // updated 5.18 SomeDirectorUnk2 = 0xF0C1, // updated 5.18
SomeDirectorUnk4 = 0x01DF, // updated 5.3 SomeDirectorUnk4 = 0x0202, // updated 5.35 hotfix
SomeDirectorUnk8 = 0x028A, // updated 5.18 SomeDirectorUnk8 = 0x028A, // updated 5.18
SomeDirectorUnk16 = 0x028C, // updated 5.18 SomeDirectorUnk16 = 0x028C, // updated 5.18
DirectorPopUp = 0xF162, // updated 5.18 - display dialogue pop-ups in duties and FATEs, for example, Teraflare's countdown DirectorPopUp = 0xF162, // updated 5.18 - display dialogue pop-ups in duties and FATEs, for example, Teraflare's countdown
@ -221,35 +225,37 @@ namespace Sapphire::Network::Packets
CFAvailableContents = 0xF1FD, // updated 4.2 CFAvailableContents = 0xF1FD, // updated 4.2
WeatherChange = 0x03D6, // updated 5.3 WeatherChange = 0x027B, // updated 5.35 hotfix
PlayerTitleList = 0x037D, // updated 5.1 PlayerTitleList = 0x037D, // updated 5.1
Discovery = 0x0173, // updated 5.25 Discovery = 0x031B, // updated 5.35 hotfix
EorzeaTimeOffset = 0x03B8, // updated 5.1 EorzeaTimeOffset = 0xF3B8, // updated 5.1
EquipDisplayFlags = 0x010D, // updated 5.25 EquipDisplayFlags = 0x00BE, // updated 5.35 hotfix
MiniCactpotInit = 0x0286, // added 5.31 MiniCactpotInit = 0x0286, // added 5.31
ShopMessage = 0x0197, // updated 5.35 hotfix
LootMessage = 0x01B7, // updated 5.35 hotfix
/// Housing ////////////////////////////////////// /// Housing //////////////////////////////////////
LandSetInitialize = 0x0234, // updated 5.0 LandSetInitialize = 0x0234, // updated 5.0
LandUpdate = 0x0235, // updated 5.0 LandUpdate = 0x0235, // updated 5.0
YardObjectSpawn = 0x0236, // updated 5.0 YardObjectSpawn = 0xF236, // updated 5.0
HousingIndoorInitialize = 0x0237, // updated 5.0 HousingIndoorInitialize = 0x0237, // updated 5.0
LandPriceUpdate = 0x0238, // updated 5.0 LandPriceUpdate = 0x0238, // updated 5.0
LandInfoSign = 0x037F, // updated 5.25 LandInfoSign = 0x023D, // updated 5.35 hotfix
LandRename = 0x023A, // updated 5.0 LandRename = 0x023A, // updated 5.0
HousingEstateGreeting = 0x023B, // updated 5.0 HousingEstateGreeting = 0x023B, // updated 5.0
HousingUpdateLandFlagsSlot = 0x023C, // updated 5.0 HousingUpdateLandFlagsSlot = 0x023C, // updated 5.0
HousingLandFlags = 0x0177, // updated 5.25 HousingLandFlags = 0x022F, // updated 5.35 hotfix
HousingShowEstateGuestAccess = 0x023E, // updated 5.0 HousingShowEstateGuestAccess = 0x023E, // updated 5.0
HousingObjectInitialize = 0x0333, // updated 5.25 HousingObjectInitialize = 0x01AA, // updated 5.35 hotfix
HousingInternalObjectSpawn = 0x241, // updated 5.0 HousingInternalObjectSpawn = 0xF241, // updated 5.0
HousingWardInfo = 0x01D1, // updated 5.25 HousingWardInfo = 0x02FD, // updated 5.35 hotfix
HousingObjectMove = 0x0244, // updated 5.0 HousingObjectMove = 0xF244, // updated 5.0
SharedEstateSettingsResponse = 0x0245, // updated 4.5 SharedEstateSettingsResponse = 0x0245, // updated 4.5
@ -262,12 +268,12 @@ namespace Sapphire::Network::Packets
DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui
PerformNote = 0x0286, // updated 4.3 PerformNote = 0x0286, // updated 4.3
PrepareZoning = 0x00F9, // updated 5.3 PrepareZoning = 0x026C, // updated 5.35 hotfix
ActorGauge = 0x020F, // updated 5.3 ActorGauge = 0x0112, // updated 5.35 hotfix
// daily quest info -> without them sent, login will take longer... // daily quest info -> without them sent, login will take longer...
DailyQuests = 0x031E, // updated 5.25 DailyQuests = 0x0139, // updated 5.35 hotfix
DailyQuestRepeatFlags = 0x00A7, // updated 5.25 DailyQuestRepeatFlags = 0x024C, // updated 5.35 hotfix
/// Doman Mahjong ////////////////////////////////////// /// Doman Mahjong //////////////////////////////////////
MahjongOpenGui = 0x02A4, // only available in mahjong instance MahjongOpenGui = 0x02A4, // only available in mahjong instance
@ -287,37 +293,43 @@ namespace Sapphire::Network::Packets
*/ */
enum ClientZoneIpcType : uint16_t enum ClientZoneIpcType : uint16_t
{ {
PingHandler = 0x017A, // updated 5.25 PingHandler = 0x0219, // updated 5.35 hotfix
InitHandler = 0x03B9, // updated 5.25 InitHandler = 0x0185, // updated 5.35 hotfix
FinishLoadingHandler = 0x008A, // updated 5.25 FinishLoadingHandler = 0x01BE, // updated 5.35 hotfix
CFCommenceHandler = 0x0228, // updated 5.25 CFCommenceHandler = 0x0118, // updated 5.35 hotfix
CFCancelHandler = 0x013E, // updated 5.25 CFCancelHandler = 0x0332, // updated 5.35 hotfix
CFRegisterDuty = 0x0180, // updated 5.25 CFRegisterDuty = 0x0289, // updated 5.35 hotfix
CFRegisterRoulette = 0x0395, // updated 5.25 CFRegisterRoulette = 0x0088, // updated 5.35 hotfix
PlayTimeHandler = 0x02FE, // updated 5.25 PlayTimeHandler = 0x02A8, // updated 5.35 hotfix
LogoutHandler = 0x00B7, // updated 5.25 LogoutHandler = 0x00EC, // updated 5.35 hotfix
CancelLogout = 0x008F, // updated 5.1 CancelLogout = 0x03DB, // updated 5.35 hotfix
CFDutyInfoHandler = 0x0078, // updated 4.2 CFDutyInfoHandler = 0x0078, // updated 4.2
SocialReqSendHandler = 0x00AE, // updated 4.1 SocialReqSendHandler = 0x0387, // updated 5.35 hotfix
SocialResponseHandler = 0x028D, // updated 5.35 hotfix
CreateCrossWorldLS = 0x00AF, // updated 4.3 CreateCrossWorldLS = 0x00AF, // updated 4.3
ChatHandler = 0x01E2, // updated 5.3 ChatHandler = 0x0131, // updated 5.35 hotfix
PartyChatHandler = 0x0065,
PartySetLeaderHandler = 0x0208, // updated 5.35 hotfix
LeavePartyHandler = 0x0337, // updated 5.35 hotfix
KickPartyMemberHandler = 0x014C, // updated 5.35 hotfix
DisbandPartyHandler = 0x0205, // updated 5.35 hotfix
SocialListHandler = 0x0371, // updated 5.25 SocialListHandler = 0x0340, // updated 5.35 hotfix
SetSearchInfoHandler = 0x0210, // updated 5.3 SetSearchInfoHandler = 0x0314, // updated 5.35 hotfix
ReqSearchInfoHandler = 0x0366, // updated 5.25 ReqSearchInfoHandler = 0x01E9, // updated 5.35 hotfix
ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0 ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0
ReqRemovePlayerFromBlacklist = 0x00F1, // updated 5.0 ReqRemovePlayerFromBlacklist = 0x00F1, // updated 5.0
BlackListHandler = 0x0354, // updated 5.25 BlackListHandler = 0x0079, // updated 5.35 hotfix
PlayerSearchHandler = 0x00F4, // updated 5.0 PlayerSearchHandler = 0x00F4, // updated 5.0
LinkshellListHandler = 0x01D4, // updated 5.25 LinkshellListHandler = 0x024B, // updated 5.35 hotfix
MarketBoardRequestItemListingInfo = 0x0102, // updated 4.5 MarketBoardRequestItemListingInfo = 0x0102, // updated 4.5
MarketBoardRequestItemListings = 0x0103, // updated 4.5 MarketBoardRequestItemListings = 0x0103, // updated 4.5
@ -336,41 +348,41 @@ namespace Sapphire::Network::Packets
ReqCountdownInitiate = 0x009A, // updated 5.25 ReqCountdownInitiate = 0x009A, // updated 5.25
ReqCountdownCancel = 0x0244, // updated 5.25 ReqCountdownCancel = 0x0244, // updated 5.25
ZoneLineHandler = 0x0214, // updated 5.25 ZoneLineHandler = 0x0279, // updated 5.35 hotfix
ClientTrigger = 0x02BE, // updated 5.3 ClientTrigger = 0x03D3, // updated 5.35 hotfix
DiscoveryHandler = 0x02C8, // updated 5.25 DiscoveryHandler = 0x00E3, // updated 5.35 hotfix
PlaceFieldMarkerPreset = 0x023F, // updated 5.25 PlaceFieldMarkerPreset = 0x023F, // updated 5.25
PlaceFieldMarker = 0x01BA, // updated 5.25 PlaceFieldMarker = 0x01BA, // updated 5.25
SkillHandler = 0x033C, // updated 5.3 SkillHandler = 0x01CD, // updated 5.35 hotfix
GMCommand1 = 0x01EC, // updated 5.25 GMCommand1 = 0x02AC, // updated 5.35 hotfix
GMCommand2 = 0x0368, // updated 5.25 GMCommand2 = 0x029F, // updated 5.35 hotfix
AoESkillHandler = 0x0364, // updated 5.21 hotfix AoESkillHandler = 0x030C, // updated 5.35 hotfix
UpdatePositionHandler = 0x037B, // updated 5.3 UpdatePositionHandler = 0x0236, // updated 5.35 hotfix
InventoryModifyHandler = 0x0118, // updated 5.3 InventoryModifyHandler = 0x0135, // updated 5.35 hotfix
InventoryEquipRecommendedItems = 0x0149, // updated 5.0 InventoryEquipRecommendedItems = 0x0149, // updated 5.0
ReqPlaceHousingItem = 0x014B, // updated 5.0 ReqPlaceHousingItem = 0x014B, // updated 5.0
BuildPresetHandler = 0x0150, // updated 5.0 BuildPresetHandler = 0x0150, // updated 5.0
TalkEventHandler = 0x030F, // updated 5.25 TalkEventHandler = 0x02A4, // updated 5.35 hotfix
EmoteEventHandler = 0x01DD, // updated 5.25 EmoteEventHandler = 0x02C8, // updated 5.35 hotfix
WithinRangeEventHandler = 0x0165, // updated 5.25 WithinRangeEventHandler = 0x0209, // updated 5.35 hotfix
OutOfRangeEventHandler = 0x01EB, // updated 5.25 OutOfRangeEventHandler = 0x0319, // updated 5.35 hotfix
EnterTeriEventHandler = 0x00F8, // updated 5.25 EnterTeriEventHandler = 0x0192, // updated 5.35 hotfix
ShopEventHandler = 0x0156, // updated 5.0 ShopEventHandler = 0x0156, // updated 5.0
ReturnEventHandler = 0x00BB, // updated 5.25 ReturnEventHandler = 0x02B4, // updated 5.35 hotfix
TradeReturnEventHandler = 0x03B6, // updated 5.25 TradeReturnEventHandler = 0x00A4, // updated 5.35 hotfix
TradeMultipleReturnEventHander = 0x02B0, // updated 5.25 TradeMultipleReturnEventHander = 0x035C, // updated 5.35 hotfix
LinkshellEventHandler = 0x016B, // updated 4.5 LinkshellEventHandler = 0x016B, // updated 4.5
LinkshellEventHandler1 = 0x016C, // updated 4.5 LinkshellEventHandler1 = 0x016C, // updated 4.5
ReqEquipDisplayFlagsChange = 0x0202, // updated 5.25 ReqEquipDisplayFlagsChange = 0x02F6, // updated 5.35 hotfix
LandRenameHandler = 0xF177, // updated 5.0 LandRenameHandler = 0xF177, // updated 5.0
HousingUpdateHouseGreeting = 0x0178, // updated 5.0 HousingUpdateHouseGreeting = 0x0178, // updated 5.0
@ -378,13 +390,11 @@ namespace Sapphire::Network::Packets
SetSharedEstateSettings = 0x017B, // updated 5.0 SetSharedEstateSettings = 0x017B, // updated 5.0
UpdatePositionInstance = 0x0245, // updated 5.3 UpdatePositionInstance = 0x0345, // updated 5.35 hotfix
PerformNoteHandler = 0x029B, // updated 4.3 PerformNoteHandler = 0x029B, // updated 4.3
WorldInteractionHandler = 0x0285, // updated 5.25 WorldInteractionHandler = 0x00A9, // updated 5.35 hotfix
ShopMessage = 0x00C1, // updated 5.25
LootMessage = 0x00B1, // updated 5.25
}; };
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////

View file

@ -207,6 +207,13 @@ struct FFXIVIpcChatHandler :
/* 001A */ char message[1012]; /* 001A */ char message[1012];
}; };
struct FFXIVIpcPartyChatHandler :
FFXIVIpcBasePacket< ChatHandler >
{
uint64_t unknown;
char message[1024];
};
struct FFXIVIpcShopEventHandler : struct FFXIVIpcShopEventHandler :
FFXIVIpcBasePacket< ShopEventHandler > FFXIVIpcBasePacket< ShopEventHandler >
{ {
@ -355,6 +362,61 @@ struct FFXIVIpcWorldInteractionHandler :
Common::FFXIVARR_POSITION3 position; Common::FFXIVARR_POSITION3 position;
}; };
struct FFXIVIpcSocialReqSendHandler :
FFXIVIpcBasePacket< SocialReqSendHandler >
{
uint64_t unknown;
uint8_t p1;
uint8_t p2;
uint8_t socialType;
char name[32];
uint8_t padding[5];
};
struct FFXIVIpcSocialResponseHandler :
FFXIVIpcBasePacket< SocialResponseHandler >
{
uint64_t contentId;
uint8_t p1;
uint8_t p2;
uint8_t socialType;
uint8_t response;
uint32_t unknown;
};
struct FFXIVIpcPartySetLeaderHandler :
FFXIVIpcBasePacket< PartySetLeaderHandler >
{
uint64_t contentId;
uint8_t p1;
uint8_t p2;
char name[32];
uint8_t padding[6];
};
struct FFXIVIpcLeavePartyHandler :
FFXIVIpcBasePacket< LeavePartyHandler >
{
uint64_t empty;
};
struct FFXIVIpcKickPartyMemberHander :
FFXIVIpcBasePacket< KickPartyMemberHandler >
{
uint64_t contentId;
uint8_t p1;
uint8_t p2;
char name[32];
uint8_t padding[6];
};
struct FFXIVIpcDisbandPartyHandler :
FFXIVIpcBasePacket< DisbandPartyHandler >
{
uint64_t empty;
};
} }
#endif //_CORE_NETWORK_PACKETS_ZONE_CLIENT_IPC_H #endif //_CORE_NETWORK_PACKETS_ZONE_CLIENT_IPC_H

View file

@ -46,6 +46,19 @@ namespace Sapphire::Network::Packets::Server
char msg[1012]; char msg[1012];
}; };
struct FFXIVIpcPartyChat : FFXIVIpcBasePacket< PartyChat >
{
uint64_t unknown;
uint64_t contentId;
uint32_t charaId;
uint8_t u1;
uint8_t u2;
uint8_t u3;
char name[32];
char message[1024];
uint8_t padding;
};
struct FFXIVIpcChatBanned : FFXIVIpcBasePacket< ChatBanned > struct FFXIVIpcChatBanned : FFXIVIpcBasePacket< ChatBanned >
{ {
uint8_t padding[4]; // I was not sure reinterpreting ZST is valid behavior in C++. uint8_t padding[4]; // I was not sure reinterpreting ZST is valid behavior in C++.
@ -1010,6 +1023,7 @@ namespace Sapphire::Network::Packets::Server
unsigned int pvpExp; unsigned int pvpExp;
unsigned int pvpFrontlineOverallRanks[3]; unsigned int pvpFrontlineOverallRanks[3];
unsigned short levels[Common::CLASSJOB_SLOTS]; unsigned short levels[Common::CLASSJOB_SLOTS];
/*
unsigned short unknown15C[9]; unsigned short unknown15C[9];
unsigned short u1; unsigned short u1;
unsigned short u2; unsigned short u2;
@ -1026,6 +1040,15 @@ namespace Sapphire::Network::Packets::Server
unsigned char u19[8]; unsigned char u19[8];
unsigned char mountGuideMask[22]; unsigned char mountGuideMask[22];
unsigned char u19_2; unsigned char u19_2;
*/
unsigned char unknown5_3a[176];
unsigned char companionName[21];
unsigned char companionDefRank;
unsigned char companionAttRank;
unsigned char companionHealRank;
unsigned char mountGuideMask[23];
unsigned char maybeReservedMountSlots;
//==
char name[32]; char name[32];
unsigned char unknownOword[16]; unsigned char unknownOword[16];
unsigned char unknownOw; unsigned char unknownOw;
@ -1033,13 +1056,14 @@ namespace Sapphire::Network::Packets::Server
unsigned char aetheryte[21]; unsigned char aetheryte[21];
unsigned char discovery[445]; unsigned char discovery[445];
unsigned char howto[34]; unsigned char howto[34];
unsigned char minions[45]; unsigned char minions[51];
unsigned char chocoboTaxiMask[10]; unsigned char chocoboTaxiMask[10];
unsigned char watchedCutscenes[124]; unsigned char watchedCutscenes[131];
unsigned char companionBardingMask[10]; unsigned char companionBardingMask[10];
unsigned char companionEquippedHead; unsigned char companionEquippedHead;
unsigned char companionEquippedBody; unsigned char companionEquippedBody;
unsigned char companionEquippedLegs; unsigned char companionEquippedLegs;
/*
unsigned char unknown52A[4]; unsigned char unknown52A[4];
unsigned char unknownMask52E[11]; unsigned char unknownMask52E[11];
unsigned char fishingGuideMask[105]; unsigned char fishingGuideMask[105];
@ -1049,7 +1073,11 @@ namespace Sapphire::Network::Packets::Server
unsigned char beastRank[11]; unsigned char beastRank[11];
unsigned char unknownPvp5AB[11]; unsigned char unknownPvp5AB[11];
unsigned char unknown5B9[5]; unsigned char unknown5B9[5];
*/
unsigned char unknown5_3c[234];
//==
unsigned char pose; unsigned char pose;
/*
unsigned char unknown5B91; unsigned char unknown5B91;
unsigned char challengeLogComplete[9]; unsigned char challengeLogComplete[9];
unsigned char weaponPose; unsigned char weaponPose;
@ -1063,24 +1091,30 @@ namespace Sapphire::Network::Packets::Server
unsigned char u13; unsigned char u13;
unsigned char aetherCurrentMask[22]; unsigned char aetherCurrentMask[22];
unsigned char u10[3]; unsigned char u10[3];
*/
unsigned char unknown5_3d[292];
//==
unsigned char orchestrionMask[40]; unsigned char orchestrionMask[40];
unsigned char hallOfNoviceCompletion[3]; unsigned char hallOfNoviceCompletion[3];
unsigned char animaCompletion[11]; unsigned char animaCompletion[11];
unsigned char u14[16]; unsigned char unknown5_3e[33];
unsigned char u15[13];
unsigned char unlockedRaids[28]; unsigned char unlockedRaids[28];
unsigned char unlockedDungeons[18]; unsigned char unlockedDungeons[18];
unsigned char unlockedGuildhests[10]; unsigned char unlockedGuildhests[10];
unsigned char unlockedTrials[8]; unsigned char unlockedTrials[9]; // 5.35 trial:pvp either 9:5 or 8:6 not confirmed
unsigned char unlockedPvp[5]; unsigned char unlockedPvp[5];
unsigned char clearedRaids[28]; unsigned char clearedRaids[28];
unsigned char clearedDungeons[18]; unsigned char clearedDungeons[18];
unsigned char clearedGuildhests[10]; unsigned char clearedGuildhests[10];
unsigned char clearedTrials[8]; unsigned char clearedTrials[9];
unsigned char clearedPvp[5]; unsigned char clearedPvp[5];
/*
unsigned short fishingRecordsFishWeight[26]; unsigned short fishingRecordsFishWeight[26];
unsigned int exploratoryMissionNextTimestamp; unsigned int exploratoryMissionNextTimestamp;
unsigned char pvpLevel; unsigned char pvpLevel;
*/
unsigned char padding2[8];
//==
}; };
@ -1764,6 +1798,7 @@ namespace Sapphire::Network::Packets::Server
struct FFXIVIpcMount : FFXIVIpcBasePacket< Mount > struct FFXIVIpcMount : FFXIVIpcBasePacket< Mount >
{ {
uint32_t id; uint32_t id;
uint32_t padding[3];
}; };
/** /**
@ -1981,7 +2016,7 @@ namespace Sapphire::Network::Packets::Server
uint32_t housePrice; uint32_t housePrice;
uint8_t infoFlags; uint8_t infoFlags;
Common::HousingAppeal houseAppeal[3]; Common::HousingAppeal houseAppeal[3];
char estateOwnerName[30]; char estateOwnerName[32];
} houseInfoEntry[60]; } houseInfoEntry[60];
}; };
@ -2125,6 +2160,84 @@ namespace Sapphire::Network::Packets::Server
uint32_t param6; uint32_t param6;
uint32_t param7; uint32_t param7;
}; };
struct FFXIVIpcSocialMessage : FFXIVIpcBasePacket< SocialMessage >
{
uint64_t contentId;
uint32_t expireTime;
uint8_t p1;
uint8_t p2;
uint8_t socialType;
uint8_t padding;
uint8_t type;
uint8_t unknown4;
char name[32];
uint8_t padding2[6];
};
struct FFXIVIpcSocialMessage2 : FFXIVIpcBasePacket< SocialMessage2 >
{
uint64_t contentId;
uint32_t unknown3;
uint8_t p1;
uint8_t p2;
uint8_t socialType;
uint8_t padding;
char name[32];
};
struct FFXIVIpcSocialRequestResponse : FFXIVIpcBasePacket< SocialRequestResponse >
{
uint64_t contentId;
uint32_t unknown3;
uint8_t u1AlwaysOne;
uint8_t response;
uint8_t u2AlwaysOne;
char name[32];
uint8_t padding;
};
struct FFXIVIpcPartyList : FFXIVIpcBasePacket< PartyList >
{
struct
{
char name[32];
uint64_t contentId;
uint32_t charaId;
uint32_t u1;
uint32_t u2;
uint32_t hp;
uint32_t maxHp;
uint16_t mp;
uint16_t maxMp;
uint16_t u3;
uint16_t zoneId;
uint8_t gposeSelectable;
uint8_t classId;
uint8_t u5;
uint8_t level;
uint8_t otherData[368];
} member[8];
uint64_t someContentId1;
uint64_t someContentId2;
uint8_t leaderIndex;
uint8_t partySize;
uint16_t padding1;
uint32_t padding2;
};
struct FFXIVIpcPartyMessage : FFXIVIpcBasePacket< PartyMessage >
{
uint64_t leaderContentId;
uint64_t memberContentId;
uint8_t u1;
uint8_t u2;
uint16_t type;
uint8_t partySize; // ?
char leaderName[32];
char memberName[32];
uint8_t padding[3];
};
} }
#endif /*_CORE_NETWORK_PACKETS_SERVER_IPC_H*/ #endif /*_CORE_NETWORK_PACKETS_SERVER_IPC_H*/

View file

@ -1543,24 +1543,33 @@ uint8_t Sapphire::Entity::Player::getEquipDisplayFlags() const
} }
void Sapphire::Entity::Player::mount( uint32_t id ) void Sapphire::Entity::Player::mount( uint32_t id )
{
if( id > 0 )
{ {
m_mount = id; m_mount = id;
sendToInRangeSet( makeActorControl( getId(), ActorControlType::SetStatus, sendToInRangeSet( makeActorControl( getId(), ActorControlType::SetStatus,
static_cast< uint8_t >( Common::ActorStatus::Mounted ) ), true ); static_cast< uint8_t >( Common::ActorStatus::Mounted ) ), true );
sendToInRangeSet( makeActorControlSelf( getId(), 0x39e, 12 ), true ); //? sendToInRangeSet( makeActorControlSelf( getId(), ActorControlType::SetMountSpeed, 12 ), true );
sendToInRangeSet( makeActorControlSelf( getId(), 0x107, 1 ), true );
auto mountPacket = makeZonePacket< FFXIVIpcMount >( getId() ); auto mountPacket = makeZonePacket< FFXIVIpcMount >( getId() );
mountPacket->data().id = id; mountPacket->data().id = id;
sendToInRangeSet( mountPacket, true ); sendToInRangeSet( mountPacket, true );
} }
}
void Sapphire::Entity::Player::dismount() void Sapphire::Entity::Player::dismount()
{
if( m_mount > 0 )
{ {
sendToInRangeSet( makeActorControl( getId(), ActorControlType::SetStatus, sendToInRangeSet( makeActorControl( getId(), ActorControlType::SetStatus,
static_cast< uint8_t >( Common::ActorStatus::Idle ) ), true ); static_cast< uint8_t >( Common::ActorStatus::Idle ) ), true );
sendToInRangeSet( makeActorControlSelf( getId(), ActorControlType::Dismount, 1 ), true ); sendToInRangeSet( makeActorControl( getId(), ActorControlType::Dismount, 1 ), true );
sendToInRangeSet( makeActorControlSelf( getId(), 0x393, 1 ), true );
sendToInRangeSet( makeActorControlSelf( getId(), 0x107, 0 ), true );
m_mount = 0; m_mount = 0;
} }
}
void Sapphire::Entity::Player::spawnCompanion( uint16_t id ) void Sapphire::Entity::Player::spawnCompanion( uint16_t id )
{ {