Core/Creatures: Move immunities to separate table and implemented setting immunties to dispel, spell effects, aura types, aoe and chain targeting
Port From (https://github.com/TrinityCore/TrinityCore/commit/f70a5817e1c07891185d716611d45f50b1c73b78)
This commit is contained in:
@@ -83,7 +83,10 @@ namespace Game.Chat
|
||||
|
||||
uint faction = target.GetFaction();
|
||||
ulong npcflags = (ulong)target.m_unitData.NpcFlags[1] << 32 | target.m_unitData.NpcFlags[0];
|
||||
ulong mechanicImmuneMask = cInfo.MechanicImmuneMask;
|
||||
ulong mechanicImmuneMask = 0;
|
||||
CreatureImmunities immunities = Global.SpellMgr.GetCreatureImmunities(cInfo.CreatureImmunitiesId);
|
||||
if (immunities != null)
|
||||
mechanicImmuneMask = immunities.Mechanic.ToUInt();
|
||||
uint displayid = target.GetDisplayId();
|
||||
uint nativeid = target.GetNativeDisplayId();
|
||||
uint entry = target.GetEntry();
|
||||
@@ -110,17 +113,17 @@ namespace Game.Chat
|
||||
handler.SendSysMessage(CypherStrings.NpcinfoUnitFieldFlags, (uint)target.m_unitData.Flags);
|
||||
foreach (UnitFlags value in Enum.GetValues(typeof(UnitFlags)))
|
||||
if (target.HasUnitFlag(value))
|
||||
handler.SendSysMessage("{0} (0x{1:X})", (UnitFlags)value, value);
|
||||
handler.SendSysMessage("{0} (0x{1:X})", value, value);
|
||||
|
||||
handler.SendSysMessage(CypherStrings.NpcinfoUnitFieldFlags2, (uint)target.m_unitData.Flags2);
|
||||
foreach (UnitFlags2 value in Enum.GetValues(typeof(UnitFlags2)))
|
||||
if (target.HasUnitFlag2(value))
|
||||
handler.SendSysMessage("{0} (0x{1:X})", (UnitFlags2)value, value);
|
||||
handler.SendSysMessage("{0} (0x{1:X})", value, value);
|
||||
|
||||
handler.SendSysMessage(CypherStrings.NpcinfoUnitFieldFlags3, (uint)target.m_unitData.Flags3);
|
||||
foreach (UnitFlags3 value in Enum.GetValues(typeof(UnitFlags3)))
|
||||
if (target.HasUnitFlag3(value))
|
||||
handler.SendSysMessage("{0} (0x{1:X})", (UnitFlags3)value, value);
|
||||
handler.SendSysMessage("{0} (0x{1:X})", value, value);
|
||||
|
||||
handler.SendSysMessage(CypherStrings.NpcinfoDynamicFlags, target.GetDynamicFlags());
|
||||
handler.SendSysMessage(CypherStrings.CommandRawpawntimes, defRespawnDelayStr, curRespawnDelayStr);
|
||||
@@ -153,7 +156,7 @@ namespace Game.Chat
|
||||
if (npcflags.HasAnyFlag(value))
|
||||
handler.SendSysMessage("{0} (0x{1:X})", (NPCFlags)value, value);
|
||||
|
||||
handler.SendSysMessage(CypherStrings.NpcinfoMechanicImmune, mechanicImmuneMask);
|
||||
handler.SendSysMessage(CypherStrings.NpcinfoMechanicImmune, $"0x{mechanicImmuneMask:X}");
|
||||
foreach (int value in Enum.GetValues(typeof(Mechanics)))
|
||||
if (Convert.ToBoolean(mechanicImmuneMask & (1ul << (value - 1))))
|
||||
handler.SendSysMessage("{0} (0x{1:X})", (Mechanics)value, value);
|
||||
|
||||
Reference in New Issue
Block a user