From c74fcddc1b67d1693e024f154f22afd082fa1d8e Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Tue, 19 Sep 2017 06:09:33 +0000 Subject: [PATCH] Fixed idle YeSagira guards. --- .../ai/areas/TalkingIsland/YeSagiraGuards.java | 12 +++++++----- .../ai/areas/TalkingIsland/YeSagiraGuards.java | 12 +++++++----- .../ai/areas/TalkingIsland/YeSagiraGuards.java | 12 +++++++----- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java index 14ae45faa1..4d2ad5e9d1 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java @@ -16,6 +16,8 @@ */ package ai.areas.TalkingIsland; +import java.util.List; + import com.l2jmobius.gameserver.model.L2World; import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance; @@ -46,15 +48,15 @@ public final class YeSagiraGuards extends AbstractNpcAI { if (event.equals("GUARD_AGGRO") && (npc != null) && !npc.isDead() && !npc.isInCombat()) { - L2World.getInstance().forEachVisibleObjectInRange(npc, L2MonsterInstance.class, 1000, monster -> + final List nearbyMonsters = L2World.getInstance().getVisibleObjects(npc, L2MonsterInstance.class, 1000); + if (!nearbyMonsters.isEmpty()) { - if ((monster != null) && monster.isScriptValue(0)) // not retail - but looks better + final L2MonsterInstance monster = nearbyMonsters.get(getRandom(nearbyMonsters.size())); + if ((monster != null) && !monster.isDead() && !monster.isInCombat()) { - monster.setScriptValue(1); npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack - return; // one target only } - }); + } } return super.onAdvEvent(event, npc, player); } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java index 14ae45faa1..4d2ad5e9d1 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java @@ -16,6 +16,8 @@ */ package ai.areas.TalkingIsland; +import java.util.List; + import com.l2jmobius.gameserver.model.L2World; import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance; @@ -46,15 +48,15 @@ public final class YeSagiraGuards extends AbstractNpcAI { if (event.equals("GUARD_AGGRO") && (npc != null) && !npc.isDead() && !npc.isInCombat()) { - L2World.getInstance().forEachVisibleObjectInRange(npc, L2MonsterInstance.class, 1000, monster -> + final List nearbyMonsters = L2World.getInstance().getVisibleObjects(npc, L2MonsterInstance.class, 1000); + if (!nearbyMonsters.isEmpty()) { - if ((monster != null) && monster.isScriptValue(0)) // not retail - but looks better + final L2MonsterInstance monster = nearbyMonsters.get(getRandom(nearbyMonsters.size())); + if ((monster != null) && !monster.isDead() && !monster.isInCombat()) { - monster.setScriptValue(1); npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack - return; // one target only } - }); + } } return super.onAdvEvent(event, npc, player); } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java index 14ae45faa1..4d2ad5e9d1 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/TalkingIsland/YeSagiraGuards.java @@ -16,6 +16,8 @@ */ package ai.areas.TalkingIsland; +import java.util.List; + import com.l2jmobius.gameserver.model.L2World; import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance; @@ -46,15 +48,15 @@ public final class YeSagiraGuards extends AbstractNpcAI { if (event.equals("GUARD_AGGRO") && (npc != null) && !npc.isDead() && !npc.isInCombat()) { - L2World.getInstance().forEachVisibleObjectInRange(npc, L2MonsterInstance.class, 1000, monster -> + final List nearbyMonsters = L2World.getInstance().getVisibleObjects(npc, L2MonsterInstance.class, 1000); + if (!nearbyMonsters.isEmpty()) { - if ((monster != null) && monster.isScriptValue(0)) // not retail - but looks better + final L2MonsterInstance monster = nearbyMonsters.get(getRandom(nearbyMonsters.size())); + if ((monster != null) && !monster.isDead() && !monster.isInCombat()) { - monster.setScriptValue(1); npc.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack - return; // one target only } - }); + } } return super.onAdvEvent(event, npc, player); }