Prevent Stakato heal when silenced.
Contributed by pecanha.
This commit is contained in:
@@ -91,20 +91,19 @@ public class StakatoNest extends AbstractNpcAI
|
||||
@Override
|
||||
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
final MonsterInstance mob = (MonsterInstance) npc;
|
||||
if ((mob.getId() == STAKATO_LEADER) && (getRandom(1000) < 100) && (mob.getCurrentHp() < (mob.getMaxHp() * 0.3)))
|
||||
if ((npc.getId() == STAKATO_LEADER) && (getRandom(1000) < 100) && (npc.getCurrentHp() < (npc.getMaxHp() * 0.3)))
|
||||
{
|
||||
final MonsterInstance follower = checkMinion(npc);
|
||||
if (follower != null)
|
||||
{
|
||||
final double _hp = follower.getCurrentHp();
|
||||
if (_hp > (follower.getMaxHp() * 0.3))
|
||||
final double hp = follower.getCurrentHp();
|
||||
if (hp > (follower.getMaxHp() * 0.3))
|
||||
{
|
||||
mob.abortAttack();
|
||||
mob.abortCast();
|
||||
mob.setHeading(Util.calculateHeadingFrom(mob, follower));
|
||||
mob.doCast(DEVOUR_SUBORDINATE.getSkill());
|
||||
mob.setCurrentHp(mob.getCurrentHp() + _hp);
|
||||
npc.abortAttack();
|
||||
npc.abortCast();
|
||||
npc.setHeading(Util.calculateHeadingFrom(npc, follower));
|
||||
npc.doCast(DEVOUR_SUBORDINATE.getSkill());
|
||||
npc.setCurrentHp(npc.getCurrentHp() + hp);
|
||||
follower.doDie(follower);
|
||||
follower.deleteMe();
|
||||
}
|
||||
|
||||
@@ -3307,6 +3307,7 @@
|
||||
<effectPoint>100</effectPoint>
|
||||
<effectRange>1100</effectRange>
|
||||
<hitTime>100</hitTime>
|
||||
<isMagic>1</isMagic> <!-- Magic Skill -->
|
||||
<magicLvl>75</magicLvl>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
|
||||
@@ -91,20 +91,19 @@ public class StakatoNest extends AbstractNpcAI
|
||||
@Override
|
||||
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
final MonsterInstance mob = (MonsterInstance) npc;
|
||||
if ((mob.getId() == STAKATO_LEADER) && (getRandom(1000) < 100) && (mob.getCurrentHp() < (mob.getMaxHp() * 0.3)))
|
||||
if ((npc.getId() == STAKATO_LEADER) && (getRandom(1000) < 100) && (npc.getCurrentHp() < (npc.getMaxHp() * 0.3)))
|
||||
{
|
||||
final MonsterInstance follower = checkMinion(npc);
|
||||
if (follower != null)
|
||||
{
|
||||
final double _hp = follower.getCurrentHp();
|
||||
if (_hp > (follower.getMaxHp() * 0.3))
|
||||
final double hp = follower.getCurrentHp();
|
||||
if (hp > (follower.getMaxHp() * 0.3))
|
||||
{
|
||||
mob.abortAttack();
|
||||
mob.abortCast();
|
||||
mob.setHeading(Util.calculateHeadingFrom(mob, follower));
|
||||
mob.doCast(DEVOUR_SUBORDINATE.getSkill());
|
||||
mob.setCurrentHp(mob.getCurrentHp() + _hp);
|
||||
npc.abortAttack();
|
||||
npc.abortCast();
|
||||
npc.setHeading(Util.calculateHeadingFrom(npc, follower));
|
||||
npc.doCast(DEVOUR_SUBORDINATE.getSkill());
|
||||
npc.setCurrentHp(npc.getCurrentHp() + hp);
|
||||
follower.doDie(follower);
|
||||
follower.deleteMe();
|
||||
}
|
||||
|
||||
@@ -3307,6 +3307,7 @@
|
||||
<effectPoint>100</effectPoint>
|
||||
<effectRange>1100</effectRange>
|
||||
<hitTime>100</hitTime>
|
||||
<isMagic>1</isMagic> <!-- Magic Skill -->
|
||||
<magicLvl>75</magicLvl>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
|
||||
@@ -91,20 +91,19 @@ public class StakatoNest extends AbstractNpcAI
|
||||
@Override
|
||||
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
final MonsterInstance mob = (MonsterInstance) npc;
|
||||
if ((mob.getId() == STAKATO_LEADER) && (getRandom(1000) < 100) && (mob.getCurrentHp() < (mob.getMaxHp() * 0.3)))
|
||||
if ((npc.getId() == STAKATO_LEADER) && (getRandom(1000) < 100) && (npc.getCurrentHp() < (npc.getMaxHp() * 0.3)))
|
||||
{
|
||||
final MonsterInstance follower = checkMinion(npc);
|
||||
if (follower != null)
|
||||
{
|
||||
final double _hp = follower.getCurrentHp();
|
||||
if (_hp > (follower.getMaxHp() * 0.3))
|
||||
final double hp = follower.getCurrentHp();
|
||||
if (hp > (follower.getMaxHp() * 0.3))
|
||||
{
|
||||
mob.abortAttack();
|
||||
mob.abortCast();
|
||||
mob.setHeading(Util.calculateHeadingFrom(mob, follower));
|
||||
mob.doCast(DEVOUR_SUBORDINATE.getSkill());
|
||||
mob.setCurrentHp(mob.getCurrentHp() + _hp);
|
||||
npc.abortAttack();
|
||||
npc.abortCast();
|
||||
npc.setHeading(Util.calculateHeadingFrom(npc, follower));
|
||||
npc.doCast(DEVOUR_SUBORDINATE.getSkill());
|
||||
npc.setCurrentHp(npc.getCurrentHp() + hp);
|
||||
follower.doDie(follower);
|
||||
follower.deleteMe();
|
||||
}
|
||||
|
||||
@@ -3320,6 +3320,7 @@
|
||||
<effectPoint>100</effectPoint>
|
||||
<effectRange>1100</effectRange>
|
||||
<hitTime>100</hitTime>
|
||||
<isMagic>1</isMagic> <!-- Magic Skill -->
|
||||
<magicLvl>75</magicLvl>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
|
||||
@@ -91,20 +91,19 @@ public class StakatoNest extends AbstractNpcAI
|
||||
@Override
|
||||
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
final MonsterInstance mob = (MonsterInstance) npc;
|
||||
if ((mob.getId() == STAKATO_LEADER) && (getRandom(1000) < 100) && (mob.getCurrentHp() < (mob.getMaxHp() * 0.3)))
|
||||
if ((npc.getId() == STAKATO_LEADER) && (getRandom(1000) < 100) && (npc.getCurrentHp() < (npc.getMaxHp() * 0.3)))
|
||||
{
|
||||
final MonsterInstance follower = checkMinion(npc);
|
||||
if (follower != null)
|
||||
{
|
||||
final double _hp = follower.getCurrentHp();
|
||||
if (_hp > (follower.getMaxHp() * 0.3))
|
||||
final double hp = follower.getCurrentHp();
|
||||
if (hp > (follower.getMaxHp() * 0.3))
|
||||
{
|
||||
mob.abortAttack();
|
||||
mob.abortCast();
|
||||
mob.setHeading(Util.calculateHeadingFrom(mob, follower));
|
||||
mob.doCast(DEVOUR_SUBORDINATE.getSkill());
|
||||
mob.setCurrentHp(mob.getCurrentHp() + _hp);
|
||||
npc.abortAttack();
|
||||
npc.abortCast();
|
||||
npc.setHeading(Util.calculateHeadingFrom(npc, follower));
|
||||
npc.doCast(DEVOUR_SUBORDINATE.getSkill());
|
||||
npc.setCurrentHp(npc.getCurrentHp() + hp);
|
||||
follower.doDie(follower);
|
||||
follower.deleteMe();
|
||||
}
|
||||
|
||||
@@ -3320,6 +3320,7 @@
|
||||
<effectPoint>100</effectPoint>
|
||||
<effectRange>1100</effectRange>
|
||||
<hitTime>100</hitTime>
|
||||
<isMagic>1</isMagic> <!-- Magic Skill -->
|
||||
<magicLvl>75</magicLvl>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
|
||||
@@ -91,20 +91,19 @@ public class StakatoNest extends AbstractNpcAI
|
||||
@Override
|
||||
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
final MonsterInstance mob = (MonsterInstance) npc;
|
||||
if ((mob.getId() == STAKATO_LEADER) && (getRandom(1000) < 100) && (mob.getCurrentHp() < (mob.getMaxHp() * 0.3)))
|
||||
if ((npc.getId() == STAKATO_LEADER) && (getRandom(1000) < 100) && (npc.getCurrentHp() < (npc.getMaxHp() * 0.3)))
|
||||
{
|
||||
final MonsterInstance follower = checkMinion(npc);
|
||||
if (follower != null)
|
||||
{
|
||||
final double _hp = follower.getCurrentHp();
|
||||
if (_hp > (follower.getMaxHp() * 0.3))
|
||||
final double hp = follower.getCurrentHp();
|
||||
if (hp > (follower.getMaxHp() * 0.3))
|
||||
{
|
||||
mob.abortAttack();
|
||||
mob.abortCast();
|
||||
mob.setHeading(Util.calculateHeadingFrom(mob, follower));
|
||||
mob.doCast(DEVOUR_SUBORDINATE.getSkill());
|
||||
mob.setCurrentHp(mob.getCurrentHp() + _hp);
|
||||
npc.abortAttack();
|
||||
npc.abortCast();
|
||||
npc.setHeading(Util.calculateHeadingFrom(npc, follower));
|
||||
npc.doCast(DEVOUR_SUBORDINATE.getSkill());
|
||||
npc.setCurrentHp(npc.getCurrentHp() + hp);
|
||||
follower.doDie(follower);
|
||||
follower.deleteMe();
|
||||
}
|
||||
|
||||
@@ -3320,6 +3320,7 @@
|
||||
<effectPoint>100</effectPoint>
|
||||
<effectRange>1100</effectRange>
|
||||
<hitTime>100</hitTime>
|
||||
<isMagic>1</isMagic> <!-- Magic Skill -->
|
||||
<magicLvl>75</magicLvl>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
|
||||
@@ -91,20 +91,19 @@ public class StakatoNest extends AbstractNpcAI
|
||||
@Override
|
||||
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
final MonsterInstance mob = (MonsterInstance) npc;
|
||||
if ((mob.getId() == STAKATO_LEADER) && (getRandom(1000) < 100) && (mob.getCurrentHp() < (mob.getMaxHp() * 0.3)))
|
||||
if ((npc.getId() == STAKATO_LEADER) && (getRandom(1000) < 100) && (npc.getCurrentHp() < (npc.getMaxHp() * 0.3)))
|
||||
{
|
||||
final MonsterInstance follower = checkMinion(npc);
|
||||
if (follower != null)
|
||||
{
|
||||
final double _hp = follower.getCurrentHp();
|
||||
if (_hp > (follower.getMaxHp() * 0.3))
|
||||
final double hp = follower.getCurrentHp();
|
||||
if (hp > (follower.getMaxHp() * 0.3))
|
||||
{
|
||||
mob.abortAttack();
|
||||
mob.abortCast();
|
||||
mob.setHeading(Util.calculateHeadingFrom(mob, follower));
|
||||
mob.doCast(DEVOUR_SUBORDINATE.getSkill());
|
||||
mob.setCurrentHp(mob.getCurrentHp() + _hp);
|
||||
npc.abortAttack();
|
||||
npc.abortCast();
|
||||
npc.setHeading(Util.calculateHeadingFrom(npc, follower));
|
||||
npc.doCast(DEVOUR_SUBORDINATE.getSkill());
|
||||
npc.setCurrentHp(npc.getCurrentHp() + hp);
|
||||
follower.doDie(follower);
|
||||
follower.deleteMe();
|
||||
}
|
||||
|
||||
@@ -3320,6 +3320,7 @@
|
||||
<effectPoint>100</effectPoint>
|
||||
<effectRange>1100</effectRange>
|
||||
<hitTime>100</hitTime>
|
||||
<isMagic>1</isMagic> <!-- Magic Skill -->
|
||||
<magicLvl>75</magicLvl>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
|
||||
@@ -91,20 +91,19 @@ public class StakatoNest extends AbstractNpcAI
|
||||
@Override
|
||||
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
final MonsterInstance mob = (MonsterInstance) npc;
|
||||
if ((mob.getId() == STAKATO_LEADER) && (getRandom(1000) < 100) && (mob.getCurrentHp() < (mob.getMaxHp() * 0.3)))
|
||||
if ((npc.getId() == STAKATO_LEADER) && (getRandom(1000) < 100) && (npc.getCurrentHp() < (npc.getMaxHp() * 0.3)))
|
||||
{
|
||||
final MonsterInstance follower = checkMinion(npc);
|
||||
if (follower != null)
|
||||
{
|
||||
final double _hp = follower.getCurrentHp();
|
||||
if (_hp > (follower.getMaxHp() * 0.3))
|
||||
final double hp = follower.getCurrentHp();
|
||||
if (hp > (follower.getMaxHp() * 0.3))
|
||||
{
|
||||
mob.abortAttack();
|
||||
mob.abortCast();
|
||||
mob.setHeading(Util.calculateHeadingFrom(mob, follower));
|
||||
mob.doCast(DEVOUR_SUBORDINATE.getSkill());
|
||||
mob.setCurrentHp(mob.getCurrentHp() + _hp);
|
||||
npc.abortAttack();
|
||||
npc.abortCast();
|
||||
npc.setHeading(Util.calculateHeadingFrom(npc, follower));
|
||||
npc.doCast(DEVOUR_SUBORDINATE.getSkill());
|
||||
npc.setCurrentHp(npc.getCurrentHp() + hp);
|
||||
follower.doDie(follower);
|
||||
follower.deleteMe();
|
||||
}
|
||||
|
||||
@@ -3320,6 +3320,7 @@
|
||||
<effectPoint>100</effectPoint>
|
||||
<effectRange>1100</effectRange>
|
||||
<hitTime>100</hitTime>
|
||||
<isMagic>1</isMagic> <!-- Magic Skill -->
|
||||
<magicLvl>75</magicLvl>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
|
||||
@@ -91,20 +91,19 @@ public class StakatoNest extends AbstractNpcAI
|
||||
@Override
|
||||
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
final MonsterInstance mob = (MonsterInstance) npc;
|
||||
if ((mob.getId() == STAKATO_LEADER) && (getRandom(1000) < 100) && (mob.getCurrentHp() < (mob.getMaxHp() * 0.3)))
|
||||
if ((npc.getId() == STAKATO_LEADER) && (getRandom(1000) < 100) && (npc.getCurrentHp() < (npc.getMaxHp() * 0.3)))
|
||||
{
|
||||
final MonsterInstance follower = checkMinion(npc);
|
||||
if (follower != null)
|
||||
{
|
||||
final double _hp = follower.getCurrentHp();
|
||||
if (_hp > (follower.getMaxHp() * 0.3))
|
||||
final double hp = follower.getCurrentHp();
|
||||
if (hp > (follower.getMaxHp() * 0.3))
|
||||
{
|
||||
mob.abortAttack();
|
||||
mob.abortCast();
|
||||
mob.setHeading(Util.calculateHeadingFrom(mob, follower));
|
||||
mob.doCast(DEVOUR_SUBORDINATE.getSkill());
|
||||
mob.setCurrentHp(mob.getCurrentHp() + _hp);
|
||||
npc.abortAttack();
|
||||
npc.abortCast();
|
||||
npc.setHeading(Util.calculateHeadingFrom(npc, follower));
|
||||
npc.doCast(DEVOUR_SUBORDINATE.getSkill());
|
||||
npc.setCurrentHp(npc.getCurrentHp() + hp);
|
||||
follower.doDie(follower);
|
||||
follower.deleteMe();
|
||||
}
|
||||
|
||||
@@ -3320,6 +3320,7 @@
|
||||
<effectPoint>100</effectPoint>
|
||||
<effectRange>1100</effectRange>
|
||||
<hitTime>100</hitTime>
|
||||
<isMagic>1</isMagic> <!-- Magic Skill -->
|
||||
<magicLvl>75</magicLvl>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
|
||||
@@ -24,6 +24,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.AbnormalType;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.MagicSkillUse;
|
||||
import org.l2jmobius.gameserver.util.Broadcast;
|
||||
@@ -89,7 +90,7 @@ public class StakatoNest extends AbstractNpcAI
|
||||
@Override
|
||||
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
if ((npc.getId() == STAKATO_LEADER) && (getRandom(1000) < 100) && (npc.getCurrentHp() < (npc.getMaxHp() * 0.3)))
|
||||
if ((npc.getId() == STAKATO_LEADER) && (npc.getEffectList().getBuffInfoByAbnormalType(AbnormalType.SILENCE) == null) && (getRandom(1000) < 100) && (npc.getCurrentHp() < (npc.getMaxHp() * 0.3)))
|
||||
{
|
||||
final MonsterInstance follower = checkMinion(npc);
|
||||
if (follower != null)
|
||||
|
||||
@@ -1406,6 +1406,7 @@
|
||||
<set name="effectPoint" val="100" />
|
||||
<set name="effectRange" val="1100" />
|
||||
<set name="hitTime" val="100" />
|
||||
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||
<set name="magicLvl" val="75" />
|
||||
<set name="operateType" val="A1" />
|
||||
<set name="targetType" val="ONE" />
|
||||
|
||||
@@ -24,6 +24,7 @@ import org.l2jmobius.gameserver.model.WorldObject;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.AbnormalType;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.MagicSkillUse;
|
||||
import org.l2jmobius.gameserver.util.Broadcast;
|
||||
@@ -89,7 +90,7 @@ public class StakatoNest extends AbstractNpcAI
|
||||
@Override
|
||||
public String onAttack(Npc npc, PlayerInstance attacker, int damage, boolean isSummon)
|
||||
{
|
||||
if ((npc.getId() == STAKATO_LEADER) && (getRandom(1000) < 100) && (npc.getCurrentHp() < (npc.getMaxHp() * 0.3)))
|
||||
if ((npc.getId() == STAKATO_LEADER) && (npc.getEffectList().getBuffInfoByAbnormalType(AbnormalType.SILENCE) == null) && (getRandom(1000) < 100) && (npc.getCurrentHp() < (npc.getMaxHp() * 0.3)))
|
||||
{
|
||||
final MonsterInstance follower = checkMinion(npc);
|
||||
if (follower != null)
|
||||
|
||||
@@ -1406,6 +1406,7 @@
|
||||
<set name="effectPoint" val="100" />
|
||||
<set name="effectRange" val="1100" />
|
||||
<set name="hitTime" val="100" />
|
||||
<set name="isMagic" val="1" /> <!-- Magic Skill -->
|
||||
<set name="magicLvl" val="75" />
|
||||
<set name="operateType" val="A1" />
|
||||
<set name="targetType" val="ONE" />
|
||||
|
||||
@@ -3295,6 +3295,7 @@
|
||||
<effectPoint>100</effectPoint>
|
||||
<effectRange>1100</effectRange>
|
||||
<hitTime>100</hitTime>
|
||||
<isMagic>1</isMagic> <!-- Magic Skill -->
|
||||
<magicLvl>75</magicLvl>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
|
||||
@@ -3295,6 +3295,7 @@
|
||||
<effectPoint>100</effectPoint>
|
||||
<effectRange>1100</effectRange>
|
||||
<hitTime>100</hitTime>
|
||||
<isMagic>1</isMagic> <!-- Magic Skill -->
|
||||
<magicLvl>75</magicLvl>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
|
||||
@@ -3295,6 +3295,7 @@
|
||||
<effectPoint>100</effectPoint>
|
||||
<effectRange>1100</effectRange>
|
||||
<hitTime>100</hitTime>
|
||||
<isMagic>1</isMagic> <!-- Magic Skill -->
|
||||
<magicLvl>75</magicLvl>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
|
||||
@@ -3295,6 +3295,7 @@
|
||||
<effectPoint>100</effectPoint>
|
||||
<effectRange>1100</effectRange>
|
||||
<hitTime>100</hitTime>
|
||||
<isMagic>1</isMagic> <!-- Magic Skill -->
|
||||
<magicLvl>75</magicLvl>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
|
||||
@@ -3295,6 +3295,7 @@
|
||||
<effectPoint>100</effectPoint>
|
||||
<effectRange>1100</effectRange>
|
||||
<hitTime>100</hitTime>
|
||||
<isMagic>1</isMagic> <!-- Magic Skill -->
|
||||
<magicLvl>75</magicLvl>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
|
||||
@@ -3295,6 +3295,7 @@
|
||||
<effectPoint>100</effectPoint>
|
||||
<effectRange>1100</effectRange>
|
||||
<hitTime>100</hitTime>
|
||||
<isMagic>1</isMagic> <!-- Magic Skill -->
|
||||
<magicLvl>75</magicLvl>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
|
||||
@@ -3313,6 +3313,7 @@
|
||||
<effectPoint>100</effectPoint>
|
||||
<effectRange>1100</effectRange>
|
||||
<hitTime>100</hitTime>
|
||||
<isMagic>1</isMagic> <!-- Magic Skill -->
|
||||
<magicLvl>75</magicLvl>
|
||||
<operateType>A1</operateType>
|
||||
<magicCriticalRate>-5</magicCriticalRate>
|
||||
|
||||
Reference in New Issue
Block a user