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

@ -332,6 +332,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

@ -301,6 +301,7 @@ StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2j
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.

View File

@ -332,6 +332,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

@ -301,6 +301,7 @@ StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2j
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.

View File

@ -332,6 +332,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

@ -301,6 +301,7 @@ StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2j
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.

View File

@ -337,6 +337,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

@ -306,6 +306,7 @@ StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2j
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.

View File

@ -342,6 +342,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

@ -311,6 +311,7 @@ StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2j
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.

View File

@ -343,6 +343,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

@ -312,6 +312,7 @@ StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2j
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.

View File

@ -343,6 +343,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

@ -312,6 +312,7 @@ StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2j
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.

View File

@ -343,6 +343,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

@ -311,6 +311,7 @@ StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2j
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.

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

@ -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.

View File

@ -346,6 +346,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

@ -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.

View File

@ -348,6 +348,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

@ -315,6 +315,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.

View File

@ -328,6 +328,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

@ -297,6 +297,7 @@ StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2j
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.

View File

@ -328,6 +328,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

@ -297,6 +297,7 @@ StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2j
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.

View File

@ -330,6 +330,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

@ -299,6 +299,7 @@ StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2j
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.

View File

@ -334,6 +334,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

@ -303,6 +303,7 @@ StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2j
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.

View File

@ -334,6 +334,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

@ -303,6 +303,7 @@ StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2j
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.

View File

@ -336,6 +336,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

@ -305,6 +305,7 @@ StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2j
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.

View File

@ -331,6 +331,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

@ -299,6 +299,7 @@ StatAddForLevel: Adds a fixed amount of a Stat for a specific player level. (l2j
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.

View File

@ -343,6 +343,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

@ -2397,12 +2397,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

@ -3210,12 +3210,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>
@ -3227,12 +3227,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>
@ -3244,12 +3244,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>
@ -3261,12 +3261,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>
@ -3278,12 +3278,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>
@ -3295,12 +3295,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>
@ -3312,12 +3312,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>
@ -3329,12 +3329,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>
@ -3346,12 +3346,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>
@ -3363,12 +3363,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

@ -312,6 +312,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.

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.

View File

@ -346,6 +346,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

@ -314,6 +314,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.