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

Merge pull request #714 from collett8192/5.58_pr

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

View file

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

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -43,67 +43,67 @@ namespace Sapphire::Network::Packets
*/ */
enum ServerZoneIpcType : uint16_t enum ServerZoneIpcType : uint16_t
{ {
Ping = 0x0183, // updated 5.45 hotfix Ping = 0x02CB, // updated 5.58
Init = 0x01EA, // updated 5.45 hotfix Init = 0x02A8, // updated 5.58
ActorFreeSpawn = 0x0185, // updated 5.45 hotfix ActorFreeSpawn = 0x0210, // updated 5.58
InitZone = 0x0233, // updated 5.45 hotfix InitZone = 0x0100, // updated 5.58
EffectResult = 0x01D7, // updated 5.45 hotfix EffectResult = 0x0151, // updated 5.58
ActorControl = 0x00C2, // updated 5.45 hotfix ActorControl = 0x0264, // updated 5.58
ActorControlSelf = 0x03D5, // updated 5.45 hotfix ActorControlSelf = 0x0314, // updated 5.58
ActorControlTarget = 0x0171, // updated 5.45 hotfix ActorControlTarget = 0x00FC, // updated 5.58
/*! /*!
* @brief Used when resting * @brief Used when resting
*/ */
UpdateHpMpTp = 0x019B, // updated 5.45 hotfix UpdateHpMpTp = 0x039B, // updated 5.58
/////////////////////////////////////////////////// ///////////////////////////////////////////////////
ChatBanned = 0xF06B, ChatBanned = 0xF06B,
Playtime = 0x0302, // updated 5.45 hotfix Playtime = 0x02BE, // updated 5.58
Logout = 0x012A, // updated 5.45 hotfix Logout = 0x0297, // updated 5.58
CFNotify = 0x026E, // updated 5.45 hotfix CFNotify = 0x01AC, // updated 5.58
CFMemberStatus = 0x0079, CFMemberStatus = 0x0079,
CFDutyInfo = 0x0145, // updated 5.45 hotfix CFDutyInfo = 0x0083, // updated 5.58
CFPlayerInNeed = 0xF07F, CFPlayerInNeed = 0xF07F,
CFPreferredRole = 0x012E, // updated 5.45 hotfix CFPreferredRole = 0x02FB, // updated 5.58
CFCancel = 0x0312, // updated 5.45 hotfix CFCancel = 0x0135, // updated 5.58
SocialRequestError = 0xF0AD, SocialRequestError = 0xF0AD,
CFRegistered = 0x01FB, // updated 5.45 hotfix CFRegistered = 0x037E, // updated 5.58
SocialRequestResponse = 0x03A5, // updated 5.45 hotfix SocialRequestResponse = 0x0254, // updated 5.58
SocialMessage = 0x030C, // updated 5.45 hotfix SocialMessage = 0x02F2, // updated 5.58
SocialMessage2 = 0x00BB, // updated 5.45 hotfix SocialMessage2 = 0x017A, // updated 5.58
CancelAllianceForming = 0x00C6, // updated 4.2 CancelAllianceForming = 0xF0C6, // updated 4.2
LogMessage = 0x00D0, LogMessage = 0x020F, // updated 5.58
Chat = 0x01BA, // updated 5.45 hotfix Chat = 0x0220, // updated 5.58
PartyChat = 0x0065, PartyChat = 0x0065,
WorldVisitList = 0xF0FE, // added 4.5 WorldVisitList = 0xF0FE, // added 4.5
SocialList = 0x0315, // updated 5.45 hotfix SocialList = 0x0396, // updated 5.58
ExamineSearchInfo = 0x035F, // updated 5.45 hotfix ExamineSearchInfo = 0x031F, // updated 5.58
UpdateSearchInfo = 0x0310, // updated 5.45 hotfix UpdateSearchInfo = 0x0219, // updated 5.58
InitSearchInfo = 0x01ED, // updated 5.45 hotfix InitSearchInfo = 0x01A0, // updated 5.58
ExamineSearchComment = 0x0102, // updated 4.1 ExamineSearchComment = 0x0315, // updated 5.58
ServerNoticeShort = 0x03B4, // updated 5.45 hotfix ServerNoticeShort = 0x0211, // updated 5.58
ServerNotice = 0x0354, // updated 5.45 hotfix ServerNotice = 0x03B9, // updated 5.58
SetOnlineStatus = 0x0166, // updated 5.45 hotfix SetOnlineStatus = 0x0163, // updated 5.58
CountdownInitiate = 0x0237, // updated 5.25 CountdownInitiate = 0x01F9, // updated 5.58
CountdownCancel = 0x00D9, // updated 5.18 CountdownCancel = 0x0206, // updated 5.58
PlayerAddedToBlacklist = 0x033F, // updated 5.1 PlayerAddedToBlacklist = 0x01FE, // updated 5.58
PlayerRemovedFromBlacklist = 0x0385, // updated 5.1 PlayerRemovedFromBlacklist = 0x02D6, // updated 5.58
BlackList = 0x02BD, // updated 5.45 hotfix BlackList = 0x028A, // updated 5.58
LinkshellList = 0x021A, // updated 5.45 hotfix LinkshellList = 0x02DD, // updated 5.58
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 = 0x0355, // updated 5.58
MarketBoardItemListingCount = 0x00C0, // updated 5.45 hotfix MarketBoardItemListingCount = 0x0275, // updated 5.58
MarketBoardItemListingHistory = 0x01C3, // updated 5.45 hotfix MarketBoardItemListingHistory = 0x0112, // updated 5.58
MarketBoardItemListing = 0x016B, // updated 5.45 hotfix MarketBoardItemListing = 0x00F5, // updated 5.58
CharaFreeCompanyTag = 0x013B, // updated 4.5 CharaFreeCompanyTag = 0x013B, // updated 4.5
FreeCompanyBoardMsg = 0x013C, // updated 4.5 FreeCompanyBoardMsg = 0x028D, // updated 5.58
FreeCompanyInfo = 0x03D0, // updated 5.45 hotfix FreeCompanyInfo = 0x0346, // updated 5.58
ExamineFreeCompanyInfo = 0xF13E, // updated 4.5 ExamineFreeCompanyInfo = 0x00B7, // updated 5.58
FreeCompanyUpdateShortMessage = 0xF157, // added 5.0 FreeCompanyUpdateShortMessage = 0xF157, // added 5.0
StatusEffectList = 0x0243, // updated 5.45 hotfix StatusEffectList = 0x01C5, // updated 5.58
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 = 0x0102, // updated 5.58
AoeEffect8 = 0x009B, // updated 5.45 hotfix AoeEffect8 = 0x0345, // updated 5.58
AoeEffect16 = 0x028C, // updated 5.45 hotfix AoeEffect16 = 0x02B6, // updated 5.58
AoeEffect24 = 0x02AD, // updated 5.45 hotfix AoeEffect24 = 0x0298, // updated 5.58
AoeEffect32 = 0x00A7, // updated 5.45 hotfix AoeEffect32 = 0x03A4, // updated 5.58
PersistantEffect = 0x0244, // updated 5.45 hotfix PersistantEffect = 0x008D, // updated 5.58
GCAffiliation = 0x0155, // updated 5.45 hotfix GCAffiliation = 0x02B1, // updated 5.58
PlayerSpawn = 0x01AB, // updated 5.45 hotfix PlayerSpawn = 0x0249, // updated 5.58
NpcSpawn = 0x02C9, // updated 5.45 hotfix NpcSpawn = 0x014B, // updated 5.58
NpcSpawn2 = 0x01CB, // ( Bigger statuseffectlist? ) updated 5.3 NpcSpawn2 = 0x01CB, // ( Bigger statuseffectlist? ) updated 5.3
ActorMove = 0x006B, // updated 5.45 hotfix ActorMove = 0x023D, // updated 5.58
ActorSetPos = 0x00C6, // updated 5.45 hotfix ActorSetPos = 0x0280, // updated 5.58
ActorCast = 0x034C, // updated 5.45 hotfix ActorCast = 0x02A7, // updated 5.58
SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18 SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18
PartyList = 0x00F5, // updated 5.45 hotfix PartyList = 0x02BD, // updated 5.58
PartyMessage = 0x01BC, // updated 5.45 hotfix PartyMessage = 0x0318, // updated 5.58
HateRank = 0x0217, // updated 5.45 hotfix HateRank = 0x02C0, // updated 5.58
HateList = 0x00E5, // updated 5.45 hotfix HateList = 0x01B4, // updated 5.58
ObjectSpawn = 0x0336, // updated 5.45 hotfix ObjectSpawn = 0x0104, // updated 5.58
ObjectDespawn = 0x02D0, // updated 5.45 hotfix ObjectDespawn = 0x030D, // updated 5.58
UpdateClassInfo = 0x0179, // updated 5.45 hotfix UpdateClassInfo = 0x0198, // updated 5.58
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 = 0x0296, // updated 5.58
PlayerStats = 0x01CC, // updated 5.45 hotfix PlayerStats = 0x00D5, // updated 5.58
ActorOwner = 0x0153, // updated 5.45 hotfix ActorOwner = 0x00AE, // updated 5.58
PlayerStateFlags = 0x02DC, // updated 5.45 hotfix PlayerStateFlags = 0x022A, // updated 5.58
PlayerClassInfo = 0x02F0, // updated 5.45 hotfix PlayerClassInfo = 0x02DF, // updated 5.58
CharaVisualEffect = 0x026A, // updated 5.45 hotfix CharaVisualEffect = 0x0134, // updated 5.58
ModelEquip = 0x024A, // updated 5.45 hotfix ModelEquip = 0x0312, // updated 5.58
Examine = 0x0261, // updated 5.45 hotfix Examine = 0x00D3, // updated 5.58
CharaNameReq = 0x0380, // updated 5.45 hotfix CharaNameReq = 0x031C, // updated 5.58
// 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 = 0x01D3, // updated 5.58
RetainerInformation = 0x026B, // updated 5.45 hotfix RetainerInformation = 0x0069, // updated 5.58
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 = 0x00A7, // updated 5.58
ContainerInfo = 0x0193, // updated 5.45 hotfix ContainerInfo = 0x0208, // updated 5.58
InventoryTransactionFinish = 0x00BD, // updated 5.45 hotfix InventoryTransactionFinish = 0x01A3, // updated 5.58
InventoryTransaction = 0x02EE, // updated 5.45 hotfix InventoryTransaction = 0x03AC, // updated 5.58
CurrencyCrystalInfo = 0x0363, // updated 5.45 hotfix CurrencyCrystalInfo = 0x0394, // updated 5.58
InventoryActionAck = 0x02FA, // updated 5.45 hotfix InventoryActionAck = 0x0305, // updated 5.58
UpdateInventorySlot = 0x017D, // updated 5.45 hotfix UpdateInventorySlot = 0x0200, // updated 5.58
HuntingLogEntry = 0x0232, // updated 5.45 hotfix HuntingLogEntry = 0x00C5, // updated 5.58
EventPlay = 0x0276, // updated 5.45 hotfix EventPlay = 0x01EF, // updated 5.58
EventPlay4 = 0x028D, // updated 5.45 hotfix EventPlay4 = 0x021C, // updated 5.58
EventPlay8 = 0x0318, // updated 5.45 hotfix EventPlay8 = 0x0337, // updated 5.58
EventPlay16 = 0x020D, // updated 5.45 hotfix EventPlay16 = 0x0319, // updated 5.58
EventPlay32 = 0x03B5, // updated 5.45 hotfix EventPlay32 = 0x01E2, // updated 5.58
EventPlay64 = 0x039E, // updated 5.45 hotfix EventPlay64 = 0x02FD, // updated 5.58
EventPlay128 = 0x02F4, // updated 5.45 hotfix EventPlay128 = 0x026E, // updated 5.58
EventPlay255 = 0x009D, // updated 5.45 hotfix EventPlay255 = 0x039E, // updated 5.58
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 = 0x01CC, // updated 5.58
EventFinish = 0x01A3, // updated 5.45 hotfix EventFinish = 0x0180, // updated 5.58
EventLinkshell = 0x1169, EventLinkshell = 0x1169,
QuestActiveList = 0x015A, // updated 5.45 hotfix QuestActiveList = 0x035D, // updated 5.58
QuestUpdate = 0x037B, // updated 5.45 hotfix QuestUpdate = 0x029A, // updated 5.58
QuestCompleteList = 0x0287, // updated 5.45 hotfix QuestCompleteList = 0x03C5, // updated 5.58
QuestFinish = 0x0066, // updated 5.45 hotfix QuestFinish = 0x0274, // updated 5.58
MSQTrackerComplete = 0xF1D6, // updated 5.0 MSQTrackerComplete = 0x01C1, // updated 5.58
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 = 0x038E, // updated 5.58
Mount = 0x0122, // updated 5.45 hotfix Mount = 0x03C2, // updated 5.58
DirectorVars = 0x0252, // updated 5.45 hotfix DirectorVars = 0x01ED, // updated 5.58
SomeDirectorUnk1 = 0x0084, // updated 5.18 SomeDirectorUnk1 = 0x0084, // updated 5.18
SomeDirectorUnk2 = 0xF0C1, // updated 5.18 SomeDirectorUnk2 = 0xF0C1, // updated 5.18
SomeDirectorUnk4 = 0x0071, // updated 5.45 hotfix SomeDirectorUnk4 = 0x01BD, // updated 5.58
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 = 0x02E3, // updated 5.58
DirectorPopUp4 = 0x0214, // updated 5.18 DirectorPopUp4 = 0x01DC, // updated 5.58
DirectorPopUp8 = 0x00F8, // updated 5.18 DirectorPopUp8 = 0x011D, // updated 5.58
CFAvailableContents = 0xF1FD, // updated 4.2 CFAvailableContents = 0xF1FD, // updated 4.2
WeatherChange = 0x0167, // updated 5.45 hotfix WeatherChange = 0x01B1, // updated 5.58
PlayerTitleList = 0x00F3, // updated 5.45 hotfix PlayerTitleList = 0x02B4, // updated 5.58
Discovery = 0x0247, // updated 5.45 hotfix Discovery = 0x00B8, // updated 5.58
EorzeaTimeOffset = 0x00C5, // updated 5.45 hotfix EorzeaTimeOffset = 0x03D9, // updated 5.58
EquipDisplayFlags = 0x0316, // updated 5.45 hotfix EquipDisplayFlags = 0x0199, // updated 5.58
MiniCactpotInit = 0x0286, // added 5.31 MiniCactpotInit = 0x0286, // added 5.31
ShopMessage = 0x02FC, // updated 5.45 hotfix ShopMessage = 0x0162, // updated 5.55 hotfix
LootMessage = 0x03B8, // updated 5.45 hotfix LootMessage = 0x038C, // updated 5.58
ResultDialog = 0x0296, // updated 5.45 hotfix ResultDialog = 0x00DF, // updated 5.58
DesynthResult = 0x0323, // updated 5.45 hotfix DesynthResult = 0x038F, // updated 5.58
/// Housing ////////////////////////////////////// /// Housing //////////////////////////////////////
LandSetInitialize = 0x03E2, // updated 5.45 hotfix LandSetInitialize = 0x03E3, // updated 5.58
LandUpdate = 0x027E, // updated 5.45 hotfix LandUpdate = 0x029E, // updated 5.58
YardObjectSpawn = 0x010E, // updated 5.45 hotfix YardObjectSpawn = 0x0367, // updated 5.58
HousingIndoorInitialize = 0x01A9, // updated 5.45 hotfix HousingIndoorInitialize = 0x02A6, // updated 5.58
LandPriceUpdate = 0x0379, // updated 5.45 hotfix LandPriceUpdate = 0x0143, // updated 5.58
LandInfoSign = 0x0398, // updated 5.45 hotfix LandInfoSign = 0x0269, // updated 5.58
LandRename = 0x00F6, // updated 5.45 hotfix LandRename = 0x0107, // updated 5.58
HousingEstateGreeting = 0x037D, // updated 5.45 hotfix HousingEstateGreeting = 0x0340, // updated 5.58
HousingUpdateLandFlagsSlot = 0x03AF, // updated 5.45 hotfix HousingUpdateLandFlagsSlot = 0x02D2, // updated 5.58
HousingLandFlags = 0x033B, // updated 5.45 hotfix HousingLandFlags = 0x0156, // updated 5.58
HousingShowEstateGuestAccess = 0x01B3, // updated 5.45 hotfix HousingShowEstateGuestAccess = 0x015C, // updated 5.58
HousingObjectInitialize = 0x00B5, // updated 5.45 hotfix HousingObjectInitialize = 0x0245, // updated 5.58
HousingInternalObjectSpawn = 0x00BC, // updated 5.45 hotfix HousingInternalObjectSpawn = 0x0194, // updated 5.58
HousingWardInfo = 0x015E, // updated 5.45 hotfix HousingWardInfo = 0x00A4, // updated 5.58
HousingObjectMove = 0x03E6, // updated 5.45 hotfix HousingObjectMove = 0x01AE, // updated 5.58
SharedEstateSettingsResponse = 0x03A4, // updated 5.45 hotfix SharedEstateSettingsResponse = 0x0378, // updated 5.58
LandUpdateHouseName = 0x0215, // updated 5.45 hotfix LandUpdateHouseName = 0x034B, // updated 5.58
LandSetMap = 0x0103, // updated 5.45 hotfix LandSetMap = 0x02F6, // updated 5.58
////////////////////////////////////////////////// //////////////////////////////////////////////////
DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui
PerformNote = 0x0248, // updated 5.45 hotfix PerformNote = 0x00BE, // updated 5.58
PrepareZoning = 0x01EE, // updated 5.45 hotfix PrepareZoning = 0x0171, // updated 5.58
ActorGauge = 0x018E, // updated 5.45 hotfix ActorGauge = 0x0335, // updated 5.58
DutyGauge = 0x00D2, // updated 5.45 hotfix DutyGauge = 0x02F6, // updated 5.58
// 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 = 0x0331, // updated 5.58
DailyQuestRepeatFlags = 0x024D, // updated 5.45 hotfix DailyQuestRepeatFlags = 0x01D1, // updated 5.58
/// 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 = 0x036C, // updated 5.58
AirshipStatus = 0x0253, // updated 5.45 hotfix AirshipStatus = 0x021F, // updated 5.58
AirshipStatusList = 0x0391, // updated 5.45 hotfix AirshipStatusList = 0x0073, // updated 5.58
AirshipTimers = 0x0206, // updated 5.45 hotfix AirshipTimers = 0x0250, // updated 5.58
SubmarineExplorationResult = 0x00EB, // updated 5.45 hotfix SubmarineExplorationResult = 0x01D0, // updated 5.58
SubmarineProgressionStatus = 0x0333, // updated 5.45 hotfix SubmarineProgressionStatus = 0x0377, // updated 5.58
SubmarineStatusList = 0x01F2, // updated 5.45 hotfix SubmarineStatusList = 0x0338, // updated 5.58
SubmarineTimers = 0x013B, // updated 5.45 hotfix SubmarineTimers = 0x0292, // updated 5.58
}; };
/** /**
@ -315,110 +315,109 @@ namespace Sapphire::Network::Packets
*/ */
enum ClientZoneIpcType : uint16_t enum ClientZoneIpcType : uint16_t
{ {
PingHandler = 0x0183, // updated 5.45 hotfix PingHandler = 0x03A3, // updated 5.58
InitHandler = 0x01EA, // updated 5.45 hotfix InitHandler = 0x03B3, // updated 5.58
FinishLoadingHandler = 0x023F, // updated 5.45 hotfix FinishLoadingHandler = 0x0217, // updated 5.58
CFCommenceHandler = 0x0118, // updated 5.35 hotfix CFCommenceHandler = 0xF118, // updated 5.35 hotfix
CFCancelHandler = 0x0332, // updated 5.35 hotfix CFCancelHandler = 0x00A9, // updated 5.58
CFRegisterDuty = 0x033C, // updated 5.45 hotfix CFRegisterDuty = 0x036A, // updated 5.58
CFRegisterRoulette = 0x0121, // updated 5.45 hotfix CFRegisterRoulette = 0x038C, // updated 5.58
PlayTimeHandler = 0x0096, // updated 5.45 hotfix PlayTimeHandler = 0x01A8, // updated 5.58
LogoutHandler = 0x0312, // updated 5.45 hotfix LogoutHandler = 0x02A5, // updated 5.58
CancelLogout = 0x0307, // updated 5.45 hotfix CancelLogout = 0x03CC, // updated 5.58
CFDutyInfoHandler = 0xF078, // updated 4.2
CFDutyInfoHandler = 0x0078, // updated 4.2 SocialReqSendHandler = 0x0366, // updated 5.58
SocialResponseHandler = 0x0311, // updated 5.58
CreateCrossWorldLS = 0x0125, // updated 5.58
SocialReqSendHandler = 0x0288, // updated 5.45 hotfix ChatHandler = 0x02F4, // updated 5.58
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 = 0x03C2, // updated 5.58
LeavePartyHandler = 0x017E, // updated 5.45 hotfix LeavePartyHandler = 0x028A, // updated 5.58
KickPartyMemberHandler = 0x0070, // updated 5.45 hotfix KickPartyMemberHandler = 0x01D1, // updated 5.58
DisbandPartyHandler = 0x037A, // updated 5.45 hotfix DisbandPartyHandler = 0x032B, // updated 5.58
SocialListHandler = 0x02B0, // updated 5.45 hotfix SocialListHandler = 0x006E, // updated 5.58
SetSearchInfoHandler = 0x0111, // updated 5.45 hotfix SetSearchInfoHandler = 0x010A, // updated 5.58
ReqSearchInfoHandler = 0x03AC, // updated 5.45 hotfix ReqSearchInfoHandler = 0x0255, // updated 5.58
ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0 ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0
ReqRemovePlayerFromBlacklist = 0x00F1, // updated 5.0 ReqRemovePlayerFromBlacklist = 0x015A, // updated 5.58
BlackListHandler = 0x02CD, // updated 5.45 hotfix BlackListHandler = 0x02C5, // updated 5.58
PlayerSearchHandler = 0x00F4, // updated 5.0 PlayerSearchHandler = 0x0259, // updated 5.58
LinkshellListHandler = 0x0258, // updated 5.45 hotfix LinkshellListHandler = 0x01F0, // updated 5.58
MarketBoardRequestItemListingInfo = 0x0102, // updated 4.5 MarketBoardRequestItemListingInfo = 0x02D3, // updated 5.58
MarketBoardRequestItemListings = 0x0103, // updated 4.5 MarketBoardRequestItemListings = 0x00AD, // updated 5.58
MarketBoardSearch = 0x0107, // updated 4.5 MarketBoardSearch = 0x00D6, // updated 5.58
ReqExamineFcInfo = 0x0113, // updated 4.1 ReqExamineFcInfo = 0x0359, // updated 5.58
FcInfoReqHandler = 0x011A, // updated 4.2 FcInfoReqHandler = 0x0078, // updated 5.58
FreeCompanyUpdateShortMessageHandler = 0x0123, // added 5.0 FreeCompanyUpdateShortMessageHandler = 0x0123, // added 5.0
ReqMarketWishList = 0x012C, // updated 4.3 ReqMarketWishList = 0x0364, // updated 5.58
ReqJoinNoviceNetwork = 0x0129, // updated 4.2 ReqJoinNoviceNetwork = 0x0129, // updated 4.2
ReqCountdownInitiate = 0x025F, // updated 5.35 hotfix ReqCountdownInitiate = 0x020E, // updated 5.58
ReqCountdownCancel = 0x0244, // updated 5.25 ReqCountdownCancel = 0x03BE, // updated 5.58
ZoneLineHandler = 0x00BA, // updated 5.45 hotfix ZoneLineHandler = 0x00B0, // updated 5.58
ClientTrigger = 0x0146, // updated 5.45 hotfix ClientTrigger = 0x008B, // updated 5.58
DiscoveryHandler = 0x00E3, // updated 5.35 hotfix DiscoveryHandler = 0x01B4, // updated 5.58
PlaceFieldMarkerPreset = 0x01D3, // updated 5.45 hotfix PlaceFieldMarkerPreset = 0x03B0, // updated 5.58
PlaceFieldMarker = 0x0392, // updated 5.45 hotfix PlaceFieldMarker = 0x011A, // updated 5.58
SkillHandler = 0x0388, // updated 5.45 hotfix SkillHandler = 0x0175, // updated 5.58
GMCommand1 = 0x01E0, // updated 5.45 hotfix GMCommand1 = 0x0353, // updated 5.58
GMCommand2 = 0x0114, // updated 5.45 hotfix GMCommand2 = 0x03E7, // updated 5.58
AoESkillHandler = 0x03A0, // updated 5.45 hotfix AoESkillHandler = 0x021D, // updated 5.58
UpdatePositionHandler = 0x031A, // updated 5.45 hotfix UpdatePositionHandler = 0x0212, // updated 5.58
InventoryModifyHandler = 0x0110, // updated 5.45 hotfix InventoryModifyHandler = 0x014A, // updated 5.58
InventoryEquipRecommendedItems = 0x0186, // updated 5.45 hotfix InventoryEquipRecommendedItems = 0x01D7, // updated 5.58
ReqPlaceHousingItem = 0x0360, // updated 5.45 hotfix ReqPlaceHousingItem = 0x0354, // updated 5.58
BuildPresetHandler = 0x01D7, // updated 5.45 hotfix BuildPresetHandler = 0x00DC, // updated 5.58
TalkEventHandler = 0x00C2, // updated 5.45 hotfix TalkEventHandler = 0x012D, // updated 5.58
EmoteEventHandler = 0x03D5, // updated 5.45 hotfix EmoteEventHandler = 0xF35A, // updated 5.55 hotfix
WithinRangeEventHandler = 0x0171, // updated 5.45 hotfix WithinRangeEventHandler = 0x022C, // updated 5.58
OutOfRangeEventHandler = 0x019B, // updated 5.45 hotfix OutOfRangeEventHandler = 0x0294, // updated 5.58
EnterTeriEventHandler = 0x027F, // updated 5.45 hotfix EnterTeriEventHandler = 0x00C1, // updated 5.58
ShopEventHandler = 0x03D4, // updated 5.45 hotfix ShopEventHandler = 0x02B8, // updated 5.58
EventYieldHandler = 0x0230, // updated 5.45 hotfix EventYieldHandler = 0x02A0, // updated 5.55 hotfix
ReturnEventHandler = 0x02AD, // updated 5.45 hotfix ReturnEventHandler = 0x0333, // updated 5.58
TradeReturnEventHandler = 0x00A7, // updated 5.45 hotfix TradeReturnEventHandler = 0x0179, // updated 5.58
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 = 0x01AD, // updated 5.58
LandRenameHandler = 0x0187, // updated 5.45 hotfix LandRenameHandler = 0x0083, // updated 5.58
HousingUpdateHouseGreeting = 0x0367, // updated 5.45 hotfix HousingUpdateHouseGreeting = 0x031A, // updated 5.58
HousingUpdateObjectPosition = 0x0265, // updated 5.45 hotfix HousingUpdateObjectPosition = 0x010E, // updated 5.58
HousingEditExterior = 0x0297, // updated 5.45 hotfix HousingEditAppearance = 0x00D7, // updated 5.55 hotfix
SetSharedEstateSettings = 0x0146, // updated 5.45 hotfix SetSharedEstateSettings = 0x0342, // updated 5.58
UpdatePositionInstance = 0x034E, // updated 5.45 hotfix UpdatePositionInstance = 0x01A3, // updated 5.58
PerformNoteHandler = 0x0336, // updated 5.45 hotfix PerformNoteHandler = 0x015E, // updated 5.58
WorldInteractionHandler = 0x02E4, // updated 5.45 hotfix WorldInteractionHandler = 0x03CE, // updated 5.58
Dive = 0x00F1, // updated 5.45 hotfix Dive = 0x034C, // updated 5.58
}; };
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////

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