Just test this.
Seems to work.
NPC ids are wrong.
Index: dist/game/data/scripts/instances/EtisVanEtinaSolo/EtinaHelperAliber.java
===================================================================
--- dist/game/data/scripts/instances/EtisVanEtinaSolo/EtinaHelperAliber.java (revision 13405)
+++ dist/game/data/scripts/instances/EtisVanEtinaSolo/EtinaHelperAliber.java (working copy)
@@ -112,7 +112,7 @@
if (plr != null)
{
final double distance = npc.calculateDistance2D(plr);
- if (!npc.isAttackingNow() && !npc.isMoving() && (distance > 250))
+ if (!npc.isAttackingNow() && !npc.isMoving() && (distance > 250) && instance.getParameters().getBoolean("BARRICADE_DESTROYED", true))
{
final Location loc = new Location(plr.getX(), plr.getY(), plr.getZ() + 50);
final Location randLoc = new Location(loc.getX() + getRandom(-100, 100), loc.getY() + getRandom(-100, 100), loc.getZ());
@@ -156,8 +156,7 @@
aliber.setRunning();
aliber.setInvul(true);
aliber.setCanReturnToSpawnPoint(false);
- aliber.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, SKILL_CAST_LOCATIONS[0]);
- if (aliber.getLocation().isIn2DRadius(SKILL_CAST_LOCATIONS[0], 200) && !destroyed)
+ if (aliber.getLocation().isIn2DRadius(SKILL_CAST_LOCATIONS[0], 10) && !destroyed && !aliber.isMoving())
{
aliber.broadcastPacket(new MagicSkillUse(aliber, aliber, BARRICADE_DESTRUCTION.getSkillId(), 1, 500, 0));
aliber.broadcastPacket(new ExShowScreenMessage(NpcStringId.ALIBER_IS_CASTING_A_SPELL_TO_DESTROY_THE_BARRICADE, ExShowScreenMessage.TOP_CENTER, 7000, true));
@@ -168,15 +167,18 @@
barricade.decayMe();
}
});
+ instance.despawnGroup("BARRICADES_1");
instance.getParameters().set("BARRICADE_DESTROYED", true);
- instance.despawnGroup("BARRICADES_1");
}
+ else
+ {
+ aliber.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, SKILL_CAST_LOCATIONS[0]);
+ }
}
else if (!instance.getNpcsOfGroup("BARRICADES_2").isEmpty() && (instance.getAliveNpcCount(CORRIDOR_MOBS_1) == 0) && instance.getNpcsOfGroup("BARRICADES_1").isEmpty())
{
aliber.setRunning();
- aliber.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, SKILL_CAST_LOCATIONS[1]);
- if (aliber.getLocation().isIn2DRadius(SKILL_CAST_LOCATIONS[1], 200) && !destroyed)
+ if (aliber.getLocation().isIn2DRadius(SKILL_CAST_LOCATIONS[1], 10) && !destroyed && !aliber.isMoving())
{
aliber.broadcastPacket(new MagicSkillUse(aliber, aliber, BARRICADE_DESTRUCTION.getSkillId(), 1, 500, 0));
aliber.broadcastPacket(new ExShowScreenMessage(NpcStringId.ALIBER_IS_CASTING_A_SPELL_TO_DESTROY_THE_BARRICADE, ExShowScreenMessage.TOP_CENTER, 7000, true));
@@ -187,15 +189,18 @@
barricade.decayMe();
}
});
+ instance.despawnGroup("BARRICADES_2");
instance.getParameters().set("BARRICADE_DESTROYED", true);
- instance.despawnGroup("BARRICADES_2");
}
+ else
+ {
+ aliber.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, SKILL_CAST_LOCATIONS[1]);
+ }
}
else if (!instance.getNpcsOfGroup("BARRICADES_3").isEmpty() && (instance.getAliveNpcCount(CORRIDOR_MOBS_2) == 0) && instance.getNpcsOfGroup("BARRICADES_2").isEmpty())
{
aliber.setRunning();
- aliber.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, SKILL_CAST_LOCATIONS[2]);
- if (aliber.getLocation().isIn2DRadius(SKILL_CAST_LOCATIONS[2], 200) && !destroyed)
+ if (aliber.getLocation().isIn2DRadius(SKILL_CAST_LOCATIONS[2], 10) && !destroyed && !aliber.isMoving())
{
aliber.broadcastPacket(new MagicSkillUse(aliber, aliber, BARRICADE_DESTRUCTION.getSkillId(), 1, 500, 0));
aliber.broadcastPacket(new ExShowScreenMessage(NpcStringId.ALIBER_IS_CASTING_A_SPELL_TO_DESTROY_THE_BARRICADE, ExShowScreenMessage.TOP_CENTER, 7000, true));
@@ -206,15 +211,18 @@
barricade.decayMe();
}
});
+ instance.despawnGroup("BARRICADES_3");
instance.getParameters().set("BARRICADE_DESTROYED", true);
- instance.despawnGroup("BARRICADES_3");
}
+ else
+ {
+ aliber.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, SKILL_CAST_LOCATIONS[2]);
+ }
}
else if (!instance.getNpcsOfGroup("BARRICADES_4").isEmpty() && (instance.getAliveNpcCount(CORRIDOR_MOBS_3) == 0) && instance.getNpcsOfGroup("BARRICADES_3").isEmpty())
{
aliber.setRunning();
- aliber.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, SKILL_CAST_LOCATIONS[3]);
- if (aliber.getLocation().isIn2DRadius(SKILL_CAST_LOCATIONS[3], 200) && !destroyed)
+ if (aliber.getLocation().isIn2DRadius(SKILL_CAST_LOCATIONS[3], 10) && !destroyed && !aliber.isMoving())
{
aliber.broadcastPacket(new MagicSkillUse(aliber, aliber, BARRICADE_DESTRUCTION.getSkillId(), 1, 500, 0));
aliber.broadcastPacket(new ExShowScreenMessage(NpcStringId.ALIBER_IS_CASTING_A_SPELL_TO_DESTROY_THE_BARRICADE, ExShowScreenMessage.TOP_CENTER, 7000, true));
@@ -225,9 +233,13 @@
barricade.decayMe();
}
});
+ instance.despawnGroup("BARRICADES_4");
instance.getParameters().set("BARRICADE_DESTROYED", true);
- instance.despawnGroup("BARRICADES_4");
}
+ else
+ {
+ aliber.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, SKILL_CAST_LOCATIONS[3]);
+ }
}
break;
}
Index: dist/game/data/scripts/instances/EtisVanEtinaSolo/EtisVanEtinaSolo.java
===================================================================
--- dist/game/data/scripts/instances/EtisVanEtinaSolo/EtisVanEtinaSolo.java (revision 13405)
+++ dist/game/data/scripts/instances/EtisVanEtinaSolo/EtisVanEtinaSolo.java (working copy)
@@ -57,9 +57,9 @@
// Corridor Mobs
//@formatter:off
private static final int[] CORRIDOR_MOBS_1 = {24173, 24174, 24175, 24176};
- private static final int[] CORRIDOR_MOBS_2 = {24180, 24181, 24182, 24183};
- private static final int[] CORRIDOR_MOBS_3 = {24184, 24185, 24186, 24187, 24188, 24189, 24190, 24191, 24192};
- private static final int[] CORRIDOR_MOBS_4 = {24189, 24190, 24191, 24192};
+ private static final int[] CORRIDOR_MOBS_2 = {24180, 24181, 24182, 24183, 24164, 24165, 24166, 24167};
+ private static final int[] CORRIDOR_MOBS_3 = {24184, 24185, 24186, 24187, 24188, 24189, 24190, 24191, 24192, 24168, 24169, 24170, 24171, 24172, 24173, 24174, 24175, 24176};
+ private static final int[] CORRIDOR_MOBS_4 = {24189, 24190, 24191, 24192, 24173, 24174, 24175, 24176};
//@formatter:on
private static final int PARAGON = 24193;
// Seals