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