refactor(DB/Spells): Move custom attributes from core to database (#26375)

This commit is contained in:
Kitzunu
2026-07-25 22:33:35 +02:00
committed by GitHub
parent 362e39903f
commit 0b2d522089
2 changed files with 102 additions and 264 deletions

View File

@@ -0,0 +1,101 @@
DELETE FROM `spell_custom_attr` WHERE `spell_id` IN (6197, 11971, 12579, 14183, 15502, 17962, 27891, 28969, 29306, 29325, 30659, 32593, 32594, 34655, 35859, 38044, 38449, 40327, 40520, 43138, 45145, 45271, 45347, 45348, 45537, 49283, 49284, 49381, 49882, 50315, 50526, 52752, 53353, 54314, 54331, 54714, 55093, 55604, 55645, 56098, 58567, 58690, 58984, 59283, 59354, 59805, 61920, 62775, 63124, 63293, 63675, 63978, 64125, 64126, 64619, 64638, 65280, 65775, 66378, 66765, 66809, 67097, 67098, 67099, 67331, 67333, 67721, 67847, 67861, 67862, 67863, 68873, 70324, 71157, 72347, 72409, 72447, 72448, 72449, 72465, 72963, 72964, 72965, 72966, 74507);
INSERT INTO `spell_custom_attr` (`spell_id`, `attributes`) VALUES
-- SPELL_ATTR0_CU_CONE_BACK (0x2)
(58690, 2), -- Cyanigosa, Tail Sweep
(59283, 2), -- Cyanigosa, Tail Sweep
-- SPELL_ATTR0_CU_CONE_LINE (0x4)
(63293, 4), -- Mimiron - spinning damage
(64619, 4), -- Ulduar, Mimiron, Emergency Fire Bot, Water Spray
(68873, 4), -- Wailing Souls
(70324, 4), -- Wailing Souls
-- SPELL_ATTR0_CU_SHARE_DAMAGE (0x8)
(66765, 8), -- Meteor Fists
(66809, 8), -- Meteor Fists
(67331, 8), -- Meteor Fists
(67333, 8), -- Meteor Fists
-- SPELL_ATTR0_CU_NO_INITIAL_THREAT (0x10)
(6197, 16), -- Eagle Eye
-- SPELL_ATTR0_CU_DONT_BREAK_STEALTH (0x40)
(14183, 64), -- Premeditation
-- SPELL_ATTR0_CU_NO_PVP_FLAG (0x80)
(50315, 128), -- Disco Ball
(58984, 128), -- Shadowmeld, issue #16626
-- SPELL_ATTR0_CU_IGNORE_EVADE (0x800)
(45537, 2048), -- Cosmetic - Lightning Beam Channel
-- SPELL_ATTR0_CU_NEGATIVE_EFF0 (0x1000)
(72347, 4096), -- Lock Players and Tap Chest (Gunship Battle)
-- SPELL_ATTR0_CU_IGNORE_ARMOR (0x8000)
(49882, 32768), -- Leviroth Self-Impale
(62775, 32768), -- Ulduar: XT-002 Tympanic Tamparum
(64125, 32768), -- Ulduar, Yogg-Saron, Squeeze
(64126, 32768), -- Ulduar, Yogg-Saron, Squeeze
(66378, 32768), -- Trial of the Crusader, Jaraxxus, Shivan Slash
(67097, 32768), -- Trial of the Crusader, Jaraxxus, Shivan Slash
(67098, 32768), -- Trial of the Crusader, Jaraxxus, Shivan Slash
(67099, 32768), -- Trial of the Crusader, Jaraxxus, Shivan Slash
(72409, 32768), -- Rune of Blood (Deathbringer Saurfang)
(72447, 32768), -- Rune of Blood (Deathbringer Saurfang)
(72448, 32768), -- Rune of Blood (Deathbringer Saurfang)
(72449, 32768), -- Rune of Blood (Deathbringer Saurfang)
-- SPELL_ATTR0_CU_REQ_CASTER_BEHIND_TARGET (0x20000)
(63124, 131072), -- quest There's Something About the Squire (13654)
-- SPELL_ATTR0_CU_ALLOW_INFLIGHT_TARGET (0x40000)
(43138, 262144), -- North Fleet Reservist Kill Credit
-- SPELL_ATTR0_CU_BINARY_SPELL (0x100000)
(45145, 1048576), -- Snake Trap Effect
-- SPELL_ATTR0_CU_NO_POSITIVE_TAKEN_BONUS (0x200000)
(17962, 2097152), -- Conflagrate
(32593, 2097152), -- Earth Shield aura
(32594, 2097152), -- Earth Shield aura
(49283, 2097152), -- Earth Shield aura
(49284, 2097152), -- Earth Shield aura
(50526, 2097152), -- Wandering Plague
(52752, 2097152), -- Ancestral Awakening Heal
(53353, 2097152), -- Chimera Shot - Serpent trigger
(63675, 2097152), -- Improved Devouring Plague
-- SPELL_ATTR0_CU_SINGLE_AURA_STACK (0x400000)
(11971, 4194304), -- Sunder Armor
(12579, 4194304), -- Player Winter's Chill
(15502, 4194304), -- Sunder Armor
(27891, 4194304), -- Naxxramas, Sludge Belcher, Acidic Sludge (10 normal)
(28969, 4194304), -- Naxxramas, Crypt Guard, Acid Spit (10 normal)
(29306, 4194304), -- Naxxramas (Gluth's Zombies): Infected Wound
(29325, 4194304), -- Naxxramas, Stoneskin Gargoyle, Acid Volley (10 normal)
(30659, 4194304), -- Hellfire Ramparts, Fel Infusion
(34655, 4194304), -- Snake Trap, Deadly Poison
(35859, 4194304), -- The Eye, Nether Vapor
(38044, 4194304), -- Serpentshrine Cavern, Surge
(38449, 4194304), -- Serpentshrine Cavern, Blessing of the Tides
(40327, 4194304), -- Black Temple, Atrophy
(40520, 4194304), -- Black Temple, Shade Soul Channel
(45271, 4194304), -- Sunwell, Eredar Twins encounter, Dark Strike
(45347, 4194304), -- Sunwell, Eredar Twins encounter, Dark Touched
(45348, 4194304), -- Sunwell, Eredar Twins encounter, Flame Touched
(49381, 4194304), -- Drak'tharon Keep, Consume
(54314, 4194304), -- Azjol'Nerub Drain Power
(54331, 4194304), -- Naxxramas, Sludge Belcher, Acidic Sludge (25 normal)
(54714, 4194304), -- Naxxramas, Stoneskin Gargoyle, Acid Volley (25 normal)
(55093, 4194304), -- Gundrak, Grip of Slad'ran
(55604, 4194304), -- Naxxramas, Unrelenting Trainee, Death Plague (10 normal)
(55645, 4194304), -- Naxxramas, Unrelenting Trainee, Death Plague (25 normal)
(56098, 4194304), -- Naxxramas, Crypt Guard, Acid Spit (25 normal)
(58567, 4194304), -- Player Sunder Armor
(59354, 4194304), -- Azjol'Nerub Drain Power
(59805, 4194304), -- Drak'tharon Keep, Consume
(61920, 4194304), -- Ulduar (Spellbreaker): Supercharge
(63978, 4194304), -- Ulduar (Rubble): Stone Nova
(64638, 4194304), -- Ulduar, Winter Jormungar, Acidic Bite
(65280, 4194304), -- Ulduar, Hodir, Singed
(65775, 4194304), -- Anub'arak, Swarm Scarab, Acid-Drenched Mandibles (10 normal)
(67721, 4194304), -- Anub'arak, Nerubian Burrower, Expose Weakness (normal)
(67847, 4194304), -- Anub'arak, Nerubian Burrower, Expose Weakness (heroic)
(67861, 4194304), -- Anub'arak, Swarm Scarab, Acid-Drenched Mandibles (25 normal)
(67862, 4194304), -- Anub'arak, Swarm Scarab, Acid-Drenched Mandibles (10 heroic)
(67863, 4194304), -- Anub'arak, Swarm Scarab, Acid-Drenched Mandibles (25 heroic)
(71157, 4194304), -- Icecrown Citadel, Plagued Zombie, Infected Wound
(72465, 4194304), -- Icecrown Citadel, Sindragosa, Respite for a Tormented Soul (weekly quest)
(72963, 4194304), -- Icecrown Citadel, Rot Worm, Flesh Rot (10 normal)
(72964, 4194304), -- Icecrown Citadel, Rot Worm, Flesh Rot (25 normal)
(72965, 4194304), -- Icecrown Citadel, Rot Worm, Flesh Rot (10 heroic)
(72966, 4194304), -- Icecrown Citadel, Rot Worm, Flesh Rot (25 heroic)
(74507, 4194304); -- Ruby Sanctum, Siphoned Might

View File

@@ -3507,268 +3507,6 @@ void SpellMgr::LoadSpellInfoCustomAttributes()
switch (spellInfo->Id)
{
// Xinef: additional spells which should be binary
case 45145: // Snake Trap Effect
spellInfo->AttributesCu |= SPELL_ATTR0_CU_BINARY_SPELL;
break;
case 1776: // Gouge
case 1777:
case 8629:
case 11285:
case 11286:
case 12540:
case 13579:
case 24698:
case 28456:
case 29425:
case 34940:
case 36862:
case 38764:
case 38863:
case 52743: // Head Smack
spellInfo->AttributesCu |= SPELL_ATTR0_CU_REQ_TARGET_FACING_CASTER;
break;
case 53: // Backstab
case 2589:
case 2590:
case 2591:
case 7159:
case 8627:
case 8721:
case 11279:
case 11280:
case 11281:
case 15582:
case 15657:
case 22416:
case 25300:
case 26863:
case 37685:
case 48656:
case 48657:
case 703: // Garrote
case 8631:
case 8632:
case 8633:
case 11289:
case 11290:
case 26839:
case 26884:
case 48675:
case 48676:
case 5221: // Shred
case 6800:
case 8992:
case 9829:
case 9830:
case 27001:
case 27002:
case 48571:
case 48572:
case 8676: // Ambush
case 8724:
case 8725:
case 11267:
case 11268:
case 11269:
case 27441:
case 48689:
case 48690:
case 48691:
case 6785: // Ravage
case 6787:
case 9866:
case 9867:
case 27005:
case 48578:
case 48579:
case 21987: // Lash of Pain
case 23959: // Test Stab R50
case 24825: // Test Backstab
case 58563: // Assassinate Restless Lookout
case 63124: // quest There's Something About the Squire (13654)
spellInfo->AttributesCu |= SPELL_ATTR0_CU_REQ_CASTER_BEHIND_TARGET;
break;
case 26029: // Dark Glare
case 43140: // Flame Breath
case 43215: // Flame Breath
case 70461: // Coldflame Trap
case 72133: // Pain and Suffering
case 73788: // Pain and Suffering
case 73789: // Pain and Suffering
case 73790: // Pain and Suffering
case 63293: // Mimiron - spinning damage
case 68873: // Wailing Souls
case 70324: // Wailing Souls
case 64619: // Ulduar, Mimiron, Emergency Fire Bot, Water Spray
spellInfo->AttributesCu |= SPELL_ATTR0_CU_CONE_LINE;
break;
case 58690: // Cyanigosa, Tail Sweep
case 59283: // Cyanigosa, Tail Sweep
spellInfo->AttributesCu |= SPELL_ATTR0_CU_CONE_BACK;
break;
case 24340: // Meteor
case 26558: // Meteor
case 28884: // Meteor
case 36837: // Meteor
case 38903: // Meteor
case 41276: // Meteor
case 57467: // Meteor
case 26789: // Shard of the Fallen Star
case 31436: // Malevolent Cleave
case 40810: // Saber Lash
case 43267: // Saber Lash
case 43268: // Saber Lash
case 42384: // Brutal Swipe
case 45150: // Meteor Slash
case 64688: // Sonic Screech
case 72373: // Shared Suffering
case 71904: // Chaos Bane
case 70492: // Ooze Eruption
case 72505: // Ooze Eruption
case 72624: // Ooze Eruption
case 72625: // Ooze Eruption
// ONLY SPELLS WITH SPELLFAMILY_GENERIC and EFFECT_SCHOOL_DAMAGE, OR WEAPON_DMG_X
case 66809: // Meteor Fists
case 67331: // Meteor Fists
case 66765: // Meteor Fists
case 67333: // Meteor Fists
spellInfo->AttributesCu |= SPELL_ATTR0_CU_SHARE_DAMAGE;
break;
case 18500: // Wing Buffet
case 33086: // Wild Bite
case 49749: // Piercing Blow
case 52890: // Penetrating Strike
case 53454: // Impale
case 59446: // Impale
case 62383: // Shatter
case 64777: // Machine Gun
case 65239: // Machine Gun
case 69293: // Wing Buffet
case 74439: // Machine Gun
// Trial of the Crusader, Jaraxxus, Shivan Slash
case 66378:
case 67097:
case 67098:
case 67099:
// Trial of the Crusader, Anub'arak, Impale
case 65919:
case 67858:
case 67859:
case 67860:
case 63278: // Mark of the Faceless (General Vezax)
case 64125: // Ulduar, Yogg-Saron, Squeeze
case 64126: // Ulduar, Yogg-Saron, Squeeze
case 62544: // Thrust (Argent Tournament)
case 64588: // Thrust (Argent Tournament)
case 66479: // Thrust (Argent Tournament)
case 68505: // Thrust (Argent Tournament)
case 62709: // Counterattack! (Argent Tournament)
case 62626: // Break-Shield (Argent Tournament, Player)
case 64590: // Break-Shield (Argent Tournament, Player)
case 64342: // Break-Shield (Argent Tournament, NPC)
case 64686: // Break-Shield (Argent Tournament, NPC)
case 65147: // Break-Shield (Argent Tournament, NPC)
case 68504: // Break-Shield (Argent Tournament, NPC)
case 62874: // Charge (Argent Tournament, Player)
case 68498: // Charge (Argent Tournament, Player)
case 64591: // Charge (Argent Tournament, Player)
case 63003: // Charge (Argent Tournament, NPC)
case 63010: // Charge (Argent Tournament, NPC)
case 68321: // Charge (Argent Tournament, NPC)
case 72255: // Mark of the Fallen Champion (Deathbringer Saurfang)
case 72444: // Mark of the Fallen Champion (Deathbringer Saurfang)
case 72445: // Mark of the Fallen Champion (Deathbringer Saurfang)
case 72446: // Mark of the Fallen Champion (Deathbringer Saurfang)
case 72409: // Rune of Blood (Deathbringer Saurfang)
case 72447: // Rune of Blood (Deathbringer Saurfang)
case 72448: // Rune of Blood (Deathbringer Saurfang)
case 72449: // Rune of Blood (Deathbringer Saurfang)
case 49882: // Leviroth Self-Impale
case 62775: // Ulduar: XT-002 Tympanic Tamparum
spellInfo->AttributesCu |= SPELL_ATTR0_CU_IGNORE_ARMOR;
break;
case 64422: // Sonic Screech (Auriaya)
spellInfo->AttributesCu |= SPELL_ATTR0_CU_SHARE_DAMAGE;
spellInfo->AttributesCu |= SPELL_ATTR0_CU_IGNORE_ARMOR;
break;
case 72293: // Mark of the Fallen Champion (Deathbringer Saurfang)
case 72347: // Lock Players and Tap Chest (Gunship Battle)
spellInfo->AttributesCu |= SPELL_ATTR0_CU_NEGATIVE_EFF0;
break;
default:
break;
case 63675: // Improved Devouring Plague
case 17962: // Conflagrate
case 32593: // Earth Shield aura
case 32594: // Earth Shield aura
case 49283: // Earth Shield aura
case 49284: // Earth Shield aura
case 50526: // Wandering Plague
case 53353: // Chimera Shot - Serpent trigger
case 52752: // Ancestral Awakening Heal
spellInfo->AttributesCu |= SPELL_ATTR0_CU_NO_POSITIVE_TAKEN_BONUS;
break;
case 65280: // Ulduar, Hodir, Singed
case 28969: // Naxxramas, Crypt Guard, Acid Spit (10 normal)
case 56098: // Naxxramas, Crypt Guard, Acid Spit (25 normal)
case 27891: // Naxxramas, Sludge Belcher, Acidic Sludge (10 normal)
case 54331: // Naxxramas, Sludge Belcher, Acidic Sludge (25 normal)
case 29325: // Naxxramas, Stoneskin Gargoyle, Acid Volley (10 normal)
case 54714: // Naxxramas, Stoneskin Gargoyle, Acid Volley (25 normal)
case 65775: // Anub'arak, Swarm Scarab, Acid-Drenched Mandibles (10 normal)
case 67861: // Anub'arak, Swarm Scarab, Acid-Drenched Mandibles (25 normal)
case 67862: // Anub'arak, Swarm Scarab, Acid-Drenched Mandibles (10 heroic)
case 67863: // Anub'arak, Swarm Scarab, Acid-Drenched Mandibles (25 heroic)
case 55604: // Naxxramas, Unrelenting Trainee, Death Plague (10 normal)
case 55645: // Naxxramas, Unrelenting Trainee, Death Plague (25 normal)
case 67721: // Anub'arak, Nerubian Burrower, Expose Weakness (normal)
case 67847: // Anub'arak, Nerubian Burrower, Expose Weakness (heroic)
case 64638: // Ulduar, Winter Jormungar, Acidic Bite
case 71157: // Icecrown Citadel, Plagued Zombie, Infected Wound
case 72963: // Icecrown Citadel, Rot Worm, Flesh Rot (10 normal)
case 72964: // Icecrown Citadel, Rot Worm, Flesh Rot (25 normal)
case 72965: // Icecrown Citadel, Rot Worm, Flesh Rot (10 heroic)
case 72966: // Icecrown Citadel, Rot Worm, Flesh Rot (25 heroic)
case 72465: // Icecrown Citadel, Sindragosa, Respite for a Tormented Soul (weekly quest)
case 45271: // Sunwell, Eredar Twins encounter, Dark Strike
case 45347: // Sunwell, Eredar Twins encounter, Dark Touched
case 45348: // Sunwell, Eredar Twins encounter, Flame Touched
case 35859: // The Eye, Nether Vapor
case 40520: // Black Temple, Shade Soul Channel
case 40327: // Black Temple, Atrophy
case 38449: // Serpentshrine Cavern, Blessing of the Tides
case 38044: // Serpentshrine Cavern, Surge
case 74507: // Ruby Sanctum, Siphoned Might
case 49381: // Drak'tharon Keep, Consume
case 59805: // Drak'tharon Keep, Consume
case 55093: // Gundrak, Grip of Slad'ran
case 30659: // Hellfire Ramparts, Fel Infusion
case 54314: // Azjol'Nerub Drain Power
case 59354: // Azjol'Nerub Drain Power
case 34655: // Snake Trap, Deadly Poison
case 11971: // Sunder Armor
case 58567: // Player Sunder Armor
case 12579: // Player Winter's Chill
case 29306: // Naxxramas(Gluth's Zombies): Infected Wound
case 61920: // Ulduar(Spellbreaker): Supercharge
case 63978: // Ulduar(Rubble): Stone Nova
case 15502: // Sunder Armor
spellInfo->AttributesCu |= SPELL_ATTR0_CU_SINGLE_AURA_STACK;
break;
case 43138: // North Fleet Reservist Kill Credit
spellInfo->AttributesCu |= SPELL_ATTR0_CU_ALLOW_INFLIGHT_TARGET;
break;
case 6197: // Eagle Eye
spellInfo->AttributesCu |= SPELL_ATTR0_CU_NO_INITIAL_THREAT;
break;
case 50315: // Disco Ball
spellInfo->AttributesCu |= SPELL_ATTR0_CU_NO_PVP_FLAG;
break;
case 14183: // Premeditation
spellInfo->AttributesCu |= SPELL_ATTR0_CU_DONT_BREAK_STEALTH;
break;
// Xinef: NOT CUSTOM, cant add in DBC CORRECTION because i need to swap effects, too much work to do there
// Envenom
case 32645:
@@ -3796,8 +3534,7 @@ void SpellMgr::LoadSpellInfoCustomAttributes()
case 44535: // Spirit Heal, abilities also have no cost
spellInfo->Effects[EFFECT_0].MiscValue = 127;
break;
case 45537: // Cosmetic - Lightning Beam Channel
spellInfo->AttributesCu |= SPELL_ATTR0_CU_IGNORE_EVADE;
default:
break;
}