Fixed Wastelands guard AI.
Contributed by gigilo1968.
This commit is contained in:
@@ -54,6 +54,12 @@ public final class Wastelands extends AbstractNpcAI
|
|||||||
private static final int SAKUM = 27453;
|
private static final int SAKUM = 27453;
|
||||||
private static final int COMMANDO = 19126;
|
private static final int COMMANDO = 19126;
|
||||||
private static final int COMMANDO_CAPTAIN = 19127;
|
private static final int COMMANDO_CAPTAIN = 19127;
|
||||||
|
// Misc
|
||||||
|
private static final NpcStringId[] GUARD_SHOUT =
|
||||||
|
{
|
||||||
|
NpcStringId.ATTACK_2,
|
||||||
|
NpcStringId.FOLLOW_ME_3
|
||||||
|
};
|
||||||
// Locations
|
// Locations
|
||||||
private static final Location GUARD_POSLOF_LOC = new Location(-29474, 187083, -3912);
|
private static final Location GUARD_POSLOF_LOC = new Location(-29474, 187083, -3912);
|
||||||
private static final Location[] COMMANDO_SAKUM_LOC =
|
private static final Location[] COMMANDO_SAKUM_LOC =
|
||||||
@@ -84,6 +90,7 @@ public final class Wastelands extends AbstractNpcAI
|
|||||||
case "SOCIAL_SHOW":
|
case "SOCIAL_SHOW":
|
||||||
{
|
{
|
||||||
npc.broadcastSocialAction(4);
|
npc.broadcastSocialAction(4);
|
||||||
|
npc.broadcastSay(ChatType.NPC_GENERAL, GUARD_SHOUT[getRandom(2)], 1000);
|
||||||
|
|
||||||
L2World.getInstance().getVisibleObjects(npc, L2Npc.class, 500).stream().filter(n -> n.getId() == GUARD).forEach(guard ->
|
L2World.getInstance().getVisibleObjects(npc, L2Npc.class, 500).stream().filter(n -> n.getId() == GUARD).forEach(guard ->
|
||||||
{
|
{
|
||||||
@@ -136,10 +143,16 @@ public final class Wastelands extends AbstractNpcAI
|
|||||||
.orElse(null);
|
.orElse(null);
|
||||||
//@formatter:on
|
//@formatter:on
|
||||||
|
|
||||||
if ((monster != null) && !guard.isInCombat())
|
if (monster != null)
|
||||||
{
|
{
|
||||||
guard.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack
|
L2World.getInstance().forEachVisibleObjectInRange(guard, L2Npc.class, 1000, chars ->
|
||||||
monster.reduceCurrentHp(1, guard, null);
|
{
|
||||||
|
if (chars.getId() == attackId)
|
||||||
|
{
|
||||||
|
addAttackDesire(guard, chars);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if ((guard.getId() != COMMANDO) && (guard.getId() != COMMANDO_CAPTAIN))
|
if ((guard.getId() != COMMANDO) && (guard.getId() != COMMANDO_CAPTAIN))
|
||||||
{
|
{
|
||||||
@@ -158,8 +171,6 @@ public final class Wastelands extends AbstractNpcAI
|
|||||||
|
|
||||||
if (decoGuard != null)
|
if (decoGuard != null)
|
||||||
{
|
{
|
||||||
decoGuard.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack
|
|
||||||
monster.reduceCurrentHp(1, decoGuard, null);
|
|
||||||
decoGuard.setIsInvul(true);
|
decoGuard.setIsInvul(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -54,6 +54,12 @@ public final class Wastelands extends AbstractNpcAI
|
|||||||
private static final int SAKUM = 27453;
|
private static final int SAKUM = 27453;
|
||||||
private static final int COMMANDO = 19126;
|
private static final int COMMANDO = 19126;
|
||||||
private static final int COMMANDO_CAPTAIN = 19127;
|
private static final int COMMANDO_CAPTAIN = 19127;
|
||||||
|
// Misc
|
||||||
|
private static final NpcStringId[] GUARD_SHOUT =
|
||||||
|
{
|
||||||
|
NpcStringId.ATTACK_2,
|
||||||
|
NpcStringId.FOLLOW_ME_3
|
||||||
|
};
|
||||||
// Locations
|
// Locations
|
||||||
private static final Location GUARD_POSLOF_LOC = new Location(-29474, 187083, -3912);
|
private static final Location GUARD_POSLOF_LOC = new Location(-29474, 187083, -3912);
|
||||||
private static final Location[] COMMANDO_SAKUM_LOC =
|
private static final Location[] COMMANDO_SAKUM_LOC =
|
||||||
@@ -84,6 +90,7 @@ public final class Wastelands extends AbstractNpcAI
|
|||||||
case "SOCIAL_SHOW":
|
case "SOCIAL_SHOW":
|
||||||
{
|
{
|
||||||
npc.broadcastSocialAction(4);
|
npc.broadcastSocialAction(4);
|
||||||
|
npc.broadcastSay(ChatType.NPC_GENERAL, GUARD_SHOUT[getRandom(2)], 1000);
|
||||||
|
|
||||||
L2World.getInstance().getVisibleObjects(npc, L2Npc.class, 500).stream().filter(n -> n.getId() == GUARD).forEach(guard ->
|
L2World.getInstance().getVisibleObjects(npc, L2Npc.class, 500).stream().filter(n -> n.getId() == GUARD).forEach(guard ->
|
||||||
{
|
{
|
||||||
@@ -136,10 +143,16 @@ public final class Wastelands extends AbstractNpcAI
|
|||||||
.orElse(null);
|
.orElse(null);
|
||||||
//@formatter:on
|
//@formatter:on
|
||||||
|
|
||||||
if ((monster != null) && !guard.isInCombat())
|
if (monster != null)
|
||||||
{
|
{
|
||||||
guard.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack
|
L2World.getInstance().forEachVisibleObjectInRange(guard, L2Npc.class, 1000, chars ->
|
||||||
monster.reduceCurrentHp(1, guard, null);
|
{
|
||||||
|
if (chars.getId() == attackId)
|
||||||
|
{
|
||||||
|
addAttackDesire(guard, chars);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if ((guard.getId() != COMMANDO) && (guard.getId() != COMMANDO_CAPTAIN))
|
if ((guard.getId() != COMMANDO) && (guard.getId() != COMMANDO_CAPTAIN))
|
||||||
{
|
{
|
||||||
@@ -158,8 +171,6 @@ public final class Wastelands extends AbstractNpcAI
|
|||||||
|
|
||||||
if (decoGuard != null)
|
if (decoGuard != null)
|
||||||
{
|
{
|
||||||
decoGuard.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack
|
|
||||||
monster.reduceCurrentHp(1, decoGuard, null);
|
|
||||||
decoGuard.setIsInvul(true);
|
decoGuard.setIsInvul(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -54,6 +54,12 @@ public final class Wastelands extends AbstractNpcAI
|
|||||||
private static final int SAKUM = 27453;
|
private static final int SAKUM = 27453;
|
||||||
private static final int COMMANDO = 19126;
|
private static final int COMMANDO = 19126;
|
||||||
private static final int COMMANDO_CAPTAIN = 19127;
|
private static final int COMMANDO_CAPTAIN = 19127;
|
||||||
|
// Misc
|
||||||
|
private static final NpcStringId[] GUARD_SHOUT =
|
||||||
|
{
|
||||||
|
NpcStringId.ATTACK_2,
|
||||||
|
NpcStringId.FOLLOW_ME_3
|
||||||
|
};
|
||||||
// Locations
|
// Locations
|
||||||
private static final Location GUARD_POSLOF_LOC = new Location(-29474, 187083, -3912);
|
private static final Location GUARD_POSLOF_LOC = new Location(-29474, 187083, -3912);
|
||||||
private static final Location[] COMMANDO_SAKUM_LOC =
|
private static final Location[] COMMANDO_SAKUM_LOC =
|
||||||
@@ -84,6 +90,7 @@ public final class Wastelands extends AbstractNpcAI
|
|||||||
case "SOCIAL_SHOW":
|
case "SOCIAL_SHOW":
|
||||||
{
|
{
|
||||||
npc.broadcastSocialAction(4);
|
npc.broadcastSocialAction(4);
|
||||||
|
npc.broadcastSay(ChatType.NPC_GENERAL, GUARD_SHOUT[getRandom(2)], 1000);
|
||||||
|
|
||||||
L2World.getInstance().getVisibleObjects(npc, L2Npc.class, 500).stream().filter(n -> n.getId() == GUARD).forEach(guard ->
|
L2World.getInstance().getVisibleObjects(npc, L2Npc.class, 500).stream().filter(n -> n.getId() == GUARD).forEach(guard ->
|
||||||
{
|
{
|
||||||
@@ -136,10 +143,16 @@ public final class Wastelands extends AbstractNpcAI
|
|||||||
.orElse(null);
|
.orElse(null);
|
||||||
//@formatter:on
|
//@formatter:on
|
||||||
|
|
||||||
if ((monster != null) && !guard.isInCombat())
|
if (monster != null)
|
||||||
{
|
{
|
||||||
guard.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack
|
L2World.getInstance().forEachVisibleObjectInRange(guard, L2Npc.class, 1000, chars ->
|
||||||
monster.reduceCurrentHp(1, guard, null);
|
{
|
||||||
|
if (chars.getId() == attackId)
|
||||||
|
{
|
||||||
|
addAttackDesire(guard, chars);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if ((guard.getId() != COMMANDO) && (guard.getId() != COMMANDO_CAPTAIN))
|
if ((guard.getId() != COMMANDO) && (guard.getId() != COMMANDO_CAPTAIN))
|
||||||
{
|
{
|
||||||
@@ -158,8 +171,6 @@ public final class Wastelands extends AbstractNpcAI
|
|||||||
|
|
||||||
if (decoGuard != null)
|
if (decoGuard != null)
|
||||||
{
|
{
|
||||||
decoGuard.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack
|
|
||||||
monster.reduceCurrentHp(1, decoGuard, null);
|
|
||||||
decoGuard.setIsInvul(true);
|
decoGuard.setIsInvul(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -54,6 +54,12 @@ public final class Wastelands extends AbstractNpcAI
|
|||||||
private static final int SAKUM = 27453;
|
private static final int SAKUM = 27453;
|
||||||
private static final int COMMANDO = 19126;
|
private static final int COMMANDO = 19126;
|
||||||
private static final int COMMANDO_CAPTAIN = 19127;
|
private static final int COMMANDO_CAPTAIN = 19127;
|
||||||
|
// Misc
|
||||||
|
private static final NpcStringId[] GUARD_SHOUT =
|
||||||
|
{
|
||||||
|
NpcStringId.ATTACK_2,
|
||||||
|
NpcStringId.FOLLOW_ME_3
|
||||||
|
};
|
||||||
// Locations
|
// Locations
|
||||||
private static final Location GUARD_POSLOF_LOC = new Location(-29474, 187083, -3912);
|
private static final Location GUARD_POSLOF_LOC = new Location(-29474, 187083, -3912);
|
||||||
private static final Location[] COMMANDO_SAKUM_LOC =
|
private static final Location[] COMMANDO_SAKUM_LOC =
|
||||||
@@ -84,6 +90,7 @@ public final class Wastelands extends AbstractNpcAI
|
|||||||
case "SOCIAL_SHOW":
|
case "SOCIAL_SHOW":
|
||||||
{
|
{
|
||||||
npc.broadcastSocialAction(4);
|
npc.broadcastSocialAction(4);
|
||||||
|
npc.broadcastSay(ChatType.NPC_GENERAL, GUARD_SHOUT[getRandom(2)], 1000);
|
||||||
|
|
||||||
L2World.getInstance().getVisibleObjects(npc, L2Npc.class, 500).stream().filter(n -> n.getId() == GUARD).forEach(guard ->
|
L2World.getInstance().getVisibleObjects(npc, L2Npc.class, 500).stream().filter(n -> n.getId() == GUARD).forEach(guard ->
|
||||||
{
|
{
|
||||||
@@ -136,10 +143,16 @@ public final class Wastelands extends AbstractNpcAI
|
|||||||
.orElse(null);
|
.orElse(null);
|
||||||
//@formatter:on
|
//@formatter:on
|
||||||
|
|
||||||
if ((monster != null) && !guard.isInCombat())
|
if (monster != null)
|
||||||
{
|
{
|
||||||
guard.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack
|
L2World.getInstance().forEachVisibleObjectInRange(guard, L2Npc.class, 1000, chars ->
|
||||||
monster.reduceCurrentHp(1, guard, null);
|
{
|
||||||
|
if (chars.getId() == attackId)
|
||||||
|
{
|
||||||
|
addAttackDesire(guard, chars);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if ((guard.getId() != COMMANDO) && (guard.getId() != COMMANDO_CAPTAIN))
|
if ((guard.getId() != COMMANDO) && (guard.getId() != COMMANDO_CAPTAIN))
|
||||||
{
|
{
|
||||||
@@ -158,8 +171,6 @@ public final class Wastelands extends AbstractNpcAI
|
|||||||
|
|
||||||
if (decoGuard != null)
|
if (decoGuard != null)
|
||||||
{
|
{
|
||||||
decoGuard.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack
|
|
||||||
monster.reduceCurrentHp(1, decoGuard, null);
|
|
||||||
decoGuard.setIsInvul(true);
|
decoGuard.setIsInvul(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user