diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/SignetMDam.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/SignetMDam.java index 236448d44c374e269917120a9c7fe7bd0517e5ec..78b0f633cce52a9c1c11ca260cfcd619fd2242e1 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/SignetMDam.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/SignetMDam.java @@ -18,7 +18,8 @@ */ package handlers.effecthandlers; -import javolution.util.FastList; +import java.util.ArrayList; +import java.util.List; import com.l2jserver.gameserver.ai.CtrlEvent; import com.l2jserver.gameserver.datatables.NpcTable; @@ -59,22 +60,25 @@ public class SignetMDam extends L2Effect { L2NpcTemplate template; if (getSkill() instanceof L2SkillSignetCasttime) + { template = NpcTable.getInstance().getTemplate(getSkill().getNpcId()); + } else + { return false; + } - L2EffectPointInstance effectPoint = new L2EffectPointInstance(IdFactory.getInstance().getNextId(), template, getEffector()); + final L2EffectPointInstance effectPoint = new L2EffectPointInstance(IdFactory.getInstance().getNextId(), template, getEffector()); effectPoint.setCurrentHp(effectPoint.getMaxHp()); effectPoint.setCurrentMp(effectPoint.getMaxMp()); - //L2World.getInstance().storeObject(effectPoint); int x = getEffector().getX(); int y = getEffector().getY(); int z = getEffector().getZ(); - if (getEffector().isPlayer() && getSkill().getTargetType() == L2TargetType.TARGET_GROUND) + if (getEffector().isPlayer() && (getSkill().getTargetType() == L2TargetType.TARGET_GROUND)) { - Point3D wordPosition = getEffector().getActingPlayer().getCurrentSkillWorldPosition(); + final Point3D wordPosition = getEffector().getActingPlayer().getCurrentSkillWorldPosition(); if (wordPosition != null) { @@ -94,26 +98,34 @@ public class SignetMDam extends L2Effect @Override public boolean onActionTime() { - if (getCount() >= getTotalCount() - 2) + if (getCount() >= (getTotalCount() - 2)) + { return true; // do nothing first 2 times + } int mpConsume = getSkill().getMpConsume(); - L2PcInstance activeChar = getEffector().getActingPlayer(); + final L2PcInstance activeChar = getEffector().getActingPlayer(); - boolean sps = getSkill().isMagic() && getEffector().isChargedShot(ShotType.SPIRITSHOTS); - boolean bss = getSkill().isMagic() && getEffector().isChargedShot(ShotType.BLESSED_SPIRITSHOTS); - - FastList<L2Character> targets = new FastList<>(); + activeChar.rechargeShots(getSkill().useSoulShot(), getSkill().useSpiritShot()); + + boolean sps = getSkill().useSpiritShot() && getEffector().isChargedShot(ShotType.SPIRITSHOTS); + boolean bss = getSkill().useSpiritShot() && getEffector().isChargedShot(ShotType.BLESSED_SPIRITSHOTS); + + List<L2Character> targets = new ArrayList<>(); for (L2Character cha : _actor.getKnownList().getKnownCharactersInRadius(getSkill().getSkillRadius())) { - if (cha == null || cha == activeChar) + if ((cha == null) || (cha == activeChar)) + { continue; + } if (cha.isL2Attackable() || cha.isPlayable()) { if (cha.isAlikeDead()) + { continue; + } if (mpConsume > activeChar.getCurrentMp()) { @@ -131,7 +143,9 @@ public class SignetMDam extends L2Effect } } else + { targets.add(cha); + } } } @@ -140,17 +154,18 @@ public class SignetMDam extends L2Effect activeChar.broadcastPacket(new MagicSkillLaunched(activeChar, getSkill().getId(), getSkill().getLevel(), targets.toArray(new L2Character[targets.size()]))); for (L2Character target : targets) { - boolean mcrit = Formulas.calcMCrit(activeChar.getMCriticalHit(target, getSkill())); - byte shld = Formulas.calcShldUse(activeChar, target, getSkill()); - int mdam = (int) Formulas.calcMagicDam(activeChar, target, getSkill(), shld, sps, bss, mcrit); + final boolean mcrit = Formulas.calcMCrit(activeChar.getMCriticalHit(target, getSkill())); + final byte shld = Formulas.calcShldUse(activeChar, target, getSkill()); + final int mdam = (int) Formulas.calcMagicDam(activeChar, target, getSkill(), shld, sps, bss, mcrit); if (target.isSummon()) + { target.broadcastStatusUpdate(); + } if (mdam > 0) { - if (!target.isRaid() - && Formulas.calcAtkBreak(target, mdam)) + if (!target.isRaid() && Formulas.calcAtkBreak(target, mdam)) { target.breakAttack(); target.breakCast(); @@ -169,6 +184,8 @@ public class SignetMDam extends L2Effect public void onExit() { if (_actor != null) + { _actor.deleteMe(); + } } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Blow.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Blow.java index d9de9aafcd0c0b309bcbf4213f2c9172dc98e326..906720391ffbd0487194613417fdeebd237f0d2a 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Blow.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Blow.java @@ -52,9 +52,9 @@ public class Blow implements ISkillHandler if (activeChar.isAlikeDead()) return; - boolean ss = skill.isPhysical() && activeChar.isChargedShot(ShotType.SOULSHOTS); - boolean sps = skill.isMagic() && activeChar.isChargedShot(ShotType.SPIRITSHOTS); - boolean bss = skill.isMagic() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS); + boolean ss = skill.useSoulShot() && activeChar.isChargedShot(ShotType.SOULSHOTS); + boolean sps = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.SPIRITSHOTS); + boolean bss = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS); for (L2Character target: (L2Character[]) targets) { diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Continuous.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Continuous.java index 2ff9f95eea3f56b263d673f2da79e4f5c4b3d809..297bda0c9f06ede45808272b86384648a90914d8 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Continuous.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Continuous.java @@ -72,7 +72,7 @@ public class Continuous implements ISkillHandler skill = sk; } - boolean ss = skill.isPhysical() && activeChar.isChargedShot(ShotType.SOULSHOTS); + boolean ss = skill.useSoulShot() && activeChar.isChargedShot(ShotType.SOULSHOTS); boolean sps = skill.isMagic() && activeChar.isChargedShot(ShotType.SPIRITSHOTS); boolean bss = skill.isMagic() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS); diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/CpDam.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/CpDam.java index bd8407895044c0e12cf1fe51eef7be990a2c4b12..5827b8e6e3b16af1119b37fc2b2f75f215fbc5b5 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/CpDam.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/CpDam.java @@ -38,9 +38,9 @@ public class CpDam implements ISkillHandler return; } - boolean ss = skill.isPhysical() && activeChar.isChargedShot(ShotType.SOULSHOTS); - boolean sps = skill.isMagic() && activeChar.isChargedShot(ShotType.SPIRITSHOTS); - boolean bss = skill.isMagic() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS); + boolean ss = skill.useSoulShot() && activeChar.isChargedShot(ShotType.SOULSHOTS); + boolean sps = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.SPIRITSHOTS); + boolean bss = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS); for (L2Character target : (L2Character[]) targets) { diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/CpDamPercent.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/CpDamPercent.java index 07d862b8a03a157dfef16746eb5b613774de8043..2a7ed80302e5eae19f376d520cd6c580e648f223 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/CpDamPercent.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/CpDamPercent.java @@ -36,9 +36,9 @@ public class CpDamPercent implements ISkillHandler if (activeChar.isAlikeDead()) return; - boolean ss = skill.isPhysical() && activeChar.isChargedShot(ShotType.SOULSHOTS); - boolean sps = skill.isMagic() && activeChar.isChargedShot(ShotType.SPIRITSHOTS); - boolean bss = skill.isMagic() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS); + boolean ss = skill.useSoulShot() && activeChar.isChargedShot(ShotType.SOULSHOTS); + boolean sps = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.SPIRITSHOTS); + boolean bss = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS); for (L2Character target: (L2Character[]) targets) { diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Disablers.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Disablers.java index e956c9cd9d34d81b16cb8c7bd09de51faad37426..d82c5a2be9d0f0c35f4a91a121267e727c119f25 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Disablers.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Disablers.java @@ -75,9 +75,9 @@ public class Disablers implements ISkillHandler L2SkillType type = skill.getSkillType(); byte shld = 0; - boolean ss = skill.isPhysical() && activeChar.isChargedShot(ShotType.SOULSHOTS); - boolean sps = skill.isMagic() && activeChar.isChargedShot(ShotType.SPIRITSHOTS); - boolean bss = skill.isMagic() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS); + boolean ss = skill.useSoulShot() && activeChar.isChargedShot(ShotType.SOULSHOTS); + boolean sps = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.SPIRITSHOTS); + boolean bss = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS); for (L2Object obj: targets) { diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Manadam.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Manadam.java index 08f8cb5f8c37d8fe7a910ae4559edd1c80103e59..12ed7907ef5cde59d28d392d07a44aff38d2bbab 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Manadam.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Manadam.java @@ -46,9 +46,9 @@ public class Manadam implements ISkillHandler return; } - boolean ss = skill.isPhysical() && activeChar.isChargedShot(ShotType.SOULSHOTS); - boolean sps = skill.isMagic() && activeChar.isChargedShot(ShotType.SPIRITSHOTS); - boolean bss = skill.isMagic() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS); + boolean ss = skill.useSoulShot() && activeChar.isChargedShot(ShotType.SOULSHOTS); + boolean sps = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.SPIRITSHOTS); + boolean bss = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS); for (L2Character target : (L2Character[]) targets) { diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Mdam.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Mdam.java index b66f5d0c1b04fbe1b0f00b08a2c1a9735d776abf..26024965cd5ed2e3726e3cac549b7017c7efdb70 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Mdam.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Mdam.java @@ -50,9 +50,9 @@ public class Mdam implements ISkillHandler return; } - boolean ss = skill.isPhysical() && activeChar.isChargedShot(ShotType.SOULSHOTS); - boolean sps = skill.isMagic() && activeChar.isChargedShot(ShotType.SPIRITSHOTS); - boolean bss = skill.isMagic() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS); + boolean ss = skill.useSoulShot() && activeChar.isChargedShot(ShotType.SOULSHOTS); + boolean sps = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.SPIRITSHOTS); + boolean bss = skill.useSpiritShot() && activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS); for (L2Character target : (L2Character[]) targets) { diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Pdam.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Pdam.java index cfed320d83d6a7bf2eac20cff394ebe1451d7217..6ef30eacc7ec999af105100cbaee123c7f74a597 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Pdam.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/Pdam.java @@ -35,7 +35,6 @@ import com.l2jserver.gameserver.network.serverpackets.SystemMessage; public class Pdam implements ISkillHandler { - private static final Logger _log = Logger.getLogger(Pdam.class.getName()); private static final Logger _logDamage = Logger.getLogger("damage"); private static final L2SkillType[] SKILL_IDS = @@ -59,12 +58,7 @@ public class Pdam implements ISkillHandler int damage = 0; - if (Config.DEBUG) - { - _log.fine("Begin Skill processing in Pdam.java " + skill.getSkillType()); - } - - boolean ss = skill.isPhysical() && activeChar.isChargedShot(ShotType.SOULSHOTS); + boolean ss = skill.useSoulShot() && activeChar.isChargedShot(ShotType.SOULSHOTS); for (L2Character target: (L2Character[]) targets) { diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/StrSiegeAssault.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/StrSiegeAssault.java index a8748a5dae011f286a99976808a16f543692bd22..7034129b3cbd0cecb81954448b063b5882665247 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/StrSiegeAssault.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/StrSiegeAssault.java @@ -72,7 +72,7 @@ public class StrSiegeAssault implements ISkillHandler { // damage calculation int damage = 0; - boolean ss = skill.isPhysical() && activeChar.isChargedShot(ShotType.SOULSHOTS); + boolean ss = skill.useSoulShot() && activeChar.isChargedShot(ShotType.SOULSHOTS); for (L2Character target: (L2Character[]) targets) {