diff options
-rw-r--r-- | sql/updates/world/master/2025_01_02_01_world.sql | 6 | ||||
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Globals/ObjectMgr.h | 2 |
3 files changed, 8 insertions, 2 deletions
diff --git a/sql/updates/world/master/2025_01_02_01_world.sql b/sql/updates/world/master/2025_01_02_01_world.sql new file mode 100644 index 00000000000..a287f8c78c0 --- /dev/null +++ b/sql/updates/world/master/2025_01_02_01_world.sql @@ -0,0 +1,6 @@ +-- using signed as Stats updatefield is also signed +ALTER TABLE `player_classlevelstats` + MODIFY COLUMN `str` int NOT NULL COMMENT 'strength' AFTER `level`, + MODIFY COLUMN `agi` int NOT NULL COMMENT 'agility' AFTER `str`, + MODIFY COLUMN `sta` int NOT NULL COMMENT 'stamina' AFTER `agi`, + MODIFY COLUMN `inte` int NOT NULL COMMENT 'intellect' AFTER `sta`; diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 1bc4aeeee29..8d9ffe1f835 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -4265,7 +4265,7 @@ void ObjectMgr::LoadPlayerInfo() PlayerLevelInfo& levelInfo = playerInfo->levelInfo[current_level - 1]; for (uint8 i = 0; i < MAX_STATS; ++i) - levelInfo.stats[i] = fields[i + 2].GetUInt16() + raceStatModifiers[race].StatModifier[i]; + levelInfo.stats[i] = fields[i + 2].GetInt32() + raceStatModifiers[race].StatModifier[i]; } } diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index 32318209a39..006b25a3ffc 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -640,7 +640,7 @@ typedef std::vector<PlayerCreateInfoItem> PlayerCreateInfoItems; struct PlayerLevelInfo { - uint16 stats[MAX_STATS] = { }; + int32 stats[MAX_STATS] = { }; }; typedef std::vector<uint32> PlayerCreateInfoSpells; |