Paragon: ship class-12 weapon/armor proficiencies as SQL migration

Companion to 2026_05_10_00.sql. The spawn-data migration teaches the
worldserver where Paragon characters spawn and what per-level base
stats they have; this one teaches it which weapon/armor skill lines
to grant at first character login.

Without these rows a fresh Paragon character lands in their newbie
zone with no weapon or armor proficiencies (auto-attack greys out
on anything beyond a fist) -- the universal classMask=0 rows in
playercreateinfo_skills only cover Defense, Unarmed, Cloth,
languages, Mounts, and Companion Pets.

Adds 20 rows in playercreateinfo_skills with classMask=2048 (class
12 only) for every weapon and armor proficiency:
  - Weapons: Swords, Axes, Bows, Guns, Maces, 2H Swords, Dual Wield,
             Staves, 2H Maces, 2H Axes, Daggers, Thrown, Crossbows,
             Wands, Polearms, Fist Weapons.
  - Armor:   Plate Mail, Mail, Leather, Shield. (Cloth already
             granted via the classMask=0 universal row.)

Idempotent: DELETE WHERE classMask=2048 then INSERT, so it replays
cleanly on a partially-seeded DB (e.g. one where a contributor hand-
patched these rows before the migration landed).

Verified locally: applies cleanly twice in a row, worldserver restart
now logs `>> Loaded 1391 Player Create Skills` (was 1371 pre-Paragon
= +20 class-12 rows) and a freshly-rolled Draenei Paragon spawns with
the full weapon/armor kit.

CLIENT-PATCHES.md troubleshooting block updated to call out the
"Paragon spawns naked / can't equip anything" failure mode and list
all three migrations in the current rebuild recipe.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Docker Build
2026-05-09 13:38:27 -04:00
parent 56fa2fc7f7
commit 2874119c6d
2 changed files with 64 additions and 5 deletions
@@ -0,0 +1,50 @@
-- mod-paragon: starter weapon / armor skills for class 12 (Paragon).
--
-- Companion to 2026_05_10_00.sql. The spawn-data migration teaches
-- Player::Create *that* class 12 exists at a given race; this one
-- teaches it which weapon and armor skill lines to grant on first
-- character login.
--
-- Without these rows a fresh Paragon character lands in their newbie
-- zone with **no** weapon or armor proficiencies (auto-attack greys
-- out the moment they equip anything beyond a fist). The classMask=0
-- "all classes" rows in playercreateinfo_skills only cover Defense,
-- Unarmed, Cloth, the racial / language skills, Mounts and
-- Companion Pets -- which is exactly what bare-fisted, naked
-- characters look like.
--
-- Paragon plays every class, so it grants every weapon / armor
-- proficiency at level 1. The skillline rows themselves are still
-- gated by skillraceclassinfo_dbc (handled in 2026_05_09_00.sql),
-- so the client/server agree on what's allowed.
--
-- Idempotent: deletes any pre-existing classMask=2048 rows first
-- (class 12 owns this bitmask on Fractured) so the migration can
-- replay cleanly on a partially-seeded DB.
DELETE FROM `playercreateinfo_skills` WHERE `classMask` = 2048;
INSERT INTO `playercreateinfo_skills`
(`raceMask`, `classMask`, `skill`, `rank`, `comment`) VALUES
-- Weapon proficiencies
(0, 2048, 43, 0, 'Paragon - Swords'),
(0, 2048, 44, 0, 'Paragon - Axes'),
(0, 2048, 45, 0, 'Paragon - Bows'),
(0, 2048, 46, 0, 'Paragon - Guns'),
(0, 2048, 54, 0, 'Paragon - Maces'),
(0, 2048, 55, 0, 'Paragon - Two-Handed Swords'),
(0, 2048, 118, 0, 'Paragon - Dual Wield'),
(0, 2048, 136, 0, 'Paragon - Staves'),
(0, 2048, 160, 0, 'Paragon - Two-Handed Maces'),
(0, 2048, 172, 0, 'Paragon - Two-Handed Axes'),
(0, 2048, 173, 0, 'Paragon - Daggers'),
(0, 2048, 176, 0, 'Paragon - Thrown'),
(0, 2048, 226, 0, 'Paragon - Crossbows'),
(0, 2048, 228, 0, 'Paragon - Wands'),
(0, 2048, 229, 0, 'Paragon - Polearms'),
(0, 2048, 473, 0, 'Paragon - Fist Weapons'),
-- Armor proficiencies (Cloth is in a classMask=0 row already)
(0, 2048, 293, 0, 'Paragon - Plate Mail'),
(0, 2048, 413, 0, 'Paragon - Mail'),
(0, 2048, 414, 0, 'Paragon - Leather'),
(0, 2048, 433, 0, 'Paragon - Shield');