aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2025_01_02_01_world.sql6
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp2
-rw-r--r--src/server/game/Globals/ObjectMgr.h2
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;