From 8172ae64ab4e99300ad4a2209e0adcfae4176887 Mon Sep 17 00:00:00 2001 From: Zoey76 <zoey_76@msn.com> Date: Fri, 14 Sep 2012 03:57:47 +0000 Subject: [PATCH] BETA: Runes implementation: * Implemented skills * Rune of Experience Points(22039). * Rune of SP(22040). * Rune of Crystal Form Level(22041). * Rune of Crystal Form(26048). * Rune of Experience Points(26046). * Rune of SP(26047). * Rune of Crystal Form(26048). * Implemented Effect CrystalGradeModify. --- .../scripts/handlers/EffectMasterHandler.java | 2 + .../effecthandlers/CrystalGradeModify.java | 67 +++++++++++++++++++ .../game/data/stats/skills/22000-22099.xml | 30 +++++++-- .../game/data/stats/skills/26000-26099.xml | 30 +++++++-- 4 files changed, 117 insertions(+), 12 deletions(-) create mode 100644 L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CrystalGradeModify.java diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java index cd162fde4e..f6b9bb269c 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -34,6 +34,7 @@ import handlers.effecthandlers.CpDamPercent; import handlers.effecthandlers.CpHeal; import handlers.effecthandlers.CpHealOverTime; import handlers.effecthandlers.CpHealPercent; +import handlers.effecthandlers.CrystalGradeModify; import handlers.effecthandlers.DamOverTime; import handlers.effecthandlers.Debuff; import handlers.effecthandlers.Disarm; @@ -124,6 +125,7 @@ public final class EffectMasterHandler CpHeal.class, CpHealOverTime.class, CpHealPercent.class, + CrystalGradeModify.class, CpDamPercent.class, DamOverTime.class, Debuff.class, diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CrystalGradeModify.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CrystalGradeModify.java new file mode 100644 index 0000000000..73dbf4975e --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CrystalGradeModify.java @@ -0,0 +1,67 @@ +/* + * This program 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. + * + * This program 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.effecthandlers; + +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; +import com.l2jserver.gameserver.model.effects.EffectTemplate; +import com.l2jserver.gameserver.model.effects.L2Effect; +import com.l2jserver.gameserver.model.effects.L2EffectType; +import com.l2jserver.gameserver.model.stats.Env; + +/** + * Crystal Grade Modify effect implementation. + * @author Zoey76 + */ +public class CrystalGradeModify extends L2Effect +{ + public CrystalGradeModify(Env env, EffectTemplate template) + { + super(env, template); + } + + @Override + public L2EffectType getEffectType() + { + return L2EffectType.BUFF; + } + + @Override + public boolean onStart() + { + final L2PcInstance player = getEffected().getActingPlayer(); + if (player != null) + { + player.setExpertisePenaltyBonus((int) calc()); + return true; + } + return false; + } + + @Override + public void onExit() + { + final L2PcInstance player = getEffected().getActingPlayer(); + if (player != null) + { + player.setExpertisePenaltyBonus(0); + } + } + + @Override + public boolean onActionTime() + { + return false; + } +} \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/22000-22099.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/22000-22099.xml index 6b28225577..5d2cabb4e8 100644 --- a/L2J_DataPack_BETA/dist/game/data/stats/skills/22000-22099.xml +++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/22000-22099.xml @@ -629,19 +629,37 @@ <set name="operateType" val="A1" /> </skill> <skill id="22039" levels="2" name="Rune of Experience Points"> - <set name="target" val="TARGET_NONE" /> - <set name="skillType" val="NOTDONE" /> + <!-- Confirmed CT2.5 --> + <table name="#bonusExp"> 30 50 </table> + <set name="magicLvl" val="1" /> <set name="operateType" val="P" /> + <set name="skillType" val="BUFF" /> + <set name="target" val="TARGET_SELF" /> + <for> + <add order="0x40" stat="bonusExp" val="#bonusExp" /> + </for> </skill> <skill id="22040" levels="2" name="Rune of SP"> - <set name="target" val="TARGET_NONE" /> - <set name="skillType" val="NOTDONE" /> + <!-- Confirmed CT2.5 --> + <table name="#bonusSp"> 30 50 </table> + <set name="magicLvl" val="1" /> <set name="operateType" val="P" /> + <set name="skillType" val="BUFF" /> + <set name="target" val="TARGET_SELF" /> + <for> + <add order="0x40" stat="bonusSp" val="#bonusSp" /> + </for> </skill> <skill id="22041" levels="2" name="Rune of Crystal Form Level"> - <set name="target" val="TARGET_NONE" /> - <set name="skillType" val="NOTDONE" /> + <!-- Confirmed CT2.5 --> + <table name="#bonus"> 3 5 </table> + <set name="magicLvl" val="1" /> <set name="operateType" val="P" /> + <set name="skillType" val="BUFF" /> + <set name="target" val="TARGET_SELF" /> + <for> + <effect name="CrystalGradeModify" abnormalTime="-1" val="#bonus" /> + </for> </skill> <skill id="22042" levels="1" name="High Grade Potion of Will"> <set name="isMagic" val="2" /> <!-- Static Skill --> diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/26000-26099.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/26000-26099.xml index 58565c4b89..29d5a7c6a7 100644 --- a/L2J_DataPack_BETA/dist/game/data/stats/skills/26000-26099.xml +++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/26000-26099.xml @@ -566,19 +566,37 @@ </for> </skill> <skill id="26046" levels="5" name="Rune of Experience Points"> - <set name="target" val="TARGET_NONE" /> - <set name="skillType" val="NOTDONE" /> + <!-- Confirmed CT2.5 --> + <table name="#bonusExp"> 10 20 30 40 50 </table> + <set name="magicLvl" val="1" /> <set name="operateType" val="P" /> + <set name="skillType" val="BUFF" /> + <set name="target" val="TARGET_SELF" /> + <for> + <add order="0x40" stat="bonusExp" val="#bonusExp" /> + </for> </skill> <skill id="26047" levels="5" name="Rune of SP"> - <set name="target" val="TARGET_NONE" /> - <set name="skillType" val="NOTDONE" /> + <!-- Confirmed CT2.5 --> + <table name="#bonusSp"> 10 20 30 40 50 </table> + <set name="magicLvl" val="1" /> <set name="operateType" val="P" /> + <set name="skillType" val="BUFF" /> + <set name="target" val="TARGET_SELF" /> + <for> + <add order="0x40" stat="bonusSp" val="#bonusSp" /> + </for> </skill> <skill id="26048" levels="5" name="Rune of Crystal Form"> - <set name="target" val="TARGET_NONE" /> - <set name="skillType" val="NOTDONE" /> + <!-- Confirmed CT2.5 --> + <table name="#bonus"> 1 2 3 4 5 </table> + <set name="magicLvl" val="1" /> <set name="operateType" val="P" /> + <set name="skillType" val="BUFF" /> + <set name="target" val="TARGET_SELF" /> + <for> + <effect name="CrystalGradeModify" abnormalTime="-1" val="#bonus" /> + </for> </skill> <skill id="26049" levels="1" name="Rune of Feather"> <set name="target" val="TARGET_NONE" /> -- GitLab