Sync with L2jServer HighFive Jul 3rd 2015.
This commit is contained in:
@@ -1355,11 +1355,13 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
||||
setAttackTarget(caster.getMostHated());
|
||||
}
|
||||
}
|
||||
L2Character attackTarget = getAttackTarget();
|
||||
|
||||
final L2Character attackTarget = getAttackTarget();
|
||||
if (attackTarget == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
double dist = caster.calculateDistance(attackTarget, false, false);
|
||||
double dist2 = dist - attackTarget.getTemplate().getCollisionRadius();
|
||||
double range = caster.getPhysicalAttackRange() + caster.getTemplate().getCollisionRadius() + attackTarget.getTemplate().getCollisionRadius();
|
||||
@@ -1376,10 +1378,9 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
||||
if (!caster.isAffectedBySkill(sk.getId()))
|
||||
{
|
||||
clientStopMoving(null);
|
||||
// L2Object target = attackTarget;
|
||||
caster.setTarget(caster);
|
||||
caster.doCast(sk);
|
||||
// _actor.setTarget(target);
|
||||
_actor.setTarget(attackTarget);
|
||||
return true;
|
||||
}
|
||||
// ----------------------------------------
|
||||
@@ -1394,20 +1395,18 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
||||
if (target != null)
|
||||
{
|
||||
clientStopMoving(null);
|
||||
L2Object targets = attackTarget;
|
||||
caster.setTarget(target);
|
||||
caster.doCast(sk);
|
||||
caster.setTarget(targets);
|
||||
caster.setTarget(attackTarget);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (canParty(sk))
|
||||
{
|
||||
clientStopMoving(null);
|
||||
L2Object targets = attackTarget;
|
||||
caster.setTarget(caster);
|
||||
caster.doCast(sk);
|
||||
caster.setTarget(targets);
|
||||
caster.setTarget(attackTarget);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1464,10 +1463,9 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
||||
if (target != null)
|
||||
{
|
||||
clientStopMoving(null);
|
||||
L2Object targets = attackTarget;
|
||||
caster.setTarget(target);
|
||||
caster.doCast(sk);
|
||||
caster.setTarget(targets);
|
||||
caster.setTarget(attackTarget);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1506,15 +1504,18 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
||||
clientStopMoving(null);
|
||||
caster.setTarget(leader);
|
||||
caster.doCast(sk);
|
||||
caster.setTarget(attackTarget);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (Rnd.get(100) < ((100 - percentage) / 3))
|
||||
{
|
||||
clientStopMoving(null);
|
||||
caster.setTarget(caster);
|
||||
caster.doCast(sk);
|
||||
caster.setTarget(attackTarget);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1541,6 +1542,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
||||
clientStopMoving(null);
|
||||
caster.setTarget(obj);
|
||||
caster.doCast(sk);
|
||||
caster.setTarget(attackTarget);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1554,6 +1556,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
L2Npc targets = ((L2Npc) obj);
|
||||
if (targets.isInMyClan(caster))
|
||||
{
|
||||
@@ -1562,6 +1565,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
||||
clientStopMoving(null);
|
||||
caster.setTarget(caster);
|
||||
caster.doCast(sk);
|
||||
caster.setTarget(attackTarget);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1584,10 +1588,9 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
||||
if (target != null)
|
||||
{
|
||||
clientStopMoving(null);
|
||||
L2Object targets = attackTarget;
|
||||
caster.setTarget(target);
|
||||
caster.doCast(sk);
|
||||
caster.setTarget(targets);
|
||||
caster.setTarget(attackTarget);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1738,6 +1741,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
||||
clientStopMoving(null);
|
||||
caster.setTarget(leader);
|
||||
caster.doCast(sk);
|
||||
caster.setTarget(attackTarget);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1755,6 +1759,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (Rnd.get(100) < 10)
|
||||
{
|
||||
if (GeoData.getInstance().canSeeTarget(caster, targets))
|
||||
@@ -1762,6 +1767,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
||||
clientStopMoving(null);
|
||||
caster.setTarget(obj);
|
||||
caster.doCast(sk);
|
||||
caster.setTarget(attackTarget);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1783,6 +1789,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
||||
clientStopMoving(null);
|
||||
caster.setTarget(caster);
|
||||
caster.doCast(sk);
|
||||
caster.setTarget(attackTarget);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1804,10 +1811,9 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
||||
if (target != null)
|
||||
{
|
||||
clientStopMoving(null);
|
||||
L2Object targets = attackTarget;
|
||||
caster.setTarget(target);
|
||||
caster.doCast(sk);
|
||||
caster.setTarget(targets);
|
||||
caster.setTarget(attackTarget);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user