Fix for passive effect disabling monsters.

This commit is contained in:
MobiusDev 2019-01-24 13:49:01 +00:00
parent e57da86a58
commit 83b42bef7b
30 changed files with 110 additions and 180 deletions

View File

@ -19,11 +19,12 @@ package handlers.effecthandlers;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.effects.EffectFlag;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* Passive effect implementation.
* @author Adry_85
* @author Mobius
*/
public final class Passive extends AbstractEffect
{
@ -31,25 +32,15 @@ public final class Passive extends AbstractEffect
{
}
@Override
public long getEffectFlags()
{
return EffectFlag.PASSIVE.getMask();
}
@Override
public boolean canStart(L2Character effector, L2Character effected, Skill skill)
{
return effected.isAttackable();
}
@Override
public void onStart(L2Character effector, L2Character effected, Skill skill)
{
effected.abortAttack();
effected.abortCast();
effected.disableAllSkills();
effected.setIsImmobilized(true);
}
@Override
public void onExit(L2Character effector, L2Character effected, Skill skill)
{
effected.enableAllSkills();
effected.setIsImmobilized(false);
}
}

View File

@ -23,6 +23,7 @@ import com.l2jmobius.gameserver.enums.InstanceType;
import com.l2jmobius.gameserver.model.actor.L2Attackable;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jmobius.gameserver.model.effects.EffectFlag;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.util.MinionList;
@ -100,7 +101,7 @@ public class L2MonsterInstance extends L2Attackable
@Override
public boolean isAggressive()
{
return getTemplate().isAggressive();
return getTemplate().isAggressive() && !isAffected(EffectFlag.PASSIVE);
}
@Override

View File

@ -32,6 +32,7 @@ public enum EffectFlag
MUTED,
PSYCHICAL_MUTED,
PSYCHICAL_ATTACK_MUTED,
PASSIVE,
DISARMED,
ROOTED,
BLOCK_ACTIONS,

View File

@ -19,11 +19,12 @@ package handlers.effecthandlers;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.effects.EffectFlag;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* Passive effect implementation.
* @author Adry_85
* @author Mobius
*/
public final class Passive extends AbstractEffect
{
@ -31,25 +32,15 @@ public final class Passive extends AbstractEffect
{
}
@Override
public long getEffectFlags()
{
return EffectFlag.PASSIVE.getMask();
}
@Override
public boolean canStart(L2Character effector, L2Character effected, Skill skill)
{
return effected.isAttackable();
}
@Override
public void onStart(L2Character effector, L2Character effected, Skill skill)
{
effected.abortAttack();
effected.abortCast();
effected.disableAllSkills();
effected.setIsImmobilized(true);
}
@Override
public void onExit(L2Character effector, L2Character effected, Skill skill)
{
effected.enableAllSkills();
effected.setIsImmobilized(false);
}
}

View File

@ -23,6 +23,7 @@ import com.l2jmobius.gameserver.enums.InstanceType;
import com.l2jmobius.gameserver.model.actor.L2Attackable;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jmobius.gameserver.model.effects.EffectFlag;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.util.MinionList;
@ -100,7 +101,7 @@ public class L2MonsterInstance extends L2Attackable
@Override
public boolean isAggressive()
{
return getTemplate().isAggressive();
return getTemplate().isAggressive() && !isAffected(EffectFlag.PASSIVE);
}
@Override

View File

@ -32,6 +32,7 @@ public enum EffectFlag
MUTED,
PSYCHICAL_MUTED,
PSYCHICAL_ATTACK_MUTED,
PASSIVE,
DISARMED,
ROOTED,
BLOCK_ACTIONS,

View File

@ -19,11 +19,12 @@ package handlers.effecthandlers;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.effects.EffectFlag;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* Passive effect implementation.
* @author Adry_85
* @author Mobius
*/
public final class Passive extends AbstractEffect
{
@ -31,25 +32,15 @@ public final class Passive extends AbstractEffect
{
}
@Override
public long getEffectFlags()
{
return EffectFlag.PASSIVE.getMask();
}
@Override
public boolean canStart(L2Character effector, L2Character effected, Skill skill)
{
return effected.isAttackable();
}
@Override
public void onStart(L2Character effector, L2Character effected, Skill skill)
{
effected.abortAttack();
effected.abortCast();
effected.disableAllSkills();
effected.setIsImmobilized(true);
}
@Override
public void onExit(L2Character effector, L2Character effected, Skill skill)
{
effected.enableAllSkills();
effected.setIsImmobilized(false);
}
}

View File

@ -23,6 +23,7 @@ import com.l2jmobius.gameserver.enums.InstanceType;
import com.l2jmobius.gameserver.model.actor.L2Attackable;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jmobius.gameserver.model.effects.EffectFlag;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.util.MinionList;
@ -100,7 +101,7 @@ public class L2MonsterInstance extends L2Attackable
@Override
public boolean isAggressive()
{
return getTemplate().isAggressive();
return getTemplate().isAggressive() && !isAffected(EffectFlag.PASSIVE);
}
@Override

View File

@ -32,6 +32,7 @@ public enum EffectFlag
MUTED,
PSYCHICAL_MUTED,
PSYCHICAL_ATTACK_MUTED,
PASSIVE,
DISARMED,
ROOTED,
BLOCK_ACTIONS,

View File

@ -19,11 +19,12 @@ package handlers.effecthandlers;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.effects.EffectFlag;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* Passive effect implementation.
* @author Adry_85
* @author Mobius
*/
public final class Passive extends AbstractEffect
{
@ -31,25 +32,15 @@ public final class Passive extends AbstractEffect
{
}
@Override
public long getEffectFlags()
{
return EffectFlag.PASSIVE.getMask();
}
@Override
public boolean canStart(L2Character effector, L2Character effected, Skill skill)
{
return effected.isAttackable();
}
@Override
public void onStart(L2Character effector, L2Character effected, Skill skill)
{
effected.abortAttack();
effected.abortCast();
effected.disableAllSkills();
effected.setIsImmobilized(true);
}
@Override
public void onExit(L2Character effector, L2Character effected, Skill skill)
{
effected.enableAllSkills();
effected.setIsImmobilized(false);
}
}

View File

@ -23,6 +23,7 @@ import com.l2jmobius.gameserver.enums.InstanceType;
import com.l2jmobius.gameserver.model.actor.L2Attackable;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jmobius.gameserver.model.effects.EffectFlag;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.util.MinionList;
@ -100,7 +101,7 @@ public class L2MonsterInstance extends L2Attackable
@Override
public boolean isAggressive()
{
return getTemplate().isAggressive();
return getTemplate().isAggressive() && !isAffected(EffectFlag.PASSIVE);
}
@Override

View File

@ -32,6 +32,7 @@ public enum EffectFlag
MUTED,
PSYCHICAL_MUTED,
PSYCHICAL_ATTACK_MUTED,
PASSIVE,
DISARMED,
ROOTED,
BLOCK_ACTIONS,

View File

@ -19,11 +19,12 @@ package handlers.effecthandlers;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.effects.EffectFlag;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* Passive effect implementation.
* @author Adry_85
* @author Mobius
*/
public final class Passive extends AbstractEffect
{
@ -31,25 +32,15 @@ public final class Passive extends AbstractEffect
{
}
@Override
public long getEffectFlags()
{
return EffectFlag.PASSIVE.getMask();
}
@Override
public boolean canStart(L2Character effector, L2Character effected, Skill skill)
{
return effected.isAttackable();
}
@Override
public void onStart(L2Character effector, L2Character effected, Skill skill)
{
effected.abortAttack();
effected.abortCast();
effected.disableAllSkills();
effected.setIsImmobilized(true);
}
@Override
public void onExit(L2Character effector, L2Character effected, Skill skill)
{
effected.enableAllSkills();
effected.setIsImmobilized(false);
}
}

View File

@ -23,6 +23,7 @@ import com.l2jmobius.gameserver.enums.InstanceType;
import com.l2jmobius.gameserver.model.actor.L2Attackable;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jmobius.gameserver.model.effects.EffectFlag;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.util.MinionList;
@ -100,7 +101,7 @@ public class L2MonsterInstance extends L2Attackable
@Override
public boolean isAggressive()
{
return getTemplate().isAggressive();
return getTemplate().isAggressive() && !isAffected(EffectFlag.PASSIVE);
}
@Override

View File

@ -32,6 +32,7 @@ public enum EffectFlag
MUTED,
PSYCHICAL_MUTED,
PSYCHICAL_ATTACK_MUTED,
PASSIVE,
DISARMED,
ROOTED,
BLOCK_ACTIONS,

View File

@ -19,11 +19,12 @@ package handlers.effecthandlers;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.effects.EffectFlag;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* Passive effect implementation.
* @author Adry_85
* @author Mobius
*/
public final class Passive extends AbstractEffect
{
@ -31,25 +32,15 @@ public final class Passive extends AbstractEffect
{
}
@Override
public long getEffectFlags()
{
return EffectFlag.PASSIVE.getMask();
}
@Override
public boolean canStart(L2Character effector, L2Character effected, Skill skill)
{
return effected.isAttackable();
}
@Override
public void onStart(L2Character effector, L2Character effected, Skill skill)
{
effected.abortAttack();
effected.abortCast();
effected.disableAllSkills();
effected.setIsImmobilized(true);
}
@Override
public void onExit(L2Character effector, L2Character effected, Skill skill)
{
effected.enableAllSkills();
effected.setIsImmobilized(false);
}
}

View File

@ -23,6 +23,7 @@ import com.l2jmobius.gameserver.enums.InstanceType;
import com.l2jmobius.gameserver.model.actor.L2Attackable;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jmobius.gameserver.model.effects.EffectFlag;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.util.MinionList;
@ -100,7 +101,7 @@ public class L2MonsterInstance extends L2Attackable
@Override
public boolean isAggressive()
{
return getTemplate().isAggressive();
return getTemplate().isAggressive() && !isAffected(EffectFlag.PASSIVE);
}
@Override

View File

@ -32,6 +32,7 @@ public enum EffectFlag
MUTED,
PSYCHICAL_MUTED,
PSYCHICAL_ATTACK_MUTED,
PASSIVE,
DISARMED,
ROOTED,
BLOCK_ACTIONS,

View File

@ -19,11 +19,12 @@ package handlers.effecthandlers;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.effects.EffectFlag;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* Passive effect implementation.
* @author Adry_85
* @author Mobius
*/
public final class Passive extends AbstractEffect
{
@ -31,25 +32,15 @@ public final class Passive extends AbstractEffect
{
}
@Override
public long getEffectFlags()
{
return EffectFlag.PASSIVE.getMask();
}
@Override
public boolean canStart(L2Character effector, L2Character effected, Skill skill)
{
return effected.isAttackable();
}
@Override
public void onStart(L2Character effector, L2Character effected, Skill skill)
{
effected.abortAttack();
effected.abortCast();
effected.disableAllSkills();
effected.setIsImmobilized(true);
}
@Override
public void onExit(L2Character effector, L2Character effected, Skill skill)
{
effected.enableAllSkills();
effected.setIsImmobilized(false);
}
}

View File

@ -23,6 +23,7 @@ import com.l2jmobius.gameserver.enums.InstanceType;
import com.l2jmobius.gameserver.model.actor.L2Attackable;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jmobius.gameserver.model.effects.EffectFlag;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.util.MinionList;
@ -100,7 +101,7 @@ public class L2MonsterInstance extends L2Attackable
@Override
public boolean isAggressive()
{
return getTemplate().isAggressive();
return getTemplate().isAggressive() && !isAffected(EffectFlag.PASSIVE);
}
@Override

View File

@ -32,6 +32,7 @@ public enum EffectFlag
MUTED,
PSYCHICAL_MUTED,
PSYCHICAL_ATTACK_MUTED,
PASSIVE,
DISARMED,
ROOTED,
BLOCK_ACTIONS,

View File

@ -19,11 +19,12 @@ package handlers.effecthandlers;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.effects.EffectFlag;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* Passive effect implementation.
* @author Adry_85
* @author Mobius
*/
public final class Passive extends AbstractEffect
{
@ -31,25 +32,15 @@ public final class Passive extends AbstractEffect
{
}
@Override
public long getEffectFlags()
{
return EffectFlag.PASSIVE.getMask();
}
@Override
public boolean canStart(L2Character effector, L2Character effected, Skill skill)
{
return effected.isAttackable();
}
@Override
public void onStart(L2Character effector, L2Character effected, Skill skill)
{
effected.abortAttack();
effected.abortCast();
effected.disableAllSkills();
effected.setIsImmobilized(true);
}
@Override
public void onExit(L2Character effector, L2Character effected, Skill skill)
{
effected.enableAllSkills();
effected.setIsImmobilized(false);
}
}

View File

@ -23,6 +23,7 @@ import com.l2jmobius.gameserver.enums.InstanceType;
import com.l2jmobius.gameserver.model.actor.L2Attackable;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jmobius.gameserver.model.effects.EffectFlag;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.util.MinionList;
@ -100,7 +101,7 @@ public class L2MonsterInstance extends L2Attackable
@Override
public boolean isAggressive()
{
return getTemplate().isAggressive();
return getTemplate().isAggressive() && !isAffected(EffectFlag.PASSIVE);
}
@Override

View File

@ -32,6 +32,7 @@ public enum EffectFlag
MUTED,
PSYCHICAL_MUTED,
PSYCHICAL_ATTACK_MUTED,
PASSIVE,
DISARMED,
ROOTED,
BLOCK_ACTIONS,

View File

@ -19,11 +19,12 @@ package handlers.effecthandlers;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.effects.EffectFlag;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* Passive effect implementation.
* @author Adry_85
* @author Mobius
*/
public final class Passive extends AbstractEffect
{
@ -31,25 +32,15 @@ public final class Passive extends AbstractEffect
{
}
@Override
public long getEffectFlags()
{
return EffectFlag.PASSIVE.getMask();
}
@Override
public boolean canStart(L2Character effector, L2Character effected, Skill skill)
{
return effected.isAttackable();
}
@Override
public void onStart(L2Character effector, L2Character effected, Skill skill)
{
effected.abortAttack();
effected.abortCast();
effected.disableAllSkills();
effected.setIsImmobilized(true);
}
@Override
public void onExit(L2Character effector, L2Character effected, Skill skill)
{
effected.enableAllSkills();
effected.setIsImmobilized(false);
}
}

View File

@ -23,6 +23,7 @@ import com.l2jmobius.gameserver.enums.InstanceType;
import com.l2jmobius.gameserver.model.actor.L2Attackable;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jmobius.gameserver.model.effects.EffectFlag;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.util.MinionList;
@ -100,7 +101,7 @@ public class L2MonsterInstance extends L2Attackable
@Override
public boolean isAggressive()
{
return getTemplate().isAggressive();
return getTemplate().isAggressive() && !isAffected(EffectFlag.PASSIVE);
}
@Override

View File

@ -32,6 +32,7 @@ public enum EffectFlag
MUTED,
PSYCHICAL_MUTED,
PSYCHICAL_ATTACK_MUTED,
PASSIVE,
DISARMED,
ROOTED,
BLOCK_ACTIONS,

View File

@ -19,11 +19,12 @@ package handlers.effecthandlers;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.effects.EffectFlag;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
* Passive effect implementation.
* @author Adry_85
* @author Mobius
*/
public final class Passive extends AbstractEffect
{
@ -31,25 +32,15 @@ public final class Passive extends AbstractEffect
{
}
@Override
public long getEffectFlags()
{
return EffectFlag.PASSIVE.getMask();
}
@Override
public boolean canStart(L2Character effector, L2Character effected, Skill skill)
{
return effected.isAttackable();
}
@Override
public void onStart(L2Character effector, L2Character effected, Skill skill)
{
effected.abortAttack();
effected.abortCast();
effected.disableAllSkills();
effected.setIsImmobilized(true);
}
@Override
public void onExit(L2Character effector, L2Character effected, Skill skill)
{
effected.enableAllSkills();
effected.setIsImmobilized(false);
}
}

View File

@ -23,6 +23,7 @@ import com.l2jmobius.gameserver.enums.InstanceType;
import com.l2jmobius.gameserver.model.actor.L2Attackable;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jmobius.gameserver.model.effects.EffectFlag;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.util.MinionList;
@ -100,7 +101,7 @@ public class L2MonsterInstance extends L2Attackable
@Override
public boolean isAggressive()
{
return getTemplate().isAggressive();
return getTemplate().isAggressive() && !isAffected(EffectFlag.PASSIVE);
}
@Override

View File

@ -32,6 +32,7 @@ public enum EffectFlag
MUTED,
PSYCHICAL_MUTED,
PSYCHICAL_ATTACK_MUTED,
PASSIVE,
DISARMED,
ROOTED,
BLOCK_ACTIONS,