Core/Players: Implemented PlayerDataElementAccount, PlayerDataElementCharacter, PlayerDataFlagAccount and PlayerDataFlagCharacter

Port From (https://github.com/TrinityCore/TrinityCore/commit/60400d25f5fff2dabd4aa74bbdbc0d2370360a35)
This commit is contained in:
Hondacrx
2025-08-19 16:29:13 -04:00
parent df197587a3
commit a9fc9f454f
18 changed files with 710 additions and 26 deletions
+53 -3
View File
@@ -5899,9 +5899,7 @@ namespace Game.Spells
if (bitIndex < 0 || bitIndex >= sizeof(uint) * 8)
return false;
FlagArray128 reqFlag = new();
reqFlag[bitIndex / 32] = 1u << (bitIndex % 32);
return (spellOnCooldown.SpellFamilyFlags & reqFlag);
return (spellOnCooldown.SpellFamilyFlags[bitIndex / 32] & 1u << (bitIndex % 32)) != 0;
}, TimeSpan.FromMilliseconds(damage));
}
@@ -6003,6 +6001,58 @@ namespace Game.Spells
target.GetSession().GetCollectionMgr().AddWarbandScene((uint)effectInfo.MiscValue);
}
[SpellEffectHandler(SpellEffectName.SetPlayerDataElementAccount)]
void EffectSetPlayerDataElementAccount()
{
if (effectHandleMode != SpellEffectHandleMode.HitTarget)
return;
Player target = unitTarget?.ToPlayer();
if (target == null)
return;
target.SetDataElementAccount((uint)effectInfo.MiscValue, (long)damage);
}
[SpellEffectHandler(SpellEffectName.SetPlayerDataElementCharacter)]
void EffectSetPlayerDataElementCharacter()
{
if (effectHandleMode != SpellEffectHandleMode.HitTarget)
return;
Player target = unitTarget?.ToPlayer();
if (target == null)
return;
target.SetDataElementCharacter((uint)effectInfo.MiscValue, (long)damage);
}
[SpellEffectHandler(SpellEffectName.SetPlayerDataFlagAccount)]
void EffectSetPlayerDataFlagAccount()
{
if (effectHandleMode != SpellEffectHandleMode.HitTarget)
return;
Player target = unitTarget?.ToPlayer();
if (target == null)
return;
target.SetDataFlagAccount((uint)effectInfo.MiscValue, damage != 0);
}
[SpellEffectHandler(SpellEffectName.SetPlayerDataFlagCharacter)]
void EffectSetPlayerDataFlagCharacter()
{
if (effectHandleMode != SpellEffectHandleMode.HitTarget)
return;
Player target = unitTarget?.ToPlayer();
if (target == null)
return;
target.SetDataFlagCharacter((uint)effectInfo.MiscValue, damage != 0);
}
}
public class DispelableAura
+4 -4
View File
@@ -4891,10 +4891,10 @@ namespace Game.Spells
new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 332 SPELL_EFFECT_332
new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 333 SPELL_EFFECT_333
new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 334 SPELL_EFFECT_334
new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 335 SPELL_EFFECT_335
new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 336 SPELL_EFFECT_336
new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 337 SPELL_EFFECT_337
new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 338 SPELL_EFFECT_338
new StaticData(SpellEffectImplicitTargetTypes.Explicit, SpellTargetObjectTypes.Unit), // 335 SPELL_EFFECT_SET_PLAYER_DATA_ELEMENT_ACCOUNT
new StaticData(SpellEffectImplicitTargetTypes.Explicit, SpellTargetObjectTypes.Unit), // 336 SPELL_EFFECT_SET_PLAYER_DATA_ELEMENT_CHARACTER
new StaticData(SpellEffectImplicitTargetTypes.Explicit, SpellTargetObjectTypes.Unit), // 337 SPELL_EFFECT_SET_PLAYER_DATA_FLAG_ACCOUNT
new StaticData(SpellEffectImplicitTargetTypes.Explicit, SpellTargetObjectTypes.Unit), // 338 SPELL_EFFECT_SET_PLAYER_DATA_FLAG_CHARACTER
new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 339 SPELL_EFFECT_UI_ACTION
new StaticData(SpellEffectImplicitTargetTypes.None, SpellTargetObjectTypes.None), // 340 SPELL_EFFECT_340
new StaticData(SpellEffectImplicitTargetTypes.Explicit, SpellTargetObjectTypes.Unit), // 341 SPELL_EFFECT_LEARN_WARBAND_SCENE