|
@@ -32,7 +32,6 @@ import com.l2jserver.gameserver.instancemanager.DimensionalRiftManager;
|
|
import com.l2jserver.gameserver.model.L2CharPosition;
|
|
import com.l2jserver.gameserver.model.L2CharPosition;
|
|
import com.l2jserver.gameserver.model.L2Object;
|
|
import com.l2jserver.gameserver.model.L2Object;
|
|
import com.l2jserver.gameserver.model.L2Skill;
|
|
import com.l2jserver.gameserver.model.L2Skill;
|
|
-import com.l2jserver.gameserver.model.L2Skill.SkillTargetType;
|
|
|
|
import com.l2jserver.gameserver.model.actor.L2Attackable;
|
|
import com.l2jserver.gameserver.model.actor.L2Attackable;
|
|
import com.l2jserver.gameserver.model.actor.L2Character;
|
|
import com.l2jserver.gameserver.model.actor.L2Character;
|
|
import com.l2jserver.gameserver.model.actor.L2Npc;
|
|
import com.l2jserver.gameserver.model.actor.L2Npc;
|
|
@@ -52,6 +51,7 @@ import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
|
|
import com.l2jserver.gameserver.templates.chars.L2NpcTemplate.AIType;
|
|
import com.l2jserver.gameserver.templates.chars.L2NpcTemplate.AIType;
|
|
import com.l2jserver.gameserver.templates.skills.L2EffectType;
|
|
import com.l2jserver.gameserver.templates.skills.L2EffectType;
|
|
import com.l2jserver.gameserver.templates.skills.L2SkillType;
|
|
import com.l2jserver.gameserver.templates.skills.L2SkillType;
|
|
|
|
+import com.l2jserver.gameserver.templates.skills.L2TargetType;
|
|
import com.l2jserver.gameserver.util.Util;
|
|
import com.l2jserver.gameserver.util.Util;
|
|
import com.l2jserver.util.Rnd;
|
|
import com.l2jserver.util.Rnd;
|
|
|
|
|
|
@@ -922,7 +922,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
|
if (leader != null && !leader.isDead() && Rnd.get(100) > (leader.getCurrentHp() / leader.getMaxHp() * 100))
|
|
if (leader != null && !leader.isDead() && Rnd.get(100) > (leader.getCurrentHp() / leader.getMaxHp() * 100))
|
|
for (L2Skill sk : _skillrender._healskills)
|
|
for (L2Skill sk : _skillrender._healskills)
|
|
{
|
|
{
|
|
- if (sk.getTargetType() == L2Skill.SkillTargetType.TARGET_SELF)
|
|
|
|
|
|
+ if (sk.getTargetType() == L2TargetType.TARGET_SELF)
|
|
continue;
|
|
continue;
|
|
if ((sk.getMpConsume() >= npc.getCurrentMp() || npc.isSkillDisabled(sk) || (sk.isMagic() && npc.isMuted()) || (!sk.isMagic() && npc.isPhysicalMuted())))
|
|
if ((sk.getMpConsume() >= npc.getCurrentMp() || npc.isSkillDisabled(sk) || (sk.isMagic() && npc.isMuted()) || (!sk.isMagic() && npc.isPhysicalMuted())))
|
|
{
|
|
{
|
|
@@ -961,7 +961,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
|
{
|
|
{
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
- if (sk.getTargetType() == L2Skill.SkillTargetType.TARGET_ONE)
|
|
|
|
|
|
+ if (sk.getTargetType() == L2TargetType.TARGET_ONE)
|
|
for (L2Character obj : npc.getKnownList().getKnownCharactersInRadius(sk.getCastRange() + collision))
|
|
for (L2Character obj : npc.getKnownList().getKnownCharactersInRadius(sk.getCastRange() + collision))
|
|
{
|
|
{
|
|
if (!(obj instanceof L2Attackable) || obj.isDead())
|
|
if (!(obj instanceof L2Attackable) || obj.isDead())
|
|
@@ -1000,7 +1000,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
|
if (leader != null && leader.isDead())
|
|
if (leader != null && leader.isDead())
|
|
for (L2Skill sk : _skillrender._resskills)
|
|
for (L2Skill sk : _skillrender._resskills)
|
|
{
|
|
{
|
|
- if (sk.getTargetType() == L2Skill.SkillTargetType.TARGET_SELF)
|
|
|
|
|
|
+ if (sk.getTargetType() == L2TargetType.TARGET_SELF)
|
|
continue;
|
|
continue;
|
|
if ((sk.getMpConsume() >= npc.getCurrentMp() || npc.isSkillDisabled(sk) || (sk.isMagic() && npc.isMuted()) || (!sk.isMagic() && npc.isPhysicalMuted())))
|
|
if ((sk.getMpConsume() >= npc.getCurrentMp() || npc.isSkillDisabled(sk) || (sk.isMagic() && npc.isMuted()) || (!sk.isMagic() && npc.isPhysicalMuted())))
|
|
{
|
|
{
|
|
@@ -1026,7 +1026,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
|
{
|
|
{
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
- if (sk.getTargetType() == L2Skill.SkillTargetType.TARGET_ONE)
|
|
|
|
|
|
+ if (sk.getTargetType() == L2TargetType.TARGET_ONE)
|
|
for (L2Character obj : npc.getKnownList().getKnownCharactersInRadius(sk.getCastRange() + collision))
|
|
for (L2Character obj : npc.getKnownList().getKnownCharactersInRadius(sk.getCastRange() + collision))
|
|
{
|
|
{
|
|
if (!(obj instanceof L2Attackable) || !obj.isDead())
|
|
if (!(obj instanceof L2Attackable) || !obj.isDead())
|
|
@@ -1252,9 +1252,9 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
|
}
|
|
}
|
|
//----------------------------------------
|
|
//----------------------------------------
|
|
//If actor already have buff, start looking at others same faction mob to cast
|
|
//If actor already have buff, start looking at others same faction mob to cast
|
|
- if (sk.getTargetType() == L2Skill.SkillTargetType.TARGET_SELF)
|
|
|
|
|
|
+ if (sk.getTargetType() == L2TargetType.TARGET_SELF)
|
|
return false;
|
|
return false;
|
|
- if (sk.getTargetType() == L2Skill.SkillTargetType.TARGET_ONE)
|
|
|
|
|
|
+ if (sk.getTargetType() == L2TargetType.TARGET_ONE)
|
|
{
|
|
{
|
|
L2Character target = effectTargetReconsider(sk, true);
|
|
L2Character target = effectTargetReconsider(sk, true);
|
|
if (target != null)
|
|
if (target != null)
|
|
@@ -1285,7 +1285,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
|
case BALANCE_LIFE:
|
|
case BALANCE_LIFE:
|
|
{
|
|
{
|
|
double percentage = caster.getCurrentHp() / caster.getMaxHp() * 100;
|
|
double percentage = caster.getCurrentHp() / caster.getMaxHp() * 100;
|
|
- if (caster.isMinion() && sk.getTargetType() != L2Skill.SkillTargetType.TARGET_SELF)
|
|
|
|
|
|
+ if (caster.isMinion() && sk.getTargetType() != L2TargetType.TARGET_SELF)
|
|
{
|
|
{
|
|
L2Character leader = caster.getLeader();
|
|
L2Character leader = caster.getLeader();
|
|
if (leader != null && !leader.isDead() && Rnd.get(100) > (leader.getCurrentHp() / leader.getMaxHp() * 100))
|
|
if (leader != null && !leader.isDead() && Rnd.get(100) > (leader.getCurrentHp() / leader.getMaxHp() * 100))
|
|
@@ -1311,7 +1311,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
- if (sk.getTargetType() == L2Skill.SkillTargetType.TARGET_ONE)
|
|
|
|
|
|
+ if (sk.getTargetType() == L2TargetType.TARGET_ONE)
|
|
for (L2Character obj : caster.getKnownList().getKnownCharactersInRadius(sk.getCastRange() + caster.getTemplate().collisionRadius))
|
|
for (L2Character obj : caster.getKnownList().getKnownCharactersInRadius(sk.getCastRange() + caster.getTemplate().collisionRadius))
|
|
{
|
|
{
|
|
if (!(obj instanceof L2Attackable) || obj.isDead())
|
|
if (!(obj instanceof L2Attackable) || obj.isDead())
|
|
@@ -1359,7 +1359,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
|
{
|
|
{
|
|
if (!isParty(sk))
|
|
if (!isParty(sk))
|
|
{
|
|
{
|
|
- if (caster.isMinion() && sk.getTargetType() != L2Skill.SkillTargetType.TARGET_SELF)
|
|
|
|
|
|
+ if (caster.isMinion() && sk.getTargetType() != L2TargetType.TARGET_SELF)
|
|
{
|
|
{
|
|
L2Character leader = caster.getLeader();
|
|
L2Character leader = caster.getLeader();
|
|
if (leader != null && leader.isDead())
|
|
if (leader != null && leader.isDead())
|
|
@@ -1436,7 +1436,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
|
}
|
|
}
|
|
else if (canAOE(sk))
|
|
else if (canAOE(sk))
|
|
{
|
|
{
|
|
- if (sk.getTargetType() == SkillTargetType.TARGET_AURA || sk.getTargetType() == SkillTargetType.TARGET_BEHIND_AURA || sk.getTargetType() == SkillTargetType.TARGET_FRONT_AURA || (sk.getTargetType() == L2Skill.SkillTargetType.TARGET_AURA_CORPSE_MOB))
|
|
|
|
|
|
+ if (sk.getTargetType() == L2TargetType.TARGET_AURA || sk.getTargetType() == L2TargetType.TARGET_BEHIND_AURA || sk.getTargetType() == L2TargetType.TARGET_FRONT_AURA || (sk.getTargetType() == L2TargetType.TARGET_AURA_CORPSE_MOB))
|
|
{
|
|
{
|
|
clientStopMoving(null);
|
|
clientStopMoving(null);
|
|
//L2Object target = attackTarget;
|
|
//L2Object target = attackTarget;
|
|
@@ -1445,14 +1445,14 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
|
//_actor.setTarget(target);
|
|
//_actor.setTarget(target);
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
- if ((sk.getTargetType() == SkillTargetType.TARGET_AREA || sk.getTargetType() == SkillTargetType.TARGET_BEHIND_AREA || sk.getTargetType() == SkillTargetType.TARGET_FRONT_AREA) && GeoData.getInstance().canSeeTarget(caster, attackTarget) && !attackTarget.isDead() && dist2 <= srange)
|
|
|
|
|
|
+ if ((sk.getTargetType() == L2TargetType.TARGET_AREA || sk.getTargetType() == L2TargetType.TARGET_BEHIND_AREA || sk.getTargetType() == L2TargetType.TARGET_FRONT_AREA) && GeoData.getInstance().canSeeTarget(caster, attackTarget) && !attackTarget.isDead() && dist2 <= srange)
|
|
{
|
|
{
|
|
clientStopMoving(null);
|
|
clientStopMoving(null);
|
|
caster.doCast(sk);
|
|
caster.doCast(sk);
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- else if (sk.getTargetType() == SkillTargetType.TARGET_ONE)
|
|
|
|
|
|
+ else if (sk.getTargetType() == L2TargetType.TARGET_ONE)
|
|
{
|
|
{
|
|
L2Character target = effectTargetReconsider(sk, false);
|
|
L2Character target = effectTargetReconsider(sk, false);
|
|
if (target != null)
|
|
if (target != null)
|
|
@@ -1466,7 +1466,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
|
}
|
|
}
|
|
case SLEEP:
|
|
case SLEEP:
|
|
{
|
|
{
|
|
- if (sk.getTargetType() == SkillTargetType.TARGET_ONE)
|
|
|
|
|
|
+ if (sk.getTargetType() == L2TargetType.TARGET_ONE)
|
|
{
|
|
{
|
|
if (!attackTarget.isDead() && dist2 <= srange)
|
|
if (!attackTarget.isDead() && dist2 <= srange)
|
|
{
|
|
{
|
|
@@ -1492,7 +1492,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
|
}
|
|
}
|
|
else if (canAOE(sk))
|
|
else if (canAOE(sk))
|
|
{
|
|
{
|
|
- if (sk.getTargetType() == SkillTargetType.TARGET_AURA || sk.getTargetType() == SkillTargetType.TARGET_BEHIND_AURA || sk.getTargetType() == SkillTargetType.TARGET_FRONT_AURA)
|
|
|
|
|
|
+ if (sk.getTargetType() == L2TargetType.TARGET_AURA || sk.getTargetType() == L2TargetType.TARGET_BEHIND_AURA || sk.getTargetType() == L2TargetType.TARGET_FRONT_AURA)
|
|
{
|
|
{
|
|
clientStopMoving(null);
|
|
clientStopMoving(null);
|
|
//L2Object target = attackTarget;
|
|
//L2Object target = attackTarget;
|
|
@@ -1501,7 +1501,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
|
//_actor.setTarget(target);
|
|
//_actor.setTarget(target);
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
- if ((sk.getTargetType() == SkillTargetType.TARGET_AREA || sk.getTargetType() == SkillTargetType.TARGET_BEHIND_AREA || sk.getTargetType() == SkillTargetType.TARGET_FRONT_AREA) && GeoData.getInstance().canSeeTarget(caster, attackTarget) && !attackTarget.isDead() && dist2 <= srange)
|
|
|
|
|
|
+ if ((sk.getTargetType() == L2TargetType.TARGET_AREA || sk.getTargetType() == L2TargetType.TARGET_BEHIND_AREA || sk.getTargetType() == L2TargetType.TARGET_FRONT_AREA) && GeoData.getInstance().canSeeTarget(caster, attackTarget) && !attackTarget.isDead() && dist2 <= srange)
|
|
{
|
|
{
|
|
clientStopMoving(null);
|
|
clientStopMoving(null);
|
|
caster.doCast(sk);
|
|
caster.doCast(sk);
|
|
@@ -1525,7 +1525,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
|
}
|
|
}
|
|
else if (canAOE(sk))
|
|
else if (canAOE(sk))
|
|
{
|
|
{
|
|
- if (sk.getTargetType() == SkillTargetType.TARGET_AURA || sk.getTargetType() == SkillTargetType.TARGET_BEHIND_AURA || sk.getTargetType() == SkillTargetType.TARGET_FRONT_AURA)
|
|
|
|
|
|
+ if (sk.getTargetType() == L2TargetType.TARGET_AURA || sk.getTargetType() == L2TargetType.TARGET_BEHIND_AURA || sk.getTargetType() == L2TargetType.TARGET_FRONT_AURA)
|
|
{
|
|
{
|
|
clientStopMoving(null);
|
|
clientStopMoving(null);
|
|
//L2Object target = attackTarget;
|
|
//L2Object target = attackTarget;
|
|
@@ -1534,14 +1534,14 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
|
//_actor.setTarget(target);
|
|
//_actor.setTarget(target);
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
- else if ((sk.getTargetType() == SkillTargetType.TARGET_AREA || sk.getTargetType() == SkillTargetType.TARGET_BEHIND_AREA || sk.getTargetType() == SkillTargetType.TARGET_FRONT_AREA) && GeoData.getInstance().canSeeTarget(caster, attackTarget) && !attackTarget.isDead() && dist2 <= srange)
|
|
|
|
|
|
+ else if ((sk.getTargetType() == L2TargetType.TARGET_AREA || sk.getTargetType() == L2TargetType.TARGET_BEHIND_AREA || sk.getTargetType() == L2TargetType.TARGET_FRONT_AREA) && GeoData.getInstance().canSeeTarget(caster, attackTarget) && !attackTarget.isDead() && dist2 <= srange)
|
|
{
|
|
{
|
|
clientStopMoving(null);
|
|
clientStopMoving(null);
|
|
caster.doCast(sk);
|
|
caster.doCast(sk);
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- else if (sk.getTargetType() == SkillTargetType.TARGET_ONE)
|
|
|
|
|
|
+ else if (sk.getTargetType() == L2TargetType.TARGET_ONE)
|
|
{
|
|
{
|
|
L2Character target = effectTargetReconsider(sk, false);
|
|
L2Character target = effectTargetReconsider(sk, false);
|
|
if (target != null)
|
|
if (target != null)
|
|
@@ -1567,7 +1567,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
|
}
|
|
}
|
|
else if (canAOE(sk))
|
|
else if (canAOE(sk))
|
|
{
|
|
{
|
|
- if (sk.getTargetType() == SkillTargetType.TARGET_AURA || sk.getTargetType() == SkillTargetType.TARGET_BEHIND_AURA || sk.getTargetType() == SkillTargetType.TARGET_FRONT_AURA)
|
|
|
|
|
|
+ if (sk.getTargetType() == L2TargetType.TARGET_AURA || sk.getTargetType() == L2TargetType.TARGET_BEHIND_AURA || sk.getTargetType() == L2TargetType.TARGET_FRONT_AURA)
|
|
{
|
|
{
|
|
clientStopMoving(null);
|
|
clientStopMoving(null);
|
|
//L2Object target = attackTarget;
|
|
//L2Object target = attackTarget;
|
|
@@ -1576,14 +1576,14 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
|
//_actor.setTarget(target);
|
|
//_actor.setTarget(target);
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
- if ((sk.getTargetType() == SkillTargetType.TARGET_AREA || sk.getTargetType() == SkillTargetType.TARGET_BEHIND_AREA || sk.getTargetType() == SkillTargetType.TARGET_FRONT_AREA) && GeoData.getInstance().canSeeTarget(caster, attackTarget) && !attackTarget.isDead() && dist2 <= srange)
|
|
|
|
|
|
+ if ((sk.getTargetType() == L2TargetType.TARGET_AREA || sk.getTargetType() == L2TargetType.TARGET_BEHIND_AREA || sk.getTargetType() == L2TargetType.TARGET_FRONT_AREA) && GeoData.getInstance().canSeeTarget(caster, attackTarget) && !attackTarget.isDead() && dist2 <= srange)
|
|
{
|
|
{
|
|
clientStopMoving(null);
|
|
clientStopMoving(null);
|
|
caster.doCast(sk);
|
|
caster.doCast(sk);
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- else if (sk.getTargetType() == SkillTargetType.TARGET_ONE)
|
|
|
|
|
|
+ else if (sk.getTargetType() == L2TargetType.TARGET_ONE)
|
|
{
|
|
{
|
|
L2Character target = effectTargetReconsider(sk, false);
|
|
L2Character target = effectTargetReconsider(sk, false);
|
|
if (target != null)
|
|
if (target != null)
|
|
@@ -1602,7 +1602,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
|
if (Rnd.get(50) != 0)
|
|
if (Rnd.get(50) != 0)
|
|
return true;
|
|
return true;
|
|
|
|
|
|
- if (sk.getTargetType() == SkillTargetType.TARGET_ONE)
|
|
|
|
|
|
+ if (sk.getTargetType() == L2TargetType.TARGET_ONE)
|
|
{
|
|
{
|
|
if (attackTarget.getFirstEffect(L2EffectType.BUFF) != null && GeoData.getInstance().canSeeTarget(caster, attackTarget) && !attackTarget.isDead() && dist2 <= srange)
|
|
if (attackTarget.getFirstEffect(L2EffectType.BUFF) != null && GeoData.getInstance().canSeeTarget(caster, attackTarget) && !attackTarget.isDead() && dist2 <= srange)
|
|
{
|
|
{
|
|
@@ -1626,7 +1626,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
|
}
|
|
}
|
|
else if (canAOE(sk))
|
|
else if (canAOE(sk))
|
|
{
|
|
{
|
|
- if ((sk.getTargetType() == SkillTargetType.TARGET_AURA || sk.getTargetType() == SkillTargetType.TARGET_BEHIND_AURA || sk.getTargetType() == SkillTargetType.TARGET_FRONT_AURA) && GeoData.getInstance().canSeeTarget(caster, attackTarget))
|
|
|
|
|
|
+ if ((sk.getTargetType() == L2TargetType.TARGET_AURA || sk.getTargetType() == L2TargetType.TARGET_BEHIND_AURA || sk.getTargetType() == L2TargetType.TARGET_FRONT_AURA) && GeoData.getInstance().canSeeTarget(caster, attackTarget))
|
|
|
|
|
|
{
|
|
{
|
|
clientStopMoving(null);
|
|
clientStopMoving(null);
|
|
@@ -1636,7 +1636,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
|
|
//_actor.setTarget(target);
|
|
//_actor.setTarget(target);
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
- else if ((sk.getTargetType() == SkillTargetType.TARGET_AREA || sk.getTargetType() == SkillTargetType.TARGET_BEHIND_AREA || sk.getTargetType() == SkillTargetType.TARGET_FRONT_AREA) && GeoData.getInstance().canSeeTarget(caster, attackTarget) && !attackTarget.isDead() && dist2 <= srange)
|
|
|
|
|
|
+ else if ((sk.getTargetType() == L2TargetType.TARGET_AREA || sk.getTargetType() == L2TargetType.TARGET_BEHIND_AREA || sk.getTargetType() == L2TargetType.TARGET_FRONT_AREA) && GeoData.getInstance().canSeeTarget(caster, attackTarget) && !attackTarget.isDead() && dist2 <= srange)
|
|
{
|
|
{
|
|
clientStopMoving(null);
|
|
clientStopMoving(null);
|
|
caster.doCast(sk);
|
|
caster.doCast(sk);
|