Reworked StatAddForLevel effect to be more simplified.

This commit is contained in:
MobiusDevelopment 2021-10-31 12:49:48 +00:00
parent 86fc18126c
commit f8e16e9481
29 changed files with 587 additions and 833 deletions

View File

@ -16,6 +16,11 @@
*/
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;
@ -27,23 +32,34 @@ import org.l2jmobius.gameserver.model.stats.Stat;
*/
public class StatAddForLevel extends AbstractEffect
{
private final int _level;
private final Stat _stat;
private final double _amount;
private final Map<Integer, Integer> _values;
public StatAddForLevel(StatSet params)
{
_level = params.getInt("level", 0);
_stat = params.getEnum("stat", Stat.class);
_amount = params.getDouble("amount", 0);
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.DIFF) != StatModifierType.DIFF)
{
LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode.");
}
}
@Override
public void pump(Creature effected, Skill skill)
{
if (effected.getLevel() == _level)
final Integer amount = _values.get(effected.getLevel());
if (amount != null)
{
effected.getStat().mergeAdd(_stat, _amount);
effected.getStat().mergeAdd(_stat, amount.intValue());
}
}
}

View File

@ -16,6 +16,11 @@
*/
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;
@ -27,23 +32,34 @@ import org.l2jmobius.gameserver.model.stats.Stat;
*/
public class StatAddForLevel extends AbstractEffect
{
private final int _level;
private final Stat _stat;
private final double _amount;
private final Map<Integer, Integer> _values;
public StatAddForLevel(StatSet params)
{
_level = params.getInt("level", 0);
_stat = params.getEnum("stat", Stat.class);
_amount = params.getDouble("amount", 0);
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.DIFF) != StatModifierType.DIFF)
{
LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode.");
}
}
@Override
public void pump(Creature effected, Skill skill)
{
if (effected.getLevel() == _level)
final Integer amount = _values.get(effected.getLevel());
if (amount != null)
{
effected.getStat().mergeAdd(_stat, _amount);
effected.getStat().mergeAdd(_stat, amount.intValue());
}
}
}

View File

@ -16,6 +16,11 @@
*/
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;
@ -27,23 +32,34 @@ import org.l2jmobius.gameserver.model.stats.Stat;
*/
public class StatAddForLevel extends AbstractEffect
{
private final int _level;
private final Stat _stat;
private final double _amount;
private final Map<Integer, Integer> _values;
public StatAddForLevel(StatSet params)
{
_level = params.getInt("level", 0);
_stat = params.getEnum("stat", Stat.class);
_amount = params.getDouble("amount", 0);
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.DIFF) != StatModifierType.DIFF)
{
LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode.");
}
}
@Override
public void pump(Creature effected, Skill skill)
{
if (effected.getLevel() == _level)
final Integer amount = _values.get(effected.getLevel());
if (amount != null)
{
effected.getStat().mergeAdd(_stat, _amount);
effected.getStat().mergeAdd(_stat, amount.intValue());
}
}
}

View File

@ -16,6 +16,11 @@
*/
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;
@ -27,23 +32,34 @@ import org.l2jmobius.gameserver.model.stats.Stat;
*/
public class StatAddForLevel extends AbstractEffect
{
private final int _level;
private final Stat _stat;
private final double _amount;
private final Map<Integer, Integer> _values;
public StatAddForLevel(StatSet params)
{
_level = params.getInt("level", 0);
_stat = params.getEnum("stat", Stat.class);
_amount = params.getDouble("amount", 0);
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.DIFF) != StatModifierType.DIFF)
{
LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode.");
}
}
@Override
public void pump(Creature effected, Skill skill)
{
if (effected.getLevel() == _level)
final Integer amount = _values.get(effected.getLevel());
if (amount != null)
{
effected.getStat().mergeAdd(_stat, _amount);
effected.getStat().mergeAdd(_stat, amount.intValue());
}
}
}

View File

@ -16,6 +16,11 @@
*/
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;
@ -27,23 +32,34 @@ import org.l2jmobius.gameserver.model.stats.Stat;
*/
public class StatAddForLevel extends AbstractEffect
{
private final int _level;
private final Stat _stat;
private final double _amount;
private final Map<Integer, Integer> _values;
public StatAddForLevel(StatSet params)
{
_level = params.getInt("level", 0);
_stat = params.getEnum("stat", Stat.class);
_amount = params.getDouble("amount", 0);
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.DIFF) != StatModifierType.DIFF)
{
LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode.");
}
}
@Override
public void pump(Creature effected, Skill skill)
{
if (effected.getLevel() == _level)
final Integer amount = _values.get(effected.getLevel());
if (amount != null)
{
effected.getStat().mergeAdd(_stat, _amount);
effected.getStat().mergeAdd(_stat, amount.intValue());
}
}
}

View File

@ -16,6 +16,11 @@
*/
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;
@ -27,23 +32,34 @@ import org.l2jmobius.gameserver.model.stats.Stat;
*/
public class StatAddForLevel extends AbstractEffect
{
private final int _level;
private final Stat _stat;
private final double _amount;
private final Map<Integer, Integer> _values;
public StatAddForLevel(StatSet params)
{
_level = params.getInt("level", 0);
_stat = params.getEnum("stat", Stat.class);
_amount = params.getDouble("amount", 0);
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.DIFF) != StatModifierType.DIFF)
{
LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode.");
}
}
@Override
public void pump(Creature effected, Skill skill)
{
if (effected.getLevel() == _level)
final Integer amount = _values.get(effected.getLevel());
if (amount != null)
{
effected.getStat().mergeAdd(_stat, _amount);
effected.getStat().mergeAdd(_stat, amount.intValue());
}
}
}

View File

@ -16,6 +16,11 @@
*/
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;
@ -27,23 +32,34 @@ import org.l2jmobius.gameserver.model.stats.Stat;
*/
public class StatAddForLevel extends AbstractEffect
{
private final int _level;
private final Stat _stat;
private final double _amount;
private final Map<Integer, Integer> _values;
public StatAddForLevel(StatSet params)
{
_level = params.getInt("level", 0);
_stat = params.getEnum("stat", Stat.class);
_amount = params.getDouble("amount", 0);
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.DIFF) != StatModifierType.DIFF)
{
LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode.");
}
}
@Override
public void pump(Creature effected, Skill skill)
{
if (effected.getLevel() == _level)
final Integer amount = _values.get(effected.getLevel());
if (amount != null)
{
effected.getStat().mergeAdd(_stat, _amount);
effected.getStat().mergeAdd(_stat, amount.intValue());
}
}
}

View File

@ -16,6 +16,11 @@
*/
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;
@ -27,23 +32,34 @@ import org.l2jmobius.gameserver.model.stats.Stat;
*/
public class StatAddForLevel extends AbstractEffect
{
private final int _level;
private final Stat _stat;
private final double _amount;
private final Map<Integer, Integer> _values;
public StatAddForLevel(StatSet params)
{
_level = params.getInt("level", 0);
_stat = params.getEnum("stat", Stat.class);
_amount = params.getDouble("amount", 0);
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.DIFF) != StatModifierType.DIFF)
{
LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode.");
}
}
@Override
public void pump(Creature effected, Skill skill)
{
if (effected.getLevel() == _level)
final Integer amount = _values.get(effected.getLevel());
if (amount != null)
{
effected.getStat().mergeAdd(_stat, _amount);
effected.getStat().mergeAdd(_stat, amount.intValue());
}
}
}

View File

@ -16,6 +16,11 @@
*/
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;
@ -27,23 +32,34 @@ import org.l2jmobius.gameserver.model.stats.Stat;
*/
public class StatAddForLevel extends AbstractEffect
{
private final int _level;
private final Stat _stat;
private final double _amount;
private final Map<Integer, Integer> _values;
public StatAddForLevel(StatSet params)
{
_level = params.getInt("level", 0);
_stat = params.getEnum("stat", Stat.class);
_amount = params.getDouble("amount", 0);
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.DIFF) != StatModifierType.DIFF)
{
LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode.");
}
}
@Override
public void pump(Creature effected, Skill skill)
{
if (effected.getLevel() == _level)
final Integer amount = _values.get(effected.getLevel());
if (amount != null)
{
effected.getStat().mergeAdd(_stat, _amount);
effected.getStat().mergeAdd(_stat, amount.intValue());
}
}
}

View File

@ -16,6 +16,11 @@
*/
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;
@ -27,23 +32,34 @@ import org.l2jmobius.gameserver.model.stats.Stat;
*/
public class StatAddForLevel extends AbstractEffect
{
private final int _level;
private final Stat _stat;
private final double _amount;
private final Map<Integer, Integer> _values;
public StatAddForLevel(StatSet params)
{
_level = params.getInt("level", 0);
_stat = params.getEnum("stat", Stat.class);
_amount = params.getDouble("amount", 0);
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.DIFF) != StatModifierType.DIFF)
{
LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode.");
}
}
@Override
public void pump(Creature effected, Skill skill)
{
if (effected.getLevel() == _level)
final Integer amount = _values.get(effected.getLevel());
if (amount != null)
{
effected.getStat().mergeAdd(_stat, _amount);
effected.getStat().mergeAdd(_stat, amount.intValue());
}
}
}

View File

@ -16,6 +16,11 @@
*/
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;
@ -27,23 +32,34 @@ import org.l2jmobius.gameserver.model.stats.Stat;
*/
public class StatAddForLevel extends AbstractEffect
{
private final int _level;
private final Stat _stat;
private final double _amount;
private final Map<Integer, Integer> _values;
public StatAddForLevel(StatSet params)
{
_level = params.getInt("level", 0);
_stat = params.getEnum("stat", Stat.class);
_amount = params.getDouble("amount", 0);
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.DIFF) != StatModifierType.DIFF)
{
LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode.");
}
}
@Override
public void pump(Creature effected, Skill skill)
{
if (effected.getLevel() == _level)
final Integer amount = _values.get(effected.getLevel());
if (amount != null)
{
effected.getStat().mergeAdd(_stat, _amount);
effected.getStat().mergeAdd(_stat, amount.intValue());
}
}
}

View File

@ -16,6 +16,11 @@
*/
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;
@ -27,23 +32,34 @@ import org.l2jmobius.gameserver.model.stats.Stat;
*/
public class StatAddForLevel extends AbstractEffect
{
private final int _level;
private final Stat _stat;
private final double _amount;
private final Map<Integer, Integer> _values;
public StatAddForLevel(StatSet params)
{
_level = params.getInt("level", 0);
_stat = params.getEnum("stat", Stat.class);
_amount = params.getDouble("amount", 0);
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.DIFF) != StatModifierType.DIFF)
{
LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode.");
}
}
@Override
public void pump(Creature effected, Skill skill)
{
if (effected.getLevel() == _level)
final Integer amount = _values.get(effected.getLevel());
if (amount != null)
{
effected.getStat().mergeAdd(_stat, _amount);
effected.getStat().mergeAdd(_stat, amount.intValue());
}
}
}

View File

@ -16,6 +16,11 @@
*/
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;
@ -27,23 +32,34 @@ import org.l2jmobius.gameserver.model.stats.Stat;
*/
public class StatAddForLevel extends AbstractEffect
{
private final int _level;
private final Stat _stat;
private final double _amount;
private final Map<Integer, Integer> _values;
public StatAddForLevel(StatSet params)
{
_level = params.getInt("level", 0);
_stat = params.getEnum("stat", Stat.class);
_amount = params.getDouble("amount", 0);
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.DIFF) != StatModifierType.DIFF)
{
LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode.");
}
}
@Override
public void pump(Creature effected, Skill skill)
{
if (effected.getLevel() == _level)
final Integer amount = _values.get(effected.getLevel());
if (amount != null)
{
effected.getStat().mergeAdd(_stat, _amount);
effected.getStat().mergeAdd(_stat, amount.intValue());
}
}
}

View File

@ -16,6 +16,11 @@
*/
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;
@ -27,23 +32,34 @@ import org.l2jmobius.gameserver.model.stats.Stat;
*/
public class StatAddForLevel extends AbstractEffect
{
private final int _level;
private final Stat _stat;
private final double _amount;
private final Map<Integer, Integer> _values;
public StatAddForLevel(StatSet params)
{
_level = params.getInt("level", 0);
_stat = params.getEnum("stat", Stat.class);
_amount = params.getDouble("amount", 0);
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.DIFF) != StatModifierType.DIFF)
{
LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode.");
}
}
@Override
public void pump(Creature effected, Skill skill)
{
if (effected.getLevel() == _level)
final Integer amount = _values.get(effected.getLevel());
if (amount != null)
{
effected.getStat().mergeAdd(_stat, _amount);
effected.getStat().mergeAdd(_stat, amount.intValue());
}
}
}

View File

@ -16,6 +16,11 @@
*/
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;
@ -27,23 +32,34 @@ import org.l2jmobius.gameserver.model.stats.Stat;
*/
public class StatAddForLevel extends AbstractEffect
{
private final int _level;
private final Stat _stat;
private final double _amount;
private final Map<Integer, Integer> _values;
public StatAddForLevel(StatSet params)
{
_level = params.getInt("level", 0);
_stat = params.getEnum("stat", Stat.class);
_amount = params.getDouble("amount", 0);
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.DIFF) != StatModifierType.DIFF)
{
LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode.");
}
}
@Override
public void pump(Creature effected, Skill skill)
{
if (effected.getLevel() == _level)
final Integer amount = _values.get(effected.getLevel());
if (amount != null)
{
effected.getStat().mergeAdd(_stat, _amount);
effected.getStat().mergeAdd(_stat, amount.intValue());
}
}
}

View File

@ -16,6 +16,11 @@
*/
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;
@ -27,23 +32,34 @@ import org.l2jmobius.gameserver.model.stats.Stat;
*/
public class StatAddForLevel extends AbstractEffect
{
private final int _level;
private final Stat _stat;
private final double _amount;
private final Map<Integer, Integer> _values;
public StatAddForLevel(StatSet params)
{
_level = params.getInt("level", 0);
_stat = params.getEnum("stat", Stat.class);
_amount = params.getDouble("amount", 0);
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.DIFF) != StatModifierType.DIFF)
{
LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode.");
}
}
@Override
public void pump(Creature effected, Skill skill)
{
if (effected.getLevel() == _level)
final Integer amount = _values.get(effected.getLevel());
if (amount != null)
{
effected.getStat().mergeAdd(_stat, _amount);
effected.getStat().mergeAdd(_stat, amount.intValue());
}
}
}

View File

@ -16,6 +16,11 @@
*/
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;
@ -27,23 +32,34 @@ import org.l2jmobius.gameserver.model.stats.Stat;
*/
public class StatAddForLevel extends AbstractEffect
{
private final int _level;
private final Stat _stat;
private final double _amount;
private final Map<Integer, Integer> _values;
public StatAddForLevel(StatSet params)
{
_level = params.getInt("level", 0);
_stat = params.getEnum("stat", Stat.class);
_amount = params.getDouble("amount", 0);
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.DIFF) != StatModifierType.DIFF)
{
LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode.");
}
}
@Override
public void pump(Creature effected, Skill skill)
{
if (effected.getLevel() == _level)
final Integer amount = _values.get(effected.getLevel());
if (amount != null)
{
effected.getStat().mergeAdd(_stat, _amount);
effected.getStat().mergeAdd(_stat, amount.intValue());
}
}
}

View File

@ -16,6 +16,11 @@
*/
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;
@ -27,23 +32,34 @@ import org.l2jmobius.gameserver.model.stats.Stat;
*/
public class StatAddForLevel extends AbstractEffect
{
private final int _level;
private final Stat _stat;
private final double _amount;
private final Map<Integer, Integer> _values;
public StatAddForLevel(StatSet params)
{
_level = params.getInt("level", 0);
_stat = params.getEnum("stat", Stat.class);
_amount = params.getDouble("amount", 0);
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.DIFF) != StatModifierType.DIFF)
{
LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode.");
}
}
@Override
public void pump(Creature effected, Skill skill)
{
if (effected.getLevel() == _level)
final Integer amount = _values.get(effected.getLevel());
if (amount != null)
{
effected.getStat().mergeAdd(_stat, _amount);
effected.getStat().mergeAdd(_stat, amount.intValue());
}
}
}

View File

@ -402,6 +402,9 @@
<stat type="pAtkRange">40</stat>
<stat type="randomDamage">10</stat>
</stats>
<skills>
<skill id="50370" level="1" /> <!-- Aden's Sword -->
</skills>
</item>
<item id="93029" name="Aden Dagger" type="Weapon">
<set name="icon" val="icon.weapon_knife_o'_silenus_i00" />
@ -426,6 +429,9 @@
<stat type="pAtkRange">40</stat>
<stat type="randomDamage">5</stat>
</stats>
<skills>
<skill id="50371" level="1" /> <!-- Aden's Dagger -->
</skills>
</item>
<item id="93030" name="Aden Bow" type="Weapon">
<set name="icon" val="icon.weapon_gastraphetes_i00" />
@ -452,6 +458,9 @@
<stat type="randomDamage">5</stat>
<stat type="pAtkRange">500</stat>
</stats>
<skills>
<skill id="50372" level="1" /> <!-- Aden's Bow -->
</skills>
</item>
<item id="93031" name="Aden Club" type="Weapon">
<set name="icon" val="icon.weapon_war_pick_i00" />
@ -477,6 +486,9 @@
<stat type="rEvas">8</stat>
<stat type="randomDamage">19</stat>
</stats>
<skills>
<skill id="50373" level="1" /> <!-- Aden's Club -->
</skills>
</item>
<item id="93032" name="Two-handed Sword of Aden" type="Weapon">
<set name="icon" val="icon.weapon_flamberge_i00" />
@ -501,6 +513,9 @@
<stat type="pAtkRange">40</stat>
<stat type="randomDamage">10</stat>
</stats>
<skills>
<skill id="50374" level="1" /> <!-- Aden's Two-handed Sword -->
</skills>
</item>
<item id="93033" name="Two-Handed Blunt Weapon of Aden" type="Weapon">
<set name="icon" val="icon.weapon_ghost_staff_i00" />
@ -527,6 +542,9 @@
<stat type="rEvas">8</stat>
<stat type="randomDamage">19</stat>
</stats>
<skills>
<skill id="50375" level="1" /> <!-- Aden's Two-handed Blunt Weapon -->
</skills>
</item>
<item id="93034" name="Aden Spear" type="Weapon">
<set name="icon" val="icon.weapon_dwarven_trident_i00" />
@ -551,6 +569,10 @@
<stat type="pAtkRange">40</stat>
<stat type="randomDamage">10</stat>
</stats>
<skills>
<skill id="50376" level="1" /> <!-- Aden's Spear -->
<skill id="3599" level="1" /> <!-- Polearm Multi-attack -->
</skills>
</item>
<item id="93035" name="Aden Fist" type="Weapon">
<set name="icon" val="icon.weapon_baghnakh_i00" />
@ -576,6 +598,9 @@
<stat type="rEvas">8</stat>
<stat type="randomDamage">5</stat>
</stats>
<skills>
<skill id="50377" level="1" /> <!-- Aden's Fists -->
</skills>
</item>
<item id="93036" name="Aden Rapier" type="Weapon">
<set name="icon" val="icon.weapon_soldat_estoc_i00" />
@ -600,6 +625,9 @@
<stat type="rEvas">8</stat>
<stat type="randomDamage">19</stat>
</stats>
<skills>
<skill id="50378" level="1" /> <!-- Aden's Rapier -->
</skills>
</item>
<item id="93037" name="Aden Ancient Sword" type="Weapon">
<set name="icon" val="icon.weapon_schlaeger_i00" />
@ -624,6 +652,9 @@
<stat type="rEvas">5</stat>
<stat type="randomDamage">15</stat>
</stats>
<skills>
<skill id="50379" level="1" /> <!-- Aden's Ancient Sword -->
</skills>
</item>
<item id="93038" name="Scroll: Enchant Aden Weapon" type="EtcItem">
<!-- <font color=bbaa88><When enchanted from +1 to +3></font>. One-handed sword/ blunt weapon, dagger, spear: P. Atk. +4, M. Atk. +3. Two-handed blunt weapons, dual swords, fist weapon: P. Atk. +5, M. Atk. +3. Bow: P. Atk. +8, M. Atk. +3. <font color=bbaa88><When enchanted to +4 or higher></font>. One-handed sword/ blunt weapon, dagger, spear: P. Atk. +8, M. Atk. +6. Two-handed blunt weapons, dual swords, fist weapon: P. Atk. +10, M. Atk. +6. Bow: P. Atk. +16, M. Atk. +6. <font color=eeaa22>Safe enchanting to +4. Only for Aden weapons</font>. <font color=ff6666>Max enchant value: +4</font> -->

View File

@ -3211,44 +3211,14 @@
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>PHYSICAL_ATTACK</stat>
<amount>
<value level="1">17</value>
<value level="2">33</value>
<value level="3">51</value>
<value level="4">68</value>
<value level="5">84</value>
<value level="6">101</value>
</amount>
<mode>DIFF</mode>
<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">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>MAGIC_ATTACK</stat>
<amount>
<value level="1">10</value>
<value level="2">20</value>
<value level="3">31</value>
<value level="4">41</value>
<value level="5">51</value>
<value level="6">61</value>
</amount>
<mode>DIFF</mode>
<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>
</effect>
</effects>
</skill>
@ -3258,44 +3228,14 @@
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>PHYSICAL_ATTACK</stat>
<amount>
<value level="1">15</value>
<value level="2">30</value>
<value level="3">46</value>
<value level="4">61</value>
<value level="5">76</value>
<value level="6">91</value>
</amount>
<mode>DIFF</mode>
<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">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>MAGIC_ATTACK</stat>
<amount>
<value level="1">10</value>
<value level="2">20</value>
<value level="3">31</value>
<value level="4">41</value>
<value level="5">51</value>
<value level="6">61</value>
</amount>
<mode>DIFF</mode>
<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>
</effect>
</effects>
</skill>
@ -3305,44 +3245,14 @@
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>PHYSICAL_ATTACK</stat>
<amount>
<value level="1">33</value>
<value level="2">63</value>
<value level="3">96</value>
<value level="4">129</value>
<value level="5">159</value>
<value level="6">192</value>
</amount>
<mode>DIFF</mode>
<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">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>MAGIC_ATTACK</stat>
<amount>
<value level="1">10</value>
<value level="2">19</value>
<value level="3">29</value>
<value level="4">38</value>
<value level="5">47</value>
<value level="6">57</value>
</amount>
<mode>DIFF</mode>
<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>
</effect>
</effects>
</skill>
@ -3352,44 +3262,14 @@
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>PHYSICAL_ATTACK</stat>
<amount>
<value level="1">17</value>
<value level="2">33</value>
<value level="3">51</value>
<value level="4">68</value>
<value level="5">84</value>
<value level="6">101</value>
</amount>
<mode>DIFF</mode>
<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">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>MAGIC_ATTACK</stat>
<amount>
<value level="1">10</value>
<value level="2">20</value>
<value level="3">31</value>
<value level="4">41</value>
<value level="5">51</value>
<value level="6">61</value>
</amount>
<mode>DIFF</mode>
<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>
</effect>
</effects>
</skill>
@ -3399,44 +3279,14 @@
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>PHYSICAL_ATTACK</stat>
<amount>
<value level="1">21</value>
<value level="2">41</value>
<value level="3">62</value>
<value level="4">83</value>
<value level="5">103</value>
<value level="6">124</value>
</amount>
<mode>DIFF</mode>
<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">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>MAGIC_ATTACK</stat>
<amount>
<value level="1">10</value>
<value level="2">20</value>
<value level="3">31</value>
<value level="4">41</value>
<value level="5">51</value>
<value level="6">61</value>
</amount>
<mode>DIFF</mode>
<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>
</effect>
</effects>
</skill>
@ -3446,44 +3296,14 @@
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>PHYSICAL_ATTACK</stat>
<amount>
<value level="1">18</value>
<value level="2">35</value>
<value level="3">53</value>
<value level="4">70</value>
<value level="5">87</value>
<value level="6">105</value>
</amount>
<mode>DIFF</mode>
<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">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>MAGIC_ATTACK</stat>
<amount>
<value level="1">14</value>
<value level="2">27</value>
<value level="3">41</value>
<value level="4">55</value>
<value level="5">68</value>
<value level="6">82</value>
</amount>
<mode>DIFF</mode>
<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>
</effect>
</effects>
</skill>
@ -3493,44 +3313,14 @@
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>PHYSICAL_ATTACK</stat>
<amount>
<value level="1">17</value>
<value level="2">33</value>
<value level="3">51</value>
<value level="4">68</value>
<value level="5">84</value>
<value level="6">101</value>
</amount>
<mode>DIFF</mode>
<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">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>MAGIC_ATTACK</stat>
<amount>
<value level="1">10</value>
<value level="2">20</value>
<value level="3">31</value>
<value level="4">41</value>
<value level="5">51</value>
<value level="6">61</value>
</amount>
<mode>DIFF</mode>
<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>
</effect>
</effects>
</skill>
@ -3540,44 +3330,14 @@
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>PHYSICAL_ATTACK</stat>
<amount>
<value level="1">21</value>
<value level="2">41</value>
<value level="3">62</value>
<value level="4">83</value>
<value level="5">103</value>
<value level="6">124</value>
</amount>
<mode>DIFF</mode>
<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">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>MAGIC_ATTACK</stat>
<amount>
<value level="1">10</value>
<value level="2">20</value>
<value level="3">31</value>
<value level="4">41</value>
<value level="5">51</value>
<value level="6">61</value>
</amount>
<mode>DIFF</mode>
<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>
</effect>
</effects>
</skill>
@ -3587,44 +3347,14 @@
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>PHYSICAL_ATTACK</stat>
<amount>
<value level="1">16</value>
<value level="2">32</value>
<value level="3">49</value>
<value level="4">65</value>
<value level="5">81</value>
<value level="6">97</value>
</amount>
<mode>DIFF</mode>
<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">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>MAGIC_ATTACK</stat>
<amount>
<value level="1">14</value>
<value level="2">26</value>
<value level="3">40</value>
<value level="4">54</value>
<value level="5">66</value>
<value level="6">80</value>
</amount>
<mode>DIFF</mode>
<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>
</effect>
</effects>
</skill>
@ -3634,44 +3364,14 @@
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>PHYSICAL_ATTACK</stat>
<amount>
<value level="1">20</value>
<value level="2">38</value>
<value level="3">58</value>
<value level="4">77</value>
<value level="5">95</value>
<value level="6">115</value>
</amount>
<mode>DIFF</mode>
<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">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>MAGIC_ATTACK</stat>
<amount>
<value level="1">10</value>
<value level="2">20</value>
<value level="3">31</value>
<value level="4">41</value>
<value level="5">51</value>
<value level="6">61</value>
</amount>
<mode>DIFF</mode>
<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>
</effect>
</effects>
</skill>

View File

@ -1602,8 +1602,8 @@
<xs:element name="zoneId" type="xs:unsignedByte" />
<xs:element name="instanceId" type="xs:string" />
<xs:element name="level">
<xs:complexType>
<xs:sequence>
<xs:complexType mixed="true">
<xs:sequence minOccurs="0">
<xs:element maxOccurs="unbounded" name="value">
<xs:complexType>
<xs:simpleContent>

View File

@ -16,6 +16,11 @@
*/
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;
@ -27,23 +32,34 @@ import org.l2jmobius.gameserver.model.stats.Stat;
*/
public class StatAddForLevel extends AbstractEffect
{
private final int _level;
private final Stat _stat;
private final double _amount;
private final Map<Integer, Integer> _values;
public StatAddForLevel(StatSet params)
{
_level = params.getInt("level", 0);
_stat = params.getEnum("stat", Stat.class);
_amount = params.getDouble("amount", 0);
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.DIFF) != StatModifierType.DIFF)
{
LOGGER.warning(getClass().getSimpleName() + " can only use DIFF mode.");
}
}
@Override
public void pump(Creature effected, Skill skill)
{
if (effected.getLevel() == _level)
final Integer amount = _values.get(effected.getLevel());
if (amount != null)
{
effected.getStat().mergeAdd(_stat, _amount);
effected.getStat().mergeAdd(_stat, amount.intValue());
}
}
}

View File

@ -402,6 +402,9 @@
<stat type="pAtkRange">40</stat>
<stat type="randomDamage">10</stat>
</stats>
<skills>
<skill id="50370" level="1" /> <!-- Aden's Sword -->
</skills>
</item>
<item id="93029" name="Aden's Dagger" additionalName="Sealed" type="Weapon">
<set name="icon" val="icon.weapon_knife_o'_silenus_i00" />
@ -426,6 +429,9 @@
<stat type="pAtkRange">40</stat>
<stat type="randomDamage">5</stat>
</stats>
<skills>
<skill id="50371" level="1" /> <!-- Aden's Dagger -->
</skills>
</item>
<item id="93030" name="Aden's Bow" additionalName="Sealed" type="Weapon">
<set name="icon" val="icon.weapon_gastraphetes_i00" />
@ -452,6 +458,9 @@
<stat type="randomDamage">5</stat>
<stat type="pAtkRange">500</stat>
</stats>
<skills>
<skill id="50372" level="1" /> <!-- Aden's Bow -->
</skills>
</item>
<item id="93031" name="Aden's Club" additionalName="Sealed" type="Weapon">
<set name="icon" val="icon.weapon_war_pick_i00" />
@ -477,6 +486,9 @@
<stat type="rEvas">8</stat>
<stat type="randomDamage">19</stat>
</stats>
<skills>
<skill id="50373" level="1" /> <!-- Aden's Club -->
</skills>
</item>
<item id="93032" name="Aden's Two-handed Sword" additionalName="Sealed" type="Weapon">
<set name="icon" val="icon.weapon_flamberge_i00" />
@ -501,6 +513,9 @@
<stat type="pAtkRange">40</stat>
<stat type="randomDamage">10</stat>
</stats>
<skills>
<skill id="50374" level="1" /> <!-- Aden's Two-handed Sword -->
</skills>
</item>
<item id="93033" name="Aden's Two-handed Blunt Weapon" additionalName="Sealed" type="Weapon">
<set name="icon" val="icon.weapon_ghost_staff_i00" />
@ -527,6 +542,9 @@
<stat type="rEvas">8</stat>
<stat type="randomDamage">19</stat>
</stats>
<skills>
<skill id="50375" level="1" /> <!-- Aden's Two-handed Blunt Weapon -->
</skills>
</item>
<item id="93034" name="Aden's Spear" additionalName="Sealed" type="Weapon">
<set name="icon" val="icon.weapon_dwarven_trident_i00" />
@ -551,6 +569,10 @@
<stat type="pAtkRange">40</stat>
<stat type="randomDamage">10</stat>
</stats>
<skills>
<skill id="50376" level="1" /> <!-- Aden's Spear -->
<skill id="3599" level="1" /> <!-- Polearm Multi-attack -->
</skills>
</item>
<item id="93035" name="Aden's Fists" additionalName="Sealed" type="Weapon">
<set name="icon" val="icon.weapon_baghnakh_i00" />
@ -576,6 +598,9 @@
<stat type="rEvas">8</stat>
<stat type="randomDamage">5</stat>
</stats>
<skills>
<skill id="50377" level="1" /> <!-- Aden's Fists -->
</skills>
</item>
<item id="93036" name="Aden's Rapier" additionalName="Sealed" type="Weapon">
<set name="icon" val="icon.weapon_soldat_estoc_i00" />
@ -600,6 +625,9 @@
<stat type="rEvas">8</stat>
<stat type="randomDamage">19</stat>
</stats>
<skills>
<skill id="50378" level="1" /> <!-- Aden's Rapier -->
</skills>
</item>
<item id="93037" name="Aden's Ancient Sword" additionalName="Sealed" type="Weapon">
<set name="icon" val="icon.weapon_schlaeger_i00" />
@ -624,6 +652,9 @@
<stat type="rEvas">5</stat>
<stat type="randomDamage">15</stat>
</stats>
<skills>
<skill id="50379" level="1" /> <!-- Aden's Ancient Sword -->
</skills>
</item>
<item id="93038" name="Scroll: Enchant Aden's Weapon" additionalName="Sealed" type="EtcItem">
<!-- <font color=bbaa88><When enchanted from +1 to +3></font>. One-handed sword/ blunt weapon, dagger, spear: P. Atk. +4, M. Atk. +3. Two-handed blunt weapons, dual swords, fist weapon: P. Atk. +5, M. Atk. +3. Bow: P. Atk. +8, M. Atk. +3. <font color=bbaa88><When enchanted to +4 or higher></font>. One-handed sword/ blunt weapon, dagger, spear: P. Atk. +8, M. Atk. +6. Two-handed blunt weapons, dual swords, fist weapon: P. Atk. +10, M. Atk. +6. Bow: P. Atk. +16, M. Atk. +6. <font color=eeaa22>Safe enchanting to +4. Only for Aden weapons</font>. <font color=ff6666>Max enchant value: +4</font> -->

View File

@ -2097,6 +2097,9 @@
<stat type="randomDamage">5</stat>
<stat type="pAtkRange">400</stat>
</stats>
<skills>
<skill id="50498" level="1" /> <!-- Aden's Pistols -->
</skills>
</item>
<item id="94898" name="Leather Boots" additionalName="Sealed" type="Armor">
<set name="icon" val="icon.armor_t09_b_i00" />

View File

@ -1327,6 +1327,9 @@
<stat type="randomDamage">10</stat>
<stat type="pAtkRange">40</stat>
</stats>
<skills>
<skill id="50517" level="1" /> <!-- Aden's Dual Swords -->
</skills>
</item>
<item id="95692" name="Aden's Treasure Chest (Time-limited)" additionalName="Sealed" type="EtcItem">
<!-- Double-click to obtain Berserker's Scroll (2 pcs.) and a random item from the list. -->

View File

@ -3221,44 +3221,14 @@
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>PHYSICAL_ATTACK</stat>
<amount>
<value level="1">17</value>
<value level="2">33</value>
<value level="3">51</value>
<value level="4">68</value>
<value level="5">84</value>
<value level="6">101</value>
</amount>
<mode>DIFF</mode>
<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">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>MAGIC_ATTACK</stat>
<amount>
<value level="1">10</value>
<value level="2">20</value>
<value level="3">31</value>
<value level="4">41</value>
<value level="5">51</value>
<value level="6">61</value>
</amount>
<mode>DIFF</mode>
<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>
</effect>
</effects>
</skill>
@ -3268,44 +3238,14 @@
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>PHYSICAL_ATTACK</stat>
<amount>
<value level="1">15</value>
<value level="2">30</value>
<value level="3">46</value>
<value level="4">61</value>
<value level="5">76</value>
<value level="6">91</value>
</amount>
<mode>DIFF</mode>
<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">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>MAGIC_ATTACK</stat>
<amount>
<value level="1">10</value>
<value level="2">20</value>
<value level="3">31</value>
<value level="4">41</value>
<value level="5">51</value>
<value level="6">61</value>
</amount>
<mode>DIFF</mode>
<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>
</effect>
</effects>
</skill>
@ -3315,44 +3255,14 @@
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>PHYSICAL_ATTACK</stat>
<amount>
<value level="1">33</value>
<value level="2">63</value>
<value level="3">96</value>
<value level="4">129</value>
<value level="5">159</value>
<value level="6">192</value>
</amount>
<mode>DIFF</mode>
<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">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>MAGIC_ATTACK</stat>
<amount>
<value level="1">10</value>
<value level="2">19</value>
<value level="3">29</value>
<value level="4">38</value>
<value level="5">47</value>
<value level="6">57</value>
</amount>
<mode>DIFF</mode>
<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>
</effect>
</effects>
</skill>
@ -3362,44 +3272,14 @@
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>PHYSICAL_ATTACK</stat>
<amount>
<value level="1">17</value>
<value level="2">33</value>
<value level="3">51</value>
<value level="4">68</value>
<value level="5">84</value>
<value level="6">101</value>
</amount>
<mode>DIFF</mode>
<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">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>MAGIC_ATTACK</stat>
<amount>
<value level="1">10</value>
<value level="2">20</value>
<value level="3">31</value>
<value level="4">41</value>
<value level="5">51</value>
<value level="6">61</value>
</amount>
<mode>DIFF</mode>
<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>
</effect>
</effects>
</skill>
@ -3409,44 +3289,14 @@
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>PHYSICAL_ATTACK</stat>
<amount>
<value level="1">21</value>
<value level="2">41</value>
<value level="3">62</value>
<value level="4">83</value>
<value level="5">103</value>
<value level="6">124</value>
</amount>
<mode>DIFF</mode>
<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">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>MAGIC_ATTACK</stat>
<amount>
<value level="1">10</value>
<value level="2">20</value>
<value level="3">31</value>
<value level="4">41</value>
<value level="5">51</value>
<value level="6">61</value>
</amount>
<mode>DIFF</mode>
<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>
</effect>
</effects>
</skill>
@ -3456,44 +3306,14 @@
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>PHYSICAL_ATTACK</stat>
<amount>
<value level="1">18</value>
<value level="2">35</value>
<value level="3">53</value>
<value level="4">70</value>
<value level="5">87</value>
<value level="6">105</value>
</amount>
<mode>DIFF</mode>
<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">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>MAGIC_ATTACK</stat>
<amount>
<value level="1">14</value>
<value level="2">27</value>
<value level="3">41</value>
<value level="4">55</value>
<value level="5">68</value>
<value level="6">82</value>
</amount>
<mode>DIFF</mode>
<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>
</effect>
</effects>
</skill>
@ -3503,44 +3323,14 @@
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>PHYSICAL_ATTACK</stat>
<amount>
<value level="1">17</value>
<value level="2">33</value>
<value level="3">51</value>
<value level="4">68</value>
<value level="5">84</value>
<value level="6">101</value>
</amount>
<mode>DIFF</mode>
<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">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>MAGIC_ATTACK</stat>
<amount>
<value level="1">10</value>
<value level="2">20</value>
<value level="3">31</value>
<value level="4">41</value>
<value level="5">51</value>
<value level="6">61</value>
</amount>
<mode>DIFF</mode>
<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>
</effect>
</effects>
</skill>
@ -3550,44 +3340,14 @@
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>PHYSICAL_ATTACK</stat>
<amount>
<value level="1">21</value>
<value level="2">41</value>
<value level="3">62</value>
<value level="4">83</value>
<value level="5">103</value>
<value level="6">124</value>
</amount>
<mode>DIFF</mode>
<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">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>MAGIC_ATTACK</stat>
<amount>
<value level="1">10</value>
<value level="2">20</value>
<value level="3">31</value>
<value level="4">41</value>
<value level="5">51</value>
<value level="6">61</value>
</amount>
<mode>DIFF</mode>
<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>
</effect>
</effects>
</skill>
@ -3597,44 +3357,14 @@
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>PHYSICAL_ATTACK</stat>
<amount>
<value level="1">16</value>
<value level="2">32</value>
<value level="3">49</value>
<value level="4">65</value>
<value level="5">81</value>
<value level="6">97</value>
</amount>
<mode>DIFF</mode>
<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">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>MAGIC_ATTACK</stat>
<amount>
<value level="1">14</value>
<value level="2">26</value>
<value level="3">40</value>
<value level="4">54</value>
<value level="5">66</value>
<value level="6">80</value>
</amount>
<mode>DIFF</mode>
<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>
</effect>
</effects>
</skill>
@ -3644,44 +3374,14 @@
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>PHYSICAL_ATTACK</stat>
<amount>
<value level="1">20</value>
<value level="2">38</value>
<value level="3">58</value>
<value level="4">77</value>
<value level="5">95</value>
<value level="6">115</value>
</amount>
<mode>DIFF</mode>
<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">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>MAGIC_ATTACK</stat>
<amount>
<value level="1">10</value>
<value level="2">20</value>
<value level="3">31</value>
<value level="4">41</value>
<value level="5">51</value>
<value level="6">61</value>
</amount>
<mode>DIFF</mode>
<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>
</effect>
</effects>
</skill>

View File

@ -5167,7 +5167,19 @@
<skill id="50498" toLevel="1" name="Aden's Pistols">
<!-- <Level Bonus Effect> P./ M. Atk. are increased depending on level. <Lv. 40-49> P. Atk. +33 M. Atk. +10 <Lv. 50-59> P. Atk. +63 M. Atk. +19 <Lv. 60-64> P. Atk. +96 M. Atk. +29 <Lv. 65-69> P. Atk. +129 M. Atk. +38 <Lv. 70-74> P. Atk. +159 M. Atk. +47 <Lv. 75+> P. Atk. +192 M. Atk. +57 -->
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<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">
<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>
</effect>
</effects>
</skill>
<skill id="50499" toLevel="1" name="Anakim's Divine Pistols">
<!-- A weapon empowered by Anakim's soul. Enables Anakim's power. <When triggered> Anakim's Holy Blast -->

View File

@ -772,44 +772,14 @@
<operateType>P</operateType>
<effects>
<effect name="StatAddForLevel">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>PHYSICAL_ATTACK</stat>
<amount>
<value level="1">21</value>
<value level="2">41</value>
<value level="3">62</value>
<value level="4">83</value>
<value level="5">103</value>
<value level="6">124</value>
</amount>
<mode>DIFF</mode>
<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">
<level>
<value level="1">40</value>
<value level="2">50</value>
<value level="3">60</value>
<value level="4">65</value>
<value level="5">70</value>
<value level="6">75</value>
</level>
<stat>MAGIC_ATTACK</stat>
<amount>
<value level="1">10</value>
<value level="2">20</value>
<value level="3">31</value>
<value level="4">41</value>
<value level="5">51</value>
<value level="6">61</value>
</amount>
<mode>DIFF</mode>
<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>
</effect>
</effects>
</skill>

View File

@ -1662,8 +1662,8 @@
<xs:element name="instanceId" type="xs:string" />
<xs:element name="skills" type="xs:string" />
<xs:element name="level">
<xs:complexType>
<xs:sequence>
<xs:complexType mixed="true">
<xs:sequence minOccurs="0">
<xs:element maxOccurs="unbounded" name="value">
<xs:complexType>
<xs:simpleContent>