1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-26 22:37:45 +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 CURRENT_EXPANSION_ID = 3;
const uint8_t CLASSJOB_TOTAL = 38; const uint8_t CLASSJOB_TOTAL = 38;
const uint8_t CLASSJOB_SLOTS = 28; const uint8_t CLASSJOB_SLOTS = 30;
const uint8_t TOWN_COUNT = 6; const uint8_t TOWN_COUNT = 6;
@ -51,11 +51,11 @@ namespace Sapphire::Common
enum InventoryOperation : uint16_t enum InventoryOperation : uint16_t
{ {
Discard = 0x0117, Discard = 0x01DE,
Move = 0x0118, Move = 0x01DF,
Swap = 0x0119, Swap = 0x01E0,
Split = 0x011A, Split = 0x01E1,
Merge = 0x011C, Merge = 0x01E3,
}; };
enum ClientLanguage : uint8_t enum ClientLanguage : uint8_t

View file

@ -204,6 +204,7 @@ enum class ContentType : uint8_t
WondrousTails = 24, WondrousTails = 24,
CustomDeliveries = 25, CustomDeliveries = 25,
Eureka = 26, Eureka = 26,
UltimateRaids = 28,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -672,14 +673,14 @@ enum class Weather : uint8_t
Moonlight1 = 98, Moonlight1 = 98,
Moonlight2 = 99, Moonlight2 = 99,
Moonlight3 = 100, Moonlight3 = 100,
FairSkies10 = 101, RedMoon = 101,
Scarlet = 102, Scarlet = 102,
Scarlet1 = 103, Scarlet1 = 103,
Scarlet2 = 104, Scarlet2 = 104,
FairSkies11 = 105, FairSkies10 = 105,
FairSkies12 = 106, FairSkies11 = 106,
FairSkies13 = 107, FairSkies12 = 107,
FairSkies14 = 108, FairSkies13 = 108,
Flames = 109, Flames = 109,
Tsunamis = 110, Tsunamis = 110,
Cyclones = 111, Cyclones = 111,
@ -701,7 +702,23 @@ enum class Weather : uint8_t
Termination2 = 127, Termination2 = 127,
Termination3 = 128, Termination3 = 128,
EverlastingLight1 = 129, EverlastingLight1 = 129,
Eruptions1 = 130,
Termination4 = 131, 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, Bathhouse = 18,
Garden = 19, Garden = 19,
FarEastern = 20, 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 enum ServerZoneIpcType : uint16_t
{ {
Ping = 0x0183, // updated 5.45 hotfix Ping = 0x0289, // updated 5.55 hotfix
Init = 0x01EA, // updated 5.45 hotfix Init = 0x0203, // updated 5.55 hotfix
ActorFreeSpawn = 0x0185, // updated 5.45 hotfix ActorFreeSpawn = 0x01C5, // updated 5.55 hotfix
InitZone = 0x0233, // updated 5.45 hotfix InitZone = 0x021C, // updated 5.55 hotfix
EffectResult = 0x01D7, // updated 5.45 hotfix EffectResult = 0x01E9, // updated 5.55 hotfix
ActorControl = 0x00C2, // updated 5.45 hotfix ActorControl = 0x01C8, // updated 5.55 hotfix
ActorControlSelf = 0x03D5, // updated 5.45 hotfix ActorControlSelf = 0x035A, // updated 5.55 hotfix
ActorControlTarget = 0x0171, // updated 5.45 hotfix ActorControlTarget = 0x0338, // updated 5.55 hotfix
/*! /*!
* @brief Used when resting * @brief Used when resting
*/ */
UpdateHpMpTp = 0x019B, // updated 5.45 hotfix UpdateHpMpTp = 0x0077, // updated 5.55 hotfix
/////////////////////////////////////////////////// ///////////////////////////////////////////////////
ChatBanned = 0xF06B, ChatBanned = 0xF06B,
Playtime = 0x0302, // updated 5.45 hotfix Playtime = 0x0348, // updated 5.55 hotfix
Logout = 0x012A, // updated 5.45 hotfix Logout = 0x0292, // updated 5.55 hotfix
CFNotify = 0x026E, // updated 5.45 hotfix CFNotify = 0x00DC, // updated 5.55 hotfix
CFMemberStatus = 0x0079, CFMemberStatus = 0x0079,
CFDutyInfo = 0x0145, // updated 5.45 hotfix CFDutyInfo = 0x02A3, // updated 5.55 hotfix
CFPlayerInNeed = 0xF07F, CFPlayerInNeed = 0xF07F,
CFPreferredRole = 0x012E, // updated 5.45 hotfix CFPreferredRole = 0x02B6, // updated 5.55 hotfix
CFCancel = 0x0312, // updated 5.45 hotfix CFCancel = 0x0262, // updated 5.55 hotfix
SocialRequestError = 0xF0AD, SocialRequestError = 0xF0AD,
CFRegistered = 0x01FB, // updated 5.45 hotfix CFRegistered = 0x0114, // updated 5.55 hotfix
SocialRequestResponse = 0x03A5, // updated 5.45 hotfix SocialRequestResponse = 0x033C, // updated 5.55 hotfix
SocialMessage = 0x030C, // updated 5.45 hotfix SocialMessage = 0x0304, // updated 5.55 hotfix
SocialMessage2 = 0x00BB, // updated 5.45 hotfix SocialMessage2 = 0x01B4, // updated 5.55 hotfix
CancelAllianceForming = 0x00C6, // updated 4.2 CancelAllianceForming = 0x00C6, // updated 4.2
LogMessage = 0x00D0, LogMessage = 0x00D0,
Chat = 0x01BA, // updated 5.45 hotfix Chat = 0x0384, // updated 5.55 hotfix
PartyChat = 0x0065, PartyChat = 0x0065,
WorldVisitList = 0xF0FE, // added 4.5 WorldVisitList = 0xF0FE, // added 4.5
SocialList = 0x0315, // updated 5.45 hotfix SocialList = 0x00DD, // updated 5.55 hotfix
ExamineSearchInfo = 0x035F, // updated 5.45 hotfix ExamineSearchInfo = 0x022A, // updated 5.55 hotfix
UpdateSearchInfo = 0x0310, // updated 5.45 hotfix UpdateSearchInfo = 0x03DF, // updated 5.55 hotfix
InitSearchInfo = 0x01ED, // updated 5.45 hotfix InitSearchInfo = 0x00F8, // updated 5.55 hotfix
ExamineSearchComment = 0x0102, // updated 4.1 ExamineSearchComment = 0x0102, // updated 4.1
ServerNoticeShort = 0x03B4, // updated 5.45 hotfix ServerNoticeShort = 0x032D, // updated 5.55 hotfix
ServerNotice = 0x0354, // updated 5.45 hotfix ServerNotice = 0x02CA, // updated 5.55 hotfix
SetOnlineStatus = 0x0166, // updated 5.45 hotfix SetOnlineStatus = 0x03A9, // updated 5.55 hotfix
CountdownInitiate = 0x0237, // updated 5.25 CountdownInitiate = 0x0237, // updated 5.25
CountdownCancel = 0x00D9, // updated 5.18 CountdownCancel = 0x00D9, // updated 5.18
PlayerAddedToBlacklist = 0x033F, // updated 5.1 PlayerAddedToBlacklist = 0x033F, // updated 5.1
PlayerRemovedFromBlacklist = 0x0385, // updated 5.1 PlayerRemovedFromBlacklist = 0x0385, // updated 5.1
BlackList = 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 MailDeleteRequest = 0xF12B, // updated 5.0
@ -114,87 +114,87 @@ namespace Sapphire::Network::Packets
MarketTaxRates = 0x01F8, // updated 5.35 hotfix MarketTaxRates = 0x01F8, // updated 5.35 hotfix
MarketBoardSearchResult = 0x01D6, // updated 5.45 hotfix MarketBoardSearchResult = 0x039D, // updated 5.55 hotfix
MarketBoardItemListingCount = 0x00C0, // updated 5.45 hotfix MarketBoardItemListingCount = 0x0277, // updated 5.55 hotfix
MarketBoardItemListingHistory = 0x01C3, // updated 5.45 hotfix MarketBoardItemListingHistory = 0x0320, // updated 5.55 hotfix
MarketBoardItemListing = 0x016B, // updated 5.45 hotfix MarketBoardItemListing = 0x026B, // updated 5.55 hotfix
CharaFreeCompanyTag = 0x013B, // updated 4.5 CharaFreeCompanyTag = 0x013B, // updated 4.5
FreeCompanyBoardMsg = 0x013C, // 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 ExamineFreeCompanyInfo = 0xF13E, // updated 4.5
FreeCompanyUpdateShortMessage = 0xF157, // added 5.0 FreeCompanyUpdateShortMessage = 0xF157, // added 5.0
StatusEffectList = 0x0243, // updated 5.45 hotfix StatusEffectList = 0x018A, // updated 5.55 hotfix
EurekaStatusEffectList = 0x0167, // updated 5.18 EurekaStatusEffectList = 0x0167, // updated 5.18
BossStatusEffectList = 0x0312, // added 5.1 BossStatusEffectList = 0x0312, // added 5.1
Effect = 0x027F, // updated 5.45 hotfix Effect = 0x0283, // updated 5.55 hotfix
AoeEffect8 = 0x009B, // updated 5.45 hotfix AoeEffect8 = 0x025B, // updated 5.55 hotfix
AoeEffect16 = 0x028C, // updated 5.45 hotfix AoeEffect16 = 0x015D, // updated 5.55 hotfix
AoeEffect24 = 0x02AD, // updated 5.45 hotfix AoeEffect24 = 0x0091, // updated 5.55 hotfix
AoeEffect32 = 0x00A7, // updated 5.45 hotfix AoeEffect32 = 0x0169, // updated 5.55 hotfix
PersistantEffect = 0x0244, // updated 5.45 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 PlayerSpawn = 0x02C1, // updated 5.55 hotfix
NpcSpawn = 0x02C9, // updated 5.45 hotfix NpcSpawn = 0x00F1, // updated 5.55 hotfix
NpcSpawn2 = 0x01CB, // ( Bigger statuseffectlist? ) updated 5.3 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 SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18
PartyList = 0x00F5, // updated 5.45 hotfix PartyList = 0x01B7, // updated 5.55 hotfix
PartyMessage = 0x01BC, // updated 5.45 hotfix PartyMessage = 0x01C1, // updated 5.55 hotfix
HateRank = 0x0217, // updated 5.45 hotfix HateRank = 0x006E, // updated 5.55 hotfix
HateList = 0x00E5, // updated 5.45 hotfix HateList = 0x01F1, // updated 5.55 hotfix
ObjectSpawn = 0x0336, // updated 5.45 hotfix ObjectSpawn = 0x00FE, // updated 5.55 hotfix
ObjectDespawn = 0x02D0, // updated 5.45 hotfix ObjectDespawn = 0x0201, // updated 5.55 hotfix
UpdateClassInfo = 0x0179, // updated 5.45 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 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 PlayerSetup = 0x01E7, // updated 5.55 hotfix
PlayerStats = 0x01CC, // updated 5.45 hotfix PlayerStats = 0x012E, // updated 5.55 hotfix
ActorOwner = 0x0153, // updated 5.45 hotfix ActorOwner = 0x00EB, // updated 5.55 hotfix
PlayerStateFlags = 0x02DC, // updated 5.45 hotfix PlayerStateFlags = 0x0190, // updated 5.55 hotfix
PlayerClassInfo = 0x02F0, // updated 5.45 hotfix PlayerClassInfo = 0x022B, // updated 5.55 hotfix
CharaVisualEffect = 0x026A, // updated 5.45 hotfix CharaVisualEffect = 0x033A, // updated 5.55 hotfix
ModelEquip = 0x024A, // updated 5.45 hotfix ModelEquip = 0x0264, // updated 5.55 hotfix
Examine = 0x0261, // updated 5.45 hotfix Examine = 0x027C, // updated 5.55 hotfix
CharaNameReq = 0x0380, // updated 5.45 hotfix CharaNameReq = 0x02EC, // updated 5.55 hotfix
// nb: see #565 on github // nb: see #565 on github
UpdateRetainerItemSalePrice = 0xF19F, // updated 5.0 UpdateRetainerItemSalePrice = 0xF19F, // updated 5.0
RetainerSaleHistory = 0x020E, // updated 5.21 hotfix 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 SetLevelSync = 0x1186, // not updated for 4.4, not sure what it is anymore
ItemInfo = 0x0175, // updated 5.45 hotfix ItemInfo = 0x02D3, // updated 5.55 hotfix
ContainerInfo = 0x0193, // updated 5.45 hotfix ContainerInfo = 0x00CF, // updated 5.55 hotfix
InventoryTransactionFinish = 0x00BD, // updated 5.45 hotfix InventoryTransactionFinish = 0x02EE, // updated 5.55 hotfix
InventoryTransaction = 0x02EE, // updated 5.45 hotfix InventoryTransaction = 0x02FA, // updated 5.55 hotfix
CurrencyCrystalInfo = 0x0363, // updated 5.45 hotfix CurrencyCrystalInfo = 0x0166, // updated 5.55 hotfix
InventoryActionAck = 0x02FA, // updated 5.45 hotfix InventoryActionAck = 0x027D, // updated 5.55 hotfix
UpdateInventorySlot = 0x017D, // updated 5.45 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 EventPlay = 0x0369, // updated 5.55 hotfix
EventPlay4 = 0x028D, // updated 5.45 hotfix EventPlay4 = 0x0247, // updated 5.55 hotfix
EventPlay8 = 0x0318, // updated 5.45 hotfix EventPlay8 = 0x0227, // updated 5.55 hotfix
EventPlay16 = 0x020D, // updated 5.45 hotfix EventPlay16 = 0x00C5, // updated 5.55 hotfix
EventPlay32 = 0x03B5, // updated 5.45 hotfix EventPlay32 = 0x0184, // updated 5.55 hotfix
EventPlay64 = 0x039E, // updated 5.45 hotfix EventPlay64 = 0x011A, // updated 5.55 hotfix
EventPlay128 = 0x02F4, // updated 5.45 hotfix EventPlay128 = 0x01B3, // updated 5.55 hotfix
EventPlay255 = 0x009D, // updated 5.45 hotfix EventPlay255 = 0x0240, // updated 5.55 hotfix
EventYield = 0x0268, // updated 5.45 hotfix EventYield = 0x02CB, // updated 5.55 hotfix
//EventYield4 = 0x0000, //EventYield4 = 0x0000,
//EventYield8 = 0x0000, //EventYield8 = 0x0000,
//EventYield16 = 0x0000, //EventYield16 = 0x0000,
@ -203,89 +203,89 @@ namespace Sapphire::Network::Packets
//EventYield128 = 0x0000, //EventYield128 = 0x0000,
//EventYield255 = 0x0000, //EventYield255 = 0x0000,
EventStart = 0x02DE, // updated 5.45 hotfix EventStart = 0x0145, // updated 5.55 hotfix
EventFinish = 0x01A3, // updated 5.45 hotfix EventFinish = 0x0174, // updated 5.55 hotfix
EventLinkshell = 0x1169, EventLinkshell = 0x1169,
QuestActiveList = 0x015A, // updated 5.45 hotfix QuestActiveList = 0x0381, // updated 5.55 hotfix
QuestUpdate = 0x037B, // updated 5.45 hotfix QuestUpdate = 0x031B, // updated 5.55 hotfix
QuestCompleteList = 0x0287, // updated 5.45 hotfix QuestCompleteList = 0x031A, // updated 5.55 hotfix
QuestFinish = 0x0066, // updated 5.45 hotfix QuestFinish = 0x00E0, // updated 5.55 hotfix
MSQTrackerComplete = 0xF1D6, // updated 5.0 MSQTrackerComplete = 0xF1D6, // updated 5.0
MSQTrackerProgress = 0xF1CD, // updated 4.5 ? this actually looks like the two opcodes have been combined, see #474 MSQTrackerProgress = 0xF1CD, // updated 4.5 ? this actually looks like the two opcodes have been combined, see #474
QuestMessage = 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 SomeDirectorUnk1 = 0x0084, // updated 5.18
SomeDirectorUnk2 = 0xF0C1, // 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 SomeDirectorUnk8 = 0x028A, // updated 5.18
SomeDirectorUnk16 = 0x028C, // updated 5.18 SomeDirectorUnk16 = 0x028C, // updated 5.18
DirectorPopUp = 0xF162, // updated 5.18 - display dialogue pop-ups in duties and FATEs, for example, Teraflare's countdown DirectorPopUp = 0xF162, // updated 5.18 (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 DirectorPopUp4 = 0x0214, // updated 5.18
DirectorPopUp8 = 0x00F8, // updated 5.18 DirectorPopUp8 = 0x00F8, // updated 5.18
CFAvailableContents = 0xF1FD, // updated 4.2 CFAvailableContents = 0xF1FD, // updated 4.2
WeatherChange = 0x0167, // updated 5.45 hotfix WeatherChange = 0x0386, // updated 5.55 hotfix
PlayerTitleList = 0x00F3, // updated 5.45 hotfix PlayerTitleList = 0x0181, // updated 5.55 hotfix
Discovery = 0x0247, // updated 5.45 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 MiniCactpotInit = 0x0286, // added 5.31
ShopMessage = 0x02FC, // updated 5.45 hotfix ShopMessage = 0x0162, // updated 5.55 hotfix
LootMessage = 0x03B8, // updated 5.45 hotfix LootMessage = 0x0299, // updated 5.55 hotfix
ResultDialog = 0x0296, // updated 5.45 hotfix ResultDialog = 0x025D, // updated 5.55 hotfix
DesynthResult = 0x0323, // updated 5.45 hotfix DesynthResult = 0x0323, // updated 5.55 hotfix
/// Housing ////////////////////////////////////// /// Housing //////////////////////////////////////
LandSetInitialize = 0x03E2, // updated 5.45 hotfix LandSetInitialize = 0x01E4, // updated 5.55 hotfix
LandUpdate = 0x027E, // updated 5.45 hotfix LandUpdate = 0x012B, // updated 5.55 hotfix
YardObjectSpawn = 0x010E, // updated 5.45 hotfix YardObjectSpawn = 0x0249, // updated 5.55 hotfix
HousingIndoorInitialize = 0x01A9, // updated 5.45 hotfix HousingIndoorInitialize = 0x0133, // updated 5.55 hotfix
LandPriceUpdate = 0x0379, // updated 5.45 hotfix LandPriceUpdate = 0x00AA, // updated 5.55 hotfix
LandInfoSign = 0x0398, // updated 5.45 hotfix LandInfoSign = 0x023D, // updated 5.55 hotfix
LandRename = 0x00F6, // updated 5.45 hotfix LandRename = 0x0158, // updated 5.55 hotfix
HousingEstateGreeting = 0x037D, // updated 5.45 hotfix HousingEstateGreeting = 0x018D, // updated 5.55 hotfix
HousingUpdateLandFlagsSlot = 0x03AF, // updated 5.45 hotfix HousingUpdateLandFlagsSlot = 0x03C8, // updated 5.55 hotfix
HousingLandFlags = 0x033B, // updated 5.45 hotfix HousingLandFlags = 0x037E, // updated 5.55 hotfix
HousingShowEstateGuestAccess = 0x01B3, // updated 5.45 hotfix HousingShowEstateGuestAccess = 0x01F8, // updated 5.55 hotfix
HousingObjectInitialize = 0x00B5, // updated 5.45 hotfix HousingObjectInitialize = 0x0331, // updated 5.55 hotfix
HousingInternalObjectSpawn = 0x00BC, // updated 5.45 hotfix HousingInternalObjectSpawn = 0x0092, // updated 5.55 hotfix
HousingWardInfo = 0x015E, // updated 5.45 hotfix HousingWardInfo = 0x0279, // updated 5.55 hotfix
HousingObjectMove = 0x03E6, // updated 5.45 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 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 PrepareZoning = 0x00A4, // updated 5.55 hotfix
ActorGauge = 0x018E, // updated 5.45 hotfix ActorGauge = 0x03B1, // updated 5.55 hotfix
DutyGauge = 0x00D2, // updated 5.45 hotfix DutyGauge = 0x01D3, // updated 5.55 hotfix
// daily quest info -> without them sent, login will take longer... // daily quest info -> without them sent, login will take longer...
DailyQuests = 0x02C4, // updated 5.45 hotfix DailyQuests = 0x0371, // updated 5.55 hotfix
DailyQuestRepeatFlags = 0x024D, // updated 5.45 hotfix DailyQuestRepeatFlags = 0x021F, // updated 5.55 hotfix
/// Doman Mahjong ////////////////////////////////////// /// Doman Mahjong //////////////////////////////////////
MahjongOpenGui = 0x02A4, // only available in mahjong instance MahjongOpenGui = 0x02A4, // only available in mahjong instance
@ -294,20 +294,20 @@ namespace Sapphire::Network::Packets
MahjongEndRoundTsumo = 0x02BF, // called tsumo MahjongEndRoundTsumo = 0x02BF, // called tsumo
MahjongEndRoundRon = 0x2C0, // called ron or double ron (waiting for action must be flagged from discard packet to call) 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.. 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 // 2C3 and 2C4 are currently unknown
MahjongEndRoundDraw = 0x02C5, // self explanatory MahjongEndRoundDraw = 0x02C5, // self explanatory
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 = 0x0131, // updated 5.45 hotfix AirshipExplorationResult = 0x007C, // updated 5.55 hotfix
AirshipStatus = 0x0253, // updated 5.45 hotfix AirshipStatus = 0x00AB, // updated 5.55 hotfix
AirshipStatusList = 0x0391, // updated 5.45 hotfix AirshipStatusList = 0x027B, // updated 5.55 hotfix
AirshipTimers = 0x0206, // updated 5.45 hotfix AirshipTimers = 0x02A5, // updated 5.55 hotfix
SubmarineExplorationResult = 0x00EB, // updated 5.45 hotfix SubmarineExplorationResult = 0x0099, // updated 5.55 hotfix
SubmarineProgressionStatus = 0x0333, // updated 5.45 hotfix SubmarineProgressionStatus = 0x0081, // updated 5.55 hotfix
SubmarineStatusList = 0x01F2, // updated 5.45 hotfix SubmarineStatusList = 0x0072, // updated 5.55 hotfix
SubmarineTimers = 0x013B, // updated 5.45 hotfix SubmarineTimers = 0x037A, // updated 5.55 hotfix
}; };
/** /**
@ -315,43 +315,42 @@ namespace Sapphire::Network::Packets
*/ */
enum ClientZoneIpcType : uint16_t enum ClientZoneIpcType : uint16_t
{ {
PingHandler = 0x0183, // updated 5.45 hotfix PingHandler = 0x03AD, // updated 5.55 hotfix
InitHandler = 0x01EA, // updated 5.45 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 CFCancelHandler = 0x0332, // updated 5.35 hotfix
CFRegisterDuty = 0x033C, // updated 5.45 hotfix CFRegisterDuty = 0x033C, // updated 5.45 hotfix
CFRegisterRoulette = 0x0121, // updated 5.45 hotfix CFRegisterRoulette = 0x0121, // updated 5.45 hotfix
PlayTimeHandler = 0x0096, // updated 5.45 hotfix PlayTimeHandler = 0x0365, // updated 5.55 hotfix
LogoutHandler = 0x0312, // updated 5.45 hotfix LogoutHandler = 0x039B, // updated 5.55 hotfix
CancelLogout = 0x0307, // updated 5.45 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 ChatHandler = 0x01B8, // updated 5.55 hotfix
SocialResponseHandler = 0x029B, // updated 5.45 hotfix
CreateCrossWorldLS = 0x00AF, // updated 4.3
ChatHandler = 0x00A4, // updated 5.45 hotfix
PartyChatHandler = 0x0065, PartyChatHandler = 0x0065,
PartySetLeaderHandler = 0x02EF, // updated 5.45 hotfix PartySetLeaderHandler = 0x0142, // updated 5.55 hotfix
LeavePartyHandler = 0x017E, // updated 5.45 hotfix LeavePartyHandler = 0x026C, // updated 5.55 hotfix
KickPartyMemberHandler = 0x0070, // updated 5.45 hotfix KickPartyMemberHandler = 0x0379, // updated 5.55 hotfix
DisbandPartyHandler = 0x037A, // updated 5.45 hotfix DisbandPartyHandler = 0x037A, // updated 5.45 hotfix
SocialListHandler = 0x02B0, // updated 5.45 hotfix SocialListHandler = 0x00F2, // updated 5.55 hotfix
SetSearchInfoHandler = 0x0111, // updated 5.45 hotfix SetSearchInfoHandler = 0x009C, // updated 5.55 hotfix
ReqSearchInfoHandler = 0x03AC, // updated 5.45 hotfix ReqSearchInfoHandler = 0x00B1, // updated 5.55 hotfix
ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0 ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0
ReqRemovePlayerFromBlacklist = 0x00F1, // 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 PlayerSearchHandler = 0x00F4, // updated 5.0
LinkshellListHandler = 0x0258, // updated 5.45 hotfix LinkshellListHandler = 0x0291, // updated 5.55 hotfix
MarketBoardRequestItemListingInfo = 0x0102, // updated 4.5 MarketBoardRequestItemListingInfo = 0x0102, // updated 4.5
MarketBoardRequestItemListings = 0x0103, // updated 4.5 MarketBoardRequestItemListings = 0x0103, // updated 4.5
@ -370,55 +369,55 @@ namespace Sapphire::Network::Packets
ReqCountdownInitiate = 0x025F, // updated 5.35 hotfix ReqCountdownInitiate = 0x025F, // updated 5.35 hotfix
ReqCountdownCancel = 0x0244, // updated 5.25 ReqCountdownCancel = 0x0244, // updated 5.25
ZoneLineHandler = 0x00BA, // updated 5.45 hotfix ZoneLineHandler = 0x01C2, // updated 5.55 hotfix
ClientTrigger = 0x0146, // updated 5.45 hotfix ClientTrigger = 0x0337, // updated 5.55 hotfix
DiscoveryHandler = 0x00E3, // updated 5.35 hotfix DiscoveryHandler = 0x00E3, // updated 5.35 hotfix
PlaceFieldMarkerPreset = 0x01D3, // updated 5.45 hotfix PlaceFieldMarkerPreset = 0xF10C, // updated 5.55 hotfix
PlaceFieldMarker = 0x0392, // updated 5.45 hotfix PlaceFieldMarker = 0xF2E2, // updated 5.55 hotfix
SkillHandler = 0x0388, // updated 5.45 hotfix SkillHandler = 0x02A2, // updated 5.55 hotfix
GMCommand1 = 0x01E0, // updated 5.45 hotfix GMCommand1 = 0x01F0, // updated 5.55 hotfix
GMCommand2 = 0x0114, // updated 5.45 hotfix GMCommand2 = 0x0068, // updated 5.55 hotfix
AoESkillHandler = 0x03A0, // updated 5.45 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 InventoryEquipRecommendedItems = 0x0186, // updated 5.45 hotfix
ReqPlaceHousingItem = 0x0360, // updated 5.45 hotfix ReqPlaceHousingItem = 0x023E, // updated 5.55 hotfix
BuildPresetHandler = 0x01D7, // updated 5.45 hotfix BuildPresetHandler = 0x0374, // updated 5.55 hotfix
TalkEventHandler = 0x00C2, // updated 5.45 hotfix TalkEventHandler = 0x01E9, // updated 5.55 hotfix
EmoteEventHandler = 0x03D5, // updated 5.45 hotfix EmoteEventHandler = 0xF35A, // updated 5.55 hotfix
WithinRangeEventHandler = 0x0171, // updated 5.45 hotfix WithinRangeEventHandler = 0x035A, // updated 5.55 hotfix
OutOfRangeEventHandler = 0x019B, // updated 5.45 hotfix OutOfRangeEventHandler = 0x0338, // updated 5.55 hotfix
EnterTeriEventHandler = 0x027F, // updated 5.45 hotfix EnterTeriEventHandler = 0x0077, // updated 5.55 hotfix
ShopEventHandler = 0x03D4, // updated 5.45 hotfix ShopEventHandler = 0x0168, // updated 5.55 hotfix
EventYieldHandler = 0x0230, // updated 5.45 hotfix EventYieldHandler = 0x02A0, // updated 5.55 hotfix
ReturnEventHandler = 0x02AD, // updated 5.45 hotfix ReturnEventHandler = 0x015D, // updated 5.55 hotfix
TradeReturnEventHandler = 0x00A7, // updated 5.45 hotfix TradeReturnEventHandler = 0x0091, // updated 5.55 hotfix
TradeMultipleReturnEventHander = 0x035C, // updated 5.35 hotfix TradeReturnEventHandler2 = 0x0169, // updated 5.55 hotfix
LinkshellEventHandler = 0x016B, // updated 4.5 LinkshellEventHandler = 0x016B, // updated 4.5
LinkshellEventHandler1 = 0x016C, // 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 LandRenameHandler = 0x0206, // updated 5.55 hotfix
HousingUpdateHouseGreeting = 0x0367, // updated 5.45 hotfix HousingUpdateHouseGreeting = 0x0330, // updated 5.55 hotfix
HousingUpdateObjectPosition = 0x0265, // updated 5.45 hotfix HousingUpdateObjectPosition = 0x03A5, // updated 5.55 hotfix
HousingEditExterior = 0x0297, // updated 5.45 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 WorldInteractionHandler = 0x0343, // updated 5.55 hotfix
Dive = 0x00F1, // updated 5.45 hotfix Dive = 0x021C, // updated 5.55 hotfix
}; };
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////

View file

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

View file

@ -680,6 +680,7 @@ namespace Sapphire::Network::Packets::Server
uint16_t unk; // == 0 uint16_t unk; // == 0
uint16_t modelChara; uint16_t modelChara;
uint16_t rotation; uint16_t rotation;
uint16_t currentMount;
uint16_t activeMinion; uint16_t activeMinion;
uint8_t spawnIndex; uint8_t spawnIndex;
uint8_t state; uint8_t state;
@ -693,24 +694,20 @@ namespace Sapphire::Network::Packets::Server
uint8_t classJob; uint8_t classJob;
uint8_t u26d; uint8_t u26d;
uint16_t u27a; uint16_t u27a;
uint8_t currentMount;
uint8_t mountHead; uint8_t mountHead;
uint8_t mountBody; uint8_t mountBody;
uint8_t mountFeet; uint8_t mountFeet;
uint8_t mountColor; uint8_t mountColor;
uint8_t scale; uint8_t scale;
//uint32_t elementalLevel; one of these two field changed to 16bit
//uint32_t element;
uint8_t elementData[6]; uint8_t elementData[6];
uint8_t unknown5_5[3];
Common::StatusEffect effect[30]; Common::StatusEffect effect[30];
Common::FFXIVARR_POSITION3 pos; Common::FFXIVARR_POSITION3 pos;
uint32_t models[10]; uint32_t models[10];
char name[32]; char name[32];
uint8_t look[26]; uint8_t look[26];
char fcTag[6]; char fcTag[6];
uint32_t unk30; uint32_t unk30[2];
}; };
/** /**
@ -753,9 +750,10 @@ namespace Sapphire::Network::Packets::Server
uint32_t displayFlags; uint32_t displayFlags;
uint16_t fateID; uint16_t fateID;
uint16_t mPCurr; uint16_t mPCurr;
uint16_t unknown1; // 0 uint16_t unknown1;
uint16_t unknown2; // 0 or pretty big numbers > 30000 uint16_t unknown2;
uint16_t modelChara; uint16_t modelChara;
uint16_t currentMount;
uint16_t rotation; uint16_t rotation;
uint16_t activeMinion; uint16_t activeMinion;
uint8_t spawnIndex; uint8_t spawnIndex;
@ -770,14 +768,13 @@ namespace Sapphire::Network::Packets::Server
uint8_t classJob; uint8_t classJob;
uint8_t u26d; uint8_t u26d;
uint16_t u27a; uint16_t u27a;
uint8_t currentMount;
uint8_t mountHead; uint8_t mountHead;
uint8_t mountBody; uint8_t mountBody;
uint8_t mountFeet; uint8_t mountFeet;
uint8_t mountColor; uint8_t mountColor;
uint8_t scale; uint8_t scale;
uint16_t elementalLevel; // Eureka uint8_t elemental[6];
uint16_t element; // Eureka uint8_t unknown5_5[3];
Common::StatusEffect effect[30]; Common::StatusEffect effect[30];
Common::FFXIVARR_POSITION3 pos; Common::FFXIVARR_POSITION3 pos;
uint32_t models[10]; uint32_t models[10];
@ -789,7 +786,7 @@ namespace Sapphire::Network::Packets::Server
uint8_t bNPCPartSlot; uint8_t bNPCPartSlot;
uint8_t unk32; uint8_t unk32;
uint16_t unk33; 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 mountGuideMask[22];
unsigned char u19_2; unsigned char u19_2;
*/ */
unsigned char unknown5_3a[176]; 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[27]; unsigned char mountGuideMask[29];
//== //==
char name[32]; char name[32];
unsigned char unknownOword[16]; unsigned char unknownOword[16];
@ -1055,11 +1052,10 @@ namespace Sapphire::Network::Packets::Server
unsigned char aetheryte[21]; unsigned char aetheryte[21];
unsigned char discovery[445]; unsigned char discovery[445];
unsigned char howto[34]; unsigned char howto[34];
unsigned char minions[53]; unsigned char minions[55];
unsigned char chocoboTaxiMask[10]; unsigned char chocoboTaxiMask[10];
unsigned char watchedCutscenes[135]; unsigned char watchedCutscenes[137];
unsigned char companionBardingMask[10]; unsigned char companionBardingMask[11];
unsigned char unknown5_45a; // companionBardingMask[11]?
unsigned char companionEquippedHead; unsigned char companionEquippedHead;
unsigned char companionEquippedBody; unsigned char companionEquippedBody;
unsigned char companionEquippedLegs; unsigned char companionEquippedLegs;
@ -1092,12 +1088,12 @@ namespace Sapphire::Network::Packets::Server
unsigned char aetherCurrentMask[22]; unsigned char aetherCurrentMask[22];
unsigned char u10[3]; 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 hallOfNoviceCompletion[3];
unsigned char animaCompletion[11]; unsigned char animaCompletion[11];
unsigned char unknown5_3e[33]; unsigned char unknown5_55c[35];
unsigned char unlockedRaids[28]; unsigned char unlockedRaids[28];
unsigned char unlockedDungeons[18]; unsigned char unlockedDungeons[18];
unsigned char unlockedGuildhests[10]; unsigned char unlockedGuildhests[10];
@ -1117,7 +1113,7 @@ namespace Sapphire::Network::Packets::Server
unsigned int exploratoryMissionNextTimestamp; unsigned int exploratoryMissionNextTimestamp;
unsigned char pvpLevel; 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( result.param2 == 1 )
{ {
if( player.giveQuestRewards( getId(), 0 ) ) if( player.giveQuestRewards( getId(), result.param3 ) )
{ {
player.setQuestUI8BH( getId(), 0 ); player.setQuestUI8BH( getId(), 0 );
player.finishQuest( getId() ); player.finishQuest( getId() );

View file

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

View file

@ -584,7 +584,7 @@ namespace Sapphire::Entity
uint16_t getCurrentCompanion() const; uint16_t getCurrentCompanion() const;
/*! get the current mount */ /*! get the current mount */
uint8_t getCurrentMount() const; uint16_t getCurrentMount() const;
/*! set current persistent emote */ /*! set current persistent emote */
void setPersistentEmote( uint32_t emoteId ); void setPersistentEmote( uint32_t emoteId );
@ -1067,8 +1067,8 @@ namespace Sapphire::Entity
uint16_t m_activeTitle; uint16_t m_activeTitle;
uint8_t m_titleList[48]; uint8_t m_titleList[48];
uint8_t m_howTo[34]; uint8_t m_howTo[34];
uint8_t m_minions[40]; uint8_t m_minions[55];
uint8_t m_mountGuide[27]; uint8_t m_mountGuide[29];
uint8_t m_homePoint; uint8_t m_homePoint;
uint8_t m_startTown; uint8_t m_startTown;
uint16_t m_townWarpFstFlags; uint16_t m_townWarpFstFlags;
@ -1076,8 +1076,8 @@ namespace Sapphire::Entity
uint8_t m_discovery[445]; uint8_t m_discovery[445];
uint32_t m_playTime; uint32_t m_playTime;
uint16_t m_classArray[28]; uint16_t m_classArray[ Common::CLASSJOB_SLOTS ];
uint32_t m_expArray[28]; uint32_t m_expArray[ Common::CLASSJOB_SLOTS ];
uint8_t m_aetheryte[21]; uint8_t m_aetheryte[21];
uint8_t m_unlocks[64]; uint8_t m_unlocks[64];
uint8_t m_orchestrion[40]; 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" ); auto titleList = res->getBlobVector( "TitleList" );
memcpy( reinterpret_cast< char* >( m_titleList ), titleList.data(), titleList.size() ); 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" ); auto mountGuide = res->getBlobVector( "Mounts" );
memcpy( reinterpret_cast< char* >( m_mountGuide ), mountGuide.data(), mountGuide.size() ); 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 ) if( player.getLevelForClass( static_cast< Common::ClassJob > ( id ) ) == 0 )
{ {
player.setLevelForClass( 1, static_cast< Common::ClassJob > ( id ) ); 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.setClassJob( static_cast< Common::ClassJob > ( id ) ); player.sendModel();
player.sendModel(); player.sendItemLevel();
player.sendItemLevel(); player.calculateStats();
player.calculateStats(); player.sendStats();
player.sendStats(); player.sendStatusEffectUpdate();
player.sendStatusEffectUpdate(); player.sendStatusUpdate();
player.sendStatusUpdate();
} }
else if( subCommand == "cfpenalty" ) 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::ReqPlaceHousingItem, "ReqPlaceHousingItem", &GameConnection::reqPlaceHousingItem );
setZoneHandler( ClientZoneIpcType::HousingUpdateObjectPosition, "HousingUpdateObjectPosition", setZoneHandler( ClientZoneIpcType::HousingUpdateObjectPosition, "HousingUpdateObjectPosition",
&GameConnection::reqMoveHousingItem ); &GameConnection::reqMoveHousingItem );
setZoneHandler( ClientZoneIpcType::HousingEditExterior, "HousingEditExterior", &GameConnection::housingEditExterior ); setZoneHandler( ClientZoneIpcType::HousingEditAppearance, "HousingEditAppearance", &GameConnection::housingEditExterior );
setZoneHandler( ClientZoneIpcType::TalkEventHandler, "EventHandlerTalk", &GameConnection::eventHandlerTalk ); setZoneHandler( ClientZoneIpcType::TalkEventHandler, "EventHandlerTalk", &GameConnection::eventHandlerTalk );
setZoneHandler( ClientZoneIpcType::EmoteEventHandler, "EventHandlerEmote", &GameConnection::eventHandlerEmote ); setZoneHandler( ClientZoneIpcType::EmoteEventHandler, "EventHandlerEmote", &GameConnection::eventHandlerEmote );
@ -101,10 +101,10 @@ Sapphire::Network::GameConnection::GameConnection( Sapphire::Network::HivePtr pH
setZoneHandler( ClientZoneIpcType::EnterTeriEventHandler, "EventHandlerEnterTeri", setZoneHandler( ClientZoneIpcType::EnterTeriEventHandler, "EventHandlerEnterTeri",
&GameConnection::eventHandlerEnterTerritory ); &GameConnection::eventHandlerEnterTerritory );
setZoneHandler( ClientZoneIpcType::ReturnEventHandler, "EventHandlerReturn", &GameConnection::eventHandlerReturn ); setZoneHandler( ClientZoneIpcType::ReturnEventHandler, "ReturnEventHandler", &GameConnection::eventHandlerReturn );
setZoneHandler( ClientZoneIpcType::TradeReturnEventHandler, "EventHandlerReturn", setZoneHandler( ClientZoneIpcType::TradeReturnEventHandler, "TradeReturnEventHandler",
&GameConnection::eventHandlerReturn ); &GameConnection::eventHandlerReturn );
setZoneHandler( ClientZoneIpcType::TradeMultipleReturnEventHander, "EventHandlerReturn", &GameConnection::eventHandlerReturn ); setZoneHandler( ClientZoneIpcType::TradeReturnEventHandler2, "TradeReturnEventHandler2", &GameConnection::eventHandlerReturn );
setZoneHandler( ClientZoneIpcType::ShopEventHandler, "ShopEventHandler", setZoneHandler( ClientZoneIpcType::ShopEventHandler, "ShopEventHandler",
&GameConnection::eventHandlerShop ); &GameConnection::eventHandlerShop );

View file

@ -53,7 +53,7 @@ namespace Sapphire::Network::Packets::Server
memcpy( m_data.aetheryte, player.getAetheryteArray(), sizeof( m_data.aetheryte ) ); memcpy( m_data.aetheryte, player.getAetheryteArray(), sizeof( m_data.aetheryte ) );
// Set the class levels and exp. // 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.levels[ i ] = player.getClassArray()[ i ];
m_data.exp[ i ] = player.getExpArray()[ i ]; m_data.exp[ i ] = player.getExpArray()[ i ];