Core/Spells: Added AttributesEx15 for serverside spells (#30632)
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
DELIMITER ;;
|
||||
CREATE PROCEDURE serverside_spell_2025_01_23_00() BEGIN
|
||||
IF NOT EXISTS (SELECT * FROM `information_schema`.`columns` WHERE `table_schema`=SCHEMA() AND `table_name`='serverside_spell' AND `column_name`='AttributesEx15') THEN
|
||||
|
||||
ALTER TABLE `serverside_spell`
|
||||
ADD COLUMN `AttributesEx15` int unsigned NOT NULL DEFAULT '0' AFTER `AttributesEx14`;
|
||||
|
||||
END IF;
|
||||
END;;
|
||||
|
||||
DELIMITER ;
|
||||
CALL serverside_spell_2025_01_23_00();
|
||||
|
||||
DROP PROCEDURE IF EXISTS serverside_spell_2025_01_23_00;
|
||||
@@ -2861,21 +2861,21 @@ void SpellMgr::LoadSpellInfoServerside()
|
||||
QueryResult spellsResult = WorldDatabase.Query("SELECT Id, DifficultyID, CategoryId, Dispel, Mechanic, Attributes, AttributesEx, AttributesEx2, AttributesEx3, "
|
||||
// 9 10 11 12 13 14 15 16 17 18
|
||||
"AttributesEx4, AttributesEx5, AttributesEx6, AttributesEx7, AttributesEx8, AttributesEx9, AttributesEx10, AttributesEx11, AttributesEx12, AttributesEx13, "
|
||||
// 19 20 21 22 23 24 25 26 27
|
||||
"AttributesEx14, Stances, StancesNot, Targets, TargetCreatureType, RequiresSpellFocus, FacingCasterFlags, CasterAuraState, TargetAuraState, "
|
||||
// 28 29 30 31 32 33
|
||||
// 19 20 21 22 23 24 25 26 27 28
|
||||
"AttributesEx14, AttributesEx15, Stances, StancesNot, Targets, TargetCreatureType, RequiresSpellFocus, FacingCasterFlags, CasterAuraState, TargetAuraState, "
|
||||
// 29 30 31 32 33 34
|
||||
"ExcludeCasterAuraState, ExcludeTargetAuraState, CasterAuraSpell, TargetAuraSpell, ExcludeCasterAuraSpell, ExcludeTargetAuraSpell, "
|
||||
// 34 35 36 37 38
|
||||
// 35 36 37 38 39
|
||||
"CasterAuraType, TargetAuraType, ExcludeCasterAuraType, ExcludeTargetAuraType, CastingTimeIndex, "
|
||||
// 39 40 41 42 43 44 45
|
||||
// 40 41 42 43 44 45 46
|
||||
"RecoveryTime, CategoryRecoveryTime, StartRecoveryCategory, StartRecoveryTime, InterruptFlags, AuraInterruptFlags1, AuraInterruptFlags2, "
|
||||
// 46 47 48 49 50 51 52 53 54 55 56
|
||||
// 47 48 49 50 51 52 53 54 55 56 57
|
||||
"ChannelInterruptFlags1, ChannelInterruptFlags2, ProcFlags, ProcFlags2, ProcChance, ProcCharges, ProcCooldown, ProcBasePPM, MaxLevel, BaseLevel, SpellLevel, "
|
||||
// 57 58 59 60 61 62 63 64 65
|
||||
// 58 59 60 61 62 63 64 65 66
|
||||
"DurationIndex, RangeIndex, Speed, LaunchDelay, StackAmount, EquippedItemClass, EquippedItemSubClassMask, EquippedItemInventoryTypeMask, ContentTuningId, "
|
||||
// 66 67 68 69 70 71 72 73 74 75
|
||||
// 67 68 69 70 71 72 73 74 75 76
|
||||
"SpellName, ConeAngle, ConeWidth, MaxTargetLevel, MaxAffectedTargets, SpellFamilyName, SpellFamilyFlags1, SpellFamilyFlags2, SpellFamilyFlags3, SpellFamilyFlags4, "
|
||||
// 76 77 78 79 80
|
||||
// 77 78 79 80 81
|
||||
"DmgClass, PreventionType, AreaGroupId, SchoolMask, ChargeCategoryId FROM serverside_spell");
|
||||
if (spellsResult)
|
||||
{
|
||||
@@ -2893,7 +2893,7 @@ void SpellMgr::LoadSpellInfoServerside()
|
||||
continue;
|
||||
}
|
||||
|
||||
mServersideSpellNames.emplace_back(spellId, fields[66].GetString());
|
||||
mServersideSpellNames.emplace_back(spellId, fields[67].GetString());
|
||||
|
||||
SpellInfo& spellInfo = const_cast<SpellInfo&>(*mSpellInfoMap.emplace(&mServersideSpellNames.back().Name, difficulty, spellEffects[{ spellId, difficulty }]).first);
|
||||
spellInfo.CategoryId = fields[2].GetUInt32();
|
||||
@@ -2914,63 +2914,64 @@ void SpellMgr::LoadSpellInfoServerside()
|
||||
spellInfo.AttributesEx12 = fields[17].GetUInt32();
|
||||
spellInfo.AttributesEx13 = fields[18].GetUInt32();
|
||||
spellInfo.AttributesEx14 = fields[19].GetUInt32();
|
||||
spellInfo.Stances = fields[20].GetUInt64();
|
||||
spellInfo.StancesNot = fields[21].GetUInt64();
|
||||
spellInfo.Targets = fields[22].GetUInt32();
|
||||
spellInfo.TargetCreatureType = fields[23].GetUInt32();
|
||||
spellInfo.RequiresSpellFocus = fields[24].GetUInt32();
|
||||
spellInfo.FacingCasterFlags = fields[25].GetUInt32();
|
||||
spellInfo.CasterAuraState = fields[26].GetUInt32();
|
||||
spellInfo.TargetAuraState = fields[27].GetUInt32();
|
||||
spellInfo.ExcludeCasterAuraState = fields[28].GetUInt32();
|
||||
spellInfo.ExcludeTargetAuraState = fields[29].GetUInt32();
|
||||
spellInfo.CasterAuraSpell = fields[30].GetUInt32();
|
||||
spellInfo.TargetAuraSpell = fields[31].GetUInt32();
|
||||
spellInfo.ExcludeCasterAuraSpell = fields[32].GetUInt32();
|
||||
spellInfo.ExcludeTargetAuraSpell = fields[33].GetUInt32();
|
||||
spellInfo.CasterAuraType = AuraType(fields[34].GetInt32());
|
||||
spellInfo.TargetAuraType = AuraType(fields[35].GetInt32());
|
||||
spellInfo.ExcludeCasterAuraType = AuraType(fields[36].GetInt32());
|
||||
spellInfo.ExcludeTargetAuraType = AuraType(fields[37].GetInt32());
|
||||
spellInfo.CastTimeEntry = sSpellCastTimesStore.LookupEntry(fields[38].GetUInt32());
|
||||
spellInfo.RecoveryTime = fields[39].GetUInt32();
|
||||
spellInfo.CategoryRecoveryTime = fields[40].GetUInt32();
|
||||
spellInfo.StartRecoveryCategory = fields[41].GetUInt32();
|
||||
spellInfo.StartRecoveryTime = fields[42].GetUInt32();
|
||||
spellInfo.InterruptFlags = SpellInterruptFlags(fields[43].GetUInt32());
|
||||
spellInfo.AuraInterruptFlags = SpellAuraInterruptFlags(fields[44].GetUInt32());
|
||||
spellInfo.AuraInterruptFlags2 = SpellAuraInterruptFlags2(fields[45].GetUInt32());
|
||||
spellInfo.ChannelInterruptFlags = SpellAuraInterruptFlags(fields[46].GetUInt32());
|
||||
spellInfo.ChannelInterruptFlags2 = SpellAuraInterruptFlags2(fields[47].GetUInt32());
|
||||
spellInfo.ProcFlags[0] = fields[48].GetUInt32();
|
||||
spellInfo.ProcFlags[1] = fields[49].GetUInt32();
|
||||
spellInfo.ProcChance = fields[50].GetUInt32();
|
||||
spellInfo.ProcCharges = fields[51].GetUInt32();
|
||||
spellInfo.ProcCooldown = fields[52].GetUInt32();
|
||||
spellInfo.ProcBasePPM = fields[53].GetFloat();
|
||||
spellInfo.MaxLevel = fields[54].GetUInt32();
|
||||
spellInfo.BaseLevel = fields[55].GetUInt32();
|
||||
spellInfo.SpellLevel = fields[56].GetUInt32();
|
||||
spellInfo.DurationEntry = sSpellDurationStore.LookupEntry(fields[57].GetUInt32());
|
||||
spellInfo.RangeEntry = sSpellRangeStore.LookupEntry(fields[58].GetUInt32());
|
||||
spellInfo.Speed = fields[59].GetFloat();
|
||||
spellInfo.LaunchDelay = fields[60].GetFloat();
|
||||
spellInfo.StackAmount = fields[61].GetUInt32();
|
||||
spellInfo.EquippedItemClass = fields[62].GetInt32();
|
||||
spellInfo.EquippedItemSubClassMask = fields[63].GetInt32();
|
||||
spellInfo.EquippedItemInventoryTypeMask = fields[64].GetInt32();
|
||||
spellInfo.ContentTuningId = fields[65].GetUInt32();
|
||||
spellInfo.ConeAngle = fields[67].GetFloat();
|
||||
spellInfo.Width = fields[68].GetFloat();
|
||||
spellInfo.MaxTargetLevel = fields[69].GetUInt32();
|
||||
spellInfo.MaxAffectedTargets = fields[70].GetUInt32();
|
||||
spellInfo.SpellFamilyName = fields[71].GetUInt32();
|
||||
spellInfo.SpellFamilyFlags = flag128(fields[72].GetUInt32(), fields[73].GetUInt32(), fields[74].GetUInt32(), fields[75].GetUInt32());
|
||||
spellInfo.DmgClass = fields[76].GetUInt32();
|
||||
spellInfo.PreventionType = fields[77].GetUInt32();
|
||||
spellInfo.RequiredAreasID = fields[78].GetInt32();
|
||||
spellInfo.SchoolMask = fields[79].GetUInt32();
|
||||
spellInfo.ChargeCategoryId = fields[80].GetUInt32();
|
||||
spellInfo.AttributesEx15 = fields[20].GetUInt32();
|
||||
spellInfo.Stances = fields[21].GetUInt64();
|
||||
spellInfo.StancesNot = fields[22].GetUInt64();
|
||||
spellInfo.Targets = fields[23].GetUInt32();
|
||||
spellInfo.TargetCreatureType = fields[24].GetUInt32();
|
||||
spellInfo.RequiresSpellFocus = fields[25].GetUInt32();
|
||||
spellInfo.FacingCasterFlags = fields[26].GetUInt32();
|
||||
spellInfo.CasterAuraState = fields[27].GetUInt32();
|
||||
spellInfo.TargetAuraState = fields[28].GetUInt32();
|
||||
spellInfo.ExcludeCasterAuraState = fields[29].GetUInt32();
|
||||
spellInfo.ExcludeTargetAuraState = fields[30].GetUInt32();
|
||||
spellInfo.CasterAuraSpell = fields[31].GetUInt32();
|
||||
spellInfo.TargetAuraSpell = fields[32].GetUInt32();
|
||||
spellInfo.ExcludeCasterAuraSpell = fields[33].GetUInt32();
|
||||
spellInfo.ExcludeTargetAuraSpell = fields[34].GetUInt32();
|
||||
spellInfo.CasterAuraType = AuraType(fields[35].GetInt32());
|
||||
spellInfo.TargetAuraType = AuraType(fields[36].GetInt32());
|
||||
spellInfo.ExcludeCasterAuraType = AuraType(fields[37].GetInt32());
|
||||
spellInfo.ExcludeTargetAuraType = AuraType(fields[38].GetInt32());
|
||||
spellInfo.CastTimeEntry = sSpellCastTimesStore.LookupEntry(fields[39].GetUInt32());
|
||||
spellInfo.RecoveryTime = fields[40].GetUInt32();
|
||||
spellInfo.CategoryRecoveryTime = fields[41].GetUInt32();
|
||||
spellInfo.StartRecoveryCategory = fields[42].GetUInt32();
|
||||
spellInfo.StartRecoveryTime = fields[43].GetUInt32();
|
||||
spellInfo.InterruptFlags = SpellInterruptFlags(fields[44].GetUInt32());
|
||||
spellInfo.AuraInterruptFlags = SpellAuraInterruptFlags(fields[45].GetUInt32());
|
||||
spellInfo.AuraInterruptFlags2 = SpellAuraInterruptFlags2(fields[46].GetUInt32());
|
||||
spellInfo.ChannelInterruptFlags = SpellAuraInterruptFlags(fields[47].GetUInt32());
|
||||
spellInfo.ChannelInterruptFlags2 = SpellAuraInterruptFlags2(fields[48].GetUInt32());
|
||||
spellInfo.ProcFlags[0] = fields[49].GetUInt32();
|
||||
spellInfo.ProcFlags[1] = fields[50].GetUInt32();
|
||||
spellInfo.ProcChance = fields[51].GetUInt32();
|
||||
spellInfo.ProcCharges = fields[52].GetUInt32();
|
||||
spellInfo.ProcCooldown = fields[53].GetUInt32();
|
||||
spellInfo.ProcBasePPM = fields[54].GetFloat();
|
||||
spellInfo.MaxLevel = fields[55].GetUInt32();
|
||||
spellInfo.BaseLevel = fields[56].GetUInt32();
|
||||
spellInfo.SpellLevel = fields[57].GetUInt32();
|
||||
spellInfo.DurationEntry = sSpellDurationStore.LookupEntry(fields[58].GetUInt32());
|
||||
spellInfo.RangeEntry = sSpellRangeStore.LookupEntry(fields[59].GetUInt32());
|
||||
spellInfo.Speed = fields[60].GetFloat();
|
||||
spellInfo.LaunchDelay = fields[61].GetFloat();
|
||||
spellInfo.StackAmount = fields[62].GetUInt32();
|
||||
spellInfo.EquippedItemClass = fields[63].GetInt32();
|
||||
spellInfo.EquippedItemSubClassMask = fields[64].GetInt32();
|
||||
spellInfo.EquippedItemInventoryTypeMask = fields[65].GetInt32();
|
||||
spellInfo.ContentTuningId = fields[66].GetUInt32();
|
||||
spellInfo.ConeAngle = fields[68].GetFloat();
|
||||
spellInfo.Width = fields[69].GetFloat();
|
||||
spellInfo.MaxTargetLevel = fields[70].GetUInt32();
|
||||
spellInfo.MaxAffectedTargets = fields[71].GetUInt32();
|
||||
spellInfo.SpellFamilyName = fields[72].GetUInt32();
|
||||
spellInfo.SpellFamilyFlags = flag128(fields[73].GetUInt32(), fields[74].GetUInt32(), fields[75].GetUInt32(), fields[76].GetUInt32());
|
||||
spellInfo.DmgClass = fields[77].GetUInt32();
|
||||
spellInfo.PreventionType = fields[78].GetUInt32();
|
||||
spellInfo.RequiredAreasID = fields[79].GetInt32();
|
||||
spellInfo.SchoolMask = fields[80].GetUInt32();
|
||||
spellInfo.ChargeCategoryId = fields[81].GetUInt32();
|
||||
|
||||
} while (spellsResult->NextRow());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user