-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.actor.instance.L2TamedBeastInstance;
import com.l2jserver.gameserver.model.skills.Skill; import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.model.zone.ZoneId; import com.l2jserver.gameserver.model.zone.ZoneId;
import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
import com.l2jserver.gameserver.util.Util; import com.l2jserver.gameserver.util.Util;
/** /**
@@ -57,6 +58,12 @@ public class NpcBufferAI implements Runnable
final Skill skill = _skillData.getSkill(); final Skill skill = _skillData.getSkill();
final L2PcInstance player = _npc.getSummoner().getActingPlayer(); 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()) switch (_skillData.getAffectScope())
{ {
case PARTY: case PARTY:

View File

@@ -98,4 +98,22 @@
<npc id="13267"> <!-- Virtual Image --> <npc id="13267"> <!-- Virtual Image -->
<skill id="5272" level="17" delay="5" affectScope="RANGE" affectObject="NOT_FRIEND" /> <!-- Decoy Provocation --> <skill id="5272" level="17" delay="5" affectScope="RANGE" affectObject="NOT_FRIEND" /> <!-- Decoy Provocation -->
</npc> </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> </list>

View File

@@ -46,6 +46,7 @@ public final class EffectMasterHandler
BlockParty.class, BlockParty.class,
BlockBuffSlot.class, BlockBuffSlot.class,
BlockResurrection.class, BlockResurrection.class,
BlockTarget.class,
Bluff.class, Bluff.class,
Buff.class, Buff.class,
CallParty.class, CallParty.class,
@@ -81,6 +82,7 @@ public final class EffectMasterHandler
DispelByCategory.class, DispelByCategory.class,
DispelBySlot.class, DispelBySlot.class,
DispelBySlotProbability.class, DispelBySlotProbability.class,
Duel.class,
EnableCloak.class, EnableCloak.class,
EnemyCharge.class, EnemyCharge.class,
EnergyAttack.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 boolean _canKill;
private final double _power; private final double _power;
private final int _charge;
public DamOverTime(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params) 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); _canKill = params.getBoolean("canKill", false);
_power = params.getDouble("power", 0); _power = params.getDouble("power", 0);
_charge = params.getInt("charge", 0);
} }
@Override @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().reduceCurrentHpByDOT(damage, info.getEffector(), info.getSkill());
info.getEffected().notifyDamageReceived(damage, info.getEffector(), info.getSkill(), false, true); info.getEffected().notifyDamageReceived(damage, info.getEffector(), info.getSkill(), false, true);
return info.getSkill().isToggle(); 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; weaponTypeBoost = 77;
} }
// charge count should be the count before casting the skill but since its reduced before calling effects double energyChargesBoost = 1;
// we add skill consume charges to current charges if (attacker.getCharges() == 1)
double energyChargesBoost = (((attacker.getCharges() + skill.getChargeConsume()) - 1) * 0.2) + 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 += _power;
attack *= addPower;
attack *= ssBoost; attack *= ssBoost;
attack *= energyChargesBoost; attack *= energyChargesBoost;
attack *= weaponTypeBoost; attack *= weaponTypeBoost;
@@ -157,6 +173,13 @@ public final class EnergyAttack extends AbstractEffect
if (damage > 0) 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); attacker.sendDamageMessage(target, (int) damage, false, critical, false);
target.reduceCurrentHp(damage, attacker, skill); target.reduceCurrentHp(damage, attacker, skill);
target.notifyDamageReceived(damage, attacker, skill, critical, false); target.notifyDamageReceived(damage, attacker, skill, critical, false);

View File

@@ -18,6 +18,8 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import java.util.StringTokenizer;
import com.l2jserver.gameserver.enums.ShotType; import com.l2jserver.gameserver.enums.ShotType;
import com.l2jserver.gameserver.model.StatsSet; import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.L2Character; 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.conditions.Condition;
import com.l2jserver.gameserver.model.effects.AbstractEffect; import com.l2jserver.gameserver.model.effects.AbstractEffect;
import com.l2jserver.gameserver.model.effects.L2EffectType; 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.skills.BuffInfo;
import com.l2jserver.gameserver.model.stats.BaseStats; import com.l2jserver.gameserver.model.stats.BaseStats;
import com.l2jserver.gameserver.model.stats.Formulas; import com.l2jserver.gameserver.model.stats.Formulas;
import com.l2jserver.gameserver.model.stats.Stats;
/** /**
* Fatal Blow effect implementation. * Fatal Blow effect implementation.
@@ -35,9 +39,15 @@ import com.l2jserver.gameserver.model.stats.Formulas;
*/ */
public final class FatalBlow extends AbstractEffect public final class FatalBlow extends AbstractEffect
{ {
private final String _targetAbnormalType;
private final double _skillAddPower;
public FatalBlow(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params) public FatalBlow(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
{ {
super(attachCond, applyCond, set, params); super(attachCond, applyCond, set, params);
_targetAbnormalType = params.getString("targetAbnormalType", "NULL");
_skillAddPower = params.getDouble("skillAddPower", 1);
} }
@Override @Override
@@ -73,6 +83,20 @@ public final class FatalBlow extends AbstractEffect
byte shld = Formulas.calcShldUse(activeChar, target, info.getSkill()); byte shld = Formulas.calcShldUse(activeChar, target, info.getSkill());
double damage = Formulas.calcBlowDamage(activeChar, target, info.getSkill(), shld, ss); 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 // 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); boolean crit = Formulas.calcCrit(info.getSkill().getBaseCritRate() * 10 * BaseStats.STR.calcBonus(activeChar), true, target);
if (crit) if (crit)
@@ -80,6 +104,13 @@ public final class FatalBlow extends AbstractEffect
damage *= 2; 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.reduceCurrentHp(damage, activeChar, info.getSkill());
target.notifyDamageReceived(damage, activeChar, info.getSkill(), crit, false); target.notifyDamageReceived(damage, activeChar, info.getSkill(), crit, false);

View File

@@ -18,12 +18,15 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import java.util.StringTokenizer;
import com.l2jserver.gameserver.enums.ShotType; import com.l2jserver.gameserver.enums.ShotType;
import com.l2jserver.gameserver.model.StatsSet; import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.L2Character; import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.conditions.Condition; import com.l2jserver.gameserver.model.conditions.Condition;
import com.l2jserver.gameserver.model.effects.AbstractEffect; import com.l2jserver.gameserver.model.effects.AbstractEffect;
import com.l2jserver.gameserver.model.effects.L2EffectType; 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.skills.BuffInfo;
import com.l2jserver.gameserver.model.stats.BaseStats; import com.l2jserver.gameserver.model.stats.BaseStats;
import com.l2jserver.gameserver.model.stats.Formulas; import com.l2jserver.gameserver.model.stats.Formulas;
@@ -37,9 +40,21 @@ import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
*/ */
public final class PhysicalAttack extends AbstractEffect 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) public PhysicalAttack(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
{ {
super(attachCond, applyCond, set, 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 @Override
@@ -101,6 +116,30 @@ public final class PhysicalAttack extends AbstractEffect
damage *= 2; 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) if (damage > 0)
{ {
// reduce damage if target has maxdamage buff // reduce damage if target has maxdamage buff
@@ -111,8 +150,22 @@ public final class PhysicalAttack extends AbstractEffect
} }
activeChar.sendDamageMessage(target, damage, false, crit, false); activeChar.sendDamageMessage(target, damage, false, 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.reduceCurrentHp(damage, activeChar, info.getSkill());
target.notifyDamageReceived(damage, activeChar, info.getSkill(), crit, false); target.notifyDamageReceived(damage, activeChar, info.getSkill(), crit, false);
}
// Check if damage should be reflected // Check if damage should be reflected
Formulas.calcDamageReflected(activeChar, target, info.getSkill(), crit); 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.conditions.Condition;
import com.l2jserver.gameserver.model.effects.AbstractEffect; import com.l2jserver.gameserver.model.effects.AbstractEffect;
import com.l2jserver.gameserver.model.skills.BuffInfo; import com.l2jserver.gameserver.model.skills.BuffInfo;
import com.l2jserver.gameserver.model.stats.Stats;
/** /**
* Static Damage effect implementation. * Static Damage effect implementation.
@@ -29,7 +30,7 @@ import com.l2jserver.gameserver.model.skills.BuffInfo;
*/ */
public final class StaticDamage extends AbstractEffect public final class StaticDamage extends AbstractEffect
{ {
private final int _power; private int _power;
public StaticDamage(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params) public StaticDamage(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
{ {
@@ -52,6 +53,13 @@ public final class StaticDamage extends AbstractEffect
return; 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().reduceCurrentHp(_power, info.getEffector(), info.getSkill());
info.getEffected().notifyDamageReceived(_power, info.getEffector(), info.getSkill(), false, false); info.getEffected().notifyDamageReceived(_power, info.getEffector(), info.getSkill(), false, false);

View File

@@ -224,10 +224,15 @@
<height normal="22.5" /> <height normal="22.5" />
</collision> </collision>
</npc> </npc>
<npc id="13310" level="85" type="L2Npc" name="Solo Dance"> <npc id="13310" level="85" type="L2EffectPoint" name="Solo Dance">
<!-- Source http://l2i-god.gaikotsu.ru/ (Lindvior) --> <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> <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" /> <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" /> <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" /> <defence physical="341" magical="250" />
@@ -235,15 +240,29 @@
<defence fire="120" water="120" wind="120" earth="120" holy="120" dark="120" /> <defence fire="120" water="120" wind="120" earth="120" holy="120" dark="120" />
</attribute> </attribute>
<speed> <speed>
<walk ground="0" /> <walk ground="50" />
<run ground="0" /> <run ground="20" />
</speed> </speed>
<hit_time>398</hit_time>
</stats> </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> <collision>
<radius normal="0.01" /> <radius normal="5" />
<height normal="0.01" /> <height normal="10" />
</collision> </collision>
</npc> </npc>
<npc id="13311" level="85" type="L2Npc" name="Awakened Knight's Mount"> <npc id="13311" level="85" type="L2Npc" name="Awakened Knight's Mount">
@@ -1774,119 +1793,209 @@
<height normal="10" /> <height normal="10" />
</collision> </collision>
</npc> </npc>
<npc id="13377" level="87" type="L2Npc" name="Solo Dance"> <npc id="13377" level="87" type="L2EffectPoint" name="Solo Dance">
<!-- Source http://l2i-god.gaikotsu.ru/ (Lindvior) --> <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> <race>ETC</race>
<stats> <!-- str="88" int="79" dex="55" wit="78" con="82" men="78" --> <sex>ETC</sex>
<vitals hp="8056" hpRegen="7.5" mp="8056" mpRegen="2.7" /> <stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<attack physical="4900" magical="2550" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" /> <vitals hp="7324" hpRegen="7.5" mp="7324" mpRegen="2.7" />
<defence physical="3840" magical="825" /> <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> <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> </attribute>
<speed> <speed>
<walk ground="50" /> <walk ground="50" />
<run ground="186" /> <run ground="20" />
</speed> </speed>
<hit_time>333</hit_time>
</stats> </stats>
<status attackable="false" /> <status attackable="false" hasSummoner="true" />
<ai aggroRange="300" clanHelpRange="300" /> <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> <collision>
<radius normal="0.01" /> <radius normal="5" />
<height normal="0.01" /> <height normal="10" />
</collision> </collision>
</npc> </npc>
<npc id="13378" level="90" type="L2Npc" name="Solo Dance"> <npc id="13378" level="90" type="L2EffectPoint" name="Solo Dance">
<!-- Source http://l2i-god.gaikotsu.ru/ (Lindvior) --> <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> <race>ETC</race>
<stats> <!-- str="88" int="79" dex="55" wit="78" con="82" men="78" --> <sex>ETC</sex>
<vitals hp="9311" hpRegen="7.5" mp="9311" mpRegen="2.7" /> <stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<attack physical="4900" magical="2550" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" /> <vitals hp="7324" hpRegen="7.5" mp="7324" mpRegen="2.7" />
<defence physical="3840" magical="825" /> <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> <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> </attribute>
<speed> <speed>
<walk ground="50" /> <walk ground="50" />
<run ground="186" /> <run ground="20" />
</speed> </speed>
<hit_time>333</hit_time>
</stats> </stats>
<status attackable="false" /> <status attackable="false" hasSummoner="true" />
<ai aggroRange="300" clanHelpRange="300" /> <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> <collision>
<radius normal="0.01" /> <radius normal="5" />
<height normal="0.01" /> <height normal="10" />
</collision> </collision>
</npc> </npc>
<npc id="13379" level="93" type="L2Npc" name="Solo Dance"> <npc id="13379" level="93" type="L2EffectPoint" name="Solo Dance">
<!-- Source http://l2i-god.gaikotsu.ru/ (Lindvior) --> <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> <race>ETC</race>
<stats> <!-- str="88" int="79" dex="55" wit="78" con="82" men="78" --> <sex>ETC</sex>
<vitals hp="10790" hpRegen="7.5" mp="10790" mpRegen="2.7" /> <stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<attack physical="4900" magical="2550" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" /> <vitals hp="7324" hpRegen="7.5" mp="7324" mpRegen="2.7" />
<defence physical="3840" magical="825" /> <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> <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> </attribute>
<speed> <speed>
<walk ground="50" /> <walk ground="50" />
<run ground="186" /> <run ground="20" />
</speed> </speed>
<hit_time>333</hit_time>
</stats> </stats>
<status attackable="false" /> <status attackable="false" hasSummoner="true" />
<ai aggroRange="300" clanHelpRange="300" /> <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> <collision>
<radius normal="0.01" /> <radius normal="5" />
<height normal="0.01" /> <height normal="10" />
</collision> </collision>
</npc> </npc>
<npc id="13380" level="96" type="L2Npc" name="Solo Dance"> <npc id="13380" level="96" type="L2EffectPoint" name="Solo Dance">
<!-- Source http://l2i-god.gaikotsu.ru/ (Lindvior) --> <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> <race>ETC</race>
<stats> <!-- str="88" int="79" dex="55" wit="78" con="82" men="78" --> <sex>ETC</sex>
<vitals hp="12538" hpRegen="7.5" mp="12538" mpRegen="2.7" /> <stats str="88" int="79" dex="55" wit="78" con="82" men="78">
<attack physical="4900" magical="2550" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" /> <vitals hp="7324" hpRegen="7.5" mp="7324" mpRegen="2.7" />
<defence physical="3840" magical="825" /> <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> <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> </attribute>
<speed> <speed>
<walk ground="50" /> <walk ground="50" />
<run ground="186" /> <run ground="20" />
</speed> </speed>
<hit_time>333</hit_time>
</stats> </stats>
<status attackable="false" /> <status attackable="false" hasSummoner="true" />
<ai aggroRange="300" clanHelpRange="300" /> <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> <collision>
<radius normal="0.01" /> <radius normal="5" />
<height normal="0.01" /> <height normal="10" />
</collision> </collision>
</npc> </npc>
<npc id="13381" level="99" type="L2Npc" name="Solo Dance"> <npc id="13381" level="99" type="L2EffectPoint" name="Solo Dance">
<!-- Source http://l2i-god.gaikotsu.ru/ (Lindvior) --> <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> <race>ETC</race>
<stats> <!-- str="88" int="79" dex="55" wit="78" con="82" men="78" --> <sex>ETC</sex>
<vitals hp="14612" hpRegen="7.5" mp="14612" mpRegen="2.7" /> <stats str="40" int="21" dex="30" wit="20" con="43" men="20">
<attack physical="4900" magical="2550" random="30" critical="4" accuracy="4.75" attackSpeed="253" type="SWORD" range="40" distance="80" width="120" /> <vitals hp="2444.46819" hpRegen="7.5" mp="1345.8" mpRegen="2.7" />
<defence physical="3840" magical="825" /> <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> <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> </attribute>
<speed> <speed>
<walk ground="50" /> <walk ground="50" />
<run ground="186" /> <run ground="20" />
</speed> </speed>
<hit_time>333</hit_time>
</stats> </stats>
<status attackable="false" /> <status attackable="false" hasSummoner="true" />
<ai aggroRange="300" clanHelpRange="300" /> <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> <collision>
<radius normal="0.01" /> <radius normal="5" />
<height normal="0.01" /> <height normal="10" />
</collision> </collision>
</npc> </npc>
<npc id="13382" level="55" type="L2Npc" name="Orfen"> <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="#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> <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="castRange" val="40" />
<set name="chargeConsume" val="3" />
<set name="coolTime" val="167" /> <set name="coolTime" val="167" />
<set name="effectPoint" val="#effectPoints" /> <set name="effectPoint" val="#effectPoints" />
<set name="effectRange" val="400" /> <set name="effectRange" val="400" />
@@ -169,10 +168,7 @@
<enchant6 name="magicLvl" val="#enchMagicLvl" /> <enchant6 name="magicLvl" val="#enchMagicLvl" />
<enchant7 name="magicLvl" val="#enchMagicLvl" /> <enchant7 name="magicLvl" val="#enchMagicLvl" />
<cond msgId="113" addName="1"> <cond msgId="113" addName="1">
<and>
<using kind="DUAL" /> <!-- Requires a dualsword weapon --> <using kind="DUAL" /> <!-- Requires a dualsword weapon -->
<player Charges="3" /> <!-- whose 3rd energy stage has been recharged -->
</and>
</cond> </cond>
<for> <for>
<effect name="EnergyAttack"> <effect name="EnergyAttack">
@@ -221,11 +217,16 @@
<set name="mpConsume" val="#mpConsume" /> <set name="mpConsume" val="#mpConsume" />
<set name="operateType" val="ACTIVE_INSTANT" /> <set name="operateType" val="ACTIVE_INSTANT" />
<set name="overHit" val="true" /> <set name="overHit" val="true" />
<set name="power" val="#power" />
<set name="baseCritRate" val="10" />
<set name="reuseDelay" val="3000" /> <set name="reuseDelay" val="3000" />
<set name="rideState" val="NONE" /> <set name="rideState" val="NONE" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<enchant1 name="magicLvl" val="#enchMagicLvl" /> <enchant1 name="magicLvl" val="#enchMagicLvl" />
<enchant1 name="power" val="#ench1Power" />
<enchant2 name="magicLvl" val="#enchMagicLvl" /> <enchant2 name="magicLvl" val="#enchMagicLvl" />
<enchant2 name="power" val="#ench2pvePower" />
<enchant2 name="pvpPower" val="1827" />
<enchant3 name="element" val="0" /> <!-- Fire --> <enchant3 name="element" val="0" /> <!-- Fire -->
<enchant3 name="elementPower" val="#enchElementPower" /> <enchant3 name="elementPower" val="#enchElementPower" />
<enchant3 name="magicLvl" val="#enchMagicLvl" /> <enchant3 name="magicLvl" val="#enchMagicLvl" />
@@ -239,6 +240,8 @@
<enchant6 name="elementPower" val="#enchElementPower" /> <enchant6 name="elementPower" val="#enchElementPower" />
<enchant6 name="magicLvl" val="#enchMagicLvl" /> <enchant6 name="magicLvl" val="#enchMagicLvl" />
<enchant7 name="magicLvl" val="#enchMagicLvl" /> <enchant7 name="magicLvl" val="#enchMagicLvl" />
<enchant7 name="power" val="1827" />
<enchant7 name="pvpPower" val="ench7pvpPower" />
<cond msgId="113" addName="1"> <cond msgId="113" addName="1">
<and> <and>
<using kind="DUAL,SWORD,BLUNT" /> <!-- Requires a dualsword, sword or blunt weapon weapon --> <using kind="DUAL,SWORD,BLUNT" /> <!-- Requires a dualsword, sword or blunt weapon weapon -->
@@ -246,48 +249,10 @@
</and> </and>
</cond> </cond>
<for> <for>
<effect name="EnergyAttack"> <effect name="PhysicalAttack" />
<param power="#power" />
<param criticalChance="15" />
</effect>
</for> </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>
<skill id="7" levels="41" name="Sonic Storm" enchantGroup1="2" enchantGroup2="2" enchantGroup3="2" enchantGroup4="2" enchantGroup5="2" enchantGroup6="2" enchantGroup7="2"> <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="#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="#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 --> <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="effectRange" val="1000" />
<set name="hitTime" val="1790" /> <set name="hitTime" val="1790" />
<set name="icon" val="icon.skill0007" /> <set name="icon" val="icon.skill0007" />
<set name="itemConsumeCount" val="3" /> <set name="power" val="#power" />
<set name="itemConsumeId" val="5589" /> <!-- Energy Stone -->
<set name="magicLvl" val="#magicLvl" /> <set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" /> <set name="mpConsume" val="#mpConsume" />
<set name="operateType" val="ACTIVE_INSTANT" /> <set name="operateType" val="ACTIVE_INSTANT" />
<set name="overHit" val="true" /> <set name="overHit" val="true" />
<set name="baseCritRate" val="10" />
<set name="reuseDelay" val="10000" /> <set name="reuseDelay" val="10000" />
<set name="rideState" val="NONE" /> <set name="rideState" val="NONE" />
<set name="targetType" val="AREA" /> <set name="targetType" val="AREA" />
<enchant1 name="magicLvl" val="#enchMagicLvl" /> <enchant1 name="magicLvl" val="#enchMagicLvl" />
<enchant1 name="power" val="#ench1Power" />
<enchant2 name="magicLvl" val="#enchMagicLvl" /> <enchant2 name="magicLvl" val="#enchMagicLvl" />
<enchant2 name="mpConsume" val="#ench2MpConsume" /> <enchant2 name="mpConsume" val="#ench2MpConsume" />
<enchant3 name="element" val="0" /> <!-- Fire --> <enchant3 name="element" val="0" /> <!-- Fire -->
@@ -330,41 +296,16 @@
<enchant6 name="elementPower" val="#enchElementPower" /> <enchant6 name="elementPower" val="#enchElementPower" />
<enchant6 name="magicLvl" val="#enchMagicLvl" /> <enchant6 name="magicLvl" val="#enchMagicLvl" />
<enchant7 name="magicLvl" val="#enchMagicLvl" /> <enchant7 name="magicLvl" val="#enchMagicLvl" />
<enchant7 name="power" val="457" />
<enchant7 name="pvpPower" val="#ench7pvpPower" />
<cond msgId="113" addName="1"> <cond msgId="113" addName="1">
<and> <using kind="DUAL, SWORD, BLUNT, POLE, DUALFIST, DUALBLUNT" />
<using kind="DUAL,SWORD,BLUNT" /> <!-- Requires a sword, blunt weapon or dualsword weapon -->
<player Charges="2" /> <!-- whose 2nd energy stage has been recharged -->
</and>
</cond> </cond>
<for> <for>
<effect name="EnergyAttack"> <effect name="PhysicalAttack" />
<param power="#power" />
<param criticalChance="15" />
</effect>
</for> </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>
<skill id="8" levels="8" name="Sonic Focus"> <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="#magicLvl"> 40 43 49 55 60 66 70 79 </table>
<table name="#maxCharges"> 1 2 3 4 5 6 7 8 </table> <table name="#maxCharges"> 1 2 3 4 5 6 7 8 </table>
<set name="effectPoint" val="200" /> <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="#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> <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="castRange" val="40" />
<set name="chargeConsume" val="4" />
<set name="coolTime" val="500" /> <set name="coolTime" val="500" />
<set name="effectPoint" val="#effectPoints" /> <set name="effectPoint" val="#effectPoints" />
<set name="effectRange" val="400" /> <set name="effectRange" val="400" />
@@ -1656,10 +1655,7 @@
<enchant6 name="magicLvl" val="#enchMagicLvl" /> <enchant6 name="magicLvl" val="#enchMagicLvl" />
<enchant7 name="magicLvl" val="#enchMagicLvl" /> <enchant7 name="magicLvl" val="#enchMagicLvl" />
<cond msgId="113" addName="1"> <cond msgId="113" addName="1">
<and> <using kind="SWORD, BLUNT, POLE, DUALFIST, DUALBLUNT, DUAL" />
<using kind="DUAL" />
<player Charges="4" /> <!-- Need to recharge 4th stage of Sword Energy. -->
</and>
</cond> </cond>
<for> <for>
<effect name="EnergyAttack"> <effect name="EnergyAttack">

View File

@@ -490,52 +490,112 @@
<set name="mpConsume" val="#mpConsumes" /> <set name="mpConsume" val="#mpConsumes" />
<set name="operateType" val="ACTIVE_INSTANT" /> <set name="operateType" val="ACTIVE_INSTANT" />
<set name="overHit" val="true" /> <set name="overHit" val="true" />
<set name="power" val="#power" />
<set name="reuseDelay" val="7000" /> <set name="reuseDelay" val="7000" />
<set name="rideState" val="NONE" /> <set name="rideState" val="NONE" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<enchant1 name="magicLvl" val="#enchMagicLvl" /> <enchant1 name="magicLvl" val="#enchMagicLvl" />
<enchant1 name="mpConsume" val="#ench2MpConsume" /> <enchant1 name="mpConsume" val="#ench2MpConsume" />
<enchant1 name="power" val="#enchPower" />
<enchant2 name="magicLvl" val="#enchMagicLvl" /> <enchant2 name="magicLvl" val="#enchMagicLvl" />
<enchant2 name="pvpPower" val="#enchDuel" />
<enchant3 name="element" val="0" /> <!-- Fire --> <enchant3 name="element" val="0" /> <!-- Fire -->
<enchant3 name="elementPower" val="#enchElementPower" /> <enchant3 name="elementPower" val="#enchElementPower" />
<enchant3 name="magicLvl" val="#enchMagicLvl" /> <enchant3 name="magicLvl" val="#enchMagicLvl" />
<enchant3 name="power" val="#enchPower" />
<enchant4 name="element" val="1" /> <!-- Water --> <enchant4 name="element" val="1" /> <!-- Water -->
<enchant4 name="elementPower" val="#enchElementPower" /> <enchant4 name="elementPower" val="#enchElementPower" />
<enchant4 name="magicLvl" val="#enchMagicLvl" /> <enchant4 name="magicLvl" val="#enchMagicLvl" />
<enchant4 name="power" val="#enchPower" />
<enchant5 name="element" val="2" /> <!-- Wind --> <enchant5 name="element" val="2" /> <!-- Wind -->
<enchant5 name="elementPower" val="#enchElementPower" /> <enchant5 name="elementPower" val="#enchElementPower" />
<enchant5 name="magicLvl" val="#enchMagicLvl" /> <enchant5 name="magicLvl" val="#enchMagicLvl" />
<enchant5 name="power" val="#enchPower" />
<enchant6 name="element" val="3" /> <!-- Earth --> <enchant6 name="element" val="3" /> <!-- Earth -->
<enchant6 name="elementPower" val="#enchElementPower" /> <enchant6 name="elementPower" val="#enchElementPower" />
<enchant6 name="magicLvl" val="#enchMagicLvl" /> <enchant6 name="magicLvl" val="#enchMagicLvl" />
<enchant6 name="power" val="#enchPower" />
<enchant7 name="element" val="4" /> <!-- Holy --> <enchant7 name="element" val="4" /> <!-- Holy -->
<enchant7 name="elementPower" val="#enchElementPower" /> <enchant7 name="elementPower" val="#enchElementPower" />
<enchant7 name="magicLvl" val="#enchMagicLvl" /> <enchant7 name="magicLvl" val="#enchMagicLvl" />
<enchant7 name="power" val="#enchPower" />
<enchant8 name="element" val="5" /> <!-- Unholy --> <enchant8 name="element" val="5" /> <!-- Unholy -->
<enchant8 name="elementPower" val="#enchElementPower" /> <enchant8 name="elementPower" val="#enchElementPower" />
<enchant8 name="magicLvl" val="#enchMagicLvl" /> <enchant8 name="magicLvl" val="#enchMagicLvl" />
<enchant8 name="power" val="#enchPower" />
<enchant9 name="reuseDelay" val="#ench9Reuse" /> <enchant9 name="reuseDelay" val="#ench9Reuse" />
<enchant9 name="magicLevel" val="#enchMagicLvl" /> <enchant9 name="magicLevel" val="#enchMagicLvl" />
<enchant9 name="power" val="#enchPower" />
<cond msgId="113" addName="1"> <cond msgId="113" addName="1">
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" /> <using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
</cond> </cond>
<for> <for>
<effect name="EnergyAttack"> <effect name="EnergyAttack">
<param power="#power" /> <param power="#power" />
<param criticalChance="7" /> <param criticalChance="15" />
<param ignoreShieldDefence="true" /> <param ignoreShieldDefence="true" />
</effect> </effect>
</for> </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>
<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"> <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> <table name="#abnormalLvls"> 1 2 3 4 5 6 </table>
@@ -568,41 +628,132 @@
<set name="isDebuff" val="true" /> <set name="isDebuff" val="true" />
<set name="trait" val="KNOCKDOWN" /> <set name="trait" val="KNOCKDOWN" />
<enchant1 name="mpConsume" val="#ench2MpConsume" /> <enchant1 name="mpConsume" val="#ench2MpConsume" />
<enchant1 name="power" val="#enchPower" />
<enchant2 name="pvpPower" val="#enchDuel" />
<enchant3 name="element" val="0" /> <!-- Fire --> <enchant3 name="element" val="0" /> <!-- Fire -->
<enchant3 name="elementPower" val="#enchElementPower" /> <enchant3 name="elementPower" val="#enchElementPower" />
<enchant3 name="power" val="#enchPower" />
<enchant4 name="element" val="1" /> <!-- Water --> <enchant4 name="element" val="1" /> <!-- Water -->
<enchant4 name="elementPower" val="#enchElementPower" /> <enchant4 name="elementPower" val="#enchElementPower" />
<enchant4 name="power" val="#enchPower" />
<enchant5 name="element" val="2" /> <!-- Wind --> <enchant5 name="element" val="2" /> <!-- Wind -->
<enchant5 name="elementPower" val="#enchElementPower" /> <enchant5 name="elementPower" val="#enchElementPower" />
<enchant5 name="power" val="#enchPower" />
<enchant6 name="element" val="3" /> <!-- Earth --> <enchant6 name="element" val="3" /> <!-- Earth -->
<enchant6 name="elementPower" val="#enchElementPower" /> <enchant6 name="elementPower" val="#enchElementPower" />
<enchant6 name="power" val="#enchPower" />
<enchant7 name="element" val="4" /> <!-- Holy --> <enchant7 name="element" val="4" /> <!-- Holy -->
<enchant7 name="elementPower" val="#enchElementPower" /> <enchant7 name="elementPower" val="#enchElementPower" />
<enchant7 name="power" val="#enchPower" />
<enchant8 name="element" val="5" /> <!-- Unholy --> <enchant8 name="element" val="5" /> <!-- Unholy -->
<enchant8 name="elementPower" val="#enchElementPower" /> <enchant8 name="elementPower" val="#enchElementPower" />
<enchant8 name="power" val="#enchPower" />
<enchant9 name="reuseDelay" val="#ench9Reuse" /> <enchant9 name="reuseDelay" val="#ench9Reuse" />
<enchant9 name="power" val="#enchPower" />
<cond msgId="113" addName="1"> <cond msgId="113" addName="1">
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" /> <using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
</cond> </cond>
<for> <for>
<effect name="EnergyAttack"> <effect name="EnergyAttack">
<param power="#power" /> <param power="#power" />
<param criticalChance="7" /> <param criticalChance="15" />
<param ignoreShieldDefence="true" /> <param ignoreShieldDefence="true" />
</effect> </effect>
<effect name="KnockDown"> <effect name="KnockDown">
<param speed="700" distance="50" /> <param speed="700" distance="50" />
</effect> </effect>
</for> </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>
<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"> <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> <table name="#abnormalLvls"> 1 2 3 4 5 6 7 8 </table>
@@ -920,7 +1071,6 @@
<set name="skillRadius" val="200" /> <set name="skillRadius" val="200" />
<set name="effectRange" val="600" /> <set name="effectRange" val="600" />
<set name="effectPoint" val="-100" /> <!-- Need verify --> <set name="effectPoint" val="-100" /> <!-- Need verify -->
<set name="skillType" val="PDAM" />
<set name="flyType" val="CHARGE" /> <set name="flyType" val="CHARGE" />
<set name="targetType" val="FRONT_AREA" /> <set name="targetType" val="FRONT_AREA" />
<set name="fanRange" val="0,0,200,180" /> <set name="fanRange" val="0,0,200,180" />
@@ -932,38 +1082,115 @@
<set name="nextActionAttack" val="true" /> <set name="nextActionAttack" val="true" />
<enchant1 name="mpConsume" val="#ench1MpConsume" /> <enchant1 name="mpConsume" val="#ench1MpConsume" />
<enchant2 name="activateRate" val="#ench2activateRate" /> <enchant2 name="activateRate" val="#ench2activateRate" />
<enchant2 name="power" val="#enchPower" />
<enchant3 name="power" val="#enchPower" />
<enchant3 name="element" val="0" /> <enchant3 name="element" val="0" />
<enchant3 name="elementPower" val="#enchElementalPower" /> <enchant3 name="elementPower" val="#enchElementalPower" />
<enchant4 name="power" val="#enchPower" />
<enchant4 name="element" val="1" /> <enchant4 name="element" val="1" />
<enchant4 name="elementPower" val="#enchElementalPower" /> <enchant4 name="elementPower" val="#enchElementalPower" />
<enchant5 name="power" val="#enchPower" />
<enchant5 name="element" val="2" /> <enchant5 name="element" val="2" />
<enchant5 name="elementPower" val="#enchElementalPower" /> <enchant5 name="elementPower" val="#enchElementalPower" />
<enchant6 name="power" val="#enchPower" />
<enchant6 name="element" val="3" /> <enchant6 name="element" val="3" />
<enchant6 name="elementPower" val="#enchElementalPower" /> <enchant6 name="elementPower" val="#enchElementalPower" />
<enchant7 name="power" val="#enchPower" />
<enchant7 name="element" val="4" /> <enchant7 name="element" val="4" />
<enchant7 name="elementPower" val="#enchElementalPower" /> <enchant7 name="elementPower" val="#enchElementalPower" />
<enchant8 name="power" val="#enchPower" />
<enchant8 name="element" val="5" /> <enchant8 name="element" val="5" />
<enchant8 name="elementPower" val="#enchElementalPower" /> <enchant8 name="elementPower" val="#enchElementalPower" />
<enchant9 name="reuseDelay" val="#ench9Reuse" /> <enchant9 name="reuseDelay" val="#ench9Reuse" />
<enchant9 name="power" val="#enchPower" />
<cond msgId="113" addName="1"> <cond msgId="113" addName="1">
<and> <and>
<target mindistance="100" /> <target mindistance="200" />
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" /> <using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
</and> </and>
</cond> </cond>
<for> <for>
<effect name="EnergyAttack">
<param power="#power" />
<param criticalChance="15" />
</effect>
<effect name="Debuff"> <effect name="Debuff">
<mul stat="runSpd" val="0.3" /> <mul stat="runSpd" val="0.3" />
</effect> </effect>
</for> </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>
<skill id="10270" levels="1" name="Second Wind" enchantGroup1="10"> <skill id="10270" levels="1" name="Second Wind" enchantGroup1="10">
<table name="#enchTime"> 132 142 156 168 180 192 204 216 228 240 </table> <table name="#enchTime"> 132 142 156 168 180 192 204 216 228 240 </table>
@@ -1156,11 +1383,14 @@
<enchant2 name="abnormalTime" val="#ench2abnormalTime" /> <enchant2 name="abnormalTime" val="#ench2abnormalTime" />
<enchant9 name="reuseDelay" val="#ench9Reuse" /> <enchant9 name="reuseDelay" val="#ench9Reuse" />
<cond msgId="113" addName="1"> <cond msgId="113" addName="1">
<and>
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" /> <using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
<player hp="70" /> <player hp="70" />
</and>
</cond> </cond>
<enchant3cond addName="1" msgId="113"> <enchant3cond addName="1" msgId="113">
<and> <and>
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
<player hp="#ench3hpToActivate" /> <player hp="#ench3hpToActivate" />
</and> </and>
</enchant3cond> </enchant3cond>
@@ -1382,9 +1612,7 @@
<player hp="70" /> <player hp="70" />
</cond> </cond>
<enchant3cond msgId="113" addName="1"> <enchant3cond msgId="113" addName="1">
<and>
<player hp="#ench3playerHpRestrict" /> <player hp="#ench3playerHpRestrict" />
</and>
</enchant3cond> </enchant3cond>
<for> <for>
<effect name="Invincible"> <effect name="Invincible">
@@ -1410,73 +1638,99 @@
<set name="magicLvl" val="85" /> <set name="magicLvl" val="85" />
<set name="mpInitialConsume" val="58" /> <set name="mpInitialConsume" val="58" />
<set name="operateType" val="TOGGLE" /> <set name="operateType" val="TOGGLE" />
<set name="skillType" val="CONT" /> <set name="rideState" val="NONE" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="FocusEnergy" /> <effect name="DamOverTime" ticks="2">
<param power="150" />
<param charge="15" />
</effect>
</for> </for>
</skill> </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="#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="#enchPower">48735 49741 50747 51723 52759 53765 54771 55777 56783 57789</table>
<table name="#power">21958 23344</table> <table name="#power">44711 46723</table>
<table name="#magicLvl">95 98</table> <table name="#magicLvl">95 98</table>
<table name="#mpConsume">1103 1158</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="mpConsume" val="#mpConsume" />
<set name="effectRange" val="80" /> <set name="baseCritRate" val="10" />
<set name="baseCritRate" val="7" />
<set name="hitTime" val="7500" /> <set name="hitTime" val="7500" />
<set name="coolTime" val="500" /> <set name="coolTime" val="500" />
<set name="reuseDelay" val="30000" /> <set name="reuseDelay" val="30000" />
<set name="isDebuff" val="true" /> <set name="isDebuff" val="true" />
<set name="effectPoint" val="-100" /> <!-- Need verify -->
<set name="magicLvl" val="#magicLvl" /> <set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="ACTIVE_INSTANT" /> <set name="operateType" val="ACTIVE_INSTANT" />
<set name="overHit" val="true" /> <set name="overHit" val="true" />
<set name="power" val="#power" /> <set name="power" val="#power" />
<set name="skillRadius" val="400" /> <set name="skillRadius" val="400" />
<set name="skillType" val="PDAM" /> <set name="skillType" val="PDAM" />
<set name="SSBoost" val="2.5" />
<set name="targetType" val="AURA" /> <set name="targetType" val="AURA" />
<set name="trait" val="KNOCKDOWN" />
<enchant1 name="magicLevel" val="99" />
<enchant1 name="mpConsume" val="#ench1MpConsume" /> <enchant1 name="mpConsume" val="#ench1MpConsume" />
<enchant1 name="power" val="#enchPower" /> <enchant1 name="power" val="#enchPower" />
<enchant2 name="magicLevel" val="99" />
<enchant2 name="pvpPower" val="#enchPower" /> <enchant2 name="pvpPower" val="#enchPower" />
<enchant2 name="power" 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"> <cond msgId="113" addName="1">
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" /> <using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
</cond> </cond>
<for> <for>
<effect name="PhysicalAttack" /> <effect name="PhysicalAttack" />
<effect name="KnockDown">
<param speed="700" distance="50" />
</effect>
</for> </for>
</skill> </skill>
<skill id="10283" levels="1" name="Increase Momentum"> <skill id="10283" levels="1" name="Increase Momentum">
<!-- AUTO GENERATED SKILL -->
<set name="icon" val="icon.skill10283" /> <set name="icon" val="icon.skill10283" />
<set name="operateType" val="ACTIVE_INSTANT" /> <set name="operateType" val="ACTIVE_INSTANT" />
<set name="rideState" val="NONE" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<set name="reuseDelay" val="10000" /> <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>
<skill id="10284" levels="3" name="Lightning Force"> <skill id="10284" levels="3" name="Lightning Force">
<table name="#icons"> icon.skill10284 icon.skill10284_2 icon.skill10284_3 </table> <table name="#icons"> icon.skill10284 icon.skill10284_2 icon.skill10284_3 </table>
<set name="icon" val="#icons" /> <table name="#activationChance">20 10 10</table>
<table name="#activationChance">30 20 10</table>
<table name="#triggeredLevel">2 3 3</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="#runSpd">5 7 10</table>
<table name="#time">20 20 15</table> <table name="#time">15 20 30</table>
<table name="#abnormalLvl">2 3 4</table> <table name="#abnormalLvl">1 2 3</table>
<set name="abnormalType" val="SEED_OF_KNIGHT" /> <set name="icon" val="#icons" />
<set name="abnormalLvl" val="#abnormalLvl" />
<set name="abnormalTime" val="#time" /> <set name="abnormalTime" val="#time" />
<set name="operateType" val="ACTIVE_CONTINUOUS" /> <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" /> <set name="isTriggeredSkill" val="true" />
<for> <for>
<effect name="TriggerSkillByAttack"> <effect name="TriggerSkillBySkill">
<param attackerType="L2Character" minAttackerLevel="1" maxAttackerLevel="99" /> <param castSkillId="10284" />
<param isCritical="false" /> <param chance="70" />
<param minDamage="1" chance="#activationChance" />
<param skillId="10284" skillLevel="#triggeredLevel" /> <param skillId="10284" skillLevel="#triggeredLevel" />
<param targetType="SELF" /> <param targetType="ONE" />
<param allowWeapons="SWORD,BLUNT,DUAL,DUALFIST,POLE,DUALBLUNT" />
</effect> </effect>
<effect name="Buff"> <effect name="Buff">
<mul stat="pAtk" val="#pAtk"> <mul stat="pAtk" val="#pAtk">
@@ -1489,29 +1743,24 @@
</for> </for>
</skill> </skill>
<skill id="10285" levels="1" name="HP Drain"> <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="reuseDelay" val="10000" />
<set name="effectPoint" val="#effectPoint" /> <set name="effectPoint" val="313" />
<set name="magicLevel" val="#magicLevel" /> <set name="magicLevel" val="85" />
<set name="operateType" val="ACTIVE_CONTINUOUS" /> <set name="operateType" val="ACTIVE_INSTANT" />
<set name="targetType" val="ONE" /> <set name="targetType" val="SELF" />
<set name="skillType" val="HEAL" /> <set name="skillType" val="HEAL" />
</skill> <for>
<skill id="10286" levels="1" name="Superior Resistance"> <effect name="HealPercent">
<table name="#ench1mDef">206 213 220 227 234 241 248 255 262 270</table> <param power="20" />
<table name="#enchelementPower">21 22 23 24 25 26 27 28 29 30</table> </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="targetType" val="SELF" />
<set name="skillType" val="BUFF" />
<set name="magicLvl" val="85" /> <set name="magicLvl" val="85" />
<set name="operateType" val="PASSIVE" /> <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> <for>
<effect name="Buff"> <effect name="Buff">
<add stat="STR" val="2" /> <add stat="STR" val="2" />
@@ -1521,36 +1770,51 @@
<add stat="windRes" val="20" /> <add stat="windRes" val="20" />
<add stat="earthRes" val="20" /> <add stat="earthRes" val="20" />
</effect> </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> </for>
<enchant1for> <enchant1for>
<effect name="Buff"> <effect name="Buff">
<add stat="STR" val="2" /> <add stat="STR" val="2" />
<add stat="mDef" val="#ench1mDef" /> <add stat="mDef" val="#enchDef" />
<add stat="waterRes" val="#enchelementPower" /> <add stat="waterRes" val="#enchRes" />
<add stat="fireRes" val="#enchelementPower" /> <add stat="fireRes" val="#enchRes" />
<add stat="windRes" val="#enchelementPower" /> <add stat="windRes" val="#enchRes" />
<add stat="earthRes" val="#enchelementPower" /> <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> </effect>
</enchant1for> </enchant1for>
</skill> </skill>
<skill id="10287" levels="6" name="Rolling Thunder"> <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="#magicLvl">89 91 93 95 97 99</table>
<table name="#dot">225 228 232 235 238 242</table> <table name="#dot">225 228 232 235 238 242</table>
<table name="#abnormalLvl">1 2 3 4 5 6</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="abnormalLvl" val="#abnormalLvl" />
<set name="targetType" val="AURA" /> <set name="targetType" val="AURA" />
<set name="isDebuff" val="true" /> <set name="isDebuff" val="true" />
<set name="hitTime" val="500" /> <set name="isMagic" val="3" />
<set name="reuseDelay" val="3000" /> <set name="magicLvl" val="#magicLvl" />
<set name="skillRadius" val="200" />
<set name="operateType" val="ACTIVE_CONTINUOUS" /> <set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="isTriggeredSkill" val="true" />
<for> <for>
<effect name="DamOverTime" /> <effect name="DamOverTime" ticks="1">
<param power="#dot" />
</effect>
</for> </for>
</skill> </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="#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="#power">11557 11956 12754 13553 14351 15150 15948 16747</table>
<table name="#magicLvl">85 86 88 90 92 94 96 98</table> <table name="#magicLvl">85 86 88 90 92 94 96 98</table>
@@ -1561,34 +1825,42 @@
<set name="magicLvl" val="#magicLvl" /> <set name="magicLvl" val="#magicLvl" />
<set name="power" val="#power" /> <set name="power" val="#power" />
<set name="targetType" val="AREA" /> <set name="targetType" val="AREA" />
<set name="skillRadius" val="200" /> <set name="affectLimit" val="5-12" />
<set name="effectRange" val="200" /> <set name="affectRange" val="150" />
<set name="effectRange" val="1000" />
<set name="overHit" val="true" /> <set name="overHit" val="true" />
<set name="hitTime" val="1790" /> <set name="hitTime" val="1790" />
<set name="coolTime" val="300" /> <set name="coolTime" val="300" />
<set name="castRange" val="500" /> <set name="castRange" val="500" />
<set name="reuseDelay" val="10000" /> <set name="reuseDelay" val="10000" />
<set name="baseCritRate" val="7" /> <set name="baseCritRate" val="10" />
<set name="skillType" val="PDAM" />
<set name="operateType" val="ACTIVE_INSTANT" /> <set name="operateType" val="ACTIVE_INSTANT" />
<enchant1 name="magicLevel" val="99" />
<enchant1 name="mpConsume" val="#ench1MpConsume" /> <enchant1 name="mpConsume" val="#ench1MpConsume" />
<enchant1 name="power" val="#enchPower" /> <enchant1 name="power" val="#enchPower" />
<enchant2 name="magicLevel" val="99" />
<enchant2 name="pvpPower" val="#enchPower" /> <enchant2 name="pvpPower" val="#enchPower" />
<enchant3 name="magicLevel" val="99" />
<enchant3 name="element" val="0" /> <enchant3 name="element" val="0" />
<enchant3 name="elementPower" val="#enchelementPower" /> <enchant3 name="elementPower" val="#enchelementPower" />
<enchant3 name="power" val="#enchPower" /> <enchant3 name="power" val="#enchPower" />
<enchant4 name="magicLevel" val="99" />
<enchant4 name="element" val="1" /> <enchant4 name="element" val="1" />
<enchant4 name="elementPower" val="#enchelementPower" /> <enchant4 name="elementPower" val="#enchelementPower" />
<enchant4 name="power" val="#enchPower" /> <enchant4 name="power" val="#enchPower" />
<enchant5 name="magicLevel" val="99" />
<enchant5 name="element" val="2" /> <enchant5 name="element" val="2" />
<enchant5 name="elementPower" val="#enchelementPower" /> <enchant5 name="elementPower" val="#enchelementPower" />
<enchant5 name="power" val="#enchPower" /> <enchant5 name="power" val="#enchPower" />
<enchant6 name="magicLevel" val="99" />
<enchant6 name="element" val="3" /> <enchant6 name="element" val="3" />
<enchant6 name="elementPower" val="#enchelementPower" /> <enchant6 name="elementPower" val="#enchelementPower" />
<enchant6 name="power" val="#enchPower" /> <enchant6 name="power" val="#enchPower" />
<enchant7 name="magicLevel" val="99" />
<enchant7 name="element" val="4" /> <enchant7 name="element" val="4" />
<enchant7 name="elementPower" val="#enchelementPower" /> <enchant7 name="elementPower" val="#enchelementPower" />
<enchant7 name="power" val="#enchPower" /> <enchant7 name="power" val="#enchPower" />
<enchant8 name="magicLevel" val="99" />
<enchant8 name="element" val="5" /> <enchant8 name="element" val="5" />
<enchant8 name="elementPower" val="#enchelementPower" /> <enchant8 name="elementPower" val="#enchelementPower" />
<enchant8 name="power" val="#enchPower" /> <enchant8 name="power" val="#enchPower" />
@@ -1596,15 +1868,21 @@
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" /> <using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
</cond> </cond>
<for> <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> </for>
</skill> </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="#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="#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="#power">1.3 1.35 1.4 1.45</table>
<table name="#power2">1.05 1.1 1.15 1.2</table> <table name="#power2">1.05 1.1 1.15 1.2</table>
<table name="#magicLvl">85 90 95 99</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="magicLvl" val="#magicLvl" />
<set name="operateType" val="ACTIVE_CONTINUOUS" /> <set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="skillType" val="BUFF" /> <set name="skillType" val="BUFF" />
@@ -1619,42 +1897,64 @@
<enchant2 name="abnormalTime" val="#ench2Time" /> <enchant2 name="abnormalTime" val="#ench2Time" />
<for> <for>
<effect name="Buff"> <effect name="Buff">
<mul stat="pvpPhysDmg" val="#power2" />
<mul stat="physicalSkillPower" val="#power" /> <mul stat="physicalSkillPower" val="#power" />
<mul stat="pvpPhysDmg" val="#power2" />
<mul stat="pvpPhysSkillsDmg" val="#power2" />
</effect> </effect>
</for> </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> <enchant3for>
<effect name="Buff"> <effect name="Buff">
<mul stat="pvpPhysDmg" val="1.2" />
<mul stat="physicalSkillPower" val="1.45" /> <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> </effect>
</enchant3for> </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>
<skill id="10290" levels="8" name="Hurricane Slasher"> <skill id="10290" levels="8" name="Hurricane Slasher">
<!-- AUTO GENERATED SKILL --> <table name="#mpConsume"> 138 141 146 150 155 160 165 170 </table>
<!-- 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="#power"> 11557 11956 12754 13553 14351 15150 15948 16747 </table>
<table name="#mpConsumes"> 138 141 146 150 155 160 165 170 </table> <table name="#magicLvl">85 86 88 90 92 94 96 98</table>
<set name="icon" val="icon.skill0007" /> <set name="icon" val="icon.skill0007" />
<set name="operateType" val="ACTIVE_INSTANT" /> <set name="mpConsume" val="#mpConsume" />
<set name="targetType" val="ONE" /> <set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsumes" /> <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="hitTime" val="1800" />
<set name="coolTime" val="300" />
<set name="castRange" val="500" />
<set name="reuseDelay" val="7000" /> <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>
<skill id="10291" levels="1" name="Feral Bear Cry" enchantGroup1="10" enchantGroup2="10"> <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="#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="#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> <table name="#enchMagicLvl"> 86 87 88 90 91 92 93 95 97 99 </table>
@@ -1689,7 +1989,6 @@
</enchant2for> </enchant2for>
</skill> </skill>
<skill id="10292" levels="1" name="Feral Ogre Cry" enchantGroup1="10" enchantGroup2="10"> <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="#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="#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> <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="mDef" val="1.35" />
<mul stat="cAtk" val="1.10" /> <mul stat="cAtk" val="1.10" />
</effect> </effect>
<effect name="HealPercent">
<param power="7" />
</effect>
</for> </for>
<enchant2for> <enchant2for>
<effect name="Buff"> <effect name="Buff">
@@ -1727,16 +2023,12 @@
<mul stat="mDef" val="1.35" /> <mul stat="mDef" val="1.35" />
<mul stat="cAtk" val="1.10" /> <mul stat="cAtk" val="1.10" />
</effect> </effect>
<effect name="HealPercent">
<param power="7" />
</effect>
<effect name="AttackTrait"> <effect name="AttackTrait">
<param KNOCKDOWN="#enchTraits" /> <param KNOCKDOWN="#enchTraits" />
</effect> </effect>
</enchant2for> </enchant2for>
</skill> </skill>
<skill id="10293" levels="1" name="Feral Puma Cry" enchantGroup1="10" enchantGroup2="10"> <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="#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="#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> <table name="#enchMagicLvl"> 86 87 88 90 91 92 93 95 97 99 </table>
@@ -1773,7 +2065,6 @@
</enchant2for> </enchant2for>
</skill> </skill>
<skill id="10294" levels="1" name="Feral Rabbit Cry" enchantGroup1="10" enchantGroup2="10"> <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="#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="#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> <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="operateType" val="ACTIVE_CONTINUOUS" />
<set name="reuseDelay" val="30000" /> <set name="reuseDelay" val="30000" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<enchant1 name="magicLvl" val="#enchMagicLvl" />
<enchant1 name="abnormalTime" val="#enchTime" />
<enchant2 name="magicLvl" val="#enchMagicLvl" />
<for> <for>
<effect name="Buff"> <effect name="Buff">
<mul stat="pAtkSpd" val="1.30" /> <mul stat="pAtkSpd" val="1.30" />
@@ -1807,7 +2101,6 @@
</enchant2for> </enchant2for>
</skill> </skill>
<skill id="10295" levels="1" name="Hawk Cry" enchantGroup1="10" enchantGroup2="10"> <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="#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="#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> <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="operateType" val="ACTIVE_CONTINUOUS" />
<set name="reuseDelay" val="30000" /> <set name="reuseDelay" val="30000" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<enchant1 name="magicLvl" val="#enchMagicLvl" />
<enchant1 name="abnormalTime" val="#enchTime" />
<enchant2 name="magicLvl" val="#enchMagicLvl" />
<for> <for>
<effect name="Buff"> <effect name="Buff">
<add stat="accCombat" val="8" /> <add stat="accCombat" val="8" />
@@ -1840,8 +2136,8 @@
</effect> </effect>
</enchant2for> </enchant2for>
</skill> </skill>
<skill id="10296" levels="1" name="Spirit of the Hunter"> <skill id="10296" levels="1" name="Spirit of the Hunter" enchantGroup1="10">
<table name="#ench1Time">1810 1820 1830 1840 1850 1860 1870 1880 1890 1900</table> <table name="#ench1Time">1920 2040 2160 2280 2400 2520 2640 2760 2880 3000</table>
<set name="magicLvl" val="85" /> <set name="magicLvl" val="85" />
<set name="operateType" val="ACTIVE_CONTINUOUS" /> <set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="skillType" val="BUFF" /> <set name="skillType" val="BUFF" />
@@ -1850,24 +2146,24 @@
<set name="hitTime" val="2000" /> <set name="hitTime" val="2000" />
<set name="reuseDelay" val="30000" /> <set name="reuseDelay" val="30000" />
<set name="mpConsume" val="38" /> <set name="mpConsume" val="38" />
<enchant1 name="abnormalTime" val="#enchTime" /> <enchant1 name="abnormalTime" val="#ench1Time" />
<for> <for>
<effect name="AttackTrait"> <effect name="AttackTrait">
<param BUG_WEAKNESS="1.45" /> <param BUG_WEAKNESS="1.1" />
<param PLANT_WEAKNESS="1.45" /> <param PLANT_WEAKNESS="1.1" />
<param ANIMAL_WEAKNESS="1.45" /> <param ANIMAL_WEAKNESS="1.1" />
</effect> </effect>
</for> </for>
<enchant1for> <enchant1for>
<effect name="AttackTrait"> <effect name="AttackTrait">
<param BUG_WEAKNESS="1.45" /> <param BUG_WEAKNESS="1.1" />
<param PLANT_WEAKNESS="1.45" /> <param PLANT_WEAKNESS="1.1" />
<param ANIMAL_WEAKNESS="1.45" /> <param ANIMAL_WEAKNESS="1.1" />
</effect> </effect>
</enchant1for> </enchant1for>
</skill> </skill>
<skill id="10297" levels="1" name="Spirit of the Slayer"> <skill id="10297" levels="1" name="Spirit of the Slayer" enchantGroup1="10">
<table name="#ench1Time">1810 1820 1830 1840 1850 1860 1870 1880 1890 1900</table> <table name="#ench1Time">1920 2040 2160 2280 2400 2520 2640 2760 2880 3000</table>
<set name="magicLvl" val="85" /> <set name="magicLvl" val="85" />
<set name="operateType" val="ACTIVE_CONTINUOUS" /> <set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="abnormalTime" val="1800" /> <set name="abnormalTime" val="1800" />
@@ -1876,39 +2172,39 @@
<set name="hitTime" val="2000" /> <set name="hitTime" val="2000" />
<set name="reuseDelay" val="30000" /> <set name="reuseDelay" val="30000" />
<set name="mpConsume" val="38" /> <set name="mpConsume" val="38" />
<enchant1 name="abnormalTime" val="#enchTime" /> <enchant1 name="abnormalTime" val="#ench1Time" />
<for> <for>
<effect name="AttackTrait"> <effect name="AttackTrait">
<param BEAST_WEAKNESS="1.45" /> <param BEAST_WEAKNESS="1.1" />
<param CONSTRUCT_WEAKNESS="1.45" /> <param CONSTRUCT_WEAKNESS="1.1" />
<param GIANT_WEAKNESS="1.45" /> <param GIANT_WEAKNESS="1.1" />
<param DRAGON_WEAKNESS="1.45" /> <param DRAGON_WEAKNESS="1.1" />
</effect> </effect>
</for> </for>
<enchant1for> <enchant1for>
<effect name="AttackTrait"> <effect name="AttackTrait">
<param BEAST_WEAKNESS="1.45" /> <param BEAST_WEAKNESS="1.1" />
<param CONSTRUCT_WEAKNESS="1.45" /> <param CONSTRUCT_WEAKNESS="1.1" />
<param GIANT_WEAKNESS="1.45" /> <param GIANT_WEAKNESS="1.1" />
<param DRAGON_WEAKNESS="1.45" /> <param DRAGON_WEAKNESS="1.1" />
</effect> </effect>
</enchant1for> </enchant1for>
</skill> </skill>
<skill id="10298" levels="1" name="Power Revival"> <skill id="10298" levels="1" name="Power Revival">
<set name="magicLvl" val="86" /> <set name="magicLvl" val="86" />
<set name="aggroPoints" val="100" /> <set name="operateType" val="ACTIVE_INSTANT" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="skillType" val="HEAL_PERCENT" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<set name="hitTime" val="1500" /> <set name="hitTime" val="1500" />
<set name="reuseDelay" val="600000" /> <set name="reuseDelay" val="600000" />
<set name="mpConsume" val="38" /> <set name="mpConsume" val="38" />
<for> <for>
<effect name="HealPercent" /> <effect name="HealPercent">
<param power="100" />
</effect>
</for> </for>
</skill> </skill>
<skill id="10299" levels="1" name="Stun Spear"> <skill id="10299" levels="1" name="Stun Spear">
<!-- AUTO GENERATED SKILL --> <!-- NOT USED? -->
<!-- Inflicted with stun and unable to move for 3 seconds. --> <!-- Inflicted with stun and unable to move for 3 seconds. -->
<set name="icon" val="icon.skill10299" /> <set name="icon" val="icon.skill10299" />
<set name="operateType" val="ACTIVE_CONTINUOUS" /> <set name="operateType" val="ACTIVE_CONTINUOUS" />

View File

@@ -1,110 +1,139 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/skills.xsd"> <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. --> <skill id="10300" levels="3" name="Last Attack" enchantGroup1="10" enchantGroup2="10">
<!-- 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">
<table name="#power"> 52746 59601 65085 </table> <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="#magicLvl"> 90 95 99 </table>
<table name="#mpConsume"> 276 297 315 </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="icon" val="icon.skill10300" />
<set name="magicLvl" val="#magicLvl" /> <set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="ACTIVE_INSTANT" /> <set name="operateType" val="ACTIVE_INSTANT" />
<set name="power" val="#power" /> <set name="power" val="#power" />
<set name="mpConsume" val="#mpConsume" /> <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="hitTime" val="1690" />
<set name="coolTime" val="500" /> <set name="coolTime" val="500" />
<set name="reuseDelay" val="30000" /> <set name="reuseDelay" val="30000" />
<set name="targetType" val="ONE" /> <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> </skill>
<!-- Level 1 : Max Momentum increases to Stage 15. -->
<skill id="10301" levels="1" name="Maximum Force Mastery"> <skill id="10301" levels="1" name="Maximum Force Mastery">
<!-- DONE IN HANDLER -->
<set name="icon" val="icon.skill11842" /> <set name="icon" val="icon.skill11842" />
<set name="magicLvl" val="85" /> <set name="magicLvl" val="85" />
<set name="operateType" val="PASSIVE" /> <set name="operateType" val="PASSIVE" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
</skill> </skill>
<skill id="10302" levels="4" name="Triple Sonic Slash"> <skill id="10302" levels="4" name="Triple Sonic Slash">
<!-- AUTO GENERATED SKILL --> <table name="#mpConsume"> 98 105 112 119 </table>
<!-- 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="#power"> 22531 26017 29503 33377 </table>
<table name="#mpConsumes"> 98 105 112 119 </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="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="castRange" val="40" />
<set name="hitTime" val="1500" />
<set name="coolTime" val="500" /> <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="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>
<skill id="10303" levels="4" name="Superior Combat Master"> <skill id="10303" levels="4" name="Superior Combat Master">
<!-- AUTO GENERATED SKILL --> <table name="#rate"> 1.02 1.03 1.04 1.05 </table>
<!-- Max CP/ HP + 2%. -->
<set name="icon" val="icon.skill0430" /> <set name="icon" val="icon.skill0430" />
<set name="operateType" val="PASSIVE" /> <set name="operateType" val="PASSIVE" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<effect name="Buff"> <effect name="Buff">
<mul stat="maxHp" val="2" /> <mul stat="maxHp" val="#rate" />
<mul stat="maxCp" val="2" /> <mul stat="maxCp" val="#rate" />
</effect> </effect>
</skill> </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"> <skill id="10304" levels="4" name="Superior Dual Sword Mastery">
<table name="#magicLvl"> 85 90 95 99 </table> <table name="#magicLvl"> 85 90 95 99 </table>
<table name="#pAtk"> 1.02 1.03 1.04 1.05 </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="icon" val="icon.skill11835" />
<set name="magicLvl" val="#magicLvl" /> <set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="PASSIVE" /> <set name="operateType" val="PASSIVE" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="Buff"> <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> </effect>
</for> </for>
</skill> </skill>
<skill id="10305" levels="4" name="Broad Pull"> <skill id="10305" levels="4" name="Broad Pull">
<!-- AUTO GENERATED SKILL --> <table name="#mpConsume"> 62 69 76 83 </table>
<!-- Spear Resistance - 10%. Pulls enemies from a large radius nearby. Requires a sword, blunt, spear, fist weapon, dual blunt, or dual sword. --> <table name="#magicLvl"> 85 90 95 99 </table>
<table name="#mpConsumes"> 62 69 76 83 </table> <table name="#res"> -10 -12 -15 -20 </table>
<set name="icon" val="icon.skill11833" /> <set name="icon" val="icon.skill11833" />
<set name="operateType" val="ACTIVE_CONTINUOUS" /> <set name="abnormalTime" val="3" />
<set name="targetType" val="SELF" /> <set name="fanRange" val="0,0,80,300" />
<set name="mpConsume" val="#mpConsumes" /> <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="hitTime" val="1500" />
<set name="abnormalTime" val="10" />
<set name="coolTime" val="500" /> <set name="coolTime" val="500" />
<set name="reuseDelay" val="4000" /> <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> </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"> <skill id="10306" levels="4" name="Superior Polearm Mastery">
<table name="#pAtk"> 1.02 1.03 1.04 1.05 </table> <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> <table name="#magicLvl"> 85 90 95 99 </table>
<set name="icon" val="icon.skill11836" /> <set name="icon" val="icon.skill11836" />
<set name="magicLvl" val="#magicLvl" /> <set name="magicLvl" val="#magicLvl" />
@@ -112,38 +141,56 @@
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="Buff"> <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> </effect>
</for> </for>
</skill> </skill>
<skill id="10307" levels="1" name="Fist of Fury"> <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="icon" val="icon.skill10307new" />
<set name="magicLvl" val="85" />
<set name="mpConsume" val="8" />
<set name="operateType" val="TOGGLE" /> <set name="operateType" val="TOGGLE" />
<set name="rideState" val="NONE" />
<set name="targetType" val="SELF" /> <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> </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"> <skill id="10308" levels="1" name="Wild Roar">
<set name="icon" val="icon.skill11834" /> <set name="icon" val="icon.skill11834" />
<set name="magicLvl" val="85" /> <set name="magicLvl" val="85" />
<set name="abnormalTime" val="300" />
<set name="operateType" val="ACTIVE_CONTINUOUS" /> <set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="mpConsume" val="38" /> <set name="mpConsume" val="38" />
<set name="hitTime" val="2000" /> <set name="hitTime" val="2000" />
<set name="reuseDelay" val="30000" /> <set name="reuseDelay" val="30000" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<cond msgId="113" addName="1">
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
</cond>
<for> <for>
<effect name="Buff"> <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" /> <mul stat="pAtkSpd" val="0.85" />
</effect> </effect>
</for> </for>
</skill> </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"> <skill id="10309" levels="4" name="Superior Fist Weapon Mastery">
<table name="#pAtk"> 1.02 1.03 1.04 1.05 </table> <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> <table name="#magicLvl"> 85 90 95 99 </table>
<set name="icon" val="icon.skill11837" /> <set name="icon" val="icon.skill11837" />
<set name="magicLvl" val="#magicLvl" /> <set name="magicLvl" val="#magicLvl" />
@@ -151,26 +198,35 @@
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="Buff"> <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> </effect>
</for> </for>
</skill> </skill>
<skill id="10310" levels="1" name="Primal Rage"> <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="icon" val="icon.skill10310" />
<set name="abnormalTime" val="600" />
<set name="operateType" val="ACTIVE_CONTINUOUS" /> <set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<set name="mpConsume" val="38" /> <set name="mpConsume" val="38" />
<set name="hitTime" val="1500" /> <set name="hitTime" val="1500" />
<set name="reuseDelay" val="30000" /> <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> </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"> <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="#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> <table name="#magicLvl"> 85 90 95 99 </table>
<set name="icon" val="icon.skill11838" /> <set name="icon" val="icon.skill11838" />
<set name="magicLvl" val="#magicLvl" /> <set name="magicLvl" val="#magicLvl" />
@@ -178,7 +234,18 @@
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="Buff"> <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> </effect>
</for> </for>
</skill> </skill>
@@ -187,6 +254,7 @@
<!-- Level 3 : There is a small chance that the item quantity will double upon crafting. Critical level 3. --> <!-- 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. --> <!-- 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"> <skill id="10312" levels="4" name="Crafting Mastery">
<!-- NOT DONE -->
<table name="#magicLvl"> 85 90 95 99 </table> <table name="#magicLvl"> 85 90 95 99 </table>
<set name="icon" val="icon.skill10312" /> <set name="icon" val="icon.skill10312" />
<set name="magicLvl" val="#magicLvl" /> <set name="magicLvl" val="#magicLvl" />
@@ -194,35 +262,75 @@
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
</skill> </skill>
<skill id="10313" levels="4" name="Infinite Rush"> <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="#mpConsumes"> 92 98 104 110 </table>
<table name="#magicLvl"> 85 90 95 99 </table>
<set name="icon" val="icon.skill10313" /> <set name="icon" val="icon.skill10313" />
<set name="operateType" val="ACTIVE_INSTANT" /> <set name="abnormalLvl" val="1" />
<set name="targetType" val="SELF" /> <set name="abnormalTime" val="9" />
<set name="mpConsume" val="#mpConsumes" /> <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="castRange" val="600" />
<set name="hitTime" val="500" />
<set name="coolTime" 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="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>
<skill id="10314" levels="4" name="Disarmament"> <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="icon" val="icon.skill0485" />
<set name="operateType" val="ACTIVE_CONTINUOUS" /> <set name="abnormalLvl" val="1" />
<set name="targetType" val="SELF" /> <set name="abnormalTime" val="5" />
<set name="mpConsume" val="38" /> <set name="abnormalType" val="DISARM" />
<set name="castRange" val="40" /> <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="hitTime" val="1000" />
<set name="coolTime" val="500" /> <set name="icon" val="icon.skill0794" />
<set name="reuseDelay" val="60000" />
<set name="isDebuff" val="true" /> <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> </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"> <skill id="10315" levels="2" name="Superior Polearm Mastery">
<table name="#pAtk"> 1.02 1.03 </table> <table name="#pAtk"> 1.02 1.03 </table>
<table name="#pAtkAdd"> 583 678 </table>
<table name="#magicLvl"> 90 90 </table> <table name="#magicLvl"> 90 90 </table>
<set name="icon" val="icon.skill11836" /> <set name="icon" val="icon.skill11836" />
<set name="magicLvl" val="#magicLvl" /> <set name="magicLvl" val="#magicLvl" />
@@ -230,14 +338,12 @@
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="Buff"> <effect name="Buff">
<mul stat="pAtk" val="#pAtk" /> <mul stat="pAtk" val="#pAtk">
<using kind="POLE" />
</mul>
</effect> </effect>
</for> </for>
</skill> </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"> <skill id="10316" levels="4" name="Bloodthirst">
<table name="#pAtk"> 1.05 1.06 1.07 1.08 </table> <table name="#pAtk"> 1.05 1.06 1.07 1.08 </table>
<table name="#magicLvl"> 85 90 95 99 </table> <table name="#magicLvl"> 85 90 95 99 </table>
@@ -247,140 +353,218 @@
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="Buff"> <effect name="Buff">
<mul stat="pAtk" val="#pAtk" /> <mul stat="pvpPhysDmg" val="#pAtk" />
</effect> </effect>
</for> </for>
</skill> </skill>
<skill id="10317" levels="4" name="Thunder Slasher"> <skill id="10317" levels="4" name="Thunder Slasher">
<!-- AUTO GENERATED SKILL --> <table name="#mpConsume"> 122 124 129 133 </table>
<!-- 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="#magicLvl"> 85 90 95 99 </table>
<table name="#mpConsumes"> 122 124 129 133 </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="icon" val="icon.skill10317new" />
<set name="operateType" val="ACTIVE_CONTINUOUS" /> <set name="abnormalLvl" val="1" />
<set name="targetType" val="SELF" /> <set name="abnormalTime" val="9" />
<set name="mpConsume" val="#mpConsumes" /> <set name="abnormalType" val="STUN" />
<set name="hitTime" val="1390" /> <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="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="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> </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"> <skill id="10318" levels="4" name="Sonic Flash">
<table name="#power"> 17348 20033 22717 25700 </table> <table name="#power"> 17348 20033 22717 25700 </table>
<table name="#magicLvl"> 85 90 95 99 </table> <table name="#magicLvl"> 85 90 95 99 </table>
<table name="#mpConsume"> 98 105 112 119 </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="icon" val="icon.skill10318new" />
<set name="magicLvl" val="#magicLvl" /> <set name="castRange" val="600" />
<set name="operateType" val="ACTIVE_INSTANT" /> <set name="effectPoint" val="#effectPoints" />
<set name="power" val="#power" /> <set name="effectRange" val="1100" />
<set name="mpConsume" val="#mpConsume" />
<set name="effectRange" val="600" />
<set name="hitTime" val="1500" /> <set name="hitTime" val="1500" />
<set name="coolTime" val="500" /> <set name="magicLvl" val="#magicLvl" />
<set name="reuseDelay" val="10000" /> <set name="mpConsume" val="#mpConsume" />
<set name="targetType" val="SELF" /> <set name="operateType" val="ACTIVE_INSTANT" />
<set name="overHit" val="true" /> <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>
<skill id="10319" levels="1" name="Duelist's Fury"> <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="icon" val="icon.skll10319" />
<set name="abnormalTime" val="30" />
<set name="operateType" val="ACTIVE_CONTINUOUS" /> <set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<set name="hitTime" val="300" /> <set name="hitTime" val="300" />
<set name="reuseDelay" val="300000" /> <set name="reuseDelay" val="300000" />
<set name="isMagic" val="4" /> <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> </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"> <skill id="10320" levels="1" name="Faceoff">
<set name="icon" val="icon.skll10319" /> <set name="icon" val="icon.skll10319" />
<set name="abnormalTime" val="30" />
<set name="magicLvl" val="90" /> <set name="magicLvl" val="90" />
<set name="operateType" val="PASSIVE" /> <set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="mpConsume" val="43" /> <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="hitTime" val="300" />
<set name="reuseDelay" val="600000" /> <set name="reuseDelay" val="600000" />
<set name="isDebuff" val="true" /> <set name="isDebuff" val="true" />
<set name="targetType" val="SELF" /> <set name="targetType" val="ONE" />
<for>
<effect name="Duel" />
</for>
</skill> </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"> <skill id="10321" levels="4" name="Thunder Spear">
<table name="#power"> 22536 26428 29542 32656 </table> <table name="#power"> 22536 26428 29542 32656 </table>
<table name="#magicLvl"> 85 90 95 99 </table> <table name="#magicLvl"> 85 90 95 99 </table>
<table name="#mpConsume"> 122 124 129 133 </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="icon" val="icon.skll10321" />
<set name="magicLvl" val="#magicLvl" /> <set name="abnormalLvl" val="1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" /> <set name="abnormalTime" val="9" />
<set name="power" val="#power" /> <set name="abnormalType" val="STUN" />
<set name="mpConsume" val="#mpConsume" /> <set name="abnormalVisualEffect" val="STUN" />
<set name="effectRange" val="900" /> <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="hitTime" val="2500" />
<set name="reuseDelay" val="30000" />
<set name="targetType" val="AREA" />
<set name="ignoreShld" val="true" /> <set name="ignoreShld" val="true" />
<set name="isDebuff" 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="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> </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"> <skill id="10322" levels="1" name="Wolf's Cry">
<set name="icon" val="icon.skll10320" /> <set name="icon" val="icon.skll10320" />
<set name="magicLvl" val="85" /> <set name="magicLvl" val="85" />
<set name="abnormalTime" val="300" />
<set name="operateType" val="ACTIVE_CONTINUOUS" /> <set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="mpConsume" val="38" /> <set name="mpConsume" val="38" />
<set name="hitTime" val="2000" /> <set name="hitTime" val="2000" />
<set name="reuseDelay" val="30000" /> <set name="reuseDelay" val="30000" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<cond msgId="113" addName="1">
<using kind="SWORD, BLUNT, DUAL, DUALFIST, POLE, DUALBLUNT" />
</cond>
<for> <for>
<effect name="Buff"> <effect name="Buff">
<mul stat="pDef" val="1.5" />
<mul stat="mDef" val="1.5" /> <mul stat="mDef" val="1.5" />
<mul stat="maxHp" val="1.25" /> <mul stat="maxHp" val="1.25" />
<add stat="runSpd" val="20" />
</effect> </effect>
</for> </for>
</skill> </skill>
<skill id="10323" levels="1" name="Self Heal (Warrior)"> <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="icon" val="icon.skill0000" />
<set name="operateType" val="ACTIVE_INSTANT" /> <set name="operateType" val="ACTIVE_INSTANT" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<set name="mpConsume" val="1" />
<set name="reuseDelay" val="5000" /> <set name="reuseDelay" val="5000" />
<for>
<effect name="HealPercent">
<param power="10" />
</effect>
</for>
</skill> </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"> <skill id="10324" levels="3" name="Momentum Master">
<table name="#magicLvl"> 97 98 99 </table> <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="icon" val="icon.skill10324" />
<set name="magicLvl" val="#magicLvl" /> <set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="PASSIVE" /> <set name="operateType" val="PASSIVE" />
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for>
<effect name="Buff">
<mul stat="momentumSkillPower" val="#rate" />
</effect>
</for>
</skill> </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"> <skill id="10325" levels="3" name="Dreadful Roar">
<table name="#magicLvl"> 97 98 99 </table> <table name="#magicLvl"> 97 98 99 </table>
<table name="#mpConsume"> 149 151 154 </table> <table name="#mpConsume"> 149 151 154 </table>
<set name="icon" val="icon.skill10325" /> <set name="icon" val="icon.skill10325" />
<set name="magicLvl" val="#magicLvl" /> <set name="magicLvl" val="#magicLvl" />
<set name="affectLimit" val="6-12" />
<set name="affectRange" val="150" />
<set name="operateType" val="ACTIVE_INSTANT" /> <set name="operateType" val="ACTIVE_INSTANT" />
<set name="mpConsume" val="#mpConsume" /> <set name="mpConsume" val="#mpConsume" />
<set name="hitTime" val="1500" /> <set name="hitTime" val="1500" />
<set name="coolTime" val="500" /> <set name="coolTime" val="500" />
<set name="castRange" val="40" />
<set name="effectPoint" val="-100" /> <!-- Need verify -->
<set name="reuseDelay" val="120000" /> <set name="reuseDelay" val="120000" />
<set name="itemConsumeCount" val="10" />
<set name="itemConsumeId" val="1785" />
<set name="targetType" val="AREA" /> <set name="targetType" val="AREA" />
<for>
<effect name="DispelByCategory">
<param slot="buff" rate="25" max="1" />
</effect>
</for>
</skill> </skill>
<skill id="10326" levels="3" name="Bloody Fury"> <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> <table name="#mpConsumes"> 45 50 55 </table>
<set name="icon" val="icon.skill10326" /> <set name="icon" val="icon.skill10326" />
<set name="operateType" val="ACTIVE_CONTINUOUS" /> <set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -389,39 +573,62 @@
<set name="hitTime" val="2000" /> <set name="hitTime" val="2000" />
<set name="coolTime" val="200" /> <set name="coolTime" val="200" />
<set name="reuseDelay" val="180000" /> <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> </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"> <skill id="10327" levels="4" name="Momentum Flash">
<table name="#power"> 17348 20033 22717 25700 </table> <table name="#power"> 17348 20033 22717 25700 </table>
<table name="#magicLvl"> 85 90 95 99 </table> <table name="#magicLvl"> 85 90 95 99 </table>
<table name="#mpConsume"> 98 105 112 119 </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="icon" val="icon.skill10327" />
<set name="magicLvl" val="#magicLvl" /> <set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="ACTIVE_INSTANT" /> <set name="operateType" val="ACTIVE_INSTANT" />
<set name="power" val="#power" />
<set name="mpConsume" val="#mpConsume" /> <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="hitTime" val="1500" />
<set name="coolTime" val="500" /> <set name="coolTime" val="500" />
<set name="reuseDelay" val="10000" /> <set name="reuseDelay" val="10000" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<set name="overHit" val="true" /> <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> </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"> <skill id="10328" levels="3" name="Soul Berserker">
<table name="#magicLvl"> 97 98 99 </table> <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="icon" val="icon.skill10328" />
<set name="magicLvl" val="#magicLvl" /> <set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="TOGGLE" /> <set name="operateType" val="TOGGLE" />
<set name="targetType" val="SELF" /> <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> </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"> <skill id="10329" levels="1" name="Superior Blunt Weapon Mastery">
<set name="icon" val="icon.skill10329" /> <set name="icon" val="icon.skill10329" />
<set name="magicLvl" val="85" /> <set name="magicLvl" val="85" />
@@ -429,7 +636,18 @@
<set name="targetType" val="SELF" /> <set name="targetType" val="SELF" />
<for> <for>
<effect name="Buff"> <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> </effect>
</for> </for>
</skill> </skill>
@@ -441,18 +659,38 @@
<table name="#power"> 18005 22505 27005 30605 </table> <table name="#power"> 18005 22505 27005 30605 </table>
<table name="#magicLvl"> 85 90 95 99 </table> <table name="#magicLvl"> 85 90 95 99 </table>
<table name="#mpConsume"> 92 96 101 105 </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="icon" val="icon.skill10330" />
<set name="magicLvl" val="#magicLvl" /> <set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="ACTIVE_CONTINUOUS" /> <set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="power" val="#power" /> <set name="power" val="#power" />
<set name="mpConsume" val="#mpConsume" /> <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="hitTime" val="1500" />
<set name="coolTime" val="500" /> <set name="coolTime" val="500" />
<set name="lvlBonusRate" val="1" />
<set name="nextActionAttack" val="true" />
<set name="reuseDelay" val="7000" /> <set name="reuseDelay" val="7000" />
<set name="isDebuff" val="true" /> <set name="isDebuff" val="true" />
<set name="targetType" val="ONE" /> <set name="targetType" val="ONE" />
<set name="overHit" val="true" /> <set name="overHit" val="true" />
<set name="baseCritRate" val="15" /> <!-- Guessing --> <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> </skill>
</list> </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="race" use="optional" />
<xs:attribute type="xs:string" name="npcId" 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="npcType" use="optional" />
<xs:attribute type="xs:string" name="hp" use="optional" />
</xs:extension> </xs:extension>
</xs:simpleContent> </xs:simpleContent>
</xs:complexType> </xs:complexType>
@@ -247,7 +248,7 @@
<xs:attribute type="xs:string" name="grade" use="optional" /> <xs:attribute type="xs:string" name="grade" use="optional" />
<xs:attribute type="xs:byte" name="VALAKAS" use="optional" /> <xs:attribute type="xs:byte" name="VALAKAS" use="optional" />
<xs:attribute type="xs:string" name="isItem" 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="GUST" use="optional" />
<xs:attribute type="xs:byte" name="BOSS" use="optional" /> <xs:attribute type="xs:byte" name="BOSS" use="optional" />
<xs:attribute type="xs:byte" name="PHYSICAL_BLOCKADE" 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="speed" use="optional" />
<xs:attribute type="xs:integer" name="distance" use="optional" /> <xs:attribute type="xs:integer" name="distance" use="optional" />
<xs:attribute type="xs:integer" name="debuffId" 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:extension>
</xs:simpleContent> </xs:simpleContent>
</xs:complexType> </xs:complexType>
@@ -395,6 +403,7 @@
<xs:enumeration value="maxSkillDamage" /> <xs:enumeration value="maxSkillDamage" />
<xs:enumeration value="weaponElementPower" /> <xs:enumeration value="weaponElementPower" />
<xs:enumeration value="hpRestoreOnKill" /> <xs:enumeration value="hpRestoreOnKill" />
<xs:enumeration value="momentumSkillPower" />
</xs:restriction> </xs:restriction>
</xs:simpleType> </xs:simpleType>
<xs:complexType name="addType" mixed="true"> <xs:complexType name="addType" mixed="true">
@@ -480,6 +489,8 @@
<xs:element name="enchant4for" type="forType" /> <xs:element name="enchant4for" type="forType" />
<xs:element name="enchant5for" type="forType" /> <xs:element name="enchant5for" type="forType" />
<xs:element name="enchant6for" 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="endEffects" type="effectsType" />
<xs:element name="selfEffects" type="effectsType" /> <xs:element name="selfEffects" type="effectsType" />
<xs:element name="enchant2selfEffects" 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.ConditionTargetActiveSkillId;
import com.l2jserver.gameserver.model.conditions.ConditionTargetAggro; import com.l2jserver.gameserver.model.conditions.ConditionTargetAggro;
import com.l2jserver.gameserver.model.conditions.ConditionTargetClassIdRestriction; 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.ConditionTargetInvSize;
import com.l2jserver.gameserver.model.conditions.ConditionTargetLevel; import com.l2jserver.gameserver.model.conditions.ConditionTargetLevel;
import com.l2jserver.gameserver.model.conditions.ConditionTargetLevelRange; import com.l2jserver.gameserver.model.conditions.ConditionTargetLevelRange;
@@ -1049,6 +1050,12 @@ public abstract class DocumentBase
cond = joinAnd(cond, new ConditionTargetAbnormalType(abnormalType)); cond = joinAnd(cond, new ConditionTargetAbnormalType(abnormalType));
break; break;
} }
case "hp":
{
int hp = Integer.decode(getValue(a.getNodeValue(), template));
cond = joinAnd(cond, new ConditionTargetHp(hp));
break;
}
case "mindistance": case "mindistance":
{ {
int distance = Integer.decode(getValue(a.getNodeValue(), null)); int distance = Integer.decode(getValue(a.getNodeValue(), null));

View File

@@ -184,7 +184,7 @@ public abstract class L2Object extends ListenersContainer implements IIdentifiab
@Override @Override
public final boolean spawnMe() 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) synchronized (this)
{ {
@@ -1007,6 +1007,15 @@ public abstract class L2Object extends ListenersContainer implements IIdentifiab
return false; 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 @Override
public boolean equals(Object obj) public boolean equals(Object obj)
{ {

View File

@@ -38,7 +38,8 @@ public enum PcCondOverride
DESTROY_ALL_ITEMS(12, "Overrides item destroy conditions"), DESTROY_ALL_ITEMS(12, "Overrides item destroy conditions"),
SEE_ALL_PLAYERS(13, "Overrides the conditions to see hidden players"), SEE_ALL_PLAYERS(13, "Overrides the conditions to see hidden players"),
TARGET_ALL(14, "Overrides target conditions"), 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 int _mask;
private final String _descr; 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> * <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 @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 * 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 * L2PcInstance state modifications, server just need to go through _knownPlayers to send Server->Client Packet <B><U> Actions</U> :</B>
* _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> * <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() 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 * Manage Interact Task with another L2PcInstance. <B><U> Actions</U> :</B>
* to the L2PcInstance</li> <li>If the private store is a STORE_PRIVATE_MANUFACTURE, send a Server->Client RecipeShopSellList packet to the L2PcInstance</li> * <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 * @param target The L2Character targeted
*/ */
public void doInteract(L2Character target) 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 * Manage Pickup Task. <B><U> Actions</U> :</B>
* 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 * <li>Send a Server->Client packet StopMove to this L2PcInstance</li>
* current weight</li> <FONT COLOR=#FF0000><B> <U>Caution</U> : If a Party is in progress, distribute Items between party members</B></FONT> * <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 * @param object The L2ItemInstance to pick up
*/ */
@Override @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 * Kill the L2Character, Apply Death Penalty, Manage gain/loss Karma and Item Drop. <B><U> Actions</U> :</B>
* 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> * <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 * @param killer
*/ */
@Override @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> * 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 killer
* @param atWar * @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() 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>3 : STORE_PRIVATE_BUY</li><BR>
* <li>4 : buymanage</li><BR> * <li>4 : buymanage</li><BR>
* <li>5 : STORE_PRIVATE_MANUFACTURE</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>3 : STORE_PRIVATE_BUY</li><BR>
* <li>4 : buymanage</li><BR> * <li>4 : buymanage</li><BR>
* <li>5 : STORE_PRIVATE_MANUFACTURE</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 * Retrieve a L2PcInstance from the characters table of the database and add it in _allObjects of the L2world. <B><U> Actions</U> :</B>
* the L2PcInstance and make it invisible</li> <li>Update the overloaded status of the L2PcInstance</li> * <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 * @param objectId Identifier of the object to initialized
* @return The L2PcInstance loaded from the database * @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 * 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>
* 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> * <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 newSkill The L2Skill to add to the L2Character
* @param store * @param store
* @return The L2Skill replaced or null if just added a new L2Skill * @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 * 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>
* 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> * <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 * @param skill The L2Skill to remove from the L2Character
* @return The L2Skill removed * @return The L2Skill removed
*/ */
@@ -12855,7 +12887,7 @@ public final class L2PcInstance extends L2Playable
final SystemMessage sm; 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); sm = SystemMessage.getSystemMessage(SystemMessageId.THE_ATTACK_HAS_BEEN_BLOCKED);
} }

View File

@@ -83,7 +83,7 @@ public class PcStatus extends PlayableStatus
return; return;
} }
if (getActiveChar().isInvul() && !(isDOT || isHPConsumption)) if (getActiveChar().isInvul() && !getActiveChar().isVulnerableFor(attacker) && !(isDOT || isHPConsumption))
{ {
return; 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 String _attribute;
private final boolean _ignoreShield; private final boolean _ignoreShield;
private final int _ignorePhysDefPercent;
private final boolean _isSuicideAttack; private final boolean _isSuicideAttack;
private final boolean _canBeDispeled; private final boolean _canBeDispeled;
@@ -335,6 +336,7 @@ public final class Skill implements IIdentifiable
_minChance = set.getInt("minChance", Config.MIN_ABNORMAL_STATE_SUCCESS_RATE); _minChance = set.getInt("minChance", Config.MIN_ABNORMAL_STATE_SUCCESS_RATE);
_maxChance = set.getInt("maxChance", Config.MAX_ABNORMAL_STATE_SUCCESS_RATE); _maxChance = set.getInt("maxChance", Config.MAX_ABNORMAL_STATE_SUCCESS_RATE);
_ignoreShield = set.getBoolean("ignoreShld", false); _ignoreShield = set.getBoolean("ignoreShld", false);
_ignorePhysDefPercent = set.getInt("ignorePhysDefPercent", 0);
_nextActionIsAttack = set.getBoolean("nextActionAttack", false); _nextActionIsAttack = set.getBoolean("nextActionAttack", false);
@@ -1365,7 +1367,7 @@ public final class Skill implements IIdentifiable
} }
// Check bad skills against target. // 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; return;
} }
@@ -1652,6 +1654,14 @@ public final class Skill implements IIdentifiable
return _ignoreShield; return _ignoreShield;
} }
/**
* @return the percent of ignore defense of this skill
*/
public int getIgnorePhysDefPercent()
{
return _ignorePhysDefPercent;
}
public boolean canBeDispeled() public boolean canBeDispeled()
{ {
return _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); 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) if (crit)
{ {
// Finally retail like formula // 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... // 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); damage += target.calcStat(Stats.DEFENCE_CRITICAL_DAMAGE_ADD, 0, target, skill);
} }
else else
{ {
damage = (70 * damage) / defence; damage = (70 * damage) / (defence * reduceDef);
} }
damage *= calcAttackTraitBonus(attacker, target); 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 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("mCritPower"),
MAGIC_CRIT_DMG_ADD("mCritPowerAdd"), MAGIC_CRIT_DMG_ADD("mCritPowerAdd"),
MOMENTUM_SKILL_POWER("momentumSkillPower"),
// PVP BONUS // PVP BONUS
PVP_PHYSICAL_DMG("pvpPhysDmg"), PVP_PHYSICAL_DMG("pvpPhysDmg"),