Addition of StatMulForLevel effect.

Contributed by MacuK.
This commit is contained in:
MobiusDevelopment
2022-01-09 01:13:25 +00:00
parent 4b66f730ec
commit 5b7400c652
73 changed files with 1481 additions and 74 deletions

View File

@@ -345,6 +345,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("StatBonusSkillCritical", StatBonusSkillCritical::new);
EffectHandler.getInstance().registerHandler("StatBonusSpeed", StatBonusSpeed::new);
EffectHandler.getInstance().registerHandler("StatByMoveType", StatByMoveType::new);
EffectHandler.getInstance().registerHandler("StatMulForLevel", StatMulForLevel::new);
EffectHandler.getInstance().registerHandler("StatUp", StatUp::new);
EffectHandler.getInstance().registerHandler("StealAbnormal", StealAbnormal::new);
EffectHandler.getInstance().registerHandler("Summon", Summon::new);

View File

@@ -0,0 +1,65 @@
/*
* This file is part of the L2J Mobius project.
*
* 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 java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.l2jmobius.gameserver.enums.StatModifierType;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat;
/**
* @author Mobius
*/
public class StatMulForLevel extends AbstractEffect
{
private final Stat _stat;
private final Map<Integer, Integer> _values;
public StatMulForLevel(StatSet params)
{
_stat = params.getEnum("stat", Stat.class);
final List<Integer> amount = params.getIntegerList("amount");
_values = new HashMap<>(amount.size());
int index = 0;
for (Integer level : params.getIntegerList("level"))
{
_values.put(level, amount.get(index++));
}
if (params.getEnum("mode", StatModifierType.class, StatModifierType.PER) != StatModifierType.PER)
{
LOGGER.warning(getClass().getSimpleName() + " can only use PER mode.");
}
}
@Override
public void pump(Creature effected, Skill skill)
{
final Integer amount = _values.get(effected.getLevel());
if (amount != null)
{
effected.getStat().mergeMul(_stat, (amount / 100) + 1);
}
}
}

View File

@@ -3568,12 +3568,12 @@
<icon>icon.weapon_terakan_i00</icon>
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>PHYSICAL_ATTACK</stat>
<level>60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>3,3,3,3,4,4,4,5,5,5,8,8,8,8,8,8,8,8,8,8,13,20,26,32,38,38,40,44,48,50,56,57,58,59,60,61,62,63,64,65</amount>
</effect>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>MAGIC_ATTACK</stat>
<level>60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>2,2,2,2,2,3,3,3,3,3,5,5,5,5,5,5,5,5,5,5,8,14,19,24,29,30,36,41,46,51,54,55,56,57,58,59,60,61,62,63</amount>

View File

@@ -3236,12 +3236,12 @@
<icon>icon.weapon_spinebone_sword_i00</icon>
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>PHYSICAL_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>17,17,17,17,17,17,17,17,17,17,33,33,33,33,33,33,33,33,33,33,51,51,51,51,51,68,68,68,68,68,84,84,84,84,84,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101</amount>
</effect>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>MAGIC_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>10,10,10,10,10,10,10,10,10,10,20,20,20,20,20,20,20,20,20,20,31,31,31,31,31,41,41,41,41,41,51,51,51,51,51,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61</amount>
@@ -3253,12 +3253,12 @@
<icon>icon.weapon_knife_o'_silenus_i00</icon>
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>PHYSICAL_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>15,15,15,15,15,15,15,15,15,15,30,30,30,30,30,30,30,30,30,30,46,46,46,46,46,61,61,61,61,61,76,76,76,76,76,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91</amount>
</effect>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>MAGIC_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>10,10,10,10,10,10,10,10,10,10,20,20,20,20,20,20,20,20,20,20,31,31,31,31,31,41,41,41,41,41,51,51,51,51,51,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61</amount>
@@ -3270,12 +3270,12 @@
<icon>icon.weapon_gastraphetes_i00</icon>
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>PHYSICAL_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>33,33,33,33,33,33,33,33,33,33,63,63,63,63,63,63,63,63,63,63,96,96,96,96,96,129,129,129,129,129,159,159,159,159,159,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192</amount>
</effect>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>MAGIC_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>10,10,10,10,10,10,10,10,10,10,19,19,19,19,19,19,19,19,19,19,29,29,29,29,29,38,38,38,38,38,47,47,47,47,47,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57</amount>
@@ -3287,12 +3287,12 @@
<icon>icon.weapon_war_pick_i00</icon>
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>PHYSICAL_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>17,17,17,17,17,17,17,17,17,17,33,33,33,33,33,33,33,33,33,33,51,51,51,51,51,68,68,68,68,68,84,84,84,84,84,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101</amount>
</effect>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>MAGIC_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>10,10,10,10,10,10,10,10,10,10,20,20,20,20,20,20,20,20,20,20,31,31,31,31,31,41,41,41,41,41,51,51,51,51,51,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61</amount>
@@ -3304,12 +3304,12 @@
<icon>icon.weapon_flamberge_i00</icon>
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>PHYSICAL_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>21,21,21,21,21,21,21,21,21,21,41,41,41,41,41,41,41,41,41,41,62,62,62,62,62,83,83,83,83,83,103,103,103,103,103,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124</amount>
</effect>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>MAGIC_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>10,10,10,10,10,10,10,10,10,10,20,20,20,20,20,20,20,20,20,20,31,31,31,31,31,41,41,41,41,41,51,51,51,51,51,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61</amount>
@@ -3321,12 +3321,12 @@
<icon>icon.weapon_ghost_staff_i00</icon>
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>PHYSICAL_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>18,18,18,18,18,18,18,18,18,18,35,35,35,35,35,35,35,35,35,35,53,53,53,53,53,70,70,70,70,70,87,87,87,87,87,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105</amount>
</effect>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>MAGIC_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>14,14,14,14,14,14,14,14,14,14,27,27,27,27,27,27,27,27,27,27,41,41,41,41,41,55,55,55,55,55,68,68,68,68,68,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82</amount>
@@ -3338,12 +3338,12 @@
<icon>icon.weapon_dwarven_trident_i00</icon>
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>PHYSICAL_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>17,17,17,17,17,17,17,17,17,17,33,33,33,33,33,33,33,33,33,33,51,51,51,51,51,68,68,68,68,68,84,84,84,84,84,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101</amount>
</effect>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>MAGIC_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>10,10,10,10,10,10,10,10,10,10,20,20,20,20,20,20,20,20,20,20,31,31,31,31,31,41,41,41,41,41,51,51,51,51,51,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61</amount>
@@ -3355,12 +3355,12 @@
<icon>icon.weapon_baghnakh_i00</icon>
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>PHYSICAL_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>21,21,21,21,21,21,21,21,21,21,41,41,41,41,41,41,41,41,41,41,62,62,62,62,62,83,83,83,83,83,103,103,103,103,103,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124</amount>
</effect>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>MAGIC_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>10,10,10,10,10,10,10,10,10,10,20,20,20,20,20,20,20,20,20,20,31,31,31,31,31,41,41,41,41,41,51,51,51,51,51,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61</amount>
@@ -3372,12 +3372,12 @@
<icon>icon.weapon_soldat_estoc_i00</icon>
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>PHYSICAL_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>16,16,16,16,16,16,16,16,16,16,32,32,32,32,32,32,32,32,32,32,49,49,49,49,49,65,65,65,65,65,81,81,81,81,81,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97</amount>
</effect>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>MAGIC_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>14,14,14,14,14,14,14,14,14,14,26,26,26,26,26,26,26,26,26,26,40,40,40,40,40,54,54,54,54,54,66,66,66,66,66,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80</amount>
@@ -3389,12 +3389,12 @@
<icon>icon.weapon_schlaeger_i00</icon>
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>PHYSICAL_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>20,20,20,20,20,20,20,20,20,20,38,38,38,38,38,38,38,38,38,38,58,58,58,58,58,77,77,77,77,77,95,95,95,95,95,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115</amount>
</effect>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>MAGIC_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>10,10,10,10,10,10,10,10,10,10,20,20,20,20,20,20,20,20,20,20,31,31,31,31,31,41,41,41,41,41,51,51,51,51,51,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61</amount>

View File

@@ -5169,12 +5169,12 @@
<icon>icon.skill0000</icon>
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>PHYSICAL_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>33,33,33,33,33,33,33,33,33,33,63,63,63,63,63,63,63,63,63,63,96,96,96,96,96,129,129,129,129,129,159,159,159,159,159,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192</amount>
</effect>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>MAGIC_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>10,10,10,10,10,10,10,10,10,10,19,19,19,19,19,19,19,19,19,19,29,29,29,29,29,38,38,38,38,38,47,47,47,47,47,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57</amount>

View File

@@ -771,12 +771,12 @@
<icon>icon.skill0000</icon>
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>PHYSICAL_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>21,21,21,21,21,21,21,21,21,21,41,41,41,41,41,41,41,41,41,41,62,62,62,62,62,83,83,83,83,83,103,103,103,103,103,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124</amount>
</effect>
<effect name="StatAddForLevel">
<effect name="StatMulForLevel">
<stat>MAGIC_ATTACK</stat>
<level>40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99</level>
<amount>10,10,10,10,10,10,10,10,10,10,20,20,20,20,20,20,20,20,20,20,31,31,31,31,31,41,41,41,41,41,51,51,51,51,51,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61</amount>

View File

@@ -313,6 +313,7 @@ StatAddForMp: Adds a fixed amount of a Stat for when player max MP is over a val
StatBonusSkillCritical: Changes skill critical rate to depend on the specified base stat.
StatBonusSpeed: Changes Speed stat to depend on the specified base stat.
StatByMoveType: Adds stat based on your movement type (standing, running, walking).
StatMulForLevel: Multiplies a fixed amount of a Stat for a specific player level. (l2jmobius)
StatUp: Increases the specified base stat.
StealAbnormal: Steals enemy's buffs.
Summon: Summons a servitor.