Sync with L2jServer HighFive Mar 1st 2015.

This commit is contained in:
mobius
2015-03-01 22:48:14 +00:00
parent f14af24b41
commit 6fa0ed56e3
116 changed files with 971 additions and 676 deletions

View File

@@ -140,7 +140,7 @@ public final class CastleAmbassador extends AbstractNpcAI
final int fortOwner = fortresss.getOwnerClan() == null ? 0 : fortresss.getOwnerClan().getId();
String htmltext = null;
if (player.isClanLeader() && (player.getClan() != null) && (player.getClanId() == fortOwner))
if (player.isClanLeader() && (player.getClanId() == fortOwner))
{
htmltext = (fortresss.isBorderFortress()) ? "ambassador-01.html" : "ambassador.html";
}

View File

@@ -19,7 +19,6 @@
package ai.npc.NpcBuffers;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.model.L2Party;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -133,32 +132,27 @@ public class NpcBufferAI implements Runnable
return true;
}
if (player.isInParty() && targetPlayer.isInParty())
{
final L2Party party = player.getParty();
if (party.containsPlayer(targetPlayer))
{
return true;
}
if (party.isInCommandChannel() && party.getCommandChannel().containsPlayer(targetPlayer))
{
return true;
}
}
if ((player.getClanId() > 0) && (player.getClanId() == targetPlayer.getClanId()))
if (player.isInPartyWith(targetPlayer))
{
return true;
}
if ((player.getAllyId() > 0) && (player.getAllyId() == targetPlayer.getAllyId()))
if (player.isInCommandChannelWith(targetPlayer))
{
return true;
}
if ((player.getSiegeState() > 0) && player.isInsideZone(ZoneId.SIEGE) && (player.getSiegeState() == targetPlayer.getSiegeState()) && (player.getSiegeSide() == targetPlayer.getSiegeSide()))
if (player.isInClanWith(targetPlayer))
{
return true;
}
if (player.isInAllyWith(targetPlayer))
{
return true;
}
if (player.isOnSameSiegeSideWith(targetPlayer))
{
return true;
}
@@ -205,7 +199,7 @@ public class NpcBufferAI implements Runnable
return true;
}
if ((player.getClan() != null) && (targetPlayer.getClan() != null) && player.getClan().isAtWarWith(targetPlayer.getClan()))
if (player.isAtWarWith(targetPlayer))
{
return true;
}

View File

@@ -123,30 +123,34 @@ public final class WyvernManager extends AbstractNpcAI
private boolean isOwnerClan(L2Npc npc, L2PcInstance player)
{
if (!player.isClanLeader())
{
return false;
}
switch (MANAGERS.get(npc.getId()))
{
case CASTLE:
{
if ((player.getClan() != null) && (npc.getCastle() != null))
if (npc.getCastle() != null)
{
return (player.isClanLeader() && (player.getClanId() == npc.getCastle().getOwnerId()));
return player.getClanId() == npc.getCastle().getOwnerId();
}
return false;
}
case CLAN_HALL:
{
if ((player.getClan() != null) && (npc.getConquerableHall() != null))
if (npc.getConquerableHall() != null)
{
return (player.isClanLeader() && (player.getClanId() == npc.getConquerableHall().getOwnerId()));
return player.getClanId() == npc.getConquerableHall().getOwnerId();
}
return false;
}
case FORT:
{
final Fort fort = npc.getFort();
if ((player.getClan() != null) && (fort != null) && (fort.getOwnerClan() != null))
if ((fort != null) && (fort.getOwnerClan() != null))
{
return (player.isClanLeader() && (player.getClanId() == npc.getFort().getOwnerClan().getId()));
return player.getClanId() == npc.getFort().getOwnerClan().getId();
}
return false;
}

View File

@@ -124,6 +124,8 @@ public final class EffectMasterHandler
ManaHealByLevel.class,
ManaHealOverTime.class,
ManaHealPercent.class,
MaxCp.class,
MaxHp.class,
MpConsumePerLevel.class,
Mute.class,
NoblesseBless.class,

View File

@@ -283,7 +283,15 @@ public class ClanBoard implements IWriteBoardHandler
@Override
public boolean writeCommunityBoardCommand(L2PcInstance activeChar, String arg1, String arg2, String arg3, String arg4, String arg5)
{
// TODO: Implement.
return false;
// the only Write bypass that comes to this handler is "Write Notice Set _ Content Content Content";
// arg1 = Set, arg2 = _
final L2Clan clan = activeChar.getClan();
if ((clan != null) && activeChar.isClanLeader())
{
clan.setNotice(arg3);
}
return true;
}
}

View File

@@ -52,25 +52,21 @@ public final class Detection extends AbstractEffect
final L2PcInstance player = info.getEffector().getActingPlayer();
final L2PcInstance target = info.getEffected().getActingPlayer();
final boolean hasParty = player.isInParty();
final boolean hasClan = player.getClanId() > 0;
final boolean hasAlly = player.getAllyId() > 0;
if (target.isInvisible())
{
if (hasParty && (target.isInParty()) && (player.getParty().getLeaderObjectId() == target.getParty().getLeaderObjectId()))
if (player.isInPartyWith(target))
{
return;
}
else if (hasClan && (player.getClanId() == target.getClanId()))
if (player.isInClanWith(target))
{
return;
}
else if (hasAlly && (player.getAllyId() == target.getAllyId()))
if (player.isInAllyWith(target))
{
return;
}
// Remove Hide.
target.getEffectList().stopSkillEffects(true, AbnormalType.HIDE);
}

View File

@@ -58,7 +58,7 @@ public final class HeadquarterCreate extends AbstractEffect
public void onStart(BuffInfo info)
{
final L2PcInstance player = info.getEffector().getActingPlayer();
if ((player.getClan() == null) || (player.getClan().getLeaderId() != player.getObjectId()))
if (!player.isClanLeader())
{
return;
}

View File

@@ -0,0 +1,107 @@
/*
* Copyright (C) 2004-2015 L2J DataPack
*
* This file is part of L2J DataPack.
*
* L2J DataPack 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 DataPack 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.enums.EffectCalculationType;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.stat.CharStat;
import com.l2jserver.gameserver.model.conditions.Condition;
import com.l2jserver.gameserver.model.effects.AbstractEffect;
import com.l2jserver.gameserver.model.skills.BuffInfo;
import com.l2jserver.gameserver.model.stats.Stats;
import com.l2jserver.gameserver.model.stats.functions.FuncAdd;
import com.l2jserver.gameserver.model.stats.functions.FuncMul;
/**
* @author Zealar
*/
public final class MaxCp extends AbstractEffect
{
private final double _power;
private final EffectCalculationType _type;
private final boolean _heal;
public MaxCp(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
{
super(attachCond, applyCond, set, params);
_type = params.getEnum("type", EffectCalculationType.class, EffectCalculationType.DIFF);
switch (_type)
{
case DIFF:
{
_power = params.getInt("power", 0);
break;
}
default:
{
_power = 1 + (params.getInt("power", 0) / 100.0);
}
}
_heal = params.getBoolean("heal", false);
if (params.isEmpty())
{
_log.warning(getClass().getSimpleName() + ": must have parameters.");
}
}
@Override
public void onStart(BuffInfo info)
{
final CharStat charStat = info.getEffected().getStat();
synchronized (charStat)
{
final double currentCp = info.getEffected().getCurrentCp();
switch (_type)
{
case DIFF:
{
charStat.getActiveChar().addStatFunc(new FuncAdd(Stats.MAX_CP, 1, this, _power, null));
if (_heal)
{
info.getEffected().setCurrentCp((currentCp + _power));
}
break;
}
case PER:
{
charStat.getActiveChar().addStatFunc(new FuncMul(Stats.MAX_CP, 1, this, _power, null));
if (_heal)
{
info.getEffected().setCurrentCp((currentCp * _power));
}
break;
}
}
}
}
@Override
public void onExit(BuffInfo info)
{
final CharStat charStat = info.getEffected().getStat();
synchronized (charStat)
{
charStat.getActiveChar().removeStatsOwner(this);
}
}
}

View File

@@ -0,0 +1,108 @@
/*
* Copyright (C) 2004-2015 L2J DataPack
*
* This file is part of L2J DataPack.
*
* L2J DataPack 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 DataPack 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.enums.EffectCalculationType;
import com.l2jserver.gameserver.model.StatsSet;
import com.l2jserver.gameserver.model.actor.stat.CharStat;
import com.l2jserver.gameserver.model.conditions.Condition;
import com.l2jserver.gameserver.model.effects.AbstractEffect;
import com.l2jserver.gameserver.model.skills.BuffInfo;
import com.l2jserver.gameserver.model.stats.Stats;
import com.l2jserver.gameserver.model.stats.functions.FuncAdd;
import com.l2jserver.gameserver.model.stats.functions.FuncMul;
/**
* @author Zealar
*/
public final class MaxHp extends AbstractEffect
{
private final double _power;
private final EffectCalculationType _type;
private final boolean _heal;
public MaxHp(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
{
super(attachCond, applyCond, set, params);
_type = params.getEnum("type", EffectCalculationType.class, EffectCalculationType.DIFF);
switch (_type)
{
case DIFF:
{
_power = params.getInt("power", 0);
break;
}
default:
{
_power = 1 + (params.getInt("power", 0) / 100.0);
}
}
_heal = params.getBoolean("heal", false);
if (params.isEmpty())
{
_log.warning(getClass().getSimpleName() + ": must have parameters.");
}
}
@Override
public void onStart(BuffInfo info)
{
final CharStat charStat = info.getEffected().getStat();
synchronized (charStat)
{
final double currentHp = info.getEffected().getCurrentHp();
switch (_type)
{
case DIFF:
{
charStat.getActiveChar().addStatFunc(new FuncAdd(Stats.MAX_HP, 1, this, _power, null));
if (_heal)
{
info.getEffected().setCurrentHp((currentHp + _power));
}
break;
}
case PER:
{
charStat.getActiveChar().addStatFunc(new FuncMul(Stats.MAX_HP, 1, this, _power, null));
if (_heal)
{
info.getEffected().setCurrentHp((currentHp * _power));
}
break;
}
}
}
}
@Override
public void onExit(BuffInfo info)
{
final CharStat charStat = info.getEffected().getStat();
synchronized (charStat)
{
charStat.getActiveChar().removeStatsOwner(this);
}
}
}

View File

@@ -28,9 +28,11 @@ import com.l2jserver.gameserver.GeoData;
import com.l2jserver.gameserver.handler.ITargetTypeHandler;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.actor.instance.L2SiegeFlagInstance;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.model.skills.targets.L2TargetType;
import com.l2jserver.gameserver.model.zone.ZoneId;
import com.l2jserver.gameserver.network.SystemMessageId;
/**
@@ -42,9 +44,11 @@ public class AreaFriendly implements ITargetTypeHandler
public L2Object[] getTargetList(Skill skill, L2Character activeChar, boolean onlyFirst, L2Character target)
{
List<L2Character> targetList = new ArrayList<>();
if (!checkTarget(activeChar, target) && (skill.getCastRange() >= 0))
L2PcInstance player = activeChar.getActingPlayer();
if (!checkTarget(player, target) && (skill.getCastRange() >= 0))
{
activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET);
player.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET);
return EMPTY_TARGET_LIST;
}
@@ -56,11 +60,11 @@ public class AreaFriendly implements ITargetTypeHandler
};
}
if (activeChar.getActingPlayer().isInOlympiadMode())
if (player.getActingPlayer().isInOlympiadMode())
{
return new L2Character[]
{
activeChar
player
};
}
targetList.add(target); // Add target to target list
@@ -75,7 +79,7 @@ public class AreaFriendly implements ITargetTypeHandler
for (L2Character obj : objs)
{
if (!checkTarget(activeChar, obj) || (obj == activeChar))
if (!checkTarget(player, obj) || (obj == activeChar))
{
continue;
}
@@ -96,7 +100,7 @@ public class AreaFriendly implements ITargetTypeHandler
return targetList.toArray(new L2Character[targetList.size()]);
}
private boolean checkTarget(L2Character activeChar, L2Character target)
private boolean checkTarget(L2PcInstance activeChar, L2Character target)
{
if (!GeoData.getInstance().canSeeTarget(activeChar, target))
{
@@ -108,29 +112,41 @@ public class AreaFriendly implements ITargetTypeHandler
return false;
}
if ((target.getActingPlayer() != null) && (target.getActingPlayer() != activeChar) && (target.getActingPlayer().inObserverMode() || target.getActingPlayer().isInOlympiadMode()))
{
return false;
}
if (target.isPlayable())
{
if ((target != activeChar) && activeChar.isInParty() && target.isInParty())
L2PcInstance targetPlayer = target.getActingPlayer();
if (activeChar == targetPlayer)
{
return (activeChar.getParty().getLeader() == target.getParty().getLeader());
return true;
}
if ((activeChar.getClanId() != 0) && (target.getClanId() != 0))
if (targetPlayer.inObserverMode() || targetPlayer.isInOlympiadMode())
{
return (activeChar.getClanId() == target.getClanId());
return false;
}
if ((activeChar.getAllyId() != 0) && (target.getAllyId() != 0))
if (activeChar.isInDuelWith(target))
{
return (activeChar.getAllyId() == target.getAllyId());
return false;
}
if ((target != activeChar) && (target.getActingPlayer().getPvpFlag() > 0))
if (activeChar.isInPartyWith(target))
{
return true;
}
if (target.isInsideZone(ZoneId.PVP))
{
return false;
}
if (activeChar.isInClanWith(target) || activeChar.isInAllyWith(target) || activeChar.isInCommandChannelWith(target))
{
return true;
}
if ((targetPlayer.getPvpFlag() > 0) || (targetPlayer.getKarma() > 0))
{
return false;
}

View File

@@ -601,7 +601,6 @@
<set name="effectRange" val="1100" />
<set name="hitTime" val="1500" />
<set name="icon" val="icon.skill0015" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />
@@ -2094,6 +2093,7 @@
<set name="hitTime" val="1360" />
<set name="hpConsume" val="#hpConsume" />
<set name="icon" val="icon.skill0081" />
<set name="isDebuff" val="true" />
<set name="ignoreShld" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="#magicLvl" />

View File

@@ -674,10 +674,9 @@
</skill>
<skill id="121" levels="6" name="Battle Roar" enchantGroup1="1" enchantGroup2="1">
<table name="#abnormalLvls"> 1 2 3 4 5 6 </table>
<table name="#amount"> 10 15 20 25 30 35 </table>
<table name="#power"> 10 15 20 25 30 35 </table>
<table name="#effectPoints"> 268 379 467 549 597 635 </table>
<table name="#magicLvl"> 28 40 49 58 64 70 </table>
<table name="#maxHp"> 1.1 1.15 1.2 1.25 1.3 1.35 </table>
<table name="#mpConsume"> 13 18 22 27 30 33 </table>
<table name="#ench1Reuse"> 148000 145000 143000 140000 138000 135000 133000 130000 128000 125000 123000 120000 118000 115000 113000 110000 108000 105000 103000 100000 98000 95000 93000 90000 88000 85000 83000 80000 78000 75000 </table>
<table name="#ench2pAtk"> 1 1 1 2 2 2 3 3 3 4 4 4 4 5 5 5 6 6 6 7 7 7 7 8 8 8 9 9 9 10 </table>
@@ -698,20 +697,18 @@
<enchant1 name="reuseDelay" val="#ench1Reuse" />
<enchant2 name="magicLvl" val="#enchMagicLvl" />
<for>
<effect name="Buff">
<mul stat="maxHp" val="#maxHp" />
</effect>
<effect name="HealPercent">
<param power="#amount" />
<effect name="MaxHp">
<param power="#power" />
<param type="PER" />
<param heal="true" />
</effect>
</for>
<enchant2for>
<effect name="Buff">
<mul stat="maxHp" val="1.35" />
<add stat="pAtk" val="#ench2pAtk" />
</effect>
<effect name="HealPercent">
<effect name="MaxHp">
<param power="35" />
<param type="PER" />
<param heal="true" />
<add stat="pAtk" val="#ench2pAtk" />
</effect>
</enchant2for>
</skill>

View File

@@ -1541,7 +1541,6 @@
<set name="hpConsume" val="340" />
<set name="icon" val="icon.skill0347" />
<set name="ignoreShld" val="true" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="78" />
<set name="mpConsume" val="78" />
<set name="operateType" val="ACTIVE_INSTANT" />

View File

@@ -323,7 +323,6 @@
<set name="elementPower" val="20" />
<set name="hitTime" val="2000" />
<set name="icon" val="icon.skill0405" />
<set name="isDebuff" val="true" />
<set name="itemConsumeCount" val="#itemConsumeCount" />
<set name="itemConsumeId" val="1785" />
<set name="magicLvl" val="#magicLvl" />
@@ -1829,7 +1828,6 @@
<set name="elementPower" val="20" />
<set name="hitTime" val="2000" />
<set name="icon" val="icon.skill0450" />
<set name="isDebuff" val="true" />
<set name="itemConsumeCount" val="#itemConsumeCount" />
<set name="itemConsumeId" val="1785" />
<set name="magicLvl" val="#magicLvl" />

View File

@@ -2463,6 +2463,7 @@
<set name="elementPower" val="20" />
<set name="hitTime" val="1080" />
<set name="icon" val="icon.skill_transform_debuff" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />

View File

@@ -1592,7 +1592,6 @@
<set name="effectRange" val="900" />
<set name="hitTime" val="700" />
<set name="icon" val="icon.skill_transform_etc" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="80" />
<set name="mpConsume" val="51" />
@@ -1617,7 +1616,6 @@
<set name="effectPoint" val="-6752" />
<set name="hitTime" val="1000" />
<set name="icon" val="icon.skill_transform_etc" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="80" />
<set name="mpConsume" val="144" />
@@ -1911,6 +1909,7 @@
<set name="effectRange" val="650" />
<set name="hitTime" val="1500" />
<set name="icon" val="icon.skill_transform_debuff" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="80" />
<set name="mpConsume" val="73" />

View File

@@ -366,12 +366,14 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="SERVITOR" />
<for>
<effect name="Buff">
<effect name="MaxHp">
<param power="20" />
<param type="PER" />
<param heal="true" />
<mul stat="rCrit" val="1.2" />
<mul stat="pAtk" val="1.1" />
<mul stat="cAtk" val="1.2" />
<mul stat="pAtkSpd" val="1.2" />
<mul stat="maxHp" val="1.2" />
<mul stat="runSpd" val="0.8" />
<add stat="accCombat" val="4" />
<mul stat="pDef" val="1.2" />
@@ -380,9 +382,6 @@
<mul stat="mAtkSpd" val="1.2" />
<sub stat="debuffVuln" val="20" />
</effect>
<effect name="HealPercent">
<param power="20" />
</effect>
</for>
</skill>
<skill id="713" levels="1" name="Divine Summoner Servitor Hill">
@@ -1249,6 +1248,7 @@
<set name="effectPoint" val="#effectPoints" />
<set name="hitTime" val="2000" />
<set name="icon" val="icon.skill_transform_debuff" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />
@@ -1304,6 +1304,7 @@
<set name="effectRange" val="400" />
<set name="hitTime" val="1080" />
<set name="icon" val="icon.skill_transform_debuff" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />
@@ -1388,6 +1389,7 @@
<set name="effectRange" val="400" />
<set name="hitTime" val="1080" />
<set name="icon" val="icon.skill_transform_debuff" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />
@@ -2472,6 +2474,7 @@
<set name="effectRange" val="1100" />
<set name="hitTime" val="1200" />
<set name="icon" val="icon.skill0792" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="78" />

View File

@@ -123,6 +123,7 @@
<set name="effectRange" val="400" />
<set name="hitTime" val="830" />
<set name="icon" val="icon.skill_transform_debuff" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="83" />
<set name="mpConsume" val="53" />
@@ -1885,7 +1886,6 @@
<set name="flyType" val="DUMMY" />
<set name="hitTime" val="100" />
<set name="icon" val="icon.skill_transform_etc" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="75" />
<set name="mpConsume" val="50" />
<set name="mpInitialConsume" val="50" />

View File

@@ -113,6 +113,7 @@
<set name="elementPower" val="20" />
<set name="hitTime" val="1500" />
<set name="icon" val="icon.skill_transform_debuff" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="83" />
@@ -147,6 +148,7 @@
<set name="effectPoint" val="#effectPoints" />
<set name="hitTime" val="4000" />
<set name="icon" val="icon.skill_transform_debuff" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="83" />
<set name="mpConsume" val="#mpConsume" />
@@ -287,6 +289,7 @@
<set name="fanRange" val="0,0,200,900" />
<set name="hitTime" val="4000" />
<set name="icon" val="icon.skill_transform_s_attack" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="83" />
<set name="mpConsume" val="#mpConsume" />
@@ -695,6 +698,7 @@
<set name="elementPower" val="20" />
<set name="hitTime" val="1080" />
<set name="icon" val="icon.skill0927" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="19" />
@@ -1597,6 +1601,7 @@
<set name="abnormalType" val="SPEED_UP_SPECIAL" />
<set name="effectPoint" val="495" />
<set name="icon" val="icon.skill_transform_buff" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="85" />
<set name="mpConsume" val="30" />

View File

@@ -161,7 +161,6 @@
<set name="effectRange" val="1100" />
<set name="hitTime" val="4000" />
<set name="icon" val="icon.skill1105" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />
@@ -1015,7 +1014,6 @@
<set name="effectRange" val="1100" />
<set name="hitTime" val="4000" />
<set name="icon" val="icon.skill1163" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />

View File

@@ -263,7 +263,6 @@
<set name="effectPoint" val="#effectPoints" />
<set name="hitTime" val="4000" />
<set name="icon" val="icon.skill1213" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />
@@ -880,6 +879,7 @@
<enchant2 name="power" val="#ench2Power" />
<enchant3 name="basicProperty" val="MEN" />
<enchant3 name="magicLvl" val="#enchMagicLvl" />
<enchant3 name="isDebuff" val="true" />
<enchant4 name="elementPower" val="#ench4ElementPower" />
<enchant4 name="magicLvl" val="#enchMagicLvl" />
<for>
@@ -911,6 +911,7 @@
<set name="effectRange" val="650" />
<set name="hitTime" val="1500" />
<set name="icon" val="icon.skill1231" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />
@@ -1119,6 +1120,7 @@
<enchant2 name="mpInitialConsume" val="#ench2mpInitialConsume" />
<enchant2 name="power" val="#ench2Power" />
<enchant3 name="basicProperty" val="MEN" />
<enchant3 name="isDebuff" val="true" />
<enchant3 name="magicLvl" val="#enchMagicLvl" />
<enchant4 name="elementPower" val="#ench4ElementPower" />
<enchant4 name="magicLvl" val="#enchMagicLvl" />
@@ -1345,6 +1347,7 @@
<enchant2 name="magicLvl" val="#enchMagicLvl" />
<enchant3 name="basicProperty" val="MEN" />
<enchant3 name="magicLvl" val="#enchMagicLvl" />
<enchant3 name="isDebuff" val="true" />
<for>
<effect name="MagicalAttack" />
</for>

View File

@@ -344,10 +344,9 @@
</skill>
<skill id="1311" levels="6" name="Body of Avatar" enchantGroup1="1" enchantGroup2="1">
<table name="#abnormalLvls"> 1 2 3 4 5 6 </table>
<table name="#amount"> 10 15 20 25 30 35 </table>
<table name="#MaxHp"> 10 15 20 25 30 35 </table>
<table name="#effectPoints"> 457 532 566 597 624 646 </table>
<table name="#magicLvl"> 48 56 60 64 68 72 </table>
<table name="#maxHp"> 1.1 1.15 1.2 1.25 1.3 1.35 </table>
<table name="#mpConsume"> 273 326 352 378 402 424 </table>
<table name="#mpInitialConsume"> 69 82 88 95 101 106 </table>
<table name="#ench1AbnormalTimes"> 1240 1280 1320 1360 1400 1440 1480 1520 1560 1600 1640 1680 1720 1760 1800 1840 1880 1920 1960 2000 2040 2080 2120 2160 2200 2240 2280 2320 2360 2400 </table>
@@ -375,11 +374,10 @@
<enchant2 name="mpConsume" val="#ench2MpConsume" />
<enchant2 name="mpInitialConsume" val="#ench2mpInitialConsume" />
<for>
<effect name="Buff">
<mul stat="maxHp" val="#maxHp" />
</effect>
<effect name="HealPercent">
<param power="#amount" />
<effect name="MaxHp">
<param power="#MaxHp" />
<param type="PER" />
<param heal="true" />
</effect>
</for>
</skill>
@@ -1568,12 +1566,14 @@
<enchant2 name="mpConsume" val="#ench2mpConsume" />
<enchant2 name="mpInitialConsume" val="#ench2mpInitialConsume" />
<for>
<effect name="Buff">
<effect name="MaxHp">
<param power="20" />
<param type="PER" />
<param heal="true" />
<mul stat="rCrit" val="1.2" />
<mul stat="pAtk" val="1.1" />
<mul stat="cAtk" val="1.2" />
<mul stat="pAtkSpd" val="1.2" />
<mul stat="maxHp" val="1.2" />
<mul stat="runSpd" val="0.8" />
<add stat="accCombat" val="4" />
<mul stat="pDef" val="1.2" />
@@ -1582,9 +1582,6 @@
<mul stat="mAtkSpd" val="1.2" />
<sub stat="debuffVuln" val="20" />
</effect>
<effect name="HealPercent">
<param power="20" />
</effect>
</for>
</skill>
<skill id="1350" levels="1" name="Warrior Bane">
@@ -2146,8 +2143,10 @@
<enchant2 name="mpInitialConsume" val="#ench2mpInitialConsume" />
<enchant3 name="magicLvl" val="#enchMagicLvl" />
<for>
<effect name="Buff">
<mul stat="maxHp" val="1.2" />
<effect name="MaxHp">
<param power="20" />
<param type="PER" />
<param heal="true" />
<add stat="mCritRate" val="2" />
<mul stat="cAtk" val="1.2" />
<mul stat="pAtk" val="1.1" />
@@ -2160,13 +2159,12 @@
<add stat="accCombat" val="4" />
<mul stat="runSpd" val="0.8" />
</effect>
<effect name="HealPercent">
<param power="20" />
</effect>
</for>
<enchant3for>
<effect name="Buff">
<mul stat="maxHp" val="1.2" />
<effect name="MaxHp">
<param power="20" />
<param type="PER" />
<param heal="true" />
<add stat="mCritRate" val="2" />
<mul stat="cAtk" val="1.2" />
<mul stat="pAtk" val="1.1" />
@@ -2179,9 +2177,6 @@
<add stat="accCombat" val="4" />
<mul stat="runSpd" val="#ench3Spd" />
</effect>
<effect name="HealPercent">
<param power="20" />
</effect>
</enchant3for>
</skill>
<skill id="1364" levels="1" name="Eye of Pa'agrio" enchantGroup1="5" enchantGroup2="5">

View File

@@ -19,7 +19,6 @@
<set name="effectRange" val="1400" />
<set name="hitTime" val="4000" />
<set name="icon" val="icon.skill1400" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="itemConsumeCount" val="#itemConsumeCount" />
<set name="itemConsumeId" val="3031" />
@@ -658,7 +657,6 @@
<set name="effectPoint" val="#effectPoints" />
<set name="hitTime" val="1000" />
<set name="icon" val="icon.skill1417" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="itemConsumeCount" val="#itemConsumeCount" />
<set name="itemConsumeId" val="3031" />
@@ -2939,6 +2937,7 @@
<set name="effectRange" val="1100" />
<set name="hitTime" val="3000" />
<set name="icon" val="icon.skill1482" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="#magicLvl" />
@@ -2987,6 +2986,7 @@
<set name="effectRange" val="1100" />
<set name="hitTime" val="3000" />
<set name="icon" val="icon.skill1483" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="#magicLvl" />
@@ -3035,6 +3035,7 @@
<set name="effectRange" val="1100" />
<set name="hitTime" val="3000" />
<set name="icon" val="icon.skill1484" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="#magicLvl" />

View File

@@ -1330,6 +1330,7 @@
<set name="effectPoint" val="343" />
<set name="hitTime" val="1200" />
<set name="icon" val="icon.skill1540" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="81" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="reuseDelay" val="600000" />
@@ -1899,9 +1900,8 @@
<skill id="1561" levels="5" name="Battle Cry">
<!-- High Five Skill -->
<table name="#abnormalLvls"> 2 3 4 5 6 </table>
<table name="#amount"> 15 20 25 30 35 </table>
<table name="#MaxHp"> 15 20 25 30 35 </table>
<table name="#magicLvl"> 40 49 58 64 70 </table>
<table name="#maxHp"> 1.15 1.2 1.25 1.3 1.35 </table>
<table name="#mpConsume"> 18 22 27 30 33 </table>
<set name="abnormalLvl" val="#abnormalLvls" />
<set name="abnormalTime" val="600" />
@@ -1916,11 +1916,10 @@
<set name="rideState" val="NONE" />
<set name="targetType" val="SELF" />
<for>
<effect name="Buff">
<mul stat="maxHp" val="#maxHp" />
</effect>
<effect name="HealPercent">
<param power="#amount" />
<effect name="MaxHp">
<param power="#MaxHp" />
<param type="PER" />
<param heal="true" />
</effect>
</for>
</skill>

View File

@@ -754,6 +754,7 @@
<set name="effectRange" val="1400" />
<set name="hitTime" val="500" />
<set name="icon" val="icon.etc_destory_soul_arrow_i00" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="2" /> <!-- Static Skill -->
<set name="itemConsumeCount" val="1" />
<set name="itemConsumeId" val="8192" /> <!-- Soul Breaking Arrow -->
@@ -873,6 +874,7 @@
<set name="effectPoint" val="100" />
<set name="effectRange" val="1100" />
<set name="icon" val="icon.ect_piece_of_paper_white_i00" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="2" /> <!-- Static Skill -->
<set name="itemConsumeCount" val="1" />
<set name="itemConsumeId" val="8379" /> <!-- Petrification Scroll -->

View File

@@ -925,6 +925,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="2000" />
<set name="icon" val="icon.etc_piece_holy_light" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="2" /> <!-- Static Skill -->
<set name="itemConsumeCount" val="1" />
<set name="itemConsumeId" val="13855" /> <!-- Sacred Light Fragment -->

View File

@@ -99,7 +99,6 @@
<skill id="2905" levels="1" name="Growth Accelerator">
<set name="effectPoint" val="-100" />
<set name="hitTime" val="4000" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="2" /> <!-- Static Skill -->
<set name="itemConsumeCount" val="1" />
<set name="itemConsumeId" val="14832" /> <!-- Growth Accelerator -->

View File

@@ -1273,6 +1273,7 @@
<set name="effectPoint" val="-100" />
<set name="effectRange" val="1500" />
<set name="icon" val="icon.skill1170" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="#magicLvl" />

View File

@@ -685,11 +685,10 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="SELF" />
<for>
<effect name="Buff">
<mul stat="maxHp" val="1.03" />
</effect>
<effect name="HealPercent">
<effect name="MaxHp">
<param power="3" />
<param type="PER" />
<param heal="true" />
</effect>
</for>
</skill>

View File

@@ -529,7 +529,6 @@
<set name="effectRange" val="500" />
<set name="hitTime" val="25000" />
<set name="icon" val="icon.weapon_seize_mace_i00" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="2" /> <!-- Static Skill -->
<set name="itemConsumeCount" val="1" />
<set name="itemConsumeId" val="8764" /> <!-- Trap Stone -->
@@ -550,7 +549,6 @@
<set name="effectRange" val="500" />
<set name="hitTime" val="25000" />
<set name="icon" val="icon.weapon_seize_mace_i00" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="2" /> <!-- Static Skill -->
<set name="itemConsumeCount" val="1" />
<set name="itemConsumeId" val="8764" /> <!-- Trap Stone -->
@@ -571,7 +569,6 @@
<set name="effectRange" val="500" />
<set name="hitTime" val="25000" />
<set name="icon" val="icon.weapon_seize_mace_i00" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="2" /> <!-- Static Skill -->
<set name="itemConsumeCount" val="1" />
<set name="itemConsumeId" val="8764" /> <!-- Trap Stone -->

View File

@@ -1747,8 +1747,7 @@
<!-- Confirmed CT2.5 -->
<table name="#accCombat"> 3 7 7 </table>
<table name="#magicLvl"> 40 60 75 </table>
<table name="#maxHp"> 1.14 1.21 1.21 </table>
<table name="#maxHpHeal"> 14 21 21 </table>
<table name="#MaxHp"> 14 21 21 </table>
<table name="#mpConsume"> 18 18 19 </table>
<table name="#pAtk"> 1.05 1.15 1.15 </table>
<table name="#pDef"> 1.1 1.3 1.3 </table>
@@ -1771,12 +1770,13 @@
<mul stat="runSpd" val="#runSpd" />
<mul stat="pAtk" val="#pAtk" />
<mul stat="pDef" val="#pDef" />
<mul stat="maxHp" val="#maxHp" />
<sub stat="rEvas" val="#rEvas" />
<add stat="accCombat" val="#accCombat" />
</effect>
<effect name="HealPercent">
<param power="#maxHpHeal" />
<effect name="MaxHp">
<param power="#MaxHp" />
<param type="PER" />
<param heal="true" />
</effect>
</for>
</skill>

View File

@@ -641,6 +641,7 @@
<set name="castRange" val="600" />
<set name="effectRange" val="1100" />
<set name="icon" val="icon.skill0164" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="40" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" />

View File

@@ -933,6 +933,7 @@
<set name="abnormalLvl" val="1" />
<set name="abnormalTime" val="1800" />
<set name="abnormalType" val="PUBLIC_SLOT" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="-1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" />

View File

@@ -1629,7 +1629,6 @@
<set name="effectRange" val="1000" />
<set name="hitTime" val="3200" />
<set name="icon" val="icon.skill1043" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="-1" />
<set name="mpConsume" val="#mpConsume" />

View File

@@ -308,11 +308,10 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="ONE" />
<for>
<effect name="Buff">
<mul stat="maxHp" val="1.3" />
</effect>
<effect name="HealPercent">
<effect name="MaxHp">
<param power="30" />
<param type="PER" />
<param heal="true" />
</effect>
</for>
</skill>

View File

@@ -647,6 +647,7 @@
<set name="abnormalType" val="ALL_SPEED_DOWN" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.etc_hot_spring_sulfur_i00" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" />
@@ -659,6 +660,7 @@
<set name="abnormalTime" val="9" />
<set name="abnormalType" val="STUN" />
<set name="effectPoint" val="-100" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" />

View File

@@ -447,6 +447,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="2000" />
<set name="magicLvl" val="1" />
<set name="isDebuff" val="true" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="reuseDelay" val="5000" />
<set name="rideState" val="NONE" />
@@ -481,6 +482,7 @@
<set name="basicProperty" val="MEN" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill1160" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="#magicLvl" />
@@ -497,6 +499,7 @@
<set name="basicProperty" val="MEN" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill4047" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="10" />
@@ -515,6 +518,7 @@
<set name="basicProperty" val="MEN" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill4038" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="#magicLvl" />
@@ -615,6 +619,7 @@
<set name="basicProperty" val="MEN" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill1206" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1055,6 +1060,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="4000" />
<set name="icon" val="icon.skill1160" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="40" />
@@ -1072,6 +1078,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="2000" />
<set name="icon" val="icon.skill4038" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="40" />
@@ -1089,6 +1096,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="2000" />
<set name="icon" val="icon.skill1206" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="40" />
@@ -1106,6 +1114,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="2000" />
<set name="icon" val="icon.skill4037" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="40" />
@@ -1122,6 +1131,7 @@
<set name="basicProperty" val="MEN" />
<set name="effectPoint" val="-100" />
<set name="hitTime" val="2000" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="40" />

View File

@@ -897,7 +897,7 @@
<set name="abnormalType" val="MULTI_DEBUFF" />
<set name="affectRange" val="200" />
<set name="icon" val="icon.skill1422" />
<set name="isDebuff" val="1" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="2" /> <!-- Static Skill -->
<set name="magicLvl" val="80" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />

View File

@@ -923,6 +923,7 @@
<set name="effectRange" val="1400" />
<set name="hitTime" val="1200" />
<set name="icon" val="icon.skill5243" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="85" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1393,6 +1394,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="1500" />
<set name="icon" val="icon.skilltransform3" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="60" />
<set name="mpConsume" val="44" />
<set name="mpInitialConsume" val="11" />
@@ -1523,6 +1525,7 @@
<set name="effectRange" val="1100" />
<set name="hitTime" val="4000" />
<set name="icon" val="icon.skill1396" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="#magicLvl" />

View File

@@ -74,6 +74,7 @@
<set name="effectRange" val="200" />
<set name="hitTime" val="830" />
<set name="icon" val="icon.skill4035" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />
@@ -108,6 +109,7 @@
<set name="effectRange" val="200" />
<set name="hitTime" val="830" />
<set name="icon" val="icon.skill0096" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />
@@ -173,6 +175,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="1000" />
<set name="icon" val="icon.skill4035" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />
@@ -206,6 +209,7 @@
<set name="elementPower" val="20" />
<set name="hitTime" val="1000" />
<set name="icon" val="icon.skill1170" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />
@@ -268,6 +272,7 @@
<set name="effectRange" val="1400" />
<set name="hitTime" val="4500" />
<set name="icon" val="icon.skill4035" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />
@@ -726,6 +731,7 @@
<set name="effectRange" val="1100" />
<set name="hitTime" val="4000" />
<set name="icon" val="icon.skill4035" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="#magicLvl" />
@@ -1178,6 +1184,7 @@
<set name="effectRange" val="200" />
<set name="hitTime" val="830" />
<set name="icon" val="icon.skill4035" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />
@@ -1277,6 +1284,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="1000" />
<set name="icon" val="icon.skill4035" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />
@@ -1334,6 +1342,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="4500" />
<set name="icon" val="icon.skill0100" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="75" />
<set name="nextActionAttack" val="true" />
@@ -1360,6 +1369,7 @@
<set name="effectRange" val="1400" />
<set name="hitTime" val="4500" />
<set name="icon" val="icon.skill4035" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />
@@ -1388,6 +1398,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="4500" />
<set name="icon" val="icon.skill0096" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1782,6 +1793,7 @@
<set name="elementPower" val="20" />
<set name="hitTime" val="4000" />
<set name="icon" val="icon.skill4035" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="#magicLvl" />

View File

@@ -416,6 +416,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="2000" />
<set name="lvlBonusRate" val="2" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="40" />
<set name="nextActionAttack" val="true" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -855,6 +856,7 @@
<set name="castRange" val="900" />
<set name="effectPoint" val="-100" />
<set name="effectRange" val="1400" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="90" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
@@ -899,6 +901,7 @@
<set name="basicProperty" val="MEN" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill1170" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="99" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -916,6 +919,7 @@
<set name="basicProperty" val="MEN" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill1092" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="99" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1108,6 +1112,7 @@
<set name="abnormalType" val="TRANSFORM_HANGOVER" />
<set name="effectPoint" val="1" />
<set name="icon" val="icon.skilltransform3" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="-1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" />
@@ -1120,6 +1125,7 @@
<set name="abnormalType" val="TRANSFORM_HANGOVER" />
<set name="effectPoint" val="1" />
<set name="icon" val="icon.skilltransform3" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="-1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" />

View File

@@ -601,6 +601,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="1000" />
<set name="icon" val="icon.skill0096" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1869,6 +1870,7 @@
<set name="basicProperty" val="CON" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill4036" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="95" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1885,6 +1887,7 @@
<set name="basicProperty" val="CON" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill0096" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="95" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />

View File

@@ -307,6 +307,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="1200" />
<set name="icon" val="icon.skill0122" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -321,6 +322,7 @@
<set name="effectPoint" val="-707" />
<set name="hitTime" val="2000" />
<set name="icon" val="icon.skill1201" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="51" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -335,6 +337,7 @@
<set name="effectPoint" val="-707" />
<set name="hitTime" val="2000" />
<set name="icon" val="icon.skill1201" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="95" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1000,7 +1003,6 @@
<set name="effectRange" val="650" />
<set name="hitTime" val="1000" />
<set name="icon" val="icon.skill1231" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="2" /> <!-- Static Skill -->
<set name="magicLvl" val="#magicLvl" />
<set name="mpConsume" val="#mpConsume" />
@@ -1147,6 +1149,7 @@
<set name="abnormalTime" val="600" />
<set name="abnormalType" val="ENTRY_FOR_GAME" />
<set name="icon" val="icon.skill5661" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="-2" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" />
@@ -1499,7 +1502,6 @@
<skill id="5680" levels="1" name="Oblivion Trap">
<set name="castRange" val="900" />
<set name="effectRange" val="1400" />
<set name="isDebuff" val="true" />
<set name="isTriggeredSkill" val="true" />
<set name="magicLvl" val="79" />
<set name="operateType" val="ACTIVE_INSTANT" />
@@ -1536,7 +1538,6 @@
<set name="effectRange" val="1100" />
<set name="hitTime" val="100" />
<set name="icon" val="icon.skill1056" />
<set name="isDebuff" val="true" />
<set name="isTriggeredSkill" val="true" />
<set name="magicLvl" val="80" />
<set name="operateType" val="ACTIVE_INSTANT" />
@@ -1808,7 +1809,6 @@
<set name="effectRange" val="1100" />
<set name="hitTime" val="100" />
<set name="icon" val="icon.skill0445" />
<set name="isDebuff" val="true" />
<set name="isTriggeredSkill" val="true" />
<set name="magicLvl" val="80" />
<set name="operateType" val="ACTIVE_INSTANT" />
@@ -1847,6 +1847,7 @@
<set name="abnormalType" val="INVINCIBILITY" />
<set name="effectPoint" val="1" />
<set name="icon" val="icon.skill0837" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="74" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="reuseDelay" val="5000" />

View File

@@ -80,6 +80,7 @@
<set name="effectPoint" val="-341" />
<set name="hitTime" val="1000" />
<set name="magicLvl" val="36" />
<set name="isDebuff" val="true" />
<set name="operateType" val="ACTIVE_WITH_TRIGGER" />
<set name="reuseDelay" val="6000" />
<set name="rideState" val="NONE" />
@@ -113,6 +114,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="2000" />
<set name="icon" val="icon.skill4036" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="61" />
@@ -129,6 +131,7 @@
<set name="abnormalVisualEffect" val="PARALYZE" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill1170" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="61" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -289,6 +292,7 @@
<set name="fanRange" val="0,0,1500,60" />
<set name="hitTime" val="3000" />
<set name="icon" val="icon.skill0100" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="73" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1198,6 +1202,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="2060" />
<set name="icon" val="icon.skill1092" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="95" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1388,6 +1393,7 @@
<set name="abnormalType" val="INVINCIBILITY" />
<set name="effectPoint" val="1" />
<set name="icon" val="icon.skill0837" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="-1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="reuseDelay" val="1000" />
@@ -1536,6 +1542,7 @@
<set name="fanRange" val="0,0,900,5" />
<set name="hitTime" val="2000" />
<set name="icon" val="icon.skill1160" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="83" />
@@ -1554,6 +1561,7 @@
<set name="effectPoint" val="-684" />
<set name="hitTime" val="3000" />
<set name="icon" val="icon.skill4035" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="83" />
@@ -1574,6 +1582,7 @@
<set name="fanRange" val="0,0,900,30" />
<set name="hitTime" val="4000" />
<set name="icon" val="icon.skill1160" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="83" />
@@ -1614,6 +1623,7 @@
<set name="effectPoint" val="-689" />
<set name="hitTime" val="1800" />
<set name="icon" val="icon.skill0096" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="85" />

View File

@@ -32,6 +32,7 @@
<set name="fanRange" val="0,0,400,60" />
<set name="hitTime" val="1500" />
<set name="icon" val="icon.skill0100" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="85" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -121,6 +122,7 @@
<set name="fanRange" val="0,0,600,30" />
<set name="hitTime" val="2000" />
<set name="icon" val="icon.skill1160" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="75" />
@@ -729,6 +731,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="1000" />
<set name="icon" val="icon.skill0096" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="#magicLvl" />
@@ -845,6 +848,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="1000" />
<set name="icon" val="icon.skill1160" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="80" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" />
@@ -860,6 +864,7 @@
<set name="fanRange" val="0,0,300,90" />
<set name="hitTime" val="1000" />
<set name="icon" val="icon.skill0100" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="80" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="reuseDelay" val="1000" />
@@ -959,6 +964,7 @@
<set name="basicProperty" val="MEN" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill5860" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="-1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -974,6 +980,7 @@
<set name="basicProperty" val="MEN" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill5861" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="-1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1034,6 +1041,7 @@
<set name="basicProperty" val="CON" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill4035" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="#magicLvl" />
@@ -1055,6 +1063,7 @@
<set name="effectPoint" val="-100" />
<set name="fanRange" val="0,0,150,90" />
<set name="icon" val="icon.skill4035" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="#magicLvl" />
@@ -1076,6 +1085,7 @@
<set name="basicProperty" val="CON" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill4035" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="#magicLvl" />
@@ -1096,6 +1106,7 @@
<set name="basicProperty" val="CON" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill4035" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="#magicLvl" />
@@ -1115,6 +1126,7 @@
<set name="basicProperty" val="CON" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill0096" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1135,6 +1147,7 @@
<set name="effectPoint" val="-100" />
<set name="fanRange" val="0,0,150,90" />
<set name="icon" val="icon.skill0096" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1154,6 +1167,7 @@
<set name="basicProperty" val="CON" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill0096" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="#magicLvl" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1170,6 +1184,7 @@
<set name="basicProperty" val="CON" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill5873" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="85" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1186,6 +1201,7 @@
<set name="effectPoint" val="-100" />
<set name="fanRange" val="0,0,150,90" />
<set name="icon" val="icon.skill5873" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="85" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1203,6 +1219,7 @@
<set name="basicProperty" val="CON" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill5873" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="85" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1218,6 +1235,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="1000" />
<set name="icon" val="icon.skill5876" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="85" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1296,6 +1314,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="1000" />
<set name="icon" val="icon.skill1160" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="85" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1312,6 +1331,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="1000" />
<set name="icon" val="icon.skill1160" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="85" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1479,6 +1499,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="1000" />
<set name="icon" val="icon.skill1337" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="85" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1527,6 +1548,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="1000" />
<set name="icon" val="icon.skill0100" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="76" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1545,6 +1567,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="1000" />
<set name="icon" val="icon.skill0402" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="83" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1672,6 +1695,7 @@
<set name="abnormalType" val="MA_UP" />
<set name="effectPoint" val="100" />
<set name="hitTime" val="#hitTime" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="84" />
<set name="operateType" val="ACTIVE_WITH_TRIGGER" />

View File

@@ -12,6 +12,7 @@
<set name="fanRange" val="0,0,150,90" />
<set name="hitTime" val="2000" />
<set name="icon" val="icon.skill1481" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="85" />
@@ -42,6 +43,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="#hitTime" />
<set name="icon" val="icon.skill1481" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="85" />
@@ -137,6 +139,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="2000" />
<set name="icon" val="icon.skill1064" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="83" />
@@ -164,6 +167,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="#hitTime" />
<set name="icon" val="icon.skill1201" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="85" />
@@ -187,6 +191,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="#hitTime" />
<set name="icon" val="icon.skill1201" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="85" />
@@ -242,6 +247,7 @@
<set name="basicProperty" val="MEN" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill1337" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="83" />
@@ -272,6 +278,7 @@
<set name="basicProperty" val="MEN" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill1337" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="83" />
@@ -429,6 +436,7 @@
<set name="effectRange" val="1100" />
<set name="hitTime" val="22700" />
<set name="icon" val="icon.skill1263" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="85" />
@@ -670,6 +678,7 @@
<set name="abnormalType" val="STUN" />
<set name="abnormalVisualEffect" val="STUN" />
<set name="magicLvl" val="85" />
<set name="isDebuff" val="true" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" />
<set name="targetType" val="NONE" />
@@ -714,6 +723,7 @@
<set name="abnormalType" val="MAX_HP_DOWN" />
<set name="effectPoint" val="100" />
<set name="icon" val="icon.skill0060" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="10" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -726,6 +736,7 @@
<set name="abnormalType" val="HEAL_EFFECT_DOWN" />
<set name="effectPoint" val="100" />
<set name="icon" val="icon.skill0052" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="10" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -738,6 +749,7 @@
<set name="abnormalType" val="MP_COST_UP" />
<set name="effectPoint" val="100" />
<set name="icon" val="icon.skill0103" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="10" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -750,6 +762,7 @@
<set name="abnormalType" val="HIT_DOWN" />
<set name="effectPoint" val="100" />
<set name="icon" val="icon.skill0107" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="10" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -761,6 +774,7 @@
<set name="abnormalTime" val="300" />
<set name="abnormalType" val="MAX_MP_UP" />
<set name="effectPoint" val="100" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="10" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -927,6 +941,7 @@
<set name="basicProperty" val="CON" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill4036" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="99" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -945,6 +960,7 @@
<set name="effectPoint" val="-357" />
<set name="hitTime" val="4000" />
<set name="icon" val="icon.skill0100" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="99" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1001,6 +1017,7 @@
<set name="basicProperty" val="MEN" />
<set name="effectPoint" val="-7121" />
<set name="icon" val="icon.skill0018" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="99" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1037,6 +1054,7 @@
<set name="effectPoint" val="#effectPoints" />
<set name="hitTime" val="1360" />
<set name="icon" val="icon.skill005969" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="64" />
<set name="nextActionAttack" val="true" />
@@ -1207,6 +1225,7 @@
<set name="abnormalTime" val="300" />
<set name="abnormalType" val="SPEED_DOWN" />
<set name="effectPoint" val="-100" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="51" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1282,6 +1301,7 @@
<set name="basicProperty" val="MEN" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill0122" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="85" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1420,6 +1440,7 @@
<set name="basicProperty" val="MEN" />
<set name="effectPoint" val="#effectPoints" />
<set name="icon" val="icon.skill0028" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="10" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1440,6 +1461,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="2000" />
<set name="icon" val="icon.skill1481" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="85" />

View File

@@ -215,6 +215,7 @@
<set name="abnormalType" val="PUBLIC_SLOT" />
<set name="effectPoint" val="-10" />
<set name="icon" val="icon.skill6024" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="2" /> <!-- Static Skill -->
<set name="magicLvl" val="14" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />

View File

@@ -351,6 +351,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="1000" />
<set name="icon" val="icon.skill0092" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="95" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -371,6 +372,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="6000" />
<set name="icon" val="icon.skill0092" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="95" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -388,6 +390,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="2000" />
<set name="icon" val="icon.skill1160" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="95" />
@@ -405,6 +408,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="1500" />
<set name="icon" val="icon.skill4038" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="95" />
@@ -421,6 +425,7 @@
<set name="activateRate" val="0" />
<set name="effectPoint" val="-1" />
<set name="icon" val="icon.skill2513" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="2" /> <!-- Static Skill -->
<set name="magicLvl" val="95" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -437,6 +442,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="1500" />
<set name="icon" val="icon.skill4038" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="95" />
@@ -456,6 +462,7 @@
<set name="effectPoint" val="-100" />
<set name="hitTime" val="6000" />
<set name="icon" val="icon.skill0092" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="95" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -523,6 +530,7 @@
<set name="abnormalLvl" val="#abnormalLvls" />
<set name="abnormalTime" val="3600" />
<set name="abnormalType" val="SPEED_DOWN" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="85" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -534,6 +542,7 @@
<set name="abnormalTime" val="-1" />
<set name="abnormalType" val="ATTACK_TIME_UP" />
<set name="basicProperty" val="MEN" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="85" />
@@ -609,6 +618,7 @@
<set name="abnormalLvl" val="3" />
<set name="abnormalTime" val="300" />
<set name="abnormalType" val="PD_DOWN" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="85" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -720,6 +730,7 @@
<set name="abnormalType" val="PD_DOWN" />
<set name="effectPoint" val="-100" />
<set name="icon" val="#icons" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="-1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" />
@@ -757,6 +768,7 @@
<set name="abnormalType" val="SIGNAL_A" />
<set name="effectPoint" val="-100" />
<set name="icon" val="#icons" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="-1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" />
@@ -797,6 +809,7 @@
<set name="abnormalVisualEffect" val="DOT_BLEEDING" />
<set name="effectPoint" val="-100" />
<set name="icon" val="#icons" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="-1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" />
@@ -813,6 +826,7 @@
<set name="basicProperty" val="MEN" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill4047" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="81" />
@@ -832,6 +846,7 @@
<set name="coolTime" val="800" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill0100" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="10" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -849,6 +864,7 @@
<set name="coolTime" val="800" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill0100" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="10" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />

View File

@@ -504,6 +504,7 @@
<set name="abnormalType" val="SIGNAL_D" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.etc_ashes_white_i00" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="-1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="reuseDelay" val="1000" />
@@ -625,6 +626,7 @@
<set name="basicProperty" val="MEN" />
<set name="effectPoint" val="-1111" />
<set name="icon" val="icon.etc_ashes_red_i00" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="-1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -780,6 +782,7 @@
<set name="coolTime" val="500" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill0100" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="77" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -816,6 +819,7 @@
<set name="coolTime" val="500" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill0100" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="84" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -847,6 +851,7 @@
<set name="basicProperty" val="CON" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill4036" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="-1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />

View File

@@ -1163,6 +1163,7 @@
<set name="abnormalType" val="DAMAGE_AMPLIFY" />
<set name="basicProperty" val="CON" />
<set name="effectPoint" val="-1" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="85" />
@@ -1202,6 +1203,7 @@
<set name="abnormalType" val="DAMAGE_AMPLIFY" />
<set name="basicProperty" val="CON" />
<set name="effectPoint" val="-1" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="85" />
@@ -1261,6 +1263,7 @@
<set name="activateRate" val="50" />
<set name="effectPoint" val="-1000" />
<set name="icon" val="icon.skill0347" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="85" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1279,6 +1282,7 @@
<set name="effectPoint" val="-574" />
<set name="fanRange" val="0,0,150,120" />
<set name="icon" val="icon.skill0096" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="85" />
<set name="nextActionAttack" val="true" />
@@ -1484,7 +1488,6 @@
<set name="elementPower" val="20" />
<set name="hitTime" val="2000" />
<set name="ignoreShld" val="true" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="85" />
<set name="mpConsume" val="121" />
<set name="operateType" val="ACTIVE_INSTANT" />

View File

@@ -135,7 +135,6 @@
<set name="effectPoint" val="1000" />
<set name="hitTime" val="2000" />
<set name="icon" val="icon.skill1336" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="85" />
@@ -842,6 +841,7 @@
<set name="basicProperty" val="CON" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill4036" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="84" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -857,6 +857,7 @@
<set name="basicProperty" val="CON" />
<set name="effectPoint" val="1" />
<set name="icon" val="icon.skill6439" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="84" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -887,6 +888,7 @@
<set name="basicProperty" val="CON" />
<set name="effectPoint" val="1" />
<set name="icon" val="icon.skill6440" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="84" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -917,6 +919,7 @@
<set name="basicProperty" val="CON" />
<set name="effectPoint" val="1" />
<set name="icon" val="icon.skill6441" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="84" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />

View File

@@ -320,6 +320,7 @@
<set name="activateRate" val="98" />
<set name="basicProperty" val="CON" />
<set name="icon" val="icon.skill0100" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="84" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -776,6 +777,7 @@
<set name="abnormalType" val="SILENCE_ALL" />
<set name="abnormalVisualEffect" val="FLESH_STONE" />
<set name="icon" val="icon.skill4111" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="-1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" />
@@ -787,6 +789,7 @@
<set name="abnormalType" val="SILENCE_ALL" />
<set name="abnormalVisualEffect" val="FLESH_STONE" />
<set name="icon" val="icon.skill4111" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="-1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" />
@@ -1136,6 +1139,7 @@
<set name="basicProperty" val="MEN" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill4047" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="95" />
@@ -1377,6 +1381,7 @@
<set name="coolTime" val="2000" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill1201" />
<set name="isDebuff" val="true" />
<set name="magicLvl" val="83" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" />

View File

@@ -100,6 +100,7 @@
<set name="effectPoint" val="655" />
<set name="effectRange" val="900" />
<set name="hitTime" val="2500" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="mpConsume" val="272" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -952,8 +953,10 @@
<set name="rideState" val="NONE;STRIDER;WYVERN;WOLF" />
<set name="targetType" val="ONE" />
<for>
<effect name="Buff">
<mul stat="maxHp" val="1.2" />
<effect name="MaxHp">
<param power="20" />
<param type="PER" />
<param heal="true" />
<add stat="mCritRate" val="2" />
<mul stat="cAtk" val="1.2" />
<mul stat="pAtk" val="1.1" />
@@ -966,9 +969,6 @@
<add stat="accCombat" val="4" />
<mul stat="runSpd" val="0.8" />
</effect>
<effect name="HealPercent">
<param power="20" />
</effect>
</for>
</skill>
<skill id="7065" levels="1" name="Test - Charge">
@@ -992,6 +992,7 @@
<set name="basicProperty" val="CON" />
<set name="coolTime" val="200" />
<set name="hitTime" val="800" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="75" />
<set name="nextActionAttack" val="true" />
@@ -1012,6 +1013,7 @@
<set name="basicProperty" val="CON" />
<set name="coolTime" val="200" />
<set name="hitTime" val="800" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="75" />
<set name="nextActionAttack" val="true" />
@@ -1116,6 +1118,7 @@
<set name="hitTime" val="1080" />
<set name="lvlBonusRate" val="2" />
<set name="magicLvl" val="70" />
<set name="isDebuff" val="true" />
<set name="nextActionAttack" val="true" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" />
@@ -1128,6 +1131,7 @@
<set name="abnormalType" val="STUN" />
<set name="abnormalVisualEffect" val="STUN" />
<set name="magicLvl" val="70" />
<set name="isDebuff" val="true" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" />
<set name="targetType" val="NONE" />
@@ -1183,6 +1187,7 @@
<set name="effectPoint" val="-1" />
<set name="hitTime" val="2500" />
<set name="magicLvl" val="70" />
<set name="isDebuff" val="true" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="rideState" val="NONE" />
<set name="targetType" val="NONE" />

View File

@@ -1005,6 +1005,7 @@
<set name="effectPoint" val="-1300" />
<set name="hitTime" val="2500" />
<set name="icon" val="icon.weapon_long_spear_i00" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="73" />
<set name="mpConsume" val="149" />
@@ -1569,6 +1570,7 @@
<set name="fanRange" val="0,0,150,90" />
<set name="hitTime" val="100" />
<set name="icon" val="icon.skill0092" />
<set name="isDebuff" val="true" />
<set name="lvlBonusRate" val="1" />
<set name="magicLvl" val="85" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />

View File

@@ -85,15 +85,15 @@
<set name="rideState" val="NONE" />
<set name="targetType" val="SELF" />
<for>
<effect name="Buff">
<mul stat="maxHp" val="1.15" />
<mul stat="maxCp" val="1.15" />
</effect>
<effect name="CpHealPercent">
<effect name="MaxHp">
<param power="15" />
<param type="PER" />
<param heal="true" />
</effect>
<effect name="HealPercent">
<param power="15" />
<effect name="MaxCp">
<param power="20" />
<param type="PER" />
<param heal="true" />
</effect>
</for>
</skill>

View File

@@ -1289,6 +1289,7 @@
<set name="blockedInOlympiad" val="true" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill0211" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="2" /> <!-- Static Skill -->
<set name="magicLvl" val="-1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -1303,6 +1304,7 @@
<set name="blockedInOlympiad" val="true" />
<set name="effectPoint" val="-100" />
<set name="icon" val="icon.skill0213" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="2" /> <!-- Static Skill -->
<set name="magicLvl" val="-1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />

View File

@@ -245,6 +245,7 @@
<set name="coolTime" val="200" />
<set name="effectPoint" val="-1" />
<set name="icon" val="icon.skill_agathion_special" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="2" /> <!-- Static Skill -->
<set name="magicLvl" val="-1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -868,6 +869,7 @@
<set name="abnormalType" val="BR_EVENT_BUF6" />
<set name="effectPoint" val="1" />
<set name="icon" val="BranchSys2.icon.br_rosalia_rose_blue_i00" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="-1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
@@ -882,6 +884,7 @@
<set name="abnormalType" val="BR_EVENT_BUF7" />
<set name="effectPoint" val="1" />
<set name="icon" val="BranchSys2.icon.br_rosalia_rose_white_i00" />
<set name="isDebuff" val="true" />
<set name="isMagic" val="1" /> <!-- Magic Skill -->
<set name="magicLvl" val="-1" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />

View File

@@ -1198,8 +1198,10 @@
<set name="rideState" val="NONE" />
<set name="targetType" val="AURA" />
<for>
<effect name="Buff">
<mul stat="maxHp" val="1.2" />
<effect name="MaxHp">
<param power="20" />
<param type="PER" />
<param heal="true" />
<add stat="mCritRate" val="2" />
<mul stat="cAtk" val="1.2" />
<mul stat="pAtk" val="1.1" />
@@ -1212,9 +1214,6 @@
<add stat="accCombat" val="4" />
<mul stat="runSpd" val="0.8" />
</effect>
<effect name="HealPercent">
<param power="20" />
</effect>
</for>
</skill>
<skill id="23277" levels="1" name="Master's Blessing - Improve Combat">

View File

@@ -151,12 +151,20 @@
<xs:attribute type="xs:byte" name="addName" use="optional" />
<xs:attribute type="xs:string" name="msg" use="optional" />
</xs:complexType>
<xs:simpleType name="operation">
<xs:restriction base="xs:string">
<xs:enumeration value="DIFF" />
<xs:enumeration value="PER" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="paramType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="side" use="optional" />
<xs:attribute type="xs:string" name="chance" use="optional" />
<xs:attribute type="xs:string" name="power" use="optional" />
<xs:attribute type="operation" name="type" use="optional" />
<xs:attribute type="xs:boolean" name="heal" use="optional" />
<xs:attribute type="xs:string" name="index" use="optional" />
<xs:attribute type="xs:byte" name="criticalChance" use="optional" />
<xs:attribute type="xs:string" name="charge" use="optional" />

View File

@@ -131,9 +131,6 @@ public abstract class AbstractAI implements Ctrl
/** The character that this AI manages */
protected final L2Character _actor;
/** An accessor for private methods of the actor */
protected final L2Character.AIAccessor _accessor;
/** Current long-term intention */
protected CtrlIntention _intention = AI_INTENTION_IDLE;
/** Current long-term intention parameter */
@@ -166,14 +163,11 @@ public abstract class AbstractAI implements Ctrl
/**
* Constructor of AbstractAI.
* @param accessor The AI accessor of the L2Character
* @param creature the creature
*/
protected AbstractAI(L2Character.AIAccessor accessor)
protected AbstractAI(L2Character creature)
{
_accessor = accessor;
// Get the L2Character managed by this Accessor AI
_actor = accessor.getActor();
_actor = creature;
}
/**
@@ -542,13 +536,13 @@ public abstract class AbstractAI implements Ctrl
_moveToPawnTimeout = GameTimeController.getInstance().getGameTicks();
_moveToPawnTimeout += 1000 / GameTimeController.MILLIS_IN_TICK;
if ((pawn == null) || (_accessor == null))
if (pawn == null)
{
return;
}
// Calculate movement data for a move to location action and add the actor to movingObjects of GameTimeController
_accessor.moveTo(pawn.getX(), pawn.getY(), pawn.getZ(), offset);
_actor.moveToLocation(pawn.getX(), pawn.getY(), pawn.getZ(), offset);
if (!_actor.isMoving())
{
@@ -597,7 +591,7 @@ public abstract class AbstractAI implements Ctrl
_clientMovingToPawnOffset = 0;
// Calculate movement data for a move to location action and add the actor to movingObjects of GameTimeController
_accessor.moveTo(x, y, z);
_actor.moveToLocation(x, y, z, 0);
// Send a Server->Client packet CharMoveToLocation to the actor and all L2PcInstance in its _knownPlayers
_actor.broadcastPacket(new MoveToLocation(_actor));
@@ -619,7 +613,7 @@ public abstract class AbstractAI implements Ctrl
// Stop movement of the L2Character
if (_actor.isMoving())
{
_accessor.stopMove(loc);
_actor.stopMove(loc);
}
_clientMovingToPawnOffset = 0;

View File

@@ -29,9 +29,9 @@ import com.l2jserver.gameserver.network.serverpackets.ExStopMoveAirShip;
*/
public class L2AirShipAI extends L2VehicleAI
{
public L2AirShipAI(L2AirShipInstance.AIAccessor accessor)
public L2AirShipAI(L2AirShipInstance creature)
{
super(accessor);
super(creature);
}
@Override
@@ -40,7 +40,7 @@ public class L2AirShipAI extends L2VehicleAI
if (!_actor.isMovementDisabled())
{
_clientMoving = true;
_accessor.moveTo(x, y, z);
_actor.moveToLocation(x, y, z, 0);
_actor.broadcastPacket(new ExMoveToLocationAirShip(getActor()));
}
}
@@ -50,7 +50,7 @@ public class L2AirShipAI extends L2VehicleAI
{
if (_actor.isMoving())
{
_accessor.stopMove(loc);
_actor.stopMove(loc);
}
if (_clientMoving || (loc != null))

View File

@@ -94,11 +94,11 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
/**
* Constructor of L2AttackableAI.
* @param accessor The AI accessor of the L2Character
* @param creature the creature
*/
public L2AttackableAI(L2Character.AIAccessor accessor)
public L2AttackableAI(L2Attackable creature)
{
super(accessor);
super(creature);
_skillrender = NpcData.getInstance().getTemplate(getActiveChar().getTemplate().getId());
_attackTimeout = Integer.MAX_VALUE;
_globalAggro = -10; // 10 seconds timeout of ATTACK after respawn
@@ -352,7 +352,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
}
// Cancel the AI
_accessor.detachAI();
_actor.detachAI();
return;
}
@@ -405,7 +405,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
}
clientStopMoving(null);
setIntention(AI_INTENTION_ACTIVE);
_accessor.doCast(_skill);
_actor.doCast(_skill);
}
/**
@@ -1280,7 +1280,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
}
}
_accessor.doAttack(getAttackTarget());
_actor.doAttack(getAttackTarget());
}
private boolean cast(Skill sk)

View File

@@ -30,9 +30,9 @@ import com.l2jserver.gameserver.network.serverpackets.VehicleStarted;
*/
public class L2BoatAI extends L2VehicleAI
{
public L2BoatAI(L2BoatInstance.AIAccessor accessor)
public L2BoatAI(L2BoatInstance creature)
{
super(accessor);
super(creature);
}
@Override
@@ -46,7 +46,7 @@ public class L2BoatAI extends L2VehicleAI
}
_clientMoving = true;
_accessor.moveTo(x, y, z);
_actor.moveToLocation(x, y, z, 0);
_actor.broadcastPacket(new VehicleDeparture(getActor()));
}
}
@@ -56,7 +56,7 @@ public class L2BoatAI extends L2VehicleAI
{
if (_actor.isMoving())
{
_accessor.stopMove(loc);
_actor.stopMove(loc);
}
if (_clientMoving || (loc != null))

View File

@@ -120,11 +120,11 @@ public class L2CharacterAI extends AbstractAI
/**
* Constructor of L2CharacterAI.
* @param accessor The AI accessor of the L2Character
* @param creature the creature
*/
public L2CharacterAI(L2Character.AIAccessor accessor)
public L2CharacterAI(L2Character creature)
{
super(accessor);
super(creature);
}
public IntentionCommand getNextIntention()
@@ -727,16 +727,16 @@ public class L2CharacterAI extends AbstractAI
@Override
protected void onEvtArrived()
{
_accessor.getActor().revalidateZone(true);
_actor.revalidateZone(true);
if (_accessor.getActor().moveToNextRoutePoint())
if (_actor.moveToNextRoutePoint())
{
return;
}
if (_accessor.getActor() instanceof L2Attackable)
if (_actor instanceof L2Attackable)
{
((L2Attackable) _accessor.getActor()).setisReturningToSpawnPoint(false);
((L2Attackable) _actor).setisReturningToSpawnPoint(false);
}
clientStoppedMoving();

View File

@@ -30,7 +30,6 @@ import com.l2jserver.gameserver.model.MobGroup;
import com.l2jserver.gameserver.model.MobGroupTable;
import com.l2jserver.gameserver.model.actor.L2Attackable;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Character.AIAccessor;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.L2Playable;
import com.l2jserver.gameserver.model.actor.instance.L2ControllableMobInstance;
@@ -62,6 +61,12 @@ public final class L2ControllableMobAI extends L2AttackableAI
private L2Character _forcedTarget;
private MobGroup _targetGroup;
public L2ControllableMobAI(L2ControllableMobInstance creature)
{
super(creature);
setAlternateAI(AI_IDLE);
}
protected void thinkFollow()
{
L2Attackable me = (L2Attackable) _actor;
@@ -153,7 +158,7 @@ public final class L2ControllableMobAI extends L2AttackableAI
{
if (Util.checkIfInRange(sk.getCastRange(), _actor, getAttackTarget(), true) && !_actor.isSkillDisabled(sk) && (_actor.getCurrentMp() > _actor.getStat().getMpConsume(sk)))
{
_accessor.doCast(sk);
_actor.doCast(sk);
return;
}
@@ -203,7 +208,7 @@ public final class L2ControllableMobAI extends L2AttackableAI
if (((castRange * castRange) >= dist2) && !_actor.isSkillDisabled(sk) && (_actor.getCurrentMp() > _actor.getStat().getMpConsume(sk)))
{
_accessor.doCast(sk);
_actor.doCast(sk);
return;
}
@@ -217,7 +222,7 @@ public final class L2ControllableMobAI extends L2AttackableAI
return;
}
_accessor.doAttack(target);
_actor.doAttack(target);
}
protected void thinkForceAttack()
@@ -243,7 +248,7 @@ public final class L2ControllableMobAI extends L2AttackableAI
if (((castRange * castRange) >= dist2) && !_actor.isSkillDisabled(sk) && (_actor.getCurrentMp() > _actor.getStat().getMpConsume(sk)))
{
_accessor.doCast(sk);
_actor.doCast(sk);
return;
}
@@ -258,7 +263,7 @@ public final class L2ControllableMobAI extends L2AttackableAI
return;
}
_accessor.doAttack(getForcedTarget());
_actor.doAttack(getForcedTarget());
}
@Override
@@ -316,7 +321,7 @@ public final class L2ControllableMobAI extends L2AttackableAI
if (((castRange * castRange) >= dist2) && !_actor.isSkillDisabled(sk) && (_actor.getCurrentMp() > _actor.getStat().getMpConsume(sk)))
{
_accessor.doCast(sk);
_actor.doCast(sk);
return;
}
@@ -358,13 +363,13 @@ public final class L2ControllableMobAI extends L2AttackableAI
if (((castRange * castRange) >= dist2) && !_actor.isSkillDisabled(sk) && (_actor.getCurrentMp() < _actor.getStat().getMpConsume(sk)))
{
_accessor.doCast(sk);
_actor.doCast(sk);
return;
}
}
}
_accessor.doAttack(getAttackTarget());
_actor.doAttack(getAttackTarget());
}
}
@@ -494,12 +499,6 @@ public final class L2ControllableMobAI extends L2AttackableAI
return getGroupTarget().getRandomMob();
}
public L2ControllableMobAI(AIAccessor accessor)
{
super(accessor);
setAlternateAI(AI_IDLE);
}
public int getAlternateAI()
{
return _alternateAI;

View File

@@ -31,12 +31,11 @@ import com.l2jserver.gameserver.model.skills.Skill;
*/
public class L2DoorAI extends L2CharacterAI
{
public L2DoorAI(L2DoorInstance.AIAccessor accessor)
public L2DoorAI(L2DoorInstance creature)
{
super(accessor);
super(creature);
}
// rather stupid AI... well, it's for doors :D
@Override
protected void onIntentionIdle()
{
@@ -90,8 +89,7 @@ public class L2DoorAI extends L2CharacterAI
@Override
protected void onEvtAttacked(L2Character attacker)
{
L2DoorInstance me = (L2DoorInstance) _actor;
ThreadPoolManager.getInstance().executeGeneral(new onEventAttackedDoorTask(me, attacker));
ThreadPoolManager.getInstance().executeGeneral(new onEventAttackedDoorTask((L2DoorInstance) _actor, attacker));
}
@Override

View File

@@ -71,11 +71,11 @@ public class L2FortSiegeGuardAI extends L2CharacterAI implements Runnable
/**
* Constructor of L2AttackableAI.
* @param accessor The AI accessor of the L2Character
* @param creature the creature
*/
public L2FortSiegeGuardAI(L2Character.AIAccessor accessor)
public L2FortSiegeGuardAI(L2DefenderInstance creature)
{
super(accessor);
super(creature);
_selfAnalysis.init();
_attackTimeout = Integer.MAX_VALUE;
_globalAggro = -10; // 10 seconds timeout of ATTACK after respawn
@@ -227,7 +227,7 @@ public class L2FortSiegeGuardAI extends L2CharacterAI implements Runnable
}
// Cancel the AI
_accessor.detachAI();
_actor.detachAI();
return;
}
@@ -470,7 +470,7 @@ public class L2FortSiegeGuardAI extends L2CharacterAI implements Runnable
L2Object OldTarget = _actor.getTarget();
_actor.setTarget(cha);
clientStopMoving(null);
_accessor.doCast(sk);
_actor.doCast(sk);
_actor.setTarget(OldTarget);
return;
}
@@ -529,7 +529,7 @@ public class L2FortSiegeGuardAI extends L2CharacterAI implements Runnable
L2Object OldTarget = _actor.getTarget();
_actor.setTarget(npc);
clientStopMoving(null);
_accessor.doCast(sk);
_actor.doCast(sk);
_actor.setTarget(OldTarget);
return;
}
@@ -627,7 +627,7 @@ public class L2FortSiegeGuardAI extends L2CharacterAI implements Runnable
}
clientStopMoving(null);
_accessor.doCast(sk);
_actor.doCast(sk);
_actor.setTarget(OldTarget);
return;
}
@@ -772,14 +772,14 @@ public class L2FortSiegeGuardAI extends L2CharacterAI implements Runnable
}
clientStopMoving(null);
_accessor.doCast(sk);
_actor.doCast(sk);
_actor.setTarget(OldTarget);
return;
}
}
}
// Finally, do the physical attack itself
_accessor.doAttack(attackTarget);
_actor.doAttack(attackTarget);
}
}
@@ -963,7 +963,7 @@ public class L2FortSiegeGuardAI extends L2CharacterAI implements Runnable
_aiTask.cancel(false);
_aiTask = null;
}
_accessor.detachAI();
_actor.detachAI();
super.stopAITask();
}
}

View File

@@ -20,7 +20,6 @@ package com.l2jserver.gameserver.ai;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Character.AIAccessor;
import com.l2jserver.gameserver.model.actor.L2Playable;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.gameserver.model.zone.ZoneId;
@@ -34,11 +33,11 @@ import com.l2jserver.gameserver.network.SystemMessageId;
public abstract class L2PlayableAI extends L2CharacterAI
{
/**
* @param accessor
* @param creature the creature
*/
public L2PlayableAI(AIAccessor accessor)
public L2PlayableAI(L2Playable creature)
{
super(accessor);
super(creature);
}
@Override

View File

@@ -29,7 +29,6 @@ import static com.l2jserver.gameserver.ai.CtrlIntention.AI_INTENTION_REST;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Character.AIAccessor;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.actor.instance.L2StaticObjectInstance;
import com.l2jserver.gameserver.model.skills.Skill;
@@ -39,11 +38,11 @@ public class L2PlayerAI extends L2PlayableAI
{
private boolean _thinking; // to prevent recursive thinking
IntentionCommand _nextIntention = null;
private IntentionCommand _nextIntention = null;
public L2PlayerAI(AIAccessor accessor)
public L2PlayerAI(L2PcInstance creature)
{
super(accessor);
super(creature);
}
void saveNextIntention(CtrlIntention intention, Object arg0, Object arg1)
@@ -240,7 +239,7 @@ public class L2PlayerAI extends L2PlayableAI
return;
}
_accessor.doAttack(target);
_actor.doAttack(target);
}
private void thinkCast()
@@ -278,7 +277,7 @@ public class L2PlayerAI extends L2PlayableAI
clientStopMoving(null);
}
_accessor.doCast(_skill);
_actor.doCast(_skill);
}
private void thinkPickUp()
@@ -297,7 +296,7 @@ public class L2PlayerAI extends L2PlayableAI
return;
}
setIntention(AI_INTENTION_IDLE);
((L2PcInstance.AIAccessor) _accessor).doPickupItem(target);
_actor.getActingPlayer().doPickupItem(target);
}
private void thinkInteract()
@@ -317,7 +316,7 @@ public class L2PlayerAI extends L2PlayableAI
}
if (!(target instanceof L2StaticObjectInstance))
{
((L2PcInstance.AIAccessor) _accessor).doInteract((L2Character) target);
_actor.getActingPlayer().doInteract((L2Character) target);
}
setIntention(AI_INTENTION_IDLE);
}

View File

@@ -18,7 +18,6 @@
*/
package com.l2jserver.gameserver.ai;
import com.l2jserver.gameserver.model.actor.instance.L2AirShipInstance;
import com.l2jserver.gameserver.model.actor.instance.L2ShuttleInstance;
import com.l2jserver.gameserver.network.serverpackets.shuttle.ExShuttleMove;
@@ -27,9 +26,9 @@ import com.l2jserver.gameserver.network.serverpackets.shuttle.ExShuttleMove;
*/
public class L2ShuttleAI extends L2VehicleAI
{
public L2ShuttleAI(L2AirShipInstance.AIAccessor accessor)
public L2ShuttleAI(L2ShuttleInstance l2ShuttleInstance)
{
super(accessor);
super(l2ShuttleInstance);
}
@Override
@@ -38,7 +37,7 @@ public class L2ShuttleAI extends L2VehicleAI
if (!_actor.isMovementDisabled())
{
_clientMoving = true;
_accessor.moveTo(x, y, z);
_actor.moveToLocation(x, y, z, 0);
_actor.broadcastPacket(new ExShuttleMove(getActor(), x, y, z));
}
}

View File

@@ -71,11 +71,11 @@ public class L2SiegeGuardAI extends L2CharacterAI implements Runnable
/**
* Constructor of L2AttackableAI.
* @param accessor The AI accessor of the L2Character
* @param creature the creature
*/
public L2SiegeGuardAI(L2Character.AIAccessor accessor)
public L2SiegeGuardAI(L2DefenderInstance creature)
{
super(accessor);
super(creature);
_selfAnalysis.init();
_attackTimeout = Integer.MAX_VALUE;
_globalAggro = -10; // 10 seconds timeout of ATTACK after respawn
@@ -216,7 +216,7 @@ public class L2SiegeGuardAI extends L2CharacterAI implements Runnable
}
// Cancel the AI
_accessor.detachAI();
_actor.detachAI();
return;
}
@@ -449,7 +449,7 @@ public class L2SiegeGuardAI extends L2CharacterAI implements Runnable
L2Object OldTarget = _actor.getTarget();
_actor.setTarget(cha);
clientStopMoving(null);
_accessor.doCast(sk);
_actor.doCast(sk);
_actor.setTarget(OldTarget);
return;
}
@@ -508,7 +508,7 @@ public class L2SiegeGuardAI extends L2CharacterAI implements Runnable
L2Object OldTarget = _actor.getTarget();
_actor.setTarget(npc);
clientStopMoving(null);
_accessor.doCast(sk);
_actor.doCast(sk);
_actor.setTarget(OldTarget);
return;
}
@@ -600,7 +600,7 @@ public class L2SiegeGuardAI extends L2CharacterAI implements Runnable
}
clientStopMoving(null);
_accessor.doCast(sk);
_actor.doCast(sk);
_actor.setTarget(OldTarget);
return;
}
@@ -741,7 +741,7 @@ public class L2SiegeGuardAI extends L2CharacterAI implements Runnable
}
clientStopMoving(null);
_accessor.doCast(sk);
_actor.doCast(sk);
_actor.setTarget(OldTarget);
return;
}
@@ -750,7 +750,7 @@ public class L2SiegeGuardAI extends L2CharacterAI implements Runnable
// Finally, do the physical attack itself
if (!_selfAnalysis.isHealer)
{
_accessor.doAttack(attackTarget);
_actor.doAttack(attackTarget);
}
}
}
@@ -927,7 +927,7 @@ public class L2SiegeGuardAI extends L2CharacterAI implements Runnable
_aiTask.cancel(false);
_aiTask = null;
}
_accessor.detachAI();
_actor.detachAI();
super.stopAITask();
}
}

View File

@@ -19,27 +19,27 @@
package com.l2jserver.gameserver.ai;
import java.util.ArrayList;
import java.util.List;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Character.AIAccessor;
import com.l2jserver.gameserver.model.actor.instance.L2DefenderInstance;
/**
* @author BiggBoss
*/
public final class L2SpecialSiegeGuardAI extends L2SiegeGuardAI
{
private final ArrayList<Integer> _allied;
private final List<Integer> _allied = new ArrayList<>();
/**
* @param accessor
* @param creature
*/
public L2SpecialSiegeGuardAI(AIAccessor accessor)
public L2SpecialSiegeGuardAI(L2DefenderInstance creature)
{
super(accessor);
_allied = new ArrayList<>();
super(creature);
}
public ArrayList<Integer> getAlly()
public List<Integer> getAlly()
{
return _allied;
}

View File

@@ -28,7 +28,6 @@ import com.l2jserver.gameserver.GeoData;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Character.AIAccessor;
import com.l2jserver.gameserver.model.actor.L2Summon;
import com.l2jserver.gameserver.model.skills.Skill;
import com.l2jserver.util.Rnd;
@@ -44,9 +43,9 @@ public class L2SummonAI extends L2PlayableAI implements Runnable
private volatile boolean _startAvoid = false;
private Future<?> _avoidTask = null;
public L2SummonAI(AIAccessor accessor)
public L2SummonAI(L2Summon creature)
{
super(accessor);
super(creature);
}
@Override
@@ -99,7 +98,7 @@ public class L2SummonAI extends L2PlayableAI implements Runnable
return;
}
clientStopMoving(null);
_accessor.doAttack(getAttackTarget());
_actor.doAttack(getAttackTarget());
}
private void thinkCast()
@@ -119,7 +118,7 @@ public class L2SummonAI extends L2PlayableAI implements Runnable
summon.setFollowStatus(false);
setIntention(AI_INTENTION_IDLE);
_startFollow = val;
_accessor.doCast(_skill);
_actor.doCast(_skill);
}
private void thinkPickUp()
@@ -133,7 +132,7 @@ public class L2SummonAI extends L2PlayableAI implements Runnable
return;
}
setIntention(AI_INTENTION_IDLE);
((L2Summon.AIAccessor) _accessor).doPickupItem(getTarget());
((L2Summon) _actor).doPickupItem(getTarget());
}
private void thinkInteract()

View File

@@ -30,11 +30,11 @@ public abstract class L2VehicleAI extends L2CharacterAI
{
/**
* Simple AI for vehicles
* @param accessor
* @param creature
*/
public L2VehicleAI(L2Vehicle.AIAccessor accessor)
public L2VehicleAI(L2Vehicle creature)
{
super(accessor);
super(creature);
}
@Override

View File

@@ -19,6 +19,7 @@
package com.l2jserver.gameserver.ai;
import java.util.ArrayList;
import java.util.List;
/**
* Class for AI action after some event.<br>
@@ -32,8 +33,8 @@ public class NextAction
public void doWork();
}
private ArrayList<CtrlEvent> _events;
private ArrayList<CtrlIntention> _intentions;
private List<CtrlEvent> _events;
private List<CtrlIntention> _intentions;
private NextActionCallback _callback;
/**
@@ -42,7 +43,7 @@ public class NextAction
* @param intentions
* @param callback
*/
public NextAction(ArrayList<CtrlEvent> events, ArrayList<CtrlIntention> intentions, NextActionCallback callback)
public NextAction(List<CtrlEvent> events, List<CtrlIntention> intentions, NextActionCallback callback)
{
_events = events;
_intentions = intentions;
@@ -93,7 +94,7 @@ public class NextAction
/**
* @return the _event
*/
public ArrayList<CtrlEvent> getEvents()
public List<CtrlEvent> getEvents()
{
// If null return empty list.
if (_events == null)
@@ -158,7 +159,7 @@ public class NextAction
/**
* @return the _intentions
*/
public ArrayList<CtrlIntention> getIntentions()
public List<CtrlIntention> getIntentions()
{
// If null return empty list.
if (_intentions == null)

View File

@@ -72,8 +72,6 @@ public final class AdminData implements IXmlReader
NamedNodeMap attrs;
Node attr;
StatsSet set;
L2AccessLevel level;
L2AdminCommandAccessRight command;
for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling())
{
if ("list".equalsIgnoreCase(n.getNodeName()))
@@ -89,7 +87,7 @@ public final class AdminData implements IXmlReader
attr = attrs.item(i);
set.set(attr.getNodeName(), attr.getNodeValue());
}
level = new L2AccessLevel(set);
final L2AccessLevel level = new L2AccessLevel(set);
if (level.getLevel() > _highestLevel)
{
_highestLevel = level.getLevel();
@@ -105,7 +103,7 @@ public final class AdminData implements IXmlReader
attr = attrs.item(i);
set.set(attr.getNodeName(), attr.getNodeValue());
}
command = new L2AdminCommandAccessRight(set);
final L2AdminCommandAccessRight command = new L2AdminCommandAccessRight(set);
_adminCommandAccessRights.put(command.getAdminCommand(), command);
}
}

View File

@@ -74,9 +74,6 @@ public class AppearanceItemData implements IXmlReader
@Override
public void parseDocument(Document doc)
{
StatsSet set;
Node att;
NamedNodeMap attrs;
for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling())
{
if ("list".equalsIgnoreCase(n.getNodeName()))
@@ -85,11 +82,11 @@ public class AppearanceItemData implements IXmlReader
{
if ("appearance_stone".equalsIgnoreCase(d.getNodeName()))
{
attrs = d.getAttributes();
set = new StatsSet();
final NamedNodeMap attrs = d.getAttributes();
final StatsSet set = new StatsSet();
for (int i = 0; i < attrs.getLength(); i++)
{
att = attrs.item(i);
final Node att = attrs.item(i);
set.set(att.getNodeName(), att.getNodeValue());
}

View File

@@ -57,8 +57,6 @@ public final class ArmorSetsData implements IXmlReader
@Override
public void parseDocument(Document doc)
{
NamedNodeMap attrs;
L2ArmorSet set;
for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling())
{
if ("list".equalsIgnoreCase(n.getNodeName()))
@@ -67,13 +65,13 @@ public final class ArmorSetsData implements IXmlReader
{
if ("set".equalsIgnoreCase(d.getNodeName()))
{
set = new L2ArmorSet();
final L2ArmorSet set = new L2ArmorSet();
set.setIsVisual(parseBoolean(d.getAttributes(), "visual", false));
set.setMinimumPieces(parseInteger(d.getAttributes(), "minimumPieces"));
for (Node a = d.getFirstChild(); a != null; a = a.getNextSibling())
{
attrs = a.getAttributes();
final NamedNodeMap attrs = a.getAttributes();
switch (a.getNodeName())
{
case "chest":

View File

@@ -56,26 +56,21 @@ public final class ClassListData implements IXmlReader
@Override
public void parseDocument(Document doc)
{
NamedNodeMap attrs;
Node attr;
ClassId classId;
String className;
ClassId parentClassId;
for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling())
{
if ("list".equals(n.getNodeName()))
{
for (Node d = n.getFirstChild(); d != null; d = d.getNextSibling())
{
attrs = d.getAttributes();
final NamedNodeMap attrs = d.getAttributes();
if ("class".equals(d.getNodeName()))
{
attr = attrs.getNamedItem("classId");
classId = ClassId.getClassId(parseInteger(attr));
Node attr = attrs.getNamedItem("classId");
final ClassId classId = ClassId.getClassId(parseInteger(attr));
attr = attrs.getNamedItem("name");
className = attr.getNodeValue();
final String className = attr.getNodeValue();
attr = attrs.getNamedItem("parentClassId");
parentClassId = (attr != null) ? ClassId.getClassId(parseInteger(attr)) : null;
final ClassId parentClassId = (attr != null) ? ClassId.getClassId(parseInteger(attr)) : null;
_classData.put(classId, new ClassInfo(classId, className, parentClassId));
}
}
@@ -85,7 +80,7 @@ public final class ClassListData implements IXmlReader
/**
* Gets the class list.
* @return the complete class list.
* @return the complete class list
*/
public Map<ClassId, ClassInfo> getClassList()
{
@@ -94,8 +89,8 @@ public final class ClassListData implements IXmlReader
/**
* Gets the class info.
* @param classId the class Id.
* @return the class info related to the given {@code classId}.
* @param classId the class ID
* @return the class info related to the given {@code classId}
*/
public ClassInfo getClass(ClassId classId)
{
@@ -104,8 +99,8 @@ public final class ClassListData implements IXmlReader
/**
* Gets the class info.
* @param classId the class Id as integer.
* @return the class info related to the given {@code classId}.
* @param classId the class Id as integer
* @return the class info related to the given {@code classId}
*/
public ClassInfo getClass(int classId)
{

View File

@@ -66,9 +66,6 @@ public class DoorData implements IXmlReader
@Override
public void parseDocument(Document doc)
{
NamedNodeMap attrs;
Node att;
StatsSet set;
for (Node a = doc.getFirstChild(); a != null; a = a.getNextSibling())
{
if ("list".equalsIgnoreCase(a.getNodeName()))
@@ -77,12 +74,12 @@ public class DoorData implements IXmlReader
{
if ("door".equalsIgnoreCase(b.getNodeName()))
{
attrs = b.getAttributes();
set = new StatsSet();
final NamedNodeMap attrs = b.getAttributes();
final StatsSet set = new StatsSet();
set.set("baseHpMax", 1); // Avoid doors without HP value created dead due to default value 0 in L2CharTemplate
for (int i = 0; i < attrs.getLength(); i++)
{
att = attrs.item(i);
final Node att = attrs.item(i);
set.set(att.getNodeName(), att.getNodeValue());
}
makeDoor(set);

View File

@@ -69,7 +69,7 @@ public final class EnchantItemGroupsData implements IXmlReader
{
if ("enchantRateGroup".equalsIgnoreCase(d.getNodeName()))
{
String name = parseString(d.getAttributes(), "name");
final String name = parseString(d.getAttributes(), "name");
final EnchantItemGroup group = new EnchantItemGroup(name);
for (Node cd = d.getFirstChild(); cd != null; cd = cd.getNextSibling())
{

View File

@@ -65,12 +65,12 @@ public class EnchantItemHPBonusData implements IXmlReader
{
if ("enchantHP".equalsIgnoreCase(d.getNodeName()))
{
List<Integer> bonuses = new ArrayList<>();
final List<Integer> bonuses = new ArrayList<>(12);
for (Node e = d.getFirstChild(); e != null; e = e.getNextSibling())
{
if ("bonus".equalsIgnoreCase(e.getNodeName()))
{
bonuses.add(Integer.valueOf(e.getTextContent()));
bonuses.add(Integer.parseInt(e.getTextContent()));
}
}
_armorHPBonuses.put(parseEnum(d.getAttributes(), CrystalType.class, "grade"), bonuses);
@@ -82,12 +82,11 @@ public class EnchantItemHPBonusData implements IXmlReader
if (!_armorHPBonuses.isEmpty())
{
final ItemTable it = ItemTable.getInstance();
L2Item item;
// Armors
final Collection<Integer> armorIds = it.getAllArmorsId();
for (Integer itemId : armorIds)
{
item = it.getTemplate(itemId);
L2Item item = it.getTemplate(itemId);
if ((item != null) && (item.getCrystalType() != CrystalType.NONE))
{
switch (item.getBodyPart())

View File

@@ -52,9 +52,7 @@ public class EnchantItemOptionsData implements IXmlReader
@Override
public void parseDocument(Document doc)
{
Node att = null;
int counter = 0;
EnchantOptions op = null;
for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling())
{
if ("list".equalsIgnoreCase(n.getNodeName()))
@@ -72,12 +70,12 @@ public class EnchantItemOptionsData implements IXmlReader
{
if ("options".equalsIgnoreCase(cd.getNodeName()))
{
op = new EnchantOptions(parseInteger(cd.getAttributes(), "level"));
final EnchantOptions op = new EnchantOptions(parseInteger(cd.getAttributes(), "level"));
_data.get(itemId).put(op.getLevel(), op);
for (byte i = 0; i < 3; i++)
{
att = cd.getAttributes().getNamedItem("option" + (i + 1));
final Node att = cd.getAttributes().getNamedItem("option" + (i + 1));
if ((att != null) && Util.isDigit(att.getNodeValue()))
{
op.setOption(i, parseInteger(att));

View File

@@ -77,11 +77,6 @@ public class EnchantSkillGroupsData implements IXmlReader
@Override
public void parseDocument(Document doc)
{
NamedNodeMap attrs;
StatsSet set;
Node att;
int id = 0;
L2EnchantSkillGroup group;
for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling())
{
if ("list".equalsIgnoreCase(n.getNodeName()))
@@ -90,10 +85,9 @@ public class EnchantSkillGroupsData implements IXmlReader
{
if ("group".equalsIgnoreCase(d.getNodeName()))
{
attrs = d.getAttributes();
id = parseInteger(attrs, "id");
group = _enchantSkillGroups.get(id);
NamedNodeMap attrs = d.getAttributes();
final int id = parseInteger(attrs, "id");
L2EnchantSkillGroup group = _enchantSkillGroups.get(id);
if (group == null)
{
group = new L2EnchantSkillGroup(id);
@@ -105,11 +99,11 @@ public class EnchantSkillGroupsData implements IXmlReader
if ("enchant".equalsIgnoreCase(b.getNodeName()))
{
attrs = b.getAttributes();
set = new StatsSet();
StatsSet set = new StatsSet();
for (int i = 0; i < attrs.getLength(); i++)
{
att = attrs.item(i);
Node att = attrs.item(i);
set.set(att.getNodeName(), att.getNodeValue());
}
group.addEnchantDetail(new EnchantSkillHolder(set));

View File

@@ -65,12 +65,11 @@ public final class ExperienceData implements IXmlReader
MAX_LEVEL = (byte) (Byte.parseByte(tableAttr.getNamedItem("maxLevel").getNodeValue()) + 1);
MAX_PET_LEVEL = (byte) (Byte.parseByte(tableAttr.getNamedItem("maxPetLevel").getNodeValue()) + 1);
NamedNodeMap attrs;
for (Node n = table.getFirstChild(); n != null; n = n.getNextSibling())
{
if ("experience".equals(n.getNodeName()))
{
attrs = n.getAttributes();
NamedNodeMap attrs = n.getAttributes();
_expTable.put(parseInteger(attrs, "level"), parseLong(attrs, "tolevel"));
}
}

View File

@@ -62,10 +62,6 @@ public final class FishData implements IXmlReader
@Override
public void parseDocument(Document doc)
{
NamedNodeMap attrs;
Node att;
L2Fish fish;
StatsSet set;
for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling())
{
if ("list".equalsIgnoreCase(n.getNodeName()))
@@ -74,15 +70,16 @@ public final class FishData implements IXmlReader
{
if ("fish".equalsIgnoreCase(d.getNodeName()))
{
attrs = d.getAttributes();
final NamedNodeMap attrs = d.getAttributes();
set = new StatsSet();
final StatsSet set = new StatsSet();
for (int i = 0; i < attrs.getLength(); i++)
{
att = attrs.item(i);
final Node att = attrs.item(i);
set.set(att.getNodeName(), att.getNodeValue());
}
fish = new L2Fish(set);
final L2Fish fish = new L2Fish(set);
switch (fish.getFishGrade())
{
case 0:

View File

@@ -56,10 +56,6 @@ public final class FishingMonstersData implements IXmlReader
@Override
public void parseDocument(Document doc)
{
NamedNodeMap attrs;
Node att;
L2FishingMonster fishingMonster;
StatsSet set;
for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling())
{
if ("list".equalsIgnoreCase(n.getNodeName()))
@@ -69,15 +65,15 @@ public final class FishingMonstersData implements IXmlReader
if ("fishingMonster".equalsIgnoreCase(d.getNodeName()))
{
attrs = d.getAttributes();
set = new StatsSet();
final NamedNodeMap attrs = d.getAttributes();
final StatsSet set = new StatsSet();
for (int i = 0; i < attrs.getLength(); i++)
{
att = attrs.item(i);
final Node att = attrs.item(i);
set.set(att.getNodeName(), att.getNodeValue());
}
fishingMonster = new L2FishingMonster(set);
final L2FishingMonster fishingMonster = new L2FishingMonster(set);
_fishingMonstersData.put(fishingMonster.getFishingMonsterId(), fishingMonster);
}
}

View File

@@ -56,10 +56,6 @@ public final class FishingRodsData implements IXmlReader
@Override
public void parseDocument(Document doc)
{
NamedNodeMap attrs;
Node att;
L2FishingRod fishingRod;
StatsSet set;
for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling())
{
if ("list".equalsIgnoreCase(n.getNodeName()))
@@ -68,16 +64,15 @@ public final class FishingRodsData implements IXmlReader
{
if ("fishingRod".equalsIgnoreCase(d.getNodeName()))
{
attrs = d.getAttributes();
set = new StatsSet();
final NamedNodeMap attrs = d.getAttributes();
final StatsSet set = new StatsSet();
for (int i = 0; i < attrs.getLength(); i++)
{
att = attrs.item(i);
final Node att = attrs.item(i);
set.set(att.getNodeName(), att.getNodeValue());
}
fishingRod = new L2FishingRod(set);
final L2FishingRod fishingRod = new L2FishingRod(set);
_fishingRods.put(fishingRod.getFishingRodItemId(), fishingRod);
}
}

View File

@@ -87,7 +87,6 @@ public final class HennaData implements IXmlReader
final List<ClassId> wearClassIds = new ArrayList<>();
NamedNodeMap attrs = d.getAttributes();
Node attr;
String name;
for (int i = 0; i < attrs.getLength(); i++)
{
attr = attrs.item(i);
@@ -96,7 +95,7 @@ public final class HennaData implements IXmlReader
for (Node c = d.getFirstChild(); c != null; c = c.getNextSibling())
{
name = c.getNodeName();
final String name = c.getNodeName();
attrs = c.getAttributes();
switch (name)
{

View File

@@ -51,7 +51,6 @@ public class KarmaData implements IXmlReader
@Override
public void parseDocument(Document doc)
{
NamedNodeMap attrs;
for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling())
{
if ("pcKarmaIncrease".equalsIgnoreCase(n.getNodeName()))
@@ -60,7 +59,7 @@ public class KarmaData implements IXmlReader
{
if ("increase".equalsIgnoreCase(d.getNodeName()))
{
attrs = d.getAttributes();
final NamedNodeMap attrs = d.getAttributes();
_karmaTable.put(parseInteger(attrs, "lvl"), parseDouble(attrs, "val"));
}
}

View File

@@ -57,8 +57,6 @@ public class OptionData implements IXmlReader
@Override
public void parseDocument(Document doc)
{
int id;
Options op;
for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling())
{
if ("list".equalsIgnoreCase(n.getNodeName()))
@@ -67,8 +65,8 @@ public class OptionData implements IXmlReader
{
if ("option".equalsIgnoreCase(d.getNodeName()))
{
id = parseInteger(d.getAttributes(), "id");
op = new Options(id);
final int id = parseInteger(d.getAttributes(), "id");
final Options op = new Options(id);
for (Node cd = d.getFirstChild(); cd != null; cd = cd.getNextSibling())
{

View File

@@ -58,9 +58,6 @@ public final class StaticObjectData implements IXmlReader
@Override
public void parseDocument(Document doc)
{
NamedNodeMap attrs;
Node att;
StatsSet set;
for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling())
{
if ("list".equalsIgnoreCase(n.getNodeName()))
@@ -69,11 +66,11 @@ public final class StaticObjectData implements IXmlReader
{
if ("object".equalsIgnoreCase(d.getNodeName()))
{
attrs = d.getAttributes();
set = new StatsSet();
final NamedNodeMap attrs = d.getAttributes();
final StatsSet set = new StatsSet();
for (int i = 0; i < attrs.getLength(); i++)
{
att = attrs.item(i);
final Node att = attrs.item(i);
set.set(att.getNodeName(), att.getNodeValue());
}
addObject(set);

View File

@@ -60,9 +60,6 @@ public final class TransformData implements IXmlReader
@Override
public void parseDocument(Document doc)
{
NamedNodeMap attrs;
Node att;
StatsSet set;
for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling())
{
if ("list".equalsIgnoreCase(n.getNodeName()))
@@ -71,11 +68,11 @@ public final class TransformData implements IXmlReader
{
if ("transform".equalsIgnoreCase(d.getNodeName()))
{
attrs = d.getAttributes();
set = new StatsSet();
NamedNodeMap attrs = d.getAttributes();
StatsSet set = new StatsSet();
for (int i = 0; i < attrs.getLength(); i++)
{
att = attrs.item(i);
Node att = attrs.item(i);
set.set(att.getNodeName(), att.getNodeValue());
}
final Transform transform = new Transform(set);
@@ -105,7 +102,7 @@ public final class TransformData implements IXmlReader
attrs = s.getAttributes();
for (int i = 0; i < attrs.getLength(); i++)
{
att = attrs.item(i);
Node att = attrs.item(i);
set.set(att.getNodeName(), att.getNodeValue());
}
break;
@@ -202,7 +199,7 @@ public final class TransformData implements IXmlReader
attrs = s.getAttributes();
for (int i = 0; i < attrs.getLength(); i++)
{
att = attrs.item(i);
Node att = attrs.item(i);
levelsSet.set(att.getNodeName(), att.getNodeValue());
}
}

View File

@@ -0,0 +1,28 @@
/*
* 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.enums;
/**
* @author Zealar
*/
public enum EffectCalculationType
{
DIFF,
PER
}

View File

@@ -149,7 +149,7 @@ public class L2Attackable extends L2Npc
@Override
protected L2CharacterAI initAI()
{
return new L2AttackableAI(new AIAccessor());
return new L2AttackableAI(this);
}
public final Map<L2Character, AggroInfo> getAggroList()

View File

@@ -823,7 +823,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
* </ul>
* @param target The L2Character targeted
*/
protected void doAttack(L2Character target)
public void doAttack(L2Character target)
{
if (!_attackLock.tryLock())
{
@@ -2576,6 +2576,15 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
return true;
}
public void detachAI()
{
if (isWalker())
{
return;
}
setAI(null);
}
protected void calculateRewards(L2Character killer)
{
}
@@ -2653,7 +2662,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
*/
protected L2CharacterAI initAI()
{
return new L2CharacterAI(new AIAccessor());
return new L2CharacterAI(this);
}
public void setAI(L2CharacterAI newAI)
@@ -3472,93 +3481,6 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
return _effectList.isAffectedBySkill(skillId);
}
// TODO: NEED TO ORGANIZE AND MOVE TO PROPER PLACE
/** This class permit to the L2Character AI to obtain informations and uses L2Character method */
public class AIAccessor
{
/**
* @return the L2Character managed by this Accessor AI.
*/
public L2Character getActor()
{
return L2Character.this;
}
/**
* Accessor to L2Character moveToLocation() method with an interaction area.
* @param x
* @param y
* @param z
* @param offset
*/
public void moveTo(int x, int y, int z, int offset)
{
moveToLocation(x, y, z, offset);
}
/**
* Accessor to L2Character moveToLocation() method without interaction area.
* @param x
* @param y
* @param z
*/
public void moveTo(int x, int y, int z)
{
moveToLocation(x, y, z, 0);
}
/**
* Accessor to L2Character stopMove() method.
* @param loc
*/
public void stopMove(Location loc)
{
L2Character.this.stopMove(loc);
}
/**
* Accessor to L2Character doAttack() method.
* @param target
*/
public void doAttack(L2Character target)
{
L2Character.this.doAttack(target);
}
/**
* Accessor to L2Character doCast() method.
* @param skill
*/
public void doCast(Skill skill)
{
L2Character.this.doCast(skill);
}
/**
* Create a NotifyAITask.
* @param evt
* @return
*/
public NotifyAITask newNotifyTask(CtrlEvent evt)
{
return new NotifyAITask(getActor(), evt);
}
/**
* Cancel the AI.
*/
public void detachAI()
{
// Skip character, if it is controlled by Walking Manager
if (isWalker())
{
return;
}
setAI(null);
}
}
/**
* This class group all movement data.<br>
* <B><U> Data</U> :</B>
@@ -4482,7 +4404,6 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
return _target;
}
// called from AIAccessor only
/**
* Calculate movement data for a move to location action and add the L2Character to movingObjects of GameTimeController (only called by AI Accessor).<br>
* <B><U>Concept</U>:</B><br>
@@ -4509,7 +4430,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
* @param z The Y position of the destination
* @param offset The size of the interaction area of the L2Character targeted
*/
protected void moveToLocation(int x, int y, int z, int offset)
public void moveToLocation(int x, int y, int z, int offset)
{
// Get the Move Speed of the L2Charcater
double speed = getMoveSpeed();
@@ -5175,18 +5096,12 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
}
}
}
}
// Launch weapon Special ability effect if available
if (crit)
{
L2Weapon activeWeapon = getActiveWeaponItem();
if (activeWeapon != null)
// Launch weapon onCritical Special ability effect if available
if (crit && (weapon != null))
{
activeWeapon.castOnCriticalSkill(this, target);
weapon.castOnCriticalSkill(this, target);
}
}
// Recharge any active auto-soulshot tasks for current creature.
rechargeShots(true, false);
}
@@ -7115,6 +7030,26 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
return getTemplate().getRace();
}
public boolean isInDuel()
{
return false;
}
public int getDuelId()
{
return 0;
}
public byte getSiegeState()
{
return 0;
}
public int getSiegeSide()
{
return 0;
}
public int getMinShopDistance()
{
return 0;

View File

@@ -21,6 +21,7 @@ package com.l2jserver.gameserver.model.actor;
import com.l2jserver.gameserver.ai.CtrlEvent;
import com.l2jserver.gameserver.enums.InstanceType;
import com.l2jserver.gameserver.instancemanager.InstanceManager;
import com.l2jserver.gameserver.model.L2Object;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.actor.knownlist.PlayableKnownList;
import com.l2jserver.gameserver.model.actor.stat.PlayableStat;
@@ -343,6 +344,8 @@ public abstract class L2Playable extends L2Character
return transferDmgTo;
}
public abstract void doPickupItem(L2Object object);
public abstract int getKarma();
public abstract byte getPvpFlag();

View File

@@ -90,24 +90,6 @@ public abstract class L2Summon extends L2Playable
};
// @formatter:on
public class AIAccessor extends L2Character.AIAccessor
{
public L2Summon getSummon()
{
return L2Summon.this;
}
public boolean isAutoFollow()
{
return getFollowStatus();
}
public void doPickupItem(L2Object object)
{
L2Summon.this.doPickupItem(object);
}
}
/**
* Creates an abstract summon.
* @param template the summon NPC template
@@ -194,7 +176,7 @@ public abstract class L2Summon extends L2Playable
@Override
protected L2CharacterAI initAI()
{
return new L2SummonAI(new L2Summon.AIAccessor());
return new L2SummonAI(this);
}
@Override
@@ -538,10 +520,6 @@ public abstract class L2Summon extends L2Playable
return null;
}
protected void doPickupItem(L2Object object)
{
}
public void setRestoreSummon(boolean val)
{
}

View File

@@ -509,14 +509,6 @@ public abstract class L2Vehicle extends L2Character
return false;
}
public class AIAccessor extends L2Character.AIAccessor
{
@Override
public void detachAI()
{
}
}
@Override
public boolean isVehicle()
{

View File

@@ -40,7 +40,7 @@ public class L2AirShipInstance extends L2Vehicle
{
super(template);
setInstanceType(InstanceType.L2AirShipInstance);
setAI(new L2AirShipAI(new AIAccessor()));
setAI(new L2AirShipAI(this));
}
@Override

Some files were not shown because too many files have changed in this diff Show More