diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-08-13 00:31:39 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-08-13 00:31:39 +0200 |
commit | 5cf0c6c8bb2c4e58a2d66ba5f304af34d18a4782 (patch) | |
tree | 0616f3e83f511aae0e10916f0c22161017e09c24 /sql | |
parent | 82f19c898815e3bc5bb6288b0191ee897594f9b5 (diff) |
Core: Updated to 11.2.0
Diffstat (limited to 'sql')
-rw-r--r-- | sql/base/auth_database.sql | 43 | ||||
-rw-r--r-- | sql/base/characters_database.sql | 71 | ||||
-rw-r--r-- | sql/updates/auth/master/2025_08_13_00_auth.sql | 41 | ||||
-rw-r--r-- | sql/updates/characters/master/2025_08_13_00_characters.sql | 128 | ||||
-rw-r--r-- | sql/updates/hotfixes/master/2025_08_13_00_hotfixes.sql | 84 | ||||
-rw-r--r-- | sql/updates/world/master/2025_08_13_00_world.sql | 3 |
6 files changed, 324 insertions, 46 deletions
diff --git a/sql/base/auth_database.sql b/sql/base/auth_database.sql index 3d28ebe8f6b..b31dd804ba1 100644 --- a/sql/base/auth_database.sql +++ b/sql/base/auth_database.sql @@ -1188,7 +1188,35 @@ INSERT INTO `build_auth_key` VALUES (61967,'Mac','x64','WoWC',0x4DE3D440D1D46A38EC32D0D524004ABA), (61967,'Win','A64','WoW',0x7B443BB6B4F355B9E389F4F0ACB04FE8), (61967,'Win','x64','WoW',0x6E194B4B53038E76E01E9538107AFF4D), -(61967,'Win','x64','WoWC',0x9E135BF0B40BDD210EAF318AEB72801C); +(61967,'Win','x64','WoWC',0x9E135BF0B40BDD210EAF318AEB72801C), +(62213,'Mac','A64','WoW',0x4EB479A10C122085CFA59633DBCADA17), +(62213,'Mac','A64','WoWC',0x101F2207C5AB43A29762838FC4C460BA), +(62213,'Mac','x64','WoW',0x94D5B0A9620333C4F068A5F7FD5E16C6), +(62213,'Mac','x64','WoWC',0xBAA3BAFC4F9209AFB9EDA4C89DBB506C), +(62213,'Win','A64','WoW',0xF565E632CBC04516F235F2A412C61569), +(62213,'Win','x64','WoW',0x062594033EA9753E81240476AB4E21BC), +(62213,'Win','x64','WoWC',0x8584238F7E35711E8817CD53951478B2), +(62417,'Mac','A64','WoW',0x020BBBA62C6539043095AE1603FC3A1F), +(62417,'Mac','A64','WoWC',0xDA7BB5E78E98856A679EB442EB683DD5), +(62417,'Mac','x64','WoW',0x8D15525965A59F4C1A886E6BCC09D75A), +(62417,'Mac','x64','WoWC',0x02C9B276B11F9B175A59021B1EB7F9E3), +(62417,'Win','A64','WoW',0xDC74AF249532EF367023C78F11E6F709), +(62417,'Win','x64','WoW',0x702FC86D79262CD311393AEB3F5B88E6), +(62417,'Win','x64','WoWC',0xB97B257A3D69BBA321DEC1427591EAD6), +(62438,'Mac','A64','WoW',0x5C974D816F1D4806F77A60D125902B11), +(62438,'Mac','A64','WoWC',0x333EEF08165D098594D01993FB5566C4), +(62438,'Mac','x64','WoW',0x8EE8E906F3277B995C3FB76A9472316D), +(62438,'Mac','x64','WoWC',0x2D92FAC97BE1600E3CF7C41C260B90E3), +(62438,'Win','A64','WoW',0x5F43B9C77DA61431AAF5E527FC6BA0BA), +(62438,'Win','x64','WoW',0x54B80A79B8A5C515E25366AB57F0ACB0), +(62438,'Win','x64','WoWC',0xCAE41A1DD7CF9C2E850CE388BB1EEF6D), +(62493,'Mac','A64','WoW',0x35663EF5187F38257E9768481F1894DC), +(62493,'Mac','A64','WoWC',0x5A48D3A43278A6EA31B2E3AE0DE6E601), +(62493,'Mac','x64','WoW',0x1BEEC427C9F41184EFAAC048D51C5207), +(62493,'Mac','x64','WoWC',0x15B0A1D7EA355891634507CD840B2E16), +(62493,'Win','A64','WoW',0x043025D94567792FA8284C282E77E57F), +(62493,'Win','x64','WoW',0x5B038E707AB60E3A862C2E03A8487220), +(62493,'Win','x64','WoWC',0x1A65B9347FD44EF0A77479173D098226); /*!40000 ALTER TABLE `build_auth_key` ENABLE KEYS */; UNLOCK TABLES; @@ -1581,7 +1609,11 @@ INSERT INTO `build_info` VALUES (61491,11,1,7,NULL), (61559,11,1,7,NULL), (61609,11,1,7,NULL), -(61967,11,1,7,NULL); +(61967,11,1,7,NULL), +(62213,11,2,0,NULL), +(62417,11,2,0,NULL), +(62438,11,2,0,NULL), +(62493,11,2,0,NULL); /*!40000 ALTER TABLE `build_info` ENABLE KEYS */; UNLOCK TABLES; @@ -3194,7 +3226,7 @@ CREATE TABLE `realmlist` ( `timezone` tinyint unsigned NOT NULL DEFAULT '0', `allowedSecurityLevel` tinyint unsigned NOT NULL DEFAULT '0', `population` float NOT NULL DEFAULT '0', - `gamebuild` int unsigned NOT NULL DEFAULT '61967', + `gamebuild` int unsigned NOT NULL DEFAULT '62493', `Region` tinyint unsigned NOT NULL DEFAULT '1', `Battlegroup` tinyint unsigned NOT NULL DEFAULT '1', PRIMARY KEY (`id`), @@ -3209,7 +3241,7 @@ CREATE TABLE `realmlist` ( LOCK TABLES `realmlist` WRITE; /*!40000 ALTER TABLE `realmlist` DISABLE KEYS */; INSERT INTO `realmlist` VALUES -(1,'Trinity','127.0.0.1','127.0.0.1',NULL,NULL,'255.255.255.0',8085,0,0,1,0,0,61967,1,1); +(1,'Trinity','127.0.0.1','127.0.0.1',NULL,NULL,'255.255.255.0',8085,0,0,1,0,0,62493,1,1); /*!40000 ALTER TABLE `realmlist` ENABLE KEYS */; UNLOCK TABLES; @@ -3718,7 +3750,8 @@ INSERT INTO `updates` VALUES ('2025_06_25_00_auth.sql','27DC7FB423FFB3788082CCFC18D5432650B09FB3','ARCHIVED','2025-06-25 01:15:04',0), ('2025_06_27_00_auth.sql','243C89DFED0058323EF9690D124C1F20036D461B','ARCHIVED','2025-06-27 14:22:49',0), ('2025_07_14_00_auth.sql','5F975A202CF84F2BFEA366E0BEDF8FA63035CD62','ARCHIVED','2025-07-14 23:10:54',0), -('2025_07_21_00_auth.sql','44AA781EE1B1C66E8433E50A2E20916EB1BEFE23','ARCHIVED','2025-07-21 22:51:05',0); +('2025_07_21_00_auth.sql','44AA781EE1B1C66E8433E50A2E20916EB1BEFE23','ARCHIVED','2025-07-21 22:51:05',0), +('2025_08_13_00_auth.sql','5F67141AB407AEC202E8048765256AB11C5621EA','RELEASED','2025-08-12 19:26:13',0); /*!40000 ALTER TABLE `updates` ENABLE KEYS */; UNLOCK TABLES; diff --git a/sql/base/characters_database.sql b/sql/base/characters_database.sql index be834419bdc..a70185ede3d 100644 --- a/sql/base/characters_database.sql +++ b/sql/base/characters_database.sql @@ -591,6 +591,33 @@ LOCK TABLES `character_aura_stored_location` WRITE; UNLOCK TABLES; -- +-- Table structure for table `character_bank_tab_settings` +-- + +DROP TABLE IF EXISTS `character_bank_tab_settings`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!50503 SET character_set_client = utf8mb4 */; +CREATE TABLE `character_bank_tab_settings` ( + `characterGuid` bigint unsigned NOT NULL, + `tabId` tinyint unsigned NOT NULL, + `name` varchar(16) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `icon` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `description` varchar(2048) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `depositFlags` int DEFAULT '0', + PRIMARY KEY (`characterGuid`,`tabId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `character_bank_tab_settings` +-- + +LOCK TABLES `character_bank_tab_settings` WRITE; +/*!40000 ALTER TABLE `character_bank_tab_settings` DISABLE KEYS */; +/*!40000 ALTER TABLE `character_bank_tab_settings` ENABLE KEYS */; +UNLOCK TABLES; + +-- -- Table structure for table `character_banned` -- @@ -1913,39 +1940,6 @@ LOCK TABLES `character_transmog_outfits` WRITE; UNLOCK TABLES; -- --- Table structure for table `character_void_storage` --- - -DROP TABLE IF EXISTS `character_void_storage`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!50503 SET character_set_client = utf8mb4 */; -CREATE TABLE `character_void_storage` ( - `itemId` bigint unsigned NOT NULL, - `playerGuid` bigint unsigned NOT NULL, - `itemEntry` int unsigned NOT NULL, - `slot` tinyint unsigned NOT NULL, - `creatorGuid` bigint unsigned NOT NULL DEFAULT '0', - `randomBonusListId` int unsigned NOT NULL DEFAULT '0', - `fixedScalingLevel` int unsigned DEFAULT '0', - `artifactKnowledgeLevel` int unsigned DEFAULT '0', - `context` tinyint unsigned NOT NULL DEFAULT '0', - `bonusListIDs` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci, - PRIMARY KEY (`itemId`), - UNIQUE KEY `idx_player_slot` (`playerGuid`,`slot`), - KEY `idx_player` (`playerGuid`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `character_void_storage` --- - -LOCK TABLES `character_void_storage` WRITE; -/*!40000 ALTER TABLE `character_void_storage` DISABLE KEYS */; -/*!40000 ALTER TABLE `character_void_storage` ENABLE KEYS */; -UNLOCK TABLES; - --- -- Table structure for table `characters` -- @@ -1971,14 +1965,8 @@ CREATE TABLE `characters` ( `bagSlotFlags4` int unsigned NOT NULL DEFAULT '0', `bagSlotFlags5` int unsigned NOT NULL DEFAULT '0', `bankSlots` tinyint unsigned NOT NULL DEFAULT '0', + `bankTabs` tinyint unsigned NOT NULL DEFAULT '0', `bankBagFlags` int unsigned NOT NULL DEFAULT '0', - `bankBagSlotFlags1` int unsigned NOT NULL DEFAULT '0', - `bankBagSlotFlags2` int unsigned NOT NULL DEFAULT '0', - `bankBagSlotFlags3` int unsigned NOT NULL DEFAULT '0', - `bankBagSlotFlags4` int unsigned NOT NULL DEFAULT '0', - `bankBagSlotFlags5` int unsigned NOT NULL DEFAULT '0', - `bankBagSlotFlags6` int unsigned NOT NULL DEFAULT '0', - `bankBagSlotFlags7` int unsigned NOT NULL DEFAULT '0', `restState` tinyint unsigned NOT NULL DEFAULT '0', `playerFlags` int unsigned NOT NULL DEFAULT '0', `playerFlagsEx` int unsigned NOT NULL DEFAULT '0', @@ -3832,7 +3820,8 @@ INSERT INTO `updates` VALUES ('2025_03_29_00_characters.sql','6A49C236D0B8CCD8A5B6B51F60E116B3380772D7','ARCHIVED','2025-03-29 01:12:13',0), ('2025_05_31_00_characters.sql','C240EB5C4008B6AA0514802A18D7DD875680DE82','ARCHIVED','2025-05-31 19:45:56',0), ('2025_06_27_00_characters.sql','35088BA5BA4BD3B7FAAD6FD4FAE38E52A5B71CD8','ARCHIVED','2025-06-27 14:22:08',0), -('2025_07_21_00_characters.sql','056A99B9AA90186E5B3177BF54C86607B6518BE9','ARCHIVED','2025-07-21 22:51:05',0); +('2025_07_21_00_characters.sql','056A99B9AA90186E5B3177BF54C86607B6518BE9','ARCHIVED','2025-07-21 22:51:05',0), +('2025_08_13_00_characters.sql','9C2321777E6C34F18799C8967B1CA0C44F17DA18','RELEASED','2025-08-12 20:17:45',0); /*!40000 ALTER TABLE `updates` ENABLE KEYS */; UNLOCK TABLES; diff --git a/sql/updates/auth/master/2025_08_13_00_auth.sql b/sql/updates/auth/master/2025_08_13_00_auth.sql new file mode 100644 index 00000000000..8544b57cb5e --- /dev/null +++ b/sql/updates/auth/master/2025_08_13_00_auth.sql @@ -0,0 +1,41 @@ +DELETE FROM `build_info` WHERE `build` IN (62213,62417,62438,62493); +INSERT INTO `build_info` (`build`,`majorVersion`,`minorVersion`,`bugfixVersion`,`hotfixVersion`) VALUES +(62213,11,2,0,NULL), +(62417,11,2,0,NULL), +(62438,11,2,0,NULL), +(62493,11,2,0,NULL); + +DELETE FROM `build_auth_key` WHERE `build` IN (62213,62417,62438,62493); +INSERT INTO `build_auth_key` (`build`,`platform`,`arch`,`type`,`key`) VALUES +(62213,'Mac','A64','WoW',0x4EB479A10C122085CFA59633DBCADA17), +(62213,'Mac','A64','WoWC',0x101F2207C5AB43A29762838FC4C460BA), +(62213,'Mac','x64','WoW',0x94D5B0A9620333C4F068A5F7FD5E16C6), +(62213,'Mac','x64','WoWC',0xBAA3BAFC4F9209AFB9EDA4C89DBB506C), +(62213,'Win','A64','WoW',0xF565E632CBC04516F235F2A412C61569), +(62213,'Win','x64','WoW',0x062594033EA9753E81240476AB4E21BC), +(62213,'Win','x64','WoWC',0x8584238F7E35711E8817CD53951478B2), +(62417,'Mac','A64','WoW',0x020BBBA62C6539043095AE1603FC3A1F), +(62417,'Mac','A64','WoWC',0xDA7BB5E78E98856A679EB442EB683DD5), +(62417,'Mac','x64','WoW',0x8D15525965A59F4C1A886E6BCC09D75A), +(62417,'Mac','x64','WoWC',0x02C9B276B11F9B175A59021B1EB7F9E3), +(62417,'Win','A64','WoW',0xDC74AF249532EF367023C78F11E6F709), +(62417,'Win','x64','WoW',0x702FC86D79262CD311393AEB3F5B88E6), +(62417,'Win','x64','WoWC',0xB97B257A3D69BBA321DEC1427591EAD6), +(62438,'Mac','A64','WoW',0x5C974D816F1D4806F77A60D125902B11), +(62438,'Mac','A64','WoWC',0x333EEF08165D098594D01993FB5566C4), +(62438,'Mac','x64','WoW',0x8EE8E906F3277B995C3FB76A9472316D), +(62438,'Mac','x64','WoWC',0x2D92FAC97BE1600E3CF7C41C260B90E3), +(62438,'Win','A64','WoW',0x5F43B9C77DA61431AAF5E527FC6BA0BA), +(62438,'Win','x64','WoW',0x54B80A79B8A5C515E25366AB57F0ACB0), +(62438,'Win','x64','WoWC',0xCAE41A1DD7CF9C2E850CE388BB1EEF6D), +(62493,'Mac','A64','WoW',0x35663EF5187F38257E9768481F1894DC), +(62493,'Mac','A64','WoWC',0x5A48D3A43278A6EA31B2E3AE0DE6E601), +(62493,'Mac','x64','WoW',0x1BEEC427C9F41184EFAAC048D51C5207), +(62493,'Mac','x64','WoWC',0x15B0A1D7EA355891634507CD840B2E16), +(62493,'Win','A64','WoW',0x043025D94567792FA8284C282E77E57F), +(62493,'Win','x64','WoW',0x5B038E707AB60E3A862C2E03A8487220), +(62493,'Win','x64','WoWC',0x1A65B9347FD44EF0A77479173D098226); + +UPDATE `realmlist` SET `gamebuild`=62493 WHERE `gamebuild`=61967; + +ALTER TABLE `realmlist` CHANGE `gamebuild` `gamebuild` int unsigned NOT NULL DEFAULT '62493'; diff --git a/sql/updates/characters/master/2025_08_13_00_characters.sql b/sql/updates/characters/master/2025_08_13_00_characters.sql new file mode 100644 index 00000000000..0fbb7311b12 --- /dev/null +++ b/sql/updates/characters/master/2025_08_13_00_characters.sql @@ -0,0 +1,128 @@ +ALTER TABLE `characters` + ADD `bankTabs` tinyint unsigned NOT NULL DEFAULT 0 AFTER `bankSlots`, + DROP `bankBagSlotFlags1`, + DROP `bankBagSlotFlags2`, + DROP `bankBagSlotFlags3`, + DROP `bankBagSlotFlags4`, + DROP `bankBagSlotFlags5`, + DROP `bankBagSlotFlags6`, + DROP `bankBagSlotFlags7`; + +UPDATE `characters` SET `bankTabs`=LEAST(6,GREATEST( + `bankSlots`, + IF((`playerFlags` & 0x20000000)<>0,6,0), -- unlocked void storage + IF((`playerFlagsEx` & 0x1)<>0,4,0), -- unlocked reagent bank + IF(`level`>=80,6,0) +)); + +-- +-- Table structure for table `character_bank_tab_settings` +-- +DROP TABLE IF EXISTS `character_bank_tab_settings`; +CREATE TABLE `character_bank_tab_settings` ( + `characterGuid` bigint unsigned NOT NULL, + `tabId` tinyint unsigned NOT NULL, + `name` varchar(16) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `icon` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `description` varchar(2048) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + `depositFlags` int DEFAULT '0', + PRIMARY KEY (`characterGuid`,`tabId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +INSERT INTO `character_bank_tab_settings` SELECT `guid`,0,'Tab 1',NULL,NULL,0 FROM `characters` WHERE `bankTabs` >= 1; +INSERT INTO `character_bank_tab_settings` SELECT `guid`,1,'Tab 2',NULL,NULL,0 FROM `characters` WHERE `bankTabs` >= 2; +INSERT INTO `character_bank_tab_settings` SELECT `guid`,2,'Tab 3',NULL,NULL,0 FROM `characters` WHERE `bankTabs` >= 3; +INSERT INTO `character_bank_tab_settings` SELECT `guid`,3,'Reagents',NULL,NULL,0x80 FROM `characters` WHERE `bankTabs` >= 4; +INSERT INTO `character_bank_tab_settings` SELECT `guid`,4,'Void Storage 1',NULL,NULL,0 FROM `characters` WHERE `bankTabs` >= 5; +INSERT INTO `character_bank_tab_settings` SELECT `guid`,5,'Void Storage 2',NULL,NULL,0 FROM `characters` WHERE `bankTabs` >= 6; + +-- helper columns +-- character_inventory.bag_slot (inventory slot where the bag is stored) +-- character_inventory.new_slot +-- character_inventory.slot temporarily changed type to SMALLINT +ALTER TABLE `character_inventory` + ADD `bag_slot` INT, + ADD `new_slot` INT, + MODIFY `slot` SMALLINT UNSIGNED NOT NULL; + +UPDATE `character_inventory` ci1 +LEFT JOIN `character_inventory` ci2 ON ci1.bag = ci2.item +SET ci1.bag_slot = COALESCE(ci2.slot, 0); + +-- move items that need moving out of the way +UPDATE `character_inventory` SET `slot`=`slot`+1000 WHERE `bag`=0 AND `slot` BETWEEN 63 AND 97; -- BankItemSlots/BankBagSlots +UPDATE `character_inventory` SET `slot`=`slot`+1000 WHERE `bag`=0 AND `slot` BETWEEN 110 AND 207; -- ReagentSlots + +-- adjust BuyBackSlots/ChildEquipmentSlots/EquipableSpellSlots/AccountBankBagSlots +UPDATE `character_inventory` SET `slot`=`slot`-29 WHERE `bag`=0 AND `slot` BETWEEN 98 AND 109; -- BuyBackSlots +UPDATE `character_inventory` SET `slot`=`slot`-127 WHERE `bag`=0 AND `slot` BETWEEN 208 AND 231; -- ChildEquipmentSlots/EquipableSpellSlots/AccountBankBagSlots + +SET @item_guid := 0; +SELECT MAX(guid) INTO @item_guid FROM item_instance; + +-- create new bags +INSERT INTO `character_inventory` (`guid`,`bag`,`slot`,`item`) +SELECT cbts.characterGuid, 0, 63 + cbts.`tabId`, (@item_guid := @item_guid + 1) FROM `character_bank_tab_settings` cbts; + +INSERT INTO `item_instance` (`guid`,`itemEntry`,`owner_guid`,`charges`,`flags`,`enchantments`,`playedTime`,`createTime`,`text`,`bonusListIDs`) +SELECT ci.`item`, 242709, ci.`guid`, '', 0x1, '0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ', c.totaltime, UNIX_TIMESTAMP(),'','' +FROM `character_inventory` ci +LEFT JOIN `characters` c ON c.`guid` = ci.`guid` +WHERE ci.`bag` = 0 AND ci.`slot` BETWEEN 63 AND 68; + +-- calculate new slots for old banked items +UPDATE `character_inventory` ci +LEFT JOIN ( + SELECT item, new_slot + FROM ( + SELECT guid, bag, slot, item, IF(@prev <> guid, @row_num:=0,@row_num:=@row_num+1) AS new_slot, @prev:=guid + FROM character_inventory, + (SELECT @row_num:=0) rn, + (SELECT @prev:='') prev + WHERE (bag_slot = 0 AND slot BETWEEN 1063 AND 1097) OR bag_slot BETWEEN 91 AND 97 + ORDER BY guid, bag_slot, slot + ) `window` +) new_slots ON new_slots.item = ci.item +SET ci.new_slot = new_slots.new_slot; + +-- assign new bags and slots +UPDATE `character_inventory` ci +LEFT JOIN `character_inventory` ci2 ON ci2.guid = ci.guid AND ci2.bag = 0 AND ci2.slot = (ci.new_slot DIV 98) + 63 +SET ci.bag = ci2.item, ci.slot = ci.new_slot MOD 98 +WHERE (ci.bag_slot = 0 AND ci.slot BETWEEN 1063 AND 1097) OR ci.bag_slot BETWEEN 91 AND 97; + +-- move reagents as-is (bag is the same size) +UPDATE `character_inventory` ci +LEFT JOIN `character_inventory` ci2 ON ci2.guid = ci.guid AND ci2.bag = 0 AND ci2.slot = 66 +SET ci.bag = ci2.item, ci.slot = ci.slot - 1110 +WHERE (ci.bag_slot = 0 AND ci.slot BETWEEN 1110 AND 1207); + +-- void storage +ALTER TABLE `character_void_storage` + ADD `itemGuid` BIGINT UNSIGNED, + ADD `bagGuid` BIGINT UNSIGNED; + +-- generate guids for void storage +UPDATE `character_void_storage` cvs +SET +cvs.`itemGuid` = (@item_guid := @item_guid + 1), +cvs.`bagGuid` = (SELECT ci.`item` FROM `character_inventory` ci WHERE ci.`guid` = cvs.`playerGuid` AND ci.`bag` = 0 AND ci.`slot` = 67 + (cvs.`slot` DIV 80)); + +-- create items from void storage +INSERT INTO `item_instance` (`guid`, `itemEntry`, `owner_guid`, `creatorGuid`, `charges`, `flags`, `enchantments`, `randomBonusListId`, `durability`, `playedTime`, `createTime`, `text`, `context`, `bonusListIDs`) +SELECT cvs.`itemGuid`, cvs.`itemEntry`, cvs.`playerGuid`, cvs.`creatorGuid`, '', 0x1, '0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ', cvs.`randomBonusListId`, 999, c.`totaltime`, UNIX_TIMESTAMP(), '', cvs.context, cvs.bonusListIDs FROM `character_void_storage` cvs +LEFT JOIN `characters` c ON c.`guid` = cvs.`playerGuid`; + +INSERT INTO `item_instance_modifiers` (`itemGuid`, `fixedScalingLevel`, `artifactKnowledgeLevel`) +SELECT cvs.`itemGuid`, COALESCE(cvs.`fixedScalingLevel`, 0), COALESCE(cvs.`artifactKnowledgeLevel`, 0) FROM `character_void_storage` cvs +WHERE cvs.`fixedScalingLevel` > 0 OR cvs.`artifactKnowledgeLevel` > 0; + +INSERT INTO `character_inventory` (`guid`, `bag`, `slot`, `item`) +SELECT cvs.`playerGuid`, cvs.`bagGuid`, cvs.`slot` MOD 80, cvs.`itemGuid` FROM `character_void_storage` cvs; + +ALTER TABLE `character_inventory` + DROP `bag_slot`, + DROP `new_slot`, + MODIFY `slot` TINYINT UNSIGNED NOT NULL DEFAULT 0; + +DROP TABLE IF EXISTS `character_void_storage`; diff --git a/sql/updates/hotfixes/master/2025_08_13_00_hotfixes.sql b/sql/updates/hotfixes/master/2025_08_13_00_hotfixes.sql new file mode 100644 index 00000000000..9d6e1dec51c --- /dev/null +++ b/sql/updates/hotfixes/master/2025_08_13_00_hotfixes.sql @@ -0,0 +1,84 @@ + +ALTER TABLE `animation_data` MODIFY COLUMN `BehaviorTier` tinyint NOT NULL DEFAULT 0 AFTER `Fallback`; + +DROP TABLE IF EXISTS `bank_bag_slot_prices`; + +-- +-- Table structure for table `bank_tab` +-- +DROP TABLE IF EXISTS `bank_tab`; +CREATE TABLE `bank_tab` ( + `ID` int unsigned NOT NULL DEFAULT '0', + `Cost` bigint unsigned NOT NULL DEFAULT '0', + `BankType` tinyint unsigned NOT NULL DEFAULT '0', + `OrderIndex` tinyint NOT NULL DEFAULT '0', + `PlayerConditionID` int NOT NULL DEFAULT '0', + `PurchasePromptTitle` int NOT NULL DEFAULT '0', + `PurchasePromptBody` int NOT NULL DEFAULT '0', + `PurchasePromptConfirmation` int NOT NULL DEFAULT '0', + `TabCleanupConfirmation` int NOT NULL DEFAULT '0', + `TabNameEditBoxHeader` int NOT NULL DEFAULT '0', + `VerifiedBuild` int NOT NULL DEFAULT '0', + PRIMARY KEY (`ID`,`VerifiedBuild`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +ALTER TABLE `banned_addons` MODIFY COLUMN `Flags` int NOT NULL DEFAULT 0 AFTER `Version`; + +ALTER TABLE `cfg_regions` ADD COLUMN `TimeEventRegionGroupID` int NOT NULL DEFAULT 0 AFTER `ChallengeOrigin`; + +ALTER TABLE `char_titles` MODIFY COLUMN `Flags` int NOT NULL DEFAULT 0 AFTER `MaskID`; + +ALTER TABLE `chr_classes` + ADD COLUMN `StartingLevel` int NOT NULL DEFAULT 0 AFTER `Flags`, + ADD COLUMN `HasStrengthBonus` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`, + ADD COLUMN `DamageBonusStat` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `RolesMask`, + ADD COLUMN `HasRelicSlot` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `DamageBonusStat`; + +ALTER TABLE `creature_family` ADD COLUMN `CategoryEnumID` int NOT NULL DEFAULT 0 AFTER `PetTalentType`; + +ALTER TABLE `expected_stat` ADD COLUMN `ContentSetID` int NOT NULL DEFAULT 0 AFTER `CreatureSpellDamage`; + +ALTER TABLE `item` MODIFY COLUMN `ClassID` int NOT NULL DEFAULT 0 AFTER `ID`; + +ALTER TABLE `item_set_spell` ADD COLUMN `TraitSubTreeID` smallint UNSIGNED NOT NULL DEFAULT 0 AFTER `SpellID`; + +ALTER TABLE `map_challenge_mode` + ADD COLUMN `FirstRewardQuestID1` int NOT NULL DEFAULT 0 AFTER `CriteriaCount3`, + ADD COLUMN `FirstRewardQuestID2` int NOT NULL DEFAULT 0 AFTER `FirstRewardQuestID1`, + ADD COLUMN `FirstRewardQuestID3` int NOT NULL DEFAULT 0 AFTER `FirstRewardQuestID2`, + ADD COLUMN `FirstRewardQuestID4` int NOT NULL DEFAULT 0 AFTER `FirstRewardQuestID3`, + ADD COLUMN `FirstRewardQuestID5` int NOT NULL DEFAULT 0 AFTER `FirstRewardQuestID4`, + ADD COLUMN `FirstRewardQuestID6` int NOT NULL DEFAULT 0 AFTER `FirstRewardQuestID5`, + ADD COLUMN `RewardQuestID1` int NOT NULL DEFAULT 0 AFTER `FirstRewardQuestID6`, + ADD COLUMN `RewardQuestID2` int NOT NULL DEFAULT 0 AFTER `RewardQuestID1`, + ADD COLUMN `RewardQuestID3` int NOT NULL DEFAULT 0 AFTER `RewardQuestID2`, + ADD COLUMN `RewardQuestID4` int NOT NULL DEFAULT 0 AFTER `RewardQuestID3`, + ADD COLUMN `RewardQuestID5` int NOT NULL DEFAULT 0 AFTER `RewardQuestID4`, + ADD COLUMN `RewardQuestID6` int NOT NULL DEFAULT 0 AFTER `RewardQuestID5`; + +ALTER TABLE `map_challenge_mode` MODIFY COLUMN `Flags` int NOT NULL DEFAULT 0 AFTER `MapID`; + +ALTER TABLE `spell_category` + MODIFY COLUMN `UsesPerWeek` int NOT NULL DEFAULT 0 AFTER `Flags`, + MODIFY COLUMN `MaxCharges` int NOT NULL DEFAULT 0 AFTER `UsesPerWeek`; + +ALTER TABLE `spell_equipped_items` MODIFY COLUMN `EquippedItemClass` int NOT NULL DEFAULT 0 AFTER `SpellID`; + +ALTER TABLE `spell_visual_kit` + ADD COLUMN `MinimumSpellVisualDensityFilterType` int NOT NULL DEFAULT 0 AFTER `DelayMax`, + ADD COLUMN `MinimumSpellVisualDensityFilterParam` int NOT NULL DEFAULT 0 AFTER `MinimumSpellVisualDensityFilterType`, + ADD COLUMN `ReducedSpellVisualDensityFilterType` int NOT NULL DEFAULT 0 AFTER `MinimumSpellVisualDensityFilterParam`, + ADD COLUMN `ReducedSpellVisualDensityFilterParam` int NOT NULL DEFAULT 0 AFTER `ReducedSpellVisualDensityFilterType`; + +ALTER TABLE `unit_power_bar` MODIFY COLUMN `Flags` int NOT NULL DEFAULT 0 AFTER `BarType`; + +ALTER TABLE `warband_scene` + DROP COLUMN `Source`, + DROP COLUMN `SourceType`; + +ALTER TABLE `warband_scene_locale` DROP COLUMN `Source_lang`; + +DELETE FROM `item_sparse` WHERE `ID` IN (208392,242709); +INSERT INTO `item_sparse` (`ID`, `AllowableRace`, `Description`, `Display3`, `Display2`, `Display1`, `Display`, `ExpansionID`, `DmgVariance`, `LimitCategory`, `DurationInInventory`, `QualityModifier`, `BagFamily`, `StartQuestID`, `LanguageID`, `ItemRange`, `StatPercentageOfSocket1`, `StatPercentageOfSocket2`, `StatPercentageOfSocket3`, `StatPercentageOfSocket4`, `StatPercentageOfSocket5`, `StatPercentageOfSocket6`, `StatPercentageOfSocket7`, `StatPercentageOfSocket8`, `StatPercentageOfSocket9`, `StatPercentageOfSocket10`, `StatPercentEditor1`, `StatPercentEditor2`, `StatPercentEditor3`, `StatPercentEditor4`, `StatPercentEditor5`, `StatPercentEditor6`, `StatPercentEditor7`, `StatPercentEditor8`, `StatPercentEditor9`, `StatPercentEditor10`, `StatModifierBonusStat1`, `StatModifierBonusStat2`, `StatModifierBonusStat3`, `StatModifierBonusStat4`, `StatModifierBonusStat5`, `StatModifierBonusStat6`, `StatModifierBonusStat7`, `StatModifierBonusStat8`, `StatModifierBonusStat9`, `StatModifierBonusStat10`, `Stackable`, `MaxCount`, `MinReputation`, `RequiredAbility`, `SellPrice`, `BuyPrice`, `VendorStackCount`, `PriceVariance`, `PriceRandomValue`, `Flags1`, `Flags2`, `Flags3`, `Flags4`, `Flags5`, `FactionRelated`, `ModifiedCraftingReagentItemID`, `ContentTuningID`, `PlayerLevelToItemLevelCurveID`, `ItemNameDescriptionID`, `RequiredTransmogHoliday`, `RequiredHoliday`, `GemProperties`, `SocketMatchEnchantmentId`, `TotemCategoryID`, `InstanceBound`, `ZoneBound1`, `ZoneBound2`, `ItemSet`, `LockID`, `PageID`, `ItemDelay`, `MinFactionID`, `RequiredSkillRank`, `RequiredSkill`, `ItemLevel`, `AllowableClass`, `ArtifactID`, `SpellWeight`, `SpellWeightCategory`, `SocketType1`, `SocketType2`, `SocketType3`, `SheatheType`, `Material`, `PageMaterialID`, `Bonding`, `DamageDamageType`, `ContainerSlots`, `RequiredPVPMedal`, `RequiredPVPRank`, `RequiredLevel`, `InventoryType`, `OverallQualityID`, `VerifiedBuild`) VALUES +(208392,-1,'','','','','Account Bank Tab Bag (DNT)',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,0,0,0,0,0,1,1,1.034399986267089843,0,0,67375104,268437504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,-1,0,0,0,0,0,0,0,0,0,0,0,98,0,0,0,18,1,62493), +(242709,-1,'','','','','Character Bank Tab Bag (DNT)',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,0,0,0,0,0,1,1,0.990899980068206787,0,0,67375104,268437504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,-1,0,0,0,0,0,0,0,0,0,0,0,98,0,0,0,18,1,62493); diff --git a/sql/updates/world/master/2025_08_13_00_world.sql b/sql/updates/world/master/2025_08_13_00_world.sql new file mode 100644 index 00000000000..ce62921b66e --- /dev/null +++ b/sql/updates/world/master/2025_08_13_00_world.sql @@ -0,0 +1,3 @@ +ALTER TABLE `areatrigger_create_properties_orbit` CHANGE `StartDelay` `ExtraTimeForBlending` INT NOT NULL DEFAULT 0; + +ALTER TABLE `creature_template_difficulty` ADD `TypeFlags3` INT UNSIGNED NOT NULL DEFAULT 0 AFTER `TypeFlags2`; |