1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-05 02:07:46 +00:00

update 5.21 hotfix, load player stats after inventory.

This commit is contained in:
collett 2020-03-17 22:23:26 +09:00
parent 96774b5f55
commit baad397507
3 changed files with 89 additions and 95 deletions

View file

@ -51,11 +51,11 @@ namespace Sapphire::Common
enum InventoryOperation : uint16_t
{
Discard = 0x07A,
Move = 0x007B,
Swap = 0x007C,
Split = 0x007D,
Merge = 0x007F,
Discard = 0x06E,
Move = 0x006F,
Swap = 0x0070,
Split = 0x0071,
Merge = 0x0073,
};
enum ClientLanguage : uint8_t

View file

@ -43,31 +43,31 @@ namespace Sapphire::Network::Packets
*/
enum ServerZoneIpcType : uint16_t
{
Ping = 0x03E4, // updated 5.21
Init = 0x00F2, // updated 5.21
Ping = 0x012C, // updated 5.21 hotfix
Init = 0x010D, // updated 5.21 hotfix
ActorFreeSpawn = 0x034F, // updated 5.21
InitZone = 0x019C, // updated 5.21
ActorFreeSpawn = 0x006C, // updated 5.21 hotfix
InitZone = 0x037B, // updated 5.21 hotfix
EffectResult = 0x02CF, // updated 5.21
ActorControl = 0x0246, // updated 5.21
ActorControlSelf = 0x02D1, // updated 5.21
ActorControlTarget = 0x02FB, // updated 5.21
ActorControl = 0x0380, // updated 5.21 hotfix
ActorControlSelf = 0x0253, // updated 5.21 hotfix
ActorControlTarget = 0x0206, // updated 5.21 hotfix
/*!
* @brief Used when resting
*/
UpdateHpMpTp = 0x0284, // updated 5.21
UpdateHpMpTp = 0x01B8, // updated 5.21 hotfix
///////////////////////////////////////////////////
ChatBanned = 0x006B,
Playtime = 0x0284, // updated 5.21
Logout = 0x01D4, // updated 5.21
Logout = 0x02A8, // updated 5.21 hotfix
CFNotify = 0x0241, // updated 5.21
CFMemberStatus = 0x0079,
CFDutyInfo = 0x007A,
CFPlayerInNeed = 0x007F,
CFPlayerInNeed = 0xF07F,
CFPreferredRole = 0x00D4, // added 5.21
SocialRequestError = 0x00AD,
@ -78,29 +78,29 @@ namespace Sapphire::Network::Packets
LogMessage = 0x00D0,
Chat = 0x022F, // updated 5.21
Chat = 0x012B, // updated 5.21 hotfix
WorldVisitList = 0x00FE, // added 4.5
SocialList = 0x00CE, // updated 5.21
SocialList = 0x0172, // updated 5.21 hotfix
ExamineSearchInfo = 0x014B, // updated 5.21
UpdateSearchInfo = 0x00EA, // updated 5.21
InitSearchInfo = 0x0143, // updated 5.21
InitSearchInfo = 0x00D1, // updated 5.21 hotfix
ExamineSearchComment = 0x0102, // updated 4.1
ServerNoticeShort = 0x0115, // updated 5.0
ServerNotice = 0x016F, // updated 5.21
SetOnlineStatus = 0x01EA, // updated 5.21
ServerNotice = 0x0192, // updated 5.21 hotfix
SetOnlineStatus = 0x0109, // updated 5.21 hotfix
CountdownInitiate = 0x0309, // updated 5.11
CountdownCancel = 0x00D9, // updated 5.18
PlayerAddedToBlacklist = 0x033F, // updated 5.1
PlayerRemovedFromBlacklist = 0x0385, // updated 5.1
BlackList = 0x01DE, // updated 5.21
BlackList = 0x0224, // updated 5.21 hotfix
LinkshellList = 0x01EB, // updated 5.21
LinkshellList = 0x0395, // updated 5.21 hotfix
MailDeleteRequest = 0x012B, // updated 5.0
@ -123,22 +123,22 @@ namespace Sapphire::Network::Packets
FreeCompanyUpdateShortMessage = 0x0157, // added 5.0
StatusEffectList = 0x01B8, // updated 5.21
StatusEffectList = 0x0327, // updated 5.21 hotfix
EurekaStatusEffectList = 0x0167, // updated 5.18
BossStatusEffectList = 0x0312, // added 5.1
Effect = 0x0371, // updated 5.21
AoeEffect8 = 0x02DA, // updated 5.21
Effect = 0x0252, // updated 5.21 hotfix
AoeEffect8 = 0x0140, // updated 5.21 hotfix
AoeEffect16 = 0x012E, // updated 5.21
AoeEffect24 = 0x0089, // updated 5.21
AoeEffect32 = 0x01A9, // updated 5.21
PersistantEffect = 0x03E7, // updated 5.21
PersistantEffect = 0x0110, // updated 5.21 hotfix
GCAffiliation = 0x016F, // updated 5.0
PlayerSpawn = 0x018E, // updated 5.21
NpcSpawn = 0x023A, // updated 5.21
PlayerSpawn = 0x033D, // updated 5.21 hotfix
NpcSpawn = 0x00B3, // updated 5.21 hotfix
NpcSpawn2 = 0x010C, // ( Bigger statuseffectlist? ) updated 5.18
ActorMove = 0x0213, // updated 5.21
ActorMove = 0x0080, // updated 5.21 hotfix
ActorSetPos = 0x00CC, // updated 5.21
@ -146,20 +146,20 @@ namespace Sapphire::Network::Packets
SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18
PartyList = 0x0287, // updated 5.18
HateRank = 0x008F, // updated 5.21
HateList = 0x01C5, // updated 5.21
HateRank = 0x0381, // updated 5.21 hotfix
HateList = 0x01F0, // updated 5.21 hotfix
ObjectSpawn = 0x01B3, // updated 5.2
ObjectDespawn = 0x034B, // updated 5.18
UpdateClassInfo = 0x0145, // updated 5.21
UpdateClassInfo = 0x0235, // updated 5.21 hotfix
SilentSetClassJob = 0x018E, // updated 5.0 - seems to be the case, not sure if it's actually used for anything
PlayerSetup = 0x028A, // updated 5.21
PlayerStats = 0x0112, // updated 5.21
ActorOwner = 0x0385, // updated 5.21
PlayerStateFlags = 0x02E1, // updated 5.21
PlayerSetup = 0x0316, // updated 5.21 hotfix
PlayerStats = 0x03E1, // updated 5.21 hotfix
ActorOwner = 0x03C8, // updated 5.21 hotfix
PlayerStateFlags = 0x00AA, // updated 5.21 hotfix
PlayerClassInfo = 0x016B, // updated 5.21
CharaVisualEffect = 0x00AB, // updated 5.21
CharaVisualEffect = 0x030C, // updated 5.21 hotfix
ModelEquip = 0x0292, // updated 5.21
ModelEquip = 0x03A2, // updated 5.21 hotfix
Examine = 0x0210, // updated 5.21
CharaNameReq = 0x03A6, // updated 5.21
@ -168,45 +168,45 @@ namespace Sapphire::Network::Packets
SetLevelSync = 0x1186, // not updated for 4.4, not sure what it is anymore
ItemInfo = 0x009E, // updated 5.21
ContainerInfo = 0x0315, // updated 5.21
InventoryTransactionFinish = 0x030E, // updated 5.21
InventoryTransaction = 0x006E, // updated 5.21
CurrencyCrystalInfo = 0x00E9, // updated 5.21
ItemInfo = 0x0244, // updated 5.21 hotfix
ContainerInfo = 0x03BB, // updated 5.21 hotfix
InventoryTransactionFinish = 0x0274, // updated 5.21 hotfix
InventoryTransaction = 0x00202, // updated 5.21 hotfix
CurrencyCrystalInfo = 0x017F, // updated 5.21 hotfix
InventoryActionAck = 0x01F8, // updated 5.21
UpdateInventorySlot = 0x006F, // updated 5.21
InventoryActionAck = 0x01B2, // updated 5.21 hotfix
UpdateInventorySlot = 0x0213, // updated 5.21 hotfix
HuntingLogEntry = 0x01B3, // updated 5.0
EventPlay = 0x0167, // updated 5.21
EventPlay = 0x007F, // updated 5.21 hotfix
EventPlay4 = 0x0313, // updated 5.21
EventPlay8 = 0x0119, // updated 5.18
EventPlay16 = 0x01FB, // updated 5.18
EventPlay32 = 0x017D, // updated 5.21
EventPlay64 = 0x00E5, // updated 5.18
EventPlay128 = 0x02BE, // updated 5.18
EventPlay255 = 0x0249, // updated 5.21
EventPlay255 = 0x00D9, // updated 5.21 hotfix
EventStart = 0x0392, // updated 5.21
EventFinish = 0x00EF, // updated 5.21
EventStart = 0x03E4, // updated 5.21 hotfix
EventFinish = 0x0197, // updated 5.21 hotfix
UseMooch = 0x006E, // updated 5.21
EventLinkshell = 0x1169,
QuestActiveList = 0x01FA, // updated 5.21
QuestUpdate = 0x00B1, // updated 5.21
QuestCompleteList = 0x0093, // updated 5.21
QuestActiveList = 0x03D7, // updated 5.21 hotfix
QuestUpdate = 0x01F8, // updated 5.21 hotfix
QuestCompleteList = 0x0084, // updated 5.21 hotfix
QuestFinish = 0x00AA, // updated 5.21
QuestFinish = 0x01FE, // updated 5.21 hotfix
MSQTrackerComplete = 0x01D6, // updated 5.0
MSQTrackerProgress = 0xF1CD, // updated 4.5 ? this actually looks like the two opcodes have been combined, see #474
QuestMessage = 0x0379, // updated 5.21
QuestMessage = 0x0324, // updated 5.21 hotfix
QuestTracker = 0x00B0, // updated 5.21
QuestTracker = 0x02CA, // updated 5.21 hotfix
Mount = 0x036C, // updated 5.21
Mount = 0x02F1, // updated 5.21 hotfix
DirectorVars = 0x00E6, // updated 5.18
SomeDirectorUnk1 = 0x0084, // updated 5.18
@ -226,7 +226,7 @@ namespace Sapphire::Network::Packets
EorzeaTimeOffset = 0x03B8, // updated 5.1
EquipDisplayFlags = 0x012F, // updated 5.21
EquipDisplayFlags = 0x006E, // updated 5.21 hotfix
/// Housing //////////////////////////////////////
@ -239,7 +239,7 @@ namespace Sapphire::Network::Packets
LandRename = 0x023A, // updated 5.0
HousingEstateGreeting = 0x023B, // updated 5.0
HousingUpdateLandFlagsSlot = 0x023C, // updated 5.0
HousingLandFlags = 0x0291, // updated 5.21
HousingLandFlags = 0x02D8, // updated 5.21 hotfix
HousingShowEstateGuestAccess = 0x023E, // updated 5.0
HousingObjectInitialize = 0x0240, // updated 5.0
@ -259,12 +259,12 @@ namespace Sapphire::Network::Packets
DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui
PerformNote = 0x0286, // updated 4.3
PrepareZoning = 0x01BE, // updated 5.21
ActorGauge = 0x03BB, // updated 5.21
PrepareZoning = 0x00B6, // updated 5.21 hotfix
ActorGauge = 0x00C7, // updated 5.21 hotfix
// daily quest info -> without them sent, login will take longer...
DailyQuests = 0x00E4, // updated 5.21
DailyQuestRepeatFlags = 0x0068, // updated 5.21
DailyQuests = 0x0130, // updated 5.21 hotfix
DailyQuestRepeatFlags = 0x02BA, // updated 5.21 hotfix
/// Doman Mahjong //////////////////////////////////////
MahjongOpenGui = 0x02A4, // only available in mahjong instance
@ -284,10 +284,10 @@ namespace Sapphire::Network::Packets
*/
enum ClientZoneIpcType : uint16_t
{
PingHandler = 0x03E4, // updated 5.21
InitHandler = 0x00F2, // updated 5.21
PingHandler = 0x012C, // updated 5.21 hotfix
InitHandler = 0x010D, // updated 5.21 hotfix
FinishLoadingHandler = 0x007D, // updated 5.21
FinishLoadingHandler = 0x0158, // updated 5.21 hotfix
CFCommenceHandler = 0x0201, // updated 5.21
@ -295,7 +295,7 @@ namespace Sapphire::Network::Packets
CFRegisterDuty = 0x00C4, // updated 5.21
CFRegisterRoulette = 0x030F, // updated 5.21
PlayTimeHandler = 0x0276, // updated 5.1
LogoutHandler = 0x0365, // updated 5.21
LogoutHandler = 0x0139, // updated 5.21 hotfix
CancelLogout = 0x008F, // updated 5.1
CFDutyInfoHandler = 0x0078, // updated 4.2
@ -303,18 +303,18 @@ namespace Sapphire::Network::Packets
SocialReqSendHandler = 0x00AE, // updated 4.1
CreateCrossWorldLS = 0x00AF, // updated 4.3
ChatHandler = 0x034C, // updated 5.21
ChatHandler = 0x03AB, // updated 5.21 hotfix
SocialListHandler = 0x0123, // updated 5.21
SocialListHandler = 0x02B9, // updated 5.21 hotfix
SetSearchInfoHandler = 0x039B, // updated 5.21
ReqSearchInfoHandler = 0x01CD, // updated 5.21
ReqSearchInfoHandler = 0x026F, // updated 5.21 hotfix
ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0
ReqRemovePlayerFromBlacklist = 0x00F1, // updated 5.0
BlackListHandler = 0x0358, // updated 5.21
BlackListHandler = 0x0157, // updated 5.21 hotfix
PlayerSearchHandler = 0x00F4, // updated 5.0
LinkshellListHandler = 0x01CF, // updated 5.21
LinkshellListHandler = 0x01DE, // updated 5.21 hotfix
MarketBoardRequestItemListingInfo = 0x0102, // updated 4.5
MarketBoardRequestItemListings = 0x0103, // updated 4.5
@ -333,39 +333,39 @@ namespace Sapphire::Network::Packets
ReqCountdownInitiate = 0x0135, // updated 5.0
ReqCountdownCancel = 0x0136, // updated 5.0
ZoneLineHandler = 0x0163, // updated 5.21
ClientTrigger = 0x01A0, // updated 5.21
ZoneLineHandler = 0x025E, // updated 5.21 hotfix
ClientTrigger = 0x017E, // updated 5.21 hotfix
DiscoveryHandler = 0x019A, // updated 5.2
PlaceFieldMarker = 0x013C, // updated 5.0
SkillHandler = 0x0372, // updated 5.21
GMCommand1 = 0x029A, // updated 5.21
GMCommand2 = 0x0182, // updated 5.21
SkillHandler = 0x0073, // updated 5.21 hotfix
GMCommand1 = 0x0302, // updated 5.21 hotfix
GMCommand2 = 0x01E5, // updated 5.21 hotfix
AoESkillHandler = 0x0072, // updated 5.18
UpdatePositionHandler = 0x031A, // updated 5.21
UpdatePositionHandler = 0x01B1, // updated 5.21 hotfix
InventoryModifyHandler = 0x0073, // updated 5.21
InventoryModifyHandler = 0x0067, // updated 5.21 hotfix
InventoryEquipRecommendedItems = 0x0149, // updated 5.0
ReqPlaceHousingItem = 0x014B, // updated 5.0
BuildPresetHandler = 0x0150, // updated 5.0
TalkEventHandler = 0x02CF, // updated 5.21
TalkEventHandler = 0x0281, // updated 5.21 hotfix
EmoteEventHandler = 0x0246, // updated 5.21
WithinRangeEventHandler = 0x02D1, // updated 5.21
OutOfRangeEventHandler = 0x02FB, // updated 5.21
EnterTeriEventHandler = 0x0284, // updated 5.21
ShopEventHandler = 0x0156, // updated 5.0
ReturnEventHandler = 0x012E, // updated 5.21
TradeReturnEventHandler = 0x0089, // updated 5.21
ReturnEventHandler = 0x02A2, // updated 5.21 hotfix
TradeReturnEventHandler = 0x01FD, // updated 5.21 hotfix
LinkshellEventHandler = 0x016B, // updated 4.5
LinkshellEventHandler1 = 0x016C, // updated 4.5
ReqEquipDisplayFlagsChange = 0x0083, // updated 5.21
ReqEquipDisplayFlagsChange = 0x00B5, // updated 5.21 hotfix
LandRenameHandler = 0xF177, // updated 5.0
HousingUpdateHouseGreeting = 0x0178, // updated 5.0

View file

@ -121,13 +121,6 @@ bool Sapphire::Entity::Player::load( uint32_t charId, World::SessionPtr pSession
setRot( 0.0f );
}
// Stats
m_hp = res->getUInt( "Hp" );
m_mp = res->getUInt( "Mp" );
m_tp = 0;
// Model
auto custom = res->getBlobVector( "Customize" );
memcpy( reinterpret_cast< char* >( m_customize ), custom.data(), custom.size() );
@ -209,6 +202,13 @@ bool Sapphire::Entity::Player::load( uint32_t charId, World::SessionPtr pSession
if( !loadActiveQuests() || !loadClassData() || !loadSearchInfo() || !loadHuntingLog() )
Logger::error( "Player #{0} data corrupt!", char_id_str );
initInventory();
calculateStats();
// Stats
m_hp = res->getUInt( "Hp" );
m_mp = res->getUInt( "Mp" );
m_tp = 0;
m_maxHp = getMaxHp();
m_maxMp = getMaxMp();
@ -217,12 +217,6 @@ bool Sapphire::Entity::Player::load( uint32_t charId, World::SessionPtr pSession
m_modelSubWeapon = 0;
m_lastTickTime = 0;
//m_pInventory->load();
initInventory(); // moved up so we don't lose hp every login
calculateStats();
// first login, run the script event
if( m_bNewGame )
{