Addition of configurations for fake death target.

This commit is contained in:
MobiusDevelopment 2019-04-27 08:58:16 +00:00
parent 1014855f61
commit 223da2f310
177 changed files with 576 additions and 186 deletions

View File

@ -140,6 +140,12 @@ EffectTickRatio = 666
# This option will enable alter skills (chain skills)
EnableAlterSkills = True
# Untarget player when uses fake death.
FakeDeathUntarget = True
# Stand when fake death is active and taking damage.
FakeDeathDamageStand = False
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -61,7 +62,7 @@ public final class DeathLink extends AbstractEffect
final boolean sps = skill.useSpiritShot() && effector.isChargedShot(ShotType.SPIRITSHOTS);
final boolean bss = skill.useSpiritShot() && effector.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -62,7 +63,7 @@ public final class MagicalAbnormalDispelAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -63,7 +64,7 @@ public final class MagicalAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -58,7 +59,7 @@ public final class MagicalAttackByAbnormal extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -20,6 +20,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -78,7 +79,7 @@ public final class MagicalAttackByAbnormalSlot extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -55,7 +56,7 @@ public final class MagicalAttackRange extends AbstractEffect
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -60,7 +61,7 @@ public final class MagicalSoulAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -20,6 +20,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -102,7 +103,7 @@ public final class PhysicalAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -75,7 +76,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -19,6 +19,7 @@ package handlers.effecthandlers;
import java.util.HashMap;
import java.util.Map;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -90,7 +91,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -80,7 +81,7 @@ public final class PhysicalSoulAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -172,6 +172,8 @@ public final class Config
public static boolean SUMMON_STORE_SKILL_COOLTIME;
public static long EFFECT_TICK_RATIO;
public static boolean ENABLE_ALTER_SKILLS;
public static boolean FAKE_DEATH_UNTARGET;
public static boolean FAKE_DEATH_DAMAGE_STAND;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@ -1508,6 +1510,8 @@ public final class Config
SUMMON_STORE_SKILL_COOLTIME = Character.getBoolean("SummonStoreSkillCooltime", true);
EFFECT_TICK_RATIO = Character.getLong("EffectTickRatio", 666);
ENABLE_ALTER_SKILLS = Character.getBoolean("EnableAlterSkills", true);
FAKE_DEATH_UNTARGET = Character.getBoolean("FakeDeathUntarget", true);
FAKE_DEATH_DAMAGE_STAND = Character.getBoolean("FakeDeathDamageStand", false);
LIFE_CRYSTAL_NEEDED = Character.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = Character.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = Character.getBoolean("AltSubClassWithoutQuests", false);

View File

@ -31,6 +31,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.gameserver.enums.ItemLocation;
import org.l2jmobius.gameserver.geoengine.GeoEngine;
@ -1046,7 +1047,7 @@ public class CreatureAI extends AbstractAI
if ((target == null) || target.isAlikeDead())
{
// check if player is fakedeath
if ((target != null) && target.isPlayer() && ((PlayerInstance) target).isFakeDeath())
if ((target != null) && target.isPlayer() && ((PlayerInstance) target).isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
target.stopFakeDeath(true);
return false;
@ -1076,11 +1077,10 @@ public class CreatureAI extends AbstractAI
*/
protected boolean checkTargetLost(WorldObject target)
{
// check if player is fakedeath
if ((target != null) && target.isPlayer())
// Check if player is fakedeath.
if ((target != null) && target.isPlayer() && Config.FAKE_DEATH_DAMAGE_STAND)
{
final PlayerInstance target2 = (PlayerInstance) target; // convert object to chara
final PlayerInstance target2 = (PlayerInstance) target; // Convert object to player.
if (target2.isFakeDeath())
{
target2.stopFakeDeath(true);

View File

@ -2288,6 +2288,18 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
stopMove(null);
getAI().notifyEvent(CtrlEvent.EVT_FAKE_DEATH);
broadcastPacket(new ChangeWaitType(this, ChangeWaitType.WT_START_FAKEDEATH));
// Remove target from those that have the untargetable creature on target.
if (Config.FAKE_DEATH_UNTARGET)
{
World.getInstance().forEachVisibleObject(this, Creature.class, c ->
{
if (c.getTarget() == this)
{
c.setTarget(null);
}
});
}
}
public final void startParalyze()

View File

@ -140,6 +140,12 @@ EffectTickRatio = 666
# This option will enable alter skills (chain skills)
EnableAlterSkills = True
# Untarget player when uses fake death.
FakeDeathUntarget = True
# Stand when fake death is active and taking damage.
FakeDeathDamageStand = False
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -61,7 +62,7 @@ public final class DeathLink extends AbstractEffect
final boolean sps = skill.useSpiritShot() && effector.isChargedShot(ShotType.SPIRITSHOTS);
final boolean bss = skill.useSpiritShot() && effector.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -62,7 +63,7 @@ public final class MagicalAbnormalDispelAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -63,7 +64,7 @@ public final class MagicalAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -58,7 +59,7 @@ public final class MagicalAttackByAbnormal extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -20,6 +20,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -78,7 +79,7 @@ public final class MagicalAttackByAbnormalSlot extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -55,7 +56,7 @@ public final class MagicalAttackRange extends AbstractEffect
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -60,7 +61,7 @@ public final class MagicalSoulAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -20,6 +20,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -102,7 +103,7 @@ public final class PhysicalAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -75,7 +76,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -19,6 +19,7 @@ package handlers.effecthandlers;
import java.util.HashMap;
import java.util.Map;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -90,7 +91,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -80,7 +81,7 @@ public final class PhysicalSoulAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -178,6 +178,8 @@ public final class Config
public static boolean SUMMON_STORE_SKILL_COOLTIME;
public static long EFFECT_TICK_RATIO;
public static boolean ENABLE_ALTER_SKILLS;
public static boolean FAKE_DEATH_UNTARGET;
public static boolean FAKE_DEATH_DAMAGE_STAND;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@ -1523,6 +1525,8 @@ public final class Config
SUMMON_STORE_SKILL_COOLTIME = Character.getBoolean("SummonStoreSkillCooltime", true);
EFFECT_TICK_RATIO = Character.getLong("EffectTickRatio", 666);
ENABLE_ALTER_SKILLS = Character.getBoolean("EnableAlterSkills", true);
FAKE_DEATH_UNTARGET = Character.getBoolean("FakeDeathUntarget", true);
FAKE_DEATH_DAMAGE_STAND = Character.getBoolean("FakeDeathDamageStand", false);
LIFE_CRYSTAL_NEEDED = Character.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = Character.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = Character.getBoolean("AltSubClassWithoutQuests", false);

View File

@ -31,6 +31,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.gameserver.enums.ItemLocation;
import org.l2jmobius.gameserver.geoengine.GeoEngine;
@ -1046,7 +1047,7 @@ public class CreatureAI extends AbstractAI
if ((target == null) || target.isAlikeDead())
{
// check if player is fakedeath
if ((target != null) && target.isPlayer() && ((PlayerInstance) target).isFakeDeath())
if ((target != null) && target.isPlayer() && ((PlayerInstance) target).isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
target.stopFakeDeath(true);
return false;
@ -1076,11 +1077,10 @@ public class CreatureAI extends AbstractAI
*/
protected boolean checkTargetLost(WorldObject target)
{
// check if player is fakedeath
if ((target != null) && target.isPlayer())
// Check if player is fakedeath.
if ((target != null) && target.isPlayer() && Config.FAKE_DEATH_DAMAGE_STAND)
{
final PlayerInstance target2 = (PlayerInstance) target; // convert object to chara
final PlayerInstance target2 = (PlayerInstance) target; // Convert object to player.
if (target2.isFakeDeath())
{
target2.stopFakeDeath(true);

View File

@ -2288,6 +2288,18 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
stopMove(null);
getAI().notifyEvent(CtrlEvent.EVT_FAKE_DEATH);
broadcastPacket(new ChangeWaitType(this, ChangeWaitType.WT_START_FAKEDEATH));
// Remove target from those that have the untargetable creature on target.
if (Config.FAKE_DEATH_UNTARGET)
{
World.getInstance().forEachVisibleObject(this, Creature.class, c ->
{
if (c.getTarget() == this)
{
c.setTarget(null);
}
});
}
}
public final void startParalyze()

View File

@ -140,6 +140,12 @@ EffectTickRatio = 666
# This option will enable alter skills (chain skills)
EnableAlterSkills = True
# Untarget player when uses fake death.
FakeDeathUntarget = True
# Stand when fake death is active and taking damage.
FakeDeathDamageStand = False
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -61,7 +62,7 @@ public final class DeathLink extends AbstractEffect
final boolean sps = skill.useSpiritShot() && effector.isChargedShot(ShotType.SPIRITSHOTS);
final boolean bss = skill.useSpiritShot() && effector.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -62,7 +63,7 @@ public final class MagicalAbnormalDispelAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -63,7 +64,7 @@ public final class MagicalAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -58,7 +59,7 @@ public final class MagicalAttackByAbnormal extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -20,6 +20,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -78,7 +79,7 @@ public final class MagicalAttackByAbnormalSlot extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -55,7 +56,7 @@ public final class MagicalAttackRange extends AbstractEffect
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -60,7 +61,7 @@ public final class MagicalSoulAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -20,6 +20,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -102,7 +103,7 @@ public final class PhysicalAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -75,7 +76,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -19,6 +19,7 @@ package handlers.effecthandlers;
import java.util.HashMap;
import java.util.Map;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -90,7 +91,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -80,7 +81,7 @@ public final class PhysicalSoulAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -178,6 +178,8 @@ public final class Config
public static boolean SUMMON_STORE_SKILL_COOLTIME;
public static long EFFECT_TICK_RATIO;
public static boolean ENABLE_ALTER_SKILLS;
public static boolean FAKE_DEATH_UNTARGET;
public static boolean FAKE_DEATH_DAMAGE_STAND;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@ -1531,6 +1533,8 @@ public final class Config
SUMMON_STORE_SKILL_COOLTIME = Character.getBoolean("SummonStoreSkillCooltime", true);
EFFECT_TICK_RATIO = Character.getLong("EffectTickRatio", 666);
ENABLE_ALTER_SKILLS = Character.getBoolean("EnableAlterSkills", true);
FAKE_DEATH_UNTARGET = Character.getBoolean("FakeDeathUntarget", true);
FAKE_DEATH_DAMAGE_STAND = Character.getBoolean("FakeDeathDamageStand", false);
LIFE_CRYSTAL_NEEDED = Character.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = Character.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = Character.getBoolean("AltSubClassWithoutQuests", false);

View File

@ -31,6 +31,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.gameserver.enums.ItemLocation;
import org.l2jmobius.gameserver.geoengine.GeoEngine;
@ -1046,7 +1047,7 @@ public class CreatureAI extends AbstractAI
if ((target == null) || target.isAlikeDead())
{
// check if player is fakedeath
if ((target != null) && target.isPlayer() && ((PlayerInstance) target).isFakeDeath())
if ((target != null) && target.isPlayer() && ((PlayerInstance) target).isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
target.stopFakeDeath(true);
return false;
@ -1076,11 +1077,10 @@ public class CreatureAI extends AbstractAI
*/
protected boolean checkTargetLost(WorldObject target)
{
// check if player is fakedeath
if ((target != null) && target.isPlayer())
// Check if player is fakedeath.
if ((target != null) && target.isPlayer() && Config.FAKE_DEATH_DAMAGE_STAND)
{
final PlayerInstance target2 = (PlayerInstance) target; // convert object to chara
final PlayerInstance target2 = (PlayerInstance) target; // Convert object to player.
if (target2.isFakeDeath())
{
target2.stopFakeDeath(true);

View File

@ -2288,6 +2288,18 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
stopMove(null);
getAI().notifyEvent(CtrlEvent.EVT_FAKE_DEATH);
broadcastPacket(new ChangeWaitType(this, ChangeWaitType.WT_START_FAKEDEATH));
// Remove target from those that have the untargetable creature on target.
if (Config.FAKE_DEATH_UNTARGET)
{
World.getInstance().forEachVisibleObject(this, Creature.class, c ->
{
if (c.getTarget() == this)
{
c.setTarget(null);
}
});
}
}
public final void startParalyze()

View File

@ -140,6 +140,12 @@ EffectTickRatio = 666
# This option will enable alter skills (chain skills)
EnableAlterSkills = True
# Untarget player when uses fake death.
FakeDeathUntarget = True
# Stand when fake death is active and taking damage.
FakeDeathDamageStand = False
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -61,7 +62,7 @@ public final class DeathLink extends AbstractEffect
final boolean sps = skill.useSpiritShot() && effector.isChargedShot(ShotType.SPIRITSHOTS);
final boolean bss = skill.useSpiritShot() && effector.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -62,7 +63,7 @@ public final class MagicalAbnormalDispelAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -63,7 +64,7 @@ public final class MagicalAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -58,7 +59,7 @@ public final class MagicalAttackByAbnormal extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -20,6 +20,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -78,7 +79,7 @@ public final class MagicalAttackByAbnormalSlot extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -55,7 +56,7 @@ public final class MagicalAttackRange extends AbstractEffect
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -60,7 +61,7 @@ public final class MagicalSoulAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -20,6 +20,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -102,7 +103,7 @@ public final class PhysicalAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -75,7 +76,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -19,6 +19,7 @@ package handlers.effecthandlers;
import java.util.HashMap;
import java.util.Map;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -90,7 +91,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -80,7 +81,7 @@ public final class PhysicalSoulAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -178,6 +178,8 @@ public final class Config
public static boolean SUMMON_STORE_SKILL_COOLTIME;
public static long EFFECT_TICK_RATIO;
public static boolean ENABLE_ALTER_SKILLS;
public static boolean FAKE_DEATH_UNTARGET;
public static boolean FAKE_DEATH_DAMAGE_STAND;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@ -1524,6 +1526,8 @@ public final class Config
SUMMON_STORE_SKILL_COOLTIME = Character.getBoolean("SummonStoreSkillCooltime", true);
EFFECT_TICK_RATIO = Character.getLong("EffectTickRatio", 666);
ENABLE_ALTER_SKILLS = Character.getBoolean("EnableAlterSkills", true);
FAKE_DEATH_UNTARGET = Character.getBoolean("FakeDeathUntarget", true);
FAKE_DEATH_DAMAGE_STAND = Character.getBoolean("FakeDeathDamageStand", false);
LIFE_CRYSTAL_NEEDED = Character.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = Character.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = Character.getBoolean("AltSubClassWithoutQuests", false);

View File

@ -31,6 +31,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.gameserver.enums.ItemLocation;
import org.l2jmobius.gameserver.geoengine.GeoEngine;
@ -1046,7 +1047,7 @@ public class CreatureAI extends AbstractAI
if ((target == null) || target.isAlikeDead())
{
// check if player is fakedeath
if ((target != null) && target.isPlayer() && ((PlayerInstance) target).isFakeDeath())
if ((target != null) && target.isPlayer() && ((PlayerInstance) target).isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
target.stopFakeDeath(true);
return false;
@ -1076,11 +1077,10 @@ public class CreatureAI extends AbstractAI
*/
protected boolean checkTargetLost(WorldObject target)
{
// check if player is fakedeath
if ((target != null) && target.isPlayer())
// Check if player is fakedeath.
if ((target != null) && target.isPlayer() && Config.FAKE_DEATH_DAMAGE_STAND)
{
final PlayerInstance target2 = (PlayerInstance) target; // convert object to chara
final PlayerInstance target2 = (PlayerInstance) target; // Convert object to player.
if (target2.isFakeDeath())
{
target2.stopFakeDeath(true);

View File

@ -2288,6 +2288,18 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
stopMove(null);
getAI().notifyEvent(CtrlEvent.EVT_FAKE_DEATH);
broadcastPacket(new ChangeWaitType(this, ChangeWaitType.WT_START_FAKEDEATH));
// Remove target from those that have the untargetable creature on target.
if (Config.FAKE_DEATH_UNTARGET)
{
World.getInstance().forEachVisibleObject(this, Creature.class, c ->
{
if (c.getTarget() == this)
{
c.setTarget(null);
}
});
}
}
public final void startParalyze()

View File

@ -140,6 +140,12 @@ EffectTickRatio = 666
# This option will enable alter skills (chain skills)
EnableAlterSkills = True
# Untarget player when uses fake death.
FakeDeathUntarget = True
# Stand when fake death is active and taking damage.
FakeDeathDamageStand = False
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -61,7 +62,7 @@ public final class DeathLink extends AbstractEffect
final boolean sps = skill.useSpiritShot() && effector.isChargedShot(ShotType.SPIRITSHOTS);
final boolean bss = skill.useSpiritShot() && effector.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -62,7 +63,7 @@ public final class MagicalAbnormalDispelAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -63,7 +64,7 @@ public final class MagicalAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -58,7 +59,7 @@ public final class MagicalAttackByAbnormal extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -20,6 +20,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -78,7 +79,7 @@ public final class MagicalAttackByAbnormalSlot extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -55,7 +56,7 @@ public final class MagicalAttackRange extends AbstractEffect
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -60,7 +61,7 @@ public final class MagicalSoulAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -20,6 +20,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -102,7 +103,7 @@ public final class PhysicalAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -75,7 +76,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -19,6 +19,7 @@ package handlers.effecthandlers;
import java.util.HashMap;
import java.util.Map;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -90,7 +91,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -80,7 +81,7 @@ public final class PhysicalSoulAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -185,6 +185,8 @@ public final class Config
public static boolean SUMMON_STORE_SKILL_COOLTIME;
public static long EFFECT_TICK_RATIO;
public static boolean ENABLE_ALTER_SKILLS;
public static boolean FAKE_DEATH_UNTARGET;
public static boolean FAKE_DEATH_DAMAGE_STAND;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@ -1527,6 +1529,8 @@ public final class Config
SUMMON_STORE_SKILL_COOLTIME = Character.getBoolean("SummonStoreSkillCooltime", true);
EFFECT_TICK_RATIO = Character.getLong("EffectTickRatio", 666);
ENABLE_ALTER_SKILLS = Character.getBoolean("EnableAlterSkills", true);
FAKE_DEATH_UNTARGET = Character.getBoolean("FakeDeathUntarget", true);
FAKE_DEATH_DAMAGE_STAND = Character.getBoolean("FakeDeathDamageStand", false);
LIFE_CRYSTAL_NEEDED = Character.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = Character.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = Character.getBoolean("AltSubClassWithoutQuests", false);

View File

@ -31,6 +31,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.gameserver.enums.ItemLocation;
import org.l2jmobius.gameserver.geoengine.GeoEngine;
@ -1046,7 +1047,7 @@ public class CreatureAI extends AbstractAI
if ((target == null) || target.isAlikeDead())
{
// check if player is fakedeath
if ((target != null) && target.isPlayer() && ((PlayerInstance) target).isFakeDeath())
if ((target != null) && target.isPlayer() && ((PlayerInstance) target).isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
target.stopFakeDeath(true);
return false;
@ -1076,11 +1077,10 @@ public class CreatureAI extends AbstractAI
*/
protected boolean checkTargetLost(WorldObject target)
{
// check if player is fakedeath
if ((target != null) && target.isPlayer())
// Check if player is fakedeath.
if ((target != null) && target.isPlayer() && Config.FAKE_DEATH_DAMAGE_STAND)
{
final PlayerInstance target2 = (PlayerInstance) target; // convert object to chara
final PlayerInstance target2 = (PlayerInstance) target; // Convert object to player.
if (target2.isFakeDeath())
{
target2.stopFakeDeath(true);

View File

@ -2288,6 +2288,18 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
stopMove(null);
getAI().notifyEvent(CtrlEvent.EVT_FAKE_DEATH);
broadcastPacket(new ChangeWaitType(this, ChangeWaitType.WT_START_FAKEDEATH));
// Remove target from those that have the untargetable creature on target.
if (Config.FAKE_DEATH_UNTARGET)
{
World.getInstance().forEachVisibleObject(this, Creature.class, c ->
{
if (c.getTarget() == this)
{
c.setTarget(null);
}
});
}
}
public final void startParalyze()

View File

@ -140,6 +140,12 @@ EffectTickRatio = 666
# This option will enable alter skills (chain skills)
EnableAlterSkills = True
# Untarget player when uses fake death.
FakeDeathUntarget = True
# Stand when fake death is active and taking damage.
FakeDeathDamageStand = False
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -61,7 +62,7 @@ public final class DeathLink extends AbstractEffect
final boolean sps = skill.useSpiritShot() && effector.isChargedShot(ShotType.SPIRITSHOTS);
final boolean bss = skill.useSpiritShot() && effector.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -62,7 +63,7 @@ public final class MagicalAbnormalDispelAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -63,7 +64,7 @@ public final class MagicalAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -58,7 +59,7 @@ public final class MagicalAttackByAbnormal extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -20,6 +20,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -78,7 +79,7 @@ public final class MagicalAttackByAbnormalSlot extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -55,7 +56,7 @@ public final class MagicalAttackRange extends AbstractEffect
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -60,7 +61,7 @@ public final class MagicalSoulAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -20,6 +20,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -102,7 +103,7 @@ public final class PhysicalAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -75,7 +76,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -19,6 +19,7 @@ package handlers.effecthandlers;
import java.util.HashMap;
import java.util.Map;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -90,7 +91,7 @@ public final class PhysicalAttackWeaponBonus extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -80,7 +81,7 @@ public final class PhysicalSoulAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -185,6 +185,8 @@ public final class Config
public static boolean SUMMON_STORE_SKILL_COOLTIME;
public static long EFFECT_TICK_RATIO;
public static boolean ENABLE_ALTER_SKILLS;
public static boolean FAKE_DEATH_UNTARGET;
public static boolean FAKE_DEATH_DAMAGE_STAND;
public static boolean LIFE_CRYSTAL_NEEDED;
public static boolean DIVINE_SP_BOOK_NEEDED;
public static boolean ALT_GAME_SUBCLASS_WITHOUT_QUESTS;
@ -1527,6 +1529,8 @@ public final class Config
SUMMON_STORE_SKILL_COOLTIME = Character.getBoolean("SummonStoreSkillCooltime", true);
EFFECT_TICK_RATIO = Character.getLong("EffectTickRatio", 666);
ENABLE_ALTER_SKILLS = Character.getBoolean("EnableAlterSkills", true);
FAKE_DEATH_UNTARGET = Character.getBoolean("FakeDeathUntarget", true);
FAKE_DEATH_DAMAGE_STAND = Character.getBoolean("FakeDeathDamageStand", false);
LIFE_CRYSTAL_NEEDED = Character.getBoolean("LifeCrystalNeeded", true);
DIVINE_SP_BOOK_NEEDED = Character.getBoolean("DivineInspirationSpBookNeeded", true);
ALT_GAME_SUBCLASS_WITHOUT_QUESTS = Character.getBoolean("AltSubClassWithoutQuests", false);

View File

@ -31,6 +31,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import java.util.logging.Logger;
import org.l2jmobius.Config;
import org.l2jmobius.commons.concurrent.ThreadPool;
import org.l2jmobius.gameserver.enums.ItemLocation;
import org.l2jmobius.gameserver.geoengine.GeoEngine;
@ -1046,7 +1047,7 @@ public class CreatureAI extends AbstractAI
if ((target == null) || target.isAlikeDead())
{
// check if player is fakedeath
if ((target != null) && target.isPlayer() && ((PlayerInstance) target).isFakeDeath())
if ((target != null) && target.isPlayer() && ((PlayerInstance) target).isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
target.stopFakeDeath(true);
return false;
@ -1076,11 +1077,10 @@ public class CreatureAI extends AbstractAI
*/
protected boolean checkTargetLost(WorldObject target)
{
// check if player is fakedeath
if ((target != null) && target.isPlayer())
// Check if player is fakedeath.
if ((target != null) && target.isPlayer() && Config.FAKE_DEATH_DAMAGE_STAND)
{
final PlayerInstance target2 = (PlayerInstance) target; // convert object to chara
final PlayerInstance target2 = (PlayerInstance) target; // Convert object to player.
if (target2.isFakeDeath())
{
target2.stopFakeDeath(true);

View File

@ -2288,6 +2288,18 @@ public abstract class Creature extends WorldObject implements ISkillsHolder, IDe
stopMove(null);
getAI().notifyEvent(CtrlEvent.EVT_FAKE_DEATH);
broadcastPacket(new ChangeWaitType(this, ChangeWaitType.WT_START_FAKEDEATH));
// Remove target from those that have the untargetable creature on target.
if (Config.FAKE_DEATH_UNTARGET)
{
World.getInstance().forEachVisibleObject(this, Creature.class, c ->
{
if (c.getTarget() == this)
{
c.setTarget(null);
}
});
}
}
public final void startParalyze()

View File

@ -144,6 +144,12 @@ EffectTickRatio = 666
# This option will enable alter skills (chain skills)
EnableAlterSkills = True
# Untarget player when uses fake death.
FakeDeathUntarget = True
# Stand when fake death is active and taking damage.
FakeDeathDamageStand = False
# ---------------------------------------------------------------------------
# Class, Sub-class and skill learning options

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -61,7 +62,7 @@ public final class DeathLink extends AbstractEffect
final boolean sps = skill.useSpiritShot() && effector.isChargedShot(ShotType.SPIRITSHOTS);
final boolean bss = skill.useSpiritShot() && effector.isChargedShot(ShotType.BLESSED_SPIRITSHOTS);
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -62,7 +63,7 @@ public final class MagicalAbnormalDispelAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -63,7 +64,7 @@ public final class MagicalAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -58,7 +59,7 @@ public final class MagicalAttackByAbnormal extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -20,6 +20,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -78,7 +79,7 @@ public final class MagicalAttackByAbnormalSlot extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -55,7 +56,7 @@ public final class MagicalAttackRange extends AbstractEffect
@Override
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
{
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Creature;
@ -60,7 +61,7 @@ public final class MagicalSoulAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -20,6 +20,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -102,7 +103,7 @@ public final class PhysicalAttack extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

View File

@ -16,6 +16,7 @@
*/
package handlers.effecthandlers;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ShotType;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.Attackable;
@ -75,7 +76,7 @@ public final class PhysicalAttackSaveHp extends AbstractEffect
return;
}
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath())
if (effected.isPlayer() && effected.getActingPlayer().isFakeDeath() && Config.FAKE_DEATH_DAMAGE_STAND)
{
effected.stopFakeDeath(true);
}

Some files were not shown because too many files have changed in this diff Show More