mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-13 09:17:18 +00:00
chore(Core/Spells): move db spell_dbc corrections to SpellInfoCorre… (#21819)
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
--
|
||||
DELETE FROM `spell_dbc` WHERE `ID` IN (75, 1454, 1455, 1456, 11687, 11688, 11689, 27222, 57946, 4074, 4511, 7922, 9457, 10732, 20252, 20253, 20335, 20336, 20337, 22736, 23272, 30298, 33271, 36500, 39183, 47747, 49214, 54469, 58620, 58621, 60474, 64382);
|
||||
@@ -0,0 +1,28 @@
|
||||
--
|
||||
SET @SPELL_ATTR3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS := 268435456;
|
||||
SET @SPELL_ATTR5_ALLOW_WHILE_STUNNED := 8;
|
||||
SET @SPELL_ATTR2_IGNORE_LINE_OF_SIGHT := 4;
|
||||
-- Update server-side spell 43360 - model after 41295 Fixate
|
||||
UPDATE `spell_dbc` SET
|
||||
`AttributesEx2`= `AttributesEx2` & ~(@SPELL_ATTR2_IGNORE_LINE_OF_SIGHT),
|
||||
`AttributesEx3`= `AttributesEx3` | @SPELL_ATTR3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS,
|
||||
`AttributesEx5`= `AttributesEx5` | @SPELL_ATTR5_ALLOW_WHILE_STUNNED,
|
||||
`RangeIndex` = 36,
|
||||
`Effect_1` = 6,
|
||||
`EffectRadiusIndex_1` = 27,
|
||||
`EffectAura_1` = 11,
|
||||
`SpellIconID` = 1,
|
||||
`ImplicitTargetA_1` = 7,
|
||||
`Description_Lang_enUS` = 'The target is fixated upon the caster.',
|
||||
`Name_Lang_enUS`='Fixate'
|
||||
WHERE `ID` = 43360;
|
||||
|
||||
DELETE FROM `spell_script_names` WHERE `spell_id` = 43359 AND `ScriptName` = 'spell_call_of_the_beast';
|
||||
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES(43359, 'spell_call_of_the_beast');
|
||||
|
||||
-- Amani'shi Beast Tamer
|
||||
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 24059;
|
||||
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 24059);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(24059, 0, 0, 0, 0, 0, 100, 0, 8000, 12000, 10000, 15000, 0, 0, 11, 43359, 0, 0, 0, 0, 0, 5, 100, 1, 0, 43359, 0, 0, 0, 0, 'Amani\'shi Beast Tamer - In Combat - Cast \'Call of the Beast\''),
|
||||
(24059, 0, 1, 0, 0, 0, 100, 0, 6000, 12000, 9000, 18000, 0, 0, 11, 43361, 0, 0, 0, 0, 0, 5, 100, 1, 0, 0, 0, 0, 0, 0, 'Amani\'shi Beast Tamer - In Combat - Cast \'Domesticate\'');
|
||||
@@ -28,7 +28,7 @@ enum SpellInterruptFlags
|
||||
SPELL_INTERRUPT_FLAG_UNK3 = 0x04, // any info?
|
||||
SPELL_INTERRUPT_FLAG_INTERRUPT = 0x08, // interrupt
|
||||
SPELL_INTERRUPT_FLAG_ABORT_ON_DMG = 0x10, // _complete_ interrupt on direct damage
|
||||
//SPELL_INTERRUPT_UNK = 0x20 // unk, 564 of 727 spells having this spell start with "Glyph"
|
||||
SPELL_INTERRUPT_UNK = 0x20 // unk, 564 of 727 spells having this spell start with "Glyph"
|
||||
};
|
||||
|
||||
// See SpellAuraInterruptFlags for other values definitions
|
||||
|
||||
@@ -4922,6 +4922,182 @@ void SpellMgr::LoadSpellInfoCorrections()
|
||||
spellInfo->SpellPriority = 100;
|
||||
});
|
||||
|
||||
// Auto Shot
|
||||
ApplySpellFix({ 75 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->CastTimeEntry = sSpellCastTimesStore.LookupEntry(1); // 0s
|
||||
spellInfo->InterruptFlags &= ~SPELL_INTERRUPT_UNK;
|
||||
});
|
||||
|
||||
// Life Tap
|
||||
ApplySpellFix({ 1454 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->Effects[EFFECT_0].RealPointsPerLevel = 0.0f;
|
||||
});
|
||||
|
||||
// Life Tap
|
||||
ApplySpellFix({ 1455, 1456, 11687, 11688, 11689, 27222, 57946 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->Effects[EFFECT_0].RealPointsPerLevel = 0.0f;
|
||||
spellInfo->MaxLevel = 16;
|
||||
spellInfo->BaseLevel = 6;
|
||||
spellInfo->SpellLevel = 6;
|
||||
});
|
||||
|
||||
// Explosive Sheep
|
||||
ApplySpellFix({ 4074 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(25);
|
||||
});
|
||||
|
||||
// Phase Shift
|
||||
ApplySpellFix({ 4511 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->AuraInterruptFlags &= ~AURA_INTERRUPT_FLAG_MELEE_ATTACK;
|
||||
spellInfo->AuraInterruptFlags |= AURA_INTERRUPT_FLAG_CAST;
|
||||
});
|
||||
|
||||
// Charge Stun
|
||||
ApplySpellFix({ 7922 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->Attributes |= SPELL_ATTR0_NO_ACTIVE_DEFENSE;
|
||||
});
|
||||
|
||||
// Tharnariun's Heal
|
||||
ApplySpellFix({ 9457 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->AttributesEx2 &= ~SPELL_ATTR2_IGNORE_LINE_OF_SIGHT;
|
||||
spellInfo->AttributesEx3 |= SPELL_ATTR3_IGNORE_CASTER_AND_TARGET_RESTRICTIONS;
|
||||
spellInfo->Effects[EFFECT_0].DieSides = 0;
|
||||
spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_TARGET_ANY);
|
||||
});
|
||||
|
||||
// Supercharge
|
||||
ApplySpellFix({ 10732 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->CategoryEntry = sSpellCategoryStore.LookupEntry(0);
|
||||
spellInfo->Attributes &= ~(SPELL_ATTR0_IS_ABILITY | SPELL_ATTR0_DO_NOT_SHEATH);
|
||||
spellInfo->Attributes |= SPELL_ATTR0_NOT_SHAPESHIFTED;
|
||||
spellInfo->AttributesEx |= SPELL_ATTR1_TRACK_TARGET_IN_CHANNEL;
|
||||
spellInfo->AttributesEx2 |= SPELL_ATTR2_NO_TARGET_PER_SECOND_COST;
|
||||
spellInfo->AttributesEx3 |= SPELL_ATTR3_CAN_PROC_FROM_PROCS;
|
||||
spellInfo->FacingCasterFlags |= SPELL_FACING_FLAG_INFRONT;
|
||||
spellInfo->InterruptFlags |= (SPELL_INTERRUPT_FLAG_MOVEMENT | SPELL_INTERRUPT_FLAG_PUSH_BACK |
|
||||
SPELL_INTERRUPT_FLAG_UNK3 | SPELL_INTERRUPT_FLAG_INTERRUPT);
|
||||
spellInfo->ChannelInterruptFlags &= ~AURA_INTERRUPT_FLAG_JUMP;
|
||||
spellInfo->ChannelInterruptFlags |= AURA_INTERRUPT_FLAG_UNK14;
|
||||
spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_TARGET_ALLY);
|
||||
spellInfo->Effects[EFFECT_1].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_TARGET_ALLY);
|
||||
spellInfo->Effects[EFFECT_2].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_TARGET_ALLY);
|
||||
spellInfo->Effects[EFFECT_0].Amplitude = 3000;
|
||||
spellInfo->Effects[EFFECT_1].Amplitude = 3000;
|
||||
spellInfo->Effects[EFFECT_2].Amplitude = 3000;
|
||||
spellInfo->SpellVisual[0] = 12656;
|
||||
});
|
||||
|
||||
// Intercept
|
||||
ApplySpellFix({ 20252 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->Attributes &= ~(SPELL_ATTR0_IS_ABILITY | SPELL_ATTR0_NOT_SHAPESHIFTED | SPELL_ATTR0_DO_NOT_SHEATH);
|
||||
spellInfo->Attributes |= SPELL_ATTR0_ALLOW_ITEM_SPELL_IN_PVP;
|
||||
});
|
||||
|
||||
// Intercept
|
||||
ApplySpellFix({ 20253 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->Attributes &= ~(SPELL_ATTR0_IS_ABILITY | SPELL_ATTR0_NOT_SHAPESHIFTED | SPELL_ATTR0_DO_NOT_SHEATH);
|
||||
spellInfo->Attributes |= SPELL_ATTR0_ALLOW_ITEM_SPELL_IN_PVP;
|
||||
spellInfo->AttributesEx7 |= (SPELL_ATTR7_NO_ATTACK_DODGE | SPELL_ATTR7_NO_ATTACK_PARRY);
|
||||
spellInfo->SpellLevel = 0;
|
||||
});
|
||||
|
||||
// Heart of the Crusader
|
||||
ApplySpellFix({ 20335, 20336, 20337 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->Effects[EFFECT_2].Effect = SPELL_EFFECT_APPLY_AURA;
|
||||
spellInfo->Effects[EFFECT_2].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_TARGET_ENEMY);
|
||||
spellInfo->Effects[EFFECT_2].ApplyAuraName = SPELL_AURA_DUMMY;
|
||||
});
|
||||
|
||||
// Gordok Ogre Suit
|
||||
ApplySpellFix({ 22736 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->AuraInterruptFlags |= AURA_INTERRUPT_FLAG_MOUNT;
|
||||
});
|
||||
|
||||
// Soul Flame
|
||||
ApplySpellFix({ 23272 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->Effects[EFFECT_2].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_CASTER);
|
||||
});
|
||||
|
||||
// Tree Disguise
|
||||
ApplySpellFix({ 30298 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->InterruptFlags |= (SPELL_INTERRUPT_FLAG_MOVEMENT | SPELL_INTERRUPT_FLAG_PUSH_BACK |
|
||||
SPELL_INTERRUPT_FLAG_UNK3 | SPELL_INTERRUPT_FLAG_INTERRUPT);
|
||||
spellInfo->Effects[EFFECT_2].ApplyAuraName = SPELL_AURA_MOD_STUN;
|
||||
});
|
||||
|
||||
// Internal Shake Camera w/ rumble sound
|
||||
ApplySpellFix({ 33271 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->Attributes |= SPELL_ATTR0_ALLOW_WHILE_MOUNTED;
|
||||
});
|
||||
|
||||
// Glaive
|
||||
ApplySpellFix({ 36500 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->Attributes &= ~SPELL_ATTR0_SCALES_WITH_CREATURE_LEVEL;
|
||||
spellInfo->Effects[EFFECT_0].DieSides = 68;
|
||||
spellInfo->Effects[EFFECT_0].BasePoints = 201;
|
||||
});
|
||||
|
||||
// Create Anchorite Relic
|
||||
ApplySpellFix({ 39183 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->Effects[EFFECT_1].TargetA = SpellImplicitTargetInfo(0);
|
||||
});
|
||||
|
||||
// Charge Rifts
|
||||
ApplySpellFix({ 47747 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_45_YARDS);
|
||||
});
|
||||
|
||||
// New Summon Test
|
||||
ApplySpellFix({ 49214 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(3);
|
||||
});
|
||||
|
||||
// Plague Strike
|
||||
ApplySpellFix({ 54469 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_5_YARDS);
|
||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_5_YARDS);
|
||||
spellInfo->Effects[EFFECT_2].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_5_YARDS);
|
||||
});
|
||||
|
||||
// Glyph of Chains of Ice:
|
||||
ApplySpellFix({ 58620 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->SpellLevel = 0;
|
||||
});
|
||||
|
||||
// Exit Portal
|
||||
ApplySpellFix({ 60474 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->AttributesEx6 |= SPELL_ATTR6_ALLOW_WHILE_RIDING_VEHICLE;
|
||||
});
|
||||
|
||||
// Shattering Throw
|
||||
ApplySpellFix({ 64382 }, [](SpellInfo* spellInfo)
|
||||
{
|
||||
spellInfo->Attributes &= ~(SPELL_ATTR0_IS_ABILITY | SPELL_ATTR0_NOT_SHAPESHIFTED | SPELL_ATTR0_DO_NOT_SHEATH);
|
||||
spellInfo->Attributes |= SPELL_ATTR0_ALLOW_ITEM_SPELL_IN_PVP;
|
||||
});
|
||||
|
||||
for (uint32 i = 0; i < GetSpellInfoStoreSize(); ++i)
|
||||
{
|
||||
SpellInfo* spellInfo = mSpellInfoMap[i];
|
||||
|
||||
Reference in New Issue
Block a user