Fix for passive effect disabling monsters.
This commit is contained in:
parent
e57da86a58
commit
83b42bef7b
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -32,6 +32,7 @@ public enum EffectFlag
|
||||
MUTED,
|
||||
PSYCHICAL_MUTED,
|
||||
PSYCHICAL_ATTACK_MUTED,
|
||||
PASSIVE,
|
||||
DISARMED,
|
||||
ROOTED,
|
||||
BLOCK_ACTIONS,
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -32,6 +32,7 @@ public enum EffectFlag
|
||||
MUTED,
|
||||
PSYCHICAL_MUTED,
|
||||
PSYCHICAL_ATTACK_MUTED,
|
||||
PASSIVE,
|
||||
DISARMED,
|
||||
ROOTED,
|
||||
BLOCK_ACTIONS,
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -32,6 +32,7 @@ public enum EffectFlag
|
||||
MUTED,
|
||||
PSYCHICAL_MUTED,
|
||||
PSYCHICAL_ATTACK_MUTED,
|
||||
PASSIVE,
|
||||
DISARMED,
|
||||
ROOTED,
|
||||
BLOCK_ACTIONS,
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -32,6 +32,7 @@ public enum EffectFlag
|
||||
MUTED,
|
||||
PSYCHICAL_MUTED,
|
||||
PSYCHICAL_ATTACK_MUTED,
|
||||
PASSIVE,
|
||||
DISARMED,
|
||||
ROOTED,
|
||||
BLOCK_ACTIONS,
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -32,6 +32,7 @@ public enum EffectFlag
|
||||
MUTED,
|
||||
PSYCHICAL_MUTED,
|
||||
PSYCHICAL_ATTACK_MUTED,
|
||||
PASSIVE,
|
||||
DISARMED,
|
||||
ROOTED,
|
||||
BLOCK_ACTIONS,
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -32,6 +32,7 @@ public enum EffectFlag
|
||||
MUTED,
|
||||
PSYCHICAL_MUTED,
|
||||
PSYCHICAL_ATTACK_MUTED,
|
||||
PASSIVE,
|
||||
DISARMED,
|
||||
ROOTED,
|
||||
BLOCK_ACTIONS,
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -32,6 +32,7 @@ public enum EffectFlag
|
||||
MUTED,
|
||||
PSYCHICAL_MUTED,
|
||||
PSYCHICAL_ATTACK_MUTED,
|
||||
PASSIVE,
|
||||
DISARMED,
|
||||
ROOTED,
|
||||
BLOCK_ACTIONS,
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -32,6 +32,7 @@ public enum EffectFlag
|
||||
MUTED,
|
||||
PSYCHICAL_MUTED,
|
||||
PSYCHICAL_ATTACK_MUTED,
|
||||
PASSIVE,
|
||||
DISARMED,
|
||||
ROOTED,
|
||||
BLOCK_ACTIONS,
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -32,6 +32,7 @@ public enum EffectFlag
|
||||
MUTED,
|
||||
PSYCHICAL_MUTED,
|
||||
PSYCHICAL_ATTACK_MUTED,
|
||||
PASSIVE,
|
||||
DISARMED,
|
||||
ROOTED,
|
||||
BLOCK_ACTIONS,
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -32,6 +32,7 @@ public enum EffectFlag
|
||||
MUTED,
|
||||
PSYCHICAL_MUTED,
|
||||
PSYCHICAL_ATTACK_MUTED,
|
||||
PASSIVE,
|
||||
DISARMED,
|
||||
ROOTED,
|
||||
BLOCK_ACTIONS,
|
||||
|
Loading…
Reference in New Issue
Block a user