From 12b76e722e02c969f2d4e149cf5093a037dbe375 Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sun, 12 Jul 2015 21:19:09 +0000 Subject: [PATCH] -Implemented some Jewel Boxes. -Added SummonDebuff effect for Golden Lion & Lumi summons (apply on summoner when summon). -Added stat hpRestoreOnKill - restoring n% hp when kill a enemy (mob or player) - example: Berserker skill. -Updated id 10000-10279 range skills. -Update TriggerForce effect for Rolling Thunder skill. Contributed by NviX. --- trunk/.settings/org.eclipse.jdt.core.prefs | 1 + .../scripts/handlers/EffectMasterHandler.java | 5 +- .../effecthandlers/FocusMaxEnergy.java | 3 +- .../handlers/effecthandlers/Summon.java | 7 + .../handlers/effecthandlers/SummonDebuff.java | 69 ++ .../handlers/effecthandlers/TriggerForce.java | 19 +- .../game/data/stats/items/38900-38999.xml | 66 +- .../game/data/stats/skills/10000-10099.xml | 911 ++++++++++++------ .../game/data/stats/skills/10100-10199.xml | 62 +- .../game/data/stats/skills/10200-10299.xml | 573 ++++++----- .../game/data/stats/skills/17800-17899.xml | 15 +- .../game/data/stats/skills/26200-26299.xml | 15 +- trunk/dist/game/data/xsd/skills.xsd | 2 + .../gameserver/model/actor/L2Attackable.java | 11 + .../model/actor/status/PcStatus.java | 12 + .../gameserver/model/stats/Stats.java | 5 +- 16 files changed, 1199 insertions(+), 577 deletions(-) create mode 100644 trunk/dist/game/data/scripts/handlers/effecthandlers/SummonDebuff.java diff --git a/trunk/.settings/org.eclipse.jdt.core.prefs b/trunk/.settings/org.eclipse.jdt.core.prefs index f03159d379..de0a433b36 100644 --- a/trunk/.settings/org.eclipse.jdt.core.prefs +++ b/trunk/.settings/org.eclipse.jdt.core.prefs @@ -406,3 +406,4 @@ org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true +org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter diff --git a/trunk/dist/game/data/scripts/handlers/EffectMasterHandler.java b/trunk/dist/game/data/scripts/handlers/EffectMasterHandler.java index e09bbec1a9..f8bbca9249 100644 --- a/trunk/dist/game/data/scripts/handlers/EffectMasterHandler.java +++ b/trunk/dist/game/data/scripts/handlers/EffectMasterHandler.java @@ -18,14 +18,14 @@ */ package handlers; -import handlers.effecthandlers.*; - import java.util.logging.Level; import java.util.logging.Logger; import com.l2jserver.gameserver.handler.EffectHandler; import com.l2jserver.gameserver.model.effects.AbstractEffect; +import handlers.effecthandlers.*; + /** * Effect Master handler. * @author BiggBoss, Zoey76 @@ -175,6 +175,7 @@ public final class EffectMasterHandler Summon.class, SummonAgathion.class, SummonCubic.class, + SummonDebuff.class, SummonNpc.class, SummonPet.class, SummonTrap.class, diff --git a/trunk/dist/game/data/scripts/handlers/effecthandlers/FocusMaxEnergy.java b/trunk/dist/game/data/scripts/handlers/effecthandlers/FocusMaxEnergy.java index e3476a4ce0..dc6982bebe 100644 --- a/trunk/dist/game/data/scripts/handlers/effecthandlers/FocusMaxEnergy.java +++ b/trunk/dist/game/data/scripts/handlers/effecthandlers/FocusMaxEnergy.java @@ -48,7 +48,8 @@ public final class FocusMaxEnergy extends AbstractEffect { final Skill sonicMastery = info.getEffected().getSkills().get(992); final Skill focusMastery = info.getEffected().getSkills().get(993); - int maxCharge = (sonicMastery != null) ? sonicMastery.getLevel() : (focusMastery != null) ? focusMastery.getLevel() : 0; + final Skill maximumForceMastery = info.getEffected().getSkills().get(10301); + int maxCharge = (sonicMastery != null) ? sonicMastery.getLevel() : (focusMastery != null) ? focusMastery.getLevel() : (maximumForceMastery != null) ? 15 : 0; if (maxCharge != 0) { int count = maxCharge - info.getEffected().getActingPlayer().getCharges(); diff --git a/trunk/dist/game/data/scripts/handlers/effecthandlers/Summon.java b/trunk/dist/game/data/scripts/handlers/effecthandlers/Summon.java index 8fa9bc184e..e631c216c3 100644 --- a/trunk/dist/game/data/scripts/handlers/effecthandlers/Summon.java +++ b/trunk/dist/game/data/scripts/handlers/effecthandlers/Summon.java @@ -28,6 +28,7 @@ import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate; import com.l2jserver.gameserver.model.conditions.Condition; import com.l2jserver.gameserver.model.effects.AbstractEffect; import com.l2jserver.gameserver.model.holders.ItemHolder; +import com.l2jserver.gameserver.model.holders.SkillHolder; import com.l2jserver.gameserver.model.skills.BuffInfo; /** @@ -42,6 +43,7 @@ public final class Summon extends AbstractEffect private final int _lifeTime; private final int _consumeItemInterval; private final int _summonPoints; + private final SkillHolder _debuff; public Summon(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params) { @@ -58,6 +60,7 @@ public final class Summon extends AbstractEffect _consumeItemInterval = params.getInt("consumeItemInterval", 0); _lifeTime = params.getInt("lifeTime", 3600) * 1000; _summonPoints = params.getInt("summonPoints", 0); + _debuff = new SkillHolder(params.getInt("debuffId", 0), 1); } @Override @@ -115,5 +118,9 @@ public final class Summon extends AbstractEffect summon.setShowSummonAnimation(true); summon.setRunning(); summon.spawnMe(); + if (_debuff.getSkillId() != 0) + { + _debuff.getSkill().applyEffects(player, player); + } } } diff --git a/trunk/dist/game/data/scripts/handlers/effecthandlers/SummonDebuff.java b/trunk/dist/game/data/scripts/handlers/effecthandlers/SummonDebuff.java new file mode 100644 index 0000000000..0123c211db --- /dev/null +++ b/trunk/dist/game/data/scripts/handlers/effecthandlers/SummonDebuff.java @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2004-2015 L2J Server + * + * This file is part of L2J Server. + * + * L2J Server 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 Server 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 . + */ +package handlers.effecthandlers; + +import com.l2jserver.gameserver.datatables.SkillData; +import com.l2jserver.gameserver.model.StatsSet; +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; +import com.l2jserver.gameserver.model.conditions.Condition; +import com.l2jserver.gameserver.model.effects.AbstractEffect; +import com.l2jserver.gameserver.model.skills.BuffInfo; +import com.l2jserver.gameserver.model.skills.Skill; + +/** + * @author NviX + */ +public final class SummonDebuff extends AbstractEffect +{ + private static final int PRICE_OF_SUMMONING_LION = 10061; + private static final int PRICE_OF_SUMMONING_LUMI = 11818; + + /** + * @param attachCond + * @param applyCond + * @param set + * @param params + */ + public SummonDebuff(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params) + { + super(attachCond, applyCond, set, params); + } + + @Override + public boolean onActionTime(BuffInfo info) + { + L2PcInstance player = info.getEffected().getActingPlayer(); + if (player.hasSummon()) + { + if (player.getEffectList().isAffectedBySkill(PRICE_OF_SUMMONING_LION)) + { + Skill skill = SkillData.getInstance().getSkill(PRICE_OF_SUMMONING_LION, 1); + skill.applyEffects(player, player); + return true; + } + else if (player.getEffectList().isAffectedBySkill(PRICE_OF_SUMMONING_LUMI)) + { + Skill skill = SkillData.getInstance().getSkill(PRICE_OF_SUMMONING_LUMI, 1); + skill.applyEffects(player, player); + return true; + } + } + return false; + } +} diff --git a/trunk/dist/game/data/scripts/handlers/effecthandlers/TriggerForce.java b/trunk/dist/game/data/scripts/handlers/effecthandlers/TriggerForce.java index ae7180d7f0..600cc39066 100644 --- a/trunk/dist/game/data/scripts/handlers/effecthandlers/TriggerForce.java +++ b/trunk/dist/game/data/scripts/handlers/effecthandlers/TriggerForce.java @@ -58,6 +58,7 @@ public final class TriggerForce extends AbstractEffect private static final int RESISTANCE_AURA = 10035; private static final int RECOVERY_AURA = 10037; private static final int SPIRIT_AURA = 10039; + private static final int ROLLING_THUNDER = 10287; /** * @param attachCond @@ -100,7 +101,7 @@ public final class TriggerForce extends AbstractEffect } else { - if (_skill.getSkillId() != RAGE_AURA) + if ((_skill.getSkillId() != RAGE_AURA) && (_skill.getSkillId() != ROLLING_THUNDER)) { _skill.getSkill().applyEffects(effector, effector); } @@ -117,8 +118,8 @@ public final class TriggerForce extends AbstractEffect { return false; } - // apply Rage Aura to enemies - if (_skill.getSkillId() == RAGE_AURA) + // apply offensive aura to enemies + if ((_skill.getSkillId() == RAGE_AURA) || (_skill.getSkillId() == ROLLING_THUNDER)) { final boolean srcInArena = (effector.isInsideZone(ZoneId.PVP) && (!effector.isInsideZone(ZoneId.SIEGE))); for (L2Character obj : effector.getKnownList().getKnownCharactersInRadius(200)) @@ -130,7 +131,7 @@ public final class TriggerForce extends AbstractEffect } } } - // remove Rage Aura from enemies who not in affect radius + // remove offensive aura from enemies who not in affect radius if (!_affectedObjects.isEmpty()) { for (L2Character obj : _affectedObjects) @@ -141,6 +142,10 @@ public final class TriggerForce extends AbstractEffect { obj.getEffectList().remove(true, obj.getEffectList().getBuffInfoBySkillId(RAGE_AURA)); } + if (obj.getEffectList().isAffectedBySkill(ROLLING_THUNDER)) + { + obj.getEffectList().remove(true, obj.getEffectList().getBuffInfoBySkillId(ROLLING_THUNDER)); + } _affectedObjToRemove.add(obj); } } @@ -167,7 +172,7 @@ public final class TriggerForce extends AbstractEffect { _affectedMembers.add(member); } - if (!member.getEffectList().isAffectedBySkill(_skill.getSkillId()) && (member.calculateDistance(effector, true, false) < 900) && (_skill.getSkillId() != RAGE_AURA)) + if (!member.getEffectList().isAffectedBySkill(_skill.getSkillId()) && (member.calculateDistance(effector, true, false) < 900) && (_skill.getSkillId() != RAGE_AURA) && (_skill.getSkillId() != ROLLING_THUNDER)) { if ((member != effector)) { @@ -299,6 +304,10 @@ public final class TriggerForce extends AbstractEffect { obj.getEffectList().remove(true, obj.getEffectList().getBuffInfoBySkillId(RAGE_AURA)); } + if (obj.getEffectList().isAffectedBySkill(ROLLING_THUNDER)) + { + obj.getEffectList().remove(true, obj.getEffectList().getBuffInfoBySkillId(ROLLING_THUNDER)); + } } _affectedObjects.clear(); _affectedObjToRemove.clear(); diff --git a/trunk/dist/game/data/stats/items/38900-38999.xml b/trunk/dist/game/data/stats/items/38900-38999.xml index f08d3e31bc..09d832551b 100644 --- a/trunk/dist/game/data/stats/items/38900-38999.xml +++ b/trunk/dist/game/data/stats/items/38900-38999.xml @@ -195,59 +195,103 @@ - + + + + + - + + + + + - + + + + + - + + + + + - + + + + + - + + + + + - + + + + + - + + + + + - + + + + + - + + + + + - + + + + + diff --git a/trunk/dist/game/data/stats/skills/10000-10099.xml b/trunk/dist/game/data/stats/skills/10000-10099.xml index 6bec065c55..c321c9594b 100644 --- a/trunk/dist/game/data/stats/skills/10000-10099.xml +++ b/trunk/dist/game/data/stats/skills/10000-10099.xml @@ -18,7 +18,6 @@ - 218 232 245 259 272 286 299 313 326 340
86 87 88 90 91 92 93 95 97 99
@@ -64,7 +63,6 @@
- 1638 1684 1730 1776 1822 1868 1914 1960 2006 2060
298 316 334 353 371 389 408 426 444 463
86 87 88 90 91 92 93 95 97 99
@@ -143,7 +141,6 @@
- 222 236 249 263 277 290 304 317 331 345
86 87 88 90 91 92 93 95 97 99
@@ -191,7 +188,6 @@
- 168 178 188 199 209 219 230 240 250 261
86 87 88 90 91 92 93 95 97 99
@@ -206,7 +202,7 @@ - + @@ -220,7 +216,7 @@ - + @@ -228,8 +224,7 @@
- - + 21 22 23 24 25 26 27 28 29 30
86 87 88 90 91 92 93 95 97 99
@@ -271,29 +266,33 @@
- - - - + + + + + + + + 2 3 4
+ 1.25 1.30 1.35
- 2 3 4
- 1.25 1.30 1.35
+ @@ -301,14 +300,13 @@
- + 53 54 56 58 59 61 63 65
- 65 65 65 65 65 65 65 65 65 65
+ 61 57 53 49 45 41 37 33 29 25
30 33 36 40 43 46 50 53 56 60
- 16460 16836 17212 17588 17964 18340 18716 19092 19468 19844
+ 21809 22354 22899 23444 23989 24534 25079 25624 26169 26714
85 86 88 90 92 94 96 98
- 53 54 56 58 59 61 63 65
- 10821 11196 11948 12700 13452 14204 14956 15708
+ 13634 14179 15269 16359 17449 18539 19629 20719
@@ -316,33 +314,43 @@ + + - + + + + + + + + + @@ -355,164 +363,220 @@
- + 64 66 68 70 72 75 77 79
74 69 64 60 55 50 45 41 36 31
30 33 36 40 43 46 50 53 56 60
- 20756 21229 21701 22173 22645 23118 23590 24062 24534 25007
+ 26486 27148 27810 28472 29134 29796 30458 31120 31782 32444
85 86 88 90 92 94 96 98
- 13673 14145 15089 16034 16978 17923 18867 19812
- 1.3 1.3 1.3 1.3 1.3 1.3 1.3 1.3
+ 16556 17218 18542 19866 21190 22514 23838 25162
+ 4900 4800 4700 4600 4500 4400 4300 4200 4100 4000
+ 1 2 3 4 5 6 7 8
- + - + + - + + + + + + + + + + + + + + + - +
- + 80 83 85 88 91 94 97 100
94 88 82 76 70 64 58 52 46 40
30 33 36 40 43 46 50 53 56 60
- 26484 27085 27685 28286 28887 29487 30088 30688 31289 31890
+ 32721 33539 34357 35175 35993 36811 37629 38447 39265 40083
85 86 88 90 92 94 96 98
- 17476 18677 19878 21079 22280 23481 24683 25884
+ 20451 22087 23723 25359 26995 28631 30267 31903
+ 4900 4800 4700 4600 4500 4400 4300 4200 4100 4000
+ + + + + - - + + - + + + + + + + + + + + + + + + -
- + 49 52 54 57 60
56 52 49 45 42 38 34 31 27 24
- 41 42 43 44 45 46 47 48 49 50
30 33 36 40 43 46 50 53 56 60
- 15028 15372 15716 16060 16404 16748 17092 17436 17780 18124
+ 18003 18453 18903 19353 19803 20253 20703 21153 21603 22053
85 88 91 94 97
- 9870 10901 11933 12965 13997
- 49 52 54 57 60
+ 11253 12603 13953 15303 16653
+ 51 52 53 54 55 56 57 58 59 60
+ 9800 9600 9400 9200 9000 8800 8600 8400 8200 8000
+ 1 2 3 4 5
+ + + + + + - - + + + - - + + - + + + + + + + + + + + + + + @@ -520,38 +584,46 @@ - - - -
- + 59 61 63 65 67 69 71
66 62 58 53 49 45 41 36 32 28
- 65 67 69 71 73 75 77 79 81 83
+ 65 67 69 71 73 75 77 79 81 83
14456 14785 15114 15444 15773 16102 16432 16761 17090 17420
21 22 23 24 25 26 27 28 29 30
10174 10833 11492 12150 12809 13468 14126
87 89 91 93 95 97 99
+ 59000 58000 57000 56000 55000 54000 53000 52000 51000 50000
+ 1 2 3 4 5 6 7
+ + + + + + + + + - - - + + - + + + @@ -571,6 +643,8 @@ + + @@ -578,36 +652,36 @@ - - - -
- + 121 125 129 133 138 142 146 151
141 132 123 114 105 96 87 78 69 60
30 33 36 40 43 46 50 53 56 60
15654 16010 16366 16722 17078 17434 17790 18146 18502 18859
85 87 89 91 93 95 97 99
10314 11026 11738 12450 13162 13874 14586 15298
+ 9900 9800 9700 9600 9500 9400 9300 9200 9100 9000
- - + + + + + - + - + @@ -629,17 +703,23 @@ + + + + +
- + 30 33 36 40 43 46 50 53 56 60
21645 22135 22625 23114 23604 24094 24583 25073 25563 26053
85 86 88 90 92 94 96 98
14300 14789 15769 16748 17727 18707 19686 20666
159 162 167 173 179 184 190 196
184 172 160 148 137 125 113 101 90 78
+ 9900 9800 9700 9600 9500 9400 9300 9200 9100 9000
@@ -648,7 +728,13 @@ - + + + + + + + @@ -660,49 +746,60 @@ + + + + + + + + + + + - +
58 61 63 66 69 72
- 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000
+ 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000
85 87 90 93 96 99
- + - + - + @@ -729,7 +826,10 @@ - + + + + @@ -742,6 +842,7 @@ + @@ -759,7 +860,7 @@ 40 60 80 100
85 90 95 99
300 200 150 100
- 890000 880000 870000 860000 850000 840000 830000 820000 810000 800000
+ 890000 880000 870000 860000 850000 840000 830000 820000 810000 800000
@@ -768,6 +869,7 @@ + @@ -802,49 +904,52 @@
- + 60 65
61 57 53 49 45 41 37 33 29 26
11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10
60 90
+ 59000 58000 57000 56000 55000 54000 53000 52000 51000 50000
- + + + + - - - - - - + + +
- + 127 140
131 123 114 106 98 89 81 72 64 56
16 17 18 19 20 21 22 23 24 25
1 2 3 4 5 6 7 8 9 10
- 5000 10000
+ 5000 10000
+ 5000 7000
50 70
+ 890000 880000 870000 860000 850000 840000 830000 820000 810000 800000
@@ -856,34 +961,26 @@ + - - + + - - - - - - - - - +
- 700 800 900 1000
350 400 450 500
1.35 1.4 1.45 1.5
@@ -892,24 +989,26 @@ + - + +
- + 20 21 23 24
22 21 19 18 16 15 13 12 11 9
- 22 21 19 18 16 15 13 12 11 9
11 12 13 14 15 16 17 18 19 20
85 90 95 99
10 15 20 25
+ 59000 58000 57000 56000 55000 54000 53000 52000 51000 50000
@@ -921,6 +1020,7 @@ + @@ -931,20 +1031,12 @@ - - - - - - -
- + 35 33 31 28 26 24 22 19 17 15
11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10
- - + 1240000 1220000 1200000 1180000 1160000 1140000 1120000 1100000 1050000 1000000
@@ -955,22 +1047,25 @@ - + - + - - - + + + + +
- - 133 124 116 107 99 90 82 73 65 56
- 70000 70000 70000 70000 70000 70000 70000 70000 70000 70000
+ + 1131 1083 1037 989 942 896 848 801 753 707
30 33 36 40 43 46 50 53 56 60
- 60000 70000
+ 35222 38826
+ 39727 40628 41528 42429 43330 44231 45132 46033 46934 47835
95 98
- 136 142
+ 1103 1158
+ 29000 28000 27000 26000 25000 24000 23000 22000 21000 20000
@@ -978,35 +1073,55 @@ - + + + + + - + - - - + + + + + + + + + + + + + + + + + + + - +
@@ -1017,7 +1132,6 @@ - @@ -1032,18 +1146,20 @@ - + - - + + + + - + 20 21 23 24
22 21 19 18 16 15 13 12 11 9
61 62 63 64 65 66 67 68 69 70
@@ -1056,6 +1172,7 @@ 30 40 50 60
4 6 8 10
1.3 1.4 1.5 1.6
+ 590000 580000 570000 560000 550000 540000 530000 520000 510000 500000
@@ -1069,6 +1186,7 @@ + @@ -1088,25 +1206,6 @@ - - - - - - - - - - - - - - - - - - - @@ -1148,23 +1247,27 @@
- + 0.99 0.98 0.97 0.96 0.95 0.94 0.93 0.92 0.91 0.90
0.99 0.98 0.97 0.96 0.95 0.94 0.93 0.92 0.91 0.90
1 2 3 4 5 6 7 8 9 10
85 87 90 93 96 99
35000 38000 41000 44000 47000 50000
+ 4900 4800 4700 4600 4500 4400 4300 4200 4100 4000
- + + + + @@ -1172,42 +1275,53 @@ - + - + - +
- + 0.99 0.98 0.97 0.96 0.95 0.94 0.93 0.92 0.91 0.90
0.99 0.98 0.97 0.96 0.95 0.94 0.93 0.92 0.91 0.90
1 2 3 4 5 6 7 8 9 10
85 88 91 94 97
25000 30000 35000 40000 45000
+ 9900 9800 9700 9600 9500 9400 9300 9200 9100 9000
+ + + + + + + + + + @@ -1516,7 +1630,6 @@
85 86 89 92 95 98
- 90 91 92 93 94 95 96 97 98 99
154 156 164 173 181 189
14936 14937 14938 14939 14974 14975
14976 14977 14978 14979 14980 14981 14982 14983 14984 14985
@@ -1529,28 +1642,30 @@ - + - + - + - + + - + +
@@ -1586,23 +1701,17 @@ - +
- + 21 22 23 24 25 26 27 28 29 30
- - - - - - - + @@ -1710,17 +1819,25 @@
- + 159 173 187 202 218 235
224 213 203 193 184 175 167 151 144 137
1051 1084 1118 1151 1185 1218
1300 1350 1400 1450 1500 1550 1600 1650 1700 1750
85 86 89 92 95 98
+ + + + + + - + + + @@ -1730,46 +1847,61 @@ + + + +
- + 144 156 169 174 179 184
180 176 172 168 164 160 156 152 148 144
85 86 89 92 95 98
2112 2156 2200 2241 2282 2320
2350 2400 2450 2500 2550 2600 2650 2700 2750 2800
+ + + + - + - - + + +
- + 19 18 17 16 15 14 13 12 11 10
85 86 89 92 95 98
3200 3300 3400 3500 3600 3700
3750 3800 3850 3900 3950 4000 4050 4100 4150 4200
15 16 17 18 19 20
+ + + + + + - + @@ -1783,13 +1915,15 @@ + +
- + 99 108 116 124 128 130
128 126 124 122 120 118 115 110 105 98
90 92 94 96 97 99
@@ -1799,7 +1933,7 @@ - + @@ -1817,7 +1951,8 @@
- + + @@ -1841,7 +1976,9 @@ - + + + @@ -1858,7 +1995,6 @@ - @@ -1893,52 +2029,61 @@ - - - + + + + + + + + + - - + - - - - + + + + + 85 90 95 99
2 3 4 5
1 2 3 4
- 1.02 1.03 1.04 1.06
+ 1.02 1.03 1.04 1.06
- - - - - - + + + + + + + + +
85 90 95 99
- 1.02 1.03 1.04 1.06
+ 1.02 1.03 1.04 1.06
2 3 4 4
1 2 3 4
@@ -1953,8 +2098,8 @@ - - + +
@@ -1965,22 +2110,24 @@ + - - + + - - - + + +
- 1.05 1.07 1.1 1.15
+ 1.05 1.07 1.1 1.15
+ 1.02 1.03 1.04 1.05
85 90 95 99
@@ -1988,20 +2135,32 @@ - + +
85 90 95 99
+ 1.02 1.03 1.04 1.06
1 2 3 4
- - - + + + + + + + + + + + + +
85 90 95 99
@@ -2016,13 +2175,8 @@ + - - - - - - @@ -2030,7 +2184,6 @@
- 85 90 95 99
154 156 164 173
15138 15139 15140 15141
@@ -2043,19 +2196,19 @@ - + - + - +
@@ -2093,22 +2246,18 @@
- - - - 85 90 95 99
1 2 3 4
- 1.02 1.03 1.04 1.06
+ 1.02 1.03 1.04 1.06
- - + + @@ -2123,7 +2272,7 @@ 85 90 95 99
- 1.02 1.03 1.04 1.06
+ 1.02 1.03 1.04 1.06
1.01 1.02 1.03 1.04
@@ -2135,8 +2284,8 @@ - - + + @@ -2158,6 +2307,7 @@
+ @@ -2167,7 +2317,6 @@ - @@ -2179,10 +2328,6 @@
- - - - 85 90 95 99
1.02 1.03 1.04 1.05
@@ -2199,31 +2344,46 @@
- - - - 85 90 95 99
- 1.02 1.03 1.04 1.06
+ 1.02 1.03 1.04 1.06
+ 1 2 3 4
- + + + + + + + + + +
- - + 1.02 1.03 1.04 1.06
- + + + + - + + + + + + + +
85 90 95 99
@@ -2253,23 +2413,44 @@ - +
- - 87 95 103 110
- - - - + 15574 18556 20701 22848
+ 85 90 95 99
+ + + + + + + + - + + + + + + + + + + + + + + + + + +
600 650 700 750
@@ -2327,6 +2508,7 @@ 85 90 95 99
+ @@ -2349,6 +2531,7 @@ 85 90 95 99
+ @@ -2367,31 +2550,78 @@
- - - 159 173 187 193
- - - - + 159 173 187 193
+ 1 2 3 4
+ 85 90 95 99
+ 7750 7911 8404 8931
+ + + + + + + + + + - + + + + + + + + + + + + + + +
- - - 30 32 34 36
- - - - + 30 32 34 36
+ 85 90 95 99
+ 3875 3955 4202 4465
+ + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + +
200 250 300 350
@@ -2411,27 +2641,51 @@
- - - 59 61 63 65
- - - - - + 59 61 63 65
+ 85 90 95 99
+ + + + + + + + + + + - + + -
- - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + 85 90 95 99
@@ -2467,70 +2721,109 @@
- - - - 85 90 95 99
140 143 155 165
+ 1 2 4 6
+ 11997 14177 16357 18101
+ + + + + + + + + + + - + + + + + + + + + +
- - + + + + + + + + + + - - - - + + + + + + + + + - - - 97 98 99
17927 18411 18895
185 191 197
- + + + + + + + + + + + + + + + +
- - - - 85 90 95 99
20 21 23 24
@@ -2572,10 +2865,6 @@
- - - - 85 90 95 99
20 21 23 24
diff --git a/trunk/dist/game/data/stats/skills/10100-10199.xml b/trunk/dist/game/data/stats/skills/10100-10199.xml index 9b3b9a347f..39410b2fc2 100644 --- a/trunk/dist/game/data/stats/skills/10100-10199.xml +++ b/trunk/dist/game/data/stats/skills/10100-10199.xml @@ -1,9 +1,5 @@ - - - - 85 90 95 99
20 21 23 24
@@ -49,10 +45,6 @@
- - - - 85 90 95 99
20 21 23 24
@@ -94,42 +86,80 @@
- - - 97 98 99
33505 34353 35201
185 191 197
+ 1 2 3
+ + + + + - + + + + + + + + + + + + + + + + + + +
- - - - 97 98 99 99
185 191 197 197
+ 18151 18641 19131 19131
+ 1 2 3 4
+ + + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/trunk/dist/game/data/stats/skills/10200-10299.xml b/trunk/dist/game/data/stats/skills/10200-10299.xml index 48a1d91e94..83a495f70a 100644 --- a/trunk/dist/game/data/stats/skills/10200-10299.xml +++ b/trunk/dist/game/data/stats/skills/10200-10299.xml @@ -1,14 +1,20 @@ - - - 85 90 95
+ 1.5 1.55 1.6
+ + + + + + + +
@@ -73,7 +79,6 @@ - 1502 1613 1724 1835 1946 2057 2168 2279 2390 2501
86 87 88 90 91 92 93 95 97 99
@@ -84,10 +89,10 @@ - + - + @@ -103,16 +108,16 @@ - + - + - + @@ -128,12 +133,11 @@ - +
- 1502 1613 1724 1835 1946 2057 2168 2279 2390 2501
86 87 88 90 91 92 93 95 97 99
@@ -165,7 +169,6 @@
- 1366 1405 1444 1483 1522 1561 1600 1639 1678 1717
86 87 88 90 91 92 93 95 97 99
@@ -201,7 +204,6 @@
- 1308 1345 1382 1419 1456 1493 1530 1567 1604 1643
86 87 88 90 91 92 93 95 97 99
@@ -266,25 +268,50 @@
- - - - - - - - - - - - + + 21 22 23 24 25 26 27 28 29 30
+ 86 87 88 89 90 91 93 95 97 99
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
- 645 685 724 764 804 843 883 922 962 1002
315 334 353 373 392 411 431 450 469 489
7.8 8.2 8.7 9.2 9.7 10.1 10.6 11.1 11.5 12
@@ -306,11 +333,20 @@ - + + + + + + + + + + @@ -321,16 +357,23 @@ - + + + + + + + + + +
- - @@ -348,8 +391,7 @@ - - + 1 2 3 4 5 6 7 8
85 87 89 90 92 93 94 95
50 52 53 54 57 59 60 62
@@ -360,11 +402,14 @@ 1 2 3 4 5 6 7 8 9 10
95 95 96 96 97 97 98 98 99 99
16990 17379 17767 18156 18545 18934 19322 19711 20100 20489
+ 1950 1900 1850 1800 1750 1700 1650 1600 1550 1500
+ + @@ -407,6 +452,9 @@ + + + @@ -416,9 +464,13 @@ + + + + +
- - + 85 86 88 90 92 94 96 98
65 66 69 71 73 76 78 80
19893 20581 21956 23332 24707 26082 27458 28833
@@ -427,7 +479,10 @@ 30 33 36 40 43 46 50 53 56 60
98 98 98 98 98 99 99 99 99 99
30209 30896 31584 32272 32959 33647 34334 35022 35710 36397
+ 6900 6800 6700 6600 6500 6400 6300 6200 6100 6000
+ + @@ -468,6 +523,9 @@ + + + @@ -479,8 +537,7 @@
- - + 1 2 3 4 5 6
85 88 91 94 97 99
84 89 93 98 102 105
@@ -489,11 +546,14 @@ 31047 31751 32455 33160 33864 34568 35273 35977 36681 37386
30 33 36 40 43 46 50 53 56 60
31047 31751 32455 33160 33864 34568 35273 35977 36681 37386
+ 29000 28000 27000 26000 25000 24000 23000 22000 21000 20000
+ + @@ -528,6 +588,8 @@ + + @@ -542,8 +604,7 @@
- - + 1 2 3 4 5 6 7 8
85 86 88 90 92 94 96 98
58 59 61 63 65 67 69 71
@@ -554,12 +615,15 @@ 30 33 36 40 43 46 50 53 56 60
98 98 98 98 98 99 99 99 99 99
789 805 820 836 852 868 884 900 916 932
+ 6900 6800 6700 6600 6500 6400 6300 6200 6100 6000
+ + @@ -598,6 +662,9 @@ + + + @@ -609,20 +676,22 @@ - +
- + 30 33 36 40 43 46 50 53 56 60
17545 17945 18344 18743 19142 19542 19941 20340 20739 21139
144 138 132 126 120 114 108 102 96 90
85 86 88 90 92 94 96 98
+ 98 98 98 98 98 99 99 99 99 99
11557 11956 12754 13533 14351 15155 15948 16747
30 32 34 36 38 40 42 44
122 124 129 133 137 142 146 151
+ 4900 4800 4700 4600 4500 4400 4300 4200 4100 4000
+ 1 2 3 4 5 6 7 8
- @@ -630,36 +699,58 @@ + + + + + + + - + - + + + + + + + + + + + + + + + + @@ -673,59 +764,80 @@
- + 91 87 83 79 76 72 68 64 60 57
61 62 63 64 65 66 67 68 69 70
85 87 88 91 93 95 97 99
0.99 0.98 0.97 0.96 0.95 0.94 0.93 0.92 0.91 0.90
- 3800 3900 4000 4100 4200 4300 4400 4500 4600 4700
+ 3800 3900 4000 4100 4200 4300 4400 4500 4600 4700
76 79 81 84 87 90 92 95
+ 119000 118000 117000 116000 115000 114000 113000 112000 111000 110000
- + + + + + + + - + - + + + + + + + + + + + + +
- + 85 87 90 93 96 99
71 72 75 76 78 79 80 82 83 85
3800 3900 4000 4100 4200 4300 4400 4500 4600 4700
0.99 0.98 0.97 0.96 0.95 0.94 0.93 0.92 0.91 0.90
45 43 41 39 37 35 33 31 30 28
- 61 62 63 64 65 66 67 68 69 70
+ 61 62 63 64 65 66 67 68 69 70
38 39 41 43 44 47
+ 14900 14800 14700 14600 14500 14400 14300 14200 14100 14000
+ 1 2 3 4 5 6
+ + + + + + - + @@ -734,17 +846,17 @@ - - + - + + @@ -752,20 +864,14 @@ - - - + - - - - - + + + + - - - @@ -773,28 +879,32 @@ 30 32 34 36 38 40
89 91 93 95 97 99
- 1 2 3 4 5 6
1 2 3 4 5 6
40 42 43 45 46 47
- - - + - + + + + + + +
- + 10508 11190 11872 12554 13236 13918 14600
87 89 91 93 95 97 99
128 123 117 112 107 101 96 91 85 80
- 81 82 83 84 85 86 87 88 89 90
+ 81 82 83 84 85 86 87 88 89 90
1 2 3 4 5 6 7 8 9 10
14941 15282 15623 15964 16305 16646 16987 17328 17669 18011
111 114 118 122 126 130 134
+ 4900 4800 4700 4600 4500 4400 4300 4200 4100 4000
@@ -804,17 +914,25 @@ + + - + + + + + + - + + @@ -833,6 +951,8 @@ + + @@ -841,25 +961,11 @@ - - - - - - - - - - - - -
- 132 142 156 168 180 192 204 216 228 240
93 93 94 95 95 96 97 97 98 99
@@ -889,121 +995,139 @@
- + 79 76 73 69 66 63 59 56 53 49
- 80 85 90 95 100 105 110 115 120 125
+ 80 81 82 83 84 85 86 87 88 89
97 99
- 15000 18000
320 340 360 380 400 420 440 460 480 500
250 300
76 83
+ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10
+ 3900 3800 3700 3600 3500 3400 3300 3200 3100 3000
+ + + + - - + - + + + - - + + + + - - + + + + - - + + + + + + + - - + + + + - + + +
- + 88 84 80 77 73 69 66 62 58 55
- 5 6 6 7 7 8 8 9 9 10
+ 71 72 73 74 75 76 77 78 79 80
210 220 230 240 250 260 270 280 290 300
1 2 3 4 5 6 7 8 9 10
85 90 95 99
0.9 0.85 0.8 0.75
- + -1 -2 -3 -4 -5 -6 -7 -8 -9 -10
+ 119000 118000 117000 116000 115000 114000 113000 112000 111000 110000
+ + + + + + + + + - - - - + + - - - - - - - - - - - - - + + + - + + +
- + 85 90 95 99
38 41 45 47
10 15 20 25
@@ -1015,8 +1139,9 @@ 3 4 5 6
45 43 41 39 37 35 33 31 30 28
61 62 63 64 65 66 67 68 69 70
- 61 62 63 64 65 66 67 68 69 70
- 1 2 3 4 5 6 7 8 9 10
+ 71 72 73 74 75 76 77 78 79 80
+ 1 2 3 4 5 6 7 8 9 10
+ 299000 298000 297000 296000 295000 294000 293000 292000 291000 290000
@@ -1029,6 +1154,7 @@ + @@ -1056,36 +1182,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1096,8 +1192,9 @@ + - + @@ -1126,16 +1223,20 @@ + + + +
- - 1131 1083 1037 989 942 896 848 801 753 707
- 54436 55659 56882 58105 59328 60551 61774 62997 64220 65443
- + + 1131 1083 1037 989 942 896 848 801 753 707
+ 66456 67827 69198 70569 71940 73311 74682 76053 77424 78795
+ 29000 28000 27000 26000 25000 24000 23000 22000 21000 20000
- + @@ -1144,28 +1245,30 @@ - - - + + + + + + +
- - 1 2 3 4 5 6 7 8 9 10
+ + 1 2 3 4 5 6 7 8 9 10
- - - + @@ -1173,23 +1276,34 @@ - + + + - - + + + + + + - - + + + + + +
- - 125 125 130 135 135 140 145 145 150 155
+ + 125 125 130 135 135 140 145 150 155 160
45 43 41 39 37 35 33 31 30 28
1.2 1.22 1.26 1.33
1.1 1.11 1.13 1.16
38 41 45 47
+ 179000 178000 177000 176000 175000 174000 173000 172000 171000 170000
@@ -1201,7 +1315,7 @@ - + @@ -1210,49 +1324,48 @@ - - - - - - - - - - - - - - - -
- + 90 86 82 78 75 71 67 63 60 56
- 71 72 73 74 75 76 77 78 79 80
+ -451 -502 -553 -604 -655 -706 -757 -808 -859 -910
85 86 88 90 92 94 96 98
76 77 80 83 86 88 91 94
+ 29000 28000 27000 26000 25000 24000 23000 22000 21000 20000
- - - + + + - + + + + + + + + + + +
- + 40 38 36 35 33 31 30 28 26 25
11 12 13 14 15 16 17 18 19 20
- 21 22 23 24 25 26 27 28 29 30
- 1 2 3 4 5 6 7 8 9 10
+ 71 72 73 74 75 76 77 78 79 80
+ 1 2 3 4 5 6 7 8 9 10
+ 299000 298000 297000 296000 295000 294000 293000 292000 291000 290000
+ + + @@ -1264,28 +1377,32 @@ + - + - + - + + + + - - + + - - - - - + + + + +
diff --git a/trunk/dist/game/data/stats/skills/17800-17899.xml b/trunk/dist/game/data/stats/skills/17800-17899.xml index f00f0bc694..545a918d4e 100644 --- a/trunk/dist/game/data/stats/skills/17800-17899.xml +++ b/trunk/dist/game/data/stats/skills/17800-17899.xml @@ -170,10 +170,23 @@
- + 38855,1,7;38927,1,7;38850,1,10;38875,1,14.5;38870,1,10;38890,1,12;38880,1,13;38885,1,14.5;38895,1,12
+ + + + + + + + + + + + +
1 1 1 2 3
diff --git a/trunk/dist/game/data/stats/skills/26200-26299.xml b/trunk/dist/game/data/stats/skills/26200-26299.xml index 8c27f40476..4c009536f6 100644 --- a/trunk/dist/game/data/stats/skills/26200-26299.xml +++ b/trunk/dist/game/data/stats/skills/26200-26299.xml @@ -89,10 +89,23 @@
- + + + + + + + + + + + + + + diff --git a/trunk/dist/game/data/xsd/skills.xsd b/trunk/dist/game/data/xsd/skills.xsd index df808aed46..7e80c7178c 100644 --- a/trunk/dist/game/data/xsd/skills.xsd +++ b/trunk/dist/game/data/xsd/skills.xsd @@ -262,6 +262,7 @@ + @@ -393,6 +394,7 @@ + diff --git a/trunk/java/com/l2jserver/gameserver/model/actor/L2Attackable.java b/trunk/java/com/l2jserver/gameserver/model/actor/L2Attackable.java index 9a9b5e7b21..b251748cd4 100644 --- a/trunk/java/com/l2jserver/gameserver/model/actor/L2Attackable.java +++ b/trunk/java/com/l2jserver/gameserver/model/actor/L2Attackable.java @@ -350,6 +350,17 @@ public class L2Attackable extends L2Npc { // Delayed notification EventDispatcher.getInstance().notifyEventAsyncDelayed(new OnAttackableKill(killer.getActingPlayer(), this, killer.isSummon()), this, _onKillDelay); + // if killer have stat hpRestoreOnKill + int hpRestore = (int) killer.getStat().calcStat(Stats.HP_RESTORE_ON_KILL, 0, null, null); + if (hpRestore > 0) + { + double amount = (killer.getMaxHp() * hpRestore) / 100; + amount = Math.max(Math.min(amount, killer.getMaxRecoverableHp() - killer.getCurrentHp()), 0); + if (amount != 0) + { + killer.setCurrentHp(amount + killer.getCurrentHp()); + } + } } // Notify to minions if there are. diff --git a/trunk/java/com/l2jserver/gameserver/model/actor/status/PcStatus.java b/trunk/java/com/l2jserver/gameserver/model/actor/status/PcStatus.java index e24d31194e..8d774361fd 100644 --- a/trunk/java/com/l2jserver/gameserver/model/actor/status/PcStatus.java +++ b/trunk/java/com/l2jserver/gameserver/model/actor/status/PcStatus.java @@ -312,6 +312,18 @@ public class PcStatus extends PlayableStatus return; } + if ((attacker != null) && (attacker.isPlayer())) + { + final int hpRestore = (int) attacker.getStat().calcStat(Stats.HP_RESTORE_ON_KILL, 0, null, null); + if (hpRestore > 0) + { + final double amount = Math.max(Math.min((attacker.getMaxHp() * hpRestore) / 100, attacker.getMaxRecoverableHp() - attacker.getCurrentHp()), 0); + if (amount != 0) + { + attacker.setCurrentHp(amount + attacker.getCurrentHp()); + } + } + } getActiveChar().doDie(attacker); } } diff --git a/trunk/java/com/l2jserver/gameserver/model/stats/Stats.java b/trunk/java/com/l2jserver/gameserver/model/stats/Stats.java index 2d7d0255c1..06ea0754c3 100644 --- a/trunk/java/com/l2jserver/gameserver/model/stats/Stats.java +++ b/trunk/java/com/l2jserver/gameserver/model/stats/Stats.java @@ -210,7 +210,10 @@ public enum Stats MAX_SUMMON_POINTS("summonPoints"), // Max Skill Damage Receive - MAX_SKILL_DAMAGE("maxSkillDamage"); + MAX_SKILL_DAMAGE("maxSkillDamage"), + + // Hp restore on kill enemy + HP_RESTORE_ON_KILL("hpRestoreOnKill"); public static final int NUM_STATS = values().length;