-Added two new effects (BlockTarget & Duel).

-Added <target hp="n%" /> condition (example - Last Attack skill).
-Updated DamOverTime effect - add increase charges count over time.
-Updated EnergyAttack effect to new charges system.
-Updated FatalBlow effect (able to increase skill power damage if target has affected by selected abnormal type).
-Added parameter ignorePhysDefPercent for skills that ignores some % of enemy pDef.
-Added function isInvulnerableFor(player) and updated PcCondOverride for this function.
-NPC and NPC buffers data updated for Othell Ground skill Poison Zone.
-Updated PhysicalAttack effect for skills, that decreases power when using some weapon types, and increases power when using some weapon types. also added isLastAttack parameter (for skill Last Attack atm).
-Added stat momentumSkillPower (for Tyrr' passive). Increases power when player have more charges (max 3).
-Updated some effect for working with maxSkillDamage parameter.
-Updated some old and new skills to 10531.

Contributed by NviX.
This commit is contained in:
MobiusDev
2015-07-14 20:03:39 +00:00
parent b07f46dc5c
commit d722c7a961
26 changed files with 2227 additions and 1002 deletions

View File

@ -25,6 +25,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.actor.instance.L2TamedBeastInstance;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.model.zone.ZoneId;
import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
import com.l2jserver.gameserver.util.Util;
/**
@ -57,6 +58,12 @@ public class NpcBufferAI implements Runnable
final Skill skill = _skillData.getSkill();
final L2PcInstance player = _npc.getSummoner().getActingPlayer();
if (skill.getId() == 10523)
{
// fix for visual effect not show
_npc.broadcastPacket(new MagicSkillUse(_npc, skill.getId(), skill.getLevel(), 1, 0));
}
switch (_skillData.getAffectScope())
{
case PARTY:

View File

@ -98,4 +98,22 @@
<npc id="13267"> <!-- Virtual Image -->
<skill id="5272" level="17" delay="5" affectScope="RANGE" affectObject="NOT_FRIEND" /> <!-- Decoy Provocation -->
</npc>
<npc id="13310">
<skill id="10523" level="1" initialDelay="1" delay="2" affectScope="RANGE" affectObject="NOT_FRIEND" /> <!-- Poisoned -->
</npc>
<npc id="13377">
<skill id="10523" level="2" initialDelay="1" delay="2" affectScope="RANGE" affectObject="NOT_FRIEND" /> <!-- Poisoned -->
</npc>
<npc id="13378">
<skill id="10523" level="3" initialDelay="1" delay="2" affectScope="RANGE" affectObject="NOT_FRIEND" /> <!-- Poisoned -->
</npc>
<npc id="13379">
<skill id="10523" level="4" initialDelay="1" delay="2" affectScope="RANGE" affectObject="NOT_FRIEND" /> <!-- Poisoned -->
</npc>
<npc id="13380">
<skill id="10523" level="5" initialDelay="1" delay="2" affectScope="RANGE" affectObject="NOT_FRIEND" /> <!-- Poisoned -->
</npc>
<npc id="13381">
<skill id="10523" level="6" initialDelay="1" delay="2" affectScope="RANGE" affectObject="NOT_FRIEND" /> <!-- Poisoned -->
</npc>
</list>

View File

@ -46,6 +46,7 @@ public final class EffectMasterHandler
BlockParty.class,
BlockBuffSlot.class,
BlockResurrection.class,
BlockTarget.class,
Bluff.class,
Buff.class,
CallParty.class,
@ -81,6 +82,7 @@ public final class EffectMasterHandler
DispelByCategory.class,
DispelBySlot.class,
DispelBySlotProbability.class,
Duel.class,
EnableCloak.class,
EnemyCharge.class,
EnergyAttack.class,

View File

@ -0,0 +1,60 @@
/*
* Copyright (C) 2004-2015 L2J Server
*
* This file is part of L2J Server.
*
* L2J Server is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* L2J Server is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package handlers.effecthandlers;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.L2Playable;
import com.l2jserver.gameserver.model.conditions.Condition;
import com.l2jserver.gameserver.model.effects.AbstractEffect;
import com.l2jserver.gameserver.model.skills.BuffInfo;
/**
* @author NviX
*/
public final class BlockTarget extends AbstractEffect
{
public BlockTarget(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
{
super(attachCond, applyCond, set, params);
}
@Override
public void onStart(BuffInfo info)
{
if (info.getEffected().isPlayable())
{
info.getEffected().setTarget(null);
info.getEffected().abortAttack();
info.getEffected().abortCast();
info.getEffected().getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE, info.getEffected());
((L2Playable) info.getEffected()).setLockedTarget(info.getEffected());
}
}
@Override
public void onExit(BuffInfo info)
{
if (info.getEffected().isPlayable())
{
((L2Playable) info.getEffected()).setLockedTarget(null);
}
}
}

View File

@ -32,6 +32,7 @@ public final class DamOverTime extends AbstractEffect
{
private final boolean _canKill;
private final double _power;
private final int _charge;
public DamOverTime(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
{
@ -39,6 +40,7 @@ public final class DamOverTime extends AbstractEffect
_canKill = params.getBoolean("canKill", false);
_power = params.getDouble("power", 0);
_charge = params.getInt("charge", 0);
}
@Override
@ -76,6 +78,16 @@ public final class DamOverTime extends AbstractEffect
}
}
if ((_charge != 0) && (info.getEffected().getActingPlayer().getCharges() >= _charge))
{
info.getEffected().sendPacket(SystemMessageId.YOUR_FORCE_HAS_REACHED_MAXIMUM_CAPACITY);
return false;
}
else if (_charge != 0)
{
info.getEffected().getActingPlayer().increaseCharges(1, _charge);
}
info.getEffected().reduceCurrentHpByDOT(damage, info.getEffector(), info.getSkill());
info.getEffected().notifyDamageReceived(damage, info.getEffector(), info.getSkill(), false, true);
return info.getSkill().isToggle();

View File

@ -0,0 +1,69 @@
/*
* Copyright (C) 2004-2015 L2J Server
*
* This file is part of L2J Server.
*
* L2J Server is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* L2J Server is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package handlers.effecthandlers;
import com.l2jserver.gameserver.datatables.SkillData;
import com.l2jserver.gameserver.model.PcCondOverride;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.conditions.Condition;
import com.l2jserver.gameserver.model.effects.AbstractEffect;
import com.l2jserver.gameserver.model.skills.BuffInfo;
import com.l2jserver.gameserver.model.skills.Skill;
/**
* @author NviX
*/
public final class Duel extends AbstractEffect
{
public Duel(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
{
super(attachCond, applyCond, set, params);
}
@Override
public void onStart(BuffInfo info)
{
L2PcInstance effector = info.getEffector().getActingPlayer();
L2PcInstance effected = info.getEffected().getActingPlayer();
if (effected.isDead() || (effector == null) || (effected.getPvpFlag() == 0))
{
return;
}
Skill skill = SkillData.getInstance().getSkill(10319, 1);
skill.applyEffects(effector, effector);
effector.setIsInvul(true);
effected.addOverrideCond(PcCondOverride.VULNERABLE_ALL_PLAYERS);
effected.setTarget(effector);
effected.setLockedTarget(effector);
}
@Override
public void onExit(BuffInfo info)
{
info.getEffected().getActingPlayer().setLockedTarget(null);
info.getEffected().removeOverridedCond(PcCondOverride.VULNERABLE_ALL_PLAYERS);
info.getEffector().setIsInvul(false);
info.getEffector().getEffectList().remove(true, info.getEffector().getEffectList().getBuffInfoBySkillId(10319));
}
}

View File

@ -130,11 +130,27 @@ public final class EnergyAttack extends AbstractEffect
weaponTypeBoost = 77;
}
// charge count should be the count before casting the skill but since its reduced before calling effects
// we add skill consume charges to current charges
double energyChargesBoost = (((attacker.getCharges() + skill.getChargeConsume()) - 1) * 0.2) + 1;
double energyChargesBoost = 1;
if (attacker.getCharges() == 1)
{
energyChargesBoost = 1.1;
attacker.decreaseCharges(1);
}
else if (attacker.getCharges() == 2)
{
energyChargesBoost = 1.2;
attacker.decreaseCharges(2);
}
else if (attacker.getCharges() >= 3)
{
energyChargesBoost = 1.3;
attacker.decreaseCharges(3);
}
double addPower = (attacker.getStat().calcStat(Stats.MOMENTUM_SKILL_POWER, 1, null, null));
attack += _power;
attack *= addPower;
attack *= ssBoost;
attack *= energyChargesBoost;
attack *= weaponTypeBoost;
@ -157,6 +173,13 @@ public final class EnergyAttack extends AbstractEffect
if (damage > 0)
{
// reduce damage if target has maxdamage buff
double maxDamage = (target.getStat().calcStat(Stats.MAX_SKILL_DAMAGE, 0, null, null));
if (maxDamage > 0)
{
damage = (int) maxDamage;
}
attacker.sendDamageMessage(target, (int) damage, false, critical, false);
target.reduceCurrentHp(damage, attacker, skill);
target.notifyDamageReceived(damage, attacker, skill, critical, false);
@ -165,4 +188,4 @@ public final class EnergyAttack extends AbstractEffect
Formulas.calcDamageReflected(attacker, target, skill, critical);
}
}
}
}

View File

@ -18,6 +18,8 @@
*/
package handlers.effecthandlers;
import java.util.StringTokenizer;
import com.l2jserver.gameserver.enums.ShotType;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.L2Character;
@ -25,9 +27,11 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.conditions.Condition;
import com.l2jserver.gameserver.model.effects.AbstractEffect;
import com.l2jserver.gameserver.model.effects.L2EffectType;
import com.l2jserver.gameserver.model.skills.AbnormalType;
import com.l2jserver.gameserver.model.skills.BuffInfo;
import com.l2jserver.gameserver.model.stats.BaseStats;
import com.l2jserver.gameserver.model.stats.Formulas;
import com.l2jserver.gameserver.model.stats.Stats;
/**
* Fatal Blow effect implementation.
@ -35,9 +39,15 @@ import com.l2jserver.gameserver.model.stats.Formulas;
*/
public final class FatalBlow extends AbstractEffect
{
private final String _targetAbnormalType;
private final double _skillAddPower;
public FatalBlow(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
{
super(attachCond, applyCond, set, params);
_targetAbnormalType = params.getString("targetAbnormalType", "NULL");
_skillAddPower = params.getDouble("skillAddPower", 1);
}
@Override
@ -73,6 +83,20 @@ public final class FatalBlow extends AbstractEffect
byte shld = Formulas.calcShldUse(activeChar, target, info.getSkill());
double damage = Formulas.calcBlowDamage(activeChar, target, info.getSkill(), shld, ss);
if (_targetAbnormalType != "NULL")
{
StringTokenizer st = new StringTokenizer(_targetAbnormalType, ",");
while (st.hasMoreTokens())
{
String abnormal = st.nextToken().trim();
if (target.getEffectList().getBuffInfoByAbnormalType(AbnormalType.valueOf(abnormal)) != null)
{
damage *= _skillAddPower;
break;
}
}
}
// Crit rate base crit rate for skill, modified with STR bonus
boolean crit = Formulas.calcCrit(info.getSkill().getBaseCritRate() * 10 * BaseStats.STR.calcBonus(activeChar), true, target);
if (crit)
@ -80,6 +104,13 @@ public final class FatalBlow extends AbstractEffect
damage *= 2;
}
// reduce damage if target has maxdamage buff
double maxDamage = (target.getStat().calcStat(Stats.MAX_SKILL_DAMAGE, 0, null, null));
if (maxDamage > 0)
{
damage = (int) maxDamage;
}
target.reduceCurrentHp(damage, activeChar, info.getSkill());
target.notifyDamageReceived(damage, activeChar, info.getSkill(), crit, false);

View File

@ -18,12 +18,15 @@
*/
package handlers.effecthandlers;
import java.util.StringTokenizer;
import com.l2jserver.gameserver.enums.ShotType;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.conditions.Condition;
import com.l2jserver.gameserver.model.effects.AbstractEffect;
import com.l2jserver.gameserver.model.effects.L2EffectType;
import com.l2jserver.gameserver.model.items.type.WeaponType;
import com.l2jserver.gameserver.model.skills.BuffInfo;
import com.l2jserver.gameserver.model.stats.BaseStats;
import com.l2jserver.gameserver.model.stats.Formulas;
@ -37,9 +40,21 @@ import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
*/
public final class PhysicalAttack extends AbstractEffect
{
private final String _type1;
private final double _valueReduce;
private final String _type2;
private final double _valueIncrease;
private final boolean _isLastAttack;
public PhysicalAttack(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
{
super(attachCond, applyCond, set, params);
_type1 = params.getString("weaponTypeDec", "NONE");
_valueReduce = params.getDouble("valueDec", 1);
_type2 = params.getString("weaponTypeInc", "NONE");
_valueIncrease = params.getDouble("valueInc", 1);
_isLastAttack = params.getBoolean("isLastAttack", false);
}
@Override
@ -101,6 +116,30 @@ public final class PhysicalAttack extends AbstractEffect
damage *= 2;
}
if ((activeChar.getActiveWeaponItem() != null) && (_type1 != "NONE") && (_type2 != "NONE"))
{
StringTokenizer st = new StringTokenizer(_type1, ",");
while (st.hasMoreTokens())
{
String item = st.nextToken().trim();
if (activeChar.getActiveWeaponItem().getItemType() == WeaponType.valueOf(item))
{
damage *= _valueReduce;
break;
}
}
st = new StringTokenizer(_type2, ",");
while (st.hasMoreTokens())
{
String item = st.nextToken().trim();
if (activeChar.getActiveWeaponItem().getItemType() == WeaponType.valueOf(item))
{
damage *= _valueIncrease;
break;
}
}
}
if (damage > 0)
{
// reduce damage if target has maxdamage buff
@ -111,8 +150,22 @@ public final class PhysicalAttack extends AbstractEffect
}
activeChar.sendDamageMessage(target, damage, false, crit, false);
target.reduceCurrentHp(damage, activeChar, info.getSkill());
target.notifyDamageReceived(damage, activeChar, info.getSkill(), crit, false);
if (_isLastAttack && !target.isPlayer() && !target.isRaid())
{
if (damage < target.getCurrentHp())
{
target.setCurrentHp(1);
}
else
{
target.reduceCurrentHp(damage, activeChar, info.getSkill());
}
}
else
{
target.reduceCurrentHp(damage, activeChar, info.getSkill());
target.notifyDamageReceived(damage, activeChar, info.getSkill(), crit, false);
}
// Check if damage should be reflected
Formulas.calcDamageReflected(activeChar, target, info.getSkill(), crit);

View File

@ -22,6 +22,7 @@ import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.conditions.Condition;
import com.l2jserver.gameserver.model.effects.AbstractEffect;
import com.l2jserver.gameserver.model.skills.BuffInfo;
import com.l2jserver.gameserver.model.stats.Stats;
/**
* Static Damage effect implementation.
@ -29,7 +30,7 @@ import com.l2jserver.gameserver.model.skills.BuffInfo;
*/
public final class StaticDamage extends AbstractEffect
{
private final int _power;
private int _power;
public StaticDamage(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
{
@ -52,6 +53,13 @@ public final class StaticDamage extends AbstractEffect
return;
}
// reduce damage if target has maxdamage buff
double maxDamage = (info.getEffected().getStat().calcStat(Stats.MAX_SKILL_DAMAGE, 0, null, null));
if (maxDamage > 0)
{
_power = (int) maxDamage;
}
info.getEffected().reduceCurrentHp(_power, info.getEffector(), info.getSkill());
info.getEffected().notifyDamageReceived(_power, info.getEffector(), info.getSkill(), false, false);

View File

@ -224,10 +224,15 @@
<height normal="22.5" />
</collision>
</npc>
<npc id="13310" level="85" type="L2Npc" name="Solo Dance">
<!-- Source http://l2i-god.gaikotsu.ru/ (Lindvior) -->
<npc id="13310" level="85" type="L2EffectPoint" name="Solo Dance">
<parameters>
<param name="skill_delay" value="2" />
<param name="despawn_time" value="15" />
<skill name="union_skill" id="10523" level="1" /> <!-- Poisoned -->
</parameters>
<race>ETC</race>
<stats> <!-- str="88" int="79" dex="55" wit="78" con="82" men="78" -->
<sex>ETC</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="7324" hpRegen="7.5" mp="7324" mpRegen="2.7" />
<attack physical="971" magical="663" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="341" magical="250" />
@ -235,15 +240,29 @@
<defence fire="120" water="120" wind="120" earth="120" holy="120" dark="120" />
</attribute>
<speed>
<walk ground="0" />
<run ground="0" />
<walk ground="50" />
<run ground="20" />
</speed>
<hit_time>398</hit_time>
</stats>
<status attackable="false" />
<status attackable="false" hasSummoner="true" />
<skill_list>
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
<skill id="4390" level="1" /> <!-- NPC Abnormal Immunity -->
<skill id="4408" level="1" /> <!-- HP Increase (1x) -->
<skill id="4409" level="1" /> <!-- MP Increase (1x) -->
<skill id="4410" level="11" /> <!-- Average P. Atk. -->
<skill id="4411" level="11" /> <!-- Average M. Atk. -->
<skill id="4412" level="11" /> <!-- Average P. Def. -->
<skill id="4413" level="11" /> <!-- Average M. Def. -->
<skill id="4414" level="2" /> <!-- Standard Type -->
<skill id="4415" level="3" /> <!-- One-handed Sword -->
<skill id="4416" level="19" /> <!-- Others -->
<skill id="10523" level="1" /> <!-- Poisoned -->
</skill_list>
<ex_crt_effect>true</ex_crt_effect>
<collision>
<radius normal="0.01" />
<height normal="0.01" />
<radius normal="5" />
<height normal="10" />
</collision>
</npc>
<npc id="13311" level="85" type="L2Npc" name="Awakened Knight's Mount">
@ -1774,119 +1793,209 @@
<height normal="10" />
</collision>
</npc>
<npc id="13377" level="87" type="L2Npc" name="Solo Dance">
<!-- Source http://l2i-god.gaikotsu.ru/ (Lindvior) -->
<npc id="13377" level="87" type="L2EffectPoint" name="Solo Dance">
<parameters>
<param name="skill_delay" value="2" />
<param name="despawn_time" value="15" />
<skill name="union_skill" id="10523" level="2" /> <!-- Poisoned -->
</parameters>
<race>ETC</race>
<stats> <!-- str="88" int="79" dex="55" wit="78" con="82" men="78" -->
<vitals hp="8056" hpRegen="7.5" mp="8056" mpRegen="2.7" />
<attack physical="4900" magical="2550" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3840" magical="825" />
<sex>ETC</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="7324" hpRegen="7.5" mp="7324" mpRegen="2.7" />
<attack physical="971" magical="663" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="341" magical="250" />
<attribute>
<defence fire="0" water="0" wind="0" earth="0" holy="0" dark="0" />
<defence fire="120" water="120" wind="120" earth="120" holy="120" dark="120" />
</attribute>
<speed>
<walk ground="50" />
<run ground="186" />
<run ground="20" />
</speed>
<hit_time>333</hit_time>
</stats>
<status attackable="false" />
<ai aggroRange="300" clanHelpRange="300" />
<status attackable="false" hasSummoner="true" />
<skill_list>
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
<skill id="4390" level="1" /> <!-- NPC Abnormal Immunity -->
<skill id="4408" level="1" /> <!-- HP Increase (1x) -->
<skill id="4409" level="1" /> <!-- MP Increase (1x) -->
<skill id="4410" level="11" /> <!-- Average P. Atk. -->
<skill id="4411" level="11" /> <!-- Average M. Atk. -->
<skill id="4412" level="11" /> <!-- Average P. Def. -->
<skill id="4413" level="11" /> <!-- Average M. Def. -->
<skill id="4414" level="2" /> <!-- Standard Type -->
<skill id="4415" level="3" /> <!-- One-handed Sword -->
<skill id="4416" level="19" /> <!-- Others -->
<skill id="10523" level="2" /> <!-- Poisoned -->
</skill_list>
<ex_crt_effect>true</ex_crt_effect>
<collision>
<radius normal="0.01" />
<height normal="0.01" />
<radius normal="5" />
<height normal="10" />
</collision>
</npc>
<npc id="13378" level="90" type="L2Npc" name="Solo Dance">
<!-- Source http://l2i-god.gaikotsu.ru/ (Lindvior) -->
<npc id="13378" level="90" type="L2EffectPoint" name="Solo Dance">
<parameters>
<param name="skill_delay" value="2" />
<param name="despawn_time" value="15" />
<skill name="union_skill" id="10523" level="3" /> <!-- Poisoned -->
</parameters>
<race>ETC</race>
<stats> <!-- str="88" int="79" dex="55" wit="78" con="82" men="78" -->
<vitals hp="9311" hpRegen="7.5" mp="9311" mpRegen="2.7" />
<attack physical="4900" magical="2550" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3840" magical="825" />
<sex>ETC</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="7324" hpRegen="7.5" mp="7324" mpRegen="2.7" />
<attack physical="971" magical="663" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="341" magical="250" />
<attribute>
<defence fire="0" water="0" wind="0" earth="0" holy="0" dark="0" />
<defence fire="120" water="120" wind="120" earth="120" holy="120" dark="120" />
</attribute>
<speed>
<walk ground="50" />
<run ground="186" />
<run ground="20" />
</speed>
<hit_time>333</hit_time>
</stats>
<status attackable="false" />
<ai aggroRange="300" clanHelpRange="300" />
<status attackable="false" hasSummoner="true" />
<skill_list>
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
<skill id="4390" level="1" /> <!-- NPC Abnormal Immunity -->
<skill id="4408" level="1" /> <!-- HP Increase (1x) -->
<skill id="4409" level="1" /> <!-- MP Increase (1x) -->
<skill id="4410" level="11" /> <!-- Average P. Atk. -->
<skill id="4411" level="11" /> <!-- Average M. Atk. -->
<skill id="4412" level="11" /> <!-- Average P. Def. -->
<skill id="4413" level="11" /> <!-- Average M. Def. -->
<skill id="4414" level="2" /> <!-- Standard Type -->
<skill id="4415" level="3" /> <!-- One-handed Sword -->
<skill id="4416" level="19" /> <!-- Others -->
<skill id="10523" level="3" /> <!-- Poisoned -->
</skill_list>
<ex_crt_effect>true</ex_crt_effect>
<collision>
<radius normal="0.01" />
<height normal="0.01" />
<radius normal="5" />
<height normal="10" />
</collision>
</npc>
<npc id="13379" level="93" type="L2Npc" name="Solo Dance">
<!-- Source http://l2i-god.gaikotsu.ru/ (Lindvior) -->
<npc id="13379" level="93" type="L2EffectPoint" name="Solo Dance">
<parameters>
<param name="skill_delay" value="2" />
<param name="despawn_time" value="15" />
<skill name="union_skill" id="10523" level="4" /> <!-- Poisoned -->
</parameters>
<race>ETC</race>
<stats> <!-- str="88" int="79" dex="55" wit="78" con="82" men="78" -->
<vitals hp="10790" hpRegen="7.5" mp="10790" mpRegen="2.7" />
<attack physical="4900" magical="2550" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3840" magical="825" />
<sex>ETC</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="7324" hpRegen="7.5" mp="7324" mpRegen="2.7" />
<attack physical="971" magical="663" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="341" magical="250" />
<attribute>
<defence fire="0" water="0" wind="0" earth="0" holy="0" dark="0" />
<defence fire="120" water="120" wind="120" earth="120" holy="120" dark="120" />
</attribute>
<speed>
<walk ground="50" />
<run ground="186" />
<run ground="20" />
</speed>
<hit_time>333</hit_time>
</stats>
<status attackable="false" />
<ai aggroRange="300" clanHelpRange="300" />
<status attackable="false" hasSummoner="true" />
<skill_list>
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
<skill id="4390" level="1" /> <!-- NPC Abnormal Immunity -->
<skill id="4408" level="1" /> <!-- HP Increase (1x) -->
<skill id="4409" level="1" /> <!-- MP Increase (1x) -->
<skill id="4410" level="11" /> <!-- Average P. Atk. -->
<skill id="4411" level="11" /> <!-- Average M. Atk. -->
<skill id="4412" level="11" /> <!-- Average P. Def. -->
<skill id="4413" level="11" /> <!-- Average M. Def. -->
<skill id="4414" level="2" /> <!-- Standard Type -->
<skill id="4415" level="3" /> <!-- One-handed Sword -->
<skill id="4416" level="19" /> <!-- Others -->
<skill id="10523" level="4" /> <!-- Poisoned -->
</skill_list>
<ex_crt_effect>true</ex_crt_effect>
<collision>
<radius normal="0.01" />
<height normal="0.01" />
<radius normal="5" />
<height normal="10" />
</collision>
</npc>
<npc id="13380" level="96" type="L2Npc" name="Solo Dance">
<!-- Source http://l2i-god.gaikotsu.ru/ (Lindvior) -->
<npc id="13380" level="96" type="L2EffectPoint" name="Solo Dance">
<parameters>
<param name="skill_delay" value="2" />
<param name="despawn_time" value="15" />
<skill name="union_skill" id="10523" level="5" /> <!-- Poisoned -->
</parameters>
<race>ETC</race>
<stats> <!-- str="88" int="79" dex="55" wit="78" con="82" men="78" -->
<vitals hp="12538" hpRegen="7.5" mp="12538" mpRegen="2.7" />
<attack physical="4900" magical="2550" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3840" magical="825" />
<sex>ETC</sex>
<stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<vitals hp="7324" hpRegen="7.5" mp="7324" mpRegen="2.7" />
<attack physical="971" magical="663" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="341" magical="250" />
<attribute>
<defence fire="0" water="0" wind="0" earth="0" holy="0" dark="0" />
<defence fire="120" water="120" wind="120" earth="120" holy="120" dark="120" />
</attribute>
<speed>
<walk ground="50" />
<run ground="186" />
<run ground="20" />
</speed>
<hit_time>333</hit_time>
</stats>
<status attackable="false" />
<ai aggroRange="300" clanHelpRange="300" />
<status attackable="false" hasSummoner="true" />
<skill_list>
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
<skill id="4390" level="1" /> <!-- NPC Abnormal Immunity -->
<skill id="4408" level="1" /> <!-- HP Increase (1x) -->
<skill id="4409" level="1" /> <!-- MP Increase (1x) -->
<skill id="4410" level="11" /> <!-- Average P. Atk. -->
<skill id="4411" level="11" /> <!-- Average M. Atk. -->
<skill id="4412" level="11" /> <!-- Average P. Def. -->
<skill id="4413" level="11" /> <!-- Average M. Def. -->
<skill id="4414" level="2" /> <!-- Standard Type -->
<skill id="4415" level="3" /> <!-- One-handed Sword -->
<skill id="4416" level="19" /> <!-- Others -->
<skill id="10523" level="5" /> <!-- Poisoned -->
</skill_list>
<ex_crt_effect>true</ex_crt_effect>
<collision>
<radius normal="0.01" />
<height normal="0.01" />
<radius normal="5" />
<height normal="10" />
</collision>
</npc>
<npc id="13381" level="99" type="L2Npc" name="Solo Dance">
<!-- Source http://l2i-god.gaikotsu.ru/ (Lindvior) -->
<npc id="13381" level="99" type="L2EffectPoint" name="Solo Dance">
<parameters>
<param name="skill_delay" value="2" />
<param name="despawn_time" value="15" />
<skill name="union_skill" id="10523" level="6" /> <!-- Poisoned -->
</parameters>
<race>ETC</race>
<stats> <!-- str="88" int="79" dex="55" wit="78" con="82" men="78" -->
<vitals hp="14612" hpRegen="7.5" mp="14612" mpRegen="2.7" />
<attack physical="4900" magical="2550" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="3840" magical="825" />
<sex>ETC</sex>
<stats str="40" int="21" dex="30" wit="20" con="43" men="20">
<vitals hp="2444.46819" hpRegen="7.5" mp="1345.8" mpRegen="2.7" />
<attack physical="688.86373" magical="470.40463" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" />
<defence physical="341" magical="250" />
<attribute>
<defence fire="0" water="0" wind="0" earth="0" holy="0" dark="0" />
<defence fire="120" water="120" wind="120" earth="120" holy="120" dark="120" />
</attribute>
<speed>
<walk ground="50" />
<run ground="186" />
<run ground="20" />
</speed>
<hit_time>333</hit_time>
</stats>
<status attackable="false" />
<ai aggroRange="300" clanHelpRange="300" />
<status attackable="false" hasSummoner="true" />
<skill_list>
<skill id="4045" level="1" /> <!-- Resist Full Magic Attack -->
<skill id="4390" level="1" /> <!-- NPC Abnormal Immunity -->
<skill id="4408" level="1" /> <!-- HP Increase (1x) -->
<skill id="4409" level="1" /> <!-- MP Increase (1x) -->
<skill id="4410" level="11" /> <!-- Average P. Atk. -->
<skill id="4411" level="11" /> <!-- Average M. Atk. -->
<skill id="4412" level="11" /> <!-- Average P. Def. -->
<skill id="4413" level="11" /> <!-- Average M. Def. -->
<skill id="4414" level="2" /> <!-- Standard Type -->
<skill id="4415" level="3" /> <!-- One-handed Sword -->
<skill id="4416" level="19" /> <!-- Others -->
<skill id="10523" level="6" /> <!-- Poisoned -->
</skill_list>
<ex_crt_effect>true</ex_crt_effect>
<collision>
<radius normal="0.01" />
<height normal="0.01" />
<radius normal="5" />
<height normal="10" />
</collision>
</npc>
<npc id="13382" level="55" type="L2Npc" name="Orfen">

View File

@ -138,7 +138,6 @@
<table name="#enchElementPower"> 1 3 5 6 8 10 11 13 15 16 18 20 21 23 25 26 28 30 31 33 35 36 38 40 41 43 45 46 48 50 </table>
<table name="#enchMagicLvl"> 76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table>
<set name="castRange" val="40" />
<set name="chargeConsume" val="3" />
<set name="coolTime" val="167" />
<set name="effectPoint" val="#effectPoints" />
<set name="effectRange" val="400" />
@ -169,10 +168,7 @@
<enchant6 name="magicLvl" val="#enchMagicLvl" />
<enchant7 name="magicLvl" val="#enchMagicLvl" />
<cond msgId="113" addName="1">
<and>
<using kind="DUAL" /> <!-- Requires a dualsword weapon -->
<player Charges="3" /> <!-- whose 3rd energy stage has been recharged -->
</and>
<using kind="DUAL" /> <!-- Requires a dualsword weapon -->
</cond>
<for>
<effect name="EnergyAttack">
@ -221,11 +217,16 @@
<set name="mpConsume" val="#mpConsume" />
<set name="operateType" val="ACTIVE_INSTANT" />
<set name="overHit" val="true" />
<set name="power" val="#power" />
<set name="baseCritRate" val="10" />
<set name="reuseDelay" val="3000" />
<set name="rideState" val="NONE" />
<set name="targetType" val="ONE" />
<enchant1 name="magicLvl" val="#enchMagicLvl" />
<enchant1 name="power" val="#ench1Power" />
<enchant2 name="magicLvl" val="#enchMagicLvl" />
<enchant2 name="power" val="#ench2pvePower" />
<enchant2 name="pvpPower" val="1827" />
<enchant3 name="element" val="0" /> <!-- Fire -->
<enchant3 name="elementPower" val="#enchElementPower" />
<enchant3 name="magicLvl" val="#enchMagicLvl" />
@ -239,6 +240,8 @@
<enchant6 name="elementPower" val="#enchElementPower" />
<enchant6 name="magicLvl" val="#enchMagicLvl" />
<enchant7 name="magicLvl" val="#enchMagicLvl" />
<enchant7 name="power" val="1827" />
<enchant7 name="pvpPower" val="ench7pvpPower" />
<cond msgId="113" addName="1">
<and>
<using kind="DUAL,SWORD,BLUNT" /> <!-- Requires a dualsword, sword or blunt weapon weapon -->
@ -246,48 +249,10 @@
</and>
</cond>
<for>
<effect name="EnergyAttack">
<param power="#power" />
<param criticalChance="15" />
</effect>
<effect name="PhysicalAttack" />
</for>
<enchant1for>
<effect name="EnergyAttack">
<param power="#ench1Power" />
<param criticalChance="15" />
</effect>
</enchant1for>
<enchant2for>
</enchant2for>
<enchant2pvpEffects>
<effect name="EnergyAttack">
<param power="1827" />
<param criticalChance="15" />
</effect>
</enchant2pvpEffects>
<enchant2pveEffects>
<effect name="EnergyAttack">
<param power="#ench2pvePower" />
<param criticalChance="15" />
</effect>
</enchant2pveEffects>
<enchant7for>
</enchant7for>
<enchant7pvpEffects>
<effect name="EnergyAttack">
<param power="#ench7pvpPower" />
<param criticalChance="15" />
</effect>
</enchant7pvpEffects>
<enchant7pveEffects>
<effect name="EnergyAttack">
<param power="1827" />
<param criticalChance="15" />
</effect>
</enchant7pveEffects>
</skill>
<skill id="7" levels="41" name="Sonic Storm" enchantGroup1="2" enchantGroup2="2" enchantGroup3="2" enchantGroup4="2" enchantGroup5="2" enchantGroup6="2" enchantGroup7="2">
<!-- Confirmed CT2.5 and Updated to Ertheia -->
<table name="#effectPoints"> -114 -117 -119 -121 -124 -126 -129 -131 -133 -136 -138 -140 -142 -144 -146 -148 -150 -152 -154 -156 -157 -159 -160 -162 -163 -164 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 </table>
<table name="#magicLvl"> 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 77 79 81 83 85 86 88 90 92 94 96 98 </table> <!-- Confirmed -->
<table name="#mpConsume"> 55 56 58 59 59 61 62 64 65 67 69 70 71 73 73 75 76 77 79 80 81 83 84 85 86 88 89 90 161 163 169 175 180 161 163 169 175 180 186 192 198 </table> <!-- Confirmed -->
@ -305,16 +270,17 @@
<set name="effectRange" val="1000" />
<set name="hitTime" val="1790" />
<set name="icon" val="icon.skill0007" />
<set name="itemConsumeCount" val="3" />
<set name="itemConsumeId" val="5589" /> <!-- Energy Stone -->
<set name="power" val="#power" />
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />
<set name="operateType" val="ACTIVE_INSTANT" />
<set name="overHit" val="true" />
<set name="baseCritRate" val="10" />
<set name="reuseDelay" val="10000" />
<set name="rideState" val="NONE" />
<set name="targetType" val="AREA" />
<enchant1 name="magicLvl" val="#enchMagicLvl" />
<enchant1 name="power" val="#ench1Power" />
<enchant2 name="magicLvl" val="#enchMagicLvl" />
<enchant2 name="mpConsume" val="#ench2MpConsume" />
<enchant3 name="element" val="0" /> <!-- Fire -->
@ -330,41 +296,16 @@
<enchant6 name="elementPower" val="#enchElementPower" />
<enchant6 name="magicLvl" val="#enchMagicLvl" />
<enchant7 name="magicLvl" val="#enchMagicLvl" />
<enchant7 name="power" val="457" />
<enchant7 name="pvpPower" val="#ench7pvpPower" />
<cond msgId="113" addName="1">
<and>
<using kind="DUAL,SWORD,BLUNT" /> <!-- Requires a sword, blunt weapon or dualsword weapon -->
<player Charges="2" /> <!-- whose 2nd energy stage has been recharged -->
</and>
<using kind="DUAL, SWORD, BLUNT, POLE, DUALFIST, DUALBLUNT" />
</cond>
<for>
<effect name="EnergyAttack">
<param power="#power" />
<param criticalChance="15" />
</effect>
<effect name="PhysicalAttack" />
</for>
<enchant1for>
<effect name="EnergyAttack">
<param power="#ench1Power" />
<param criticalChance="15" />
</effect>
</enchant1for>
<enchant7for>
</enchant7for>
<enchant7pvpEffects>
<effect name="EnergyAttack">
<param power="#ench7pvpPower" />
<param criticalChance="15" />
</effect>
</enchant7pvpEffects>
<enchant7pveEffects>
<effect name="EnergyAttack">
<param power="457" />
<param criticalChance="15" />
</effect>
</enchant7pveEffects>
</skill>
<skill id="8" levels="8" name="Sonic Focus">
<!-- Confirmed CT2.5 -->
<table name="#magicLvl"> 40 43 49 55 60 66 70 79 </table>
<table name="#maxCharges"> 1 2 3 4 5 6 7 8 </table>
<set name="effectPoint" val="200" />

View File

@ -1624,7 +1624,6 @@
<table name="#enchElementPower"> 1 3 5 6 8 10 11 13 15 16 18 20 21 23 25 26 28 30 31 33 35 36 38 40 41 43 45 46 48 50 </table>
<table name="#enchMagicLvl"> 76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 83 83 83 84 84 84 85 85 85 </table>
<set name="castRange" val="40" />
<set name="chargeConsume" val="4" />
<set name="coolTime" val="500" />
<set name="effectPoint" val="#effectPoints" />
<set name="effectRange" val="400" />
@ -1656,10 +1655,7 @@
<enchant6 name="magicLvl" val="#enchMagicLvl" />
<enchant7 name="magicLvl" val="#enchMagicLvl" />
<cond msgId="113" addName="1">
<and>
<using kind="DUAL" />
<player Charges="4" /> <!-- Need to recharge 4th stage of Sword Energy. -->
</and>
<using kind="SWORD, BLUNT, POLE, DUALFIST, DUALBLUNT, DUAL" />
</cond>
<for>
<effect name="EnergyAttack">

View File

@ -464,7 +464,7 @@
<mul stat="pDef" val="#pDef" />
</effect>
</for>
<selfEffects>
<selfEffects>
<effect name="FocusEnergy">
<param charge="15" />
</effect>
@ -490,52 +490,112 @@
<set name="mpConsume" val="#mpConsumes" />
<set name="operateType" val="ACTIVE_INSTANT" />
<set name="overHit" val="true" />
<set name="power" val="#power" />
<set name="reuseDelay" val="7000" />
<set name="rideState" val="NONE" />
<set name="targetType" val="ONE" />
<enchant1 name="magicLvl" val="#enchMagicLvl" />
<enchant1 name="mpConsume" val="#ench2MpConsume" />
<enchant1 name="power" val="#enchPower" />
<enchant2 name="magicLvl" val="#enchMagicLvl" />
<enchant2 name="pvpPower" val="#enchDuel" />
<enchant3 name="element" val="0" /> <!-- Fire -->
<enchant3 name="elementPower" val="#enchElementPower" />
<enchant3 name="magicLvl" val="#enchMagicLvl" />
<enchant3 name="power" val="#enchPower" />
<enchant4 name="element" val="1" /> <!-- Water -->
<enchant4 name="elementPower" val="#enchElementPower" />
<enchant4 name="magicLvl" val="#enchMagicLvl" />
<enchant4 name="power" val="#enchPower" />
<enchant5 name="element" val="2" /> <!-- Wind -->
<enchant5 name="elementPower" val="#enchElementPower" />
<enchant5 name="magicLvl" val="#enchMagicLvl" />
<enchant5 name="power" val="#enchPower" />
<enchant6 name="element" val="3" /> <!-- Earth -->
<enchant6 name="elementPower" val="#enchElementPower" />
<enchant6 name="magicLvl" val="#enchMagicLvl" />
<enchant6 name="power" val="#enchPower" />
<enchant7 name="element" val="4" /> <!-- Holy -->
<enchant7 name="elementPower" val="#enchElementPower" />
<enchant7 name="magicLvl" val="#enchMagicLvl" />
<enchant7 name="power" val="#enchPower" />
<enchant8 name="element" val="5" /> <!-- Unholy -->
<enchant8 name="elementPower" val="#enchElementPower" />
<enchant8 name="magicLvl" val="#enchMagicLvl" />
<enchant8 name="power" val="#enchPower" />
<enchant9 name="reuseDelay" val="#ench9Reuse" />
<enchant9 name="magicLevel" val="#enchMagicLvl" />
<enchant9 name="power" val="#enchPower" />
<cond msgId="113" addName="1">
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
</cond>
<for>
<effect name="EnergyAttack">
<param power="#power" />
<param criticalChance="7" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
</for>
<enchant1for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
</enchant1for>
<enchant2for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
</enchant2for>
<enchant2pvpEffects>
<effect name="EnergyAttack">
<param power="#enchDuel" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
</enchant2pvpEffects>
<enchant3for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
</enchant3for>
<enchant4for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
</enchant4for>
<enchant5for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
</enchant5for>
<enchant6for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
</enchant6for>
<enchant7for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
</enchant7for>
<enchant8for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
</enchant8for>
<enchant9for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
</enchant9for>
</skill>
<skill id="10262" levels="6" name="Power Bomber" enchantGroup1="10" enchantGroup2="10" enchantGroup3="10" enchantGroup4="10" enchantGroup5="10" enchantGroup6="10" enchantGroup7="10" enchantGroup8="10" enchantGroup9="10">
<table name="#abnormalLvls"> 1 2 3 4 5 6 </table>
@ -568,41 +628,132 @@
<set name="isDebuff" val="true" />
<set name="trait" val="KNOCKDOWN" />
<enchant1 name="mpConsume" val="#ench2MpConsume" />
<enchant1 name="power" val="#enchPower" />
<enchant2 name="pvpPower" val="#enchDuel" />
<enchant3 name="element" val="0" /> <!-- Fire -->
<enchant3 name="elementPower" val="#enchElementPower" />
<enchant3 name="power" val="#enchPower" />
<enchant4 name="element" val="1" /> <!-- Water -->
<enchant4 name="elementPower" val="#enchElementPower" />
<enchant4 name="power" val="#enchPower" />
<enchant5 name="element" val="2" /> <!-- Wind -->
<enchant5 name="elementPower" val="#enchElementPower" />
<enchant5 name="power" val="#enchPower" />
<enchant6 name="element" val="3" /> <!-- Earth -->
<enchant6 name="elementPower" val="#enchElementPower" />
<enchant6 name="power" val="#enchPower" />
<enchant7 name="element" val="4" /> <!-- Holy -->
<enchant7 name="elementPower" val="#enchElementPower" />
<enchant7 name="power" val="#enchPower" />
<enchant8 name="element" val="5" /> <!-- Unholy -->
<enchant8 name="elementPower" val="#enchElementPower" />
<enchant8 name="power" val="#enchPower" />
<enchant9 name="reuseDelay" val="#ench9Reuse" />
<enchant9 name="power" val="#enchPower" />
<cond msgId="113" addName="1">
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
</cond>
<for>
<effect name="EnergyAttack">
<param power="#power" />
<param criticalChance="7" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
<effect name="KnockDown">
<param speed="700" distance="50" />
</effect>
</for>
<enchant1for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
<effect name="KnockDown">
<param speed="700" distance="50" />
</effect>
</enchant1for>
<enchant2for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
<effect name="KnockDown">
<param speed="700" distance="50" />
</effect>
</enchant2for>
<enchant2pvpEffects>
<effect name="EnergyAttack">
<param power="#enchDuel" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
<effect name="KnockDown">
<param speed="700" distance="50" />
</effect>
</enchant2pvpEffects>
<enchant3for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
<effect name="KnockDown">
<param speed="700" distance="50" />
</effect>
</enchant3for>
<enchant4for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
<effect name="KnockDown">
<param speed="700" distance="50" />
</effect>
</enchant4for>
<enchant5for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
<effect name="KnockDown">
<param speed="700" distance="50" />
</effect>
</enchant5for>
<enchant6for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
<effect name="KnockDown">
<param speed="700" distance="50" />
</effect>
</enchant6for>
<enchant7for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
<effect name="KnockDown">
<param speed="700" distance="50" />
</effect>
</enchant7for>
<enchant8for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
<effect name="KnockDown">
<param speed="700" distance="50" />
</effect>
</enchant8for>
<enchant9for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
<param ignoreShieldDefence="true" />
</effect>
<effect name="KnockDown">
<param speed="700" distance="50" />
</effect>
</enchant9for>
</skill>
<skill id="10263" levels="8" name="Hurricane Blaster" enchantGroup1="10" enchantGroup2="10" enchantGroup3="10" enchantGroup4="10" enchantGroup5="10" enchantGroup6="10" enchantGroup7="10" enchantGroup8="10" enchantGroup9="10">
<table name="#abnormalLvls"> 1 2 3 4 5 6 7 8 </table>
@ -756,7 +907,7 @@
<effect name="RandomizeHate">
<param power="#powerDebuff" />
</effect>
<effect name="TargetCancel">
<effect name="TargetCancel">
<param power="#powerDebuff" />
</effect>
<effect name="Stun">
@ -920,7 +1071,6 @@
<set name="skillRadius" val="200" />
<set name="effectRange" val="600" />
<set name="effectPoint" val="-100" /> <!-- Need verify -->
<set name="skillType" val="PDAM" />
<set name="flyType" val="CHARGE" />
<set name="targetType" val="FRONT_AREA" />
<set name="fanRange" val="0,0,200,180" />
@ -932,38 +1082,115 @@
<set name="nextActionAttack" val="true" />
<enchant1 name="mpConsume" val="#ench1MpConsume" />
<enchant2 name="activateRate" val="#ench2activateRate" />
<enchant2 name="power" val="#enchPower" />
<enchant3 name="power" val="#enchPower" />
<enchant3 name="element" val="0" />
<enchant3 name="elementPower" val="#enchElementalPower" />
<enchant4 name="power" val="#enchPower" />
<enchant4 name="element" val="1" />
<enchant4 name="elementPower" val="#enchElementalPower" />
<enchant5 name="power" val="#enchPower" />
<enchant5 name="element" val="2" />
<enchant5 name="elementPower" val="#enchElementalPower" />
<enchant6 name="power" val="#enchPower" />
<enchant6 name="element" val="3" />
<enchant6 name="elementPower" val="#enchElementalPower" />
<enchant7 name="power" val="#enchPower" />
<enchant7 name="element" val="4" />
<enchant7 name="elementPower" val="#enchElementalPower" />
<enchant8 name="power" val="#enchPower" />
<enchant8 name="element" val="5" />
<enchant8 name="elementPower" val="#enchElementalPower" />
<enchant9 name="reuseDelay" val="#ench9Reuse" />
<enchant9 name="power" val="#enchPower" />
<cond msgId="113" addName="1">
<and>
<target mindistance="100" />
<target mindistance="200" />
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
</and>
</cond>
<for>
<effect name="EnergyAttack">
<param power="#power" />
<param criticalChance="15" />
</effect>
<effect name="Debuff">
<mul stat="runSpd" val="0.3" />
</effect>
</for>
<enchant1for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
</effect>
<effect name="Debuff">
<mul stat="runSpd" val="0.3" />
</effect>
</enchant1for>
<enchant2for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
</effect>
<effect name="Debuff">
<mul stat="runSpd" val="0.3" />
</effect>
</enchant2for>
<enchant3for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
</effect>
<effect name="Debuff">
<mul stat="runSpd" val="0.3" />
</effect>
</enchant3for>
<enchant4for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
</effect>
<effect name="Debuff">
<mul stat="runSpd" val="0.3" />
</effect>
</enchant4for>
<enchant5for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
</effect>
<effect name="Debuff">
<mul stat="runSpd" val="0.3" />
</effect>
</enchant5for>
<enchant6for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
</effect>
<effect name="Debuff">
<mul stat="runSpd" val="0.3" />
</effect>
</enchant6for>
<enchant7for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
</effect>
<effect name="Debuff">
<mul stat="runSpd" val="0.3" />
</effect>
</enchant7for>
<enchant8for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
</effect>
<effect name="Debuff">
<mul stat="runSpd" val="0.3" />
</effect>
</enchant8for>
<enchant9for>
<effect name="EnergyAttack">
<param power="#enchPower" />
<param criticalChance="15" />
</effect>
<effect name="Debuff">
<mul stat="runSpd" val="0.3" />
</effect>
</enchant9for>
</skill>
<skill id="10270" levels="1" name="Second Wind" enchantGroup1="10">
<table name="#enchTime"> 132 142 156 168 180 192 204 216 228 240 </table>
@ -1156,11 +1383,14 @@
<enchant2 name="abnormalTime" val="#ench2abnormalTime" />
<enchant9 name="reuseDelay" val="#ench9Reuse" />
<cond msgId="113" addName="1">
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
<player hp="70" />
<and>
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
<player hp="70" />
</and>
</cond>
<enchant3cond addName="1" msgId="113">
<and>
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
<player hp="#ench3hpToActivate" />
</and>
</enchant3cond>
@ -1382,9 +1612,7 @@
<player hp="70" />
</cond>
<enchant3cond msgId="113" addName="1">
<and>
<player hp="#ench3playerHpRestrict" />
</and>
</enchant3cond>
<for>
<effect name="Invincible">
@ -1410,73 +1638,99 @@
<set name="magicLvl" val="85" />
<set name="mpInitialConsume" val="58" />
<set name="operateType" val="TOGGLE" />
<set name="skillType" val="CONT" />
<set name="rideState" val="NONE" />
<set name="targetType" val="SELF" />
<for>
<effect name="FocusEnergy" />
<effect name="DamOverTime" ticks="2">
<param power="150" />
<param charge="15" />
</effect>
</for>
</skill>
<skill id="10281" levels="2" name="Sonic Star">
<skill id="10281" levels="2" name="Sonic Star" enchantGroup1="10" enchantGroup2="10" enchantGroup9="10">
<table name="#ench1MpConsume">1131 1083 1037 989 942 896 848 801 753 707</table>
<table name="#enchPower">39727 40628 41528 42429 43330 44231 45132 46033 46934 47835</table>
<table name="#power">21958 23344</table>
<table name="#enchPower">48735 49741 50747 51723 52759 53765 54771 55777 56783 57789</table>
<table name="#power">44711 46723</table>
<table name="#magicLvl">95 98</table>
<table name="#mpConsume">1103 1158</table>
<table name="#ench9Reuse"> 29000 28000 27000 26000 25000 24000 23000 22000 21000 20000 </table>
<set name="affectLimit" val="6-12" />
<set name="affectRange" val="150" />
<set name="abnormalLvl" val="1" />
<set name="abnormalType" val="KNOCK_DOWN" />
<set name="abnormalVisualEffect" val="KNOCK_DOWN" />
<set name="mpConsume" val="#mpConsume" />
<set name="effectRange" val="80" />
<set name="baseCritRate" val="7" />
<set name="baseCritRate" val="10" />
<set name="hitTime" val="7500" />
<set name="coolTime" val="500" />
<set name="reuseDelay" val="30000" />
<set name="isDebuff" val="true" />
<set name="effectPoint" val="-100" /> <!-- Need verify -->
<set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="ACTIVE_INSTANT" />
<set name="overHit" val="true" />
<set name="power" val="#power" />
<set name="skillRadius" val="400" />
<set name="skillType" val="PDAM" />
<set name="SSBoost" val="2.5" />
<set name="targetType" val="AURA" />
<set name="trait" val="KNOCKDOWN" />
<enchant1 name="magicLevel" val="99" />
<enchant1 name="mpConsume" val="#ench1MpConsume" />
<enchant1 name="power" val="#enchPower" />
<enchant2 name="magicLevel" val="99" />
<enchant2 name="pvpPower" val="#enchPower" />
<enchant2 name="power" val="#enchPower" />
<enchant9 name="magicLevel" val="99" />
<enchant9 name="power" val="#enchPower" />
<enchant9 name="reuseDelay" val="#ench9Reuse" />
<cond msgId="113" addName="1">
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
</cond>
<for>
<effect name="PhysicalAttack" />
<effect name="KnockDown">
<param speed="700" distance="50" />
</effect>
</for>
</skill>
<skill id="10283" levels="1" name="Increase Momentum">
<!-- AUTO GENERATED SKILL -->
<set name="icon" val="icon.skill10283" />
<set name="operateType" val="ACTIVE_INSTANT" />
<set name="rideState" val="NONE" />
<set name="targetType" val="SELF" />
<set name="reuseDelay" val="10000" />
<cond msg="324">
<not>
<player Charges="10" />
</not>
</cond>
<for>
<effect name="FocusEnergy">
<param charge="10" />
</effect>
</for>
</skill>
<skill id="10284" levels="3" name="Lightning Force">
<table name="#icons"> icon.skill10284 icon.skill10284_2 icon.skill10284_3 </table>
<set name="icon" val="#icons" />
<table name="#activationChance">30 20 10</table>
<table name="#activationChance">20 10 10</table>
<table name="#triggeredLevel">2 3 3</table>
<table name="#pAtk">1.1 1.2 1.3</table>
<table name="#pAtk">1.1 1.15 1.3</table>
<table name="#runSpd">5 7 10</table>
<table name="#time">20 20 15</table>
<table name="#abnormalLvl">2 3 4</table>
<set name="abnormalType" val="SEED_OF_KNIGHT" />
<set name="abnormalLvl" val="#abnormalLvl" />
<table name="#time">15 20 30</table>
<table name="#abnormalLvl">1 2 3</table>
<set name="icon" val="#icons" />
<set name="abnormalTime" val="#time" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="targetType" val="SELF" />
<set name="skillType" val="BUFF" />
<set name="castRange" val="400" />
<set name="isTriggeredSkill" val="true" />
<for>
<effect name="TriggerSkillByAttack">
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="99" />
<param isCritical="false" />
<param minDamage="1" chance="#activationChance" />
<effect name="TriggerSkillBySkill">
<param castSkillId="10284" />
<param chance="70" />
<param skillId="10284" skillLevel="#triggeredLevel" />
<param targetType="SELF" />
<param allowWeapons="SWORD,BLUNT,DUAL,DUALFIST,POLE,DUALBLUNT" />
<param targetType="ONE" />
</effect>
<effect name="Buff">
<mul stat="pAtk" val="#pAtk">
@ -1489,29 +1743,24 @@
</for>
</skill>
<skill id="10285" levels="1" name="HP Drain">
<table name="#effectPoint">313</table>
<table name="#heal">20</table>
<table name="#magicLevel">85</table>
<set name="reuseDelay" val="10000" />
<set name="effectPoint" val="#effectPoint" />
<set name="magicLevel" val="#magicLevel" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="targetType" val="ONE" />
<set name="skillType" val="HEAL" />
</skill>
<skill id="10286" levels="1" name="Superior Resistance">
<table name="#ench1mDef">206 213 220 227 234 241 248 255 262 270</table>
<table name="#enchelementPower">21 22 23 24 25 26 27 28 29 30</table>
<set name="effectPoint" val="313" />
<set name="magicLevel" val="85" />
<set name="operateType" val="ACTIVE_INSTANT" />
<set name="targetType" val="SELF" />
<set name="skillType" val="HEAL" />
<for>
<effect name="HealPercent">
<param power="20" />
</effect>
</for>
</skill>
<skill id="10286" levels="1" name="Superior Resistance" enchantGroup1="10">
<table name="#enchDef">206 213 220 227 234 241 248 255 262 270</table>
<table name="#enchRes">21 22 23 24 25 26 27 28 29 30</table>
<set name="targetType" val="SELF" />
<set name="skillType" val="BUFF" />
<set name="magicLvl" val="85" />
<set name="operateType" val="PASSIVE" />
<set name="triggeredId" val="10058" />
<set name="triggeredLevel" val="1" />
<set name="activationChance" val="20" />
<set name="activationElements" val="0,1,2,3,4,5" />
<set name="chanceType" val="SELF" />
<enchant1 name="elementPower" val="#enchelementPower" />
<for>
<effect name="Buff">
<add stat="STR" val="2" />
@ -1521,36 +1770,51 @@
<add stat="windRes" val="20" />
<add stat="earthRes" val="20" />
</effect>
<effect name="TriggerSkillByDamage">
<param attackerType="L2Playable" minAttackerLevel="1" maxAttackerLevel="99" />
<param minDamage="1" />
<param chance="20" />
<param skillId="10058" skillLevel="1" />
<param targetType="SELF" />
</effect>
</for>
<enchant1for>
<effect name="Buff">
<add stat="STR" val="2" />
<add stat="mDef" val="#ench1mDef" />
<add stat="waterRes" val="#enchelementPower" />
<add stat="fireRes" val="#enchelementPower" />
<add stat="windRes" val="#enchelementPower" />
<add stat="earthRes" val="#enchelementPower" />
<add stat="mDef" val="#enchDef" />
<add stat="waterRes" val="#enchRes" />
<add stat="fireRes" val="#enchRes" />
<add stat="windRes" val="#enchRes" />
<add stat="earthRes" val="#enchRes" />
</effect>
<effect name="TriggerSkillByDamage">
<param attackerType="L2Playable" minAttackerLevel="1" maxAttackerLevel="99" />
<param minDamage="1" />
<param chance="20" />
<param skillId="10058" skillLevel="1" />
<param targetType="SELF" />
</effect>
</enchant1for>
</skill>
<skill id="10287" levels="6" name="Rolling Thunder">
<set name="icon" val="icon.skill0494" />
<table name="#magicLvl">89 91 93 95 97 99</table>
<table name="#dot">225 228 232 235 238 242</table>
<table name="#abnormalLvl">1 2 3 4 5 6</table>
<set name="power" val="-1" />
<set name="icon" val="icon.skill0494" />
<set name="abnormalLvl" val="#abnormalLvl" />
<set name="targetType" val="AURA" />
<set name="isDebuff" val="true" />
<set name="hitTime" val="500" />
<set name="reuseDelay" val="3000" />
<set name="skillRadius" val="200" />
<set name="isMagic" val="3" />
<set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="isTriggeredSkill" val="true" />
<for>
<effect name="DamOverTime" />
<effect name="DamOverTime" ticks="1">
<param power="#dot" />
</effect>
</for>
</skill>
<skill id="10288" levels="8" name="Hurricane Storm">
<skill id="10288" levels="8" name="Hurricane Storm" enchantGroup1="10" enchantGroup2="10" enchantGroup3="10" enchantGroup4="10" enchantGroup5="10" enchantGroup6="10" enchantGroup7="10" enchantGroup8="10">
<table name="#ench1MpConsume">190 182 174 166 158 150 142 134 126 118</table>
<table name="#power">11557 11956 12754 13553 14351 15150 15948 16747</table>
<table name="#magicLvl">85 86 88 90 92 94 96 98</table>
@ -1561,34 +1825,42 @@
<set name="magicLvl" val="#magicLvl" />
<set name="power" val="#power" />
<set name="targetType" val="AREA" />
<set name="skillRadius" val="200" />
<set name="effectRange" val="200" />
<set name="affectLimit" val="5-12" />
<set name="affectRange" val="150" />
<set name="effectRange" val="1000" />
<set name="overHit" val="true" />
<set name="hitTime" val="1790" />
<set name="coolTime" val="300" />
<set name="castRange" val="500" />
<set name="reuseDelay" val="10000" />
<set name="baseCritRate" val="7" />
<set name="skillType" val="PDAM" />
<set name="baseCritRate" val="10" />
<set name="operateType" val="ACTIVE_INSTANT" />
<enchant1 name="magicLevel" val="99" />
<enchant1 name="mpConsume" val="#ench1MpConsume" />
<enchant1 name="power" val="#enchPower" />
<enchant2 name="magicLevel" val="99" />
<enchant2 name="pvpPower" val="#enchPower" />
<enchant3 name="magicLevel" val="99" />
<enchant3 name="element" val="0" />
<enchant3 name="elementPower" val="#enchelementPower" />
<enchant3 name="power" val="#enchPower" />
<enchant4 name="magicLevel" val="99" />
<enchant4 name="element" val="1" />
<enchant4 name="elementPower" val="#enchelementPower" />
<enchant4 name="power" val="#enchPower" />
<enchant5 name="magicLevel" val="99" />
<enchant5 name="element" val="2" />
<enchant5 name="elementPower" val="#enchelementPower" />
<enchant5 name="power" val="#enchPower" />
<enchant6 name="magicLevel" val="99" />
<enchant6 name="element" val="3" />
<enchant6 name="elementPower" val="#enchelementPower" />
<enchant6 name="power" val="#enchPower" />
<enchant7 name="magicLevel" val="99" />
<enchant7 name="element" val="4" />
<enchant7 name="elementPower" val="#enchelementPower" />
<enchant7 name="power" val="#enchPower" />
<enchant8 name="magicLevel" val="99" />
<enchant8 name="element" val="5" />
<enchant8 name="elementPower" val="#enchelementPower" />
<enchant8 name="power" val="#enchPower" />
@ -1596,15 +1868,21 @@
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
</cond>
<for>
<effect name="PhysicalAttack" />
<effect name="PhysicalAttack">
<param weaponTypeDec="SWORD, BLUNT, DUAL, DUALFIST, DUALBLUNT" />
<param valueDec="0.9" />
<param weaponTypeInc="POLE" />
<param valueInc="1.5" />
</effect>
</for>
</skill>
<skill id="10289" levels="4" name="Boost">
<skill id="10289" levels="4" name="Boost" enchantGroup1="10" enchantGroup2="10" enchantGroup3="10" enchantGroup4="10">
<table name="#ench1mpConsume">137 131 125 120 114 108 102 97 91 85</table>
<table name="#ench2Time">61 62 63 64 65 66 67 68 69 70</table>
<table name="#power">1.3 1.35 1.4 1.45</table>
<table name="#power2">1.05 1.1 1.15 1.2</table>
<table name="#magicLvl">85 90 95 99</table>
<table name="#enchRate"> 1 2 3 4 5 6 7 8 9 10 </table>
<set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="skillType" val="BUFF" />
@ -1619,42 +1897,64 @@
<enchant2 name="abnormalTime" val="#ench2Time" />
<for>
<effect name="Buff">
<mul stat="pvpPhysDmg" val="#power2" />
<mul stat="physicalSkillPower" val="#power" />
<mul stat="pvpPhysDmg" val="#power2" />
<mul stat="pvpPhysSkillsDmg" val="#power2" />
</effect>
</for>
<enchant1for>
<effect name="Buff">
<mul stat="pvpPhysDmg" val="1.2" />
<mul stat="physicalSkillPower" val="1.45" />
</effect>
</enchant1for>
<enchant2for>
<effect name="Buff">
<mul stat="pvpPhysDmg" val="1.2" />
<mul stat="physicalSkillPower" val="1.45" />
</effect>
</enchant2for>
<enchant3for>
<effect name="Buff">
<mul stat="pvpPhysDmg" val="1.2" />
<mul stat="physicalSkillPower" val="1.45" />
<mul stat="pvpPhysDmg" val="1.2" />
<mul stat="pvpPhysSkillsDmg" val="1.2" />
</effect>
<effect name="AttackTrait">
<param SHOCK="#enchRate" />
</effect>
</enchant3for>
<enchant4for>
<effect name="Buff">
<mul stat="physicalSkillPower" val="1.45" />
<mul stat="pvpPhysDmg" val="1.2" />
<mul stat="pvpPhysSkillsDmg" val="1.2" />
</effect>
<effect name="AttackTrait">
<param KNOCKDOWN="#enchRate" />
</effect>
</enchant4for>
</skill>
<skill id="10290" levels="8" name="Hurricane Slasher">
<!-- AUTO GENERATED SKILL -->
<!-- Attacks around the enemy with 11557 Power added to P. Atk. Decreases power - 10% when equipped with a sword/blunt/fist weapon. Increases power + 50% when equipped with a spear. Requires a dagger, blunt, spear, fist weapon, dual blunt weapon, or dualsword to be equipped. Over-hit. Critical. -->
<table name="#mpConsumes"> 138 141 146 150 155 160 165 170 </table>
<table name="#mpConsume"> 138 141 146 150 155 160 165 170 </table>
<table name="#power"> 11557 11956 12754 13553 14351 15150 15948 16747 </table>
<table name="#magicLvl">85 86 88 90 92 94 96 98</table>
<set name="icon" val="icon.skill0007" />
<set name="operateType" val="ACTIVE_INSTANT" />
<set name="targetType" val="ONE" />
<set name="mpConsume" val="#mpConsumes" />
<set name="mpConsume" val="#mpConsume" />
<set name="magicLvl" val="#magicLvl" />
<set name="power" val="#power" />
<set name="targetType" val="AREA" />
<set name="affectLimit" val="5-12" />
<set name="affectRange" val="150" />
<set name="effectRange" val="1000" />
<set name="overHit" val="true" />
<set name="hitTime" val="1800" />
<set name="coolTime" val="300" />
<set name="castRange" val="500" />
<set name="reuseDelay" val="7000" />
<set name="baseCritRate" val="10" />
<set name="operateType" val="ACTIVE_INSTANT" />
<cond msgId="113" addName="1">
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
</cond>
<for>
<effect name="PhysicalAttack">
<param weaponTypeDec="SWORD, BLUNT, DUAL, DUALFIST, DUALBLUNT" />
<param valueDec="0.9" />
<param weaponTypeInc="POLE" />
<param valueInc="1.5" />
</effect>
</for>
</skill>
<skill id="10291" levels="1" name="Feral Bear Cry" enchantGroup1="10" enchantGroup2="10">
<!-- Shouts loudly to invoke the power of the Bear. For 5 minutes, increases your P. Atk. and P. Critical Damage by 30%. -->
<table name="#enchTime"> 310 320 330 340 350 360 370 380 390 400 </table>
<table name="#enchTraits"> 1 2 3 4 5 6 7 8 9 10 </table>
<table name="#enchMagicLvl"> 86 87 88 90 91 92 93 95 97 99 </table>
@ -1689,7 +1989,6 @@
</enchant2for>
</skill>
<skill id="10292" levels="1" name="Feral Ogre Cry" enchantGroup1="10" enchantGroup2="10">
<!-- Shouts loudly to invoke the power of the Ogre. For 5 minutes, increases your P. Atk., P. Def. And M. Def. by 35% and P. Critical Damage and Max HP by 10%. -->
<table name="#enchTime"> 310 320 330 340 350 360 370 380 390 400 </table>
<table name="#enchTraits"> 1 2 3 4 5 6 7 8 9 10 </table>
<table name="#enchMagicLvl"> 86 87 88 90 91 92 93 95 97 99 </table>
@ -1715,9 +2014,6 @@
<mul stat="mDef" val="1.35" />
<mul stat="cAtk" val="1.10" />
</effect>
<effect name="HealPercent">
<param power="7" />
</effect>
</for>
<enchant2for>
<effect name="Buff">
@ -1727,16 +2023,12 @@
<mul stat="mDef" val="1.35" />
<mul stat="cAtk" val="1.10" />
</effect>
<effect name="HealPercent">
<param power="7" />
</effect>
<effect name="AttackTrait">
<param KNOCKDOWN="#enchTraits" />
</effect>
</enchant2for>
</skill>
<skill id="10293" levels="1" name="Feral Puma Cry" enchantGroup1="10" enchantGroup2="10">
<!-- Shouts loudly to invoke the power of the Puma. For 5 minutes, increases your P. Accuracy by 10 and Atk. Spd. by 20%, and decreases Critical Damage received by 40%. -->
<table name="#enchTime"> 310 320 330 340 350 360 370 380 390 400 </table>
<table name="#enchTraits"> 1 2 3 4 5 6 7 8 9 10 </table>
<table name="#enchMagicLvl"> 86 87 88 90 91 92 93 95 97 99 </table>
@ -1773,7 +2065,6 @@
</enchant2for>
</skill>
<skill id="10294" levels="1" name="Feral Rabbit Cry" enchantGroup1="10" enchantGroup2="10">
<!-- Shouts loudly to invoke the power of the Rabbit. For 5 minutes, increases your Atk. Spd. by 30%, Speed by 35% and P. Evasion by 15. -->
<table name="#enchTime"> 310 320 330 340 350 360 370 380 390 400 </table>
<table name="#enchTraits"> 1 2 3 4 5 6 7 8 9 10 </table>
<table name="#enchMagicLvl"> 86 87 88 90 91 92 93 95 97 99 </table>
@ -1788,6 +2079,9 @@
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="reuseDelay" val="30000" />
<set name="targetType" val="SELF" />
<enchant1 name="magicLvl" val="#enchMagicLvl" />
<enchant1 name="abnormalTime" val="#enchTime" />
<enchant2 name="magicLvl" val="#enchMagicLvl" />
<for>
<effect name="Buff">
<mul stat="pAtkSpd" val="1.30" />
@ -1807,7 +2101,6 @@
</enchant2for>
</skill>
<skill id="10295" levels="1" name="Hawk Cry" enchantGroup1="10" enchantGroup2="10">
<!-- Shouts loudly to invoke the power of the Hawk. For 5 minutes, increases your P. Accuracy by 8, Critical Rate by 120 and Critical Damage by 30%. -->
<table name="#enchTime"> 310 320 330 340 350 360 370 380 390 400 </table>
<table name="#enchTraits"> 1 2 3 4 5 6 7 8 9 10 </table>
<table name="#enchMagicLvl"> 86 87 88 90 91 92 93 95 97 99 </table>
@ -1822,6 +2115,9 @@
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="reuseDelay" val="30000" />
<set name="targetType" val="SELF" />
<enchant1 name="magicLvl" val="#enchMagicLvl" />
<enchant1 name="abnormalTime" val="#enchTime" />
<enchant2 name="magicLvl" val="#enchMagicLvl" />
<for>
<effect name="Buff">
<add stat="accCombat" val="8" />
@ -1840,8 +2136,8 @@
</effect>
</enchant2for>
</skill>
<skill id="10296" levels="1" name="Spirit of the Hunter">
<table name="#ench1Time">1810 1820 1830 1840 1850 1860 1870 1880 1890 1900</table>
<skill id="10296" levels="1" name="Spirit of the Hunter" enchantGroup1="10">
<table name="#ench1Time">1920 2040 2160 2280 2400 2520 2640 2760 2880 3000</table>
<set name="magicLvl" val="85" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="skillType" val="BUFF" />
@ -1850,24 +2146,24 @@
<set name="hitTime" val="2000" />
<set name="reuseDelay" val="30000" />
<set name="mpConsume" val="38" />
<enchant1 name="abnormalTime" val="#enchTime" />
<enchant1 name="abnormalTime" val="#ench1Time" />
<for>
<effect name="AttackTrait">
<param BUG_WEAKNESS="1.45" />
<param PLANT_WEAKNESS="1.45" />
<param ANIMAL_WEAKNESS="1.45" />
<param BUG_WEAKNESS="1.1" />
<param PLANT_WEAKNESS="1.1" />
<param ANIMAL_WEAKNESS="1.1" />
</effect>
</for>
<enchant1for>
<effect name="AttackTrait">
<param BUG_WEAKNESS="1.45" />
<param PLANT_WEAKNESS="1.45" />
<param ANIMAL_WEAKNESS="1.45" />
<param BUG_WEAKNESS="1.1" />
<param PLANT_WEAKNESS="1.1" />
<param ANIMAL_WEAKNESS="1.1" />
</effect>
</enchant1for>
</skill>
<skill id="10297" levels="1" name="Spirit of the Slayer">
<table name="#ench1Time">1810 1820 1830 1840 1850 1860 1870 1880 1890 1900</table>
<skill id="10297" levels="1" name="Spirit of the Slayer" enchantGroup1="10">
<table name="#ench1Time">1920 2040 2160 2280 2400 2520 2640 2760 2880 3000</table>
<set name="magicLvl" val="85" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="abnormalTime" val="1800" />
@ -1876,39 +2172,39 @@
<set name="hitTime" val="2000" />
<set name="reuseDelay" val="30000" />
<set name="mpConsume" val="38" />
<enchant1 name="abnormalTime" val="#enchTime" />
<enchant1 name="abnormalTime" val="#ench1Time" />
<for>
<effect name="AttackTrait">
<param BEAST_WEAKNESS="1.45" />
<param CONSTRUCT_WEAKNESS="1.45" />
<param GIANT_WEAKNESS="1.45" />
<param DRAGON_WEAKNESS="1.45" />
<param BEAST_WEAKNESS="1.1" />
<param CONSTRUCT_WEAKNESS="1.1" />
<param GIANT_WEAKNESS="1.1" />
<param DRAGON_WEAKNESS="1.1" />
</effect>
</for>
<enchant1for>
<effect name="AttackTrait">
<param BEAST_WEAKNESS="1.45" />
<param CONSTRUCT_WEAKNESS="1.45" />
<param GIANT_WEAKNESS="1.45" />
<param DRAGON_WEAKNESS="1.45" />
<param BEAST_WEAKNESS="1.1" />
<param CONSTRUCT_WEAKNESS="1.1" />
<param GIANT_WEAKNESS="1.1" />
<param DRAGON_WEAKNESS="1.1" />
</effect>
</enchant1for>
</skill>
<skill id="10298" levels="1" name="Power Revival">
<set name="magicLvl" val="86" />
<set name="aggroPoints" val="100" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="skillType" val="HEAL_PERCENT" />
<set name="operateType" val="ACTIVE_INSTANT" />
<set name="targetType" val="SELF" />
<set name="hitTime" val="1500" />
<set name="reuseDelay" val="600000" />
<set name="mpConsume" val="38" />
<for>
<effect name="HealPercent" />
<effect name="HealPercent">
<param power="100" />
</effect>
</for>
</skill>
<skill id="10299" levels="1" name="Stun Spear">
<!-- AUTO GENERATED SKILL -->
<!-- NOT USED? -->
<!-- Inflicted with stun and unable to move for 3 seconds. -->
<set name="icon" val="icon.skill10299" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@ -1916,4 +2212,4 @@
<set name="castRange" val="40" />
<set name="isDebuff" val="true" />
</skill>
</list>
</list>

View File

@ -1,110 +1,139 @@
<?xml version="1.0" encoding="UTF-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/skills.xsd">
<!-- Level 1 : Attacks target with 52746 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 10% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. -->
<!-- Level 2 : Attacks target with 59601 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 10% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. -->
<!-- Level 3 : Attacks target with 65085 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 10% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. -->
<!-- Level 101 : Attacks target with 66456 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 10% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. Enchant Cost : Decreases MP Consumption. (+ 1 Cost | Decreases MP Consumption.) -->
<!-- Level 102 : Attacks target with 67827 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 10% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. Enchant Cost : Decreases MP Consumption. (+ 2 Cost | Decreases MP Consumption.) -->
<!-- Level 103 : Attacks target with 69198 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 10% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. Enchant Cost : Decreases MP Consumption. (+ 3 Cost | Decreases MP Consumption.) -->
<!-- Level 104 : Attacks target with 70569 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 10% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. Enchant Cost : Decreases MP Consumption. (+ 4 Cost | Decreases MP Consumption.) -->
<!-- Level 105 : Attacks target with 71940 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 10% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. Enchant Cost : Decreases MP Consumption. (+ 5 Cost | Decreases MP Consumption.) -->
<!-- Level 106 : Attacks target with 73311 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 10% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. Enchant Cost : Decreases MP Consumption. (+ 6 Cost | Decreases MP Consumption.) -->
<!-- Level 107 : Attacks target with 74682 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 10% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. Enchant Cost : Decreases MP Consumption. (+ 7 Cost | Decreases MP Consumption.) -->
<!-- Level 108 : Attacks target with 76053 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 10% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. Enchant Cost : Decreases MP Consumption. (+ 8 Cost | Decreases MP Consumption.) -->
<!-- Level 109 : Attacks target with 77424 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 10% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. Enchant Cost : Decreases MP Consumption. (+ 9 Cost | Decreases MP Consumption.) -->
<!-- Level 110 : Attacks target with 78795 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 10% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. Enchant Cost : Decreases MP Consumption. (+ 10 Cost | Decreases MP Consumption.) -->
<!-- Level 201 : Attacks target with 66456 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 11% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. Enchant Decrease Penalty : Decreases penalty. (+ 1 Decrease Penalty | Decreases penalty.) -->
<!-- Level 202 : Attacks target with 67827 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 12% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. Enchant Decrease Penalty : Decreases penalty. (+ 2 Decrease Penalty | Decreases penalty.) -->
<!-- Level 203 : Attacks target with 69198 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 13% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. Enchant Decrease Penalty : Decreases penalty. (+ 3 Decrease Penalty | Decreases penalty.) -->
<!-- Level 204 : Attacks target with 70569 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 14% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. Enchant Decrease Penalty : Decreases penalty. (+ 4 Decrease Penalty | Decreases penalty.) -->
<!-- Level 205 : Attacks target with 71940 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 15% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. Enchant Decrease Penalty : Decreases penalty. (+ 5 Decrease Penalty | Decreases penalty.) -->
<!-- Level 206 : Attacks target with 73311 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 16% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. Enchant Decrease Penalty : Decreases penalty. (+ 6 Decrease Penalty | Decreases penalty.) -->
<!-- Level 207 : Attacks target with 74682 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 17% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. Enchant Decrease Penalty : Decreases penalty. (+ 7 Decrease Penalty | Decreases penalty.) -->
<!-- Level 208 : Attacks target with 76053 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 18% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. Enchant Decrease Penalty : Decreases penalty. (+ 8 Decrease Penalty | Decreases penalty.) -->
<!-- Level 209 : Attacks target with 77424 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 19% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. Enchant Decrease Penalty : Decreases penalty. (+ 9 Decrease Penalty | Decreases penalty.) -->
<!-- Level 210 : Attacks target with 78795 Power added to P. Atk. Cuts regular monsters' HP down to 1. Usable when target's HP is 20% or below. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. Enchant Decrease Penalty : Decreases penalty. (+ 10 Decrease Penalty | Decreases penalty.) -->
<skill id="10300" levels="3" name="Last Attack">
<skill id="10300" levels="3" name="Last Attack" enchantGroup1="10" enchantGroup2="10">
<table name="#power"> 52746 59601 65085 </table>
<table name="#enchPower"> 66456 67827 69198 70569 71940 73311 74682 76053 77424 78795 </table>
<table name="#magicLvl"> 90 95 99 </table>
<table name="#mpConsume"> 276 297 315 </table>
<table name="#ench1MpConsume"> 310 306 301 297 292 288 283 279 275 270 </table>
<table name="#ench2Hp"> 11 12 13 14 15 16 17 18 19 20 </table>
<set name="icon" val="icon.skill10300" />
<set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="ACTIVE_INSTANT" />
<set name="power" val="#power" />
<set name="mpConsume" val="#mpConsume" />
<set name="effectRange" val="40" />
<set name="castRange" val="40" />
<set name="effectRange" val="400" />
<set name="effectPoint" val="-100" /> <!-- Need verify -->
<set name="hitTime" val="1690" />
<set name="coolTime" val="500" />
<set name="reuseDelay" val="30000" />
<set name="targetType" val="ONE" />
<enchant1 name="mpConsume" val="#ench1MpConsume" />
<cond msgId="113" addName="1">
<and>
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
<target hp="10" />
</and>
</cond>
<enchant2cond msgId="113" addName="1">
<and>
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
<target hp="#ench2Hp" />
</and>
</enchant2cond>
<for>
<effect name="PhysicalAttack">
<param isLastAttack="true" />
</effect>
</for>
</skill>
<!-- Level 1 : Max Momentum increases to Stage 15. -->
<skill id="10301" levels="1" name="Maximum Force Mastery">
<!-- DONE IN HANDLER -->
<set name="icon" val="icon.skill11842" />
<set name="magicLvl" val="85" />
<set name="operateType" val="PASSIVE" />
<set name="targetType" val="SELF" />
</skill>
<skill id="10302" levels="4" name="Triple Sonic Slash">
<!-- AUTO GENERATED SKILL -->
<!-- Gathers Momentum to inflict 22531 damage onto the enemy, increasing the damage as Momentum is consumed. Damage + 30% at max Momentum consumption of 3. Requires a sword, blunt, spear, fist, dual blunt, or dualsword. -->
<table name="#mpConsumes"> 98 105 112 119 </table>
<table name="#mpConsume"> 98 105 112 119 </table>
<table name="#power"> 22531 26017 29503 33377 </table>
<table name="#effectPoints"> -100 -200 -300 -400 </table> <!-- Need verify -->
<table name="#magicLvl"> 85 90 95 99 </table>
<set name="icon" val="icon.skill10302" />
<set name="operateType" val="ACTIVE_INSTANT" />
<set name="targetType" val="SELF" />
<set name="mpConsume" val="#mpConsumes" />
<set name="castRange" val="40" />
<set name="hitTime" val="1500" />
<set name="coolTime" val="500" />
<set name="effectPoint" val="#effectPoints" />
<set name="effectRange" val="400" />
<set name="hitTime" val="1500" />
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />
<set name="nextActionAttack" val="true" />
<set name="operateType" val="ACTIVE_INSTANT" />
<set name="overHit" val="true" />
<set name="reuseDelay" val="10000" />
<set name="rideState" val="NONE" />
<set name="targetType" val="ONE" />
<cond msgId="113" addName="1">
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
</cond>
<for>
<effect name="EnergyAttack">
<param power="#power" />
<param criticalChance="15" />
</effect>
</for>
</skill>
<skill id="10303" levels="4" name="Superior Combat Master">
<!-- AUTO GENERATED SKILL -->
<!-- Max CP/ HP + 2%. -->
<table name="#rate"> 1.02 1.03 1.04 1.05 </table>
<set name="icon" val="icon.skill0430" />
<set name="operateType" val="PASSIVE" />
<set name="targetType" val="SELF" />
<effect name="Buff">
<mul stat="maxHp" val="2" />
<mul stat="maxCp" val="2" />
<mul stat="maxHp" val="#rate" />
<mul stat="maxCp" val="#rate" />
</effect>
</skill>
<!-- Level 1 : When a dualsword or dual blunt is equipped, P. Atk. + 2% and additional + 709. -->
<!-- Level 2 : When a dualsword or dual blunt is equipped, P. Atk. + 3% and additional + 825. -->
<!-- Level 3 : When a dualsword or dual blunt is equipped, P. Atk. + 4% and additional + 982. -->
<!-- Level 4 : When a dualsword or dual blunt is equipped, P. Atk. + 5% and additional + 1190. -->
<skill id="10304" levels="4" name="Superior Dual Sword Mastery">
<table name="#magicLvl"> 85 90 95 99 </table>
<table name="#pAtk"> 1.02 1.03 1.04 1.05 </table>
<table name="#pAtkAdd"> 709 825 982 1190 </table>
<set name="icon" val="icon.skill11835" />
<set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="PASSIVE" />
<set name="targetType" val="SELF" />
<for>
<effect name="Buff">
<mul stat="pAtk" val="#pAtk" />
<mul stat="pAtk" val="#pAtk">
<using kind="DUAL" />
</mul>
<add stat="pAtk" val="#pAtkAdd">
<using kind="DUAL" />
</add>
</effect>
</for>
</skill>
<skill id="10305" levels="4" name="Broad Pull">
<!-- AUTO GENERATED SKILL -->
<!-- Spear Resistance - 10%. Pulls enemies from a large radius nearby. Requires a sword, blunt, spear, fist weapon, dual blunt, or dual sword. -->
<table name="#mpConsumes"> 62 69 76 83 </table>
<table name="#mpConsume"> 62 69 76 83 </table>
<table name="#magicLvl"> 85 90 95 99 </table>
<table name="#res"> -10 -12 -15 -20 </table>
<set name="icon" val="icon.skill11833" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="targetType" val="SELF" />
<set name="mpConsume" val="#mpConsumes" />
<set name="abnormalTime" val="3" />
<set name="fanRange" val="0,0,80,300" />
<set name="affectLimit" val="10-10" />
<set name="affectRange" val="250" />
<set name="mpConsume" val="#mpConsume" />
<set name="isDebuff" val="true" />
<set name="isRestartableDebuff" val="true" />
<set name="magicLvl" val="#magicLvl" />
<set name="hitTime" val="1500" />
<set name="abnormalTime" val="10" />
<set name="coolTime" val="500" />
<set name="reuseDelay" val="4000" />
<set name="isDebuff" val="true" />
<set name="targetType" val="AURA" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="effectPoint" val="-1000" />
<set name="trait" val="DERANGEMENT" />
<for>
<effect name="TargetMe" />
<effect name="DefenceTrait">
<param POLE="#res" />
</effect>
</for>
</skill>
<!-- Level 1 : When a spear is equipped, P. Atk. + 2% and additional P. Atk. 583. Increases the number of possible targets by 1. -->
<!-- Level 2 : When a spear is equipped, P. Atk. + 3% and additional P. Atk. 678. Increases the number of possible targets by 1. -->
<!-- Level 3 : When a spear is equipped, P. Atk. + 4% and additional P. Atk. 807. Increases the number of possible targets by 2. -->
<!-- Level 4 : When a spear is equipped, P. Atk. + 5% and additional P. Atk. 978. Increases the number of possible targets by 2. -->
<skill id="10306" levels="4" name="Superior Polearm Mastery">
<table name="#pAtk"> 1.02 1.03 1.04 1.05 </table>
<table name="#pAtkAdd"> 583 678 807 978 </table>
<table name="#magicLvl"> 85 90 95 99 </table>
<set name="icon" val="icon.skill11836" />
<set name="magicLvl" val="#magicLvl" />
@ -112,38 +141,56 @@
<set name="targetType" val="SELF" />
<for>
<effect name="Buff">
<mul stat="pAtk" val="#pAtk" />
<mul stat="pAtk" val="#pAtk">
<using kind="POLE" />
</mul>
<add stat="pAtk" val="#pAtkAdd">
<using kind="POLE" />
</add>
</effect>
</for>
</skill>
<skill id="10307" levels="1" name="Fist of Fury">
<!-- AUTO GENERATED SKILL -->
<!-- Greatly increases Atk. Spd. Continuously consumes HP. Requires a sword, blunt, spear, fist weapon, dual blunt, or dual sword. -->
<set name="icon" val="icon.skill10307new" />
<set name="magicLvl" val="85" />
<set name="mpConsume" val="8" />
<set name="operateType" val="TOGGLE" />
<set name="rideState" val="NONE" />
<set name="targetType" val="SELF" />
<cond msgId="113" addName="1">
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
</cond>
<for>
<effect name="DamOverTime" ticks="2">
<param power="40" />
<mul stat="pAtkSpd" val="1.25" />
</effect>
</for>
</skill>
<!-- Level 1 : Shouts loudly to invoke the power of the Bison. For 5 minutes, P. Atk. and Critical Damage + 45%, Critical Rate + 45, and Atk. Spd. - 15%. Requires a sword, blunt, spear, fist weapon, dual blunt, or dualsword. -->
<skill id="10308" levels="1" name="Wild Roar">
<set name="icon" val="icon.skill11834" />
<set name="magicLvl" val="85" />
<set name="abnormalTime" val="300" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="mpConsume" val="38" />
<set name="hitTime" val="2000" />
<set name="reuseDelay" val="30000" />
<set name="targetType" val="SELF" />
<cond msgId="113" addName="1">
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
</cond>
<for>
<effect name="Buff">
<mul stat="pAtk" val="1.45" />
<mul stat="cAtk" val="1.45" />
<add stat="rCrit" val="45" />
<mul stat="pAtkSpd" val="0.85" />
</effect>
</for>
</skill>
<!-- Level 1 : When a fist weapon is equipped, P. Atk. + 2% and additional + 709. -->
<!-- Level 2 : When a fist weapon is equipped, P. Atk. + 3% and additional + 825. -->
<!-- Level 3 : When a fist weapon is equipped, P. Atk. + 4% and additional + 982. -->
<!-- Level 4 : When a fist weapon is equipped, P. Atk. + 5% and additional + 1190. -->
<skill id="10309" levels="4" name="Superior Fist Weapon Mastery">
<table name="#pAtk"> 1.02 1.03 1.04 1.05 </table>
<table name="#pAtkAdd"> 709 825 982 1190 </table>
<table name="#magicLvl"> 85 90 95 99 </table>
<set name="icon" val="icon.skill11837" />
<set name="magicLvl" val="#magicLvl" />
@ -151,26 +198,35 @@
<set name="targetType" val="SELF" />
<for>
<effect name="Buff">
<mul stat="pAtk" val="#pAtk" />
<mul stat="pAtk" val="#pAtk">
<using kind="DUALFIST" />
</mul>
<add stat="pAtk" val="#pAtkAdd">
<using kind="DUALFIST" />
</add>
</effect>
</for>
</skill>
<skill id="10310" levels="1" name="Primal Rage">
<!-- AUTO GENERATED SKILL -->
<!-- For 10 min., P. Atk. + 15%. Requires a sword, blunt, spear, fist weapon, dual blunt, or dual sword. -->
<set name="icon" val="icon.skill10310" />
<set name="abnormalTime" val="600" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="targetType" val="SELF" />
<set name="mpConsume" val="38" />
<set name="hitTime" val="1500" />
<set name="reuseDelay" val="30000" />
<cond msgId="113" addName="1">
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
</cond>
<for>
<effect name="Buff">
<mul stat="pAtk" val="1.15" />
</effect>
</for>
</skill>
<!-- Level 1 : When a two-handed sword or two handed blunt is equipped, P. Atk. + 2% and additional + 709. -->
<!-- Level 2 : When a two-handed sword or two handed blunt is equipped, P. Atk. + 3% and additional + 825. -->
<!-- Level 3 : When a two-handed sword or two handed blunt is equipped, P. Atk. + 4% and additional + 982. -->
<!-- Level 4 : When a two-handed sword or two handed blunt is equipped, P. Atk. + 5% and additional + 1190. -->
<skill id="10311" levels="4" name="Superior Two-handed Weapon Mastery">
<table name="#pAtk"> 1.02 1.03 1.04 1.05 </table>
<table name="#pAtkAdd"> 709 825 982 1190 </table>
<table name="#magicLvl"> 85 90 95 99 </table>
<set name="icon" val="icon.skill11838" />
<set name="magicLvl" val="#magicLvl" />
@ -178,7 +234,18 @@
<set name="targetType" val="SELF" />
<for>
<effect name="Buff">
<mul stat="pAtk" val="#pAtk" />
<mul stat="pAtk" val="#pAtk">
<and>
<using kind="SWORD, BLUNT" />
<using slot="lrhand" />
</and>
</mul>
<add stat="pAtk" val="#pAtkAdd">
<and>
<using kind="SWORD, BLUNT" />
<using slot="lrhand" />
</and>
</add>
</effect>
</for>
</skill>
@ -187,6 +254,7 @@
<!-- Level 3 : There is a small chance that the item quantity will double upon crafting. Critical level 3. -->
<!-- Level 4 : There is a small chance that the item quantity will double upon crafting. Critical level 4. -->
<skill id="10312" levels="4" name="Crafting Mastery">
<!-- NOT DONE -->
<table name="#magicLvl"> 85 90 95 99 </table>
<set name="icon" val="icon.skill10312" />
<set name="magicLvl" val="#magicLvl" />
@ -194,35 +262,75 @@
<set name="targetType" val="SELF" />
</skill>
<skill id="10313" levels="4" name="Infinite Rush">
<!-- AUTO GENERATED SKILL -->
<!-- Rush toward the frontal enemies to inflict Shock for 9 sec. Requires a sword, blunt, spear, fist weapon, dual blunt, or dual sword. -->
<table name="#mpConsumes"> 92 98 104 110 </table>
<table name="#magicLvl"> 85 90 95 99 </table>
<set name="icon" val="icon.skill10313" />
<set name="operateType" val="ACTIVE_INSTANT" />
<set name="targetType" val="SELF" />
<set name="mpConsume" val="#mpConsumes" />
<set name="abnormalLvl" val="1" />
<set name="abnormalTime" val="9" />
<set name="abnormalType" val="STUN" />
<set name="abnormalVisualEffect" val="STUN" />
<set name="activateRate" val="60" />
<set name="affectLimit" val="5-12" />
<set name="affectRange" val="600" />
<set name="basicProperty" val="CON" />
<set name="castRange" val="600" />
<set name="hitTime" val="500" />
<set name="coolTime" val="500" />
<set name="effectPoint" val="-100" /> <!-- Need verify -->
<set name="effectRange" val="800" />
<set name="fanRange" val="0,0,600,60" />
<set name="flyType" val="CHARGE" />
<set name="hitTime" val="500" />
<set name="hpConsume" val="28" />
<set name="icon" val="icon.skill0793" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="#magicLvl" />
<set name="nextActionAttack" val="true" />
<set name="operateType" val="DIRECTIONAL_CONTINUOUS" />
<set name="rideState" val="NONE" />
<set name="targetType" val="FRONT_AREA" />
<set name="trait" val="SHOCK" />
<cond msgId="113" addName="1">
<and>
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
<target mindistance="200" />
</and>
</cond>
</skill>
<skill id="10314" levels="4" name="Disarmament">
<!-- AUTO GENERATED SKILL -->
<!-- Disarms enemies for 5 sec. and decreases their P. Atk./ M. Atk. by 40%. Requires a sword, blunt, spear, fist weapon, dual blunt, or dual sword. -->
<set name="icon" val="icon.skill0485" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="targetType" val="SELF" />
<set name="mpConsume" val="38" />
<set name="castRange" val="40" />
<set name="abnormalLvl" val="1" />
<set name="abnormalTime" val="5" />
<set name="abnormalType" val="DISARM" />
<set name="abnormalVisualEffect" val="DOT_BLEEDING" />
<set name="activateRate" val="70" />
<set name="affectLimit" val="6-12" />
<set name="affectRange" val="200" />
<set name="basicProperty" val="STR" />
<set name="effectPoint" val="-673" />
<set name="hitTime" val="1000" />
<set name="coolTime" val="500" />
<set name="reuseDelay" val="60000" />
<set name="icon" val="icon.skill0794" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="79" />
<set name="mpConsume" val="58" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="reuseDelay" val="150000" />
<set name="rideState" val="NONE" />
<set name="targetType" val="AURA" />
<cond msgId="113" addName="1">
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
</cond>
<for>
<effect name="Disarm">
<mul stat="pAtk" val="0.6" />
<mul stat="mAtk" val="0.6" />
</effect>
</for>
</skill>
<!-- Level 1 : When a spear is equipped, P. Atk. + 2% and additional P. Atk. + 583. -->
<!-- Level 2 : When a spear is equipped, P. Atk. + 3% and additional P. Atk. + 678. -->
<skill id="10315" levels="2" name="Superior Polearm Mastery">
<table name="#pAtk"> 1.02 1.03 </table>
<table name="#pAtkAdd"> 583 678 </table>
<table name="#magicLvl"> 90 90 </table>
<set name="icon" val="icon.skill11836" />
<set name="magicLvl" val="#magicLvl" />
@ -230,14 +338,12 @@
<set name="targetType" val="SELF" />
<for>
<effect name="Buff">
<mul stat="pAtk" val="#pAtk" />
<mul stat="pAtk" val="#pAtk">
<using kind="POLE" />
</mul>
</effect>
</for>
</skill>
<!-- Level 1 : PvP P. Atk. + 5%. -->
<!-- Level 2 : PvP P. Atk. + 6%. -->
<!-- Level 3 : PvP P. Atk. + 7%. -->
<!-- Level 4 : PvP P. Atk. + 8%. -->
<skill id="10316" levels="4" name="Bloodthirst">
<table name="#pAtk"> 1.05 1.06 1.07 1.08 </table>
<table name="#magicLvl"> 85 90 95 99 </table>
@ -247,140 +353,218 @@
<set name="targetType" val="SELF" />
<for>
<effect name="Buff">
<mul stat="pAtk" val="#pAtk" />
<mul stat="pvpPhysDmg" val="#pAtk" />
</effect>
</for>
</skill>
<skill id="10317" levels="4" name="Thunder Slasher">
<!-- AUTO GENERATED SKILL -->
<!-- Swings a spear to inflict 26003 added to P. Atk. on nearby enemies and Stuns them for 5 sec. Requires a spear. Ignores Shield Defense. Over-hit. Critical. -->
<table name="#mpConsumes"> 122 124 129 133 </table>
<table name="#mpConsume"> 122 124 129 133 </table>
<table name="#magicLvl"> 85 90 95 99 </table>
<table name="#effectPoints"> -173 -174 -175 -176 </table>
<table name="#power"> 26003 30494 35883 37680 </table>
<set name="icon" val="icon.skill10317new" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="targetType" val="SELF" />
<set name="mpConsume" val="#mpConsumes" />
<set name="hitTime" val="1390" />
<set name="abnormalLvl" val="1" />
<set name="abnormalTime" val="9" />
<set name="abnormalType" val="STUN" />
<set name="abnormalVisualEffect" val="STUN" />
<set name="activateRate" val="50" />
<set name="affectLimit" val="6-12" />
<set name="affectRange" val="150" />
<set name="baseCritRate" val="15" />
<set name="basicProperty" val="CON" />
<set name="coolTime" val="200" />
<set name="reuseDelay" val="15000" />
<set name="effectPoint" val="#effectPoints" />
<set name="hitTime" val="1390" />
<set name="ignoreShld" val="true" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="overHit" val="true" />
<set name="power" val="#power" />
<set name="reuseDelay" val="15000" />
<set name="rideState" val="NONE" />
<set name="targetType" val="AURA" />
<set name="trait" val="SHOCK" />
<cond msgId="113" addName="1">
<using kind="POLE" />
</cond>
<for>
<effect name="PhysicalAttack" />
<effect name="Stun" />
</for>
</skill>
<!-- Level 1 : Launches a wave of sword energy to inflict 17348 damage added to P. Atk., increasing the damage as Momentum is consumed. Can consume up to 3. Requires a dual sword, sword, or blunt. Over-hit. Critical. -->
<!-- Level 2 : Launches a wave of sword energy to inflict 20033 damage added to P. Atk., increasing the damage as Momentum is consumed. Can consume up to 3. Requires a dual sword, sword, or blunt. Over-hit. Critical. -->
<!-- Level 3 : Launches a wave of sword energy to inflict 22717 damage added to P. Atk., increasing the damage as Momentum is consumed. Can consume up to 3. Requires a dual sword, sword, or blunt. Over-hit. Critical. -->
<!-- Level 4 : Launches a wave of sword energy to inflict 25700 damage added to P. Atk., increasing the damage as Momentum is consumed. Can consume up to 3. Requires a dual sword, sword, or blunt. Over-hit. Critical. -->
<skill id="10318" levels="4" name="Sonic Flash">
<table name="#power"> 17348 20033 22717 25700 </table>
<table name="#magicLvl"> 85 90 95 99 </table>
<table name="#mpConsume"> 98 105 112 119 </table>
<table name="#effectPoints"> -100 -200 -300 -400 </table> <!-- Need verify -->
<set name="icon" val="icon.skill10318new" />
<set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="ACTIVE_INSTANT" />
<set name="power" val="#power" />
<set name="mpConsume" val="#mpConsume" />
<set name="effectRange" val="600" />
<set name="castRange" val="600" />
<set name="effectPoint" val="#effectPoints" />
<set name="effectRange" val="1100" />
<set name="hitTime" val="1500" />
<set name="coolTime" val="500" />
<set name="reuseDelay" val="10000" />
<set name="targetType" val="SELF" />
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />
<set name="operateType" val="ACTIVE_INSTANT" />
<set name="overHit" val="true" />
<set name="baseCritRate" val="15" /> <!-- Guessing -->
<set name="reuseDelay" val="10000" />
<set name="rideState" val="NONE" />
<set name="targetType" val="ONE" />
<cond msgId="113" addName="1">
<using kind="SWORD, BLUNT, DUAL" />
</cond>
<for>
<effect name="EnergyAttack">
<param power="#power" />
<param criticalChance="15" />
</effect>
</for>
</skill>
<skill id="10319" levels="1" name="Duelist's Fury">
<!-- AUTO GENERATED SKILL -->
<!-- P. Atk. + 30%, Spd. + 66, and increases debuff resistance. -->
<set name="icon" val="icon.skll10319" />
<set name="abnormalTime" val="30" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="targetType" val="SELF" />
<set name="hitTime" val="300" />
<set name="reuseDelay" val="300000" />
<set name="isMagic" val="4" />
<for>
<effect name="Buff">
<mul stat="pAtk" val="1.3" />
<add stat="runSpd" val="66" />
<sub stat="debuffVuln" val="30" />
</effect>
</for>
</skill>
<!-- Level 1 : Engages target in 1:1 combat. Ignores all normal attacks, skills, and debuffs, except those of the opponent. Increases your P. Atk., Spd., and debuff resistance. -->
<skill id="10320" levels="1" name="Faceoff">
<set name="icon" val="icon.skll10319" />
<set name="abnormalTime" val="30" />
<set name="magicLvl" val="90" />
<set name="operateType" val="PASSIVE" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="mpConsume" val="43" />
<set name="effectRange" val="600" />
<set name="castRange" val="600" />
<set name="effectPoint" val="-100" />
<set name="effectRange" val="900" />
<set name="hitTime" val="300" />
<set name="reuseDelay" val="600000" />
<set name="isDebuff" val="true" />
<set name="targetType" val="SELF" />
<set name="targetType" val="ONE" />
<for>
<effect name="Duel" />
</for>
</skill>
<!-- Level 1 : Attacks near the enemy by throwing a spear with 22536 Power added to P. Atk. Stuns for 9 seconds. Requires a spear. Over-hit. Critical hit. Ignores Shield Defense. Target cancel. -->
<!-- Level 2 : Attacks near the enemy by throwing a spear with 26428 Power added to P. Atk. Stuns for 9 seconds. Requires a spear. Over-hit. Critical hit. Ignores Shield Defense. Target cancel. -->
<!-- Level 3 : Attacks near the enemy by throwing a spear with 29542 Power added to P. Atk. Stuns for 9 seconds. Requires a spear. Over-hit. Critical hit. Ignores Shield Defense. Target cancel. -->
<!-- Level 4 : Attacks near the enemy by throwing a spear with 32656 Power added to P. Atk. Stuns for 9 seconds. Requires a spear. Over-hit. Critical hit. Ignores Shield Defense. Target cancel. -->
<skill id="10321" levels="4" name="Thunder Spear">
<table name="#power"> 22536 26428 29542 32656 </table>
<table name="#magicLvl"> 85 90 95 99 </table>
<table name="#mpConsume"> 122 124 129 133 </table>
<table name="#effectPoints"> -100 -200 -300 -400 </table>
<set name="icon" val="icon.skll10321" />
<set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="power" val="#power" />
<set name="mpConsume" val="#mpConsume" />
<set name="effectRange" val="900" />
<set name="abnormalLvl" val="1" />
<set name="abnormalTime" val="9" />
<set name="abnormalType" val="STUN" />
<set name="abnormalVisualEffect" val="STUN" />
<set name="activateRate" val="50" />
<set name="affectLimit" val="6-12" />
<set name="affectRange" val="150" />
<set name="baseCritRate" val="15" />
<set name="basicProperty" val="CON" />
<set name="coolTime" val="200" />
<set name="effectPoint" val="#effectPoints" />
<set name="hitTime" val="2500" />
<set name="reuseDelay" val="30000" />
<set name="targetType" val="AREA" />
<set name="ignoreShld" val="true" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="overHit" val="true" />
<set name="power" val="#power" />
<set name="reuseDelay" val="15000" />
<set name="rideState" val="NONE" />
<set name="targetType" val="AURA" />
<set name="trait" val="SHOCK" />
<cond msgId="113" addName="1">
<using kind="POLE" />
</cond>
<for>
<effect name="PhysicalAttack" />
<effect name="Stun" />
<effect name="TargetCancel">
<param chance="75" />
</effect>
</for>
</skill>
<!-- Level 1 : Shouts loudly to invoke the power of the Wolf. For 5 minutes, P. Def. and M. Def. + 50%, Max HP + 25%, and Spd. + 20. Requires a sword, blunt, spear, fist weapon, dual blunt, or dualsword. -->
<skill id="10322" levels="1" name="Wolf's Cry">
<set name="icon" val="icon.skll10320" />
<set name="magicLvl" val="85" />
<set name="abnormalTime" val="300" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="mpConsume" val="38" />
<set name="hitTime" val="2000" />
<set name="reuseDelay" val="30000" />
<set name="targetType" val="SELF" />
<cond msgId="113" addName="1">
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
</cond>
<for>
<effect name="Buff">
<mul stat="pDef" val="1.5" />
<mul stat="mDef" val="1.5" />
<mul stat="maxHp" val="1.25" />
<add stat="runSpd" val="20" />
</effect>
</for>
</skill>
<skill id="10323" levels="1" name="Self Heal (Warrior)">
<!-- AUTO GENERATED SKILL -->
<!-- Recovers 10% of Max HP. -->
<set name="icon" val="icon.skill0000" />
<set name="operateType" val="ACTIVE_INSTANT" />
<set name="targetType" val="SELF" />
<set name="mpConsume" val="1" />
<set name="reuseDelay" val="5000" />
<for>
<effect name="HealPercent">
<param power="10" />
</effect>
</for>
</skill>
<!-- Level 1 : Power of skills that consume Momentum increase by 10%. -->
<!-- Level 2 : Power of skills that consume Momentum increase by 15%. -->
<!-- Level 3 : Power of skills that consume Momentum increase by 20%. -->
<skill id="10324" levels="3" name="Momentum Master">
<table name="#magicLvl"> 97 98 99 </table>
<table name="#rate"> 1.1 1.15 1.2 </table>
<set name="icon" val="icon.skill10324" />
<set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="PASSIVE" />
<set name="targetType" val="SELF" />
<for>
<effect name="Buff">
<mul stat="momentumSkillPower" val="#rate" />
</effect>
</for>
</skill>
<!-- Level 1 : Cancels at least one buff of nearby enemies. Consumes 10 Soulstones. -->
<!-- Level 2 : Cancels at least one buff of nearby enemies. Consumes 10 Soulstones. -->
<!-- Level 3 : Cancels at least one buff of nearby enemies. Consumes 10 Soulstones. -->
<skill id="10325" levels="3" name="Dreadful Roar">
<table name="#magicLvl"> 97 98 99 </table>
<table name="#mpConsume"> 149 151 154 </table>
<set name="icon" val="icon.skill10325" />
<set name="magicLvl" val="#magicLvl" />
<set name="affectLimit" val="6-12" />
<set name="affectRange" val="150" />
<set name="operateType" val="ACTIVE_INSTANT" />
<set name="mpConsume" val="#mpConsume" />
<set name="hitTime" val="1500" />
<set name="coolTime" val="500" />
<set name="castRange" val="40" />
<set name="effectPoint" val="-100" /> <!-- Need verify -->
<set name="reuseDelay" val="120000" />
<set name="itemConsumeCount" val="10" />
<set name="itemConsumeId" val="1785" />
<set name="targetType" val="AREA" />
<for>
<effect name="DispelByCategory">
<param slot="buff" rate="25" max="1" />
</effect>
</for>
</skill>
<skill id="10326" levels="3" name="Bloody Fury">
<!-- AUTO GENERATED SKILL -->
<!-- For 30 sec., P. Atk. + 450, Skill Power + 5%, and HP Recovery is limited to 70%. -->
<table name="#mpConsumes"> 45 50 55 </table>
<set name="icon" val="icon.skill10326" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@ -389,39 +573,62 @@
<set name="hitTime" val="2000" />
<set name="coolTime" val="200" />
<set name="reuseDelay" val="180000" />
<for>
<effect name="Buff">
<add stat="pAtk" val="450" />
<mul stat="physicalSkillPower" val="1.05" />
<mul stat="maxRecoverableHp" val="0.7" />
</effect>
</for>
</skill>
<!-- Level 1 : Attacks target with 17348 Power added to P. Atk. Requires a sword/dagger/blunt weapon/fist weapon. Damage increases when using Momentum, which you can use up to 3. Over-hit. Critical. -->
<!-- Level 2 : Attacks target with 20033 Power added to P. Atk. Requires a sword/dagger/blunt weapon/fist weapon. Damage increases when using Momentum, which you can use up to 3. Over-hit. Critical. -->
<!-- Level 3 : Attacks target with 22717 Power added to P. Atk. Requires a sword/dagger/blunt weapon/fist weapon. Damage increases when using Momentum, which you can use up to 3. Over-hit. Critical. -->
<!-- Level 4 : Attacks target with 25700 Power added to P. Atk. Requires a sword/dagger/blunt weapon/fist weapon. Damage increases when using Momentum, which you can use up to 3. Over-hit. Critical. -->
<skill id="10327" levels="4" name="Momentum Flash">
<table name="#power"> 17348 20033 22717 25700 </table>
<table name="#magicLvl"> 85 90 95 99 </table>
<table name="#mpConsume"> 98 105 112 119 </table>
<table name="#effectPoints"> -100 -200 -300 -400 </table> <!-- Need verify -->
<set name="icon" val="icon.skill10327" />
<set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="ACTIVE_INSTANT" />
<set name="power" val="#power" />
<set name="mpConsume" val="#mpConsume" />
<set name="effectRange" val="600" />
<set name="castRange" val="600" />
<set name="effectRange" val="1100" />
<set name="effectPoint" val="#effectPoints" />
<set name="hitTime" val="1500" />
<set name="coolTime" val="500" />
<set name="reuseDelay" val="10000" />
<set name="targetType" val="ONE" />
<set name="overHit" val="true" />
<set name="baseCritRate" val="15" /> <!-- Guessing -->
<cond msgId="113" addName="1">
<using kind="SWORD, DAGGER, BLUNT, DUALFIST" />
</cond>
<for>
<effect name="EnergyAttack">
<param power="#power" />
<param criticalChance="15" />
</effect>
</for>
</skill>
<!-- Level 1 : When equipped with a sword or blunt weapon, P. Atk. +10%, P. Critical Damage + 10%, and P. Skill MP Consumption + 10%. -->
<!-- Level 2 : When equipped with a sword or blunt weapon, P. Atk. +12%, P. Critical Damage + 12%, and P. Skill MP Consumption + 10%. -->
<!-- Level 3 : When equipped with a sword or blunt weapon, P. Atk. +15%, P. Critical Damage + 15%, and P. Skill MP Consumption + 10%. -->
<skill id="10328" levels="3" name="Soul Berserker">
<table name="#magicLvl"> 97 98 99 </table>
<table name="#rate"> 1.1 1.12 1.15 </table>
<set name="icon" val="icon.skill10328" />
<set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="TOGGLE" />
<set name="targetType" val="SELF" />
<for>
<effect name="Buff">
<mul stat="pAtk" val="#rate">
<using kind="SWORD, BLUNT" />
</mul>
<mul stat="cAtk" val="#rate">
<using kind="SWORD, BLUNT" />
</mul>
<mul stat="PhysicalMpConsumeRate" val="1.1">
<using kind="SWORD, BLUNT" />
</mul>
</effect>
</for>
</skill>
<!-- Level 1 : When equipped with a one-handed blunt weapon, P. Atk. + 21% and P. Critical Rate + 60. -->
<skill id="10329" levels="1" name="Superior Blunt Weapon Mastery">
<set name="icon" val="icon.skill10329" />
<set name="magicLvl" val="85" />
@ -429,7 +636,18 @@
<set name="targetType" val="SELF" />
<for>
<effect name="Buff">
<mul stat="pAtk" val="1.21" />
<mul stat="pAtk" val="1.21">
<and>
<using kind="BLUNT" />
<using slot="rhand" />
</and>
</mul>
<add stat="rCrit" val="60">
<and>
<using kind="BLUNT" />
<using slot="rhand" />
</and>
</add>
</effect>
</for>
</skill>
@ -441,18 +659,38 @@
<table name="#power"> 18005 22505 27005 30605 </table>
<table name="#magicLvl"> 85 90 95 99 </table>
<table name="#mpConsume"> 92 96 101 105 </table>
<table name="#effectPoints"> -100 -200 -300 -400 </table> <!-- Need verify -->
<set name="abnormalLvl" val="1" />
<set name="abnormalTime" val="9" />
<set name="abnormalType" val="STUN" />
<set name="abnormalVisualEffect" val="STUN" />
<set name="activateRate" val="50" />
<set name="basicProperty" val="CON" />
<set name="icon" val="icon.skill10330" />
<set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="power" val="#power" />
<set name="mpConsume" val="#mpConsume" />
<set name="effectRange" val="40" />
<set name="ignorePhysDefPercent" val="30" />
<set name="castRange" val="40" />
<set name="effectRange" val="400" />
<set name="effectPoint" val="#effectPoints" />
<set name="hitTime" val="1500" />
<set name="coolTime" val="500" />
<set name="lvlBonusRate" val="1" />
<set name="nextActionAttack" val="true" />
<set name="reuseDelay" val="7000" />
<set name="isDebuff" val="true" />
<set name="targetType" val="ONE" />
<set name="overHit" val="true" />
<set name="baseCritRate" val="15" /> <!-- Guessing -->
<set name="trait" val="SHOCK" />
<cond msgId="113" addName="1">
<using kind="BLUNT" />
</cond>
<for>
<effect name="PhysicalAttack" />
<effect name="Stun" />
</for>
</skill>
</list>

File diff suppressed because it is too large Load Diff

View File

@ -112,6 +112,7 @@
<xs:attribute type="xs:string" name="race" use="optional" />
<xs:attribute type="xs:string" name="npcId" use="optional" />
<xs:attribute type="xs:string" name="npcType" use="optional" />
<xs:attribute type="xs:string" name="hp" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
@ -247,7 +248,7 @@
<xs:attribute type="xs:string" name="grade" use="optional" />
<xs:attribute type="xs:byte" name="VALAKAS" use="optional" />
<xs:attribute type="xs:string" name="isItem" use="optional" />
<xs:attribute type="xs:byte" name="skillLvl" use="optional" />
<xs:attribute type="xs:string" name="skillLvl" use="optional" />
<xs:attribute type="xs:byte" name="GUST" use="optional" />
<xs:attribute type="xs:byte" name="BOSS" use="optional" />
<xs:attribute type="xs:byte" name="PHYSICAL_BLOCKADE" use="optional" />
@ -263,6 +264,13 @@
<xs:attribute type="xs:integer" name="speed" use="optional" />
<xs:attribute type="xs:integer" name="distance" use="optional" />
<xs:attribute type="xs:integer" name="debuffId" use="optional" />
<xs:attribute type="xs:string" name="weaponTypeDec" use="optional" />
<xs:attribute type="xs:double" name="valueDec" use="optional" />
<xs:attribute type="xs:string" name="weaponTypeInc" use="optional" />
<xs:attribute type="xs:double" name="valueInc" use="optional" />
<xs:attribute type="xs:boolean" name="isLastAttack" use="optional" />
<xs:attribute type="xs:string" name="targetAbnormalType" use="optional" />
<xs:attribute type="xs:double" name="skillAddPower" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
@ -395,6 +403,7 @@
<xs:enumeration value="maxSkillDamage" />
<xs:enumeration value="weaponElementPower" />
<xs:enumeration value="hpRestoreOnKill" />
<xs:enumeration value="momentumSkillPower" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="addType" mixed="true">
@ -480,6 +489,8 @@
<xs:element name="enchant4for" type="forType" />
<xs:element name="enchant5for" type="forType" />
<xs:element name="enchant6for" type="forType" />
<xs:element name="enchant8for" type="forType" />
<xs:element name="enchant9for" type="forType" />
<xs:element name="endEffects" type="effectsType" />
<xs:element name="selfEffects" type="effectsType" />
<xs:element name="enchant2selfEffects" type="effectsType" />

View File

@ -115,6 +115,7 @@ import com.l2jserver.gameserver.model.conditions.ConditionTargetActiveEffectId;
import com.l2jserver.gameserver.model.conditions.ConditionTargetActiveSkillId;
import com.l2jserver.gameserver.model.conditions.ConditionTargetAggro;
import com.l2jserver.gameserver.model.conditions.ConditionTargetClassIdRestriction;
import com.l2jserver.gameserver.model.conditions.ConditionTargetHp;
import com.l2jserver.gameserver.model.conditions.ConditionTargetInvSize;
import com.l2jserver.gameserver.model.conditions.ConditionTargetLevel;
import com.l2jserver.gameserver.model.conditions.ConditionTargetLevelRange;
@ -1049,6 +1050,12 @@ public abstract class DocumentBase
cond = joinAnd(cond, new ConditionTargetAbnormalType(abnormalType));
break;
}
case "hp":
{
int hp = Integer.decode(getValue(a.getNodeValue(), template));
cond = joinAnd(cond, new ConditionTargetHp(hp));
break;
}
case "mindistance":
{
int distance = Integer.decode(getValue(a.getNodeValue(), null));

View File

@ -184,7 +184,7 @@ public abstract class L2Object extends ListenersContainer implements IIdentifiab
@Override
public final boolean spawnMe()
{
assert (getWorldRegion() == null) && (getLocation().getX() != 0) && (getLocation().getY() != 0) && (getLocation().getZ() != 0);
assert(getWorldRegion() == null) && (getLocation().getX() != 0) && (getLocation().getY() != 0) && (getLocation().getZ() != 0);
synchronized (this)
{
@ -569,7 +569,7 @@ public abstract class L2Object extends ListenersContainer implements IIdentifiab
public void removeStatusListener(L2Character object)
{
}
protected void badCoords()
@ -1007,6 +1007,15 @@ public abstract class L2Object extends ListenersContainer implements IIdentifiab
return false;
}
/**
* @param player
* @return {@code true} if player can ignore an invulnerable object if it's invulnerable, {@code false} otherwise.
*/
public boolean isVulnerableFor(L2Character player)
{
return !isInvul() || player.canOverrideCond(PcCondOverride.VULNERABLE_ALL_PLAYERS);
}
@Override
public boolean equals(Object obj)
{

View File

@ -38,7 +38,8 @@ public enum PcCondOverride
DESTROY_ALL_ITEMS(12, "Overrides item destroy conditions"),
SEE_ALL_PLAYERS(13, "Overrides the conditions to see hidden players"),
TARGET_ALL(14, "Overrides target conditions"),
DROP_ALL_ITEMS(15, "Overrides item drop conditions");
DROP_ALL_ITEMS(15, "Overrides item drop conditions"),
VULNERABLE_ALL_PLAYERS(16, "Overrides the conditions to invulnerable players");
private final int _mask;
private final String _descr;

View File

@ -4185,7 +4185,8 @@ public final class L2PcInstance extends L2Playable
}
/**
* Send packet StatusUpdate with current HP,MP and CP to the L2PcInstance and only current HP, MP and Level to all other L2PcInstance of the Party. <B><U> Actions</U> :</B> <li>Send the Server->Client packet StatusUpdate with current HP, MP and CP to this L2PcInstance</li><BR>
* Send packet StatusUpdate with current HP,MP and CP to the L2PcInstance and only current HP, MP and Level to all other L2PcInstance of the Party. <B><U> Actions</U> :</B>
* <li>Send the Server->Client packet StatusUpdate with current HP, MP and CP to this L2PcInstance</li><BR>
* <li>Send the Server->Client packet PartySmallWindowUpdate with current HP, MP and Level to all other L2PcInstance of the Party</li> <FONT COLOR=#FF0000><B> <U>Caution</U> : This method DOESN'T SEND current HP and MP to all L2PcInstance of the _statusListener</B></FONT>
*/
@Override
@ -4249,8 +4250,10 @@ public final class L2PcInstance extends L2Playable
/**
* Send a Server->Client packet UserInfo to this L2PcInstance and CharInfo to all L2PcInstance in its _KnownPlayers. <B><U> Concept</U> :</B> Others L2PcInstance in the detection area of the L2PcInstance are identified in <B>_knownPlayers</B>. In order to inform other players of this
* L2PcInstance state modifications, server just need to go through _knownPlayers to send Server->Client Packet <B><U> Actions</U> :</B> <li>Send a Server->Client packet UserInfo to this L2PcInstance (Public and Private Data)</li> <li>Send a Server->Client packet CharInfo to all L2PcInstance in
* _KnownPlayers of the L2PcInstance (Public data only)</li> <FONT COLOR=#FF0000><B> <U>Caution</U> : DON'T SEND UserInfo packet to other players instead of CharInfo packet. Indeed, UserInfo packet contains PRIVATE DATA as MaxHP, STR, DEX...</B></FONT>
* L2PcInstance state modifications, server just need to go through _knownPlayers to send Server->Client Packet <B><U> Actions</U> :</B>
* <li>Send a Server->Client packet UserInfo to this L2PcInstance (Public and Private Data)</li>
* <li>Send a Server->Client packet CharInfo to all L2PcInstance in _KnownPlayers of the L2PcInstance (Public data only)</li>
* <FONT COLOR=#FF0000><B> <U>Caution</U> : DON'T SEND UserInfo packet to other players instead of CharInfo packet. Indeed, UserInfo packet contains PRIVATE DATA as MaxHP, STR, DEX...</B></FONT>
*/
public final void broadcastUserInfo()
{
@ -4432,8 +4435,10 @@ public final class L2PcInstance extends L2Playable
}
/**
* Manage Interact Task with another L2PcInstance. <B><U> Actions</U> :</B> <li>If the private store is a STORE_PRIVATE_SELL, send a Server->Client PrivateBuyListSell packet to the L2PcInstance</li> <li>If the private store is a STORE_PRIVATE_BUY, send a Server->Client PrivateBuyListBuy packet
* to the L2PcInstance</li> <li>If the private store is a STORE_PRIVATE_MANUFACTURE, send a Server->Client RecipeShopSellList packet to the L2PcInstance</li>
* Manage Interact Task with another L2PcInstance. <B><U> Actions</U> :</B>
* <li>If the private store is a STORE_PRIVATE_SELL, send a Server->Client PrivateBuyListSell packet to the L2PcInstance</li>
* <li>If the private store is a STORE_PRIVATE_BUY, send a Server->Client PrivateBuyListBuy packet to the L2PcInstance</li>
* <li>If the private store is a STORE_PRIVATE_MANUFACTURE, send a Server->Client RecipeShopSellList packet to the L2PcInstance</li>
* @param target The L2Character targeted
*/
public void doInteract(L2Character target)
@ -4507,9 +4512,13 @@ public final class L2PcInstance extends L2Playable
}
/**
* Manage Pickup Task. <B><U> Actions</U> :</B> <li>Send a Server->Client packet StopMove to this L2PcInstance</li> <li>Remove the L2ItemInstance from the world and send server->client GetItem packets</li> <li>Send a System Message to the L2PcInstance : YOU_PICKED_UP_S1_ADENA or
* YOU_PICKED_UP_S1_S2</li> <li>Add the Item to the L2PcInstance inventory</li> <li>Send a Server->Client packet InventoryUpdate to this L2PcInstance with NewItem (use a new slot) or ModifiedItem (increase amount)</li> <li>Send a Server->Client packet StatusUpdate to this L2PcInstance with
* current weight</li> <FONT COLOR=#FF0000><B> <U>Caution</U> : If a Party is in progress, distribute Items between party members</B></FONT>
* Manage Pickup Task. <B><U> Actions</U> :</B>
* <li>Send a Server->Client packet StopMove to this L2PcInstance</li>
* <li>Remove the L2ItemInstance from the world and send server->client GetItem packets</li>
* <li>Send a System Message to the L2PcInstance : YOU_PICKED_UP_S1_ADENA or YOU_PICKED_UP_S1_S2</li>
* <li>Add the Item to the L2PcInstance inventory</li>
* <li>Send a Server->Client packet InventoryUpdate to this L2PcInstance with NewItem (use a new slot) or ModifiedItem (increase amount)</li>
* <li>Send a Server->Client packet StatusUpdate to this L2PcInstance with current weight</li> <FONT COLOR=#FF0000><B> <U>Caution</U> : If a Party is in progress, distribute Items between party members</B></FONT>
* @param object The L2ItemInstance to pick up
*/
@Override
@ -5228,8 +5237,12 @@ public final class L2PcInstance extends L2Playable
}
/**
* Kill the L2Character, Apply Death Penalty, Manage gain/loss Karma and Item Drop. <B><U> Actions</U> :</B> <li>Reduce the Experience of the L2PcInstance in function of the calculated Death Penalty</li> <li>If necessary, unsummon the Pet of the killed L2PcInstance</li> <li>Manage Karma gain for
* attacker and Karam loss for the killed L2PcInstance</li> <li>If the killed L2PcInstance has Karma, manage Drop Item</li> <li>Kill the L2PcInstance</li>
* Kill the L2Character, Apply Death Penalty, Manage gain/loss Karma and Item Drop. <B><U> Actions</U> :</B>
* <li>Reduce the Experience of the L2PcInstance in function of the calculated Death Penalty</li>
* <li>If necessary, unsummon the Pet of the killed L2PcInstance</li>
* <li>Manage Karma gain for attacker and Karam loss for the killed L2PcInstance</li>
* <li>If the killed L2PcInstance has Karma, manage Drop Item</li>
* <li>Kill the L2PcInstance</li>
* @param killer
*/
@Override
@ -5720,7 +5733,11 @@ public final class L2PcInstance extends L2Playable
/**
* Reduce the Experience (and level if necessary) of the L2PcInstance in function of the calculated Death Penalty.<BR>
* <B><U> Actions</U> :</B> <li>Calculate the Experience loss</li> <li>Set the value of _expBeforeDeath</li> <li>Set the new Experience value of the L2PcInstance and Decrease its level if necessary</li> <li>Send a Server->Client StatusUpdate packet with its new Experience</li>
* <B><U> Actions</U> :</B>
* <li>Calculate the Experience loss</li>
* <li>Set the value of _expBeforeDeath</li>
* <li>Set the new Experience value of the L2PcInstance and Decrease its level if necessary</li>
* <li>Send a Server->Client StatusUpdate packet with its new Experience</li>
* @param killer
* @param atWar
*/
@ -5795,7 +5812,9 @@ public final class L2PcInstance extends L2Playable
}
/**
* Stop the HP/MP/CP Regeneration task. <B><U> Actions</U> :</B> <li>Set the RegenActive flag to False</li> <li>Stop the HP/MP/CP Regeneration task</li>
* Stop the HP/MP/CP Regeneration task. <B><U> Actions</U> :</B>
* <li>Set the RegenActive flag to False</li>
* <li>Stop the HP/MP/CP Regeneration task</li>
*/
public void stopAllTimers()
{
@ -6158,7 +6177,10 @@ public final class L2PcInstance extends L2Playable
}
/**
* Set the Private Store type of the L2PcInstance. <B><U> Values </U> :</B> <li>0 : STORE_PRIVATE_NONE</li> <li>1 : STORE_PRIVATE_SELL</li> <li>2 : sellmanage</li><BR>
* Set the Private Store type of the L2PcInstance. <B><U> Values </U> :</B>
* <li>0 : STORE_PRIVATE_NONE</li>
* <li>1 : STORE_PRIVATE_SELL</li>
* <li>2 : sellmanage</li><BR>
* <li>3 : STORE_PRIVATE_BUY</li><BR>
* <li>4 : buymanage</li><BR>
* <li>5 : STORE_PRIVATE_MANUFACTURE</li><BR>
@ -6175,7 +6197,10 @@ public final class L2PcInstance extends L2Playable
}
/**
* <B><U> Values </U> :</B> <li>0 : STORE_PRIVATE_NONE</li> <li>1 : STORE_PRIVATE_SELL</li> <li>2 : sellmanage</li><BR>
* <B><U> Values </U> :</B>
* <li>0 : STORE_PRIVATE_NONE</li>
* <li>1 : STORE_PRIVATE_SELL</li>
* <li>2 : sellmanage</li><BR>
* <li>3 : STORE_PRIVATE_BUY</li><BR>
* <li>4 : buymanage</li><BR>
* <li>5 : STORE_PRIVATE_MANUFACTURE</li><BR>
@ -6989,8 +7014,11 @@ public final class L2PcInstance extends L2Playable
}
/**
* Retrieve a L2PcInstance from the characters table of the database and add it in _allObjects of the L2world. <B><U> Actions</U> :</B> <li>Retrieve the L2PcInstance from the characters table of the database</li> <li>Add the L2PcInstance object in _allObjects</li> <li>Set the x,y,z position of
* the L2PcInstance and make it invisible</li> <li>Update the overloaded status of the L2PcInstance</li>
* Retrieve a L2PcInstance from the characters table of the database and add it in _allObjects of the L2world. <B><U> Actions</U> :</B>
* <li>Retrieve the L2PcInstance from the characters table of the database</li>
* <li>Add the L2PcInstance object in _allObjects</li>
* <li>Set the x,y,z position of the L2PcInstance and make it invisible</li>
* <li>Update the overloaded status of the L2PcInstance</li>
* @param objectId Identifier of the object to initialized
* @return The L2PcInstance loaded from the database
*/
@ -7859,8 +7887,10 @@ public final class L2PcInstance extends L2Playable
}
/**
* Add a skill to the L2PcInstance _skills and its Func objects to the calculator set of the L2PcInstance and save update in the character_skills table of the database. <B><U> Concept</U> :</B> All skills own by a L2PcInstance are identified in <B>_skills</B> <B><U> Actions</U> :</B> <li>Replace
* oldSkill by newSkill or Add the newSkill</li> <li>If an old skill has been replaced, remove all its Func objects of L2Character calculator set</li> <li>Add Func objects of newSkill to the calculator set of the L2Character</li>
* Add a skill to the L2PcInstance _skills and its Func objects to the calculator set of the L2PcInstance and save update in the character_skills table of the database. <B><U> Concept</U> :</B> All skills own by a L2PcInstance are identified in <B>_skills</B> <B><U> Actions</U> :</B>
* <li>Replace oldSkill by newSkill or Add the newSkill</li>
* <li>If an old skill has been replaced, remove all its Func objects of L2Character calculator set</li>
* <li>Add Func objects of newSkill to the calculator set of the L2Character</li>
* @param newSkill The L2Skill to add to the L2Character
* @param store
* @return The L2Skill replaced or null if just added a new L2Skill
@ -7891,8 +7921,10 @@ public final class L2PcInstance extends L2Playable
}
/**
* Remove a skill from the L2Character and its Func objects from calculator set of the L2Character and save update in the character_skills table of the database. <B><U> Concept</U> :</B> All skills own by a L2Character are identified in <B>_skills</B> <B><U> Actions</U> :</B> <li>Remove the
* skill from the L2Character _skills</li> <li>Remove all its Func objects from the L2Character calculator set</li> <B><U> Overridden in </U> :</B> <li>L2PcInstance : Save update in the character_skills table of the database</li>
* Remove a skill from the L2Character and its Func objects from calculator set of the L2Character and save update in the character_skills table of the database. <B><U> Concept</U> :</B> All skills own by a L2Character are identified in <B>_skills</B> <B><U> Actions</U> :</B>
* <li>Remove the skill from the L2Character _skills</li>
* <li>Remove all its Func objects from the L2Character calculator set</li> <B><U> Overridden in </U> :</B>
* <li>L2PcInstance : Save update in the character_skills table of the database</li>
* @param skill The L2Skill to remove from the L2Character
* @return The L2Skill removed
*/
@ -8826,7 +8858,7 @@ public final class L2PcInstance extends L2Playable
switch (sklTargetType)
{
// Target the player if skill type is AURA, PARTY, CLAN or SELF
// Target the player if skill type is AURA, PARTY, CLAN or SELF
case AURA:
case FRONT_AURA:
case BEHIND_AURA:
@ -9570,7 +9602,7 @@ public final class L2PcInstance extends L2Playable
}
if ((magic && (item.getItem().getDefaultAction() == ActionType.SPIRITSHOT)) //
|| (physical && (item.getItem().getDefaultAction() == ActionType.SOULSHOT)))
|| (physical && (item.getItem().getDefaultAction() == ActionType.SOULSHOT)))
{
handler.useItem(this, item, false);
}
@ -12855,7 +12887,7 @@ public final class L2PcInstance extends L2Playable
final SystemMessage sm;
if (target.isInvul() && !target.isNpc())
if (target.isInvul() && !target.isVulnerableFor(this) && !target.isNpc())
{
sm = SystemMessage.getSystemMessage(SystemMessageId.THE_ATTACK_HAS_BEEN_BLOCKED);
}

View File

@ -83,7 +83,7 @@ public class PcStatus extends PlayableStatus
return;
}
if (getActiveChar().isInvul() && !(isDOT || isHPConsumption))
if (getActiveChar().isInvul() && !getActiveChar().isVulnerableFor(attacker) && !(isDOT || isHPConsumption))
{
return;
}

View File

@ -0,0 +1,47 @@
/*
* Copyright (C) 2004-2015 L2J Server
*
* This file is part of L2J Server.
*
* L2J Server is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* L2J Server is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.l2jserver.gameserver.model.conditions;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.items.L2Item;
import com.l2jserver.gameserver.model.skills.Skill;
/**
* @author NviX
*/
public class ConditionTargetHp extends Condition
{
private final int _hp;
/**
* Instantiates a new condition target hp.
* @param hp the hp
*/
public ConditionTargetHp(int hp)
{
_hp = hp;
}
@Override
public boolean testImpl(L2Character effector, L2Character effected, Skill skill, L2Item item)
{
return (effected != null) && (((effected.getCurrentHp() * 100) / effected.getMaxHp()) <= _hp);
}
}

View File

@ -200,6 +200,7 @@ public final class Skill implements IIdentifiable
private final String _attribute;
private final boolean _ignoreShield;
private final int _ignorePhysDefPercent;
private final boolean _isSuicideAttack;
private final boolean _canBeDispeled;
@ -335,6 +336,7 @@ public final class Skill implements IIdentifiable
_minChance = set.getInt("minChance", Config.MIN_ABNORMAL_STATE_SUCCESS_RATE);
_maxChance = set.getInt("maxChance", Config.MAX_ABNORMAL_STATE_SUCCESS_RATE);
_ignoreShield = set.getBoolean("ignoreShld", false);
_ignorePhysDefPercent = set.getInt("ignorePhysDefPercent", 0);
_nextActionIsAttack = set.getBoolean("nextActionAttack", false);
@ -1365,7 +1367,7 @@ public final class Skill implements IIdentifiable
}
// Check bad skills against target.
if ((effector != effected) && isBad() && (effected.isInvul() || (effector.isGM() && !effector.getAccessLevel().canGiveDamage())))
if ((effector != effected) && isBad() && ((effected.isInvul() && (!effected.isVulnerableFor(effector))) || (effector.isGM() && !effector.getAccessLevel().canGiveDamage())))
{
return;
}
@ -1477,7 +1479,7 @@ public final class Skill implements IIdentifiable
{
switch (getId())
{
// TODO: replace with AI
// TODO: replace with AI
case 5852:
case 5853:
{
@ -1652,6 +1654,14 @@ public final class Skill implements IIdentifiable
return _ignoreShield;
}
/**
* @return the percent of ignore defense of this skill
*/
public int getIgnorePhysDefPercent()
{
return _ignorePhysDefPercent;
}
public boolean canBeDispeled()
{
return _canBeDispeled;

View File

@ -746,17 +746,23 @@ public final class Formulas
}
damage = (skill != null) ? ((damage * ssBoost) + skill.getPower(attacker, target, isPvP, isPvE)) : (damage * ssBoost);
double reduceDef = 1;
if (skill != null)
{
reduceDef -= (skill.getIgnorePhysDefPercent() / 100.0);
}
if (crit)
{
// Finally retail like formula
damage = 2 * attacker.calcStat(Stats.CRITICAL_DAMAGE, 1, target, skill) * target.calcStat(Stats.DEFENCE_CRITICAL_DAMAGE, 1, target, null) * ((70 * damage) / defence);
damage = 2 * attacker.calcStat(Stats.CRITICAL_DAMAGE, 1, target, skill) * target.calcStat(Stats.DEFENCE_CRITICAL_DAMAGE, 1, target, null) * ((70 * damage) / (defence * reduceDef));
// Crit dmg add is almost useless in normal hits...
damage += ((attacker.calcStat(Stats.CRITICAL_DAMAGE_ADD, 0, target, skill) * 70) / defence);
damage += ((attacker.calcStat(Stats.CRITICAL_DAMAGE_ADD, 0, target, skill) * 70) / (defence * reduceDef));
damage += target.calcStat(Stats.DEFENCE_CRITICAL_DAMAGE_ADD, 0, target, skill);
}
else
{
damage = (70 * damage) / defence;
damage = (70 * damage) / (defence * reduceDef);
}
damage *= calcAttackTraitBonus(attacker, target);

View File

@ -59,6 +59,7 @@ public enum Stats
CRITICAL_DAMAGE_ADD("cAtkAdd"), // this is another type for special critical damage mods - vicious stance, critical power and critical damage SA
MAGIC_CRIT_DMG("mCritPower"),
MAGIC_CRIT_DMG_ADD("mCritPowerAdd"),
MOMENTUM_SKILL_POWER("momentumSkillPower"),
// PVP BONUS
PVP_PHYSICAL_DMG("pvpPhysDmg"),