1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-26 14:37:44 +00:00

update to 5.55 hotfix

Co-authored-by: Jeido Uran <tourais.q@gmail.com>
This commit is contained in:
collett 2021-07-27 07:33:55 +09:00
parent 8b7fbc82f6
commit 301bd61180
14 changed files with 1269 additions and 756 deletions

View file

@ -25,7 +25,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 +51,11 @@ namespace Sapphire::Common
enum InventoryOperation : uint16_t
{
Discard = 0x0117,
Move = 0x0118,
Swap = 0x0119,
Split = 0x011A,
Merge = 0x011C,
Discard = 0x01DE,
Move = 0x01DF,
Swap = 0x01E0,
Split = 0x01E1,
Merge = 0x01E3,
};
enum ClientLanguage : uint8_t

View file

@ -204,6 +204,7 @@ enum class ContentType : uint8_t
WondrousTails = 24,
CustomDeliveries = 25,
Eureka = 26,
UltimateRaids = 28,
};
///////////////////////////////////////////////////////////
@ -672,14 +673,14 @@ enum class Weather : uint8_t
Moonlight1 = 98,
Moonlight2 = 99,
Moonlight3 = 100,
FairSkies10 = 101,
RedMoon = 101,
Scarlet = 102,
Scarlet1 = 103,
Scarlet2 = 104,
FairSkies11 = 105,
FairSkies12 = 106,
FairSkies13 = 107,
FairSkies14 = 108,
FairSkies10 = 105,
FairSkies11 = 106,
FairSkies12 = 107,
FairSkies13 = 108,
Flames = 109,
Tsunamis = 110,
Cyclones = 111,
@ -701,7 +702,23 @@ enum class Weather : uint8_t
Termination2 = 127,
Termination3 = 128,
EverlastingLight1 = 129,
Eruptions1 = 130,
Termination4 = 131,
FairSkies14 = 132,
UmbralFlare = 133,
UmbralDuststorm = 134,
UmbralLevin = 135,
UmbralTempest = 136,
Starshower = 137,
Delirium = 138,
Clouds2 = 139,
Clouds3 = 140,
Irradiance1 = 141,
Irradiance2 = 142,
StormClouds1 = 143,
Firestorm = 144,
SpectralCurrent = 145,
Climactic = 147,
};
///////////////////////////////////////////////////////////
@ -728,6 +745,10 @@ enum class HousingAppeal : uint8_t
Bathhouse = 18,
Garden = 19,
FarEastern = 20,
VisitorsWelcome = 21,
Bakery = 22,
UnderRenovation = 23,
ConcertHall = 24,
};
}

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 = 0x0289, // updated 5.55 hotfix
Init = 0x0203, // updated 5.55 hotfix
ActorFreeSpawn = 0x0185, // updated 5.45 hotfix
InitZone = 0x0233, // updated 5.45 hotfix
ActorFreeSpawn = 0x01C5, // updated 5.55 hotfix
InitZone = 0x021C, // updated 5.55 hotfix
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 = 0x01E9, // updated 5.55 hotfix
ActorControl = 0x01C8, // updated 5.55 hotfix
ActorControlSelf = 0x035A, // updated 5.55 hotfix
ActorControlTarget = 0x0338, // updated 5.55 hotfix
/*!
* @brief Used when resting
*/
UpdateHpMpTp = 0x019B, // updated 5.45 hotfix
UpdateHpMpTp = 0x0077, // updated 5.55 hotfix
///////////////////////////////////////////////////
ChatBanned = 0xF06B,
Playtime = 0x0302, // updated 5.45 hotfix
Logout = 0x012A, // updated 5.45 hotfix
CFNotify = 0x026E, // updated 5.45 hotfix
Playtime = 0x0348, // updated 5.55 hotfix
Logout = 0x0292, // updated 5.55 hotfix
CFNotify = 0x00DC, // updated 5.55 hotfix
CFMemberStatus = 0x0079,
CFDutyInfo = 0x0145, // updated 5.45 hotfix
CFDutyInfo = 0x02A3, // updated 5.55 hotfix
CFPlayerInNeed = 0xF07F,
CFPreferredRole = 0x012E, // updated 5.45 hotfix
CFCancel = 0x0312, // updated 5.45 hotfix
CFPreferredRole = 0x02B6, // updated 5.55 hotfix
CFCancel = 0x0262, // updated 5.55 hotfix
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
CFRegistered = 0x0114, // updated 5.55 hotfix
SocialRequestResponse = 0x033C, // updated 5.55 hotfix
SocialMessage = 0x0304, // updated 5.55 hotfix
SocialMessage2 = 0x01B4, // updated 5.55 hotfix
CancelAllianceForming = 0x00C6, // updated 4.2
LogMessage = 0x00D0,
Chat = 0x01BA, // updated 5.45 hotfix
Chat = 0x0384, // updated 5.55 hotfix
PartyChat = 0x0065,
WorldVisitList = 0xF0FE, // added 4.5
SocialList = 0x0315, // updated 5.45 hotfix
SocialList = 0x00DD, // updated 5.55 hotfix
ExamineSearchInfo = 0x035F, // updated 5.45 hotfix
UpdateSearchInfo = 0x0310, // updated 5.45 hotfix
InitSearchInfo = 0x01ED, // updated 5.45 hotfix
ExamineSearchInfo = 0x022A, // updated 5.55 hotfix
UpdateSearchInfo = 0x03DF, // updated 5.55 hotfix
InitSearchInfo = 0x00F8, // updated 5.55 hotfix
ExamineSearchComment = 0x0102, // updated 4.1
ServerNoticeShort = 0x03B4, // updated 5.45 hotfix
ServerNotice = 0x0354, // updated 5.45 hotfix
SetOnlineStatus = 0x0166, // updated 5.45 hotfix
ServerNoticeShort = 0x032D, // updated 5.55 hotfix
ServerNotice = 0x02CA, // updated 5.55 hotfix
SetOnlineStatus = 0x03A9, // updated 5.55 hotfix
CountdownInitiate = 0x0237, // updated 5.25
CountdownCancel = 0x00D9, // updated 5.18
PlayerAddedToBlacklist = 0x033F, // updated 5.1
PlayerRemovedFromBlacklist = 0x0385, // updated 5.1
BlackList = 0x02BD, // updated 5.45 hotfix
BlackList = 0x0093, // updated 5.55 hotfix
LinkshellList = 0x021A, // updated 5.45 hotfix
LinkshellList = 0x0160, // updated 5.55 hotfix
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 = 0x039D, // updated 5.55 hotfix
MarketBoardItemListingCount = 0x0277, // updated 5.55 hotfix
MarketBoardItemListingHistory = 0x0320, // updated 5.55 hotfix
MarketBoardItemListing = 0x026B, // updated 5.55 hotfix
CharaFreeCompanyTag = 0x013B, // updated 4.5
FreeCompanyBoardMsg = 0x013C, // updated 4.5
FreeCompanyInfo = 0x03D0, // updated 5.45 hotfix
FreeCompanyInfo = 0x0332, // updated 5.55 hotfix
ExamineFreeCompanyInfo = 0xF13E, // updated 4.5
FreeCompanyUpdateShortMessage = 0xF157, // added 5.0
StatusEffectList = 0x0243, // updated 5.45 hotfix
StatusEffectList = 0x018A, // updated 5.55 hotfix
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 = 0x0283, // updated 5.55 hotfix
AoeEffect8 = 0x025B, // updated 5.55 hotfix
AoeEffect16 = 0x015D, // updated 5.55 hotfix
AoeEffect24 = 0x0091, // updated 5.55 hotfix
AoeEffect32 = 0x0169, // updated 5.55 hotfix
PersistantEffect = 0x035E, // updated 5.55 hotfix
GCAffiliation = 0x0155, // updated 5.45 hotfix
GCAffiliation = 0x0258, // updated 5.55 hotfix
PlayerSpawn = 0x01AB, // updated 5.45 hotfix
NpcSpawn = 0x02C9, // updated 5.45 hotfix
PlayerSpawn = 0x02C1, // updated 5.55 hotfix
NpcSpawn = 0x00F1, // updated 5.55 hotfix
NpcSpawn2 = 0x01CB, // ( Bigger statuseffectlist? ) updated 5.3
ActorMove = 0x006B, // updated 5.45 hotfix
ActorMove = 0x009D, // updated 5.55 hotfix
ActorSetPos = 0x00C6, // updated 5.45 hotfix
ActorSetPos = 0x0266, // updated 5.55 hotfix
ActorCast = 0x034C, // updated 5.45 hotfix
ActorCast = 0x00A9, // updated 5.55 hotfix
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 = 0x01B7, // updated 5.55 hotfix
PartyMessage = 0x01C1, // updated 5.55 hotfix
HateRank = 0x006E, // updated 5.55 hotfix
HateList = 0x01F1, // updated 5.55 hotfix
ObjectSpawn = 0x00FE, // updated 5.55 hotfix
ObjectDespawn = 0x0201, // updated 5.55 hotfix
UpdateClassInfo = 0x0065, // updated 5.55 hotfix
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 = 0x01E7, // updated 5.55 hotfix
PlayerStats = 0x012E, // updated 5.55 hotfix
ActorOwner = 0x00EB, // updated 5.55 hotfix
PlayerStateFlags = 0x0190, // updated 5.55 hotfix
PlayerClassInfo = 0x022B, // updated 5.55 hotfix
CharaVisualEffect = 0x033A, // updated 5.55 hotfix
ModelEquip = 0x024A, // updated 5.45 hotfix
Examine = 0x0261, // updated 5.45 hotfix
CharaNameReq = 0x0380, // updated 5.45 hotfix
ModelEquip = 0x0264, // updated 5.55 hotfix
Examine = 0x027C, // updated 5.55 hotfix
CharaNameReq = 0x02EC, // updated 5.55 hotfix
// nb: see #565 on github
UpdateRetainerItemSalePrice = 0xF19F, // updated 5.0
RetainerSaleHistory = 0x020E, // updated 5.21 hotfix
RetainerInformation = 0x026B, // updated 5.45 hotfix
RetainerInformation = 0x02DE, // updated 5.55 hotfix
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 = 0x02D3, // updated 5.55 hotfix
ContainerInfo = 0x00CF, // updated 5.55 hotfix
InventoryTransactionFinish = 0x02EE, // updated 5.55 hotfix
InventoryTransaction = 0x02FA, // updated 5.55 hotfix
CurrencyCrystalInfo = 0x0166, // updated 5.55 hotfix
InventoryActionAck = 0x02FA, // updated 5.45 hotfix
UpdateInventorySlot = 0x017D, // updated 5.45 hotfix
InventoryActionAck = 0x027D, // updated 5.55 hotfix
UpdateInventorySlot = 0x0073, // updated 5.55 hotfix
HuntingLogEntry = 0x0232, // updated 5.45 hotfix
HuntingLogEntry = 0x0080, // updated 5.55 hotfix
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 = 0x0369, // updated 5.55 hotfix
EventPlay4 = 0x0247, // updated 5.55 hotfix
EventPlay8 = 0x0227, // updated 5.55 hotfix
EventPlay16 = 0x00C5, // updated 5.55 hotfix
EventPlay32 = 0x0184, // updated 5.55 hotfix
EventPlay64 = 0x011A, // updated 5.55 hotfix
EventPlay128 = 0x01B3, // updated 5.55 hotfix
EventPlay255 = 0x0240, // updated 5.55 hotfix
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 = 0x0145, // updated 5.55 hotfix
EventFinish = 0x0174, // updated 5.55 hotfix
EventLinkshell = 0x1169,
QuestActiveList = 0x015A, // updated 5.45 hotfix
QuestUpdate = 0x037B, // updated 5.45 hotfix
QuestCompleteList = 0x0287, // updated 5.45 hotfix
QuestActiveList = 0x0381, // updated 5.55 hotfix
QuestUpdate = 0x031B, // updated 5.55 hotfix
QuestCompleteList = 0x031A, // updated 5.55 hotfix
QuestFinish = 0x0066, // updated 5.45 hotfix
QuestFinish = 0x00E0, // updated 5.55 hotfix
MSQTrackerComplete = 0xF1D6, // updated 5.0
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 = 0x0294, // updated 5.55 hotfix
Mount = 0x0122, // updated 5.45 hotfix
Mount = 0x016B, // updated 5.55 hotfix
DirectorVars = 0x0252, // updated 5.45 hotfix
DirectorVars = 0x0391, // updated 5.55 hotfix
SomeDirectorUnk1 = 0x0084, // updated 5.18
SomeDirectorUnk2 = 0xF0C1, // updated 5.18
SomeDirectorUnk4 = 0x0071, // updated 5.45 hotfix
SomeDirectorUnk4 = 0x0101, // updated 5.55 hotfix
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
DirectorPopUp = 0xF162, // updated 5.18 (could be 0x02C2 in 5.55, needs confirmation - display dialogue pop-ups in duties and FATEs, for example, Teraflare's countdown
DirectorPopUp4 = 0x0214, // updated 5.18
DirectorPopUp8 = 0x00F8, // updated 5.18
CFAvailableContents = 0xF1FD, // updated 4.2
WeatherChange = 0x0167, // updated 5.45 hotfix
PlayerTitleList = 0x00F3, // updated 5.45 hotfix
Discovery = 0x0247, // updated 5.45 hotfix
WeatherChange = 0x0386, // updated 5.55 hotfix
PlayerTitleList = 0x0181, // updated 5.55 hotfix
Discovery = 0x019E, // updated 5.55 hotfix
EorzeaTimeOffset = 0x00C5, // updated 5.45 hotfix
EorzeaTimeOffset = 0x01AE, // updated 5.55 hotfix
EquipDisplayFlags = 0x0316, // updated 5.45 hotfix
EquipDisplayFlags = 0x01A3, // updated 5.55 hotfix
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 = 0x0299, // updated 5.55 hotfix
ResultDialog = 0x025D, // updated 5.55 hotfix
DesynthResult = 0x0323, // updated 5.55 hotfix
/// 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 = 0x01E4, // updated 5.55 hotfix
LandUpdate = 0x012B, // updated 5.55 hotfix
YardObjectSpawn = 0x0249, // updated 5.55 hotfix
HousingIndoorInitialize = 0x0133, // updated 5.55 hotfix
LandPriceUpdate = 0x00AA, // updated 5.55 hotfix
LandInfoSign = 0x023D, // updated 5.55 hotfix
LandRename = 0x0158, // updated 5.55 hotfix
HousingEstateGreeting = 0x018D, // updated 5.55 hotfix
HousingUpdateLandFlagsSlot = 0x03C8, // updated 5.55 hotfix
HousingLandFlags = 0x037E, // updated 5.55 hotfix
HousingShowEstateGuestAccess = 0x01F8, // updated 5.55 hotfix
HousingObjectInitialize = 0x00B5, // updated 5.45 hotfix
HousingInternalObjectSpawn = 0x00BC, // updated 5.45 hotfix
HousingObjectInitialize = 0x0331, // updated 5.55 hotfix
HousingInternalObjectSpawn = 0x0092, // updated 5.55 hotfix
HousingWardInfo = 0x015E, // updated 5.45 hotfix
HousingObjectMove = 0x03E6, // updated 5.45 hotfix
HousingWardInfo = 0x0279, // updated 5.55 hotfix
HousingObjectMove = 0x0239, // updated 5.55 hotfix
SharedEstateSettingsResponse = 0x03A4, // updated 5.45 hotfix
SharedEstateSettingsResponse = 0x0263, // updated 5.55 hotfix
LandUpdateHouseName = 0x0215, // updated 5.45 hotfix
LandUpdateHouseName = 0x01D6, // updated 5.55 hotfix
LandSetMap = 0x0103, // updated 5.45 hotfix
LandSetMap = 0x01D3, // updated 5.55 hotfix
//////////////////////////////////////////////////
DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui
PerformNote = 0x0248, // updated 5.45 hotfix
PerformNote = 0x038B, // updated 5.55 hotfix
PrepareZoning = 0x01EE, // updated 5.45 hotfix
ActorGauge = 0x018E, // updated 5.45 hotfix
DutyGauge = 0x00D2, // updated 5.45 hotfix
PrepareZoning = 0x00A4, // updated 5.55 hotfix
ActorGauge = 0x03B1, // updated 5.55 hotfix
DutyGauge = 0x01D3, // updated 5.55 hotfix
// daily quest info -> without them sent, login will take longer...
DailyQuests = 0x02C4, // updated 5.45 hotfix
DailyQuestRepeatFlags = 0x024D, // updated 5.45 hotfix
DailyQuests = 0x0371, // updated 5.55 hotfix
DailyQuestRepeatFlags = 0x021F, // updated 5.55 hotfix
/// 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 = 0x007C, // updated 5.55 hotfix
AirshipStatus = 0x00AB, // updated 5.55 hotfix
AirshipStatusList = 0x027B, // updated 5.55 hotfix
AirshipTimers = 0x02A5, // updated 5.55 hotfix
SubmarineExplorationResult = 0x0099, // updated 5.55 hotfix
SubmarineProgressionStatus = 0x0081, // updated 5.55 hotfix
SubmarineStatusList = 0x0072, // updated 5.55 hotfix
SubmarineTimers = 0x037A, // updated 5.55 hotfix
};
/**
@ -315,43 +315,42 @@ namespace Sapphire::Network::Packets
*/
enum ClientZoneIpcType : uint16_t
{
PingHandler = 0x0183, // updated 5.45 hotfix
InitHandler = 0x01EA, // updated 5.45 hotfix
PingHandler = 0x03AD, // updated 5.55 hotfix
InitHandler = 0x03DA, // updated 5.55 hotfix
FinishLoadingHandler = 0x023F, // updated 5.45 hotfix
FinishLoadingHandler = 0x0203, // updated 5.55 hotfix
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
PlayTimeHandler = 0x0365, // updated 5.55 hotfix
LogoutHandler = 0x039B, // updated 5.55 hotfix
CancelLogout = 0x010F, // updated 5.55 hotfix
CFDutyInfoHandler = 0xF078, // updated 4.2
CFDutyInfoHandler = 0x0078, // updated 4.2
SocialReqSendHandler = 0x028E, // updated 5.55 hotfix
SocialResponseHandler = 0x0373, // updated 5.55 hotfix
CreateCrossWorldLS = 0x028D, // updated 5.55 hotfix
SocialReqSendHandler = 0x0288, // updated 5.45 hotfix
SocialResponseHandler = 0x029B, // updated 5.45 hotfix
CreateCrossWorldLS = 0x00AF, // updated 4.3
ChatHandler = 0x00A4, // updated 5.45 hotfix
ChatHandler = 0x01B8, // updated 5.55 hotfix
PartyChatHandler = 0x0065,
PartySetLeaderHandler = 0x02EF, // updated 5.45 hotfix
LeavePartyHandler = 0x017E, // updated 5.45 hotfix
KickPartyMemberHandler = 0x0070, // updated 5.45 hotfix
PartySetLeaderHandler = 0x0142, // updated 5.55 hotfix
LeavePartyHandler = 0x026C, // updated 5.55 hotfix
KickPartyMemberHandler = 0x0379, // updated 5.55 hotfix
DisbandPartyHandler = 0x037A, // updated 5.45 hotfix
SocialListHandler = 0x02B0, // updated 5.45 hotfix
SetSearchInfoHandler = 0x0111, // updated 5.45 hotfix
ReqSearchInfoHandler = 0x03AC, // updated 5.45 hotfix
SocialListHandler = 0x00F2, // updated 5.55 hotfix
SetSearchInfoHandler = 0x009C, // updated 5.55 hotfix
ReqSearchInfoHandler = 0x00B1, // updated 5.55 hotfix
ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0
ReqRemovePlayerFromBlacklist = 0x00F1, // updated 5.0
BlackListHandler = 0x02CD, // updated 5.45 hotfix
BlackListHandler = 0x03DE, // updated 5.55 hotfix
PlayerSearchHandler = 0x00F4, // updated 5.0
LinkshellListHandler = 0x0258, // updated 5.45 hotfix
LinkshellListHandler = 0x0291, // updated 5.55 hotfix
MarketBoardRequestItemListingInfo = 0x0102, // updated 4.5
MarketBoardRequestItemListings = 0x0103, // updated 4.5
@ -370,55 +369,55 @@ namespace Sapphire::Network::Packets
ReqCountdownInitiate = 0x025F, // updated 5.35 hotfix
ReqCountdownCancel = 0x0244, // updated 5.25
ZoneLineHandler = 0x00BA, // updated 5.45 hotfix
ClientTrigger = 0x0146, // updated 5.45 hotfix
ZoneLineHandler = 0x01C2, // updated 5.55 hotfix
ClientTrigger = 0x0337, // updated 5.55 hotfix
DiscoveryHandler = 0x00E3, // updated 5.35 hotfix
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 = 0xF10C, // updated 5.55 hotfix
PlaceFieldMarker = 0xF2E2, // updated 5.55 hotfix
SkillHandler = 0x02A2, // updated 5.55 hotfix
GMCommand1 = 0x01F0, // updated 5.55 hotfix
GMCommand2 = 0x0068, // updated 5.55 hotfix
AoESkillHandler = 0x02F6, // updated 5.55 hotfix
UpdatePositionHandler = 0x031A, // updated 5.45 hotfix
UpdatePositionHandler = 0x024B, // updated 5.55 hotfix
InventoryModifyHandler = 0x0110, // updated 5.45 hotfix
InventoryModifyHandler = 0x01D7, // updated 5.55 hotfix
InventoryEquipRecommendedItems = 0x0186, // updated 5.45 hotfix
ReqPlaceHousingItem = 0x0360, // updated 5.45 hotfix
BuildPresetHandler = 0x01D7, // updated 5.45 hotfix
ReqPlaceHousingItem = 0x023E, // updated 5.55 hotfix
BuildPresetHandler = 0x0374, // updated 5.55 hotfix
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 = 0x01E9, // updated 5.55 hotfix
EmoteEventHandler = 0xF35A, // updated 5.55 hotfix
WithinRangeEventHandler = 0x035A, // updated 5.55 hotfix
OutOfRangeEventHandler = 0x0338, // updated 5.55 hotfix
EnterTeriEventHandler = 0x0077, // updated 5.55 hotfix
ShopEventHandler = 0x0168, // updated 5.55 hotfix
EventYieldHandler = 0x02A0, // updated 5.55 hotfix
ReturnEventHandler = 0x015D, // updated 5.55 hotfix
TradeReturnEventHandler = 0x0091, // updated 5.55 hotfix
TradeReturnEventHandler2 = 0x0169, // updated 5.55 hotfix
LinkshellEventHandler = 0x016B, // updated 4.5
LinkshellEventHandler1 = 0x016C, // updated 4.5
ReqEquipDisplayFlagsChange = 0x03B0, // updated 5.45 hotfix
ReqEquipDisplayFlagsChange = 0x032B, // updated 5.55 hotfix
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 = 0x0206, // updated 5.55 hotfix
HousingUpdateHouseGreeting = 0x0330, // updated 5.55 hotfix
HousingUpdateObjectPosition = 0x03A5, // updated 5.55 hotfix
HousingEditAppearance = 0x00D7, // updated 5.55 hotfix
SetSharedEstateSettings = 0x0146, // updated 5.45 hotfix
SetSharedEstateSettings = 0x03DC, // updated 5.55 hotfix
UpdatePositionInstance = 0x034E, // updated 5.45 hotfix
UpdatePositionInstance = 0x009D, // updated 5.55 hotfix
PerformNoteHandler = 0x0336, // updated 5.45 hotfix
PerformNoteHandler = 0x01F1, // updated 5.55 hotfix
WorldInteractionHandler = 0x02E4, // updated 5.45 hotfix
Dive = 0x00F1, // updated 5.45 hotfix
WorldInteractionHandler = 0x0343, // updated 5.55 hotfix
Dive = 0x021C, // updated 5.55 hotfix
};
////////////////////////////////////////////////////////////////////////////////

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 ];