Improved L2DefenderInstance beneficial magic targeting.
This commit is contained in:
@@ -182,25 +182,33 @@ public class L2DefenderInstance extends L2Attackable
|
|||||||
if (!skill.isBad())
|
if (!skill.isBad())
|
||||||
{
|
{
|
||||||
L2Character target = this;
|
L2Character target = this;
|
||||||
|
double lowestHpValue = Double.MAX_VALUE;
|
||||||
for (L2Character nearby : L2World.getInstance().getVisibleObjects(this, L2Character.class, skill.getCastRange()))
|
for (L2Character nearby : L2World.getInstance().getVisibleObjects(this, L2Character.class, skill.getCastRange()))
|
||||||
{
|
{
|
||||||
if (nearby == this)
|
if ((nearby == null) || nearby.isDead())
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (nearby instanceof L2DefenderInstance)
|
if (nearby instanceof L2DefenderInstance)
|
||||||
|
{
|
||||||
|
final double targetHp = nearby.getCurrentHp();
|
||||||
|
if (lowestHpValue > targetHp)
|
||||||
{
|
{
|
||||||
target = nearby;
|
target = nearby;
|
||||||
|
lowestHpValue = targetHp;
|
||||||
}
|
}
|
||||||
if (nearby.isPlayer())
|
}
|
||||||
|
else if (nearby.isPlayer())
|
||||||
{
|
{
|
||||||
final L2PcInstance player = (L2PcInstance) nearby;
|
final L2PcInstance player = (L2PcInstance) nearby;
|
||||||
final Castle castle = getCastle();
|
if ((player.getSiegeState() == 2) && !player.isRegisteredOnThisSiegeField(getScriptValue()))
|
||||||
final Fort fortress = getFort();
|
{
|
||||||
final int activeSiegeId = (fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0));
|
final double targetHp = nearby.getCurrentHp();
|
||||||
if ((player.getSiegeState() == 2) && !player.isRegisteredOnThisSiegeField(activeSiegeId))
|
if (lowestHpValue > targetHp)
|
||||||
{
|
{
|
||||||
target = nearby;
|
target = nearby;
|
||||||
|
lowestHpValue = targetHp;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -182,25 +182,33 @@ public class L2DefenderInstance extends L2Attackable
|
|||||||
if (!skill.isBad())
|
if (!skill.isBad())
|
||||||
{
|
{
|
||||||
L2Character target = this;
|
L2Character target = this;
|
||||||
|
double lowestHpValue = Double.MAX_VALUE;
|
||||||
for (L2Character nearby : L2World.getInstance().getVisibleObjects(this, L2Character.class, skill.getCastRange()))
|
for (L2Character nearby : L2World.getInstance().getVisibleObjects(this, L2Character.class, skill.getCastRange()))
|
||||||
{
|
{
|
||||||
if (nearby == this)
|
if ((nearby == null) || nearby.isDead())
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (nearby instanceof L2DefenderInstance)
|
if (nearby instanceof L2DefenderInstance)
|
||||||
|
{
|
||||||
|
final double targetHp = nearby.getCurrentHp();
|
||||||
|
if (lowestHpValue > targetHp)
|
||||||
{
|
{
|
||||||
target = nearby;
|
target = nearby;
|
||||||
|
lowestHpValue = targetHp;
|
||||||
}
|
}
|
||||||
if (nearby.isPlayer())
|
}
|
||||||
|
else if (nearby.isPlayer())
|
||||||
{
|
{
|
||||||
final L2PcInstance player = (L2PcInstance) nearby;
|
final L2PcInstance player = (L2PcInstance) nearby;
|
||||||
final Castle castle = getCastle();
|
if ((player.getSiegeState() == 2) && !player.isRegisteredOnThisSiegeField(getScriptValue()))
|
||||||
final Fort fortress = getFort();
|
{
|
||||||
final int activeSiegeId = (fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0));
|
final double targetHp = nearby.getCurrentHp();
|
||||||
if ((player.getSiegeState() == 2) && !player.isRegisteredOnThisSiegeField(activeSiegeId))
|
if (lowestHpValue > targetHp)
|
||||||
{
|
{
|
||||||
target = nearby;
|
target = nearby;
|
||||||
|
lowestHpValue = targetHp;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -182,25 +182,33 @@ public class L2DefenderInstance extends L2Attackable
|
|||||||
if (!skill.isBad())
|
if (!skill.isBad())
|
||||||
{
|
{
|
||||||
L2Character target = this;
|
L2Character target = this;
|
||||||
|
double lowestHpValue = Double.MAX_VALUE;
|
||||||
for (L2Character nearby : L2World.getInstance().getVisibleObjects(this, L2Character.class, skill.getCastRange()))
|
for (L2Character nearby : L2World.getInstance().getVisibleObjects(this, L2Character.class, skill.getCastRange()))
|
||||||
{
|
{
|
||||||
if (nearby == this)
|
if ((nearby == null) || nearby.isDead())
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (nearby instanceof L2DefenderInstance)
|
if (nearby instanceof L2DefenderInstance)
|
||||||
|
{
|
||||||
|
final double targetHp = nearby.getCurrentHp();
|
||||||
|
if (lowestHpValue > targetHp)
|
||||||
{
|
{
|
||||||
target = nearby;
|
target = nearby;
|
||||||
|
lowestHpValue = targetHp;
|
||||||
}
|
}
|
||||||
if (nearby.isPlayer())
|
}
|
||||||
|
else if (nearby.isPlayer())
|
||||||
{
|
{
|
||||||
final L2PcInstance player = (L2PcInstance) nearby;
|
final L2PcInstance player = (L2PcInstance) nearby;
|
||||||
final Castle castle = getCastle();
|
if ((player.getSiegeState() == 2) && !player.isRegisteredOnThisSiegeField(getScriptValue()))
|
||||||
final Fort fortress = getFort();
|
{
|
||||||
final int activeSiegeId = (fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0));
|
final double targetHp = nearby.getCurrentHp();
|
||||||
if ((player.getSiegeState() == 2) && !player.isRegisteredOnThisSiegeField(activeSiegeId))
|
if (lowestHpValue > targetHp)
|
||||||
{
|
{
|
||||||
target = nearby;
|
target = nearby;
|
||||||
|
lowestHpValue = targetHp;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -182,25 +182,33 @@ public class L2DefenderInstance extends L2Attackable
|
|||||||
if (!skill.isBad())
|
if (!skill.isBad())
|
||||||
{
|
{
|
||||||
L2Character target = this;
|
L2Character target = this;
|
||||||
|
double lowestHpValue = Double.MAX_VALUE;
|
||||||
for (L2Character nearby : L2World.getInstance().getVisibleObjects(this, L2Character.class, skill.getCastRange()))
|
for (L2Character nearby : L2World.getInstance().getVisibleObjects(this, L2Character.class, skill.getCastRange()))
|
||||||
{
|
{
|
||||||
if (nearby == this)
|
if ((nearby == null) || nearby.isDead())
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (nearby instanceof L2DefenderInstance)
|
if (nearby instanceof L2DefenderInstance)
|
||||||
|
{
|
||||||
|
final double targetHp = nearby.getCurrentHp();
|
||||||
|
if (lowestHpValue > targetHp)
|
||||||
{
|
{
|
||||||
target = nearby;
|
target = nearby;
|
||||||
|
lowestHpValue = targetHp;
|
||||||
}
|
}
|
||||||
if (nearby.isPlayer())
|
}
|
||||||
|
else if (nearby.isPlayer())
|
||||||
{
|
{
|
||||||
final L2PcInstance player = (L2PcInstance) nearby;
|
final L2PcInstance player = (L2PcInstance) nearby;
|
||||||
final Castle castle = getCastle();
|
if ((player.getSiegeState() == 2) && !player.isRegisteredOnThisSiegeField(getScriptValue()))
|
||||||
final Fort fortress = getFort();
|
{
|
||||||
final int activeSiegeId = (fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0));
|
final double targetHp = nearby.getCurrentHp();
|
||||||
if ((player.getSiegeState() == 2) && !player.isRegisteredOnThisSiegeField(activeSiegeId))
|
if (lowestHpValue > targetHp)
|
||||||
{
|
{
|
||||||
target = nearby;
|
target = nearby;
|
||||||
|
lowestHpValue = targetHp;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -182,25 +182,33 @@ public class L2DefenderInstance extends L2Attackable
|
|||||||
if (!skill.isBad())
|
if (!skill.isBad())
|
||||||
{
|
{
|
||||||
L2Character target = this;
|
L2Character target = this;
|
||||||
|
double lowestHpValue = Double.MAX_VALUE;
|
||||||
for (L2Character nearby : L2World.getInstance().getVisibleObjects(this, L2Character.class, skill.getCastRange()))
|
for (L2Character nearby : L2World.getInstance().getVisibleObjects(this, L2Character.class, skill.getCastRange()))
|
||||||
{
|
{
|
||||||
if (nearby == this)
|
if ((nearby == null) || nearby.isDead())
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (nearby instanceof L2DefenderInstance)
|
if (nearby instanceof L2DefenderInstance)
|
||||||
|
{
|
||||||
|
final double targetHp = nearby.getCurrentHp();
|
||||||
|
if (lowestHpValue > targetHp)
|
||||||
{
|
{
|
||||||
target = nearby;
|
target = nearby;
|
||||||
|
lowestHpValue = targetHp;
|
||||||
}
|
}
|
||||||
if (nearby.isPlayer())
|
}
|
||||||
|
else if (nearby.isPlayer())
|
||||||
{
|
{
|
||||||
final L2PcInstance player = (L2PcInstance) nearby;
|
final L2PcInstance player = (L2PcInstance) nearby;
|
||||||
final Castle castle = getCastle();
|
if ((player.getSiegeState() == 2) && !player.isRegisteredOnThisSiegeField(getScriptValue()))
|
||||||
final Fort fortress = getFort();
|
{
|
||||||
final int activeSiegeId = (fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0));
|
final double targetHp = nearby.getCurrentHp();
|
||||||
if ((player.getSiegeState() == 2) && !player.isRegisteredOnThisSiegeField(activeSiegeId))
|
if (lowestHpValue > targetHp)
|
||||||
{
|
{
|
||||||
target = nearby;
|
target = nearby;
|
||||||
|
lowestHpValue = targetHp;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user