diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java index 45e1753c4218dbd78cf573aa37be5f70c2563538..d32d9f24106751df7b66440841d3fcc647f3edea 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java @@ -226,7 +226,6 @@ import handlers.skillhandlers.GiveVitality; import handlers.skillhandlers.Heal; import handlers.skillhandlers.HealPercent; import handlers.skillhandlers.InstantJump; -import handlers.skillhandlers.ManaHealByLevel; import handlers.skillhandlers.Manadam; import handlers.skillhandlers.Mdam; import handlers.skillhandlers.NornilsPower; @@ -560,7 +559,6 @@ public class MasterHandler Dummy.class, RefuelAirShip.class, NornilsPower.class, - ManaHealByLevel.class, }, { // User Command Handlers diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHealByLevel.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHealByLevel.java index f057fdb2fcf5b21b3c7b36359af2e4045f2efc71..ea86199299ae62aa080db65b750e37cd8c9d4b0f 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHealByLevel.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHealByLevel.java @@ -48,13 +48,12 @@ public class ManaHealByLevel extends L2Effect public boolean onStart() { L2Character target = getEffected(); - if ((target == null) || target.isDead() || target.isDoor()) + if ((target == null) || target.isDead() || target.isDoor() || target.isInvul()) { return false; } StatusUpdate su = new StatusUpdate(target); - double amount = calc(); // recharged mp influenced by difference between target level and skill level @@ -125,7 +124,6 @@ public class ManaHealByLevel extends L2Effect target.sendPacket(sm); su.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp()); target.sendPacket(su); - return true; } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/ManaHealByLevel.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/ManaHealByLevel.java deleted file mode 100644 index 7251f58c01a3ce94bda211ae8ce6e6007baf30b8..0000000000000000000000000000000000000000 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/skillhandlers/ManaHealByLevel.java +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Copyright (C) 2004-2013 L2J DataPack - * - * This file is part of L2J DataPack. - * - * L2J DataPack is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * L2J DataPack is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ -package handlers.skillhandlers; - -import com.l2jserver.gameserver.handler.ISkillHandler; -import com.l2jserver.gameserver.model.L2Object; -import com.l2jserver.gameserver.model.ShotType; -import com.l2jserver.gameserver.model.actor.L2Character; -import com.l2jserver.gameserver.model.effects.L2Effect; -import com.l2jserver.gameserver.model.skills.L2Skill; -import com.l2jserver.gameserver.model.skills.L2SkillType; -import com.l2jserver.gameserver.model.stats.Stats; -import com.l2jserver.gameserver.network.SystemMessageId; -import com.l2jserver.gameserver.network.serverpackets.StatusUpdate; -import com.l2jserver.gameserver.network.serverpackets.SystemMessage; - -/** - * @version $Revision: 1.1.2.2.2.1 $ $Date: 2005/03/02 15:38:36 $ - */ -public class ManaHealByLevel implements ISkillHandler -{ - private static final L2SkillType[] SKILL_IDS = - { - L2SkillType.MANAHEAL_BY_LEVEL - }; - - @Override - public void useSkill(L2Character activeChar, L2Skill skill, L2Object[] targets) - { - for (L2Character target : (L2Character[]) targets) - { - if (target.isInvul()) - { - continue; - } - - double mp = skill.getPower(); - - // recharged mp influenced by difference between target level and skill level - // if target is within 5 levels or lower then skill level there's no penalty. - mp = target.calcStat(Stats.RECHARGE_MP_RATE, mp, null, null); - if (target.getLevel() > skill.getMagicLevel()) - { - int lvlDiff = target.getLevel() - skill.getMagicLevel(); - // if target is too high compared to skill level, the amount of recharged mp gradually decreases. - if (lvlDiff == 6) - { - mp *= 0.9; // only 90% effective - } - else if (lvlDiff == 7) - { - mp *= 0.8; // 80% - } - else if (lvlDiff == 8) - { - mp *= 0.7; // 70% - } - else if (lvlDiff == 9) - { - mp *= 0.6; // 60% - } - else if (lvlDiff == 10) - { - mp *= 0.5; // 50% - } - else if (lvlDiff == 11) - { - mp *= 0.4; // 40% - } - else if (lvlDiff == 12) - { - mp *= 0.3; // 30% - } - else if (lvlDiff == 13) - { - mp *= 0.2; // 20% - } - else if (lvlDiff == 14) - { - mp *= 0.1; // 10% - } - else if (lvlDiff >= 15) - { - mp = 0; // 0mp recharged - } - } - - // from CT2 u will receive exact MP, u can't go over it, if u have full MP and u get MP buff, u will receive 0MP restored message - mp = Math.min(mp, target.getMaxRecoverableMp() - target.getCurrentMp()); - - // Prevent negative amounts - if (mp < 0) - { - mp = 0; - } - - target.setCurrentMp(mp + target.getCurrentMp()); - StatusUpdate sump = new StatusUpdate(target); - sump.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp()); - target.sendPacket(sump); - - SystemMessage sm; - // if skill power is "0 or less" don't show heal system message. - if (skill.getPower() > 0) - { - if (activeChar.isPlayer() && (activeChar != target)) - { - sm = SystemMessage.getSystemMessage(SystemMessageId.S2_MP_RESTORED_BY_C1); - sm.addCharName(activeChar); - } - else - { - sm = SystemMessage.getSystemMessage(SystemMessageId.S1_MP_RESTORED); - } - sm.addNumber((int) mp); - target.sendPacket(sm); - } - - if (skill.hasEffects()) - { - target.stopSkillEffects(skill.getId()); - skill.getEffects(activeChar, target); - sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT); - sm.addSkillName(skill); - target.sendPacket(sm); - } - } - - if (skill.hasSelfEffects()) - { - L2Effect effect = activeChar.getFirstEffect(skill.getId()); - if ((effect != null) && effect.isSelfEffect()) - { - // Replace old effect with new one. - effect.exit(); - } - // cast self effect if any - skill.getEffectsSelf(activeChar); - } - - activeChar.setChargedShot(activeChar.isChargedShot(ShotType.BLESSED_SPIRITSHOTS) ? ShotType.BLESSED_SPIRITSHOTS : ShotType.SPIRITSHOTS, false); - } - - @Override - public L2SkillType[] getSkillIds() - { - return SKILL_IDS; - } -} diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/One.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/One.java index 3d97e2779a752f80debc7e172bb3c560b3f3d805..d2e6423d48180978fdc63b4e4d392b21121c5bac 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/One.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/targethandlers/One.java @@ -40,14 +40,12 @@ public class One implements ITargetTypeHandler { case BUFF: case HEAL: - case HEAL_PERCENT: - case MANAHEAL_BY_LEVEL: case DUMMY: canTargetSelf = true; break; default: { - canTargetSelf = skill.hasEffectType(L2EffectType.CANCEL_DEBUFF, L2EffectType.NEGATE, L2EffectType.CPHEAL); + canTargetSelf = skill.hasEffectType(L2EffectType.CANCEL_DEBUFF, L2EffectType.NEGATE, L2EffectType.CPHEAL, L2EffectType.HEAL_PERCENT, L2EffectType.MANAHEAL_BY_LEVEL); break; } } diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/01000-01099.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/01000-01099.xml index f41db48e8b479dfc5e448c87ca514c37ce0e408a..b7007f28136061ab28cf34cafad50b240371f6f4 100644 --- a/L2J_DataPack_BETA/dist/game/data/stats/skills/01000-01099.xml +++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/01000-01099.xml @@ -449,7 +449,6 @@ <set name="mpInitialConsume" val="#mpInitialConsume" /> <set name="operateType" val="A1" /> <set name="reuseDelay" val="3000" /> - <set name="skillType" val="MANAHEAL_BY_LEVEL" /> <set name="targetType" val="ONE" /> <enchant1 name="magicLvl" val="#enchMagicLvl" /> <enchant2 name="magicLvl" val="#enchMagicLvl" /> diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/01100-01199.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/01100-01199.xml index 390f62523971e147ddf0fc749828ec4503cb869d..89daec005c37535d0b02cad35fac16058401b2d9 100644 --- a/L2J_DataPack_BETA/dist/game/data/stats/skills/01100-01199.xml +++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/01100-01199.xml @@ -279,7 +279,6 @@ <set name="mpInitialConsume" val="#mpInitialConsume" /> <set name="operateType" val="A1" /> <set name="reuseDelay" val="3000" /> - <set name="skillType" val="MANAHEAL_BY_LEVEL" /> <set name="targetType" val="PET" /> <enchant1 name="magicLvl" val="#enchMagicLvl" /> <enchant2 name="magicLvl" val="#enchMagicLvl" /> diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/03100-03199.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/03100-03199.xml index f67ed8dbea143e3fdefa5670041a591629db5e96..9c307d4ac6fc126f3b53018b29809fced6ae46f8 100644 --- a/L2J_DataPack_BETA/dist/game/data/stats/skills/03100-03199.xml +++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/03100-03199.xml @@ -534,7 +534,6 @@ <set name="mpInitialConsume" val="#mpInitialConsume" /> <set name="operateType" val="A1" /> <set name="reuseDelay" val="30000" /> - <set name="skillType" val="MANAHEAL_BY_LEVEL" /> <set name="targetType" val="ONE" /> <for> <effect name="ManaHealByLevel" noicon="1" val="#amount" /> diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/04000-04099.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/04000-04099.xml index 711c218d998049473017eda9b4fe904fa17fdadc..ef548734954951c365c24be6ff14dc85dfe50f84 100644 --- a/L2J_DataPack_BETA/dist/game/data/stats/skills/04000-04099.xml +++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/04000-04099.xml @@ -286,7 +286,6 @@ <set name="mpConsume" val="#mpConsume" /> <set name="operateType" val="A1" /> <set name="reuseDelay" val="8000" /> - <set name="skillType" val="MANAHEAL_BY_LEVEL" /> <set name="targetType" val="ONE" /> <for> <effect name="ManaHealByLevel" noicon="1" val="#amount" /> diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/05200-05299.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/05200-05299.xml index f32a8a297da6b6eb7f0e24515f25b143edb7a26c..234fe19d3c947eaf7978be220fef8404c2b54dee 100644 --- a/L2J_DataPack_BETA/dist/game/data/stats/skills/05200-05299.xml +++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/05200-05299.xml @@ -16,10 +16,11 @@ <set name="mpConsume" val="#mpConsume" /> <set name="mpInitialConsume" val="#mpInitialConsume" /> <set name="operateType" val="A1" /> - <set name="power" val="#amount" /> <set name="reuseDelay" val="12000" /> - <set name="skillType" val="MANAHEAL_BY_LEVEL" /> <set name="targetType" val="OWNER_PET" /> + <for> + <effect name="ManaHealByLevel" noicon="1" val="#amount" /> + </for> </skill> <skill id="5201" levels="6" name="Pet Concentration"> <!-- CT2.5 retail confirmed --> diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/06700-06799.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/06700-06799.xml index 6b81e746a5f58840f2c7c2701898d95f6ecb2032..a8a7bd9ff7093789620f7b0da7caa0ae7f0eb487 100644 --- a/L2J_DataPack_BETA/dist/game/data/stats/skills/06700-06799.xml +++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/06700-06799.xml @@ -320,8 +320,8 @@ <set name="effectRange" val="900" /> <set name="hitTime" val="6000" /> <set name="isMagic" val="1" /> <!-- Magic Skill --> + <set name="magicLvl" val="80" /> <set name="operateType" val="A1" /> - <set name="skillType" val="MANAHEAL_BY_LEVEL" /> <set name="targetType" val="ONE" /> <for> <effect name="ManaHealByLevel" noicon="1" val="136" />