1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-27 06:47:45 +00:00

Merge pull request #714 from collett8192/5.58_pr

Update to 5.58.
This commit is contained in:
Adam 2021-07-28 18:59:37 +10:00 committed by GitHub
commit 37fabec6f5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 2231 additions and 1498 deletions

View file

@ -6,6 +6,7 @@
#include "CommonGen.h"
#include "Vector3.h"
#include "Network/PacketDef/Ipcs.h"
// +---------------------------------------------------------------------------
// The following enumerations are structures to require their type be included.
@ -25,7 +26,7 @@ namespace Sapphire::Common
const uint8_t CURRENT_EXPANSION_ID = 3;
const uint8_t CLASSJOB_TOTAL = 38;
const uint8_t CLASSJOB_SLOTS = 28;
const uint8_t CLASSJOB_SLOTS = 30;
const uint8_t TOWN_COUNT = 6;
@ -51,11 +52,11 @@ namespace Sapphire::Common
enum InventoryOperation : uint16_t
{
Discard = 0x0117,
Move = 0x0118,
Swap = 0x0119,
Split = 0x011A,
Merge = 0x011C,
Discard = Network::Packets::ClientZoneIpcType::InventoryModifyHandler + 7,
Move = Network::Packets::ClientZoneIpcType::InventoryModifyHandler + 8,
Swap = Network::Packets::ClientZoneIpcType::InventoryModifyHandler + 9,
Split = Network::Packets::ClientZoneIpcType::InventoryModifyHandler + 10,
Merge = Network::Packets::ClientZoneIpcType::InventoryModifyHandler + 12
};
enum ClientLanguage : uint8_t

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -43,67 +43,67 @@ namespace Sapphire::Network::Packets
*/
enum ServerZoneIpcType : uint16_t
{
Ping = 0x0183, // updated 5.45 hotfix
Init = 0x01EA, // updated 5.45 hotfix
Ping = 0x02CB, // updated 5.58
Init = 0x02A8, // updated 5.58
ActorFreeSpawn = 0x0185, // updated 5.45 hotfix
InitZone = 0x0233, // updated 5.45 hotfix
ActorFreeSpawn = 0x0210, // updated 5.58
InitZone = 0x0100, // updated 5.58
EffectResult = 0x01D7, // updated 5.45 hotfix
ActorControl = 0x00C2, // updated 5.45 hotfix
ActorControlSelf = 0x03D5, // updated 5.45 hotfix
ActorControlTarget = 0x0171, // updated 5.45 hotfix
EffectResult = 0x0151, // updated 5.58
ActorControl = 0x0264, // updated 5.58
ActorControlSelf = 0x0314, // updated 5.58
ActorControlTarget = 0x00FC, // updated 5.58
/*!
* @brief Used when resting
*/
UpdateHpMpTp = 0x019B, // updated 5.45 hotfix
UpdateHpMpTp = 0x039B, // updated 5.58
///////////////////////////////////////////////////
ChatBanned = 0xF06B,
Playtime = 0x0302, // updated 5.45 hotfix
Logout = 0x012A, // updated 5.45 hotfix
CFNotify = 0x026E, // updated 5.45 hotfix
Playtime = 0x02BE, // updated 5.58
Logout = 0x0297, // updated 5.58
CFNotify = 0x01AC, // updated 5.58
CFMemberStatus = 0x0079,
CFDutyInfo = 0x0145, // updated 5.45 hotfix
CFDutyInfo = 0x0083, // updated 5.58
CFPlayerInNeed = 0xF07F,
CFPreferredRole = 0x012E, // updated 5.45 hotfix
CFCancel = 0x0312, // updated 5.45 hotfix
CFPreferredRole = 0x02FB, // updated 5.58
CFCancel = 0x0135, // updated 5.58
SocialRequestError = 0xF0AD,
CFRegistered = 0x01FB, // updated 5.45 hotfix
SocialRequestResponse = 0x03A5, // updated 5.45 hotfix
SocialMessage = 0x030C, // updated 5.45 hotfix
SocialMessage2 = 0x00BB, // updated 5.45 hotfix
CancelAllianceForming = 0x00C6, // updated 4.2
CFRegistered = 0x037E, // updated 5.58
SocialRequestResponse = 0x0254, // updated 5.58
SocialMessage = 0x02F2, // updated 5.58
SocialMessage2 = 0x017A, // updated 5.58
CancelAllianceForming = 0xF0C6, // updated 4.2
LogMessage = 0x00D0,
LogMessage = 0x020F, // updated 5.58
Chat = 0x01BA, // updated 5.45 hotfix
Chat = 0x0220, // updated 5.58
PartyChat = 0x0065,
WorldVisitList = 0xF0FE, // added 4.5
SocialList = 0x0315, // updated 5.45 hotfix
SocialList = 0x0396, // updated 5.58
ExamineSearchInfo = 0x035F, // updated 5.45 hotfix
UpdateSearchInfo = 0x0310, // updated 5.45 hotfix
InitSearchInfo = 0x01ED, // updated 5.45 hotfix
ExamineSearchComment = 0x0102, // updated 4.1
ExamineSearchInfo = 0x031F, // updated 5.58
UpdateSearchInfo = 0x0219, // updated 5.58
InitSearchInfo = 0x01A0, // updated 5.58
ExamineSearchComment = 0x0315, // updated 5.58
ServerNoticeShort = 0x03B4, // updated 5.45 hotfix
ServerNotice = 0x0354, // updated 5.45 hotfix
SetOnlineStatus = 0x0166, // updated 5.45 hotfix
ServerNoticeShort = 0x0211, // updated 5.58
ServerNotice = 0x03B9, // updated 5.58
SetOnlineStatus = 0x0163, // updated 5.58
CountdownInitiate = 0x0237, // updated 5.25
CountdownCancel = 0x00D9, // updated 5.18
CountdownInitiate = 0x01F9, // updated 5.58
CountdownCancel = 0x0206, // updated 5.58
PlayerAddedToBlacklist = 0x033F, // updated 5.1
PlayerRemovedFromBlacklist = 0x0385, // updated 5.1
BlackList = 0x02BD, // updated 5.45 hotfix
PlayerAddedToBlacklist = 0x01FE, // updated 5.58
PlayerRemovedFromBlacklist = 0x02D6, // updated 5.58
BlackList = 0x028A, // updated 5.58
LinkshellList = 0x021A, // updated 5.45 hotfix
LinkshellList = 0x02DD, // updated 5.58
MailDeleteRequest = 0xF12B, // updated 5.0
@ -114,87 +114,87 @@ namespace Sapphire::Network::Packets
MarketTaxRates = 0x01F8, // updated 5.35 hotfix
MarketBoardSearchResult = 0x01D6, // updated 5.45 hotfix
MarketBoardItemListingCount = 0x00C0, // updated 5.45 hotfix
MarketBoardItemListingHistory = 0x01C3, // updated 5.45 hotfix
MarketBoardItemListing = 0x016B, // updated 5.45 hotfix
MarketBoardSearchResult = 0x0355, // updated 5.58
MarketBoardItemListingCount = 0x0275, // updated 5.58
MarketBoardItemListingHistory = 0x0112, // updated 5.58
MarketBoardItemListing = 0x00F5, // updated 5.58
CharaFreeCompanyTag = 0x013B, // updated 4.5
FreeCompanyBoardMsg = 0x013C, // updated 4.5
FreeCompanyInfo = 0x03D0, // updated 5.45 hotfix
ExamineFreeCompanyInfo = 0xF13E, // updated 4.5
FreeCompanyBoardMsg = 0x028D, // updated 5.58
FreeCompanyInfo = 0x0346, // updated 5.58
ExamineFreeCompanyInfo = 0x00B7, // updated 5.58
FreeCompanyUpdateShortMessage = 0xF157, // added 5.0
StatusEffectList = 0x0243, // updated 5.45 hotfix
StatusEffectList = 0x01C5, // updated 5.58
EurekaStatusEffectList = 0x0167, // updated 5.18
BossStatusEffectList = 0x0312, // added 5.1
Effect = 0x027F, // updated 5.45 hotfix
AoeEffect8 = 0x009B, // updated 5.45 hotfix
AoeEffect16 = 0x028C, // updated 5.45 hotfix
AoeEffect24 = 0x02AD, // updated 5.45 hotfix
AoeEffect32 = 0x00A7, // updated 5.45 hotfix
PersistantEffect = 0x0244, // updated 5.45 hotfix
Effect = 0x0102, // updated 5.58
AoeEffect8 = 0x0345, // updated 5.58
AoeEffect16 = 0x02B6, // updated 5.58
AoeEffect24 = 0x0298, // updated 5.58
AoeEffect32 = 0x03A4, // updated 5.58
PersistantEffect = 0x008D, // updated 5.58
GCAffiliation = 0x0155, // updated 5.45 hotfix
GCAffiliation = 0x02B1, // updated 5.58
PlayerSpawn = 0x01AB, // updated 5.45 hotfix
NpcSpawn = 0x02C9, // updated 5.45 hotfix
PlayerSpawn = 0x0249, // updated 5.58
NpcSpawn = 0x014B, // updated 5.58
NpcSpawn2 = 0x01CB, // ( Bigger statuseffectlist? ) updated 5.3
ActorMove = 0x006B, // updated 5.45 hotfix
ActorMove = 0x023D, // updated 5.58
ActorSetPos = 0x00C6, // updated 5.45 hotfix
ActorSetPos = 0x0280, // updated 5.58
ActorCast = 0x034C, // updated 5.45 hotfix
ActorCast = 0x02A7, // updated 5.58
SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18
PartyList = 0x00F5, // updated 5.45 hotfix
PartyMessage = 0x01BC, // updated 5.45 hotfix
HateRank = 0x0217, // updated 5.45 hotfix
HateList = 0x00E5, // updated 5.45 hotfix
ObjectSpawn = 0x0336, // updated 5.45 hotfix
ObjectDespawn = 0x02D0, // updated 5.45 hotfix
UpdateClassInfo = 0x0179, // updated 5.45 hotfix
PartyList = 0x02BD, // updated 5.58
PartyMessage = 0x0318, // updated 5.58
HateRank = 0x02C0, // updated 5.58
HateList = 0x01B4, // updated 5.58
ObjectSpawn = 0x0104, // updated 5.58
ObjectDespawn = 0x030D, // updated 5.58
UpdateClassInfo = 0x0198, // updated 5.58
SilentSetClassJob = 0xF18E, // updated 5.0 - seems to be the case, not sure if it's actually used for anything
PlayerSetup = 0x01E9, // updated 5.45 hotfix
PlayerStats = 0x01CC, // updated 5.45 hotfix
ActorOwner = 0x0153, // updated 5.45 hotfix
PlayerStateFlags = 0x02DC, // updated 5.45 hotfix
PlayerClassInfo = 0x02F0, // updated 5.45 hotfix
CharaVisualEffect = 0x026A, // updated 5.45 hotfix
PlayerSetup = 0x0296, // updated 5.58
PlayerStats = 0x00D5, // updated 5.58
ActorOwner = 0x00AE, // updated 5.58
PlayerStateFlags = 0x022A, // updated 5.58
PlayerClassInfo = 0x02DF, // updated 5.58
CharaVisualEffect = 0x0134, // updated 5.58
ModelEquip = 0x024A, // updated 5.45 hotfix
Examine = 0x0261, // updated 5.45 hotfix
CharaNameReq = 0x0380, // updated 5.45 hotfix
ModelEquip = 0x0312, // updated 5.58
Examine = 0x00D3, // updated 5.58
CharaNameReq = 0x031C, // updated 5.58
// nb: see #565 on github
UpdateRetainerItemSalePrice = 0xF19F, // updated 5.0
RetainerSaleHistory = 0x020E, // updated 5.21 hotfix
RetainerInformation = 0x026B, // updated 5.45 hotfix
RetainerSaleHistory = 0x01D3, // updated 5.58
RetainerInformation = 0x0069, // updated 5.58
SetLevelSync = 0x1186, // not updated for 4.4, not sure what it is anymore
ItemInfo = 0x0175, // updated 5.45 hotfix
ContainerInfo = 0x0193, // updated 5.45 hotfix
InventoryTransactionFinish = 0x00BD, // updated 5.45 hotfix
InventoryTransaction = 0x02EE, // updated 5.45 hotfix
CurrencyCrystalInfo = 0x0363, // updated 5.45 hotfix
ItemInfo = 0x00A7, // updated 5.58
ContainerInfo = 0x0208, // updated 5.58
InventoryTransactionFinish = 0x01A3, // updated 5.58
InventoryTransaction = 0x03AC, // updated 5.58
CurrencyCrystalInfo = 0x0394, // updated 5.58
InventoryActionAck = 0x02FA, // updated 5.45 hotfix
UpdateInventorySlot = 0x017D, // updated 5.45 hotfix
InventoryActionAck = 0x0305, // updated 5.58
UpdateInventorySlot = 0x0200, // updated 5.58
HuntingLogEntry = 0x0232, // updated 5.45 hotfix
HuntingLogEntry = 0x00C5, // updated 5.58
EventPlay = 0x0276, // updated 5.45 hotfix
EventPlay4 = 0x028D, // updated 5.45 hotfix
EventPlay8 = 0x0318, // updated 5.45 hotfix
EventPlay16 = 0x020D, // updated 5.45 hotfix
EventPlay32 = 0x03B5, // updated 5.45 hotfix
EventPlay64 = 0x039E, // updated 5.45 hotfix
EventPlay128 = 0x02F4, // updated 5.45 hotfix
EventPlay255 = 0x009D, // updated 5.45 hotfix
EventPlay = 0x01EF, // updated 5.58
EventPlay4 = 0x021C, // updated 5.58
EventPlay8 = 0x0337, // updated 5.58
EventPlay16 = 0x0319, // updated 5.58
EventPlay32 = 0x01E2, // updated 5.58
EventPlay64 = 0x02FD, // updated 5.58
EventPlay128 = 0x026E, // updated 5.58
EventPlay255 = 0x039E, // updated 5.58
EventYield = 0x0268, // updated 5.45 hotfix
EventYield = 0x02CB, // updated 5.55 hotfix
//EventYield4 = 0x0000,
//EventYield8 = 0x0000,
//EventYield16 = 0x0000,
@ -203,89 +203,89 @@ namespace Sapphire::Network::Packets
//EventYield128 = 0x0000,
//EventYield255 = 0x0000,
EventStart = 0x02DE, // updated 5.45 hotfix
EventFinish = 0x01A3, // updated 5.45 hotfix
EventStart = 0x01CC, // updated 5.58
EventFinish = 0x0180, // updated 5.58
EventLinkshell = 0x1169,
QuestActiveList = 0x015A, // updated 5.45 hotfix
QuestUpdate = 0x037B, // updated 5.45 hotfix
QuestCompleteList = 0x0287, // updated 5.45 hotfix
QuestActiveList = 0x035D, // updated 5.58
QuestUpdate = 0x029A, // updated 5.58
QuestCompleteList = 0x03C5, // updated 5.58
QuestFinish = 0x0066, // updated 5.45 hotfix
MSQTrackerComplete = 0xF1D6, // updated 5.0
QuestFinish = 0x0274, // updated 5.58
MSQTrackerComplete = 0x01C1, // updated 5.58
MSQTrackerProgress = 0xF1CD, // updated 4.5 ? this actually looks like the two opcodes have been combined, see #474
QuestMessage = 0x017B, // updated 5.45 hotfix
QuestMessage = 0x036E, // updated 5.55 hotfix
QuestTracker = 0x01E8, // updated 5.45 hotfix
QuestTracker = 0x038E, // updated 5.58
Mount = 0x0122, // updated 5.45 hotfix
Mount = 0x03C2, // updated 5.58
DirectorVars = 0x0252, // updated 5.45 hotfix
DirectorVars = 0x01ED, // updated 5.58
SomeDirectorUnk1 = 0x0084, // updated 5.18
SomeDirectorUnk2 = 0xF0C1, // updated 5.18
SomeDirectorUnk4 = 0x0071, // updated 5.45 hotfix
SomeDirectorUnk4 = 0x01BD, // updated 5.58
SomeDirectorUnk8 = 0x028A, // 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
DirectorPopUp4 = 0x0214, // updated 5.18
DirectorPopUp8 = 0x00F8, // updated 5.18
DirectorPopUp = 0x02E3, // updated 5.58
DirectorPopUp4 = 0x01DC, // updated 5.58
DirectorPopUp8 = 0x011D, // updated 5.58
CFAvailableContents = 0xF1FD, // updated 4.2
WeatherChange = 0x0167, // updated 5.45 hotfix
PlayerTitleList = 0x00F3, // updated 5.45 hotfix
Discovery = 0x0247, // updated 5.45 hotfix
WeatherChange = 0x01B1, // updated 5.58
PlayerTitleList = 0x02B4, // updated 5.58
Discovery = 0x00B8, // updated 5.58
EorzeaTimeOffset = 0x00C5, // updated 5.45 hotfix
EorzeaTimeOffset = 0x03D9, // updated 5.58
EquipDisplayFlags = 0x0316, // updated 5.45 hotfix
EquipDisplayFlags = 0x0199, // updated 5.58
MiniCactpotInit = 0x0286, // added 5.31
ShopMessage = 0x02FC, // updated 5.45 hotfix
LootMessage = 0x03B8, // updated 5.45 hotfix
ResultDialog = 0x0296, // updated 5.45 hotfix
DesynthResult = 0x0323, // updated 5.45 hotfix
ShopMessage = 0x0162, // updated 5.55 hotfix
LootMessage = 0x038C, // updated 5.58
ResultDialog = 0x00DF, // updated 5.58
DesynthResult = 0x038F, // updated 5.58
/// Housing //////////////////////////////////////
LandSetInitialize = 0x03E2, // updated 5.45 hotfix
LandUpdate = 0x027E, // updated 5.45 hotfix
YardObjectSpawn = 0x010E, // updated 5.45 hotfix
HousingIndoorInitialize = 0x01A9, // updated 5.45 hotfix
LandPriceUpdate = 0x0379, // updated 5.45 hotfix
LandInfoSign = 0x0398, // updated 5.45 hotfix
LandRename = 0x00F6, // updated 5.45 hotfix
HousingEstateGreeting = 0x037D, // updated 5.45 hotfix
HousingUpdateLandFlagsSlot = 0x03AF, // updated 5.45 hotfix
HousingLandFlags = 0x033B, // updated 5.45 hotfix
HousingShowEstateGuestAccess = 0x01B3, // updated 5.45 hotfix
LandSetInitialize = 0x03E3, // updated 5.58
LandUpdate = 0x029E, // updated 5.58
YardObjectSpawn = 0x0367, // updated 5.58
HousingIndoorInitialize = 0x02A6, // updated 5.58
LandPriceUpdate = 0x0143, // updated 5.58
LandInfoSign = 0x0269, // updated 5.58
LandRename = 0x0107, // updated 5.58
HousingEstateGreeting = 0x0340, // updated 5.58
HousingUpdateLandFlagsSlot = 0x02D2, // updated 5.58
HousingLandFlags = 0x0156, // updated 5.58
HousingShowEstateGuestAccess = 0x015C, // updated 5.58
HousingObjectInitialize = 0x00B5, // updated 5.45 hotfix
HousingInternalObjectSpawn = 0x00BC, // updated 5.45 hotfix
HousingObjectInitialize = 0x0245, // updated 5.58
HousingInternalObjectSpawn = 0x0194, // updated 5.58
HousingWardInfo = 0x015E, // updated 5.45 hotfix
HousingObjectMove = 0x03E6, // updated 5.45 hotfix
HousingWardInfo = 0x00A4, // updated 5.58
HousingObjectMove = 0x01AE, // updated 5.58
SharedEstateSettingsResponse = 0x03A4, // updated 5.45 hotfix
SharedEstateSettingsResponse = 0x0378, // updated 5.58
LandUpdateHouseName = 0x0215, // updated 5.45 hotfix
LandUpdateHouseName = 0x034B, // updated 5.58
LandSetMap = 0x0103, // updated 5.45 hotfix
LandSetMap = 0x02F6, // updated 5.58
//////////////////////////////////////////////////
DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui
PerformNote = 0x0248, // updated 5.45 hotfix
PerformNote = 0x00BE, // updated 5.58
PrepareZoning = 0x01EE, // updated 5.45 hotfix
ActorGauge = 0x018E, // updated 5.45 hotfix
DutyGauge = 0x00D2, // updated 5.45 hotfix
PrepareZoning = 0x0171, // updated 5.58
ActorGauge = 0x0335, // updated 5.58
DutyGauge = 0x02F6, // updated 5.58
// daily quest info -> without them sent, login will take longer...
DailyQuests = 0x02C4, // updated 5.45 hotfix
DailyQuestRepeatFlags = 0x024D, // updated 5.45 hotfix
DailyQuests = 0x0331, // updated 5.58
DailyQuestRepeatFlags = 0x01D1, // updated 5.58
/// Doman Mahjong //////////////////////////////////////
MahjongOpenGui = 0x02A4, // only available in mahjong instance
@ -294,20 +294,20 @@ namespace Sapphire::Network::Packets
MahjongEndRoundTsumo = 0x02BF, // called tsumo
MahjongEndRoundRon = 0x2C0, // called ron or double ron (waiting for action must be flagged from discard packet to call)
MahjongTileDiscard = 0x02C1, // giri (discarding a tile.) chi(1)/pon(2)/kan(4)/ron(8) flags etc..
MahjongPlayersInfo = 0x02C2, // actor id, name, rating and stuff..
MahjongPlayersInfo = 0xF2C2, // actor id, name, rating and stuff..
// 2C3 and 2C4 are currently unknown
MahjongEndRoundDraw = 0x02C5, // self explanatory
MahjongEndGame = 0x02C6, // finished oorasu(all-last) round; shows a result screen.
/// Airship & Submarine //////////////////////////////////////
AirshipExplorationResult = 0x0131, // updated 5.45 hotfix
AirshipStatus = 0x0253, // updated 5.45 hotfix
AirshipStatusList = 0x0391, // updated 5.45 hotfix
AirshipTimers = 0x0206, // updated 5.45 hotfix
SubmarineExplorationResult = 0x00EB, // updated 5.45 hotfix
SubmarineProgressionStatus = 0x0333, // updated 5.45 hotfix
SubmarineStatusList = 0x01F2, // updated 5.45 hotfix
SubmarineTimers = 0x013B, // updated 5.45 hotfix
AirshipExplorationResult = 0x036C, // updated 5.58
AirshipStatus = 0x021F, // updated 5.58
AirshipStatusList = 0x0073, // updated 5.58
AirshipTimers = 0x0250, // updated 5.58
SubmarineExplorationResult = 0x01D0, // updated 5.58
SubmarineProgressionStatus = 0x0377, // updated 5.58
SubmarineStatusList = 0x0338, // updated 5.58
SubmarineTimers = 0x0292, // updated 5.58
};
/**
@ -315,110 +315,109 @@ namespace Sapphire::Network::Packets
*/
enum ClientZoneIpcType : uint16_t
{
PingHandler = 0x0183, // updated 5.45 hotfix
InitHandler = 0x01EA, // updated 5.45 hotfix
PingHandler = 0x03A3, // updated 5.58
InitHandler = 0x03B3, // updated 5.58
FinishLoadingHandler = 0x023F, // updated 5.45 hotfix
FinishLoadingHandler = 0x0217, // updated 5.58
CFCommenceHandler = 0x0118, // updated 5.35 hotfix
CFCommenceHandler = 0xF118, // updated 5.35 hotfix
CFCancelHandler = 0x0332, // updated 5.35 hotfix
CFRegisterDuty = 0x033C, // updated 5.45 hotfix
CFRegisterRoulette = 0x0121, // updated 5.45 hotfix
PlayTimeHandler = 0x0096, // updated 5.45 hotfix
LogoutHandler = 0x0312, // updated 5.45 hotfix
CancelLogout = 0x0307, // updated 5.45 hotfix
CFCancelHandler = 0x00A9, // updated 5.58
CFRegisterDuty = 0x036A, // updated 5.58
CFRegisterRoulette = 0x038C, // updated 5.58
PlayTimeHandler = 0x01A8, // updated 5.58
LogoutHandler = 0x02A5, // updated 5.58
CancelLogout = 0x03CC, // updated 5.58
CFDutyInfoHandler = 0xF078, // updated 4.2
CFDutyInfoHandler = 0x0078, // updated 4.2
SocialReqSendHandler = 0x0366, // updated 5.58
SocialResponseHandler = 0x0311, // updated 5.58
CreateCrossWorldLS = 0x0125, // updated 5.58
SocialReqSendHandler = 0x0288, // updated 5.45 hotfix
SocialResponseHandler = 0x029B, // updated 5.45 hotfix
CreateCrossWorldLS = 0x00AF, // updated 4.3
ChatHandler = 0x00A4, // updated 5.45 hotfix
ChatHandler = 0x02F4, // updated 5.58
PartyChatHandler = 0x0065,
PartySetLeaderHandler = 0x02EF, // updated 5.45 hotfix
LeavePartyHandler = 0x017E, // updated 5.45 hotfix
KickPartyMemberHandler = 0x0070, // updated 5.45 hotfix
DisbandPartyHandler = 0x037A, // updated 5.45 hotfix
PartySetLeaderHandler = 0x03C2, // updated 5.58
LeavePartyHandler = 0x028A, // updated 5.58
KickPartyMemberHandler = 0x01D1, // updated 5.58
DisbandPartyHandler = 0x032B, // updated 5.58
SocialListHandler = 0x02B0, // updated 5.45 hotfix
SetSearchInfoHandler = 0x0111, // updated 5.45 hotfix
ReqSearchInfoHandler = 0x03AC, // updated 5.45 hotfix
SocialListHandler = 0x006E, // updated 5.58
SetSearchInfoHandler = 0x010A, // updated 5.58
ReqSearchInfoHandler = 0x0255, // updated 5.58
ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0
ReqRemovePlayerFromBlacklist = 0x00F1, // updated 5.0
BlackListHandler = 0x02CD, // updated 5.45 hotfix
PlayerSearchHandler = 0x00F4, // updated 5.0
ReqRemovePlayerFromBlacklist = 0x015A, // updated 5.58
BlackListHandler = 0x02C5, // updated 5.58
PlayerSearchHandler = 0x0259, // updated 5.58
LinkshellListHandler = 0x0258, // updated 5.45 hotfix
LinkshellListHandler = 0x01F0, // updated 5.58
MarketBoardRequestItemListingInfo = 0x0102, // updated 4.5
MarketBoardRequestItemListings = 0x0103, // updated 4.5
MarketBoardSearch = 0x0107, // updated 4.5
MarketBoardRequestItemListingInfo = 0x02D3, // updated 5.58
MarketBoardRequestItemListings = 0x00AD, // updated 5.58
MarketBoardSearch = 0x00D6, // updated 5.58
ReqExamineFcInfo = 0x0113, // updated 4.1
ReqExamineFcInfo = 0x0359, // updated 5.58
FcInfoReqHandler = 0x011A, // updated 4.2
FcInfoReqHandler = 0x0078, // updated 5.58
FreeCompanyUpdateShortMessageHandler = 0x0123, // added 5.0
ReqMarketWishList = 0x012C, // updated 4.3
ReqMarketWishList = 0x0364, // updated 5.58
ReqJoinNoviceNetwork = 0x0129, // updated 4.2
ReqCountdownInitiate = 0x025F, // updated 5.35 hotfix
ReqCountdownCancel = 0x0244, // updated 5.25
ReqCountdownInitiate = 0x020E, // updated 5.58
ReqCountdownCancel = 0x03BE, // updated 5.58
ZoneLineHandler = 0x00BA, // updated 5.45 hotfix
ClientTrigger = 0x0146, // updated 5.45 hotfix
DiscoveryHandler = 0x00E3, // updated 5.35 hotfix
ZoneLineHandler = 0x00B0, // updated 5.58
ClientTrigger = 0x008B, // updated 5.58
DiscoveryHandler = 0x01B4, // updated 5.58
PlaceFieldMarkerPreset = 0x01D3, // updated 5.45 hotfix
PlaceFieldMarker = 0x0392, // updated 5.45 hotfix
SkillHandler = 0x0388, // updated 5.45 hotfix
GMCommand1 = 0x01E0, // updated 5.45 hotfix
GMCommand2 = 0x0114, // updated 5.45 hotfix
AoESkillHandler = 0x03A0, // updated 5.45 hotfix
PlaceFieldMarkerPreset = 0x03B0, // updated 5.58
PlaceFieldMarker = 0x011A, // updated 5.58
SkillHandler = 0x0175, // updated 5.58
GMCommand1 = 0x0353, // updated 5.58
GMCommand2 = 0x03E7, // updated 5.58
AoESkillHandler = 0x021D, // updated 5.58
UpdatePositionHandler = 0x031A, // updated 5.45 hotfix
UpdatePositionHandler = 0x0212, // updated 5.58
InventoryModifyHandler = 0x0110, // updated 5.45 hotfix
InventoryModifyHandler = 0x014A, // updated 5.58
InventoryEquipRecommendedItems = 0x0186, // updated 5.45 hotfix
InventoryEquipRecommendedItems = 0x01D7, // updated 5.58
ReqPlaceHousingItem = 0x0360, // updated 5.45 hotfix
BuildPresetHandler = 0x01D7, // updated 5.45 hotfix
ReqPlaceHousingItem = 0x0354, // updated 5.58
BuildPresetHandler = 0x00DC, // updated 5.58
TalkEventHandler = 0x00C2, // updated 5.45 hotfix
EmoteEventHandler = 0x03D5, // updated 5.45 hotfix
WithinRangeEventHandler = 0x0171, // updated 5.45 hotfix
OutOfRangeEventHandler = 0x019B, // updated 5.45 hotfix
EnterTeriEventHandler = 0x027F, // updated 5.45 hotfix
ShopEventHandler = 0x03D4, // updated 5.45 hotfix
EventYieldHandler = 0x0230, // updated 5.45 hotfix
ReturnEventHandler = 0x02AD, // updated 5.45 hotfix
TradeReturnEventHandler = 0x00A7, // updated 5.45 hotfix
TradeMultipleReturnEventHander = 0x035C, // updated 5.35 hotfix
TalkEventHandler = 0x012D, // updated 5.58
EmoteEventHandler = 0xF35A, // updated 5.55 hotfix
WithinRangeEventHandler = 0x022C, // updated 5.58
OutOfRangeEventHandler = 0x0294, // updated 5.58
EnterTeriEventHandler = 0x00C1, // updated 5.58
ShopEventHandler = 0x02B8, // updated 5.58
EventYieldHandler = 0x02A0, // updated 5.55 hotfix
ReturnEventHandler = 0x0333, // updated 5.58
TradeReturnEventHandler = 0x0179, // updated 5.58
TradeReturnEventHandler2 = 0x0169, // updated 5.55 hotfix
LinkshellEventHandler = 0x016B, // updated 4.5
LinkshellEventHandler1 = 0x016C, // updated 4.5
ReqEquipDisplayFlagsChange = 0x03B0, // updated 5.45 hotfix
ReqEquipDisplayFlagsChange = 0x01AD, // updated 5.58
LandRenameHandler = 0x0187, // updated 5.45 hotfix
HousingUpdateHouseGreeting = 0x0367, // updated 5.45 hotfix
HousingUpdateObjectPosition = 0x0265, // updated 5.45 hotfix
HousingEditExterior = 0x0297, // updated 5.45 hotfix
LandRenameHandler = 0x0083, // updated 5.58
HousingUpdateHouseGreeting = 0x031A, // updated 5.58
HousingUpdateObjectPosition = 0x010E, // updated 5.58
HousingEditAppearance = 0x00D7, // updated 5.55 hotfix
SetSharedEstateSettings = 0x0146, // updated 5.45 hotfix
SetSharedEstateSettings = 0x0342, // updated 5.58
UpdatePositionInstance = 0x034E, // updated 5.45 hotfix
UpdatePositionInstance = 0x01A3, // updated 5.58
PerformNoteHandler = 0x0336, // updated 5.45 hotfix
PerformNoteHandler = 0x015E, // updated 5.58
WorldInteractionHandler = 0x02E4, // updated 5.45 hotfix
Dive = 0x00F1, // updated 5.45 hotfix
WorldInteractionHandler = 0x03CE, // updated 5.58
Dive = 0x034C, // updated 5.58
};
////////////////////////////////////////////////////////////////////////////////

View file

@ -427,7 +427,7 @@ struct FFXIVIpcDive :
};
struct FFXIVIpcHousingEditExterior :
FFXIVIpcBasePacket< HousingEditExterior >
FFXIVIpcBasePacket< HousingEditAppearance >
{
uint16_t landId;
uint8_t unknown[6];

View file

@ -680,6 +680,7 @@ namespace Sapphire::Network::Packets::Server
uint16_t unk; // == 0
uint16_t modelChara;
uint16_t rotation;
uint16_t currentMount;
uint16_t activeMinion;
uint8_t spawnIndex;
uint8_t state;
@ -693,24 +694,20 @@ namespace Sapphire::Network::Packets::Server
uint8_t classJob;
uint8_t u26d;
uint16_t u27a;
uint8_t currentMount;
uint8_t mountHead;
uint8_t mountBody;
uint8_t mountFeet;
uint8_t mountColor;
uint8_t scale;
//uint32_t elementalLevel; one of these two field changed to 16bit
//uint32_t element;
uint8_t elementData[6];
uint8_t unknown5_5[3];
Common::StatusEffect effect[30];
Common::FFXIVARR_POSITION3 pos;
uint32_t models[10];
char name[32];
uint8_t look[26];
char fcTag[6];
uint32_t unk30;
uint32_t unk30[2];
};
/**
@ -753,9 +750,10 @@ namespace Sapphire::Network::Packets::Server
uint32_t displayFlags;
uint16_t fateID;
uint16_t mPCurr;
uint16_t unknown1; // 0
uint16_t unknown2; // 0 or pretty big numbers > 30000
uint16_t unknown1;
uint16_t unknown2;
uint16_t modelChara;
uint16_t currentMount;
uint16_t rotation;
uint16_t activeMinion;
uint8_t spawnIndex;
@ -770,14 +768,13 @@ namespace Sapphire::Network::Packets::Server
uint8_t classJob;
uint8_t u26d;
uint16_t u27a;
uint8_t currentMount;
uint8_t mountHead;
uint8_t mountBody;
uint8_t mountFeet;
uint8_t mountColor;
uint8_t scale;
uint16_t elementalLevel; // Eureka
uint16_t element; // Eureka
uint8_t elemental[6];
uint8_t unknown5_5[3];
Common::StatusEffect effect[30];
Common::FFXIVARR_POSITION3 pos;
uint32_t models[10];
@ -789,7 +786,7 @@ namespace Sapphire::Network::Packets::Server
uint8_t bNPCPartSlot;
uint8_t unk32;
uint16_t unk33;
uint32_t unk34;
uint32_t unk34[2];
};
/**
@ -1041,12 +1038,12 @@ namespace Sapphire::Network::Packets::Server
unsigned char mountGuideMask[22];
unsigned char u19_2;
*/
unsigned char unknown5_3a[176];
unsigned char unknown5_55a[178];
unsigned char companionName[21];
unsigned char companionDefRank;
unsigned char companionAttRank;
unsigned char companionHealRank;
unsigned char mountGuideMask[27];
unsigned char mountGuideMask[29];
//==
char name[32];
unsigned char unknownOword[16];
@ -1055,11 +1052,10 @@ namespace Sapphire::Network::Packets::Server
unsigned char aetheryte[21];
unsigned char discovery[445];
unsigned char howto[34];
unsigned char minions[53];
unsigned char minions[55];
unsigned char chocoboTaxiMask[10];
unsigned char watchedCutscenes[135];
unsigned char companionBardingMask[10];
unsigned char unknown5_45a; // companionBardingMask[11]?
unsigned char watchedCutscenes[137];
unsigned char companionBardingMask[11];
unsigned char companionEquippedHead;
unsigned char companionEquippedBody;
unsigned char companionEquippedLegs;
@ -1092,12 +1088,12 @@ namespace Sapphire::Network::Packets::Server
unsigned char aetherCurrentMask[22];
unsigned char u10[3];
*/
unsigned char unknown5_45c[294];
unsigned char unknown5_55b[295];
//==
unsigned char orchestrionMask[40]; // this field may already be extended, if it is, the beginning bytes are at the end of unknown5_45c
unsigned char orchestrionMask[40]; // this field may already be extended, if it is, the beginning bytes are at the end of unknown5_55b
unsigned char hallOfNoviceCompletion[3];
unsigned char animaCompletion[11];
unsigned char unknown5_3e[33];
unsigned char unknown5_55c[35];
unsigned char unlockedRaids[28];
unsigned char unlockedDungeons[18];
unsigned char unlockedGuildhests[10];
@ -1117,7 +1113,7 @@ namespace Sapphire::Network::Packets::Server
unsigned int exploratoryMissionNextTimestamp;
unsigned char pvpLevel;
*/
unsigned char unknown5_45d[8];
unsigned char unknown5_55d[9];
//==
};

View file

@ -132,7 +132,7 @@ private:
{
if( result.param2 == 1 )
{
if( player.giveQuestRewards( getId(), 0 ) )
if( player.giveQuestRewards( getId(), result.param3 ) )
{
player.setQuestUI8BH( getId(), 0 );
player.finishQuest( getId() );

View file

@ -1591,7 +1591,7 @@ uint16_t Sapphire::Entity::Player::getCurrentCompanion() const
return m_companionId;
}
uint8_t Sapphire::Entity::Player::getCurrentMount() const
uint16_t Sapphire::Entity::Player::getCurrentMount() const
{
return m_mount;
}

View file

@ -584,7 +584,7 @@ namespace Sapphire::Entity
uint16_t getCurrentCompanion() const;
/*! get the current mount */
uint8_t getCurrentMount() const;
uint16_t getCurrentMount() const;
/*! set current persistent emote */
void setPersistentEmote( uint32_t emoteId );
@ -1067,8 +1067,8 @@ namespace Sapphire::Entity
uint16_t m_activeTitle;
uint8_t m_titleList[48];
uint8_t m_howTo[34];
uint8_t m_minions[40];
uint8_t m_mountGuide[27];
uint8_t m_minions[55];
uint8_t m_mountGuide[29];
uint8_t m_homePoint;
uint8_t m_startTown;
uint16_t m_townWarpFstFlags;
@ -1076,8 +1076,8 @@ namespace Sapphire::Entity
uint8_t m_discovery[445];
uint32_t m_playTime;
uint16_t m_classArray[28];
uint32_t m_expArray[28];
uint16_t m_classArray[ Common::CLASSJOB_SLOTS ];
uint32_t m_expArray[ Common::CLASSJOB_SLOTS ];
uint8_t m_aetheryte[21];
uint8_t m_unlocks[64];
uint8_t m_orchestrion[40];

View file

@ -186,6 +186,9 @@ bool Sapphire::Entity::Player::load( uint32_t charId, World::SessionPtr pSession
auto titleList = res->getBlobVector( "TitleList" );
memcpy( reinterpret_cast< char* >( m_titleList ), titleList.data(), titleList.size() );
auto minions = res->getBlobVector( "Minions" );
memcpy( reinterpret_cast< char* >( m_minions ), minions.data(), minions.size() );
auto mountGuide = res->getBlobVector( "Mounts" );
memcpy( reinterpret_cast< char* >( m_mountGuide ), mountGuide.data(), mountGuide.size() );

View file

@ -226,22 +226,14 @@ void Sapphire::World::Manager::DebugCommandMgr::set( char* data, Entity::Player&
if( player.getLevelForClass( static_cast< Common::ClassJob > ( id ) ) == 0 )
{
player.setLevelForClass( 1, static_cast< Common::ClassJob > ( id ) );
player.setClassJob( static_cast< Common::ClassJob > ( id ) );
player.sendModel();
player.sendItemLevel();
player.calculateStats();
player.sendStats();
player.sendStatusEffectUpdate();
player.sendStatusUpdate();
}
else
player.setClassJob( static_cast< Common::ClassJob > ( id ) );
player.sendModel();
player.sendItemLevel();
player.calculateStats();
player.sendStats();
player.sendStatusEffectUpdate();
player.sendStatusUpdate();
player.setClassJob( static_cast< Common::ClassJob > ( id ) );
player.sendModel();
player.sendItemLevel();
player.calculateStats();
player.sendStats();
player.sendStatusEffectUpdate();
player.sendStatusUpdate();
}
else if( subCommand == "cfpenalty" )
{

View file

@ -90,7 +90,7 @@ Sapphire::Network::GameConnection::GameConnection( Sapphire::Network::HivePtr pH
setZoneHandler( ClientZoneIpcType::ReqPlaceHousingItem, "ReqPlaceHousingItem", &GameConnection::reqPlaceHousingItem );
setZoneHandler( ClientZoneIpcType::HousingUpdateObjectPosition, "HousingUpdateObjectPosition",
&GameConnection::reqMoveHousingItem );
setZoneHandler( ClientZoneIpcType::HousingEditExterior, "HousingEditExterior", &GameConnection::housingEditExterior );
setZoneHandler( ClientZoneIpcType::HousingEditAppearance, "HousingEditAppearance", &GameConnection::housingEditExterior );
setZoneHandler( ClientZoneIpcType::TalkEventHandler, "EventHandlerTalk", &GameConnection::eventHandlerTalk );
setZoneHandler( ClientZoneIpcType::EmoteEventHandler, "EventHandlerEmote", &GameConnection::eventHandlerEmote );
@ -101,10 +101,10 @@ Sapphire::Network::GameConnection::GameConnection( Sapphire::Network::HivePtr pH
setZoneHandler( ClientZoneIpcType::EnterTeriEventHandler, "EventHandlerEnterTeri",
&GameConnection::eventHandlerEnterTerritory );
setZoneHandler( ClientZoneIpcType::ReturnEventHandler, "EventHandlerReturn", &GameConnection::eventHandlerReturn );
setZoneHandler( ClientZoneIpcType::TradeReturnEventHandler, "EventHandlerReturn",
setZoneHandler( ClientZoneIpcType::ReturnEventHandler, "ReturnEventHandler", &GameConnection::eventHandlerReturn );
setZoneHandler( ClientZoneIpcType::TradeReturnEventHandler, "TradeReturnEventHandler",
&GameConnection::eventHandlerReturn );
setZoneHandler( ClientZoneIpcType::TradeMultipleReturnEventHander, "EventHandlerReturn", &GameConnection::eventHandlerReturn );
setZoneHandler( ClientZoneIpcType::TradeReturnEventHandler2, "TradeReturnEventHandler2", &GameConnection::eventHandlerReturn );
setZoneHandler( ClientZoneIpcType::ShopEventHandler, "ShopEventHandler",
&GameConnection::eventHandlerShop );

View file

@ -53,7 +53,7 @@ namespace Sapphire::Network::Packets::Server
memcpy( m_data.aetheryte, player.getAetheryteArray(), sizeof( m_data.aetheryte ) );
// Set the class levels and exp.
for( uint8_t i = 0; i < 25; i++ )
for( uint8_t i = 0; i < Common::CLASSJOB_SLOTS; i++ )
{
m_data.levels[ i ] = player.getClassArray()[ i ];
m_data.exp[ i ] = player.getExpArray()[ i ];