From 62fa2a4a04e3cefb43ae58ea2d44fab0d8082c70 Mon Sep 17 00:00:00 2001 From: Alice Ogeda Date: Fri, 3 Jan 2025 05:08:22 -0300 Subject: [PATCH] fix crash on HW+ skills related; aligned action struct a tiny bit more; --- deps/datReader/Exd/Structs.h | 6 +++--- src/world/Manager/PlayerMgr.cpp | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/deps/datReader/Exd/Structs.h b/deps/datReader/Exd/Structs.h index d2604a30..e8a9b1ad 100644 --- a/deps/datReader/Exd/Structs.h +++ b/deps/datReader/Exd/Structs.h @@ -391,10 +391,10 @@ namespace Excel uint8_t EffectWidth; uint8_t CostType; uint8_t Cond; - uint8_t Element; - uint8_t ProcStatus; - uint8_t ClassJobCategory; uint8_t RecastGroup; + uint8_t ProcStatus; + uint8_t Unknown1; // todo: possibly cost type? tp etc? + uint8_t ClassJobCategory; // recastgroup uint8_t Init; uint8_t Omen; uint8_t Learn; diff --git a/src/world/Manager/PlayerMgr.cpp b/src/world/Manager/PlayerMgr.cpp index 19ce1296..44e50de9 100644 --- a/src/world/Manager/PlayerMgr.cpp +++ b/src/world/Manager/PlayerMgr.cpp @@ -346,6 +346,8 @@ void PlayerMgr::onGainExp( Entity::Player& player, uint32_t exp ) { uint32_t currentExp = player.getCurrentExp(); uint16_t level = player.getLevel(); + uint32_t expGained = exp; + auto currentClass = static_cast< uint8_t >( player.getClass() ); if( level >= Common::MAX_PLAYER_LEVEL ) @@ -377,7 +379,7 @@ void PlayerMgr::onGainExp( Entity::Player& player, uint32_t exp ) else player.setCurrentExp( currentExp + exp ); - Network::Util::Packet::sendActorControlSelf( player, player.getId(), GainExpMsg, currentClass, exp ); + Network::Util::Packet::sendActorControlSelf( player, player.getId(), GainExpMsg, currentClass, expGained ); Network::Util::Packet::sendActorControlSelf( player, player.getId(), UpdateUiExp, currentClass, player.getCurrentExp() ); }