mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-05-25 11:07:45 +00:00
Messy folder that is able to log in to 6.08. DO NOT merge this into any
other fork this is just a mess to be able to work with as a base. Thank you.
This commit is contained in:
parent
b46e7c2708
commit
109dc82ca0
12 changed files with 1415 additions and 688 deletions
|
@ -23,7 +23,7 @@ namespace Sapphire::Common
|
||||||
const uint64_t INVALID_GAME_OBJECT_ID64 = 0xE0000000;
|
const uint64_t INVALID_GAME_OBJECT_ID64 = 0xE0000000;
|
||||||
|
|
||||||
const uint16_t MAX_PLAYER_LEVEL = 80;
|
const uint16_t MAX_PLAYER_LEVEL = 80;
|
||||||
const uint8_t CURRENT_EXPANSION_ID = 3;
|
const uint8_t CURRENT_EXPANSION_ID = 4;
|
||||||
|
|
||||||
const uint8_t CLASSJOB_TOTAL = 38;
|
const uint8_t CLASSJOB_TOTAL = 38;
|
||||||
const uint8_t CLASSJOB_SLOTS = 30;
|
const uint8_t CLASSJOB_SLOTS = 30;
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -43,67 +43,67 @@ namespace Sapphire::Network::Packets
|
||||||
*/
|
*/
|
||||||
enum ServerZoneIpcType : uint16_t
|
enum ServerZoneIpcType : uint16_t
|
||||||
{
|
{
|
||||||
Ping = 0x02CB, // updated 5.58
|
Ping = 0x02A8, // updated 5.58 hotfix
|
||||||
Init = 0x02A8, // updated 5.58
|
Init = 0x0182, // updated 5.58 hotfix
|
||||||
|
|
||||||
ActorFreeSpawn = 0x0210, // updated 5.58
|
ActorFreeSpawn = 0x0082, // updated 6.08
|
||||||
InitZone = 0x0100, // updated 5.58
|
InitZone = 0x01EB, // updated 6.08
|
||||||
|
|
||||||
EffectResult = 0x0151, // updated 5.58
|
EffectResult = 0x0387, // updated 5.58 hotfix
|
||||||
ActorControl = 0x0264, // updated 5.58
|
ActorControl = 0x022F, // updated 6.08
|
||||||
ActorControlSelf = 0x0314, // updated 5.58
|
ActorControlSelf = 0x006B, // updated 6.08
|
||||||
ActorControlTarget = 0x00FC, // updated 5.58
|
ActorControlTarget = 0x0191, // updated 6.08
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* @brief Used when resting
|
* @brief Used when resting
|
||||||
*/
|
*/
|
||||||
UpdateHpMpTp = 0x039B, // updated 5.58
|
UpdateHpMpTp = 0x02C9, // updated 6.08
|
||||||
|
|
||||||
///////////////////////////////////////////////////
|
///////////////////////////////////////////////////
|
||||||
|
|
||||||
ChatBanned = 0xF06B,
|
ChatBanned = 0xF06B,
|
||||||
Playtime = 0x02BE, // updated 5.58
|
Playtime = 0x00CE, // updated 6.08
|
||||||
Logout = 0x0297, // updated 5.58
|
Logout = 0x03B2, // updated 6.08
|
||||||
CFNotify = 0x01AC, // updated 5.58
|
CFNotify = 0x01C5, // updated 6.08
|
||||||
CFMemberStatus = 0x0079,
|
CFMemberStatus = 0x0079,
|
||||||
CFDutyInfo = 0x0083, // updated 5.58
|
CFDutyInfo = 0x0188, // updated 6.08
|
||||||
CFPlayerInNeed = 0xF07F,
|
CFPlayerInNeed = 0xF07F,
|
||||||
CFPreferredRole = 0x02FB, // updated 5.58
|
CFPreferredRole = 0x02DA, // updated 6.08
|
||||||
CFCancel = 0x0135, // updated 5.58
|
CFCancel = 0x00EB, // updated 6.08
|
||||||
SocialRequestError = 0xF0AD,
|
SocialRequestError = 0xF0AD,
|
||||||
|
|
||||||
CFRegistered = 0x037E, // updated 5.58
|
CFRegistered = 0x00A9, // updated 6.08
|
||||||
SocialRequestResponse = 0x0254, // updated 5.58
|
SocialRequestResponse = 0x024D, // updated 6.08
|
||||||
SocialMessage = 0x02F2, // updated 5.58
|
SocialMessage = 0x02B4, // updated 6.08
|
||||||
SocialMessage2 = 0x017A, // updated 5.58
|
SocialMessage2 = 0x011C, // updated 6.08
|
||||||
CancelAllianceForming = 0xF0C6, // updated 4.2
|
CancelAllianceForming = 0xF0C6, // updated 4.2
|
||||||
|
|
||||||
LogMessage = 0x020F, // updated 5.58
|
LogMessage = 0x0142, // updated 6.08
|
||||||
|
|
||||||
Chat = 0x0220, // updated 5.58
|
Chat = 0x0148, // updated 56.08
|
||||||
PartyChat = 0x0065,
|
PartyChat = 0x0065,
|
||||||
|
|
||||||
WorldVisitList = 0xF0FE, // added 4.5
|
WorldVisitList = 0xF0FE, // added 4.5
|
||||||
|
|
||||||
SocialList = 0x0396, // updated 5.58
|
SocialList = 0x039C, // updated 6.08
|
||||||
|
|
||||||
ExamineSearchInfo = 0x031F, // updated 5.58
|
ExamineSearchInfo = 0x0297, // updated 6.08
|
||||||
UpdateSearchInfo = 0x0219, // updated 5.58
|
UpdateSearchInfo = 0x03D1, // updated 6.08
|
||||||
InitSearchInfo = 0x01A0, // updated 5.58
|
InitSearchInfo = 0x01BB, // updated 6.08
|
||||||
ExamineSearchComment = 0x0315, // updated 5.58
|
ExamineSearchComment = 0x02AE, // updated 6.08
|
||||||
|
|
||||||
ServerNoticeShort = 0x0211, // updated 5.58
|
ServerNoticeShort = 0x01D7, // updated 6.08
|
||||||
ServerNotice = 0x03B9, // updated 5.58
|
ServerNotice = 0x036E, // updated 6.08
|
||||||
SetOnlineStatus = 0x0163, // updated 5.58
|
SetOnlineStatus = 0x0308, // updated 6.08
|
||||||
|
|
||||||
CountdownInitiate = 0x01F9, // updated 5.58
|
CountdownInitiate = 0x00E1, // updated 6.08
|
||||||
CountdownCancel = 0x0206, // updated 5.58
|
CountdownCancel = 0x0284, // updated 6.08
|
||||||
|
|
||||||
PlayerAddedToBlacklist = 0x01FE, // updated 5.58
|
PlayerAddedToBlacklist = 0x037D, // updated 6.08
|
||||||
PlayerRemovedFromBlacklist = 0x02D6, // updated 5.58
|
PlayerRemovedFromBlacklist = 0x0342, // updated 6.08
|
||||||
BlackList = 0x028A, // updated 5.58
|
BlackList = 0x0070, // updated 6.08
|
||||||
|
|
||||||
LinkshellList = 0x02DD, // updated 5.58
|
LinkshellList = 0x0304, // updated 6.08
|
||||||
|
|
||||||
MailDeleteRequest = 0xF12B, // updated 5.0
|
MailDeleteRequest = 0xF12B, // updated 5.0
|
||||||
|
|
||||||
|
@ -114,173 +114,183 @@ namespace Sapphire::Network::Packets
|
||||||
|
|
||||||
MarketTaxRates = 0x01F8, // updated 5.35 hotfix
|
MarketTaxRates = 0x01F8, // updated 5.35 hotfix
|
||||||
|
|
||||||
MarketBoardSearchResult = 0x0355, // updated 5.58
|
MarketBoardSearchResult = 0x00B2, // updated 6.08
|
||||||
MarketBoardItemListingCount = 0x0275, // updated 5.58
|
MarketBoardItemListingCount = 0x026A, // updated 6.08
|
||||||
MarketBoardItemListingHistory = 0x0112, // updated 5.58
|
MarketBoardItemListingHistory = 0x013A, // updated 6.08
|
||||||
MarketBoardItemListing = 0x00F5, // updated 5.58
|
MarketBoardItemListing = 0x01E2, // updated 6.08
|
||||||
|
|
||||||
CharaFreeCompanyTag = 0x013B, // updated 4.5
|
CharaFreeCompanyTag = 0x013B, // updated 4.5
|
||||||
FreeCompanyBoardMsg = 0x028D, // updated 5.58
|
FreeCompanyBoardMsg = 0x02F1, // updated 6.08
|
||||||
FreeCompanyInfo = 0x0346, // updated 5.58
|
FreeCompanyInfo = 0x01A2, // updated 6.08
|
||||||
ExamineFreeCompanyInfo = 0x00B7, // updated 5.58
|
ExamineFreeCompanyInfo = 0x011E, // updated 6.08
|
||||||
|
|
||||||
FreeCompanyUpdateShortMessage = 0xF157, // added 5.0
|
FreeCompanyUpdateShortMessage = 0xF157, // added 5.0
|
||||||
|
|
||||||
StatusEffectList = 0x01C5, // updated 5.58
|
StatusEffectList = 0x00BC, // updated 6.08
|
||||||
EurekaStatusEffectList = 0x0167, // updated 5.18
|
EurekaStatusEffectList = 0x0167, // updated 5.18
|
||||||
BossStatusEffectList = 0x0312, // added 5.1
|
BossStatusEffectList = 0x0312, // added 5.1
|
||||||
Effect = 0x0102, // updated 5.58
|
Effect = 0x03C7, // updated 6.08
|
||||||
AoeEffect8 = 0x0345, // updated 5.58
|
AoeEffect8 = 0x0149, // updated 6.08
|
||||||
AoeEffect16 = 0x02B6, // updated 5.58
|
AoeEffect16 = 0x00C1, // updated 6.08
|
||||||
AoeEffect24 = 0x0298, // updated 5.58
|
AoeEffect24 = 0x0213, // updated 6.08
|
||||||
AoeEffect32 = 0x03A4, // updated 5.58
|
AoeEffect32 = 0x038B, // updated 6.08
|
||||||
PersistantEffect = 0x008D, // updated 5.58
|
PersistantEffect = 0x02AF, // updated 6.08
|
||||||
|
|
||||||
GCAffiliation = 0x02B1, // updated 5.58
|
GCAffiliation = 0x0264, // updated 6.08
|
||||||
|
|
||||||
PlayerSpawn = 0x0249, // updated 5.58
|
PlayerSpawn = 0x0226, // updated 6.08
|
||||||
NpcSpawn = 0x014B, // updated 5.58
|
NpcSpawn = 0x032C, // updated 6.08
|
||||||
NpcSpawn2 = 0x01CB, // ( Bigger statuseffectlist? ) updated 5.3
|
NpcSpawn2 = 0x01CB, // ( Bigger statuseffectlist? ) updated 5.3
|
||||||
ActorMove = 0x023D, // updated 5.58
|
ActorMove = 0x0370, // updated 6.08
|
||||||
|
|
||||||
ActorSetPos = 0x0280, // updated 5.58
|
ActorSetPos = 0x0395, // updated 6.08
|
||||||
|
|
||||||
ActorCast = 0x02A7, // updated 5.58
|
ActorCast = 0x0104, // updated 6.08
|
||||||
SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18
|
SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18
|
||||||
|
|
||||||
PartyList = 0x02BD, // updated 5.58
|
PartyList = 0x03AF, // updated 6.08
|
||||||
PartyMessage = 0x0318, // updated 5.58
|
PartyMessage = 0x0352, // updated 6.08
|
||||||
HateRank = 0x02C0, // updated 5.58
|
HateRank = 0x03C3, // updated 6.08
|
||||||
HateList = 0x01B4, // updated 5.58
|
HateList = 0x032B, // updated 6.08
|
||||||
ObjectSpawn = 0x0104, // updated 5.58
|
ObjectSpawn = 0x03A3, // updated 6.08
|
||||||
ObjectDespawn = 0x030D, // updated 5.58
|
ObjectDespawn = 0x0137, // updated 6.08
|
||||||
UpdateClassInfo = 0x0198, // updated 5.58
|
UpdateClassInfo = 0x00FE, // updated 6.08
|
||||||
SilentSetClassJob = 0xF18E, // updated 5.0 - seems to be the case, not sure if it's actually used for anything
|
SilentSetClassJob = 0xF18E, // updated 5.0 - seems to be the case, not sure if it's actually used for anything
|
||||||
PlayerSetup = 0x0296, // updated 5.58
|
PlayerSetup = 0x02C7, // updated 6.08
|
||||||
PlayerStats = 0x00D5, // updated 5.58
|
PlayerStats = 0x0295, // updated 5.58 hotfix
|
||||||
ActorOwner = 0x00AE, // updated 5.58
|
ActorOwner = 0x0261, // updated 6.08
|
||||||
PlayerStateFlags = 0x022A, // updated 5.58
|
PlayerStateFlags = 0x03CF, // updated 6.08 (or 0x00CB)
|
||||||
PlayerClassInfo = 0x02DF, // updated 5.58
|
PlayerClassInfo = 0x025A, // updated 6.08
|
||||||
CharaVisualEffect = 0x0134, // updated 5.58
|
CharaVisualEffect = 0x01D1, // updated 6.08
|
||||||
|
|
||||||
ModelEquip = 0x0312, // updated 5.58
|
InstanceDecorAnimation = 0x0338, // updated 6.08
|
||||||
Examine = 0x00D3, // updated 5.58
|
|
||||||
CharaNameReq = 0x031C, // updated 5.58
|
ModelEquip = 0x00E4, // updated 6.08
|
||||||
|
Examine = 0x03E2, // updated 6.08
|
||||||
|
CharaNameReq = 0x0343, // updated 6.08
|
||||||
|
|
||||||
// nb: see #565 on github
|
// nb: see #565 on github
|
||||||
UpdateRetainerItemSalePrice = 0xF19F, // updated 5.0
|
UpdateRetainerItemSalePrice = 0xF19F, // updated 5.0
|
||||||
RetainerSaleHistory = 0x01D3, // updated 5.58
|
RetainerSaleHistory = 0x0066, // updated 6.08
|
||||||
RetainerInformation = 0x0069, // updated 5.58
|
RetainerInformation = 0x022F, // updated 5.58 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 = 0x00A7, // updated 5.58
|
ItemInfo = 0x01CC, // updated 5.58 hotfix
|
||||||
ContainerInfo = 0x0208, // updated 5.58
|
ContainerInfo = 0x025C, // updated 5.58 hotfix
|
||||||
InventoryTransactionFinish = 0x01A3, // updated 5.58
|
InventoryTransactionFinish = 0x0176, // updated 5.58 hotfix
|
||||||
InventoryTransaction = 0x03AC, // updated 5.58
|
InventoryTransaction = 0x027F, // updated 5.58 hotfix
|
||||||
CurrencyCrystalInfo = 0x0394, // updated 5.58
|
CurrencyCrystalInfo = 0x0345, // updated 5.58 hotfix
|
||||||
|
|
||||||
InventoryActionAck = 0x0305, // updated 5.58
|
InventoryActionAck = 0x008A, // updated 6.08
|
||||||
UpdateInventorySlot = 0x0200, // updated 5.58
|
UpdateInventorySlot = 0x0375, // updated 6.08
|
||||||
|
|
||||||
HuntingLogEntry = 0x00C5, // updated 5.58
|
HuntingLogEntry = 0x0187, // updated 6.08
|
||||||
|
|
||||||
EventPlay = 0x01EF, // updated 5.58
|
EventPlay = 0x0113, // updated for 6.08
|
||||||
EventPlay4 = 0x021C, // updated 5.58
|
EventPlay4 = 0x0302, // updated for 6.08
|
||||||
EventPlay8 = 0x0337, // updated 5.58
|
EventPlay8 = 0x0078, // updated for 6.08
|
||||||
EventPlay16 = 0x0319, // updated 5.58
|
EventPlay16 = 0x0223, // updated for 6.08
|
||||||
EventPlay32 = 0x01E2, // updated 5.58
|
EventPlay32 = 0x02F2, // updated for 6.08
|
||||||
EventPlay64 = 0x02FD, // updated 5.58
|
EventPlay64 = 0x03BC, // updated for 6.08
|
||||||
EventPlay128 = 0x026E, // updated 5.58
|
EventPlay128 = 0x033E, // updated for 6.08
|
||||||
EventPlay255 = 0x039E, // updated 5.58
|
EventPlay255 = 0x0079, // updated for 6.08
|
||||||
|
|
||||||
EventContinue = 0x0123, // updated 5.58
|
EventContinue = 0x00B6, // updated 5.58 hotfix
|
||||||
|
|
||||||
EventStart = 0x01CC, // updated 5.58
|
EventStart = 0x00AE, // updated 6.08
|
||||||
EventFinish = 0x0180, // updated 5.58
|
EventFinish = 0x0210, // updated 6.08
|
||||||
|
|
||||||
EventLinkshell = 0x1169,
|
EventLinkshell = 0x1169,
|
||||||
|
|
||||||
QuestActiveList = 0x035D, // updated 5.58
|
QuestActiveList = 0x03E0, // updated 6.08
|
||||||
QuestUpdate = 0x029A, // updated 5.58
|
QuestUpdate = 0x029B, // updated 6.08
|
||||||
QuestCompleteList = 0x03C5, // updated 5.58
|
QuestCompleteList = 0x0118, // updated 6.08
|
||||||
|
|
||||||
QuestFinish = 0x0274, // updated 5.58
|
QuestFinish = 0x015A, // updated 6.08
|
||||||
MSQTrackerComplete = 0x01C1, // updated 5.58
|
MSQTrackerComplete = 0x00E5, // updated 6.08
|
||||||
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 = 0x0128, // updated 5.58
|
QuestMessage = 0x0220, // updated 5.58 hotfix
|
||||||
|
|
||||||
QuestTracker = 0x038E, // updated 5.58
|
QuestTracker = 0x01FB, // updated 6.08
|
||||||
|
|
||||||
Mount = 0x03C2, // updated 5.58
|
Mount = 0x0373, // updated 6.08
|
||||||
|
|
||||||
DirectorVars = 0x01ED, // updated 5.58
|
DirectorVars = 0x0138, // updated 6.08
|
||||||
SomeDirectorUnk1 = 0x0084, // updated 5.18
|
SomeDirectorUnk1 = 0x0084, // updated 5.18
|
||||||
SomeDirectorUnk2 = 0xF0C1, // updated 5.18
|
SomeDirectorUnk2 = 0xF0C1, // updated 5.18
|
||||||
SomeDirectorUnk4 = 0x01BD, // updated 5.58
|
SomeDirectorUnk4 = 0x03DD, // updated 5.58 hotfix
|
||||||
SomeDirectorUnk8 = 0x028A, // updated 5.18
|
SomeDirectorUnk8 = 0x028A, // updated 5.18
|
||||||
SomeDirectorUnk16 = 0x028C, // updated 5.18
|
SomeDirectorUnk16 = 0x028C, // updated 5.18
|
||||||
DirectorPopUp = 0x02E3, // updated 5.58
|
DirectorPopUp = 0x03DF, // updated 5.58 hotfix
|
||||||
DirectorPopUp4 = 0x01DC, // updated 5.58
|
DirectorPopUp4 = 0x019B, // updated 5.58 hotfix
|
||||||
DirectorPopUp8 = 0x011D, // updated 5.58
|
DirectorPopUp8 = 0x0271, // updated 5.58 hotfix
|
||||||
|
|
||||||
CFAvailableContents = 0xF1FD, // updated 4.2
|
CFAvailableContents = 0xF1FD, // updated 4.2
|
||||||
|
|
||||||
WeatherChange = 0x01B1, // updated 5.58
|
WeatherChange = 0x00ED, // updated 6.08
|
||||||
PlayerTitleList = 0x02B4, // updated 5.58
|
PlayerTitleList = 0x02C2, // updated 6.08
|
||||||
Discovery = 0x00B8, // updated 5.58
|
Discovery = 0x03A4, // updated 6.08
|
||||||
|
|
||||||
EorzeaTimeOffset = 0x03D9, // updated 5.58
|
EorzeaTimeOffset = 0x0074, // updated 6.08
|
||||||
|
|
||||||
EquipDisplayFlags = 0x0199, // updated 5.58
|
EquipDisplayFlags = 0x023A, // updated 6.08
|
||||||
|
|
||||||
MiniCactpotInit = 0x0286, // added 5.31
|
MiniCactpotInit = 0x0286, // added 5.31
|
||||||
ShopMessage = 0x00D0, // updated 5.58
|
ShopMessage = 0x0287, // updated 5.58 hotfix
|
||||||
LootMessage = 0x038C, // updated 5.58
|
LootMessage = 0x006C, // updated 6.08
|
||||||
ResultDialog = 0x00DF, // updated 5.58
|
ResultDialog = 0x0273, // updated 5.58 hotfix
|
||||||
DesynthResult = 0x038F, // updated 5.58
|
DesynthResult = 0x0238, // updated 5.58 hotfix
|
||||||
|
|
||||||
/// Housing //////////////////////////////////////
|
/// Housing //////////////////////////////////////
|
||||||
|
|
||||||
LandSetInitialize = 0x03E3, // updated 5.58
|
LandSetInitialize = 0x0280, // updated 6.08
|
||||||
LandUpdate = 0x029E, // updated 5.58
|
LandUpdate = 0x03C6, // updated 6.08
|
||||||
YardObjectSpawn = 0x0367, // updated 5.58
|
YardObjectSpawn = 0x01AC, // updated 6.08
|
||||||
HousingIndoorInitialize = 0x02A6, // updated 5.58
|
HousingIndoorInitialize = 0x00E6, // updated 6.08
|
||||||
LandPriceUpdate = 0x0143, // updated 5.58
|
LandPriceUpdate = 0x03CB, // updated 6.08
|
||||||
LandInfoSign = 0x0269, // updated 5.58
|
LandInfoSign = 0x0276, // updated 6.08
|
||||||
LandRename = 0x0107, // updated 5.58
|
LandRename = 0x0158, // updated 6.08
|
||||||
HousingEstateGreeting = 0x0340, // updated 5.58
|
HousingEstateGreeting = 0x029E, // updated 6.08
|
||||||
HousingUpdateLandFlagsSlot = 0x02D2, // updated 5.58
|
HousingUpdateLandFlagsSlot = 0x01B4, // updated 6.08
|
||||||
HousingLandFlags = 0x0156, // updated 5.58
|
HousingLandFlags = 0x03DD, // updated 6.08
|
||||||
HousingShowEstateGuestAccess = 0x015C, // updated 5.58
|
HousingShowEstateGuestAccess = 0x011B, // updated 6.08
|
||||||
|
|
||||||
HousingObjectInitialize = 0x0245, // updated 5.58
|
HousingObjectInitialize = 0x02DF, // updated 6.08
|
||||||
HousingInternalObjectSpawn = 0x0194, // updated 5.58
|
HousingInternalObjectSpawn = 0x01C2, // updated 6.08
|
||||||
|
|
||||||
HousingWardInfo = 0x00A4, // updated 5.58
|
HousingWardInfo = 0x0145, // updated 6.08
|
||||||
HousingObjectMove = 0x01AE, // updated 5.58
|
HousingObjectMove = 0x0242, // updated 6.08
|
||||||
|
|
||||||
SharedEstateSettingsResponse = 0x0378, // updated 5.58
|
SharedEstateSettingsResponse = 0x02F0, // updated 6.08
|
||||||
|
|
||||||
LandUpdateHouseName = 0x034B, // updated 5.58
|
LandUpdateHouseName = 0x0132, // updated 6.08
|
||||||
|
|
||||||
LandSetMap = 0x02F6, // updated 5.58
|
LandSetMap = 0x008B, // updated 6.08
|
||||||
|
|
||||||
CeremonySetActorAppearance = 0x00EB, // updated 5.58
|
CeremonySetActorAppearance = 0x0222, // updated 6.08
|
||||||
|
|
||||||
//////////////////////////////////////////////////
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui
|
DuelChallenge = 0xF277, // 4.2; this is responsible for opening the ui
|
||||||
PerformNote = 0x00BE, // updated 5.58
|
PerformNote = 0x009B, // updated 6.08
|
||||||
|
|
||||||
PrepareZoning = 0x0171, // updated 5.58
|
PrepareZoning = 0x039A, // updated 6.08
|
||||||
ActorGauge = 0x0335, // updated 5.58
|
ActorGauge = 0x03B5, // updated 6.08
|
||||||
DutyGauge = 0x02F6, // updated 5.58
|
DutyGauge = 0x008B, // updated 6.08
|
||||||
|
|
||||||
// daily quest info -> without them sent, login will take longer...
|
// daily quest info -> without them sent, login will take longer...
|
||||||
DailyQuests = 0x0331, // updated 5.58
|
DailyQuests = 0x0136, // updated 6.08
|
||||||
DailyQuestRepeatFlags = 0x01D1, // updated 5.58
|
DailyQuestRepeatFlags = 0x0348, // updated 6.08
|
||||||
|
|
||||||
|
MapUpdate = 0x0364, // updated 6.08
|
||||||
|
MapUpdate4 = 0x0128, // updated 6.08
|
||||||
|
MapUpdate8 = 0x0286, // updated 6.08
|
||||||
|
MapUpdate16 = 0x01AA, // updated 6.08
|
||||||
|
MapUpdate32 = 0x0151, // updated 6.08
|
||||||
|
MapUpdate64 = 0x00CD, // updated 6.08
|
||||||
|
MapUpdate128 = 0x017D, // updated 6.08
|
||||||
|
|
||||||
/// Doman Mahjong //////////////////////////////////////
|
/// Doman Mahjong //////////////////////////////////////
|
||||||
MahjongOpenGui = 0x02A4, // only available in mahjong instance
|
MahjongOpenGui = 0x02A4, // only available in mahjong instance
|
||||||
|
@ -295,14 +305,14 @@ namespace Sapphire::Network::Packets
|
||||||
MahjongEndGame = 0x02C6, // finished oorasu(all-last) round; shows a result screen.
|
MahjongEndGame = 0x02C6, // finished oorasu(all-last) round; shows a result screen.
|
||||||
|
|
||||||
/// Airship & Submarine //////////////////////////////////////
|
/// Airship & Submarine //////////////////////////////////////
|
||||||
AirshipExplorationResult = 0x036C, // updated 5.58
|
AirshipExplorationResult = 0x023E, // updated 6.08
|
||||||
AirshipStatus = 0x021F, // updated 5.58
|
AirshipStatus = 0x01F5, // updated 6.08
|
||||||
AirshipStatusList = 0x0073, // updated 5.58
|
AirshipStatusList = 0x0250, // updated 6.08
|
||||||
AirshipTimers = 0x0250, // updated 5.58
|
AirshipTimers = 0x0225, // updated 6.08
|
||||||
SubmarineExplorationResult = 0x01D0, // updated 5.58
|
SubmarineExplorationResult = 0x0092, // updated 6.08
|
||||||
SubmarineProgressionStatus = 0x0377, // updated 5.58
|
SubmarineProgressionStatus = 0x0357, // updated 5.58 hotfix
|
||||||
SubmarineStatusList = 0x0338, // updated 5.58
|
SubmarineStatusList = 0x0212, // updated 6.08
|
||||||
SubmarineTimers = 0x0292, // updated 5.58
|
SubmarineTimers = 0x0346, // updated 6.08
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -310,111 +320,110 @@ namespace Sapphire::Network::Packets
|
||||||
*/
|
*/
|
||||||
enum ClientZoneIpcType : uint16_t
|
enum ClientZoneIpcType : uint16_t
|
||||||
{
|
{
|
||||||
PingHandler = 0x03A3, // updated 5.58
|
PingHandler = 0x0315, // updated 6.08
|
||||||
InitHandler = 0x03B3, // updated 5.58
|
InitHandler = 0x0068, // updated 6.08
|
||||||
|
|
||||||
FinishLoadingHandler = 0x0217, // updated 5.58
|
FinishLoadingHandler = 0x0182, // updated 6.08
|
||||||
|
CFCommenceHandler = 0x0381, // updated 5.58 hotfix
|
||||||
|
|
||||||
CFCommenceHandler = 0x02A3, // updated 5.58
|
CFCancelHandler = 0x02B2, // updated 5.58 hotfix
|
||||||
|
CFRegisterDuty = 0x01BD, // updated 5.58 hotfix
|
||||||
CFCancelHandler = 0x00A9, // updated 5.58
|
CFRegisterRoulette = 0x037A, // updated 5.58 hotfix
|
||||||
CFRegisterDuty = 0x036A, // updated 5.58
|
PlayTimeHandler = 0x02B7, // updated 5.58 hotfix
|
||||||
CFRegisterRoulette = 0x038C, // updated 5.58
|
LogoutHandler = 0x00A0, // updated 5.58 hotfix
|
||||||
PlayTimeHandler = 0x01A8, // updated 5.58
|
CancelLogout = 0x01AC, // updated 5.58 hotfix
|
||||||
LogoutHandler = 0x02A5, // updated 5.58
|
|
||||||
CancelLogout = 0x03CC, // updated 5.58
|
|
||||||
CFDutyInfoHandler = 0xF078, // updated 4.2
|
CFDutyInfoHandler = 0xF078, // updated 4.2
|
||||||
|
|
||||||
SocialReqSendHandler = 0x0366, // updated 5.58
|
SocialReqSendHandler = 0x00D7, // updated 5.58 hotfix
|
||||||
SocialResponseHandler = 0x0311, // updated 5.58
|
SocialResponseHandler = 0x023B, // updated 5.58 hotfix
|
||||||
CreateCrossWorldLS = 0x0125, // updated 5.58
|
CreateCrossWorldLS = 0x035D, // updated 5.58 hotfix
|
||||||
|
|
||||||
ChatHandler = 0x02F4, // updated 5.58
|
ChatHandler = 0x01C8, // updated 6.08
|
||||||
PartyChatHandler = 0x0065,
|
PartyChatHandler = 0x0065,
|
||||||
PartySetLeaderHandler = 0x03C2, // updated 5.58
|
PartySetLeaderHandler = 0x036C, // updated 5.58 hotfix
|
||||||
LeavePartyHandler = 0x028A, // updated 5.58
|
LeavePartyHandler = 0x019D, // updated 5.58 hotfix
|
||||||
KickPartyMemberHandler = 0x01D1, // updated 5.58
|
KickPartyMemberHandler = 0x0262, // updated 5.58 hotfix
|
||||||
DisbandPartyHandler = 0x032B, // updated 5.58
|
DisbandPartyHandler = 0x0276, // updated 5.58 hotfix
|
||||||
|
|
||||||
SocialListHandler = 0x006E, // updated 5.58
|
SocialListHandler = 0x012A, // updated 6.08
|
||||||
SetSearchInfoHandler = 0x010A, // updated 5.58
|
SetSearchInfoHandler = 0x01D4, // updated 5.58 hotfix
|
||||||
ReqSearchInfoHandler = 0x0255, // updated 5.58
|
ReqSearchInfoHandler = 0x014F, // updated 5.58 hotfix
|
||||||
ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0
|
ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0
|
||||||
|
|
||||||
ReqRemovePlayerFromBlacklist = 0x015A, // updated 5.58
|
ReqRemovePlayerFromBlacklist = 0x00B4, // updated 5.58 hotfix
|
||||||
BlackListHandler = 0x02C5, // updated 5.58
|
BlackListHandler = 0x019E, // updated 6.08
|
||||||
PlayerSearchHandler = 0x0259, // updated 5.58
|
PlayerSearchHandler = 0x037D, // updated 5.58 hotfix
|
||||||
|
|
||||||
LinkshellListHandler = 0x01F0, // updated 5.58
|
LinkshellListHandler = 0x010C, // updated 6.08
|
||||||
|
|
||||||
MarketBoardRequestItemListingInfo = 0x02D3, // updated 5.58
|
MarketBoardRequestItemListingInfo = 0x00F4, // updated 5.58 hotfix
|
||||||
MarketBoardRequestItemListings = 0x00AD, // updated 5.58
|
MarketBoardRequestItemListings = 0x0122, // updated 5.58 hotfix
|
||||||
MarketBoardSearch = 0x00D6, // updated 5.58
|
MarketBoardSearch = 0x0082, // updated 5.58 hotfix
|
||||||
|
|
||||||
ReqExamineFcInfo = 0x0359, // updated 5.58
|
ReqExamineFcInfo = 0x037B, // updated 5.58 hotfix
|
||||||
|
|
||||||
FcInfoReqHandler = 0x0078, // updated 5.58
|
FcInfoReqHandler = 0x03D4, // updated 5.58 hotfix
|
||||||
|
|
||||||
FreeCompanyUpdateShortMessageHandler = 0x0123, // added 5.0
|
FreeCompanyUpdateShortMessageHandler = 0x0123, // added 5.0
|
||||||
|
|
||||||
ReqMarketWishList = 0x0364, // updated 5.58
|
ReqMarketWishList = 0x00C3, // updated 5.58 hotfix
|
||||||
|
|
||||||
ReqJoinNoviceNetwork = 0x0129, // updated 4.2
|
ReqJoinNoviceNetwork = 0x0129, // updated 4.2
|
||||||
|
|
||||||
ReqCountdownInitiate = 0x020E, // updated 5.58
|
ReqCountdownInitiate = 0x02EC, // updated 5.58 hotfix
|
||||||
ReqCountdownCancel = 0x03BE, // updated 5.58
|
ReqCountdownCancel = 0x0068, // updated 5.58 hotfix
|
||||||
|
|
||||||
ZoneLineHandler = 0x00B0, // updated 5.58
|
ZoneLineHandler = 0x008D, // updated 5.58 hotfix
|
||||||
ClientTrigger = 0x008B, // updated 5.58
|
ClientTrigger = 0x02F1, // updated 6.08
|
||||||
DiscoveryHandler = 0x01B4, // updated 5.58
|
DiscoveryHandler = 0x038B, // updated 5.58 hotfix
|
||||||
|
|
||||||
PlaceFieldMarkerPreset = 0x03B0, // updated 5.58
|
PlaceFieldMarkerPreset = 0x026D, // updated 5.58 hotfix
|
||||||
PlaceFieldMarker = 0x011A, // updated 5.58
|
PlaceFieldMarker = 0x0371, // updated 5.58 hotfix
|
||||||
SkillHandler = 0x0175, // updated 5.58
|
SkillHandler = 0x008E, // updated 6.08
|
||||||
GMCommand1 = 0x0353, // updated 5.58
|
GMCommand1 = 0x0272, // updated 5.58 hotfix
|
||||||
GMCommand2 = 0x03E7, // updated 5.58
|
GMCommand2 = 0x00E9, // updated 5.58 hotfix
|
||||||
AoESkillHandler = 0x021D, // updated 5.58
|
AoESkillHandler = 0x0152, // updated 5.58 hotfix
|
||||||
|
|
||||||
UpdatePositionHandler = 0x0212, // updated 5.58
|
UpdatePositionHandler = 0x0147, // updated 6.08
|
||||||
|
|
||||||
InventoryModifyHandler = 0x014A, // updated 5.58
|
InventoryModifyHandler = 0x029E, // updated 5.58 hotfix
|
||||||
|
|
||||||
InventoryEquipRecommendedItems = 0x01D7, // updated 5.58
|
InventoryEquipRecommendedItems = 0x01C9, // updated 5.58 hotfix
|
||||||
|
|
||||||
ReqPlaceHousingItem = 0x0354, // updated 5.58
|
ReqPlaceHousingItem = 0x02D4, // updated 5.58 hotfix
|
||||||
BuildPresetHandler = 0x00DC, // updated 5.58
|
BuildPresetHandler = 0x0223, // updated 5.58 hotfix
|
||||||
|
|
||||||
TalkEventHandler = 0x012D, // updated 5.58
|
TalkEventHandler = 0x0387, // updated 5.58 hotfix
|
||||||
EmoteEventHandler = 0x039E, // updated 5.58
|
EmoteEventHandler = 0x00B0, // updated 5.58 hotfix
|
||||||
WithinRangeEventHandler = 0x022C, // updated 5.58
|
WithinRangeEventHandler = 0x02B6, // updated 5.58 hotfix
|
||||||
OutOfRangeEventHandler = 0x0294, // updated 5.58
|
OutOfRangeEventHandler = 0x03C5, // updated 5.58 hotfix
|
||||||
EnterTeriEventHandler = 0x00C1, // updated 5.58
|
EnterTeriEventHandler = 0x01A7, // updated 5.58 hotfix
|
||||||
ShopEventHandler = 0x02B8, // updated 5.58
|
ShopEventHandler = 0x0384, // updated 5.58 hotfix
|
||||||
EventYieldHandler = 0x03A2, // updated 5.58
|
ReturnEventHandler = 0x00FA, // updated 5.58 hotfix
|
||||||
ReturnEventHandler = 0x0333, // updated 5.58
|
TradeReturnEventHandler = 0x0339, // updated 5.58 hotfix
|
||||||
TradeReturnEventHandler = 0x0179, // updated 5.58
|
TradeReturnEventHandler2 = 0x023C, // updated 5.58 hotfix
|
||||||
TradeReturnEventHandler2 = 0x02E1, // updated 5.58
|
EventYield2Handler = 0x021D, // updated 5.58 hotfix
|
||||||
EventYield16Handler = 0x03D7, // updated 5.58
|
EventYield16Handler = 0x0207, // updated 5.58 hotfix
|
||||||
|
|
||||||
LinkshellEventHandler = 0x016B, // updated 4.5
|
LinkshellEventHandler = 0x016B, // updated 4.5
|
||||||
LinkshellEventHandler1 = 0x016C, // updated 4.5
|
LinkshellEventHandler1 = 0x016C, // updated 4.5
|
||||||
|
|
||||||
ReqEquipDisplayFlagsChange = 0x01AD, // updated 5.58
|
ReqEquipDisplayFlagsChange = 0x02A5, // updated 5.58 hotfix
|
||||||
|
|
||||||
LandRenameHandler = 0x0083, // updated 5.58
|
LandRenameHandler = 0x028E, // updated 5.58 hotfix
|
||||||
HousingUpdateHouseGreeting = 0x031A, // updated 5.58
|
HousingUpdateHouseGreeting = 0x0343, // updated 5.58 hotfix
|
||||||
HousingUpdateObjectPosition = 0x010E, // updated 5.58
|
HousingUpdateObjectPosition = 0x012C, // updated 5.58 hotfix
|
||||||
HousingEditExterior = 0x0324, // updated 5.58
|
HousingEditExterior = 0x027B, // updated 5.58 hotfix
|
||||||
HousingEditInterior = 0x02F7, // updated 5.58
|
HousingEditInterior = 0x02E3, // updated 5.58 hotfix
|
||||||
|
|
||||||
SetSharedEstateSettings = 0x0342, // updated 5.58
|
SetSharedEstateSettings = 0x00D2, // updated 5.58 hotfix
|
||||||
|
|
||||||
UpdatePositionInstance = 0x01A3, // updated 5.58
|
UpdatePositionInstance = 0x00F8, // updated 5.58 hotfix
|
||||||
|
|
||||||
PerformNoteHandler = 0x015E, // updated 5.58
|
PerformNoteHandler = 0x0243, // updated 5.58 hotfix
|
||||||
|
|
||||||
WorldInteractionHandler = 0x03CE, // updated 5.58
|
WorldInteractionHandler = 0x0274, // updated 5.58 hotfix
|
||||||
Dive = 0x034C, // updated 5.58
|
Dive = 0x0320, // updated 5.58 hotfix
|
||||||
};
|
};
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -447,7 +447,7 @@ struct FFXIVIpcHousingEditInterior :
|
||||||
};
|
};
|
||||||
|
|
||||||
struct FFXIVIpcEventYieldHandler :
|
struct FFXIVIpcEventYieldHandler :
|
||||||
FFXIVIpcBasePacket< EventYieldHandler >
|
FFXIVIpcBasePacket< EventYield2Handler >
|
||||||
{
|
{
|
||||||
uint32_t eventId;
|
uint32_t eventId;
|
||||||
uint16_t scene;
|
uint16_t scene;
|
||||||
|
|
|
@ -950,7 +950,7 @@ namespace Sapphire::Network::Packets::Server
|
||||||
// plain C types for a bit until the packet is actually fixed.
|
// plain C types for a bit until the packet is actually fixed.
|
||||||
// makes conversion between different editors easier.
|
// makes conversion between different editors easier.
|
||||||
uint64_t contentId;
|
uint64_t contentId;
|
||||||
unsigned int unknown8;
|
uint64_t unknown8;
|
||||||
unsigned int unknownC;
|
unsigned int unknownC;
|
||||||
unsigned int charId;
|
unsigned int charId;
|
||||||
unsigned int restedExp;
|
unsigned int restedExp;
|
||||||
|
@ -960,7 +960,7 @@ namespace Sapphire::Network::Packets::Server
|
||||||
unsigned int useBaitCatalogId;
|
unsigned int useBaitCatalogId;
|
||||||
unsigned int unknown28;
|
unsigned int unknown28;
|
||||||
unsigned short unknownPvp2C;
|
unsigned short unknownPvp2C;
|
||||||
unsigned short unknown3;
|
unsigned short unknown2E;
|
||||||
unsigned int pvpFrontlineOverallCampaigns;
|
unsigned int pvpFrontlineOverallCampaigns;
|
||||||
unsigned int unknownTimestamp34;
|
unsigned int unknownTimestamp34;
|
||||||
unsigned int unknownTimestamp38;
|
unsigned int unknownTimestamp38;
|
||||||
|
@ -985,7 +985,7 @@ namespace Sapphire::Network::Packets::Server
|
||||||
unsigned char expansion;
|
unsigned char expansion;
|
||||||
unsigned char unknown76;
|
unsigned char unknown76;
|
||||||
unsigned char unknown77;
|
unsigned char unknown77;
|
||||||
unsigned char very_unknown;
|
unsigned char unknown78;
|
||||||
unsigned char race;
|
unsigned char race;
|
||||||
unsigned char tribe;
|
unsigned char tribe;
|
||||||
unsigned char gender;
|
unsigned char gender;
|
||||||
|
@ -996,7 +996,7 @@ namespace Sapphire::Network::Packets::Server
|
||||||
unsigned char namedayDay;
|
unsigned char namedayDay;
|
||||||
unsigned char cityState;
|
unsigned char cityState;
|
||||||
unsigned char homepoint;
|
unsigned char homepoint;
|
||||||
unsigned char unknown82;
|
unsigned char unknown83;
|
||||||
unsigned char petHotBar;
|
unsigned char petHotBar;
|
||||||
unsigned char companionRank;
|
unsigned char companionRank;
|
||||||
unsigned char companionStars;
|
unsigned char companionStars;
|
||||||
|
@ -1004,117 +1004,97 @@ namespace Sapphire::Network::Packets::Server
|
||||||
unsigned char companionUnk86;
|
unsigned char companionUnk86;
|
||||||
unsigned char companionColor;
|
unsigned char companionColor;
|
||||||
unsigned char companionFavoFeed;
|
unsigned char companionFavoFeed;
|
||||||
unsigned char unknown89;
|
unsigned char favAetheryteCount;
|
||||||
unsigned char unknown8A[4];
|
unsigned char unknown8C[4];
|
||||||
unsigned char hasRelicBook;
|
unsigned char hasRelicBook;
|
||||||
unsigned char relicBookId;
|
unsigned char relicBookId;
|
||||||
unsigned char unknown90[4];
|
unsigned char sightseeing21to80Unlock;
|
||||||
|
unsigned char sightseeingHeavenswardUnlock;
|
||||||
|
unsigned char unknown94[2];
|
||||||
unsigned char craftingMasterMask;
|
unsigned char craftingMasterMask;
|
||||||
unsigned char unknown95[9];
|
unsigned char unknown97[9];
|
||||||
unsigned char unknown9F[2];
|
unsigned char unknownA0[2];
|
||||||
unsigned char unknownA1[6];
|
unsigned char unknownA2[3];
|
||||||
|
unsigned char unknownA5[3];
|
||||||
unsigned int exp[Common::CLASSJOB_SLOTS];
|
unsigned int exp[Common::CLASSJOB_SLOTS];
|
||||||
unsigned int unknown108;
|
|
||||||
unsigned int pvpTotalExp;
|
unsigned int pvpTotalExp;
|
||||||
unsigned int unknownPvp110;
|
unsigned int unknownPvp124;
|
||||||
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 unknown178[8];
|
||||||
unsigned short u1;
|
unsigned short fishingRecordsFishId[30];
|
||||||
unsigned short u2;
|
unsigned short fishingRecordsFishLength[30];
|
||||||
unsigned short unknown112[23];
|
unsigned short beastExp[14];
|
||||||
unsigned short fishingRecordsFish[26];
|
unsigned short unknown21C[5];
|
||||||
unsigned short beastExp[11];
|
|
||||||
unsigned short unknown1EA[5];
|
|
||||||
unsigned short pvpFrontlineWeeklyRanks[3];
|
unsigned short pvpFrontlineWeeklyRanks[3];
|
||||||
unsigned short unknownMask1FA[4];
|
unsigned short unknownMask22C[7];
|
||||||
unsigned char companionName[21];
|
|
||||||
unsigned char companionDefRank;
|
|
||||||
unsigned char companionAttRank;
|
|
||||||
unsigned char companionHealRank;
|
|
||||||
unsigned char u19[8];
|
|
||||||
unsigned char mountGuideMask[22];
|
|
||||||
unsigned char u19_2;
|
|
||||||
*/
|
|
||||||
unsigned char unknown5_55a[178];
|
|
||||||
unsigned char companionName[21];
|
unsigned char companionName[21];
|
||||||
unsigned char companionDefRank;
|
unsigned char companionDefRank;
|
||||||
unsigned char companionAttRank;
|
unsigned char companionAttRank;
|
||||||
unsigned char companionHealRank;
|
unsigned char companionHealRank;
|
||||||
unsigned char mountGuideMask[29];
|
unsigned char mountGuideMask[29];
|
||||||
//==
|
unsigned char unknown26F[4];
|
||||||
char name[32];
|
char name[32];
|
||||||
unsigned char unknownOword[16];
|
unsigned char unknown293[16];
|
||||||
unsigned char unknownOw;
|
unsigned char unknown2A3;
|
||||||
unsigned char unlockBitmask[64];
|
unsigned char unlockBitmask[64];
|
||||||
unsigned char aetheryte[21];
|
unsigned char aetheryte[21];
|
||||||
unsigned char discovery[445];
|
unsigned char favoriteAetheryteIds[4];
|
||||||
unsigned char howto[34];
|
unsigned char freeAetheryteId;
|
||||||
unsigned char minions[55];
|
unsigned char discovery[464];
|
||||||
|
unsigned char howto[35];
|
||||||
|
unsigned char minions[56];
|
||||||
unsigned char chocoboTaxiMask[10];
|
unsigned char chocoboTaxiMask[10];
|
||||||
unsigned char watchedCutscenes[137];
|
unsigned char watchedCutscenes[144];
|
||||||
unsigned char companionBardingMask[11];
|
unsigned char companionBardingMask[11];
|
||||||
unsigned char companionEquippedHead;
|
unsigned char companionEquippedHead;
|
||||||
unsigned char companionEquippedBody;
|
unsigned char companionEquippedBody;
|
||||||
unsigned char companionEquippedLegs;
|
unsigned char companionEquippedLegs;
|
||||||
/*
|
unsigned char unknown5D1[4];
|
||||||
unsigned char unknown52A[4];
|
unsigned char unknownMask5D5[11];
|
||||||
unsigned char unknownMask52E[11];
|
unsigned char fishingGuideMask[142];
|
||||||
unsigned char fishingGuideMask[105];
|
unsigned char fishingSpotVisited[38];
|
||||||
unsigned char fishingSpotVisited[31];
|
unsigned char unknown694[34];
|
||||||
unsigned char unknown59A[27];
|
unsigned char unknown6B6[7];
|
||||||
unsigned char unknown5A9[7];
|
unsigned char unknownPvp6BD[3];
|
||||||
unsigned char beastRank[11];
|
unsigned char beastRank[14];
|
||||||
unsigned char unknownPvp5AB[11];
|
unsigned char unknownPvp6CE[12];
|
||||||
unsigned char unknown5B9[5];
|
|
||||||
*/
|
|
||||||
unsigned char unknown5_45b[236];
|
|
||||||
//==
|
|
||||||
unsigned char pose;
|
unsigned char pose;
|
||||||
/*
|
unsigned char pose2[4];
|
||||||
unsigned char unknown5B91;
|
unsigned char unknown6DF[3];
|
||||||
unsigned char challengeLogComplete[9];
|
unsigned char challengeLogComplete[13];
|
||||||
unsigned char weaponPose;
|
unsigned char unknownMask6EF[8];
|
||||||
unsigned char unknownMask673[10];
|
unsigned char unknownMask6F7[31];
|
||||||
unsigned char unknownMask5DD[28];
|
|
||||||
unsigned char relicCompletion[12];
|
unsigned char relicCompletion[12];
|
||||||
unsigned char sightseeingMask[26];
|
unsigned char sightseeingMask[37];
|
||||||
unsigned char huntingMarkMask[55];
|
unsigned char huntingMarkMask[101];
|
||||||
unsigned char tripleTriadCards[32];
|
unsigned char tripleTriadCards[43];
|
||||||
unsigned char u12[11];
|
unsigned char unknown7D7;
|
||||||
unsigned char u13;
|
unsigned char unknown7D8[14];
|
||||||
unsigned char aetherCurrentMask[22];
|
unsigned char unknown7E6[36];
|
||||||
unsigned char u10[3];
|
unsigned char unknown80A[6];
|
||||||
*/
|
unsigned char orchestrionMask[64];
|
||||||
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_55b
|
|
||||||
unsigned char hallOfNoviceCompletion[3];
|
unsigned char hallOfNoviceCompletion[3];
|
||||||
unsigned char animaCompletion[11];
|
unsigned char animaCompletion[11];
|
||||||
unsigned char unknown5_55c[35];
|
unsigned char unknown85E[16];
|
||||||
|
unsigned char unknown86E[4];
|
||||||
|
unsigned char unknown872[14];
|
||||||
|
unsigned char unknown880;
|
||||||
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[11];
|
||||||
at least 8 bytes at most 10 bytes in unlockedTrials not confirmed, adjust unlockedPvp so they share a total of 15 bytes and sync with clearedTrials/clearedPvp.
|
unsigned char unlockedPvp[5];
|
||||||
*/
|
|
||||||
unsigned char unlockedTrials[9];
|
|
||||||
unsigned char unlockedPvp[6];
|
|
||||||
//==
|
|
||||||
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[9];
|
unsigned char clearedTrials[11];
|
||||||
unsigned char clearedPvp[6];
|
unsigned char clearedPvp[5];
|
||||||
/*
|
unsigned char unknown911[4];
|
||||||
unsigned short fishingRecordsFishWeight[26];
|
unsigned char unknown915[2];
|
||||||
unsigned int exploratoryMissionNextTimestamp;
|
unsigned char unknown917[3];
|
||||||
unsigned char pvpLevel;
|
|
||||||
*/
|
|
||||||
unsigned char unknown5_55d[9];
|
|
||||||
//==
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -239,10 +239,12 @@ public:
|
||||||
packetData.actors[0].charId = p1->getId();
|
packetData.actors[0].charId = p1->getId();
|
||||||
packetData.actors[0].guardianDeity = p1->getGuardianDeity();
|
packetData.actors[0].guardianDeity = p1->getGuardianDeity();
|
||||||
packetData.actors[0].models[ Common::GearModelSlot::ModelHead ] = p1->getModelForSlot( Common::GearModelSlot::ModelHead );
|
packetData.actors[0].models[ Common::GearModelSlot::ModelHead ] = p1->getModelForSlot( Common::GearModelSlot::ModelHead );
|
||||||
player.sendUrgent("p1 Head Model: {}", p1->getModelForSlot(Common::GearModelSlot::ModelHead));
|
|
||||||
if ((p1->getModelForSlot(Common::GearModelSlot::ModelHead) & 0xFF) == 208)
|
if ((p1->getModelForSlot(Common::GearModelSlot::ModelHead) & 0xFF) == 208)
|
||||||
{
|
{
|
||||||
player.sendUrgent("Replacing p1 Model");
|
instance.foreachPlayer( []( auto p )
|
||||||
|
{
|
||||||
|
p->sendUrgent("Replacing p1 Model");
|
||||||
|
});
|
||||||
uint32_t gear = p1->getModelForSlot(Common::GearModelSlot::ModelHead) & 0xFFFFFF00;
|
uint32_t gear = p1->getModelForSlot(Common::GearModelSlot::ModelHead) & 0xFFFFFF00;
|
||||||
packetData.actors[0].models[Common::GearModelSlot::ModelHead] = gear | 0xC7;
|
packetData.actors[0].models[Common::GearModelSlot::ModelHead] = gear | 0xC7;
|
||||||
}
|
}
|
||||||
|
@ -256,7 +258,6 @@ public:
|
||||||
packetData.actors[0].models[ Common::GearModelSlot::ModelRing2 ] = p1->getModelForSlot( Common::GearModelSlot::ModelRing2 );
|
packetData.actors[0].models[ Common::GearModelSlot::ModelRing2 ] = p1->getModelForSlot( Common::GearModelSlot::ModelRing2 );
|
||||||
packetData.actors[0].models[ Common::GearModelSlot::ModelWrist ] = p1->getModelForSlot( Common::GearModelSlot::ModelWrist );
|
packetData.actors[0].models[ Common::GearModelSlot::ModelWrist ] = p1->getModelForSlot( Common::GearModelSlot::ModelWrist );
|
||||||
memcpy( packetData.actors[0].look, p1->getLookArray(), sizeof( packetData.actors[0].look ) );
|
memcpy( packetData.actors[0].look, p1->getLookArray(), sizeof( packetData.actors[0].look ) );
|
||||||
player.sendUrgent("p2 Head Model: {}", p2->getModelForSlot(Common::GearModelSlot::ModelHead));
|
|
||||||
if( !( p2->getEquipDisplayFlags() & Sapphire::Common::EquipDisplayFlags::HideWeapon ) )
|
if( !( p2->getEquipDisplayFlags() & Sapphire::Common::EquipDisplayFlags::HideWeapon ) )
|
||||||
{
|
{
|
||||||
packetData.actors[1].mainWeaponModel = p2->getModelMainWeapon();
|
packetData.actors[1].mainWeaponModel = p2->getModelMainWeapon();
|
||||||
|
@ -267,7 +268,10 @@ public:
|
||||||
packetData.actors[1].models[ Common::GearModelSlot::ModelHead ] = p2->getModelForSlot( Common::GearModelSlot::ModelHead );
|
packetData.actors[1].models[ Common::GearModelSlot::ModelHead ] = p2->getModelForSlot( Common::GearModelSlot::ModelHead );
|
||||||
if ((p2->getModelForSlot(Common::GearModelSlot::ModelHead) & 0xFF) == 208)
|
if ((p2->getModelForSlot(Common::GearModelSlot::ModelHead) & 0xFF) == 208)
|
||||||
{
|
{
|
||||||
player.sendUrgent("Replacing p2 Model");
|
instance.foreachPlayer([](auto p)
|
||||||
|
{
|
||||||
|
p->sendUrgent("Replacing p2 Model");
|
||||||
|
});
|
||||||
uint32_t gear = p2->getModelForSlot(Common::GearModelSlot::ModelHead) & 0xFFFFFF00;
|
uint32_t gear = p2->getModelForSlot(Common::GearModelSlot::ModelHead) & 0xFFFFFF00;
|
||||||
packetData.actors[1].models[Common::GearModelSlot::ModelHead] = gear | 0xC7;
|
packetData.actors[1].models[Common::GearModelSlot::ModelHead] = gear | 0xC7;
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,7 +53,7 @@ std::vector< std::string > reservedWords
|
||||||
};
|
};
|
||||||
|
|
||||||
//std::string datLocation( "/home/mordred/sqpack" );
|
//std::string datLocation( "/home/mordred/sqpack" );
|
||||||
std::string datLocation( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" );
|
std::string datLocation( "D:\\Program Files (x86)\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" );
|
||||||
std::map< uint8_t, std::string > g_typeMap;
|
std::map< uint8_t, std::string > g_typeMap;
|
||||||
|
|
||||||
|
|
||||||
|
@ -408,6 +408,8 @@ int main( int argc, char** argv )
|
||||||
|
|
||||||
auto name = path.stem().string();
|
auto name = path.stem().string();
|
||||||
|
|
||||||
|
Logger::info("Filename: " + name);
|
||||||
|
|
||||||
if( std::find( cats.begin(), cats.end(), name ) == cats.end() )
|
if( std::find( cats.begin(), cats.end(), name ) == cats.end() )
|
||||||
{
|
{
|
||||||
Logger::warn( "have definition for {} but the sheet doesn't exist", name );
|
Logger::warn( "have definition for {} but the sheet doesn't exist", name );
|
||||||
|
@ -441,7 +443,7 @@ int main( int argc, char** argv )
|
||||||
result = std::regex_replace( result, std::regex( "\\IDLISTGETTERS" ), idListGetters );
|
result = std::regex_replace( result, std::regex( "\\IDLISTGETTERS" ), idListGetters );
|
||||||
|
|
||||||
|
|
||||||
// g_log.info( result );
|
Logger::info( result );
|
||||||
|
|
||||||
std::ofstream outH( "ExdDataGenerated.h" );
|
std::ofstream outH( "ExdDataGenerated.h" );
|
||||||
outH << result;
|
outH << result;
|
||||||
|
@ -455,7 +457,7 @@ int main( int argc, char** argv )
|
||||||
outC << result;
|
outC << result;
|
||||||
outC.close();
|
outC.close();
|
||||||
|
|
||||||
// g_log.info( result );
|
Logger::info(result);
|
||||||
|
|
||||||
Logger::info( "done." );
|
Logger::info( "done." );
|
||||||
|
|
||||||
|
|
|
@ -1052,8 +1052,8 @@ bool Sapphire::Entity::Player::giveQuestRewards( uint32_t questId, uint32_t opti
|
||||||
|
|
||||||
exp = questInfo->expFactor;
|
exp = questInfo->expFactor;
|
||||||
|
|
||||||
auto rewardItemCount = questInfo->itemReward0.size();
|
auto rewardItemCount = questInfo->itemReward.size();
|
||||||
uint16_t optionalItemCount = static_cast< uint16_t >( questInfo->itemReward1.size() );
|
uint16_t optionalItemCount = static_cast< uint16_t >( questInfo->optionalItemReward.size() );
|
||||||
|
|
||||||
uint32_t gilReward = questInfo->gilReward;
|
uint32_t gilReward = questInfo->gilReward;
|
||||||
|
|
||||||
|
@ -1065,10 +1065,10 @@ bool Sapphire::Entity::Player::giveQuestRewards( uint32_t questId, uint32_t opti
|
||||||
{
|
{
|
||||||
for( uint32_t i = 0; i < rewardItemCount; i++ )
|
for( uint32_t i = 0; i < rewardItemCount; i++ )
|
||||||
{
|
{
|
||||||
auto itemId = questInfo->itemReward0.at( i );
|
auto itemId = questInfo->itemReward.at( i );
|
||||||
if( itemId > 0 )
|
if( itemId > 0 )
|
||||||
{
|
{
|
||||||
addItem( itemId, questInfo->itemCountReward0.at( i ), false, false, true, true );
|
addItem( itemId, questInfo->itemCountReward.at( i ), false, false, true, true );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1077,10 +1077,10 @@ bool Sapphire::Entity::Player::giveQuestRewards( uint32_t questId, uint32_t opti
|
||||||
{
|
{
|
||||||
for( uint32_t i = 0; i < optionalItemCount; i++ )
|
for( uint32_t i = 0; i < optionalItemCount; i++ )
|
||||||
{
|
{
|
||||||
auto itemId = questInfo->itemReward1.at( i );
|
auto itemId = questInfo->optionalItemReward.at( i );
|
||||||
if( itemId > 0 && itemId == optionalChoice )
|
if( itemId > 0 && itemId == optionalChoice )
|
||||||
{
|
{
|
||||||
addItem( itemId, questInfo->itemCountReward1.at( i ), false, false, true, true );
|
addItem( itemId, questInfo->optionalItemReward.at( i ), false, false, true, true );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -304,6 +304,20 @@ void Sapphire::World::Manager::DebugCommandMgr::set( char* data, Entity::Player&
|
||||||
{
|
{
|
||||||
terriMgr.disableCurrentFestival();
|
terriMgr.disableCurrentFestival();
|
||||||
}
|
}
|
||||||
|
else if(subCommand == "finishallquests")
|
||||||
|
{
|
||||||
|
for (int i = 65536; i < 69637; i++)
|
||||||
|
{
|
||||||
|
player.finishQuest(static_cast<uint16_t>(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (subCommand == "unfinishallquests")
|
||||||
|
{
|
||||||
|
for (int i = 65536; i < 69637; i++)
|
||||||
|
{
|
||||||
|
player.unfinishQuest(static_cast<uint16_t>(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
else if( subCommand == "QuestVar" )
|
else if( subCommand == "QuestVar" )
|
||||||
{
|
{
|
||||||
uint16_t questId;
|
uint16_t questId;
|
||||||
|
|
|
@ -106,7 +106,7 @@ Sapphire::Network::GameConnection::GameConnection( Sapphire::Network::HivePtr pH
|
||||||
setZoneHandler( ClientZoneIpcType::TradeReturnEventHandler, "TradeReturnEventHandler",
|
setZoneHandler( ClientZoneIpcType::TradeReturnEventHandler, "TradeReturnEventHandler",
|
||||||
&GameConnection::eventHandlerReturn );
|
&GameConnection::eventHandlerReturn );
|
||||||
setZoneHandler( ClientZoneIpcType::TradeReturnEventHandler2, "TradeReturnEventHandler2", &GameConnection::eventHandlerReturn );
|
setZoneHandler( ClientZoneIpcType::TradeReturnEventHandler2, "TradeReturnEventHandler2", &GameConnection::eventHandlerReturn );
|
||||||
setZoneHandler( ClientZoneIpcType::EventYieldHandler, "EventYieldHandler", &GameConnection::eventYieldHandler );
|
setZoneHandler( ClientZoneIpcType::EventYield2Handler, "EventYieldHandler", &GameConnection::eventYieldHandler );
|
||||||
setZoneHandler( ClientZoneIpcType::EventYield16Handler, "EventYield16Handler", &GameConnection::eventYieldHandler );
|
setZoneHandler( ClientZoneIpcType::EventYield16Handler, "EventYield16Handler", &GameConnection::eventYieldHandler );
|
||||||
|
|
||||||
setZoneHandler( ClientZoneIpcType::ShopEventHandler, "ShopEventHandler",
|
setZoneHandler( ClientZoneIpcType::ShopEventHandler, "ShopEventHandler",
|
||||||
|
|
|
@ -62,6 +62,8 @@ bool Sapphire::HousingZone::init()
|
||||||
housingIndex = 2;
|
housingIndex = 2;
|
||||||
else if( m_territoryTypeId == 641 )
|
else if( m_territoryTypeId == 641 )
|
||||||
housingIndex = 3;
|
housingIndex = 3;
|
||||||
|
else if (m_territoryTypeId == 979)
|
||||||
|
housingIndex = 4;
|
||||||
|
|
||||||
auto& exdData = Common::Service< Data::ExdDataGenerated >::ref();
|
auto& exdData = Common::Service< Data::ExdDataGenerated >::ref();
|
||||||
auto info = exdData.get< Sapphire::Data::HousingLandSet >( housingIndex );
|
auto info = exdData.get< Sapphire::Data::HousingLandSet >( housingIndex );
|
||||||
|
|
Loading…
Add table
Reference in a new issue