fix: Cleans up potential memory leak in monster abilities. (#2185)
This commit is contained in:
parent
f2526c82f3
commit
91b2912ee4
4 changed files with 52 additions and 33 deletions
|
|
@ -1216,7 +1216,7 @@ namespace Server.Mobiles
|
|||
for (var i = 0; i < abilities.Length; i++)
|
||||
{
|
||||
var ability = abilities[i];
|
||||
if (ability.WillTrigger(trigger) && ability.CanTrigger(this, trigger))
|
||||
if (ability.CanTrigger(this, trigger))
|
||||
{
|
||||
ability.Trigger(trigger, this, defender);
|
||||
triggered = true;
|
||||
|
|
@ -1238,7 +1238,7 @@ namespace Server.Mobiles
|
|||
for (var i = 0; i < abilities.Length; i++)
|
||||
{
|
||||
var ability = abilities[i];
|
||||
if (ability.WillTrigger(trigger) && ability.CanTrigger(this, trigger))
|
||||
if (ability.CanTrigger(this, trigger))
|
||||
{
|
||||
ability.Move(this, d);
|
||||
}
|
||||
|
|
@ -1257,7 +1257,7 @@ namespace Server.Mobiles
|
|||
for (var i = 0; i < abilities.Length; i++)
|
||||
{
|
||||
var ability = abilities[i];
|
||||
if (ability.WillTrigger(trigger) && ability.CanTrigger(this, trigger))
|
||||
if (ability.CanTrigger(this, trigger))
|
||||
{
|
||||
if ((trigger & MonsterAbilityTrigger.GiveMeleeDamage) != 0)
|
||||
{
|
||||
|
|
@ -1298,7 +1298,7 @@ namespace Server.Mobiles
|
|||
for (var i = 0; i < abilities.Length; i++)
|
||||
{
|
||||
var ability = abilities[i];
|
||||
if (ability.WillTrigger(trigger) && ability.CanTrigger(this, trigger))
|
||||
if (ability.CanTrigger(this, trigger))
|
||||
{
|
||||
if ((trigger & MonsterAbilityTrigger.GiveSpellDamage) != 0)
|
||||
{
|
||||
|
|
@ -3263,7 +3263,7 @@ namespace Server.Mobiles
|
|||
}
|
||||
|
||||
[GeneratedEvent(nameof(CreatureDeathEvent))]
|
||||
public static partial void CreatureDeathEvent(Mobile m);
|
||||
public static partial void CreatureDeathEvent(BaseCreature bc);
|
||||
|
||||
public override void OnDeath(Container c)
|
||||
{
|
||||
|
|
@ -3454,8 +3454,13 @@ namespace Server.Mobiles
|
|||
CreatureDeathEvent(this);
|
||||
}
|
||||
|
||||
[GeneratedEvent(nameof(CreatureDeletedEvent))]
|
||||
public static partial void CreatureDeletedEvent(BaseCreature bc);
|
||||
|
||||
public override void OnDelete()
|
||||
{
|
||||
CreatureDeletedEvent(this);
|
||||
|
||||
var m = m_ControlMaster;
|
||||
SetControlMaster(null);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue