Fixed NPC Death Bomb (4614) skill.
Thanks to ver.
This commit is contained in:
@@ -296,12 +296,13 @@
|
|||||||
<set name="target" val="ONE" />
|
<set name="target" val="ONE" />
|
||||||
<set name="reuseDelay" val="10000" />
|
<set name="reuseDelay" val="10000" />
|
||||||
<set name="hitTime" val="1500" />
|
<set name="hitTime" val="1500" />
|
||||||
<!-- test -->
|
|
||||||
<set name="skillType" val="MDAM" />
|
<set name="skillType" val="MDAM" />
|
||||||
<set name="isMagic" val="true" />
|
<set name="isMagic" val="true" />
|
||||||
<set name="operateType" val="ACTIVE" />
|
<set name="operateType" val="ACTIVE" />
|
||||||
<set name="castRange" val="600" />
|
<set name="castRange" val="600" />
|
||||||
<set name="effectRange" val="1100" />
|
<set name="effectRange" val="1100" />
|
||||||
|
<set name="isSuicideAttack" val="true" />
|
||||||
|
<set name="maxChance" val="30" />
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="4615" levels="12" name="Bleed">
|
<skill id="4615" levels="12" name="Bleed">
|
||||||
<!-- You suffer a wound that continually reduces HP. Effect 2. -->
|
<!-- You suffer a wound that continually reduces HP. Effect 2. -->
|
||||||
|
@@ -880,6 +880,11 @@ public class AttackableAI extends CreatureAI
|
|||||||
|
|
||||||
if (((sk.getSkillType() == SkillType.BUFF) || (sk.getSkillType() == SkillType.HEAL) || inRange) && !_actor.isSkillDisabled(sk) && (_actor.getCurrentMp() >= _actor.getStat().getMpConsume(sk)) && !sk.isPassive() && (Rnd.get(100) <= 5))
|
if (((sk.getSkillType() == SkillType.BUFF) || (sk.getSkillType() == SkillType.HEAL) || inRange) && !_actor.isSkillDisabled(sk) && (_actor.getCurrentMp() >= _actor.getStat().getMpConsume(sk)) && !sk.isPassive() && (Rnd.get(100) <= 5))
|
||||||
{
|
{
|
||||||
|
if (sk.isSuicideAttack() && ((_actor.getCurrentHp() > (_actor.getMaxHp() / 3)) || (Rnd.get(100) > sk.getMaxChance())))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ((sk.getSkillType() == SkillType.BUFF) || (sk.getSkillType() == SkillType.HEAL))
|
if ((sk.getSkillType() == SkillType.BUFF) || (sk.getSkillType() == SkillType.HEAL))
|
||||||
{
|
{
|
||||||
if ((sk.getSkillType() == SkillType.HEAL) && (_actor.getCurrentHp() > (int) (_actor.getMaxHp() / 1.5)))
|
if ((sk.getSkillType() == SkillType.HEAL) && (_actor.getCurrentHp() > (int) (_actor.getMaxHp() / 1.5)))
|
||||||
@@ -962,12 +967,18 @@ public class AttackableAI extends CreatureAI
|
|||||||
_actor.setTarget(_actor);
|
_actor.setTarget(_actor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GeoData Los Check here
|
// GeoData Los Check here
|
||||||
if (!useSkillSelf && !GeoEngine.getInstance().canSeeTarget(_actor, _actor.getTarget()))
|
if (!useSkillSelf && !GeoEngine.getInstance().canSeeTarget(_actor, _actor.getTarget()))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (sk.isSuicideAttack() && ((_actor.getCurrentHp() > (_actor.getMaxHp() / 3)) || (Rnd.get(100) > sk.getMaxChance())))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
final WorldObject oldTarget = _actor.getTarget();
|
final WorldObject oldTarget = _actor.getTarget();
|
||||||
clientStopMoving(null);
|
clientStopMoving(null);
|
||||||
_accessor.doCast(sk);
|
_accessor.doCast(sk);
|
||||||
|
@@ -137,8 +137,8 @@ public class Mdam implements ISkillHandler
|
|||||||
|
|
||||||
if (skill.isSuicideAttack())
|
if (skill.isSuicideAttack())
|
||||||
{
|
{
|
||||||
creature.doDie(null);
|
|
||||||
creature.setCurrentHp(0);
|
creature.setCurrentHp(0);
|
||||||
|
creature.doDie(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -342,10 +342,10 @@ public class Pdam implements ISkillHandler
|
|||||||
creature.removeSs();
|
creature.removeSs();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (skill.isSuicideAttack() && !creature.isInvul())
|
if (skill.isSuicideAttack())
|
||||||
{
|
{
|
||||||
creature.doDie(null);
|
|
||||||
creature.setCurrentHp(0);
|
creature.setCurrentHp(0);
|
||||||
|
creature.doDie(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -296,12 +296,13 @@
|
|||||||
<set name="target" val="ONE" />
|
<set name="target" val="ONE" />
|
||||||
<set name="reuseDelay" val="10000" />
|
<set name="reuseDelay" val="10000" />
|
||||||
<set name="hitTime" val="1500" />
|
<set name="hitTime" val="1500" />
|
||||||
<!-- test -->
|
|
||||||
<set name="skillType" val="MDAM" />
|
<set name="skillType" val="MDAM" />
|
||||||
<set name="isMagic" val="true" />
|
<set name="isMagic" val="true" />
|
||||||
<set name="operateType" val="ACTIVE" />
|
<set name="operateType" val="ACTIVE" />
|
||||||
<set name="castRange" val="600" />
|
<set name="castRange" val="600" />
|
||||||
<set name="effectRange" val="1100" />
|
<set name="effectRange" val="1100" />
|
||||||
|
<set name="isSuicideAttack" val="true" />
|
||||||
|
<set name="maxChance" val="30" />
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="4615" levels="12" name="Bleed">
|
<skill id="4615" levels="12" name="Bleed">
|
||||||
<!-- You suffer a wound that continually reduces HP. Effect 2. -->
|
<!-- You suffer a wound that continually reduces HP. Effect 2. -->
|
||||||
|
@@ -222,6 +222,7 @@
|
|||||||
<set name="effectRange" val="120" />
|
<set name="effectRange" val="120" />
|
||||||
<set name="skillTime" val="2000" />
|
<set name="skillTime" val="2000" />
|
||||||
<set name="hitTime" val="2000" />
|
<set name="hitTime" val="2000" />
|
||||||
|
<set name="isSuicideAttack" val="true" />
|
||||||
<set name="isMagic" val="false" />
|
<set name="isMagic" val="false" />
|
||||||
</skill>
|
</skill>
|
||||||
<skill id="5012" levels="1" name="Breath of Scarlet">
|
<skill id="5012" levels="1" name="Breath of Scarlet">
|
||||||
@@ -1539,6 +1540,7 @@
|
|||||||
<set name="skillRadius" val="250" />
|
<set name="skillRadius" val="250" />
|
||||||
<set name="target" val="AREA" />
|
<set name="target" val="AREA" />
|
||||||
<set name="skillType" val="MDAM" />
|
<set name="skillType" val="MDAM" />
|
||||||
|
<set name="isSuicideAttack" val="true" />
|
||||||
<set name="operateType" val="ACTIVE" />
|
<set name="operateType" val="ACTIVE" />
|
||||||
<set name="castRange" val="-1" />
|
<set name="castRange" val="-1" />
|
||||||
</skill>
|
</skill>
|
||||||
@@ -1574,6 +1576,7 @@
|
|||||||
<set name="skillRadius" val="100" />
|
<set name="skillRadius" val="100" />
|
||||||
<set name="target" val="AREA" />
|
<set name="target" val="AREA" />
|
||||||
<set name="skillType" val="MDAM" />
|
<set name="skillType" val="MDAM" />
|
||||||
|
<set name="isSuicideAttack" val="true" />
|
||||||
<set name="operateType" val="ACTIVE" />
|
<set name="operateType" val="ACTIVE" />
|
||||||
<set name="castRange" val="-1" />
|
<set name="castRange" val="-1" />
|
||||||
</skill>
|
</skill>
|
||||||
|
@@ -880,6 +880,11 @@ public class AttackableAI extends CreatureAI
|
|||||||
|
|
||||||
if (((sk.getSkillType() == SkillType.BUFF) || (sk.getSkillType() == SkillType.HEAL) || inRange) && !_actor.isSkillDisabled(sk) && (_actor.getCurrentMp() >= _actor.getStat().getMpConsume(sk)) && !sk.isPassive() && (Rnd.get(100) <= 5))
|
if (((sk.getSkillType() == SkillType.BUFF) || (sk.getSkillType() == SkillType.HEAL) || inRange) && !_actor.isSkillDisabled(sk) && (_actor.getCurrentMp() >= _actor.getStat().getMpConsume(sk)) && !sk.isPassive() && (Rnd.get(100) <= 5))
|
||||||
{
|
{
|
||||||
|
if (sk.isSuicideAttack() && ((_actor.getCurrentHp() > (_actor.getMaxHp() / 3)) || (Rnd.get(100) > sk.getMaxChance())))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ((sk.getSkillType() == SkillType.BUFF) || (sk.getSkillType() == SkillType.HEAL))
|
if ((sk.getSkillType() == SkillType.BUFF) || (sk.getSkillType() == SkillType.HEAL))
|
||||||
{
|
{
|
||||||
if ((sk.getSkillType() == SkillType.HEAL) && (_actor.getCurrentHp() > (int) (_actor.getMaxHp() / 1.5)))
|
if ((sk.getSkillType() == SkillType.HEAL) && (_actor.getCurrentHp() > (int) (_actor.getMaxHp() / 1.5)))
|
||||||
@@ -962,12 +967,18 @@ public class AttackableAI extends CreatureAI
|
|||||||
_actor.setTarget(_actor);
|
_actor.setTarget(_actor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GeoData Los Check here
|
// GeoData Los Check here
|
||||||
if (!useSkillSelf && !GeoEngine.getInstance().canSeeTarget(_actor, _actor.getTarget()))
|
if (!useSkillSelf && !GeoEngine.getInstance().canSeeTarget(_actor, _actor.getTarget()))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (sk.isSuicideAttack() && ((_actor.getCurrentHp() > (_actor.getMaxHp() / 3)) || (Rnd.get(100) > sk.getMaxChance())))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
final WorldObject oldTarget = _actor.getTarget();
|
final WorldObject oldTarget = _actor.getTarget();
|
||||||
clientStopMoving(null);
|
clientStopMoving(null);
|
||||||
_accessor.doCast(sk);
|
_accessor.doCast(sk);
|
||||||
|
@@ -137,8 +137,8 @@ public class Mdam implements ISkillHandler
|
|||||||
|
|
||||||
if (skill.isSuicideAttack())
|
if (skill.isSuicideAttack())
|
||||||
{
|
{
|
||||||
creature.doDie(null);
|
|
||||||
creature.setCurrentHp(0);
|
creature.setCurrentHp(0);
|
||||||
|
creature.doDie(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -351,10 +351,10 @@ public class Pdam implements ISkillHandler
|
|||||||
creature.removeSs();
|
creature.removeSs();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (skill.isSuicideAttack() && !creature.isInvul())
|
if (skill.isSuicideAttack())
|
||||||
{
|
{
|
||||||
creature.doDie(null);
|
|
||||||
creature.setCurrentHp(0);
|
creature.setCurrentHp(0);
|
||||||
|
creature.doDie(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user