Effect list rework.

Contributed by Liamxroy.
This commit is contained in:
MobiusDev 2017-09-22 17:02:39 +00:00
parent d279eb7aa7
commit d571278f5f
448 changed files with 11336 additions and 7576 deletions

View File

@ -49,6 +49,7 @@
<admin command="admin_getbuffs" accessLevel="100" />
<admin command="admin_stopbuff" accessLevel="100" />
<admin command="admin_stopallbuffs" accessLevel="100" confirmDlg="true" />
<admin command="admin_viewblockedeffects" accessLevel="100" />
<admin command="admin_areacancel" accessLevel="100" />
<admin command="admin_removereuse" accessLevel="100" />
<admin command="admin_switch_gm_buffs" accessLevel="100" />
@ -180,6 +181,7 @@
<admin command="admin_social" accessLevel="100" />
<admin command="admin_social_menu" accessLevel="100" />
<admin command="admin_effect" accessLevel="100" />
<admin command="admin_npc_use_skill" accessLevel="100" />
<admin command="admin_effect_menu" accessLevel="100" />
<admin command="admin_ave_abnormal" accessLevel="100" />
<admin command="admin_play_sounds" accessLevel="100" />

View File

@ -0,0 +1,34 @@
<html>
<head>
<title>Effects of %targetName%</title>
</head>
<body>
<table width="100%">
<tr>
<td width=45>
<button value="Main" action="bypass -h admin_admin" width=45 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
</td>
<td width=180>
<center><font color="LEVEL">Effects of %targetName%</font></center>
</td>
<td width=45>
<button value="Back" action="bypass -h admin_current_player" width=45 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
</td>
</tr>
</table>
<br>
<table width="100%">
<tr>
<td width=200>Skill</td>
<td width=30>Rem. Time</td>
<td width=70>Action</td>
</tr>
%buffs%
</table>
<br>%pages%<br>
<button value="View Blocked Effects" action="bypass -h admin_viewblockedeffects %targetObjId%" width=160 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"><br>
<button value="Remove All" action="bypass -h admin_stopallbuffs %targetObjId%" width=80 height=21 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
<br>
Total buff count: %effectSize%
</body>
</html>

View File

@ -154,9 +154,9 @@ public final class Maguen extends AbstractNpcAI
{
if (npc.getVariables().getInt("TEST_MAGUEN") == 1)
{
player.getEffectList().stopSkillEffects(true, B_PLASMA1.getSkill().getAbnormalType());
player.getEffectList().stopSkillEffects(true, C_PLASMA1.getSkill().getAbnormalType());
player.getEffectList().stopSkillEffects(true, R_PLASMA1.getSkill().getAbnormalType());
player.getEffectList().stopEffects(B_PLASMA1.getSkill().getAbnormalType());
player.getEffectList().stopEffects(C_PLASMA1.getSkill().getAbnormalType());
player.getEffectList().stopEffects(R_PLASMA1.getSkill().getAbnormalType());
nemoAi().notifyEvent("DECREASE_COUNT", npc, player);
}
npc.doDie(null);
@ -169,9 +169,9 @@ public final class Maguen extends AbstractNpcAI
@Override
public String onSpellFinished(L2Npc npc, L2PcInstance player, Skill skill)
{
final BuffInfo b_info = player.getEffectList().getBuffInfoByAbnormalType(B_PLASMA1.getSkill().getAbnormalType());
final BuffInfo c_info = player.getEffectList().getBuffInfoByAbnormalType(C_PLASMA1.getSkill().getAbnormalType());
final BuffInfo r_info = player.getEffectList().getBuffInfoByAbnormalType(R_PLASMA1.getSkill().getAbnormalType());
final BuffInfo b_info = player.getEffectList().getFirstBuffInfoByAbnormalType(B_PLASMA1.getSkill().getAbnormalType());
final BuffInfo c_info = player.getEffectList().getFirstBuffInfoByAbnormalType(C_PLASMA1.getSkill().getAbnormalType());
final BuffInfo r_info = player.getEffectList().getFirstBuffInfoByAbnormalType(R_PLASMA1.getSkill().getAbnormalType());
final int b = b_info == null ? 0 : b_info.getSkill().getAbnormalLvl();
final int c = c_info == null ? 0 : c_info.getSkill().getAbnormalLvl();
@ -180,7 +180,7 @@ public final class Maguen extends AbstractNpcAI
if ((b == 3) && (c == 0) && (r == 0))
{
showOnScreenMsg(player, NpcStringId.ENOUGH_MAGUEN_PLASMA_BISTAKON_HAVE_GATHERED, 2, 4000);
player.getEffectList().stopSkillEffects(true, B_PLASMA1.getSkill().getAbnormalType());
player.getEffectList().stopEffects(B_PLASMA1.getSkill().getAbnormalType());
npc.setTarget(player);
npc.doCast((getRandom(100) < 70) ? B_BUFF_1.getSkill() : B_BUFF_2.getSkill());
maguenPetChance(player);
@ -189,7 +189,7 @@ public final class Maguen extends AbstractNpcAI
else if ((b == 0) && (c == 3) && (r == 0))
{
showOnScreenMsg(player, NpcStringId.ENOUGH_MAGUEN_PLASMA_KOKRACON_HAVE_GATHERED, 2, 4000);
player.getEffectList().stopSkillEffects(true, C_PLASMA1.getSkill().getAbnormalType());
player.getEffectList().stopEffects(C_PLASMA1.getSkill().getAbnormalType());
npc.setTarget(player);
npc.doCast((getRandom(100) < 70) ? C_BUFF_1.getSkill() : C_BUFF_2.getSkill());
maguenPetChance(player);
@ -198,7 +198,7 @@ public final class Maguen extends AbstractNpcAI
else if ((b == 0) && (c == 0) && (r == 3))
{
showOnScreenMsg(player, NpcStringId.ENOUGH_MAGUEN_PLASMA_LEPTILIKON_HAVE_GATHERED, 2, 4000);
player.getEffectList().stopSkillEffects(true, R_PLASMA1.getSkill().getAbnormalType());
player.getEffectList().stopEffects(R_PLASMA1.getSkill().getAbnormalType());
npc.setTarget(player);
npc.doCast((getRandom(100) < 70) ? R_BUFF_1.getSkill() : R_BUFF_2.getSkill());
maguenPetChance(player);
@ -208,9 +208,9 @@ public final class Maguen extends AbstractNpcAI
{
if ((b == 1) && (c == 1) && (r == 1))
{
player.getEffectList().stopSkillEffects(true, B_PLASMA1.getSkill().getAbnormalType());
player.getEffectList().stopSkillEffects(true, C_PLASMA1.getSkill().getAbnormalType());
player.getEffectList().stopSkillEffects(true, R_PLASMA1.getSkill().getAbnormalType());
player.getEffectList().stopEffects(B_PLASMA1.getSkill().getAbnormalType());
player.getEffectList().stopEffects(C_PLASMA1.getSkill().getAbnormalType());
player.getEffectList().stopEffects(R_PLASMA1.getSkill().getAbnormalType());
showOnScreenMsg(player, NpcStringId.THE_PLASMAS_HAVE_FILLED_THE_AEROSCOPE_AND_ARE_HARMONIZED, 2, 4000);
SkillHolder skillToCast = null;
switch (getRandom(3))
@ -243,9 +243,9 @@ public final class Maguen extends AbstractNpcAI
else
{
showOnScreenMsg(player, NpcStringId.THE_PLASMAS_HAVE_FILLED_THE_AEROSCOPE_BUT_THEY_ARE_RAMMING_INTO_EACH_OTHER_EXPLODING_AND_DYING, 2, 4000);
player.getEffectList().stopSkillEffects(true, B_PLASMA1.getSkill().getAbnormalType());
player.getEffectList().stopSkillEffects(true, C_PLASMA1.getSkill().getAbnormalType());
player.getEffectList().stopSkillEffects(true, R_PLASMA1.getSkill().getAbnormalType());
player.getEffectList().stopEffects(B_PLASMA1.getSkill().getAbnormalType());
player.getEffectList().stopEffects(C_PLASMA1.getSkill().getAbnormalType());
player.getEffectList().stopEffects(R_PLASMA1.getSkill().getAbnormalType());
}
}
else
@ -263,17 +263,17 @@ public final class Maguen extends AbstractNpcAI
{
if ((npc.getVariables().getInt("NPC_EFFECT") != 0) && (npc.getVariables().getInt("BLOCKED_SKILLSEE") == 0))
{
final BuffInfo i1_info = caster.getEffectList().getBuffInfoByAbnormalType(B_PLASMA1.getSkill().getAbnormalType());
final BuffInfo i2_info = caster.getEffectList().getBuffInfoByAbnormalType(C_PLASMA1.getSkill().getAbnormalType());
final BuffInfo i3_info = caster.getEffectList().getBuffInfoByAbnormalType(R_PLASMA1.getSkill().getAbnormalType());
final BuffInfo i1_info = caster.getEffectList().getFirstBuffInfoByAbnormalType(B_PLASMA1.getSkill().getAbnormalType());
final BuffInfo i2_info = caster.getEffectList().getFirstBuffInfoByAbnormalType(C_PLASMA1.getSkill().getAbnormalType());
final BuffInfo i3_info = caster.getEffectList().getFirstBuffInfoByAbnormalType(R_PLASMA1.getSkill().getAbnormalType());
final int i1 = i1_info == null ? 0 : i1_info.getSkill().getAbnormalLvl();
final int i2 = i2_info == null ? 0 : i2_info.getSkill().getAbnormalLvl();
final int i3 = i3_info == null ? 0 : i3_info.getSkill().getAbnormalLvl();
caster.getEffectList().stopSkillEffects(true, B_PLASMA1.getSkill().getAbnormalType());
caster.getEffectList().stopSkillEffects(true, C_PLASMA1.getSkill().getAbnormalType());
caster.getEffectList().stopSkillEffects(true, R_PLASMA1.getSkill().getAbnormalType());
caster.getEffectList().stopEffects(B_PLASMA1.getSkill().getAbnormalType());
caster.getEffectList().stopEffects(C_PLASMA1.getSkill().getAbnormalType());
caster.getEffectList().stopEffects(R_PLASMA1.getSkill().getAbnormalType());
cancelQuestTimer("FIRST_TIMER", npc, caster);
cancelQuestTimer("SECOND_TIMER", npc, caster);
cancelQuestTimer("THIRD_TIMER", npc, caster);

View File

@ -515,7 +515,7 @@ public final class Raina extends AbstractNpcAI
{
player.abortCast();
player.stopAllEffectsExceptThoseThatLastThroughDeath();
player.stopAllEffectsNotStayOnSubclassChange();
player.stopAllEffects();
player.stopCubics();
player.setActiveClass(classIndex);
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));
@ -555,7 +555,7 @@ public final class Raina extends AbstractNpcAI
{
player.abortCast();
player.stopAllEffectsExceptThoseThatLastThroughDeath();
player.stopAllEffectsNotStayOnSubclassChange();
player.stopAllEffects();
player.stopCubics();
player.setActiveClass(classIndex);
player.sendPacket(new ExSubjobInfo(player, SubclassInfoType.CLASS_CHANGED));

View File

@ -872,7 +872,7 @@ public class Trasken extends AbstractNpcAI
final BuffInfo traskenBuff = character.getEffectList().getBuffInfoBySkillId(SKILL_TRASKEN_BUFF.getSkillId());
if (traskenBuff != null)
{
character.getEffectList().remove(true, traskenBuff, null);
character.getEffectList().stopSkillEffects(true, traskenBuff.getSkill());
}
}
ThreadPoolManager.schedule(() ->

View File

@ -371,7 +371,7 @@ public final class Race extends Event
player.standUp();
}
player.getEffectList().stopSkillEffects(true, AbnormalType.SPEED_UP);
player.getEffectList().stopEffects(AbnormalType.SPEED_UP);
player.stopSkillEffects(true, 268);
player.stopSkillEffects(true, 298); // Rabbit Spirit Totem
SkillData.getInstance().getSkill(_skill, 1).applyEffects(player, player);

View File

@ -133,15 +133,15 @@ public final class HuntForSanta extends LongTimeEvent
final BuffInfo buffSnowman = player.getEffectList().getBuffInfoBySkillId(BUFF_SNOWMAN.getSkillId());
if (buffStocking != null)
{
player.getEffectList().remove(true, buffStocking, null);
player.getEffectList().stopSkillEffects(true, buffStocking.getSkill());
}
if (buffTree != null)
{
player.getEffectList().remove(true, buffTree, null);
player.getEffectList().stopSkillEffects(true, buffTree.getSkill());
}
if (buffSnowman != null)
{
player.getEffectList().remove(true, buffSnowman, null);
player.getEffectList().stopSkillEffects(true, buffSnowman.getSkill());
}
}

View File

@ -19,6 +19,7 @@ package handlers.admincommandhandlers;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import java.util.StringTokenizer;
import com.l2jmobius.Config;
@ -29,6 +30,9 @@ import com.l2jmobius.gameserver.model.L2World;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.html.PageBuilder;
import com.l2jmobius.gameserver.model.html.PageResult;
import com.l2jmobius.gameserver.model.html.styles.ButtonsStyle;
import com.l2jmobius.gameserver.model.skills.AbnormalType;
import com.l2jmobius.gameserver.model.skills.BuffInfo;
import com.l2jmobius.gameserver.model.skills.Skill;
@ -39,8 +43,6 @@ import com.l2jmobius.gameserver.util.GMAudit;
public class AdminBuffs implements IAdminCommandHandler
{
private static final int PAGE_LIMIT = 20;
private static final String[] ADMIN_COMMANDS =
{
"admin_buff",
@ -48,6 +50,7 @@ public class AdminBuffs implements IAdminCommandHandler
"admin_getbuffs_ps",
"admin_stopbuff",
"admin_stopallbuffs",
"admin_viewblockedeffects",
"admin_areacancel",
"admin_removereuse",
"admin_switch_gm_buffs"
@ -109,7 +112,7 @@ public class AdminBuffs implements IAdminCommandHandler
final L2PcInstance player = L2World.getInstance().getPlayer(playername);
if (player != null)
{
int page = 1;
int page = 0;
if (st.hasMoreTokens())
{
page = Integer.parseInt(st.nextToken());
@ -122,7 +125,7 @@ public class AdminBuffs implements IAdminCommandHandler
}
else if ((activeChar.getTarget() != null) && activeChar.getTarget().isCharacter())
{
showBuffs(activeChar, (L2Character) activeChar.getTarget(), 1, command.endsWith("_ps"));
showBuffs(activeChar, (L2Character) activeChar.getTarget(), 0, command.endsWith("_ps"));
return true;
}
else
@ -168,6 +171,23 @@ public class AdminBuffs implements IAdminCommandHandler
return false;
}
}
else if (command.startsWith("admin_viewblockedeffects"))
{
try
{
StringTokenizer st = new StringTokenizer(command, " ");
st.nextToken();
int objectId = Integer.parseInt(st.nextToken());
viewBlockedEffects(activeChar, objectId);
return true;
}
catch (Exception e)
{
activeChar.sendMessage("Failed viewing blocked effects: " + e.getMessage());
activeChar.sendMessage("Usage: //viewblockedeffects <objectId>");
return false;
}
}
else if (command.startsWith("admin_areacancel"))
{
final StringTokenizer st = new StringTokenizer(command, " ");
@ -283,115 +303,48 @@ public class AdminBuffs implements IAdminCommandHandler
effects.addAll(target.getEffectList().getPassives());
}
if ((page > ((effects.size() / PAGE_LIMIT) + 1)) || (page < 1))
{
return;
}
final String pageLink = "bypass -h admin_getbuffs" + (passive ? "_ps " : " ") + target.getName();
int max = effects.size() / PAGE_LIMIT;
if (effects.size() > (PAGE_LIMIT * max))
final PageResult result = PageBuilder.newBuilder(effects, 3, pageLink).currentPage(page).style(ButtonsStyle.INSTANCE).bodyHandler((pages, info, sb) ->
{
max++;
}
final StringBuilder html = new StringBuilder(500 + (effects.size() * 200));
html.append("<html><table width=\"100%\"><tr><td width=45><button value=\"Main\" action=\"bypass -h admin_admin\" width=45 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td><td width=180><center><font color=\"LEVEL\">Effects of ");
html.append(target.getName());
html.append("</font></td><td width=45><button value=\"Back\" action=\"bypass -h admin_current_player\" width=45 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr></table><br><table width=\"100%\"><tr><td width=200>Skill</td><td width=30>Rem. Time</td><td width=70>Action</td></tr>");
final int start = ((page - 1) * PAGE_LIMIT);
final int end = Math.min(((page - 1) * PAGE_LIMIT) + PAGE_LIMIT, effects.size());
int count = 0;
for (BuffInfo info : effects)
{
if ((count >= start) && (count < end))
for (AbstractEffect effect : info.getEffects())
{
final Skill skill = info.getSkill();
for (AbstractEffect effect : info.getEffects())
{
html.append("<tr><td>");
html.append(!info.isInUse() ? FONT_RED1 : "");
html.append(skill.getName());
html.append(" Lv ");
html.append(skill.getLevel());
html.append(" (");
html.append(effect.getClass().getSimpleName());
html.append(")");
html.append(!info.isInUse() ? FONT_RED2 : "");
html.append("</td><td>");
html.append(skill.isToggle() ? "T (" + info.getTickCount(effect) + ")" : skill.isPassive() ? "P" : info.getTime() + "s");
html.append("</td><td><button value=\"X\" action=\"bypass -h admin_stopbuff ");
html.append(target.getObjectId());
html.append(" ");
html.append(skill.getId());
html.append("\" width=30 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr>");
}
sb.append("<tr><td>");
sb.append(!info.isInUse() ? FONT_RED1 : "");
sb.append(info.getSkill().getName());
sb.append(" Lv ");
sb.append(info.getSkill().getLevel());
sb.append(" (");
sb.append(effect.getClass().getSimpleName());
sb.append(")");
sb.append(!info.isInUse() ? FONT_RED2 : "");
sb.append("</td><td>");
sb.append(info.getSkill().isToggle() ? "T (" + info.getTickCount(effect) + ")" : info.getSkill().isPassive() ? "P" : info.getTime() + "s");
sb.append("</td><td><button value=\"X\" action=\"bypass -h admin_stopbuff ");
sb.append(target.getObjectId());
sb.append(" ");
sb.append(info.getSkill().getId());
sb.append("\" width=30 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr>");
}
count++;
}).build();
final NpcHtmlMessage html = new NpcHtmlMessage(0, 1);
html.setFile(activeChar.getHtmlPrefix(), "data/html/admin/getbuffs.htm");
if (result.getPages() > 0)
{
html.replace("%pages%", "<table width=280 cellspacing=0><tr>" + result.getPagerTemplate() + "</tr></table>");
}
else
{
html.replace("%pages%", "");
}
html.append("</table><table width=300 bgcolor=444444><tr>");
for (int x = 0; x < max; x++)
{
final int pagenr = x + 1;
if (page == pagenr)
{
html.append("<td>Page ");
html.append(pagenr);
html.append("</td>");
}
else
{
html.append("<td><a action=\"bypass -h admin_getbuffs" + (passive ? "_ps " : " "));
html.append(target.getName());
html.append(" ");
html.append(x + 1);
html.append("\"> Page ");
html.append(pagenr);
html.append(" </a></td>");
}
}
html.append("</tr></table>");
// Buttons
html.append("<br><center><button value=\"Refresh\" action=\"bypass -h admin_getbuffs");
html.append(passive ? "_ps " : " ");
html.append(target.getName());
html.append("\" width=80 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\">");
html.append("<button value=\"Remove All\" action=\"bypass -h admin_stopallbuffs ");
html.append(target.getObjectId());
html.append("\" width=80 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"><br>");
// Legend
if (!passive)
{
html.append(FONT_RED1);
html.append("Inactive buffs: ");
html.append(target.getEffectList().getHiddenBuffsCount());
html.append(FONT_RED2);
html.append("<br>");
}
html.append("Total");
html.append(passive ? " passive" : "");
html.append(" buff count: ");
html.append(effects.size());
if ((target.getEffectList().getBlockedAbnormalTypes() != null) && !target.getEffectList().getBlockedAbnormalTypes().isEmpty())
{
html.append("<br>Blocked buff slots: ");
String slots = "";
for (AbnormalType slot : target.getEffectList().getBlockedAbnormalTypes())
{
slots += slot + ", ";
}
if (!slots.isEmpty() && (slots.length() > 3))
{
html.append(slots.substring(0, slots.length() - 2));
}
}
html.append("</html>");
// Send the packet
activeChar.sendPacket(new NpcHtmlMessage(0, 1, html.toString()));
html.replace("%targetName%", target.getName());
html.replace("%targetObjId%", target.getObjectId());
html.replace("%buffs%", result.getBodyTemplate().toString());
html.replace("%effectSize%", effects.size());
activeChar.sendPacket(html);
if (Config.GMAUDIT)
{
@ -418,7 +371,7 @@ public class AdminBuffs implements IAdminCommandHandler
activeChar.sendMessage("Removed skill ID: " + skillId + " effects from " + target.getName() + " (" + objId + ").");
}
showBuffs(activeChar, target, 1, false);
showBuffs(activeChar, target, 0, false);
if (Config.GMAUDIT)
{
GMAudit.auditGMAction(activeChar.getName() + " [" + activeChar.getObjectId() + "]", "stopbuff", target.getName() + " (" + objId + ")", Integer.toString(skillId));
@ -441,11 +394,54 @@ public class AdminBuffs implements IAdminCommandHandler
{
target.stopAllEffects();
activeChar.sendMessage("Removed all effects from " + target.getName() + " (" + objId + ")");
showBuffs(activeChar, target, 1, false);
showBuffs(activeChar, target, 0, false);
if (Config.GMAUDIT)
{
GMAudit.auditGMAction(activeChar.getName() + " [" + activeChar.getObjectId() + "]", "stopallbuffs", target.getName() + " (" + objId + ")", "");
}
}
}
private static void viewBlockedEffects(L2PcInstance activeChar, int objId)
{
L2Character target = null;
try
{
target = (L2Character) L2World.getInstance().findObject(objId);
}
catch (Exception e)
{
activeChar.sendMessage("Target with object id " + objId + " not found.");
return;
}
if (target != null)
{
final Set<AbnormalType> blockedAbnormals = target.getEffectList().getBlockedAbnormalTypes();
final int blockedAbnormalsSize = blockedAbnormals != null ? blockedAbnormals.size() : 0;
final StringBuilder html = new StringBuilder(500 + (blockedAbnormalsSize * 50));
html.append("<html><table width=\"100%\"><tr><td width=45><button value=\"Main\" action=\"bypass -h admin_admin\" width=45 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td><td width=180><center><font color=\"LEVEL\">Blocked effects of ");
html.append(target.getName());
html.append("</font></td><td width=45><button value=\"Back\" action=\"bypass -h admin_getbuffs" + (target.isPlayer() ? (" " + target.getName()) : "") + "\" width=45 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr></table><br>");
if ((blockedAbnormals != null) && !blockedAbnormals.isEmpty())
{
html.append("<br>Blocked buff slots: ");
for (AbnormalType slot : blockedAbnormals)
{
html.append("<br>").append(slot.toString());
}
}
html.append("</html>");
// Send the packet
activeChar.sendPacket(new NpcHtmlMessage(0, 1, html.toString()));
if (Config.GMAUDIT)
{
GMAudit.auditGMAction(activeChar.getName() + " [" + activeChar.getObjectId() + "]", "viewblockedeffects", target.getName() + " (" + Integer.toString(target.getObjectId()) + ")", "");
}
}
}
}

View File

@ -39,6 +39,7 @@ import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.network.SystemMessageId;
import com.l2jmobius.gameserver.network.serverpackets.Earthquake;
import com.l2jmobius.gameserver.network.serverpackets.ExRedSky;
import com.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import com.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import com.l2jmobius.gameserver.network.serverpackets.MagicSkillUse;
import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
@ -100,6 +101,7 @@ public class AdminEffects implements IAdminCommandHandler
"admin_setteam",
"admin_social",
"admin_effect",
"admin_npc_use_skill",
"admin_effect_menu",
"admin_ave_abnormal",
"admin_social_menu",
@ -126,16 +128,16 @@ public class AdminEffects implements IAdminCommandHandler
{
activeChar.setInvisible(true);
activeChar.broadcastUserInfo();
activeChar.sendPacket(new ExUserInfoAbnormalVisualEffect(activeChar));
activeChar.decayMe();
activeChar.spawnMe();
activeChar.startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
activeChar.sendMessage("You are now invisible.");
}
else
{
activeChar.setInvisible(false);
activeChar.broadcastUserInfo();
activeChar.stopAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
activeChar.sendPacket(new ExUserInfoAbnormalVisualEffect(activeChar));
activeChar.sendMessage("You are now visible.");
}
@ -146,16 +148,16 @@ public class AdminEffects implements IAdminCommandHandler
{
activeChar.setInvisible(true);
activeChar.broadcastUserInfo();
activeChar.sendPacket(new ExUserInfoAbnormalVisualEffect(activeChar));
activeChar.decayMe();
activeChar.spawnMe();
activeChar.startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
activeChar.sendMessage("You are now invisible.");
}
else if (command.startsWith("admin_vis"))
{
activeChar.setInvisible(false);
activeChar.broadcastUserInfo();
activeChar.stopAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
activeChar.sendPacket(new ExUserInfoAbnormalVisualEffect(activeChar));
activeChar.sendMessage("You are now visible.");
}
else if (command.startsWith("admin_setinvis"))
@ -236,7 +238,7 @@ public class AdminEffects implements IAdminCommandHandler
{
if (!player.isGM())
{
player.startAbnormalVisualEffect(AbnormalVisualEffect.PARALYZE);
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.PARALYZE);
player.setBlockActions(true);
player.startParalyze();
player.broadcastInfo();
@ -247,7 +249,7 @@ public class AdminEffects implements IAdminCommandHandler
{
L2World.getInstance().forEachVisibleObject(activeChar, L2PcInstance.class, player ->
{
player.stopAbnormalVisualEffect(AbnormalVisualEffect.PARALYZE);
player.getEffectList().stopAbnormalVisualEffect(AbnormalVisualEffect.PARALYZE);
player.setBlockActions(false);
player.broadcastInfo();
@ -272,11 +274,11 @@ public class AdminEffects implements IAdminCommandHandler
player = (L2Character) target;
if (type.equals("1"))
{
player.startAbnormalVisualEffect(AbnormalVisualEffect.PARALYZE);
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.PARALYZE);
}
else
{
player.startAbnormalVisualEffect(AbnormalVisualEffect.FLESH_STONE);
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.FLESH_STONE);
}
player.setBlockActions(true);
player.startParalyze();
@ -306,11 +308,11 @@ public class AdminEffects implements IAdminCommandHandler
player = (L2Character) target;
if (type.equals("1"))
{
player.stopAbnormalVisualEffect(AbnormalVisualEffect.PARALYZE);
player.getEffectList().stopAbnormalVisualEffect(AbnormalVisualEffect.PARALYZE);
}
else
{
player.stopAbnormalVisualEffect(AbnormalVisualEffect.FLESH_STONE);
player.getEffectList().stopAbnormalVisualEffect(AbnormalVisualEffect.FLESH_STONE);
}
player.setBlockActions(false);
player.broadcastInfo();
@ -329,7 +331,7 @@ public class AdminEffects implements IAdminCommandHandler
if (target instanceof L2Character)
{
player = (L2Character) target;
player.startAbnormalVisualEffect(AbnormalVisualEffect.BIG_HEAD);
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.BIG_HEAD);
}
}
catch (Exception e)
@ -345,7 +347,7 @@ public class AdminEffects implements IAdminCommandHandler
if (target instanceof L2Character)
{
player = (L2Character) target;
player.stopAbnormalVisualEffect(AbnormalVisualEffect.BIG_HEAD);
player.getEffectList().stopAbnormalVisualEffect(AbnormalVisualEffect.BIG_HEAD);
}
}
catch (Exception e)
@ -604,7 +606,7 @@ public class AdminEffects implements IAdminCommandHandler
return true;
}
}
else if (command.startsWith("admin_effect"))
else if (command.startsWith("admin_effect") || command.startsWith("admin_npc_use_skill"))
{
try
{
@ -707,13 +709,13 @@ public class AdminEffects implements IAdminCommandHandler
if (target instanceof L2Character)
{
final L2Character character = (L2Character) target;
if (!character.hasAbnormalVisualEffect(ave))
if (!character.getEffectList().hasAbnormalVisualEffect(ave))
{
character.startAbnormalVisualEffect(ave);
character.getEffectList().startAbnormalVisualEffect(ave);
}
else
{
character.stopAbnormalVisualEffect(ave);
character.getEffectList().stopAbnormalVisualEffect(ave);
}
return true;
}

View File

@ -70,7 +70,7 @@ public final class Detection extends AbstractEffect
}
// Remove Hide.
target.getEffectList().stopSkillEffects(true, AbnormalType.HIDE);
target.getEffectList().stopEffects(AbnormalType.HIDE);
}
}
}

View File

@ -17,18 +17,15 @@
package handlers.effecthandlers;
import java.util.Collections;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import com.l2jmobius.gameserver.model.CharEffectList;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.effects.L2EffectType;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.skills.AbnormalType;
import com.l2jmobius.gameserver.model.skills.BuffInfo;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
@ -42,10 +39,10 @@ public final class DispelBySlot extends AbstractEffect
public DispelBySlot(StatsSet params)
{
_dispel = params.getString("dispel", null);
_dispel = params.getString("dispel");
if ((_dispel != null) && !_dispel.isEmpty())
{
_dispelAbnormals = new EnumMap<>(AbnormalType.class);
_dispelAbnormals = new HashMap<>();
for (String ngtStack : _dispel.split(";"))
{
final String[] ngt = ngtStack.split(",");
@ -78,32 +75,27 @@ public final class DispelBySlot extends AbstractEffect
return;
}
final CharEffectList effectList = effected.getEffectList();
// There is no need to iterate over all buffs,
// Just iterate once over all slots to dispel and get the buff with that abnormal if exists,
// Operation of O(n) for the amount of slots to dispel (which is usually small) and O(1) to get the buff.
for (Entry<AbnormalType, Short> entry : _dispelAbnormals.entrySet())
// Continue only if target has any of the abnormals. Save useless cycles.
if (effected.getEffectList().hasAbnormalType(_dispelAbnormals.keySet()))
{
// Dispel transformations (buff and by GM)
if ((entry.getKey() == AbnormalType.TRANSFORM))
final Short transformToDispel = _dispelAbnormals.get(AbnormalType.TRANSFORM);
if ((transformToDispel != null) && ((transformToDispel == effected.getTransformationId()) || (transformToDispel < 0)))
{
if ((entry.getValue() == effected.getTransformationId()) || (entry.getValue() < 0))
effected.stopTransformation(true);
}
effected.getEffectList().stopEffects(info ->
{
// We have already dealt with transformation from above.
if (info.isAbnormalType(AbnormalType.TRANSFORM))
{
effected.stopTransformation(true);
continue;
return false;
}
}
final BuffInfo toDispel = effectList.getBuffInfoByAbnormalType(entry.getKey());
if (toDispel == null)
{
continue;
}
if ((entry.getKey() == toDispel.getSkill().getAbnormalType()) && ((entry.getValue() < 0) || (entry.getValue() >= toDispel.getSkill().getAbnormalLvl())))
{
effectList.stopSkillEffects(true, entry.getKey());
}
final Short abnormalLevel = _dispelAbnormals.get(info.getSkill().getAbnormalType());
return (abnormalLevel != null) && ((abnormalLevel < 0) || (abnormalLevel >= info.getSkill().getAbnormalLvl()));
}, true);
}
}
}

View File

@ -20,7 +20,6 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import com.l2jmobius.gameserver.model.CharEffectList;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
@ -39,7 +38,7 @@ public final class DispelBySlotMyself extends AbstractEffect
public DispelBySlotMyself(StatsSet params)
{
final String dispel = params.getString("dispel", null);
String dispel = params.getString("dispel");
if ((dispel != null) && !dispel.isEmpty())
{
_dispelAbnormals = new HashSet<>();
@ -74,14 +73,7 @@ public final class DispelBySlotMyself extends AbstractEffect
return;
}
final CharEffectList effectList = effected.getEffectList();
// There is no need to iterate over all buffs,
// Just iterate once over all slots to dispel and get the buff with that abnormal if exists,
// Operation of O(n) for the amount of slots to dispel (which is usually small) and O(1) to get the buff.
for (AbnormalType entry : _dispelAbnormals)
{
// The effectlist should already check if it has buff with this abnormal type or not.
effectList.stopSkillEffects(true, entry);
}
// The effectlist should already check if it has buff with this abnormal type or not.
effected.getEffectList().stopEffects(info -> !info.getSkill().isIrreplacableBuff() && _dispelAbnormals.contains(info.getSkill().getAbnormalType()), true);
}
}

View File

@ -17,19 +17,16 @@
package handlers.effecthandlers;
import java.util.Collections;
import java.util.EnumMap;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import com.l2jmobius.commons.util.Rnd;
import com.l2jmobius.gameserver.model.CharEffectList;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.effects.L2EffectType;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.skills.AbnormalType;
import com.l2jmobius.gameserver.model.skills.BuffInfo;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
@ -44,14 +41,14 @@ public final class DispelBySlotProbability extends AbstractEffect
public DispelBySlotProbability(StatsSet params)
{
_dispel = params.getString("dispel", null);
_dispel = params.getString("dispel");
_rate = params.getInt("rate", 100);
if ((_dispel != null) && !_dispel.isEmpty())
{
_dispelAbnormals = new EnumMap<>(AbnormalType.class);
_dispelAbnormals = new HashMap<>();
for (String ngtStack : _dispel.split(";"))
{
final String[] ngt = ngtStack.split(",");
String[] ngt = ngtStack.split(",");
_dispelAbnormals.put(AbnormalType.getAbnormalType(ngt[0]), Short.MAX_VALUE);
}
}
@ -81,34 +78,26 @@ public final class DispelBySlotProbability extends AbstractEffect
return;
}
final CharEffectList effectList = effected.getEffectList();
// There is no need to iterate over all buffs,
// Just iterate once over all slots to dispel and get the buff with that abnormal if exists,
// Operation of O(n) for the amount of slots to dispel (which is usually small) and O(1) to get the buff.
for (Entry<AbnormalType, Short> entry : _dispelAbnormals.entrySet())
// Dispel transformations (buff and by GM)
if ((Rnd.get(100) < _rate))
{
if ((Rnd.get(100) < _rate))
final Short transformToDispel = _dispelAbnormals.get(AbnormalType.TRANSFORM);
if ((transformToDispel != null) && ((transformToDispel == effected.getTransformationId()) || (transformToDispel < 0)))
{
// Dispel transformations (buff and by GM)
if ((entry.getKey() == AbnormalType.TRANSFORM))
{
if ((entry.getValue() == effected.getTransformationId()) || (entry.getValue() < 0))
{
effected.stopTransformation(true);
}
}
final BuffInfo toDispel = effectList.getBuffInfoByAbnormalType(entry.getKey());
if (toDispel == null)
{
continue;
}
if ((toDispel.getSkill().getAbnormalType() == entry.getKey()) && (entry.getValue() >= toDispel.getSkill().getAbnormalLvl()))
{
effectList.stopSkillEffects(true, entry.getKey());
}
effected.stopTransformation(true);
}
}
effected.getEffectList().stopEffects(info ->
{
// We have already dealt with transformation from above.
if (info.isAbnormalType(AbnormalType.TRANSFORM))
{
return false;
}
final Short abnormalLevel = (Rnd.get(100) < _rate) ? _dispelAbnormals.get(info.getSkill().getAbnormalType()) : null;
return (abnormalLevel != null) && ((abnormalLevel < 0) || (abnormalLevel >= info.getSkill().getAbnormalLvl()));
}, true);
}
}

View File

@ -59,7 +59,7 @@ public final class MagicalAbnormalDispelAttack extends AbstractEffect
public void instant(L2Character effector, L2Character effected, Skill skill, L2ItemInstance item)
{
// First dispells the effect, then does damage. Sometimes the damage is evaded, but debuff is still dispelled.
if (effector.isAlikeDead() || (_abnormalType == AbnormalType.NONE) || !effected.getEffectList().stopSkillEffects(true, _abnormalType))
if (effector.isAlikeDead() || (_abnormalType == AbnormalType.NONE) || !effected.getEffectList().stopEffects(_abnormalType))
{
return;
}

View File

@ -82,7 +82,7 @@ public final class MagicalAttack extends AbstractEffect
double damage = Formulas.calcMagicDam(effector, effected, skill, effector.getMAtk(), _power, effected.getMDef(), sps, bss, mcrit);
// Apply debuff mod
if (effected.getEffectList().hasDebuffs())
if (effected.getEffectList().getDebuffCount() > 0)
{
damage *= _debuffModifier;
}

View File

@ -76,7 +76,7 @@ public final class StealAbnormal extends AbstractEffect
stolen.setAbnormalTime(infoToSteal.getTime()); // Copy the remaining time.
// To include all the effects, it's required to go through the template rather the buff info.
infoToSteal.getSkill().applyEffectScope(EffectScope.GENERAL, stolen, true, true);
effected.getEffectList().remove(true, infoToSteal, null);
effected.getEffectList().remove(infoToSteal, true, true);
effector.getEffectList().add(stolen);
}
}

View File

@ -20,7 +20,6 @@ import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.skills.AbnormalType;
import com.l2jmobius.gameserver.model.skills.BuffInfo;
import com.l2jmobius.gameserver.model.skills.ISkillCondition;
import com.l2jmobius.gameserver.model.skills.Skill;
@ -45,12 +44,8 @@ public class OpCheckAbnormalSkillCondition implements ISkillCondition
{
if (target.isCharacter())
{
final BuffInfo info = ((L2Character) target).getEffectList().getBuffInfoByAbnormalType(_type);
if (_hasAbnormal)
{
return (info != null) && (info.getSkill().getAbnormalLvl() >= _level);
}
return (info == null) || (info.getSkill().getAbnormalLvl() < _level);
final boolean hasAbnormal = ((L2Character) target).getEffectList().hasAbnormalType(_type, info -> (info.getSkill().getAbnormalLvl() >= _level));
return _hasAbnormal ? hasAbnormal : !hasAbnormal;
}
return false;
}

View File

@ -21,7 +21,6 @@ import java.util.Arrays;
import java.util.Calendar;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.logging.Level;
import com.l2jmobius.gameserver.data.xml.impl.SkillData;
@ -34,7 +33,6 @@ import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.instancezone.Instance;
import com.l2jmobius.gameserver.model.skills.BuffInfo;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.network.SystemMessageId;
import com.l2jmobius.gameserver.network.serverpackets.SystemMessage;
@ -492,25 +490,8 @@ public final class Kamaloka extends AbstractInstance
*/
private static final void removeBuffs(L2Character ch)
{
final Function<BuffInfo, Boolean> removeBuffs = info ->
{
if ((info != null) && !info.getSkill().isStayAfterDeath() && (Arrays.binarySearch(BUFFS_WHITELIST, info.getSkill().getId()) < 0))
{
info.getEffected().getEffectList().stopSkillEffects(true, info.getSkill());
return true;
}
return false;
};
ch.getEffectList().forEach(removeBuffs, false);
if (ch.hasSummon())
{
for (L2Npc s : ch.getSummonedNpcs())
{
s.getEffectList().forEach(removeBuffs, false);
}
}
// Stop all buffs.
ch.getEffectList().stopEffects(info -> (info != null) && !info.getSkill().isStayAfterDeath() && (Arrays.binarySearch(BUFFS_WHITELIST, info.getSkill().getId()) < 0), true);
}
/**

View File

@ -164,7 +164,7 @@ public final class Nursery extends AbstractInstance
}
}
final BuffInfo energyInfo = player.getEffectList().getBuffInfoByAbnormalType(ENERGY_SKILL_1.getSkill().getAbnormalType());
final BuffInfo energyInfo = player.getEffectList().getFirstBuffInfoByAbnormalType(ENERGY_SKILL_1.getSkill().getAbnormalType());
final int energyLv = energyInfo == null ? 0 : energyInfo.getSkill().getAbnormalLvl();
if ((energyLv > 0) && (gameStage == 1) && (energyInfo != null))

View File

@ -101,16 +101,16 @@ public final class SSQMonasteryOfSilence extends AbstractInstance
startQuestTimer("FOLLOW", 3000, elcadia, player);
final L2Npc guardianStaff = player.getInstanceWorld().getNpc(GUARDIAN_STAFF);
guardianStaff.startAbnormalVisualEffect(AbnormalVisualEffect.INVINCIBILITY);
guardianStaff.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.INVINCIBILITY);
guardianStaff.setIsInvul(true);
final L2Npc guardianSword = player.getInstanceWorld().getNpc(GUARDIAN_SWORD);
guardianSword.startAbnormalVisualEffect(AbnormalVisualEffect.INVINCIBILITY);
guardianSword.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.INVINCIBILITY);
guardianSword.setIsInvul(true);
final L2Npc guardianShield = player.getInstanceWorld().getNpc(GUARDIAN_SHIELD);
guardianShield.startAbnormalVisualEffect(AbnormalVisualEffect.INVINCIBILITY);
guardianShield.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.INVINCIBILITY);
guardianShield.setIsInvul(true);
final L2Npc guardianScroll = player.getInstanceWorld().getNpc(GUARDIAN_SCROLL);
guardianScroll.startAbnormalVisualEffect(AbnormalVisualEffect.INVINCIBILITY);
guardianScroll.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.INVINCIBILITY);
guardianScroll.setIsInvul(true);
}
else

View File

@ -206,7 +206,7 @@ public final class Q10295_SevenSignsSolinasTomb extends Quest
takeItems(player, STAFF_RELIC, -1);
final L2Npc guardian = player.getInstanceWorld().getNpc(GUARDIAN_STAFF);
guardian.setIsInvul(false);
guardian.stopAbnormalVisualEffect(AbnormalVisualEffect.INVINCIBILITY);
guardian.getEffectList().stopAbnormalVisualEffect(AbnormalVisualEffect.INVINCIBILITY);
}
return null;
}
@ -217,7 +217,7 @@ public final class Q10295_SevenSignsSolinasTomb extends Quest
takeItems(player, SWORD_RELIC, -1);
final L2Npc guardian = player.getInstanceWorld().getNpc(GUARDIAN_SWORD);
guardian.setIsInvul(false);
guardian.stopAbnormalVisualEffect(AbnormalVisualEffect.INVINCIBILITY);
guardian.getEffectList().stopAbnormalVisualEffect(AbnormalVisualEffect.INVINCIBILITY);
}
return null;
}
@ -228,7 +228,7 @@ public final class Q10295_SevenSignsSolinasTomb extends Quest
takeItems(player, SHIELD_RELIC, -1);
final L2Npc guardian = player.getInstanceWorld().getNpc(GUARDIAN_SHIELD);
guardian.setIsInvul(false);
guardian.stopAbnormalVisualEffect(AbnormalVisualEffect.INVINCIBILITY);
guardian.getEffectList().stopAbnormalVisualEffect(AbnormalVisualEffect.INVINCIBILITY);
}
return null;
}
@ -239,7 +239,7 @@ public final class Q10295_SevenSignsSolinasTomb extends Quest
takeItems(player, SCROLL_RELIC, -1);
final L2Npc guardian = player.getInstanceWorld().getNpc(GUARDIAN_SCROLL);
guardian.setIsInvul(false);
guardian.stopAbnormalVisualEffect(AbnormalVisualEffect.INVINCIBILITY);
guardian.getEffectList().stopAbnormalVisualEffect(AbnormalVisualEffect.INVINCIBILITY);
}
return null;
}

View File

@ -6273,6 +6273,7 @@
<value level="3">8</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>35</activateRate>
@ -6918,6 +6919,7 @@
<value level="6">8</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>100</activateRate>

View File

@ -451,6 +451,7 @@
<value level="4">8</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>35</activateRate>
@ -1643,6 +1644,7 @@
<value level="5">8</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>70</activateRate>

View File

@ -964,6 +964,7 @@
<value level="49">8</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>50</activateRate>

View File

@ -6194,6 +6194,7 @@
<value level="10">8</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>50</activateRate>

View File

@ -941,6 +941,7 @@
<!-- Confirmed CT2.5 -->
<abnormalLvl>1</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>50</activateRate>
@ -3185,6 +3186,7 @@
<value level="4">7</value>
</abnormalLvl>
<abnormalTime>10</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>50</activateRate>
@ -3706,6 +3708,7 @@
<value level="4">7</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>70</activateRate>
@ -4257,6 +4260,7 @@
<value level="4">7</value>
</abnormalLvl>
<abnormalTime>10</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<activateRate>50</activateRate>
<affectLimit>5-12</affectLimit>

View File

@ -2582,6 +2582,7 @@
<skill id="688" toLevel="1" name="Divine Rogue Bleed Attack">
<abnormalLvl>3</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>50</activateRate>

View File

@ -1590,6 +1590,7 @@
<!-- Confirmed CT2.5 -->
<abnormalLvl>8</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>70</activateRate>
@ -2052,6 +2053,7 @@
<!-- Confirmed CT2.5 -->
<abnormalLvl>3</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>50</activateRate>
@ -3881,6 +3883,7 @@
<skill id="798" toLevel="1" name="Divine Warrior Crippling Attack">
<abnormalLvl>3</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>50</activateRate>

View File

@ -247,6 +247,7 @@
<skill id="904" toLevel="6" name="Corpse Burst">
<abnormalLvl>8</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<activateRate>80</activateRate>
<affectLimit>6-12</affectLimit>
@ -589,6 +590,7 @@
<skill id="909" toLevel="6" name="Ice Fog">
<abnormalLvl>8</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<activateRate>80</activateRate>
<affectLimit>6-12</affectLimit>
@ -679,6 +681,7 @@
<skill id="910" toLevel="6" name="Water Jet">
<abnormalLvl>1</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<activateRate>80</activateRate>
<affectLimit>6-12</affectLimit>
@ -3138,6 +3141,7 @@
<!-- Confirmed CT2.5 -->
<abnormalLvl>6</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>100</activateRate>

View File

@ -3995,6 +3995,7 @@
<value level="5">6</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>70</activateRate>

View File

@ -2786,6 +2786,7 @@
<value level="6">8</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>35</activateRate>
@ -2864,6 +2865,7 @@
<value level="7">8</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>70</activateRate>

View File

@ -479,6 +479,7 @@
<value level="6">8</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>60</activateRate>
@ -3759,6 +3760,7 @@
<value level="17">8</value>
</abnormalLvl>
<abnormalTime>15</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>50</activateRate>

View File

@ -4508,7 +4508,7 @@
<slot>SONG_OF_WARDING</slot>
</effect>
<effect name="DispelBySlotProbability">
<slot>SONG_OF_WARDING</slot>
<dispel>SONG_OF_WARDING</dispel>
</effect>
<effect name="MAtk">
<amount>20</amount>
@ -4546,7 +4546,7 @@
<slot>SONG_OF_WARDING</slot>
</effect>
<effect name="DispelBySlotProbability">
<slot>SONG_OF_WARDING</slot>
<dispel>SONG_OF_WARDING</dispel>
</effect>
<effect name="MAtk">
<amount>20</amount>
@ -4592,7 +4592,7 @@
<slot>SONG_OF_EARTH</slot>
</effect>
<effect name="DispelBySlotProbability">
<slot>SONG_OF_EARTH</slot>
<dispel>SONG_OF_EARTH</dispel>
</effect>
<effect name="PAtk">
<amount>12</amount>
@ -4630,7 +4630,7 @@
<slot>SONG_OF_EARTH</slot>
</effect>
<effect name="DispelBySlotProbability">
<slot>SONG_OF_EARTH</slot>
<dispel>SONG_OF_EARTH</dispel>
</effect>
<effect name="PAtk">
<amount>12</amount>
@ -4676,7 +4676,7 @@
<slot>SONG_OF_VITALITY</slot>
</effect>
<effect name="DispelBySlotProbability">
<slot>SONG_OF_VITALITY</slot>
<dispel>SONG_OF_VITALITY</dispel>
</effect>
<effect name="MaxHp">
<amount>30</amount>
@ -4714,7 +4714,7 @@
<slot>SONG_OF_VITALITY</slot>
</effect>
<effect name="DispelBySlotProbability">
<slot>SONG_OF_VITALITY</slot>
<dispel>SONG_OF_VITALITY</dispel>
</effect>
<effect name="MaxHp">
<amount>30</amount>
@ -4760,7 +4760,7 @@
<slot>SONG_OF_VENGEANCE</slot>
</effect>
<effect name="DispelBySlotProbability">
<slot>SONG_OF_VENGEANCE</slot>
<dispel>SONG_OF_VENGEANCE</dispel>
</effect>
<effect name="VampiricAttack">
<amount>8</amount>
@ -4797,7 +4797,7 @@
<slot>SONG_OF_VENGEANCE</slot>
</effect>
<effect name="DispelBySlotProbability">
<slot>SONG_OF_VENGEANCE</slot>
<dispel>SONG_OF_VENGEANCE</dispel>
</effect>
<effect name="VampiricAttack">
<amount>8</amount>
@ -4842,7 +4842,7 @@
<slot>SONG_OF_RENEWAL</slot>
</effect>
<effect name="DispelBySlotProbability">
<slot>SONG_OF_RENEWAL</slot>
<dispel>SONG_OF_RENEWAL</dispel>
</effect>
<effect name="MagicCriticalRate">
<amount>100</amount>
@ -4901,7 +4901,7 @@
<slot>SONG_OF_RENEWAL</slot>
</effect>
<effect name="DispelBySlotProbability">
<slot>SONG_OF_RENEWAL</slot>
<dispel>SONG_OF_RENEWAL</dispel>
</effect>
<effect name="MagicCriticalRate">
<amount>100</amount>
@ -4980,7 +4980,7 @@
<slot>SONG_OF_MEDITATION</slot>
</effect>
<effect name="DispelBySlotProbability">
<slot>SONG_OF_MEDITATION</slot>
<dispel>SONG_OF_MEDITATION</dispel>
</effect>
<effect name="MagicalAttackSpeed">
<amount>30</amount>
@ -5027,7 +5027,7 @@
<slot>SONG_OF_MEDITATION</slot>
</effect>
<effect name="DispelBySlotProbability">
<slot>SONG_OF_MEDITATION</slot>
<dispel>SONG_OF_MEDITATION</dispel>
</effect>
<effect name="MagicalAttackSpeed">
<amount>30</amount>

View File

@ -2889,6 +2889,7 @@
<skill id="2993" toLevel="1" name="Ancient herb - Deceiver">
<abnormalLvl>9</abnormalLvl>
<abnormalTime>3600</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<icon>icon.freed_soul_core_i00</icon>

View File

@ -23,6 +23,7 @@
<skill id="3005" toLevel="1" name="Bleed">
<abnormalLvl>5</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>50</activateRate>
@ -427,6 +428,7 @@
<value level="6">7</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>
@ -474,6 +476,7 @@
<!-- Confirmed CT2.5 -->
<abnormalLvl>5</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>
@ -605,6 +608,7 @@
<value level="6">7</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>
@ -1180,6 +1184,7 @@
<value level="6">7</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>
@ -1245,6 +1250,7 @@
<value level="6">7</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>
@ -1951,6 +1957,7 @@
<!-- Confirmed CT2.5 -->
<abnormalLvl>7</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>42</activateRate>
@ -1980,6 +1987,7 @@
<!-- Confirmed CT2.5 -->
<abnormalLvl>7</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>35</activateRate>
@ -2013,6 +2021,7 @@
<!-- Confirmed CT2.5 -->
<abnormalLvl>7</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>12</activateRate>
@ -2046,6 +2055,7 @@
<!-- Confirmed CT2.5 -->
<abnormalLvl>7</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>24</activateRate>
@ -2244,6 +2254,7 @@
<!-- Confirmed CT2.5 -->
<abnormalLvl>7</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>10</activateRate>
@ -2281,6 +2292,7 @@
<!-- Confirmed CT2.5 -->
<abnormalLvl>7</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>18</activateRate>
@ -3404,6 +3416,7 @@
<value level="20">8</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>40</activateRate>
@ -3497,6 +3510,7 @@
<value level="20">8</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>40</activateRate>

View File

@ -202,6 +202,7 @@
<value level="20">8</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>40</activateRate>
@ -296,6 +297,7 @@
<value level="20">8</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>40</activateRate>
@ -974,6 +976,7 @@
<value level="20">8</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>40</activateRate>
@ -1067,6 +1070,7 @@
<value level="20">8</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>40</activateRate>
@ -6753,6 +6757,7 @@
<value level="15">8</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>40</activateRate>
@ -6883,6 +6888,7 @@
<value level="15">8</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>40</activateRate>

View File

@ -941,6 +941,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>70</activateRate>
@ -1026,6 +1027,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>35</activateRate>
@ -1848,6 +1850,7 @@
<value level="15">8</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>70</activateRate>
@ -3283,6 +3286,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>100</activateRate>

View File

@ -2052,6 +2052,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>5</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>10</activateRate>
@ -2119,6 +2120,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>5</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>10</activateRate>
@ -4065,6 +4067,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>90</activateRate>
@ -4514,6 +4517,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>90</activateRate>
@ -5177,6 +5181,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>90</activateRate>

View File

@ -306,6 +306,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>90</activateRate>
@ -1788,6 +1789,7 @@
<!-- Freya retail confirmed -->
<abnormalLvl>9</abnormalLvl>
<abnormalTime>3600</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<castRange>2000</castRange>
@ -2611,6 +2613,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>35</activateRate>

View File

@ -419,6 +419,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<castRange>1500</castRange>
@ -2496,6 +2497,7 @@
<!-- Freya retail confirmed -->
<abnormalLvl>10</abnormalLvl>
<abnormalTime>120</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<castRange>600</castRange>
<effectPoint>100</effectPoint>

View File

@ -2479,6 +2479,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>100</activateRate>
@ -2711,6 +2712,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>70</activateRate>
@ -3874,6 +3876,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>100</activateRate>
@ -3957,6 +3960,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>100</activateRate>
@ -4040,6 +4044,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>100</activateRate>

View File

@ -549,6 +549,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>35</activateRate>
@ -1054,6 +1055,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>50</activateRate>
@ -2931,6 +2933,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>35</activateRate>

View File

@ -2705,6 +2705,7 @@
<value level="15">8</value>
</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>40</activateRate>
@ -2787,6 +2788,7 @@
<value level="15">8</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>40</activateRate>

View File

@ -1666,6 +1666,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>15</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>70</activateRate>
@ -1808,6 +1809,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>10</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>100</activateRate>
@ -2789,6 +2791,7 @@
<!-- Confirmed CT2.5 -->
<abnormalLvl>1</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>80</activateRate>

View File

@ -130,6 +130,7 @@
<value level="9">10</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>80</activateRate>
@ -214,6 +215,7 @@
<value level="9">10</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>80</activateRate>
@ -352,6 +354,7 @@
<!-- Condition causing target to instantly decrease HP by poison. Effect 8-10. -->
<abnormalLvl>8</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>60</activateRate>
@ -560,6 +563,7 @@
<value level="9">10</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>80</activateRate>
@ -643,6 +647,7 @@
<value level="9">10</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>80</activateRate>
@ -1795,6 +1800,7 @@
<value level="9">10</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>80</activateRate>
@ -2930,6 +2936,7 @@
<value level="9">10</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>80</activateRate>
@ -3014,6 +3021,7 @@
<value level="9">10</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>80</activateRate>
@ -3129,6 +3137,7 @@
<!-- Condition causing target to instantly decrease HP by poison. Effect 8-10. -->
<abnormalLvl>8</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>60</activateRate>
@ -3288,6 +3297,7 @@
<value level="9">10</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>80</activateRate>
@ -3371,6 +3381,7 @@
<value level="9">10</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>80</activateRate>
@ -4384,6 +4395,7 @@
<value level="9">10</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>80</activateRate>

View File

@ -358,6 +358,7 @@
<!-- Condition causing target to be poisoned. -->
<abnormalLvl>1</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>80</activateRate>
@ -418,6 +419,7 @@
<!-- Condition causing target to instantly decrease HP by bleeding. Effect 2-10. -->
<abnormalLvl>1</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>80</activateRate>
@ -1017,6 +1019,7 @@
<skill id="5444" toLevel="2" name="Maul">
<abnormalLvl>3</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>50</activateRate>
@ -1243,6 +1246,7 @@
<value level="7">8</value>
</abnormalLvl>
<abnormalTime>5</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<activateRate>80</activateRate>
<isTriggeredSkill>true</isTriggeredSkill>
@ -2067,6 +2071,7 @@
<!-- Beleth Skills -->
<abnormalLvl>10</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>100</activateRate>

View File

@ -5,6 +5,7 @@
<!-- Darion Skills -->
<abnormalLvl>10</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>90</activateRate>
@ -860,6 +861,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>10</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>100</activateRate>
@ -2877,6 +2879,7 @@
<skill id="5594" toLevel="1" name="Poison">
<abnormalLvl>10</abnormalLvl>
<abnormalTime>5</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>11</activateRate>
@ -2897,6 +2900,7 @@
<skill id="5595" toLevel="1" name="Bleed">
<abnormalLvl>10</abnormalLvl>
<abnormalTime>5</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>11</activateRate>

View File

@ -3466,6 +3466,7 @@
<!-- Masterwork Dagger of Poison (3861) -->
<abnormalLvl>8</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>70</activateRate>

View File

@ -151,6 +151,7 @@
<skill id="5706" toLevel="1" name="Poison">
<abnormalLvl>7</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>70</activateRate>
@ -2968,6 +2969,7 @@
<skill id="5795" toLevel="1" name="Poison">
<abnormalLvl>9</abnormalLvl>
<abnormalTime>30</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>70</activateRate>
@ -3056,6 +3058,7 @@
<skill id="5799" toLevel="1" name="Bleed">
<abnormalLvl>9</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>90</activateRate>

View File

@ -1111,6 +1111,7 @@
<value level="12">10</value>
</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>100</activateRate>
@ -1607,6 +1608,7 @@
<value level="10">10</value>
</abnormalLvl>
<abnormalTime>60</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>70</activateRate>
@ -1654,6 +1656,7 @@
<value level="10">10</value>
</abnormalLvl>
<abnormalTime>60</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>70</activateRate>
@ -1705,6 +1708,7 @@
<value level="10">10</value>
</abnormalLvl>
<abnormalTime>60</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>70</activateRate>
@ -1755,6 +1759,7 @@
<value level="10">10</value>
</abnormalLvl>
<abnormalTime>60</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>70</activateRate>
@ -1803,6 +1808,7 @@
<value level="10">10</value>
</abnormalLvl>
<abnormalTime>60</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>80</activateRate>
@ -1849,6 +1855,7 @@
<value level="10">10</value>
</abnormalLvl>
<abnormalTime>60</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>80</activateRate>
@ -1898,6 +1905,7 @@
<value level="10">10</value>
</abnormalLvl>
<abnormalTime>60</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>80</activateRate>
@ -2090,6 +2098,7 @@
<skill id="5879" toLevel="1" name="Cruel Expunge">
<abnormalLvl>9</abnormalLvl>
<abnormalTime>60</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>80</activateRate>
@ -2199,6 +2208,7 @@
<skill id="5883" toLevel="1" name="Meggling Injury">
<abnormalLvl>9</abnormalLvl>
<abnormalTime>60</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>80</activateRate>

View File

@ -1364,6 +1364,7 @@
<skill id="5960" toLevel="1" name="Stronghold Reactivate">
<abnormalLvl>2</abnormalLvl>
<abnormalTime>5</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>10</activateRate>

View File

@ -219,6 +219,7 @@
<!-- Confirmed CT2.5 -->
<abnormalLvl>6</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>80</activateRate>
@ -1394,6 +1395,7 @@
<skill id="6269" toLevel="1" name="Trojan Poison">
<abnormalLvl>10</abnormalLvl>
<abnormalTime>10</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>80</activateRate>

View File

@ -180,6 +180,7 @@
<!-- Monastery of Silence Skills -->
<abnormalLvl>3</abnormalLvl>
<abnormalTime>10</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>100</activateRate>
@ -919,6 +920,7 @@
<!-- Sel Mahum Training Grounds Skills -->
<abnormalLvl>3</abnormalLvl>
<abnormalTime>3</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>1</activateRate>
@ -1083,6 +1085,7 @@
<!-- Sel Mahum Training Grounds Skills -->
<abnormalLvl>3</abnormalLvl>
<abnormalTime>3</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>1</activateRate>
@ -1637,6 +1640,7 @@
<!-- Profuse bleeding causes you to loss 93 HP per second for 15 seconds. -->
<abnormalLvl>3</abnormalLvl>
<abnormalTime>15</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>100</activateRate>
@ -1728,6 +1732,7 @@
<skill id="6382" toLevel="1" name="Bistakon Rolling Claw">
<abnormalLvl>3</abnormalLvl>
<abnormalTime>15</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>100</activateRate>
@ -1814,6 +1819,7 @@
<skill id="6385" toLevel="1" name="Bistakon Critical Claw">
<abnormalLvl>3</abnormalLvl>
<abnormalTime>15</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>100</activateRate>
@ -2101,6 +2107,7 @@
<skill id="6395" toLevel="1" name="Kokracon Dreadful Clow">
<abnormalLvl>3</abnormalLvl>
<abnormalTime>15</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>100</activateRate>

View File

@ -59,6 +59,7 @@
<value level="5">15</value>
</abnormalLvl>
<abnormalTime>60</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<basicProperty>PHYSICAL</basicProperty>
@ -1038,6 +1039,7 @@
<skill id="6437" toLevel="7" name="Freezing Core Area">
<abnormalLvl>10</abnormalLvl>
<abnormalTime>15</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>80</activateRate>
@ -1074,6 +1076,7 @@
<skill id="6438" toLevel="1" name="Penalty Area">
<abnormalLvl>10</abnormalLvl>
<abnormalTime>15</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>80</activateRate>

View File

@ -788,6 +788,7 @@
<!-- "For 5 seconds, inflicted with poison with 800 HP decrease per second." -->
<operateType>A2</operateType>
<effectPoint>-100</effectPoint>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE</rideState>
@ -955,6 +956,7 @@
<!-- FIXME: value unconfirmed -->
<abnormalLvl>9</abnormalLvl>
<abnormalTime>120</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>30</activateRate>
@ -1245,6 +1247,7 @@
<!-- FIXME: value unconfirmed -->
<abnormalLvl>9</abnormalLvl>
<abnormalTime>120</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>80</activateRate>
@ -1906,6 +1909,7 @@
<!-- High Five Skill -->
<abnormalLvl>9</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>80</activateRate>

View File

@ -453,6 +453,7 @@
<skill id="6815" toLevel="16" name="Deadly Poison">
<!-- "Poison seeps deeper and for 10 seconds, 800 HP is decreased every second. If not treated, the poison will worsen." -->
<operateType>A2</operateType>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -490,6 +491,7 @@
<skill id="6816" toLevel="16" name="Deadly Bleed">
<!-- "Bleed becomes deeper and for 10 seconds, 800 HP is decreased every second. If not treated, the bleed will worsen." -->
<operateType>A2</operateType>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -723,6 +725,7 @@
<effectPoint>-10000</effectPoint>
<icon>icon.skill0096</icon>
<operateType>A2</operateType>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<magicCriticalRate>-5</magicCriticalRate>
@ -825,6 +828,7 @@
<effectPoint>-10000</effectPoint>
<icon>icon.skill0096</icon>
<operateType>A2</operateType>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<magicCriticalRate>-5</magicCriticalRate>
@ -1493,6 +1497,7 @@
<!-- FIXME: value unconfirmed -->
<abnormalLvl>9</abnormalLvl>
<abnormalTime>6</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>70</activateRate>
@ -1525,6 +1530,7 @@
<!-- FIXME: value unconfirmed -->
<abnormalLvl>10</abnormalLvl>
<abnormalTime>10</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>80</activateRate>
@ -1570,6 +1576,7 @@
<!-- FIXME: value unconfirmed -->
<abnormalLvl>9</abnormalLvl>
<abnormalTime>8</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<castRange>100</castRange>
@ -1824,6 +1831,7 @@
<!-- FIXME: value unconfirmed -->
<abnormalLvl>10</abnormalLvl>
<abnormalTime>8</abnormalTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<activateRate>80</activateRate>
@ -2278,6 +2286,7 @@
<!-- "For 10 seconds, inflicts bleed and decreases 100 HP every second." -->
<operateType>A2</operateType>
<effectPoint>-10000</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>

View File

@ -1468,6 +1468,7 @@
<skill id="7067" toLevel="1" name="Test Range Charge">
<abnormalLvl>1</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>100</activateRate>
@ -1611,6 +1612,7 @@
<skill id="7076" toLevel="1" name="Test - Delay Debuff">
<abnormalLvl>8</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>100</activateRate>

View File

@ -3352,7 +3352,7 @@
<affectScope>SINGLE</affectScope>
</skill>
<skill id="9191" toLevel="1" name="Scroll of Escape: Cruma Tower">
<!-- AUTO GENERATED SKILL -->
<!-- Glory Days confirmed -->
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -3362,6 +3362,8 @@
<hitTime>20000</hitTime>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<itemConsumeId>17726</itemConsumeId> <!-- Scroll of Escape: Cruma Tower -->
<itemConsumeCount>1</itemConsumeCount>
<conditions>
<condition name="OpAlignment">
<affectType>CASTER</affectType>
@ -3369,9 +3371,16 @@
</condition>
<condition name="OpCanEscape" />
</conditions>
<effects>
<effect name="Teleport">
<x>17225</x>
<y>114173</y>
<z>-3440</z>
</effect>
</effects>
</skill>
<skill id="9192" toLevel="1" name="Scroll of Escape: Tower of Insolence">
<!-- AUTO GENERATED SKILL -->
<!-- Glory Days confirmed -->
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -3381,6 +3390,8 @@
<hitTime>20000</hitTime>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<itemConsumeId>17727</itemConsumeId> <!-- Scroll of Escape: Tower of Insolence -->
<itemConsumeCount>1</itemConsumeCount>
<conditions>
<condition name="OpAlignment">
<affectType>CASTER</affectType>
@ -3388,6 +3399,13 @@
</condition>
<condition name="OpCanEscape" />
</conditions>
<effects>
<effect name="Teleport">
<x>114649</x>
<y>11115</y>
<z>-5120</z>
</effect>
</effects>
</skill>
<skill id="9193" toLevel="1" name="Soulshot (R-grade)">
<!-- AUTO GENERATED SKILL -->
@ -3438,7 +3456,7 @@
<affectScope>SINGLE</affectScope>
</skill>
<skill id="9197" toLevel="1" name="Scroll: 1,000,000 SP">
<!-- AUTO GENERATED SKILL -->
<!-- Updated to Helios -->
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<hitTime>200</hitTime>
@ -3450,39 +3468,141 @@
<reuseDelay>3000</reuseDelay>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="GiveSp">
<sp>1000000</sp>
</effect>
</effects>
</skill>
<skill id="9198" toLevel="1" name="Elixir: Horn Melody">
<!-- AUTO GENERATED SKILL -->
<!-- Glory Days confirmed -->
<!-- For 30 minutes, increases P. Atk. by 17%, P. Def. by 15%, M. Atk. by 79%, and M. Def. by 30%. -->
<abnormalLvl>1</abnormalLvl>
<abnormalTime>1800</abnormalTime>
<abnormalType>BUFF_SPECIAL_ATTACK</abnormalType>
<icon>icon.skill11517</icon>
<operateType>A2</operateType>
<effectPoint>1</effectPoint>
<abnormalType>BUFF_SPECIAL_ATTACK</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<magicCriticalRate>5</magicCriticalRate>
<magicLvl>85</magicLvl>
<abnormalLvl>1</abnormalLvl>
<abnormalTime>1800</abnormalTime>
<isMagic>1</isMagic>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="PAtk">
<amount>17</amount>
<mode>PER</mode>
</effect>
<effect name="MAtk">
<amount>79</amount>
<mode>PER</mode>
</effect>
<effect name="PhysicalDefence">
<amount>15</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalDefence">
<amount>30</amount>
<mode>PER</mode>
</effect>
<effect name="DispelBySlotProbability">
<dispel>IMPROVE_PA_PD_UP;PA_UP;PD_UP;IMPROVE_MA_MD_UP;MD_UP;MA_UP;KAMAEL_SPECIAL</dispel>
<rate>100</rate>
</effect>
<effect name="BlockAbnormalSlot">
<slot>IMPROVE_PA_PD_UP;PA_UP;PD_UP;IMPROVE_MA_MD_UP;MD_UP;MA_UP;KAMAEL_SPECIAL</slot>
</effect>
</effects>
</skill>
<skill id="9199" toLevel="1" name="Elixir: Drum Melody">
<!-- AUTO GENERATED SKILL -->
<!-- For 30 minutes, increases Max MP by 20%, HP recovery bonus by 20%, M. Critical Rate by 20, Critical Damage during a normal attack by 20%, P. Atk. by 10%, P. Def. by 20%, Atk. Spd. by 20%, M. Atk. by 20%, M. Def. by 20%, Casting Spd. by 20%, and Debuff Resistance by 10%. Decreases damage received from a critical attack by 30% and Speed by 15%, and additionally increases Critical Damage during a normal attack when receiving more than a certain amount of damage. -->
<!-- Glory Days confirmed -->
<!-- For 30 minutes, increases Max MP by 20%, HP recovery bonus by 20%, M. Critical Rate by 20, Critical Damage during a normal attack by 20%, P. Atk. by 10%, P. Def. by 20%, Atk. Spd. by 20%, M. Atk. by 20%, M. Def. by 20%, Casting Spd. by 20%, and Debuff Resistance by 10%. Decreases damage received from a critical attack by 30% and Speed by 15%, and additionally increases Critical Damage during a normal attack when receiving more than a certain amount of damage. -->
<abnormalLvl>1</abnormalLvl>
<abnormalTime>1800</abnormalTime>
<abnormalType>BUFF_SPECIAL_DEFENCE</abnormalType>
<icon>icon.skill11522</icon>
<operateType>A2</operateType>
<effectPoint>1</effectPoint>
<abnormalType>BUFF_SPECIAL_DEFENCE</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<magicCriticalRate>5</magicCriticalRate>
<magicLvl>85</magicLvl>
<abnormalLvl>1</abnormalLvl>
<abnormalTime>1800</abnormalTime>
<isMagic>1</isMagic>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="TriggerSkillByDamage">
<!-- Critical Damage Increase -->
<attackerType>L2Character</attackerType>
<minAttackerLevel>1</minAttackerLevel>
<maxAttackerLevel>107</maxAttackerLevel>
<chance>80</chance>
<targetType>SELF</targetType>
<minDamage>300</minDamage>
<skillId>11569</skillId>
<skillLevel>1</skillLevel>
</effect>
<effect name="MaxMp">
<amount>20</amount>
<mode>PER</mode>
</effect>
<effect name="HpRegen">
<amount>20</amount>
<mode>PER</mode>
</effect>
<effect name="MagicCriticalRate">
<amount>20</amount>
<mode>DIFF</mode>
</effect>
<effect name="CriticalDamage">
<amount>20</amount>
<mode>PER</mode>
</effect>
<effect name="PAtk">
<amount>10</amount>
<mode>PER</mode>
</effect>
<effect name="MAtk">
<amount>20</amount>
<mode>PER</mode>
</effect>
<effect name="PhysicalDefence">
<amount>20</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalDefence">
<amount>20</amount>
<mode>PER</mode>
</effect>
<effect name="PhysicalAttackSpeed">
<amount>20</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalAttackSpeed">
<amount>20</amount>
<mode>PER</mode>
</effect>
<effect name="ResistAbnormalByCategory">
<amount>-10</amount>
<slot>DEBUFF</slot>
</effect>
<effect name="DefenceCriticalDamage">
<amount>-30</amount>
<mode>PER</mode>
</effect>
<effect name="Speed">
<amount>-15</amount>
<mode>PER</mode>
</effect>
<effect name="DispelBySlotProbability">
<dispel>MULTI_BUFF;COUNTER_CRITICAL</dispel>
<rate>100</rate>
</effect>
<effect name="BlockAbnormalSlot">
<slot>MULTI_BUFF;COUNTER_CRITICAL</slot>
</effect>
</effects>
</skill>
</list>

File diff suppressed because it is too large Load Diff

View File

@ -1226,80 +1226,121 @@
<affectScope>SINGLE</affectScope>
</skill>
<skill id="9350" toLevel="1" name="Fast Run">
<!-- AUTO GENERATED SKILL -->
<!-- Glory Days confirmed -->
<!-- For 30 sec., Black Bear runs at top speed. -->
<abnormalLvl>1</abnormalLvl>
<abnormalTime>30</abnormalTime>
<abnormalType>SPECIAL_RIDE</abnormalType>
<icon>icon.skill9206</icon>
<operateType>A2</operateType>
<effectPoint>1</effectPoint>
<abnormalType>SPECIAL_RIDE</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<magicCriticalRate>5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLvl>1</magicLvl>
<abnormalLvl>1</abnormalLvl>
<abnormalTime>30</abnormalTime>
<reuseDelay>45000</reuseDelay>
<isMagic>2</isMagic>
<withoutAction>true</withoutAction>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="Speed">
<amount>60</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="9351" toLevel="1" name="Pirate's Eyepatch - STR">
<!-- AUTO GENERATED SKILL -->
<!-- STR + 3. -->
<icon>icon.accessory_eye_bandage_i00</icon>
<operateType>P</operateType>
<magicCriticalRate>5</magicCriticalRate>
<magicLvl>1</magicLvl>
<effects>
<effect name="StatUp">
<amount>3</amount>
<stat>STR</stat>
</effect>
</effects>
</skill>
<skill id="9352" toLevel="1" name="Pirate's Eyepatch - DEX">
<!-- AUTO GENERATED SKILL -->
<!-- DEX + 3. -->
<icon>icon.accessory_eye_bandage_i00</icon>
<operateType>P</operateType>
<magicCriticalRate>5</magicCriticalRate>
<magicLvl>1</magicLvl>
<effects>
<effect name="StatUp">
<amount>3</amount>
<stat>DEX</stat>
</effect>
</effects>
</skill>
<skill id="9353" toLevel="1" name="Outlaw's Eyepatch - CON">
<!-- AUTO GENERATED SKILL -->
<!-- CON + 3. -->
<icon>icon.accessory_outlaw_eyepatch_i00</icon>
<operateType>P</operateType>
<magicCriticalRate>5</magicCriticalRate>
<magicLvl>1</magicLvl>
<effects>
<effect name="StatUp">
<amount>3</amount>
<stat>CON</stat>
</effect>
</effects>
</skill>
<skill id="9354" toLevel="1" name="Outlaw's Eyepatch - MEN">
<!-- AUTO GENERATED SKILL -->
<!-- MEN + 3. -->
<icon>icon.accessory_outlaw_eyepatch_i00</icon>
<operateType>P</operateType>
<magicCriticalRate>5</magicCriticalRate>
<magicLvl>1</magicLvl>
<effects>
<effect name="StatUp">
<amount>3</amount>
<stat>MEN</stat>
</effect>
</effects>
</skill>
<skill id="9355" toLevel="1" name="Eyepatch - INT">
<!-- AUTO GENERATED SKILL -->
<!-- INT + 3. -->
<icon>icon.Accessary_one_eye_i00</icon>
<operateType>P</operateType>
<magicCriticalRate>5</magicCriticalRate>
<magicLvl>1</magicLvl>
<effects>
<effect name="StatUp">
<amount>3</amount>
<stat>INT</stat>
</effect>
</effects>
</skill>
<skill id="9356" toLevel="1" name="Eyepatch - WIT">
<!-- AUTO GENERATED SKILL -->
<!-- WIT + 3. -->
<icon>icon.Accessary_one_eye_i00</icon>
<operateType>P</operateType>
<magicCriticalRate>5</magicCriticalRate>
<magicLvl>1</magicLvl>
<effects>
<effect name="StatUp">
<amount>3</amount>
<stat>WIT</stat>
</effect>
</effects>
</skill>
<skill id="9357" toLevel="1" name="Party Hat - Critical Rate">
<!-- AUTO GENERATED SKILL -->
<!-- Critical Rate + 50. -->
<icon>icon.accessory_party_hat_i00</icon>
<operateType>P</operateType>
<magicCriticalRate>5</magicCriticalRate>
<magicLvl>1</magicLvl>
<effects>
<effect name="CriticalRate">
<amount>50</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="9358" toLevel="1" name="Party Hat - Critical Damage">
<!-- AUTO GENERATED SKILL -->
@ -1310,52 +1351,82 @@
<magicLvl>1</magicLvl>
</skill>
<skill id="9359" toLevel="1" name="Refined Angel Ring - P. Def.">
<!-- AUTO GENERATED SKILL -->
<!-- P. Def. + 5%. -->
<icon>icon.accessory_angel_ring_i00</icon>
<operateType>P</operateType>
<magicCriticalRate>5</magicCriticalRate>
<magicLvl>1</magicLvl>
<effects>
<effect name="PhysicalDefence">
<amount>5</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="9360" toLevel="1" name="Refined Angel Ring - M. Def.">
<!-- AUTO GENERATED SKILL -->
<!-- M. Def. + 5%. -->
<icon>icon.accessory_angel_ring_i00</icon>
<operateType>P</operateType>
<magicCriticalRate>5</magicCriticalRate>
<magicLvl>1</magicLvl>
<effects>
<effect name="MagicalDefence">
<amount>5</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="9361" toLevel="1" name="Refined Angel Ring - Evasion">
<!-- AUTO GENERATED SKILL -->
<!-- Evasion + 5. -->
<icon>icon.accessory_angel_ring_i00</icon>
<operateType>P</operateType>
<magicCriticalRate>5</magicCriticalRate>
<magicLvl>1</magicLvl>
<effects>
<effect name="PhysicalEvasion">
<amount>5</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="9362" toLevel="1" name="Refined Devil Horn - P. Atk.">
<!-- AUTO GENERATED SKILL -->
<!-- P. Atk. + 5%. -->
<icon>icon.accessory_devil_horn_i00</icon>
<operateType>P</operateType>
<magicCriticalRate>5</magicCriticalRate>
<magicLvl>1</magicLvl>
<effects>
<effect name="PAtk">
<amount>5</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="9363" toLevel="1" name="Refined Devil Horn - M. Atk.">
<!-- AUTO GENERATED SKILL -->
<!-- M. Atk. + 10%. -->
<icon>icon.accessory_devil_horn_i00</icon>
<operateType>P</operateType>
<magicCriticalRate>5</magicCriticalRate>
<magicLvl>1</magicLvl>
<effects>
<effect name="MAtk">
<amount>10</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="9364" toLevel="1" name="Refined Devil Horn - Accuracy">
<!-- AUTO GENERATED SKILL -->
<!-- P. Accuracy + 5. -->
<icon>icon.accessory_devil_horn_i00</icon>
<operateType>P</operateType>
<magicCriticalRate>5</magicCriticalRate>
<magicLvl>1</magicLvl>
<effects>
<effect name="Accuracy">
<amount>5</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="9365" toLevel="2" name="Power of Eva">
<!-- Recovers HP/MP by 20%, and CP by 30%. Can be used in the Olympiad. -->
@ -2234,7 +2305,7 @@
<affectScope>SINGLE</affectScope>
</skill>
<skill id="9398" toLevel="1" name="Blessed Scroll of Resurrection">
<!-- AUTO GENERATED SKILL -->
<!-- Glory Days confirmed -->
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<castRange>400</castRange>
@ -2248,17 +2319,26 @@
<coolTime>500</coolTime>
<targetType>PC_BODY</targetType>
<affectScope>SINGLE</affectScope>
<itemConsumeId>34781</itemConsumeId> <!-- Blessed Scroll of Resurrection -->
<itemConsumeCount>1</itemConsumeCount>
<conditions>
<condition name="OpResurrection" />
</conditions>
<effects>
<effect name="Resurrection">
<power>200</power>
</effect>
</effects>
</skill>
<skill id="9399" toLevel="1" name="Fearsome Firecracker">
<!-- AUTO GENERATED SKILL -->
<!-- Glory Days confirmed -->
<abnormalLvl>1</abnormalLvl>
<abnormalTime>10</abnormalTime>
<abnormalType>BR_EVENT_BUF1</abnormalType>
<icon>icon.etc_small_ultra_bomb_i00</icon>
<operateType>A2</operateType>
<castRange>75</castRange>
<reuseDelay>1000</reuseDelay>
<abnormalType>BR_EVENT_BUF1</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<magicCriticalRate>5</magicCriticalRate>
@ -2266,11 +2346,11 @@
<hitCancelTime>0</hitCancelTime>
<effectRange>400</effectRange>
<magicLvl>-2</magicLvl>
<abnormalLvl>1</abnormalLvl>
<abnormalTime>10</abnormalTime>
<isMagic>4</isMagic>
<targetType>TARGET</targetType>
<affectScope>SINGLE</affectScope>
<itemConsumeId>34761</itemConsumeId> <!-- Fearsome Firecracker -->
<itemConsumeCount>1</itemConsumeCount>
<conditions>
<condition name="OpCheckAbnormal">
<type>BR_EVENT_BUF1</type>

View File

@ -651,6 +651,7 @@
<abnormalLvl>1</abnormalLvl>
<abnormalTime>11</abnormalTime>
<abnormalType>AURA</abnormalType>
<abnormalVisualEffect>REVENGE_AURA</abnormalVisualEffect>
<affectRange>300</affectRange>
<canBeDispelled>false</canBeDispelled>
<magicCriticalRate>5</magicCriticalRate>
@ -702,6 +703,7 @@
<abnormalLvl>1</abnormalLvl>
<abnormalTime>11</abnormalTime>
<abnormalType>AURA</abnormalType>
<abnormalVisualEffect>EVAS_AURA</abnormalVisualEffect>
<affectRange>1000</affectRange>
<canBeDispelled>false</canBeDispelled>
<magicLvl>85</magicLvl>
@ -774,6 +776,7 @@
<abnormalLvl>1</abnormalLvl>
<abnormalTime>11</abnormalTime>
<abnormalType>AURA</abnormalType>
<abnormalVisualEffect>TEMPLAR_AURA</abnormalVisualEffect>
<affectRange>1000</affectRange>
<canBeDispelled>false</canBeDispelled>
<magicCriticalRate>5</magicCriticalRate>

View File

@ -811,6 +811,7 @@
<value level="11">11</value>
</abnormalLvl>
<abnormalTime>10</abnormalTime>
<subordinationAbnormalType>MARK_DEBUF_B</subordinationAbnormalType>
<abnormalType>MARK_DEBUF_B</abnormalType>
<activateRate>
<value fromLevel="1" toLevel="11">100</value>
@ -918,6 +919,7 @@
<value level="8">8</value>
</abnormalLvl>
<abnormalTime>10</abnormalTime>
<subordinationAbnormalType>MARK_DEBUF_A</subordinationAbnormalType>
<abnormalType>MARK_DEBUF_A</abnormalType>
<activateRate>
<value fromLevel="1" toLevel="8">90</value>
@ -1009,6 +1011,7 @@
<value level="9">9</value>
</abnormalLvl>
<abnormalTime>10</abnormalTime>
<subordinationAbnormalType>MARK_DEBUF_C</subordinationAbnormalType>
<abnormalType>MARK_DEBUF_C</abnormalType>
<activateRate>
<value fromLevel="1" toLevel="9">90</value>
@ -1100,6 +1103,7 @@
<value level="9">9</value>
</abnormalLvl>
<abnormalTime>10</abnormalTime>
<subordinationAbnormalType>MARK_DEBUF_D</subordinationAbnormalType>
<abnormalType>MARK_DEBUF_D</abnormalType>
<activateRate>
<value fromLevel="1" toLevel="9">50</value>

View File

@ -1865,6 +1865,24 @@
</amount>
<mode>PER</mode>
</effect>
<effect name="PhysicalDefence" fromLevel="3" toLevel="4" fromSubLevel="1001" toSubLevel="1030">
<amount>
<value fromLevel="3" toLevel="4" fromSubLevel="1001" toSubLevel="1030">{0.6 + 0.4 * subIndex}</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalDefence" fromLevel="3" toLevel="4" fromSubLevel="1001" toSubLevel="1030">
<amount>
<value fromLevel="3" toLevel="4" fromSubLevel="1001" toSubLevel="1030">{0.6 + 0.4 * subIndex}</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="Speed" fromLevel="3" toLevel="4" fromSubLevel="3001" toSubLevel="3030">
<amount>
<value fromLevel="3" toLevel="4" fromSubLevel="3001" toSubLevel="3030">{2 * subIndex}</value>
</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="11348" toLevel="4" name="Servitor Death Whisper">
@ -1905,6 +1923,24 @@
</amount>
<mode>PER</mode>
</effect>
<effect name="PhysicalDefence" fromLevel="3" toLevel="4" fromSubLevel="1001" toSubLevel="1030">
<amount>
<value fromLevel="3" toLevel="4" fromSubLevel="1001" toSubLevel="1030">{0.6 + 0.4 * subIndex}</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalDefence" fromLevel="3" toLevel="4" fromSubLevel="1001" toSubLevel="1030">
<amount>
<value fromLevel="3" toLevel="4" fromSubLevel="1001" toSubLevel="1030">{0.6 + 0.4 * subIndex}</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="Speed" fromLevel="3" toLevel="4" fromSubLevel="3001" toSubLevel="3030">
<amount>
<value fromLevel="3" toLevel="4" fromSubLevel="3001" toSubLevel="3030">{2 * subIndex}</value>
</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="11349" toLevel="4" name="Greater Servitor Might">
@ -1945,6 +1981,24 @@
</amount>
<mode>PER</mode>
</effect>
<effect name="PhysicalDefence" fromLevel="3" toLevel="4" fromSubLevel="1001" toSubLevel="1030">
<amount>
<value fromLevel="3" toLevel="4" fromSubLevel="1001" toSubLevel="1030">{0.6 + 0.4 * subIndex}</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalDefence" fromLevel="3" toLevel="4" fromSubLevel="1001" toSubLevel="1030">
<amount>
<value fromLevel="3" toLevel="4" fromSubLevel="1001" toSubLevel="1030">{0.6 + 0.4 * subIndex}</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="Speed" fromLevel="3" toLevel="4" fromSubLevel="3001" toSubLevel="3030">
<amount>
<value fromLevel="3" toLevel="4" fromSubLevel="3001" toSubLevel="3030">{2 * subIndex}</value>
</amount>
<mode>DIFF</mode>
</effect>
</effects>
</skill>
<skill id="11350" toLevel="7" name="Arcane Rage">
@ -1979,6 +2033,7 @@
<isMagic>1</isMagic>
<magicCriticalRate>
<value fromLevel="1" toLevel="7">6</value>
<value fromLevel="3" toLevel="7" fromSubLevel="2001" toSubLevel="2030">{base + base / 100 * subIndex}</value>
</magicCriticalRate>
<effects>
<effect name="MagicalAttack">
@ -1990,6 +2045,30 @@
<value level="5">242</value>
<value level="6">248</value>
<value level="7">254</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1001" toSubLevel="1005">{base + base / 100 * (1 + 0.4 * (subIndex - 1))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1006" toSubLevel="1006">{base + base / 100 * (2 + 0.8 * (subIndex - 5))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1007" toSubLevel="1007">{base + base / 100 * (3 + 0.3 * (subIndex - 6))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1008" toSubLevel="1008">{base + base / 100 * (3 + 0.3 * (subIndex - 7))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1009" toSubLevel="1011">{base + base / 100 * (4 + 0.4 * (subIndex - 8))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1012" toSubLevel="1012">{base + base / 100 * (5 + 0.1 * (subIndex - 11))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1013" toSubLevel="1013">{base + base / 100 * (5 + 0.5 * (subIndex - 12))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1014" toSubLevel="1014">{base + base / 100 * (5 + 0.9 * (subIndex - 13))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1015" toSubLevel="1015">{base + base / 100 * (6 + 0.2 * (subIndex - 14))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1016" toSubLevel="1016">{base + base / 100 * (6 + 0.6 * (subIndex - 15))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1017" toSubLevel="1017">{base + base / 100 * (7 * (subIndex - 16))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1018" toSubLevel="1018">{base + base / 100 * (7 + 0.4 * (subIndex - 17))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1019" toSubLevel="1019">{base + base / 100 * (7 + 0.7 * (subIndex - 18))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1020" toSubLevel="1020">{base + base / 100 * (8 + 0.1 * (subIndex - 19))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1021" toSubLevel="1021">{base + base / 100 * (8 + 0.5 * (subIndex - 20))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1022" toSubLevel="1022">{base + base / 100 * (8 + 0.8 * (subIndex - 21))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1023" toSubLevel="1023">{base + base / 100 * (9 + 0.2 * (subIndex - 22))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1024" toSubLevel="1024">{base + base / 100 * (9 + 0.6 * (subIndex - 23))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1025" toSubLevel="1025">{base + base / 100 * (10 * (subIndex - 24))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1026" toSubLevel="1026">{base + base / 100 * (10 + 0.3 * (subIndex - 25))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1027" toSubLevel="1027">{base + base / 100 * (10 + 0.7 * (subIndex - 26))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1028" toSubLevel="1028">{base + base / 100 * (11 + 0.1 * (subIndex - 27))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1029" toSubLevel="1029">{base + base / 100 * (11 + 0.4 * (subIndex - 28))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1030" toSubLevel="1030">{base + base / 100 * (11 + 0.8 * (subIndex - 29))}</value>
</power>
</effect>
</effects>
@ -2139,6 +2218,7 @@
<isMagic>1</isMagic>
<magicCriticalRate>
<value fromLevel="1" toLevel="7">6</value>
<value fromLevel="3" toLevel="7" fromSubLevel="2001" toSubLevel="2030">{base + base / 100 * subIndex}</value>
</magicCriticalRate>
<effects>
<effect name="MagicalAttack">
@ -2150,6 +2230,30 @@
<value level="5">242</value>
<value level="6">248</value>
<value level="7">254</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1001" toSubLevel="1005">{base + base / 100 * (1 + 0.4 * (subIndex - 1))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1006" toSubLevel="1006">{base + base / 100 * (2 + 0.8 * (subIndex - 5))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1007" toSubLevel="1007">{base + base / 100 * (3 + 0.3 * (subIndex - 6))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1008" toSubLevel="1008">{base + base / 100 * (3 + 0.3 * (subIndex - 7))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1009" toSubLevel="1011">{base + base / 100 * (4 + 0.4 * (subIndex - 8))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1012" toSubLevel="1012">{base + base / 100 * (5 + 0.1 * (subIndex - 11))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1013" toSubLevel="1013">{base + base / 100 * (5 + 0.5 * (subIndex - 12))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1014" toSubLevel="1014">{base + base / 100 * (5 + 0.9 * (subIndex - 13))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1015" toSubLevel="1015">{base + base / 100 * (6 + 0.2 * (subIndex - 14))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1016" toSubLevel="1016">{base + base / 100 * (6 + 0.6 * (subIndex - 15))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1017" toSubLevel="1017">{base + base / 100 * (7 * (subIndex - 16))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1018" toSubLevel="1018">{base + base / 100 * (7 + 0.4 * (subIndex - 17))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1019" toSubLevel="1019">{base + base / 100 * (7 + 0.7 * (subIndex - 18))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1020" toSubLevel="1020">{base + base / 100 * (8 + 0.1 * (subIndex - 19))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1021" toSubLevel="1021">{base + base / 100 * (8 + 0.5 * (subIndex - 20))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1022" toSubLevel="1022">{base + base / 100 * (8 + 0.8 * (subIndex - 21))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1023" toSubLevel="1023">{base + base / 100 * (9 + 0.2 * (subIndex - 22))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1024" toSubLevel="1024">{base + base / 100 * (9 + 0.6 * (subIndex - 23))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1025" toSubLevel="1025">{base + base / 100 * (10 * (subIndex - 24))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1026" toSubLevel="1026">{base + base / 100 * (10 + 0.3 * (subIndex - 25))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1027" toSubLevel="1027">{base + base / 100 * (10 + 0.7 * (subIndex - 26))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1028" toSubLevel="1028">{base + base / 100 * (11 + 0.1 * (subIndex - 27))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1029" toSubLevel="1029">{base + base / 100 * (11 + 0.4 * (subIndex - 28))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1030" toSubLevel="1030">{base + base / 100 * (11 + 0.8 * (subIndex - 29))}</value>
</power>
</effect>
</effects>
@ -2257,6 +2361,7 @@
<isMagic>1</isMagic>
<magicCriticalRate>
<value fromLevel="1" toLevel="7">6</value>
<value fromLevel="3" toLevel="7" fromSubLevel="2001" toSubLevel="2030">{base + base / 100 * subIndex}</value>
</magicCriticalRate>
<effects>
<effect name="MagicalAttack">
@ -2268,6 +2373,30 @@
<value level="5">242</value>
<value level="6">248</value>
<value level="7">254</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1001" toSubLevel="1005">{base + base / 100 * (1 + 0.4 * (subIndex - 1))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1006" toSubLevel="1006">{base + base / 100 * (2 + 0.8 * (subIndex - 5))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1007" toSubLevel="1007">{base + base / 100 * (3 + 0.3 * (subIndex - 6))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1008" toSubLevel="1008">{base + base / 100 * (3 + 0.3 * (subIndex - 7))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1009" toSubLevel="1011">{base + base / 100 * (4 + 0.4 * (subIndex - 8))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1012" toSubLevel="1012">{base + base / 100 * (5 + 0.1 * (subIndex - 11))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1013" toSubLevel="1013">{base + base / 100 * (5 + 0.5 * (subIndex - 12))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1014" toSubLevel="1014">{base + base / 100 * (5 + 0.9 * (subIndex - 13))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1015" toSubLevel="1015">{base + base / 100 * (6 + 0.2 * (subIndex - 14))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1016" toSubLevel="1016">{base + base / 100 * (6 + 0.6 * (subIndex - 15))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1017" toSubLevel="1017">{base + base / 100 * (7 * (subIndex - 16))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1018" toSubLevel="1018">{base + base / 100 * (7 + 0.4 * (subIndex - 17))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1019" toSubLevel="1019">{base + base / 100 * (7 + 0.7 * (subIndex - 18))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1020" toSubLevel="1020">{base + base / 100 * (8 + 0.1 * (subIndex - 19))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1021" toSubLevel="1021">{base + base / 100 * (8 + 0.5 * (subIndex - 20))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1022" toSubLevel="1022">{base + base / 100 * (8 + 0.8 * (subIndex - 21))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1023" toSubLevel="1023">{base + base / 100 * (9 + 0.2 * (subIndex - 22))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1024" toSubLevel="1024">{base + base / 100 * (9 + 0.6 * (subIndex - 23))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1025" toSubLevel="1025">{base + base / 100 * (10 * (subIndex - 24))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1026" toSubLevel="1026">{base + base / 100 * (10 + 0.3 * (subIndex - 25))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1027" toSubLevel="1027">{base + base / 100 * (10 + 0.7 * (subIndex - 26))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1028" toSubLevel="1028">{base + base / 100 * (11 + 0.1 * (subIndex - 27))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1029" toSubLevel="1029">{base + base / 100 * (11 + 0.4 * (subIndex - 28))}</value>
<value fromLevel="3" toLevel="7" fromSubLevel="1030" toSubLevel="1030">{base + base / 100 * (11 + 0.8 * (subIndex - 29))}</value>
</power>
</effect>
</effects>

View File

@ -148,6 +148,7 @@
<operateType>A2</operateType>
<castRange>150</castRange>
<hitTime>3000</hitTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -172,6 +173,7 @@
<operateType>A2</operateType>
<castRange>150</castRange>
<hitTime>3000</hitTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -196,6 +198,7 @@
<operateType>A2</operateType>
<castRange>150</castRange>
<hitTime>3000</hitTime>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>

View File

@ -410,6 +410,7 @@
<reuseDelay>5000</reuseDelay>
<isMagic>1</isMagic>
<effectPoint>-354</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -773,6 +774,7 @@
<reuseDelay>5000</reuseDelay>
<isMagic>1</isMagic>
<effectPoint>-355</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalResists>TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT</abnormalResists>
<basicProperty>PHYSICAL</basicProperty>
@ -1166,6 +1168,7 @@
<hitTime>3000</hitTime>
<reuseDelay>5000</reuseDelay>
<effectPoint>-354</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE</rideState>
@ -1678,6 +1681,7 @@
<value level="5">-350</value>
<value level="6">-351</value>
</effectPoint>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -2571,6 +2575,7 @@
<value level="5">-707</value>
<value level="6">-707</value>
</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE</rideState>
@ -3151,6 +3156,7 @@
<value level="5">-707</value>
<value level="6">-707</value>
</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE</rideState>

View File

@ -102,7 +102,7 @@
</effects>
</skill>
<skill id="14102" toLevel="1" name="Agathion Cute Trick - Magmeld Fairy">
<!-- AUTO GENERATED SKILL -->
<!-- Glory Days confirmed -->
<!-- See the summoned spirit perform cute tricks. -->
<icon>icon.skill_agathion_cute</icon>
<operateType>A1</operateType>
@ -119,7 +119,7 @@
</conditions>
</skill>
<skill id="14103" toLevel="1" name="Agathion Return - Magmeld Fairy">
<!-- AUTO GENERATED SKILL -->
<!-- Glory Days confirmed -->
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
<hitTime>15000</hitTime>
@ -134,6 +134,13 @@
<conditions>
<condition name="OpNeedAgathion" />
</conditions>
<effects>
<effect name="Teleport">
<x>207528</x>
<y>86576</y>
<z>-1004</z>
</effect>
</effects>
</skill>
<skill id="14104" toLevel="1" name="Transformed: Orbis' Curse">
<!-- AUTO GENERATED SKILL -->
@ -461,6 +468,7 @@
<reuseDelay>2000</reuseDelay>
<isMagic>1</isMagic>
<effectPoint>-351</effectPoint>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalResists>TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT</abnormalResists>
<basicProperty>PHYSICAL</basicProperty>
@ -500,6 +508,7 @@
<reuseDelay>2000</reuseDelay>
<isMagic>1</isMagic>
<effectPoint>-351</effectPoint>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -669,6 +678,7 @@
<reuseDelay>2000</reuseDelay>
<isMagic>1</isMagic>
<effectPoint>-351</effectPoint>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -1083,6 +1093,7 @@
<value level="2">-353</value>
<value level="3">-353</value>
</effectPoint>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -1266,6 +1277,7 @@
<value level="2">-353</value>
<value level="3">-353</value>
</effectPoint>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -2211,6 +2223,7 @@
<reuseDelay>5000</reuseDelay>
<isMagic>1</isMagic>
<effectPoint>-83</effectPoint>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -2727,6 +2740,7 @@
</conditions>
</skill>
<skill id="14187" toLevel="1" name="Magmeld Teleport">
<!-- Glory Days confirmed -->
<!-- Teleports to Magmeld Ancient City Arcan. -->
<icon>icon.skill0000</icon>
<operateType>A1</operateType>
@ -2745,10 +2759,9 @@
</conditions>
<effects>
<effect name="Teleport">
<!-- Town of Magmeld -->
<x>206867</x>
<y>86995</y>
<z>-1019</z>
<x>207528</x>
<y>86576</y>
<z>-1004</z>
</effect>
</effects>
</skill>

View File

@ -74,6 +74,7 @@
<reuseDelay>2000</reuseDelay>
<isMagic>1</isMagic>
<effectPoint>-1</effectPoint>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -1001,6 +1002,7 @@
<hitTime>2000</hitTime>
<isMagic>1</isMagic>
<effectPoint>-100</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -1102,6 +1104,7 @@
<hitTime>2000</hitTime>
<isMagic>1</isMagic>
<effectPoint>-100</effectPoint>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -1138,6 +1141,7 @@
<hitTime>2000</hitTime>
<isMagic>1</isMagic>
<effectPoint>-100</effectPoint>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -1846,6 +1850,7 @@
<reuseDelay>5000</reuseDelay>
<isMagic>1</isMagic>
<effectPoint>-1</effectPoint>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -2815,6 +2820,7 @@
<castRange>150</castRange>
<hitTime>1500</hitTime>
<effectPoint>-2</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE</rideState>

View File

@ -989,6 +989,7 @@
<hitTime>500</hitTime>
<isMagic>1</isMagic>
<effectPoint>-1</effectPoint>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -1099,6 +1100,7 @@
<hitTime>10000</hitTime>
<isMagic>1</isMagic>
<effectPoint>-1</effectPoint>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -1427,6 +1429,7 @@
<reuseDelay>5000</reuseDelay>
<isMagic>1</isMagic>
<effectPoint>-2</effectPoint>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -1712,6 +1715,7 @@
<operateType>A2</operateType>
<hitTime>500</hitTime>
<effectPoint>-2</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE</rideState>
@ -1744,6 +1748,7 @@
<castRange>650</castRange>
<hitTime>500</hitTime>
<effectPoint>-2</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE</rideState>
@ -2806,7 +2811,8 @@
<targetType>SELF</targetType>
<affectScope>SQUARE_PB</affectScope>
<affectObject>NOT_FRIEND</affectObject>
<effect name="PhysicalAttack">
<effects>
<effect name="PhysicalAttack">
<power>27849</power>
</effect>
<effect name="FlyAway"> <!-- TODO: {i_fly_away;curve;push;600} -->
@ -2815,6 +2821,7 @@
<effect name="BlockActions">
<allowedSkills>10279;10517;10025;10776;11770;1904</allowedSkills>
</effect>
</effects>
</skill>
<skill id="14399" toLevel="1" name="Valakas Meteor Storm">
<!-- Glory Days confirmed -->

View File

@ -267,6 +267,7 @@
<reuseDelay>5000</reuseDelay>
<isMagic>1</isMagic>
<effectPoint>-2</effectPoint>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -302,6 +303,7 @@
<reuseDelay>5000</reuseDelay>
<isMagic>1</isMagic>
<effectPoint>-2</effectPoint>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -806,6 +808,7 @@
<mpConsume>1</mpConsume>
<castRange>900</castRange>
<effectPoint>-1</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE</rideState>
@ -1543,6 +1546,7 @@
<castRange>900</castRange>
<isMagic>1</isMagic>
<effectPoint>1</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -2162,6 +2166,7 @@
<hitTime>1500</hitTime>
<isMagic>1</isMagic>
<effectPoint>-2</effectPoint>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>

View File

@ -526,6 +526,7 @@
<reuseDelay>15000</reuseDelay>
<isMagic>1</isMagic>
<effectPoint>-2</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalResists>TURN_FLEE;KNOCKDOWN;DEPORT;SILENCE;PARALYZE;ABSORB;DISARM;SILENCE_PHYSICAL;SILENCE_ALL;CHANGEBODY;TURN_STONE;DERANGEMENT;AIRBIND;SLEEP;OBLIVION;MIRAGE;MIRAGE_TRAP;ROOT_MAGICALLY;ROOT_PHYSICALLY;STUN;PUBLIC_SLOT</abnormalResists>
<basicProperty>NONE</basicProperty>
@ -1104,6 +1105,7 @@
<castRange>600</castRange>
<hitTime>2000</hitTime>
<effectPoint>-2</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE</rideState>
@ -1282,6 +1284,7 @@
<castRange>600</castRange>
<hitTime>4000</hitTime>
<effectPoint>-2</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE</rideState>
@ -1350,6 +1353,7 @@
<hitTime>1800</hitTime>
<isMagic>1</isMagic>
<effectPoint>-2</effectPoint>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -1876,6 +1880,7 @@
<operateType>A2</operateType>
<hitTime>500</hitTime>
<effectPoint>-2</effectPoint>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE</rideState>

View File

@ -27,6 +27,7 @@
<coolTime>500</coolTime>
<isMagic>1</isMagic>
<effectPoint>-687</effectPoint>
<subordinationAbnormalType>MULTI_DEBUFF</subordinationAbnormalType>
<abnormalType>MULTI_DEBUFF</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -65,6 +66,7 @@
<coolTime>500</coolTime>
<isMagic>1</isMagic>
<effectPoint>-692</effectPoint>
<subordinationAbnormalType>MULTI_DEBUFF_B</subordinationAbnormalType>
<abnormalType>MULTI_DEBUFF_B</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -779,6 +781,7 @@
<hitTime>500</hitTime>
<reuseDelay>10000</reuseDelay>
<effectPoint>-2</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE</rideState>
@ -1053,6 +1056,7 @@
<castRange>100</castRange>
<hitTime>2500</hitTime>
<effectPoint>-2</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<basicProperty>PHYSICAL</basicProperty>
@ -1085,6 +1089,7 @@
<reuseDelay>15000</reuseDelay>
<isMagic>1</isMagic>
<effectPoint>-2</effectPoint>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>POISON</abnormalType>
<abnormalVisualEffect>DOT_POISON</abnormalVisualEffect>
<basicProperty>PHYSICAL</basicProperty>
@ -2532,6 +2537,7 @@
<coolTime>500</coolTime>
<isMagic>1</isMagic>
<effectPoint>-687</effectPoint>
<subordinationAbnormalType>MULTI_DEBUFF</subordinationAbnormalType>
<abnormalType>MULTI_DEBUFF</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -2567,6 +2573,7 @@
<coolTime>500</coolTime>
<isMagic>1</isMagic>
<effectPoint>-692</effectPoint>
<subordinationAbnormalType>MULTI_DEBUFF_B</subordinationAbnormalType>
<abnormalType>MULTI_DEBUFF_B</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
@ -2865,6 +2872,7 @@
<hitTime>3000</hitTime>
<isDebuff>true</isDebuff>
<magicLvl>1</magicLvl>
<subordinationAbnormalType>POISON</subordinationAbnormalType>
<abnormalType>MULTI_DEBUFF_B</abnormalType>
<basicProperty>MAGIC</basicProperty>
<rideState>NONE</rideState>

View File

@ -106,6 +106,7 @@
<castRange>500</castRange>
<hitTime>2500</hitTime>
<effectPoint>-1</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE</rideState>
@ -160,7 +161,7 @@
<delay>600</delay>
</effect>
<effect name="BlockActions">
<allowedSkills>10279;10517;10025;10776;11770;1904;11264;11093;13314;1912</allowedSkills>
<allowedSkills>10279;10517;10025;10776;11770;1904;11264;11093;13314;1912;30516</allowedSkills>
</effect>
</effects>
</skill>
@ -492,11 +493,11 @@
<affectScope>SINGLE</affectScope>
<effects>
<effect name="DispelBySlotProbability">
<dispel>IMPROVE_PA_PD_UP;PA_UP;IMPROVE_MA_MD_UP;MD_UP;MA_UP;KAMAEL_SPECIAL</dispel>
<dispel>IMPROVE_PA_PD_UP;PA_UP;PD_UP;IMPROVE_MA_MD_UP;MD_UP;MA_UP;KAMAEL_SPECIAL</dispel>
<rate>100</rate>
</effect>
<effect name="BlockAbnormalSlot">
<slot>IMPROVE_PA_PD_UP;PA_UP;IMPROVE_MA_MD_UP;MD_UP;MA_UP;KAMAEL_SPECIAL</slot>
<slot>IMPROVE_PA_PD_UP;PA_UP;PD_UP;IMPROVE_MA_MD_UP;MD_UP;MA_UP;KAMAEL_SPECIAL</slot>
</effect>
<effect name="PAtk">
<amount>17</amount>
@ -794,7 +795,7 @@
<rate>100</rate>
</effect>
<effect name="BlockAbnormalSlot">
<dispel>IMPROVE_VAMPIRIC_HASTE;ATTACK_TIME_DOWN;VAMPIRIC_ATTACK;CASTING_TIME_DOWN</dispel>
<slot>IMPROVE_VAMPIRIC_HASTE;ATTACK_TIME_DOWN;VAMPIRIC_ATTACK;CASTING_TIME_DOWN</slot>
</effect>
<effect name="VampiricAttack">
<amount>9</amount>
@ -1327,11 +1328,11 @@
<affectScope>SINGLE</affectScope>
<effects>
<effect name="DispelBySlotProbability">
<dispel>IMPROVE_PA_PD_UP;PA_UP;IMPROVE_MA_MD_UP;MD_UP;MA_UP;KAMAEL_SPECIAL</dispel>
<dispel>IMPROVE_PA_PD_UP;PA_UP;PD_UP;IMPROVE_MA_MD_UP;MD_UP;MA_UP;KAMAEL_SPECIAL</dispel>
<rate>100</rate>
</effect>
<effect name="BlockAbnormalSlot">
<slot>IMPROVE_PA_PD_UP;PA_UP;IMPROVE_MA_MD_UP;MD_UP;MA_UP;KAMAEL_SPECIAL</slot>
<slot>IMPROVE_PA_PD_UP;PA_UP;PD_UP;IMPROVE_MA_MD_UP;MD_UP;MA_UP;KAMAEL_SPECIAL</slot>
</effect>
<effect name="PAtk">
<amount>23</amount>
@ -1629,7 +1630,7 @@
<rate>100</rate>
</effect>
<effect name="BlockAbnormalSlot">
<dispel>IMPROVE_VAMPIRIC_HASTE;ATTACK_TIME_DOWN;VAMPIRIC_ATTACK;CASTING_TIME_DOWN</dispel>
<slot>IMPROVE_VAMPIRIC_HASTE;ATTACK_TIME_DOWN;VAMPIRIC_ATTACK;CASTING_TIME_DOWN</slot>
</effect>
<effect name="VampiricAttack">
<amount>9</amount>
@ -2004,11 +2005,11 @@
<affectObject>FRIEND</affectObject>
<effects>
<effect name="DispelBySlotProbability">
<dispel>IMPROVE_PA_PD_UP;PA_UP;IMPROVE_MA_MD_UP;MD_UP;MA_UP;KAMAEL_SPECIAL</dispel>
<dispel>IMPROVE_PA_PD_UP;PA_UP;PD_UP;IMPROVE_MA_MD_UP;MD_UP;MA_UP;KAMAEL_SPECIAL</dispel>
<rate>100</rate>
</effect>
<effect name="BlockAbnormalSlot">
<slot>IMPROVE_PA_PD_UP;PA_UP;IMPROVE_MA_MD_UP;MD_UP;MA_UP;KAMAEL_SPECIAL</slot>
<slot>IMPROVE_PA_PD_UP;PA_UP;PD_UP;IMPROVE_MA_MD_UP;MD_UP;MA_UP;KAMAEL_SPECIAL</slot>
</effect>
<effect name="PAtk">
<amount>17</amount>
@ -2311,7 +2312,7 @@
<rate>100</rate>
</effect>
<effect name="BlockAbnormalSlot">
<dispel>IMPROVE_VAMPIRIC_HASTE;ATTACK_TIME_DOWN;VAMPIRIC_ATTACK;CASTING_TIME_DOWN</dispel>
<slot>IMPROVE_VAMPIRIC_HASTE;ATTACK_TIME_DOWN;VAMPIRIC_ATTACK;CASTING_TIME_DOWN</slot>
</effect>
<effect name="VampiricAttack">
<amount>9</amount>

View File

@ -1146,6 +1146,7 @@
<reuseDelay>30000</reuseDelay>
<isMagic>1</isMagic>
<effectPoint>-111</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<basicProperty>PHYSICAL</basicProperty>
@ -1520,6 +1521,7 @@
<coolTime>300</coolTime>
<reuseDelay>6000</reuseDelay>
<effectPoint>-100</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE</rideState>
@ -1647,6 +1649,7 @@
<coolTime>300</coolTime>
<reuseDelay>6000</reuseDelay>
<effectPoint>-100</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE</rideState>

View File

@ -420,6 +420,7 @@
<mpConsume>10</mpConsume>
<hitTime>2000</hitTime>
<effectPoint>-100</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE</rideState>
@ -1842,15 +1843,19 @@
<affectScope>SINGLE</affectScope>
</skill>
<skill id="15291" toLevel="1" name="Bleed">
<!-- AUTO GENERATED SKILL -->
<!-- Glory Days confirmed -->
<!-- Energy that formed in Lidia's room because Giselle von Hellmann and Alfred von Hellmann were not eliminated. HP continues to decrease. -->
<abnormalLvl>2</abnormalLvl>
<abnormalTime>20</abnormalTime>
<abnormalType>BLEEDING</abnormalType>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<icon>icon.skill0096</icon>
<operateType>A2</operateType>
<mpConsume>10</mpConsume>
<reuseDelay>5000</reuseDelay>
<isMagic>1</isMagic>
<effectPoint>-100</effectPoint>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<magicCriticalRate>-5</magicCriticalRate>
@ -1858,53 +1863,78 @@
<lvlBonusRate>2</lvlBonusRate>
<activateRate>100</activateRate>
<magicLvl>95</magicLvl>
<abnormalLvl>2</abnormalLvl>
<abnormalTime>20</abnormalTime>
<trait>BLEED</trait>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<isDebuff>true</isDebuff>
<targetType>ENEMY_ONLY</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="DamOverTime">
<power>900</power>
<ticks>5</ticks>
</effect>
</effects>
</skill>
<skill id="15292" toLevel="1" name="Logan's Revenge">
<!-- AUTO GENERATED SKILL -->
<!-- Glory Days confirmed -->
<!-- Logan's revenge left in his dying breath. Lidia's Atk. Spd. is greatly increased. -->
<abnormalLvl>1</abnormalLvl>
<abnormalTime>180</abnormalTime>
<abnormalType>SPEED_UP</abnormalType>
<icon>icon.skill0168</icon>
<operateType>A2</operateType>
<mpConsume>10</mpConsume>
<reuseDelay>5000</reuseDelay>
<abnormalType>SPEED_UP</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE</rideState>
<magicCriticalRate>-5</magicCriticalRate>
<hitCancelTime>0</hitCancelTime>
<magicLvl>95</magicLvl>
<abnormalLvl>1</abnormalLvl>
<abnormalTime>180</abnormalTime>
<isMagic>1</isMagic>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="PhysicalAttackSpeed">
<amount>30</amount>
<mode>PER</mode>
</effect>
</effects>
</skill>
<skill id="15293" toLevel="1" name="Logan's Revenge">
<!-- AUTO GENERATED SKILL -->
<!-- Glory Days confirmed -->
<!-- Logan's revenge left in his dying breath. Momentarily invincible. -->
<abnormalLvl>1</abnormalLvl>
<abnormalTime>40</abnormalTime>
<abnormalType>INVINCIBILITY_SPECIAL</abnormalType>
<abnormalVisualEffect>ULTIMATE_DEFENCE</abnormalVisualEffect>
<icon>icon.skill11758</icon>
<operateType>A2</operateType>
<mpConsume>10</mpConsume>
<reuseDelay>5000</reuseDelay>
<effectPoint>867</effectPoint>
<abnormalType>INVINCIBILITY_SPECIAL</abnormalType>
<basicProperty>NONE</basicProperty>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<magicCriticalRate>-5</magicCriticalRate>
<magicLvl>95</magicLvl>
<abnormalLvl>1</abnormalLvl>
<abnormalTime>40</abnormalTime>
<staticReuse>true</staticReuse>
<abnormalVisualEffect>ULTIMATE_DEFENCE</abnormalVisualEffect>
<isMagic>1</isMagic>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<effects>
<effect name="DamageBlock">
<type>BLOCK_HP</type>
</effect>
<effect name="DamageBlock">
<type>BLOCK_MP</type>
</effect>
<effect name="DebuffBlock" />
<effect name="ResistDispelByCategory">
<amount>-100</amount>
<slot>ALL</slot>
</effect>
<effect name="BlockAbnormalSlot">
<slot>INVINCIBILITY_SPECIAL</slot>
</effect>
</effects>
</skill>
<skill id="15294" toLevel="1" name="Logan's Revenge">
<!-- AUTO GENERATED SKILL -->

File diff suppressed because it is too large Load Diff

View File

@ -555,7 +555,7 @@
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<magicCriticalRate>5</magicCriticalRate>
<specialLevel>-2</specialLevel>
<abnormalLvl>5</abnormalLvl>
<abnormalLvl>0</abnormalLvl>
<irreplacableBuff>true</irreplacableBuff>
<isMentoring>true</isMentoring>
<effectPoint>1</effectPoint>
@ -609,7 +609,7 @@
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<magicCriticalRate>5</magicCriticalRate>
<specialLevel>-2</specialLevel>
<abnormalLvl>5</abnormalLvl>
<abnormalLvl>0</abnormalLvl>
<irreplacableBuff>true</irreplacableBuff>
<isMentoring>true</isMentoring>
<effectPoint>1</effectPoint>
@ -674,7 +674,7 @@
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<magicCriticalRate>5</magicCriticalRate>
<specialLevel>-2</specialLevel>
<abnormalLvl>5</abnormalLvl>
<abnormalLvl>0</abnormalLvl>
<irreplacableBuff>true</irreplacableBuff>
<isMentoring>true</isMentoring>
<effectPoint>1</effectPoint>

View File

@ -10,6 +10,7 @@
<coolTime>720</coolTime>
<reuseDelay>3000</reuseDelay>
<effectPoint>-1</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE</rideState>

View File

@ -1097,394 +1097,394 @@
<operateType>P</operateType>
<effects>
<effect name="MAtk">
<amount>
<value level="1">181</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">271</value>
<value level="6">271</value>
<value level="7">271</value>
<value level="8">0</value>
<value level="9">0</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<amount>
<value level="1">181</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">271</value>
<value level="6">271</value>
<value level="7">271</value>
<value level="8">0</value>
<value level="9">0</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<mode>DIFF</mode>
</effect>
<effect name="PAtk">
<amount>
<value level="1">154</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">231</value>
<value level="6">231</value>
<value level="7">231</value>
<value level="8">0</value>
<value level="9">0</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<amount>
<value level="1">154</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">231</value>
<value level="6">231</value>
<value level="7">231</value>
<value level="8">0</value>
<value level="9">0</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<mode>DIFF</mode>
</effect>
<effect name="MagicalDefence">
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">0</value>
<value level="6">0</value>
<value level="7">0</value>
<value level="8">0</value>
<value level="9">971</value>
<value level="10">1051</value>
<value level="11">1184</value>
<value level="12">1307</value>
</amount>
<mode>DIFF</mode>
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">0</value>
<value level="6">0</value>
<value level="7">0</value>
<value level="8">0</value>
<value level="9">971</value>
<value level="10">1051</value>
<value level="11">1184</value>
<value level="12">1307</value>
</amount>
<mode>DIFF</mode>
</effect>
<effect name="PhysicalDefence">
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">0</value>
<value level="6">0</value>
<value level="7">0</value>
<value level="8">0</value>
<value level="9">971</value>
<value level="10">1051</value>
<value level="11">1184</value>
<value level="12">1307</value>
</amount>
<mode>DIFF</mode>
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">0</value>
<value level="6">0</value>
<value level="7">0</value>
<value level="8">0</value>
<value level="9">971</value>
<value level="10">1051</value>
<value level="11">1184</value>
<value level="12">1307</value>
</amount>
<mode>DIFF</mode>
</effect>
<effect name="PhysicalEvasion">
<amount>
<value level="1">4</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">7</value>
<value level="6">7</value>
<value level="7">7</value>
<value level="8">0</value>
<value level="9">7</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<amount>
<value level="1">4</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">7</value>
<value level="6">7</value>
<value level="7">7</value>
<value level="8">0</value>
<value level="9">7</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<mode>DIFF</mode>
</effect>
<effect name="MagicalEvasion">
<amount>
<value level="1">4</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">7</value>
<value level="6">7</value>
<value level="7">7</value>
<value level="8">0</value>
<value level="9">7</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<amount>
<value level="1">4</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">7</value>
<value level="6">7</value>
<value level="7">7</value>
<value level="8">0</value>
<value level="9">7</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<mode>DIFF</mode>
</effect>
<effect name="DefenceAttribute">
<amount>
<value level="1">0</value>
<value level="2">10</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">15</value>
<value level="6">15</value>
<value level="7">0</value>
<value level="8">15</value>
<value level="9">15</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
<amount>
<value level="1">0</value>
<value level="2">10</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">15</value>
<value level="6">15</value>
<value level="7">0</value>
<value level="8">15</value>
<value level="9">15</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<attribute>FIRE</attribute>
</amount>
</effect>
<effect name="DefenceAttribute">
<amount>
<value level="1">0</value>
<value level="2">10</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">15</value>
<value level="6">15</value>
<value level="7">0</value>
<value level="8">15</value>
<value level="9">15</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
<amount>
<value level="1">0</value>
<value level="2">10</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">15</value>
<value level="6">15</value>
<value level="7">0</value>
<value level="8">15</value>
<value level="9">15</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<attribute>WATER</attribute>
</amount>
</effect>
<effect name="DefenceAttribute">
<amount>
<value level="1">0</value>
<value level="2">10</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">15</value>
<value level="6">15</value>
<value level="7">0</value>
<value level="8">15</value>
<value level="9">15</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
<amount>
<value level="1">0</value>
<value level="2">10</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">15</value>
<value level="6">15</value>
<value level="7">0</value>
<value level="8">15</value>
<value level="9">15</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<attribute>WIND</attribute>
</amount>
</effect>
<effect name="DefenceAttribute">
<amount>
<value level="1">0</value>
<value level="2">10</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">15</value>
<value level="6">15</value>
<value level="7">0</value>
<value level="8">15</value>
<value level="9">15</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
<amount>
<value level="1">0</value>
<value level="2">10</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">15</value>
<value level="6">15</value>
<value level="7">0</value>
<value level="8">15</value>
<value level="9">15</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<attribute>EARTH</attribute>
</amount>
</effect>
<effect name="DefenceAttribute">
<amount>
<value level="1">0</value>
<value level="2">10</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">15</value>
<value level="6">15</value>
<value level="7">0</value>
<value level="8">15</value>
<value level="9">15</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
<amount>
<value level="1">0</value>
<value level="2">10</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">15</value>
<value level="6">15</value>
<value level="7">0</value>
<value level="8">15</value>
<value level="9">15</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<attribute>DARK</attribute>
</amount>
</effect>
<effect name="DefenceAttribute">
<amount>
<value level="1">0</value>
<value level="2">10</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">15</value>
<value level="6">15</value>
<value level="7">0</value>
<value level="8">15</value>
<value level="9">15</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
<amount>
<value level="1">0</value>
<value level="2">10</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">15</value>
<value level="6">15</value>
<value level="7">0</value>
<value level="8">15</value>
<value level="9">15</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<attribute>HOLY</attribute>
</amount>
</effect>
<effect name="ResistAbnormalByCategory">
<amount>
<value level="1">0</value>
<value level="2">10</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">13</value>
<value level="6">13</value>
<value level="7">0</value>
<value level="8">13</value>
<value level="9">15</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
<amount>
<value level="1">0</value>
<value level="2">10</value>
<value level="3">0</value>
<value level="4">0</value>
<value level="5">13</value>
<value level="6">13</value>
<value level="7">0</value>
<value level="8">13</value>
<value level="9">15</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<slot>DEBUFF</slot>
</amount>
</effect>
<effect name="CriticalRate">
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">8</value>
<value level="4">0</value>
<value level="5">13</value>
<value level="6">0</value>
<value level="7">0</value>
<value level="8">13</value>
<value level="9">0</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">8</value>
<value level="4">0</value>
<value level="5">13</value>
<value level="6">0</value>
<value level="7">0</value>
<value level="8">13</value>
<value level="9">0</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="DefenceCriticalDamage">
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">-10</value>
<value level="4">0</value>
<value level="5">-15</value>
<value level="6">0</value>
<value level="7">0</value>
<value level="8">-15</value>
<value level="9">-15</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">-10</value>
<value level="4">0</value>
<value level="5">-15</value>
<value level="6">0</value>
<value level="7">0</value>
<value level="8">-15</value>
<value level="9">-15</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="PvpMagicalSkillDefenceBonus">
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">-10</value>
<value level="4">0</value>
<value level="5">-15</value>
<value level="6">0</value>
<value level="7">-15</value>
<value level="8">-15</value>
<value level="9">-15</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">-10</value>
<value level="4">0</value>
<value level="5">-15</value>
<value level="6">0</value>
<value level="7">-15</value>
<value level="8">-15</value>
<value level="9">-15</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="PvpPhysicalSkillDamageBonus">
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">-10</value>
<value level="4">0</value>
<value level="5">-15</value>
<value level="6">0</value>
<value level="7">-15</value>
<value level="8">-15</value>
<value level="9">-15</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">-10</value>
<value level="4">0</value>
<value level="5">-15</value>
<value level="6">0</value>
<value level="7">-15</value>
<value level="8">-15</value>
<value level="9">-15</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="MaxHp">
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">325</value>
<value level="5">0</value>
<value level="6">490</value>
<value level="7">490</value>
<value level="8">490</value>
<value level="9">510</value>
<value level="10">531</value>
<value level="11">563</value>
<value level="12">0</value>
</amount>
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">325</value>
<value level="5">0</value>
<value level="6">490</value>
<value level="7">490</value>
<value level="8">490</value>
<value level="9">510</value>
<value level="10">531</value>
<value level="11">563</value>
<value level="12">0</value>
</amount>
<mode>DIFF</mode>
</effect>
<effect name="MaxCp">
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">325</value>
<value level="5">0</value>
<value level="6">490</value>
<value level="7">490</value>
<value level="8">490</value>
<value level="9">510</value>
<value level="10">531</value>
<value level="11">563</value>
<value level="12">0</value>
</amount>
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">325</value>
<value level="5">0</value>
<value level="6">490</value>
<value level="7">490</value>
<value level="8">490</value>
<value level="9">510</value>
<value level="10">531</value>
<value level="11">563</value>
<value level="12">0</value>
</amount>
<mode>DIFF</mode>
</effect>
<effect name="MaxMp">
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">325</value>
<value level="5">0</value>
<value level="6">490</value>
<value level="7">490</value>
<value level="8">490</value>
<value level="9">510</value>
<value level="10">531</value>
<value level="11">563</value>
<value level="12">0</value>
</amount>
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">325</value>
<value level="5">0</value>
<value level="6">490</value>
<value level="7">490</value>
<value level="8">490</value>
<value level="9">510</value>
<value level="10">531</value>
<value level="11">563</value>
<value level="12">0</value>
</amount>
<mode>DIFF</mode>
</effect>
<effect name="HpRegen">
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">5</value>
<value level="5">0</value>
<value level="6">7</value>
<value level="7">7</value>
<value level="8">7</value>
<value level="9">0</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">5</value>
<value level="5">0</value>
<value level="6">7</value>
<value level="7">7</value>
<value level="8">7</value>
<value level="9">0</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="MpRegen">
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">5</value>
<value level="5">0</value>
<value level="6">7</value>
<value level="7">7</value>
<value level="8">7</value>
<value level="9">0</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">5</value>
<value level="5">0</value>
<value level="6">7</value>
<value level="7">7</value>
<value level="8">7</value>
<value level="9">0</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="CpRegen">
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">5</value>
<value level="5">0</value>
<value level="6">7</value>
<value level="7">7</value>
<value level="8">7</value>
<value level="9">0</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">0</value>
<value level="4">5</value>
<value level="5">0</value>
<value level="6">7</value>
<value level="7">7</value>
<value level="8">7</value>
<value level="9">0</value>
<value level="10">0</value>
<value level="11">0</value>
<value level="12">0</value>
</amount>
<mode>PER</mode>
</effect>
</effects>
@ -1835,81 +1835,81 @@
<effects>
<effect name="MaxHp">
<amount>
<value level="1">200</value>
<value level="2">300</value>
<value level="3">400</value>
<value level="1">200</value>
<value level="2">300</value>
<value level="3">400</value>
</amount>
<mode>DIFF</mode>
</effect>
<effect name="MaxCp">
<amount>
<value level="1">200</value>
<value level="2">300</value>
<value level="3">400</value>
<value level="1">200</value>
<value level="2">300</value>
<value level="3">400</value>
</amount>
<mode>DIFF</mode>
</effect>
<effect name="PhysicalDefence">
<amount>
<value level="1">5</value>
<value level="2">15</value>
<value level="3">20</value>
<value level="1">5</value>
<value level="2">15</value>
<value level="3">20</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalDefence">
<amount>
<value level="1">5</value>
<value level="2">15</value>
<value level="3">20</value>
<value level="1">5</value>
<value level="2">15</value>
<value level="3">20</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="DefenceAttribute">
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">5</value>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">5</value>
</amount>
<attribute>FIRE</attribute>
</effect>
<effect name="DefenceAttribute">
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">5</value>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">5</value>
</amount>
<attribute>WATER</attribute>
</effect>
<effect name="DefenceAttribute">
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">5</value>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">5</value>
</amount>
<attribute>WIND</attribute>
</effect>
<effect name="DefenceAttribute">
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">5</value>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">5</value>
</amount>
<attribute>EARTH</attribute>
</effect>
<effect name="DefenceAttribute">
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">5</value>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">5</value>
</amount>
<attribute>HOLY</attribute>
</effect>
<effect name="DefenceAttribute">
<amount>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">5</value>
<value level="1">0</value>
<value level="2">0</value>
<value level="3">5</value>
</amount>
<attribute>DARK</attribute>
</effect>
@ -1927,25 +1927,25 @@
<effects>
<effect name="PAtk">
<amount>
<value level="1">5</value>
<value level="2">7</value>
<value level="3">10</value>
<value level="1">5</value>
<value level="2">7</value>
<value level="3">10</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="MAtk">
<amount>
<value level="1">10</value>
<value level="2">15</value>
<value level="3">20</value>
<value level="1">10</value>
<value level="2">15</value>
<value level="3">20</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalAttackSpeed">
<amount>
<value level="1">0</value>
<value level="2">5</value>
<value level="3">10</value>
<value level="1">0</value>
<value level="2">5</value>
<value level="3">10</value>
</amount>
<mode>PER</mode>
</effect>
@ -1963,33 +1963,33 @@
<effects>
<effect name="PhysicalDefence">
<amount>
<value level="1">3</value>
<value level="2">5</value>
<value level="3">10</value>
<value level="1">3</value>
<value level="2">5</value>
<value level="3">10</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="MagicalDefence">
<amount>
<value level="1">3</value>
<value level="2">5</value>
<value level="3">10</value>
<value level="1">3</value>
<value level="2">5</value>
<value level="3">10</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="PAtk">
<amount>
<value level="1">3</value>
<value level="2">5</value>
<value level="3">10</value>
<value level="1">3</value>
<value level="2">5</value>
<value level="3">10</value>
</amount>
<mode>PER</mode>
</effect>
<effect name="MAtk">
<amount>
<value level="1">5</value>
<value level="2">10</value>
<value level="3">20</value>
<value level="1">5</value>
<value level="2">10</value>
<value level="3">20</value>
</amount>
<mode>PER</mode>
</effect>

View File

@ -402,6 +402,7 @@
<!-- FIXME: value unconfirmed -->
<abnormalLvl>10</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>90</activateRate>
@ -439,6 +440,7 @@
<!-- FIXME: value unconfirmed -->
<abnormalLvl>10</abnormalLvl>
<abnormalTime>20</abnormalTime>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<abnormalVisualEffect>DOT_BLEEDING</abnormalVisualEffect>
<activateRate>90</activateRate>

View File

@ -945,7 +945,7 @@
<minDamage>1</minDamage>
</effect>
<effect name="BlockAbnormalSlot">
<dispel>IMPROVE_VAMPIRIC_HASTE;ATTACK_TIME_DOWN;CASTING_TIME_DOWN</dispel>
<slot>IMPROVE_VAMPIRIC_HASTE;ATTACK_TIME_DOWN;CASTING_TIME_DOWN</slot>
</effect>
<effect name="MAtk">
<amount>10</amount>
@ -1296,6 +1296,7 @@
<castRange>40</castRange>
<reuseDelay>10000</reuseDelay>
<effectPoint>-333</effectPoint>
<subordinationAbnormalType>BLEEDING</subordinationAbnormalType>
<abnormalType>BLEEDING</abnormalType>
<basicProperty>PHYSICAL</basicProperty>
<rideState>NONE</rideState>

View File

@ -53,7 +53,6 @@ import com.l2jmobius.gameserver.model.events.impl.character.npc.OnAttackableFact
import com.l2jmobius.gameserver.model.events.impl.character.npc.OnAttackableHate;
import com.l2jmobius.gameserver.model.events.returns.TerminateReturn;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.skills.BuffInfo;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.model.skills.SkillCaster;
import com.l2jmobius.gameserver.model.zone.ZoneId;
@ -350,6 +349,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
_globalAggro--;
}
}
// Add all autoAttackable L2Character in L2Attackable Aggro Range to its _aggroList with 0 damage and 1 hate
// A L2Attackable isn't aggressive during 10s after its spawn because _globalAggro is set to -10
if (_globalAggro >= 0)
@ -931,8 +931,13 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
// Skip if target is already affected by such skill.
if (skill.isContinuous())
{
final BuffInfo info = ((L2Character) target).getEffectList().getBuffInfoByAbnormalType(skill.getAbnormalType());
if ((info != null) && (info.getSkill().getAbnormalLvl() >= skill.getAbnormalLvl()))
if (((L2Character) target).getEffectList().hasAbnormalType(skill.getAbnormalType(), i -> (i.getSkill().getAbnormalLvl() >= skill.getAbnormalLvl())))
{
return false;
}
// There are cases where bad skills (negative effect points) are actually buffs and NPCs cast them on players, but they shouldn't.
if ((!skill.isDebuff() || !skill.isBad()) && target.isAutoAttackable(getActiveChar()))
{
return false;
}
@ -943,12 +948,12 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
{
if (skill.isBad())
{
if (!((L2Character) target).getEffectList().hasBuffs() && !((L2Character) target).getEffectList().hasDances())
if (((L2Character) target).getEffectList().getBuffCount() == 0)
{
return false;
}
}
else if (!((L2Character) target).getEffectList().hasDebuffs())
else if (((L2Character) target).getEffectList().getDebuffCount() == 0)
{
return false;
}
@ -1011,11 +1016,14 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
return null;
}
// There are cases where bad skills (negative effect points) are actually buffs and NPCs cast them on players, but they shouldn't.
final boolean isBad = skill.isContinuous() ? skill.isDebuff() : skill.isBad();
// Check current target first.
final int range = insideCastRange ? skill.getCastRange() + getActiveChar().getTemplate().getCollisionRadius() : 2000; // TODO need some forget range
Stream<L2Character> stream;
if (skill.isBad())
if (isBad)
{
//@formatter:off
stream = npc.getAggroList().values().stream()

View File

@ -19,14 +19,11 @@ package com.l2jmobius.gameserver.model.actor;
import static com.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_ACTIVE;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Queue;
import java.util.Set;
@ -39,7 +36,6 @@ import java.util.concurrent.locks.ReentrantLock;
import java.util.function.Predicate;
import java.util.logging.Logger;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import com.l2jmobius.Config;
import com.l2jmobius.commons.util.EmptyQueue;
@ -120,7 +116,6 @@ import com.l2jmobius.gameserver.model.items.type.WeaponType;
import com.l2jmobius.gameserver.model.options.OptionsSkillHolder;
import com.l2jmobius.gameserver.model.options.OptionsSkillType;
import com.l2jmobius.gameserver.model.skills.AbnormalType;
import com.l2jmobius.gameserver.model.skills.AbnormalVisualEffect;
import com.l2jmobius.gameserver.model.skills.BuffInfo;
import com.l2jmobius.gameserver.model.skills.CommonSkill;
import com.l2jmobius.gameserver.model.skills.Skill;
@ -246,9 +241,6 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
private SkillChannelized _channelized = null;
private volatile Set<AbnormalVisualEffect> _abnormalVisualEffects;
private volatile Set<AbnormalVisualEffect> _currentAbnormalVisualEffects;
private Optional<Transform> _transform = Optional.empty();
/** Movement data of this L2Character */
@ -2523,95 +2515,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
*/
public final void setWalking()
{
if (isRunning())
{
setIsRunning(false);
}
}
/**
* Resets the abnormal visual effects recalculating all of them that are applied from skills and sending packet for updating them on client if a change is found.
*/
public void resetCurrentAbnormalVisualEffects()
{
final Collection<BuffInfo> passives = getEffectList().hasPassives() ? new ArrayList<>(getEffectList().getPassives()) : null;
//@formatter:off
final Set<AbnormalVisualEffect> abnormalVisualEffects = Stream.concat(getEffectList().getEffects().stream(), passives != null ? passives.stream() : Stream.empty())
.filter(Objects::nonNull)
.map(BuffInfo::getSkill)
.filter(Skill::hasAbnormalVisualEffects)
.flatMap(s -> s.getAbnormalVisualEffects().stream())
.collect(Collectors.toCollection(HashSet::new));
//@formatter:on
if (_abnormalVisualEffects != null)
{
abnormalVisualEffects.addAll(_abnormalVisualEffects);
}
if ((_currentAbnormalVisualEffects == null) || !_currentAbnormalVisualEffects.equals(abnormalVisualEffects))
{
_currentAbnormalVisualEffects = Collections.unmodifiableSet(abnormalVisualEffects);
updateAbnormalVisualEffects();
}
}
/**
* Gets the currently applied abnormal visual effects.
* @return the abnormal visual effects
*/
public Set<AbnormalVisualEffect> getCurrentAbnormalVisualEffects()
{
return _currentAbnormalVisualEffects != null ? _currentAbnormalVisualEffects : Collections.emptySet();
}
/**
* Checks if the creature has the abnormal visual effect.
* @param ave the abnormal visual effect
* @return {@code true} if the creature has the abnormal visual effect, {@code false} otherwise
*/
public boolean hasAbnormalVisualEffect(AbnormalVisualEffect ave)
{
return (_abnormalVisualEffects != null) && _abnormalVisualEffects.contains(ave);
}
/**
* Adds the abnormal visual and sends packet for updating them in client.
* @param aves the abnormal visual effects
*/
public final void startAbnormalVisualEffect(AbnormalVisualEffect... aves)
{
for (AbnormalVisualEffect ave : aves)
{
if (_abnormalVisualEffects == null)
{
synchronized (this)
{
if (_abnormalVisualEffects == null)
{
_abnormalVisualEffects = Collections.newSetFromMap(new ConcurrentHashMap<>());
}
}
}
_abnormalVisualEffects.add(ave);
}
resetCurrentAbnormalVisualEffects();
}
/**
* Removes the abnormal visual and sends packet for updating them in client.
* @param aves the abnormal visual effects
*/
public final void stopAbnormalVisualEffect(AbnormalVisualEffect... aves)
{
if (_abnormalVisualEffects != null)
{
for (AbnormalVisualEffect ave : aves)
{
_abnormalVisualEffects.remove(ave);
}
resetCurrentAbnormalVisualEffects();
}
setIsRunning(false);
}
/**
@ -2672,11 +2576,6 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
_effectList.stopSkillEffects(true, skill.getId());
}
public final void stopEffects(AbnormalType abnormalType)
{
_effectList.stopSkillEffects(true, abnormalType);
}
public final void stopEffects(EffectFlag effectFlag)
{
_effectList.stopEffects(effectFlag);
@ -2737,7 +2636,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
{
if (removeEffects)
{
stopEffects(AbnormalType.STUN);
getEffectList().stopEffects(AbnormalType.STUN);
}
if (!isPlayer())
@ -2760,8 +2659,8 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
{
if (removeEffects)
{
getEffectList().stopSkillEffects(false, AbnormalType.TRANSFORM);
getEffectList().stopSkillEffects(false, AbnormalType.CHANGEBODY);
getEffectList().stopEffects(AbnormalType.TRANSFORM);
getEffectList().stopEffects(AbnormalType.CHANGEBODY);
}
if (isTransformed())
@ -2776,7 +2675,13 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
updateAbnormalVisualEffects();
}
public abstract void updateAbnormalVisualEffects();
/**
* Updates the visual abnormal state of this character. <br>
*/
public void updateAbnormalVisualEffects()
{
// overridden
}
/**
* Update active skills in progress (In Use and Not In Use because stacked) icons on client.<br>

View File

@ -196,7 +196,6 @@ public abstract class L2Playable extends L2Character
// Notify L2Character AI
getAI().notifyEvent(CtrlEvent.EVT_DEAD);
super.updateEffectIcons();
return true;
}

View File

@ -796,7 +796,6 @@ public abstract class L2Summon extends L2Playable
{
party.broadcastToPartyMembers(getOwner(), new ExPartyPetWindowUpdate(this));
}
updateEffectIcons(true);
}
public void broadcastNpcInfo(int val)
@ -841,8 +840,6 @@ public abstract class L2Summon extends L2Playable
if (activeChar == getOwner())
{
activeChar.sendPacket(new PetInfo(this, isDead() ? 0 : 1));
// The PetInfo packet wipes the PartySpelled (list of active spells' icons). Re-add them
updateEffectIcons(true);
if (isPet())
{
activeChar.sendPacket(new PetItemList(getInventory().getItems()));

View File

@ -426,11 +426,6 @@ public abstract class L2Vehicle extends L2Character
return super.deleteMe();
}
@Override
public void updateAbnormalVisualEffects()
{
}
@Override
public L2ItemInstance getActiveWeaponInstance()
{

View File

@ -69,7 +69,7 @@ public class DoppelgangerInstance extends L2Npc
if (_copySummonerEffects && (getSummoner() != null))
{
for (BuffInfo summonerInfo : getSummoner().getEffectList().getBuffs())
for (BuffInfo summonerInfo : getSummoner().getEffectList().getEffects())
{
if (summonerInfo.getAbnormalTime() > 0)
{

View File

@ -327,11 +327,6 @@ public final class L2DoorInstance extends L2Character
return (isCastle || isFort);
}
@Override
public void updateAbnormalVisualEffects()
{
}
/**
* Return null.
*/

View File

@ -8495,12 +8495,6 @@ public final class L2PcInstance extends L2Playable
updateAndBroadcastStatus(2);
}
public final void stopAllEffectsNotStayOnSubclassChange()
{
getEffectList().stopAllEffectsNotStayOnSubclassChange();
updateAndBroadcastStatus(2);
}
public final void stopCubics()
{
if (!_cubics.isEmpty())
@ -8892,7 +8886,7 @@ public final class L2PcInstance extends L2Playable
setLastLocation();
// Remove Hide.
getEffectList().stopSkillEffects(true, AbnormalType.HIDE);
getEffectList().stopEffects(AbnormalType.HIDE);
setObserving(true);
sendPacket(new ObservationMode(loc));
@ -8926,7 +8920,7 @@ public final class L2PcInstance extends L2Playable
}
// Remove Hide.
getEffectList().stopSkillEffects(true, AbnormalType.HIDE);
getEffectList().stopEffects(AbnormalType.HIDE);
if (!_cubics.isEmpty())
{
@ -9783,7 +9777,7 @@ public final class L2PcInstance extends L2Playable
}
stopAllEffectsExceptThoseThatLastThroughDeath();
stopAllEffectsNotStayOnSubclassChange();
stopAllEffects();
stopCubics();
restoreRecipeBook(false);
@ -10039,7 +10033,6 @@ public final class L2PcInstance extends L2Playable
public void doRevive()
{
super.doRevive();
updateEffectIcons();
sendPacket(new EtcStatusUpdate(this));
_revivePet = false;
_reviveRequested = 0;

View File

@ -573,7 +573,6 @@ public class L2ServitorInstance extends L2Summon implements Runnable
}
sendPacket(new SetSummonRemainTime(getLifeTime(), _lifeTimeRemaining));
updateEffectIcons();
// Using same task to check if owner is in visible range
if (calculateDistance(getOwner(), true, false) > 2000)

View File

@ -178,11 +178,6 @@ public final class L2StaticObjectInstance extends L2Character
return _meshIndex;
}
@Override
public void updateAbnormalVisualEffects()
{
}
@Override
public void sendInfo(L2PcInstance activeChar)
{

View File

@ -361,12 +361,6 @@ public final class L2TrapInstance extends L2Npc
}
}
@Override
public void updateAbnormalVisualEffects()
{
}
public boolean hasLifeTime()
{
return _hasLifeTime;

View File

@ -773,9 +773,9 @@ public class CharStat
// Collect all necessary effects
final CharEffectList effectList = _activeChar.getEffectList();
final Stream<BuffInfo> passives = effectList.hasPassives() ? effectList.getPassives().stream().filter(info -> info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _activeChar, _activeChar)) : null;
final Stream<BuffInfo> options = effectList.hasOptions() ? effectList.getOptions().stream() : null;
final Stream<BuffInfo> effectsStream = Stream.concat(effectList.getEffects().stream(), Stream.concat(passives != null ? passives : Stream.empty(), options != null ? options : Stream.empty()));
final Stream<BuffInfo> passives = effectList.getPassives().stream().filter(BuffInfo::isInUse).filter(info -> info.getSkill().checkConditions(SkillConditionScope.PASSIVE, _activeChar, _activeChar));
final Stream<BuffInfo> options = effectList.getOptions().stream().filter(BuffInfo::isInUse);
final Stream<BuffInfo> effectsStream = Stream.concat(effectList.getEffects().stream().filter(BuffInfo::isInUse), Stream.concat(passives != null ? passives : Stream.empty(), options != null ? options : Stream.empty()));
// Call pump to each effect
//@formatter:off

View File

@ -38,9 +38,6 @@ public class PetStat extends SummonStat
}
getActiveChar().updateAndBroadcastStatus(1);
// The PetInfo packet wipes the PartySpelled (list of active spells' icons). Re-add them
getActiveChar().updateEffectIcons(true);
return true;
}

View File

@ -172,7 +172,7 @@ public class CharStatus
}
if (Formulas.calcRealTargetBreak())
{
getActiveChar().getEffectList().stopSkillEffects(true, AbnormalType.REAL_TARGET);
getActiveChar().getEffectList().stopEffects(AbnormalType.REAL_TARGET);
}
}

View File

@ -119,7 +119,7 @@ public class PcStatus extends PlayableStatus
}
if (Formulas.calcRealTargetBreak())
{
getActiveChar().getEffectList().stopSkillEffects(true, AbnormalType.REAL_TARGET);
getActiveChar().getEffectList().stopEffects(AbnormalType.REAL_TARGET);
}
}
}

View File

@ -394,8 +394,8 @@ public final class Transform implements IIdentifiable
player.sendPacket(ExBasicActionList.STATIC_PACKET);
player.getEffectList().stopSkillEffects(false, AbnormalType.TRANSFORM);
player.getEffectList().stopSkillEffects(false, AbnormalType.CHANGEBODY);
player.getEffectList().stopEffects(AbnormalType.TRANSFORM);
player.getEffectList().stopEffects(AbnormalType.CHANGEBODY);
if (hasTransformSkills)
{

View File

@ -19,7 +19,6 @@ package com.l2jmobius.gameserver.model.conditions;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.items.L2Item;
import com.l2jmobius.gameserver.model.skills.AbnormalType;
import com.l2jmobius.gameserver.model.skills.BuffInfo;
import com.l2jmobius.gameserver.model.skills.Skill;
/**
@ -55,7 +54,11 @@ public class ConditionPlayerCheckAbnormal extends Condition
@Override
public boolean testImpl(L2Character effector, L2Character effected, Skill skill, L2Item item)
{
final BuffInfo info = effector.getEffectList().getBuffInfoByAbnormalType(_type);
return ((info != null) && ((_level == -1) || (_level >= info.getSkill().getAbnormalLvl())));
if (_level == -1)
{
return effector.getEffectList().hasAbnormalType(_type);
}
return effector.getEffectList().hasAbnormalType(_type, info -> _level >= info.getSkill().getAbnormalLvl());
}
}

View File

@ -75,7 +75,7 @@ public class CubicSkill extends SkillHolder implements ICubicConditionHolder
@Override
public boolean validateConditions(CubicInstance cubic, L2Character owner, L2Character target)
{
return (!_targetDebuff || (_targetDebuff && target.getEffectList().hasDebuffs())) && (_conditions.isEmpty() || _conditions.stream().allMatch(condition -> condition.test(cubic, owner, target)));
return (!_targetDebuff || (_targetDebuff && (target.getEffectList().getDebuffCount() > 0))) && (_conditions.isEmpty() || _conditions.stream().allMatch(condition -> condition.test(cubic, owner, target)));
}
@Override

View File

@ -48,7 +48,6 @@ import com.l2jmobius.gameserver.model.instancezone.conditions.ConditionGroupMax;
import com.l2jmobius.gameserver.model.instancezone.conditions.ConditionGroupMin;
import com.l2jmobius.gameserver.model.interfaces.IIdentifiable;
import com.l2jmobius.gameserver.model.interfaces.INamable;
import com.l2jmobius.gameserver.model.skills.BuffInfo;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.model.spawns.SpawnTemplate;
import com.l2jmobius.gameserver.model.variables.PlayerVariables;
@ -509,13 +508,8 @@ public class InstanceTemplate extends ListenersContainer implements IIdentifiabl
{
for (L2Playable playable : affected)
{
for (BuffInfo info : playable.getEffectList().getBuffs())
{
if (hasRemoveBuffException(info.getSkill()))
{
playable.stopSkillEffects(info.getSkill());
}
}
// Stop all buffs.
playable.getEffectList().stopEffects(info -> !info.getSkill().isIrreplacableBuff() && info.getSkill().getBuffType().isBuff() && hasRemoveBuffException(info.getSkill()), true);
}
}
}

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