Players should not be able to get up and do actions while being knocked down.

Contributed by Sahar.
This commit is contained in:
MobiusDevelopment 2021-02-13 09:21:37 +00:00
parent 29b7417610
commit 493cb9a79c
17 changed files with 272 additions and 0 deletions

View File

@ -33,6 +33,8 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.effects.EffectFlag;
import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
@ -117,6 +119,18 @@ public class KnockBack extends AbstractEffect
return !_knockDown;
}
@Override
public long getEffectFlags()
{
return _knockDown ? EffectFlag.BLOCK_ACTIONS.getMask() : super.getEffectFlags();
}
@Override
public EffectType getEffectType()
{
return _knockDown ? EffectType.BLOCK_ACTIONS : super.getEffectType();
}
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
@ -129,6 +143,8 @@ public class KnockBack extends AbstractEffect
@Override
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
effected.startParalyze();
if (_knockDown)
{
knockBack(effector, effected);

View File

@ -33,6 +33,8 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.effects.EffectFlag;
import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
@ -117,6 +119,18 @@ public class KnockBack extends AbstractEffect
return !_knockDown;
}
@Override
public long getEffectFlags()
{
return _knockDown ? EffectFlag.BLOCK_ACTIONS.getMask() : super.getEffectFlags();
}
@Override
public EffectType getEffectType()
{
return _knockDown ? EffectType.BLOCK_ACTIONS : super.getEffectType();
}
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
@ -129,6 +143,8 @@ public class KnockBack extends AbstractEffect
@Override
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
effected.startParalyze();
if (_knockDown)
{
knockBack(effector, effected);

View File

@ -33,6 +33,8 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.effects.EffectFlag;
import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
@ -117,6 +119,18 @@ public class KnockBack extends AbstractEffect
return !_knockDown;
}
@Override
public long getEffectFlags()
{
return _knockDown ? EffectFlag.BLOCK_ACTIONS.getMask() : super.getEffectFlags();
}
@Override
public EffectType getEffectType()
{
return _knockDown ? EffectType.BLOCK_ACTIONS : super.getEffectType();
}
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
@ -129,6 +143,8 @@ public class KnockBack extends AbstractEffect
@Override
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
effected.startParalyze();
if (_knockDown)
{
knockBack(effector, effected);

View File

@ -33,6 +33,8 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.effects.EffectFlag;
import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
@ -117,6 +119,18 @@ public class KnockBack extends AbstractEffect
return !_knockDown;
}
@Override
public long getEffectFlags()
{
return _knockDown ? EffectFlag.BLOCK_ACTIONS.getMask() : super.getEffectFlags();
}
@Override
public EffectType getEffectType()
{
return _knockDown ? EffectType.BLOCK_ACTIONS : super.getEffectType();
}
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
@ -129,6 +143,8 @@ public class KnockBack extends AbstractEffect
@Override
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
effected.startParalyze();
if (_knockDown)
{
knockBack(effector, effected);

View File

@ -33,6 +33,8 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.effects.EffectFlag;
import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
@ -117,6 +119,18 @@ public class KnockBack extends AbstractEffect
return !_knockDown;
}
@Override
public long getEffectFlags()
{
return _knockDown ? EffectFlag.BLOCK_ACTIONS.getMask() : super.getEffectFlags();
}
@Override
public EffectType getEffectType()
{
return _knockDown ? EffectType.BLOCK_ACTIONS : super.getEffectType();
}
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
@ -129,6 +143,8 @@ public class KnockBack extends AbstractEffect
@Override
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
effected.startParalyze();
if (_knockDown)
{
knockBack(effector, effected);

View File

@ -33,6 +33,8 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.effects.EffectFlag;
import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
@ -117,6 +119,18 @@ public class KnockBack extends AbstractEffect
return !_knockDown;
}
@Override
public long getEffectFlags()
{
return _knockDown ? EffectFlag.BLOCK_ACTIONS.getMask() : super.getEffectFlags();
}
@Override
public EffectType getEffectType()
{
return _knockDown ? EffectType.BLOCK_ACTIONS : super.getEffectType();
}
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
@ -129,6 +143,8 @@ public class KnockBack extends AbstractEffect
@Override
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
effected.startParalyze();
if (_knockDown)
{
knockBack(effector, effected);

View File

@ -33,6 +33,8 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.effects.EffectFlag;
import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
@ -117,6 +119,18 @@ public class KnockBack extends AbstractEffect
return !_knockDown;
}
@Override
public long getEffectFlags()
{
return _knockDown ? EffectFlag.BLOCK_ACTIONS.getMask() : super.getEffectFlags();
}
@Override
public EffectType getEffectType()
{
return _knockDown ? EffectType.BLOCK_ACTIONS : super.getEffectType();
}
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
@ -129,6 +143,8 @@ public class KnockBack extends AbstractEffect
@Override
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
effected.startParalyze();
if (_knockDown)
{
knockBack(effector, effected);

View File

@ -33,6 +33,8 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.effects.EffectFlag;
import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
@ -117,6 +119,18 @@ public class KnockBack extends AbstractEffect
return !_knockDown;
}
@Override
public long getEffectFlags()
{
return _knockDown ? EffectFlag.BLOCK_ACTIONS.getMask() : super.getEffectFlags();
}
@Override
public EffectType getEffectType()
{
return _knockDown ? EffectType.BLOCK_ACTIONS : super.getEffectType();
}
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
@ -129,6 +143,8 @@ public class KnockBack extends AbstractEffect
@Override
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
effected.startParalyze();
if (_knockDown)
{
knockBack(effector, effected);

View File

@ -33,6 +33,8 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.effects.EffectFlag;
import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
@ -117,6 +119,18 @@ public class KnockBack extends AbstractEffect
return !_knockDown;
}
@Override
public long getEffectFlags()
{
return _knockDown ? EffectFlag.BLOCK_ACTIONS.getMask() : super.getEffectFlags();
}
@Override
public EffectType getEffectType()
{
return _knockDown ? EffectType.BLOCK_ACTIONS : super.getEffectType();
}
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
@ -129,6 +143,8 @@ public class KnockBack extends AbstractEffect
@Override
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
effected.startParalyze();
if (_knockDown)
{
knockBack(effector, effected);

View File

@ -26,6 +26,8 @@ import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.effects.EffectFlag;
import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
@ -71,6 +73,18 @@ public class KnockBack extends AbstractEffect
return !_knockDown;
}
@Override
public long getEffectFlags()
{
return _knockDown ? EffectFlag.BLOCK_ACTIONS.getMask() : super.getEffectFlags();
}
@Override
public EffectType getEffectType()
{
return _knockDown ? EffectType.BLOCK_ACTIONS : super.getEffectType();
}
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
@ -83,6 +97,8 @@ public class KnockBack extends AbstractEffect
@Override
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
effected.startParalyze();
if (_knockDown)
{
knockBack(effector, effected);

View File

@ -26,6 +26,8 @@ import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.effects.EffectFlag;
import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
@ -71,6 +73,18 @@ public class KnockBack extends AbstractEffect
return !_knockDown;
}
@Override
public long getEffectFlags()
{
return _knockDown ? EffectFlag.BLOCK_ACTIONS.getMask() : super.getEffectFlags();
}
@Override
public EffectType getEffectType()
{
return _knockDown ? EffectType.BLOCK_ACTIONS : super.getEffectType();
}
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
@ -83,6 +97,8 @@ public class KnockBack extends AbstractEffect
@Override
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
effected.startParalyze();
if (_knockDown)
{
knockBack(effector, effected);

View File

@ -26,6 +26,8 @@ import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.effects.EffectFlag;
import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
@ -71,6 +73,18 @@ public class KnockBack extends AbstractEffect
return !_knockDown;
}
@Override
public long getEffectFlags()
{
return _knockDown ? EffectFlag.BLOCK_ACTIONS.getMask() : super.getEffectFlags();
}
@Override
public EffectType getEffectType()
{
return _knockDown ? EffectType.BLOCK_ACTIONS : super.getEffectType();
}
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
@ -83,6 +97,8 @@ public class KnockBack extends AbstractEffect
@Override
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
effected.startParalyze();
if (_knockDown)
{
knockBack(effector, effected);

View File

@ -26,6 +26,8 @@ import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.effects.EffectFlag;
import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
@ -71,6 +73,18 @@ public class KnockBack extends AbstractEffect
return !_knockDown;
}
@Override
public long getEffectFlags()
{
return _knockDown ? EffectFlag.BLOCK_ACTIONS.getMask() : super.getEffectFlags();
}
@Override
public EffectType getEffectType()
{
return _knockDown ? EffectType.BLOCK_ACTIONS : super.getEffectType();
}
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
@ -83,6 +97,8 @@ public class KnockBack extends AbstractEffect
@Override
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
effected.startParalyze();
if (_knockDown)
{
knockBack(effector, effected);

View File

@ -26,6 +26,8 @@ import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.effects.EffectFlag;
import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
@ -71,6 +73,18 @@ public class KnockBack extends AbstractEffect
return !_knockDown;
}
@Override
public long getEffectFlags()
{
return _knockDown ? EffectFlag.BLOCK_ACTIONS.getMask() : super.getEffectFlags();
}
@Override
public EffectType getEffectType()
{
return _knockDown ? EffectType.BLOCK_ACTIONS : super.getEffectType();
}
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
@ -83,6 +97,8 @@ public class KnockBack extends AbstractEffect
@Override
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
effected.startParalyze();
if (_knockDown)
{
knockBack(effector, effected);

View File

@ -26,6 +26,8 @@ import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.effects.EffectFlag;
import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
@ -71,6 +73,18 @@ public class KnockBack extends AbstractEffect
return !_knockDown;
}
@Override
public long getEffectFlags()
{
return _knockDown ? EffectFlag.BLOCK_ACTIONS.getMask() : super.getEffectFlags();
}
@Override
public EffectType getEffectType()
{
return _knockDown ? EffectType.BLOCK_ACTIONS : super.getEffectType();
}
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
@ -83,6 +97,8 @@ public class KnockBack extends AbstractEffect
@Override
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
effected.startParalyze();
if (_knockDown)
{
knockBack(effector, effected);

View File

@ -26,6 +26,8 @@ import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.effects.EffectFlag;
import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
@ -71,6 +73,18 @@ public class KnockBack extends AbstractEffect
return !_knockDown;
}
@Override
public long getEffectFlags()
{
return _knockDown ? EffectFlag.BLOCK_ACTIONS.getMask() : super.getEffectFlags();
}
@Override
public EffectType getEffectType()
{
return _knockDown ? EffectType.BLOCK_ACTIONS : super.getEffectType();
}
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
@ -83,6 +97,8 @@ public class KnockBack extends AbstractEffect
@Override
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
effected.startParalyze();
if (_knockDown)
{
knockBack(effector, effected);

View File

@ -26,6 +26,8 @@ import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.effects.EffectFlag;
import org.l2jmobius.gameserver.model.effects.EffectType;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.stats.Formulas;
@ -71,6 +73,18 @@ public class KnockBack extends AbstractEffect
return !_knockDown;
}
@Override
public long getEffectFlags()
{
return _knockDown ? EffectFlag.BLOCK_ACTIONS.getMask() : super.getEffectFlags();
}
@Override
public EffectType getEffectType()
{
return _knockDown ? EffectType.BLOCK_ACTIONS : super.getEffectType();
}
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
@ -83,6 +97,8 @@ public class KnockBack extends AbstractEffect
@Override
public void continuousInstant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
effected.startParalyze();
if (_knockDown)
{
knockBack(effector, effected);