Core/Creatures: Allow turning off experience gain from creatures by scripts

Port From (https://github.com/TrinityCore/TrinityCore/commit/91e7401e64dcc2883f7a42c5e382f901c58b9d00)
This commit is contained in:
hondacrx
2023-03-14 04:20:09 -04:00
parent 40009792c4
commit 6905c69cfb
+5 -4
View File
@@ -306,6 +306,8 @@ namespace Game.Entities
for (byte i = 0; i < SharedConst.MaxCreatureSpells; ++i) for (byte i = 0; i < SharedConst.MaxCreatureSpells; ++i)
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));
return true; return true;
} }
@@ -1029,12 +1031,11 @@ namespace Game.Entities
public bool CanGiveExperience() public bool CanGiveExperience()
{ {
return !IsCritter() return !_staticFlags.HasFlag(CreatureStaticFlags.NoXp);
&& !IsPet()
&& !IsTotem()
&& !GetCreatureTemplate().FlagsExtra.HasAnyFlag(CreatureFlagsExtra.NoXP);
} }
public void SetCanGiveExperience(bool xpEnabled) { _staticFlags.ApplyFlag(CreatureStaticFlags.NoXp, !xpEnabled); }
public override bool IsEngaged() public override bool IsEngaged()
{ {
CreatureAI ai = GetAI(); CreatureAI ai = GetAI();