diff --git a/Source/Game/Entities/Creature/Creature.cs b/Source/Game/Entities/Creature/Creature.cs index d1efe5ed5..b68f786ae 100644 --- a/Source/Game/Entities/Creature/Creature.cs +++ b/Source/Game/Entities/Creature/Creature.cs @@ -306,6 +306,8 @@ namespace Game.Entities for (byte i = 0; i < SharedConst.MaxCreatureSpells; ++i) m_spells[i] = GetCreatureTemplate().Spells[i]; + _staticFlags.ApplyFlag(CreatureStaticFlags.NoXp, cInfo.CreatureType == CreatureType.Critter || IsPet() || IsTotem() || cInfo.FlagsExtra.HasFlag(CreatureFlagsExtra.NoXP)); + return true; } @@ -1029,12 +1031,11 @@ namespace Game.Entities public bool CanGiveExperience() { - return !IsCritter() - && !IsPet() - && !IsTotem() - && !GetCreatureTemplate().FlagsExtra.HasAnyFlag(CreatureFlagsExtra.NoXP); + return !_staticFlags.HasFlag(CreatureStaticFlags.NoXp); } + public void SetCanGiveExperience(bool xpEnabled) { _staticFlags.ApplyFlag(CreatureStaticFlags.NoXp, !xpEnabled); } + public override bool IsEngaged() { CreatureAI ai = GetAI();