Setup/Fixup

* fix required class/race masks on items and quests
   during import instead of on demand
This commit is contained in:
Sarjuuk 2026-01-15 23:47:02 +01:00
parent 2ef3f575c3
commit a89eef5736
9 changed files with 33 additions and 41 deletions

View file

@ -1306,8 +1306,8 @@ CREATE TABLE `aowow_items` (
`repairPrice` int(10) unsigned NOT NULL,
`slot` tinyint(4) NOT NULL,
`slotBak` tinyint(3) unsigned NOT NULL DEFAULT 0,
`requiredClass` int(11) NOT NULL DEFAULT -1,
`requiredRace` int(11) NOT NULL DEFAULT -1,
`requiredClass` smallint(5) unsigned NOT NULL DEFAULT 0,
`requiredRace` smallint(5) unsigned NOT NULL DEFAULT 0,
`itemLevel` smallint(5) unsigned NOT NULL DEFAULT 0,
`requiredLevel` tinyint(3) unsigned NOT NULL DEFAULT 0,
`requiredSkill` smallint(5) unsigned NOT NULL DEFAULT 0,

View file

@ -71,7 +71,7 @@ UNLOCK TABLES;
LOCK TABLES `aowow_dbversion` WRITE;
/*!40000 ALTER TABLE `aowow_dbversion` DISABLE KEYS */;
INSERT INTO `aowow_dbversion` VALUES (1768385061,0,NULL,NULL);
INSERT INTO `aowow_dbversion` VALUES (1768517244,0,NULL,NULL);
/*!40000 ALTER TABLE `aowow_dbversion` ENABLE KEYS */;
UNLOCK TABLES;

View file

@ -0,0 +1,9 @@
UPDATE `aowow_items` SET
`requiredClass` = IF((`requiredClass` & 1535) = 1535, 0, `requiredClass` & 1535),
`requiredRace` = IF((`requiredRace` & 1791) = 1791, 0, `requiredRace` & 1791)
;
ALTER TABLE `aowow_items`
MODIFY COLUMN `requiredClass` smallint(5) unsigned NOT NULL DEFAULT 0,
MODIFY COLUMN `requiredRace` smallint(5) unsigned NOT NULL DEFAULT 0
;

View file

@ -203,10 +203,10 @@ CLISetup::registerSetup("build", new class extends SetupScript
if ($cI->getField('quality') > $ench['quality'])
$ench['quality'] = $cI->getField('quality');
if ($cI->getField('requiredClass') > 0)
if ($rc = $cI->getField('requiredClass'))
{
$ench['classes'] = $cI->getField('requiredClass');
$ench['jsonequip']['classes'] = $cI->getField('requiredClass');
$ench['classes'] = $rc;
$ench['jsonequip']['classes'] = $rc;
}
if (!isset($ench['jsonequip']['reqlevel']))

View file

@ -46,7 +46,8 @@ CLISetup::registerSetup("sql", new class extends SetupScript
BuyCount, BuyPrice, SellPrice,
0 AS repairPrice,
InventoryType AS slot, InventoryType AS slotBak,
AllowableClass, AllowableRace,
IF((`AllowableClass` & 1535) = 1535, 0, `AllowableClass` & 1535) AS "requiredClass",
IF((`AllowableRace` & 1791) = 1791, 0, `AllowableRace` & 1791) AS "requiredRace",
ItemLevel,
RequiredLevel,
RequiredSkill, RequiredSkillRank,
@ -190,7 +191,7 @@ CLISetup::registerSetup("sql", new class extends SetupScript
DB::Aowow()->query('UPDATE ?_items i, dbc_spell s SET i.subClass = -3 WHERE s.effect1Id = 54 AND s.id = i.spellId1 AND i.class = 0 AND i.subClassBak = 8');
// move armor tokens to own category
DB::Aowow()->query('UPDATE ?_items SET subClass = -2 WHERE quality = 4 AND class = 15 AND subClassBak = 0 AND requiredClass AND (requiredClass & 0x5FF) <> 0x5FF');
DB::Aowow()->query('UPDATE ?_items SET subClass = -2 WHERE quality = 4 AND class = 15 AND subClassBak = 0 AND requiredClass > 0');
// move some junk to holiday if it requires one
DB::Aowow()->query('UPDATE ?_items SET subClass = 3 WHERE classBak = 15 AND subClassBak = 0 AND eventId <> 0');

View file

@ -45,8 +45,8 @@ CLISetup::registerSetup("sql", new class extends SetupScript
IF(d.entry IS NULL, 0, 134217728) + -- disabled
IF(q.Flags & 16384, 536870912, 0) -- unavailable
) AS cuFlags,
IFNULL(qa.AllowableClasses, 0),
AllowableRaces,
IFNULL(IF((qa.`AllowableClasses` & 1535) = 1535, 0, qa.`AllowableClasses` & 1535), 0) AS "reqClassMask",
IF((`AllowableRaces` & 1791) = 1791, 0, `AllowableRaces` & 1791) AS "reqRaceMask",
IFNULL(qa.RequiredSkillId, 0), IFNULL(qa.RequiredSkillPoints, 0),
RequiredFactionId1, RequiredFactionId2,
RequiredFactionValue1, RequiredFactionValue2,