Core/Players: use CharacterFlags enums to store player information in database and set player flags accordingly

This commit is contained in:
Ovahlord committed 2026-03-22 18:07:14 +01:00
1 parent 9c96064c11
commit db7998ae28
13 files changed
+243 -124

No files matched your search

+3 -1
View File
@@ -1560,7 +1560,8 @@ CREATE TABLE `characters` (
`facialStyle` tinyint unsigned NOT NULL DEFAULT '0',
`bankSlots` tinyint unsigned NOT NULL DEFAULT '0',
`restState` tinyint unsigned NOT NULL DEFAULT '0',
`playerFlags` int unsigned NOT NULL DEFAULT '0',
`characterFlags` int unsigned NOT NULL DEFAULT '0',
`characterFlags2` int unsigned NOT NULL DEFAULT '0',
`position_x` float NOT NULL DEFAULT '0',
`position_y` float NOT NULL DEFAULT '0',
`position_z` float NOT NULL DEFAULT '0',
@@ -3063,6 +3064,7 @@ INSERT INTO `updates` VALUES
('2022_12_24_00_characters.sql','D3F04078C0846BCF7C8330AC20C39B8C3AEE7002','RELEASED','2022-12-24 23:52:52',0),
('2022_12_26_00_characters.sql','74EDF8E4AC31419144E4535A295DB8B189CFAF95','RELEASED','2022-12-26 10:51:39',0),
('2023_07_11_00_characters.sql','0BA579ED21F4E75AC2B4797421B5029568B3F6E2','RELEASED','2023-07-16 22:00:15',0),
('2026_03_18_00_characters.sql','37744EF940E093FF1D21A21DC37FF5D604FD695B','RELEASED','2026-03-22 18:02:12',0),
('custom_2017_12_21_00_characters.sql','2D5B3830D47E4BC717EC468E18E477A32B9A21BF','ARCHIVED','2019-11-06 00:17:44',0),
('custom_2018_01_07_00_characters.sql','7437B6243B3CB6FA08F6A37BB39E38930B0DCFD3','ARCHIVED','2019-11-06 00:17:44',0),
('custom_2018_03_18_00_characters.sql','8D1E81A7272F643687C67443C270D17255A9AA84','ARCHIVED','2019-11-06 00:17:44',0),
@@ -0,0 +1,31 @@
-- Adding columns
ALTER TABLE `characters`
ADD COLUMN `characterFlags` INT(10) UNSIGNED DEFAULT 0 NOT NULL AFTER `playerFlags`,
ADD COLUMN `characterFlags2` INT(10) UNSIGNED DEFAULT 0 NOT NULL AFTER `characterFlags`;
-- Migrate data
-- Ghost
UPDATE `characters` SET `characterFlags`= `characterFlags` | 0x00002000 WHERE (`playerFlags` & 0x00000010) != 0;
-- Hide Cloak
UPDATE `characters` SET `characterFlags`= `characterFlags` | 0x00000800 WHERE (`playerFlags` & 0x00000800) != 0;
-- Hide Helm
UPDATE `characters` SET `characterFlags`= `characterFlags` | 0x00000400 WHERE (`playerFlags` & 0x00000400) != 0;
-- Game Master
UPDATE `characters` SET `characterFlags`= `characterFlags` | 0x00020000 WHERE (`playerFlags` & 0x00000008) != 0;
-- Resting
UPDATE `characters` SET `characterFlags`= `characterFlags` | 0x00000002 WHERE (`playerFlags` & 0x00000020) != 0;
-- PvP Enabled
UPDATE `characters` SET `characterFlags`= `characterFlags` | 0x00000040 WHERE (`playerFlags` & 0x00000100) != 0;
-- PvP Desired
UPDATE `characters` SET `characterFlags`= `characterFlags` | 0x00010000 WHERE (`playerFlags` & 0x00000200) != 0;
-- No XP Gain
UPDATE `characters` SET `characterFlags2`= `characterFlags2` | 0x00040000 WHERE (`playerFlags` & 0x02000000) != 0;
-- Can Use Void Storage Feature
UPDATE `characters` SET `characterFlags2`= `characterFlags2` | 0x04000000 WHERE (`playerFlags` & 0x20000000) != 0;
-- Low Level Raids enabled
UPDATE `characters` SET `characterFlags2`= `characterFlags2` | 0x20000000 WHERE (`playerFlags` & 0x00010000) != 0;
-- Auto Decline Guild Invites
UPDATE `characters` SET `characterFlags2`= `characterFlags2` | 0x40000000 WHERE (`playerFlags` & 0x08000000) != 0;
-- Conversion done, drop no longer needed column
ALTER TABLE `characters` DROP COLUMN `playerFlags`;