Addition of configurations for fake death target.
This commit is contained in:
parent
1014855f61
commit
223da2f310
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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()
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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()
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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()
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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()
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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()
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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()
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user