Core/Creatures: Use togglable CREATURE_STATIC_FLAG_4_TREAT_AS_RAID_UNIT_FOR_HELPFUL_SPELLS instead of equivalent flag from creature_template.type_flag
Port From (https://github.com/TrinityCore/TrinityCore/commit/512f5138d44408882cb93ae4cff7cc8d1b627503)
This commit is contained in:
@@ -307,6 +307,7 @@ namespace Game.Entities
|
|||||||
m_spells[i] = GetCreatureTemplate().Spells[i];
|
m_spells[i] = GetCreatureTemplate().Spells[i];
|
||||||
|
|
||||||
_staticFlags.ApplyFlag(CreatureStaticFlags.NoXp, cInfo.CreatureType == CreatureType.Critter || IsPet() || IsTotem() || cInfo.FlagsExtra.HasFlag(CreatureFlagsExtra.NoXP));
|
_staticFlags.ApplyFlag(CreatureStaticFlags.NoXp, cInfo.CreatureType == CreatureType.Critter || IsPet() || IsTotem() || cInfo.FlagsExtra.HasFlag(CreatureFlagsExtra.NoXP));
|
||||||
|
_staticFlags.ApplyFlag(CreatureStaticFlags4.TreatAsRaidUnitForHelpfulSpells, cInfo.TypeFlags.HasFlag(CreatureTypeFlags.TreatAsRaidUnit));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2642,10 +2642,6 @@ namespace Game.Entities
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Creature creatureAttacker = ToCreature();
|
|
||||||
if (creatureAttacker && creatureAttacker.GetCreatureTemplate().TypeFlags.HasFlag(CreatureTypeFlags.TreatAsRaidUnit))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (playerAffectingAttacker && playerAffectingTarget)
|
if (playerAffectingAttacker && playerAffectingTarget)
|
||||||
if (playerAffectingAttacker.duel != null && playerAffectingAttacker.duel.Opponent == playerAffectingTarget && playerAffectingAttacker.duel.State == DuelState.InProgress)
|
if (playerAffectingAttacker.duel != null && playerAffectingAttacker.duel.Opponent == playerAffectingTarget && playerAffectingAttacker.duel.State == DuelState.InProgress)
|
||||||
return true;
|
return true;
|
||||||
@@ -2738,7 +2734,7 @@ namespace Game.Entities
|
|||||||
}
|
}
|
||||||
|
|
||||||
// can't assist non-friendly targets
|
// can't assist non-friendly targets
|
||||||
if (GetReactionTo(target) < ReputationRank.Neutral && target.GetReactionTo(this) < ReputationRank.Neutral && (!ToCreature() || !ToCreature().GetCreatureTemplate().TypeFlags.HasFlag(CreatureTypeFlags.TreatAsRaidUnit)))
|
if (GetReactionTo(target) < ReputationRank.Neutral && target.GetReactionTo(this) < ReputationRank.Neutral && (!ToCreature() || !ToCreature().HasFlag(CreatureStaticFlags4.TreatAsRaidUnitForHelpfulSpells)))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// PvP case
|
// PvP case
|
||||||
@@ -2774,7 +2770,7 @@ namespace Game.Entities
|
|||||||
{
|
{
|
||||||
Creature creatureTarget = target.ToCreature();
|
Creature creatureTarget = target.ToCreature();
|
||||||
if (creatureTarget != null)
|
if (creatureTarget != null)
|
||||||
return (creatureTarget.GetCreatureTemplate().TypeFlags.HasFlag(CreatureTypeFlags.TreatAsRaidUnit) || creatureTarget.GetCreatureTemplate().TypeFlags.HasFlag(CreatureTypeFlags.CanAssist));
|
return creatureTarget.HasFlag(CreatureStaticFlags4.TreatAsRaidUnitForHelpfulSpells) || creatureTarget.GetCreatureTemplate().TypeFlags.HasAnyFlag(CreatureTypeFlags.CanAssist);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2204,8 +2204,8 @@ namespace Game.Entities
|
|||||||
|
|
||||||
if (u1.IsTypeId(TypeId.Player) && u2.IsTypeId(TypeId.Player))
|
if (u1.IsTypeId(TypeId.Player) && u2.IsTypeId(TypeId.Player))
|
||||||
return u1.ToPlayer().IsInSameGroupWith(u2.ToPlayer());
|
return u1.ToPlayer().IsInSameGroupWith(u2.ToPlayer());
|
||||||
else if ((u2.IsTypeId(TypeId.Player) && u1.IsTypeId(TypeId.Unit) && u1.ToCreature().GetCreatureTemplate().TypeFlags.HasAnyFlag(CreatureTypeFlags.TreatAsRaidUnit)) ||
|
else if ((u2.IsTypeId(TypeId.Player) && u1.IsTypeId(TypeId.Unit) && u1.ToCreature().HasFlag(CreatureStaticFlags4.TreatAsRaidUnitForHelpfulSpells)) ||
|
||||||
(u1.IsTypeId(TypeId.Player) && u2.IsTypeId(TypeId.Unit) && u2.ToCreature().GetCreatureTemplate().TypeFlags.HasAnyFlag(CreatureTypeFlags.TreatAsRaidUnit)))
|
(u1.IsTypeId(TypeId.Player) && u2.IsTypeId(TypeId.Unit) && u2.ToCreature().HasFlag(CreatureStaticFlags4.TreatAsRaidUnitForHelpfulSpells)))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return u1.GetTypeId() == TypeId.Unit && u2.GetTypeId() == TypeId.Unit && u1.GetFaction() == u2.GetFaction();
|
return u1.GetTypeId() == TypeId.Unit && u2.GetTypeId() == TypeId.Unit && u1.GetFaction() == u2.GetFaction();
|
||||||
@@ -2223,8 +2223,8 @@ namespace Game.Entities
|
|||||||
|
|
||||||
if (u1.IsTypeId(TypeId.Player) && u2.IsTypeId(TypeId.Player))
|
if (u1.IsTypeId(TypeId.Player) && u2.IsTypeId(TypeId.Player))
|
||||||
return u1.ToPlayer().IsInSameRaidWith(u2.ToPlayer());
|
return u1.ToPlayer().IsInSameRaidWith(u2.ToPlayer());
|
||||||
else if ((u2.IsTypeId(TypeId.Player) && u1.IsTypeId(TypeId.Unit) && u1.ToCreature().GetCreatureTemplate().TypeFlags.HasAnyFlag(CreatureTypeFlags.TreatAsRaidUnit)) ||
|
else if ((u2.IsTypeId(TypeId.Player) && u1.IsTypeId(TypeId.Unit) && u1.ToCreature().HasFlag(CreatureStaticFlags4.TreatAsRaidUnitForHelpfulSpells)) ||
|
||||||
(u1.IsTypeId(TypeId.Player) && u2.IsTypeId(TypeId.Unit) && u2.ToCreature().GetCreatureTemplate().TypeFlags.HasAnyFlag(CreatureTypeFlags.TreatAsRaidUnit)))
|
(u1.IsTypeId(TypeId.Player) && u2.IsTypeId(TypeId.Unit) && u2.ToCreature().HasFlag(CreatureStaticFlags4.TreatAsRaidUnitForHelpfulSpells)))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
// else u1.GetTypeId() == u2.GetTypeId() == TYPEID_UNIT
|
// else u1.GetTypeId() == u2.GetTypeId() == TYPEID_UNIT
|
||||||
|
|||||||
Reference in New Issue
Block a user