From df40a272556a1f6f8ed51f49e37f4c697a5ef1d8 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Mon, 1 Aug 2022 22:39:50 +0000 Subject: [PATCH] Updated Baylor warzone AI. Contributed by CostyKiller. --- .../data/instances/Bosses/BaylorWarzone.xml | 24 +++---- .../ai/bosses/Baylor/BaylorWarzone.java | 14 ++-- .../dist/game/data/stats/npcs/29100-29199.xml | 8 +-- .../data/instances/Bosses/BaylorWarzone.xml | 24 +++---- .../instances/Bosses/BaylorWarzone110.xml | 28 ++++---- .../ai/bosses/Baylor/BaylorWarzone.java | 20 +++--- .../dist/game/data/stats/npcs/29100-29199.xml | 8 +-- .../dist/game/data/stats/npcs/29300-29399.xml | 65 ++++++++++++++++--- .../data/instances/Bosses/BaylorWarzone.xml | 24 +++---- .../instances/Bosses/BaylorWarzone110.xml | 28 ++++---- .../ai/bosses/Baylor/BaylorWarzone.java | 20 +++--- .../dist/game/data/stats/npcs/29100-29199.xml | 8 +-- .../dist/game/data/stats/npcs/29200-29299.xml | 4 +- .../dist/game/data/stats/npcs/29300-29399.xml | 65 ++++++++++++++++--- .../data/instances/Bosses/BaylorWarzone.xml | 24 +++---- .../instances/Bosses/BaylorWarzone110.xml | 28 ++++---- .../ai/bosses/Baylor/BaylorWarzone.java | 20 +++--- .../dist/game/data/stats/npcs/29100-29199.xml | 8 +-- .../dist/game/data/stats/npcs/29200-29299.xml | 4 +- .../dist/game/data/stats/npcs/29300-29399.xml | 65 ++++++++++++++++--- 20 files changed, 316 insertions(+), 173 deletions(-) diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/instances/Bosses/BaylorWarzone.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/instances/Bosses/BaylorWarzone.xml index d7510136ed..91d30496fd 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/instances/Bosses/BaylorWarzone.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/instances/Bosses/BaylorWarzone.xml @@ -64,24 +64,24 @@ - - - + + + - - - + + + - - - + + + - - - + + + diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java index d7233b4ebc..505a51ac27 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java @@ -28,7 +28,6 @@ import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.instance.Door; -import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureDeath; import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -47,7 +46,7 @@ public class BaylorWarzone extends AbstractInstance { // NPCs private static final int BAYLOR = 29213; - private static final int PRISON_GUARD = 29104; + private static final int PRISON_GUARD = 29217; private static final int BENUSTA = 34542; private static final int INVISIBLE_NPC_1 = 29106; private static final int INVISIBLE_NPC_2 = 29108; @@ -71,7 +70,7 @@ public class BaylorWarzone extends AbstractInstance addInstanceCreatedId(TEMPLATE_ID); addSpellFinishedId(INVISIBLE_NPC_1); addCreatureSeeId(INVISIBLE_NPC_1); - setCreatureKillId(this::onBossKill, BAYLOR); + addKillId(BAYLOR); } @Override @@ -335,6 +334,7 @@ public class BaylorWarzone extends AbstractInstance public void onInstanceCreated(Instance instance, Player player) { instance.getParameters().set("INITIAL_PARTY_MEMBERS", player.getParty() != null ? player.getParty().getMemberCount() : 1); + instance.getParameters().set("ONE_BAYLOR_KILLED", false); getTimers().addTimer("BATTLE_PORT", 3000, e -> { instance.getPlayers().forEach(p -> p.teleToLocation(BATTLE_PORT)); @@ -342,13 +342,13 @@ public class BaylorWarzone extends AbstractInstance }); } - public void onBossKill(OnCreatureDeath event) + @Override + public String onKill(Npc npc, Player killer, boolean isSummon) { - final Npc npc = (Npc) event.getTarget(); final Instance world = npc.getInstanceWorld(); if (isInInstance(world)) { - if (world.getAliveNpcs(BAYLOR).isEmpty()) + if (world.getParameters().getBoolean("ONE_BAYLOR_KILLED", false)) { for (Player member : world.getPlayers()) { @@ -363,9 +363,11 @@ public class BaylorWarzone extends AbstractInstance } else { + world.getParameters().set("ONE_BAYLOR_KILLED", true); world.setReenterTime(); } } + return super.onKill(npc, killer, isSummon); } @Override diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/npcs/29100-29199.xml b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/npcs/29100-29199.xml index f39b0b4584..7d1ca6b87e 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/npcs/29100-29199.xml +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/stats/npcs/29100-29199.xml @@ -244,7 +244,7 @@ - + CONSTRUCT MALE @@ -277,7 +277,7 @@ - + CONSTRUCT MALE @@ -310,7 +310,7 @@ - + CONSTRUCT MALE @@ -343,7 +343,7 @@ - + CONSTRUCT MALE diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/instances/Bosses/BaylorWarzone.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/instances/Bosses/BaylorWarzone.xml index d7510136ed..91d30496fd 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/instances/Bosses/BaylorWarzone.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/instances/Bosses/BaylorWarzone.xml @@ -64,24 +64,24 @@ - - - + + + - - - + + + - - - + + + - - - + + + diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/instances/Bosses/BaylorWarzone110.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/instances/Bosses/BaylorWarzone110.xml index ef74f4abd3..5506d4fda6 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/instances/Bosses/BaylorWarzone110.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/instances/Bosses/BaylorWarzone110.xml @@ -60,28 +60,28 @@ - - + + - - - + + + - - - + + + - - - + + + - - - + + + diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java index f887513668..d2735491be 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java @@ -28,7 +28,6 @@ import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.instance.Door; -import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureDeath; import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -48,7 +47,8 @@ public class BaylorWarzone extends AbstractInstance // NPCs private static final int BAYLOR = 29213; private static final int BAYLOR_110 = 29380; - private static final int PRISON_GUARD = 29104; + private static final int PRISON_GUARD = 29217; + private static final int PRISON_GUARD_110 = 29214; private static final int BENUSTA = 34542; private static final int INVISIBLE_NPC_1 = 29106; private static final int INVISIBLE_NPC_2 = 29108; @@ -77,7 +77,7 @@ public class BaylorWarzone extends AbstractInstance addInstanceCreatedId(TEMPLATE_IDS); addSpellFinishedId(INVISIBLE_NPC_1); addCreatureSeeId(INVISIBLE_NPC_1); - setCreatureKillId(this::onBossKill, BAYLOR, BAYLOR_110); + addKillId(BAYLOR, BAYLOR_110); } @Override @@ -253,7 +253,7 @@ public class BaylorWarzone extends AbstractInstance getTimers().addTimer("START_SCENE_15", 1500, invisNpc, null); }); - world.getAliveNpcs(PRISON_GUARD).forEach(guard -> + world.getAliveNpcs(world.getTemplateId() == TEMPLATE_IDS[0] ? PRISON_GUARD : PRISON_GUARD_110).forEach(guard -> { final int random = getRandom(100); if (random >= 20) @@ -336,7 +336,7 @@ public class BaylorWarzone extends AbstractInstance if (isInInstance(world)) { world.getAliveNpcs(INVISIBLE_NPC_1, INVISIBLE_NPC_2, INVISIBLE_NPC_3).forEach(Npc::deleteMe); - world.getAliveNpcs(PRISON_GUARD).forEach(guard -> guard.doDie(null)); + world.getAliveNpcs(world.getTemplateId() == TEMPLATE_IDS[0] ? PRISON_GUARD : PRISON_GUARD_110).forEach(guard -> guard.doDie(null)); npc.deleteMe(); } return super.onSpellFinished(npc, player, skill); @@ -346,6 +346,7 @@ public class BaylorWarzone extends AbstractInstance public void onInstanceCreated(Instance instance, Player player) { instance.getParameters().set("INITIAL_PARTY_MEMBERS", player.getParty() != null ? player.getParty().getMemberCount() : 1); + instance.getParameters().set("ONE_BAYLOR_KILLED", false); getTimers().addTimer("BATTLE_PORT", 3000, e -> { instance.getPlayers().forEach(p -> p.teleToLocation(BATTLE_PORT)); @@ -353,14 +354,13 @@ public class BaylorWarzone extends AbstractInstance }); } - public void onBossKill(OnCreatureDeath event) + @Override + public String onKill(Npc npc, Player killer, boolean isSummon) { - final Npc npc = (Npc) event.getTarget(); final Instance world = npc.getInstanceWorld(); if (isInInstance(world)) { - final List baylors = world.getAliveNpcs(world.getTemplateId() == TEMPLATE_IDS[0] ? BAYLOR : BAYLOR_110); - if (baylors.isEmpty()) + if (world.getParameters().getBoolean("ONE_BAYLOR_KILLED", false)) { for (Player member : world.getPlayers()) { @@ -375,9 +375,11 @@ public class BaylorWarzone extends AbstractInstance } else { + world.getParameters().set("ONE_BAYLOR_KILLED", true); world.setReenterTime(); } } + return super.onKill(npc, killer, isSummon); } @Override diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/npcs/29100-29199.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/npcs/29100-29199.xml index 1eb79f49a1..64614f6ae9 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/npcs/29100-29199.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/npcs/29100-29199.xml @@ -244,7 +244,7 @@ - + CONSTRUCT MALE @@ -277,7 +277,7 @@ - + CONSTRUCT MALE @@ -310,7 +310,7 @@ - + CONSTRUCT MALE @@ -343,7 +343,7 @@ - + CONSTRUCT MALE diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/npcs/29300-29399.xml b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/npcs/29300-29399.xml index a0c1a1bad1..7654be7b4f 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/npcs/29300-29399.xml +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/stats/npcs/29300-29399.xml @@ -5833,35 +5833,80 @@ - + + + + + + + + + + + + + + + DEMONIC MALE + - - - + + + - 600 + 470 + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + BARLER_RO + + + + + + BUG diff --git a/L2J_Mobius_10.1_MasterClass/dist/game/data/instances/Bosses/BaylorWarzone.xml b/L2J_Mobius_10.1_MasterClass/dist/game/data/instances/Bosses/BaylorWarzone.xml index d7510136ed..91d30496fd 100644 --- a/L2J_Mobius_10.1_MasterClass/dist/game/data/instances/Bosses/BaylorWarzone.xml +++ b/L2J_Mobius_10.1_MasterClass/dist/game/data/instances/Bosses/BaylorWarzone.xml @@ -64,24 +64,24 @@ - - - + + + - - - + + + - - - + + + - - - + + + diff --git a/L2J_Mobius_10.1_MasterClass/dist/game/data/instances/Bosses/BaylorWarzone110.xml b/L2J_Mobius_10.1_MasterClass/dist/game/data/instances/Bosses/BaylorWarzone110.xml index ef74f4abd3..5506d4fda6 100644 --- a/L2J_Mobius_10.1_MasterClass/dist/game/data/instances/Bosses/BaylorWarzone110.xml +++ b/L2J_Mobius_10.1_MasterClass/dist/game/data/instances/Bosses/BaylorWarzone110.xml @@ -60,28 +60,28 @@ - - + + - - - + + + - - - + + + - - - + + + - - - + + + diff --git a/L2J_Mobius_10.1_MasterClass/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java b/L2J_Mobius_10.1_MasterClass/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java index f887513668..d2735491be 100644 --- a/L2J_Mobius_10.1_MasterClass/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java +++ b/L2J_Mobius_10.1_MasterClass/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java @@ -28,7 +28,6 @@ import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.instance.Door; -import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureDeath; import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -48,7 +47,8 @@ public class BaylorWarzone extends AbstractInstance // NPCs private static final int BAYLOR = 29213; private static final int BAYLOR_110 = 29380; - private static final int PRISON_GUARD = 29104; + private static final int PRISON_GUARD = 29217; + private static final int PRISON_GUARD_110 = 29214; private static final int BENUSTA = 34542; private static final int INVISIBLE_NPC_1 = 29106; private static final int INVISIBLE_NPC_2 = 29108; @@ -77,7 +77,7 @@ public class BaylorWarzone extends AbstractInstance addInstanceCreatedId(TEMPLATE_IDS); addSpellFinishedId(INVISIBLE_NPC_1); addCreatureSeeId(INVISIBLE_NPC_1); - setCreatureKillId(this::onBossKill, BAYLOR, BAYLOR_110); + addKillId(BAYLOR, BAYLOR_110); } @Override @@ -253,7 +253,7 @@ public class BaylorWarzone extends AbstractInstance getTimers().addTimer("START_SCENE_15", 1500, invisNpc, null); }); - world.getAliveNpcs(PRISON_GUARD).forEach(guard -> + world.getAliveNpcs(world.getTemplateId() == TEMPLATE_IDS[0] ? PRISON_GUARD : PRISON_GUARD_110).forEach(guard -> { final int random = getRandom(100); if (random >= 20) @@ -336,7 +336,7 @@ public class BaylorWarzone extends AbstractInstance if (isInInstance(world)) { world.getAliveNpcs(INVISIBLE_NPC_1, INVISIBLE_NPC_2, INVISIBLE_NPC_3).forEach(Npc::deleteMe); - world.getAliveNpcs(PRISON_GUARD).forEach(guard -> guard.doDie(null)); + world.getAliveNpcs(world.getTemplateId() == TEMPLATE_IDS[0] ? PRISON_GUARD : PRISON_GUARD_110).forEach(guard -> guard.doDie(null)); npc.deleteMe(); } return super.onSpellFinished(npc, player, skill); @@ -346,6 +346,7 @@ public class BaylorWarzone extends AbstractInstance public void onInstanceCreated(Instance instance, Player player) { instance.getParameters().set("INITIAL_PARTY_MEMBERS", player.getParty() != null ? player.getParty().getMemberCount() : 1); + instance.getParameters().set("ONE_BAYLOR_KILLED", false); getTimers().addTimer("BATTLE_PORT", 3000, e -> { instance.getPlayers().forEach(p -> p.teleToLocation(BATTLE_PORT)); @@ -353,14 +354,13 @@ public class BaylorWarzone extends AbstractInstance }); } - public void onBossKill(OnCreatureDeath event) + @Override + public String onKill(Npc npc, Player killer, boolean isSummon) { - final Npc npc = (Npc) event.getTarget(); final Instance world = npc.getInstanceWorld(); if (isInInstance(world)) { - final List baylors = world.getAliveNpcs(world.getTemplateId() == TEMPLATE_IDS[0] ? BAYLOR : BAYLOR_110); - if (baylors.isEmpty()) + if (world.getParameters().getBoolean("ONE_BAYLOR_KILLED", false)) { for (Player member : world.getPlayers()) { @@ -375,9 +375,11 @@ public class BaylorWarzone extends AbstractInstance } else { + world.getParameters().set("ONE_BAYLOR_KILLED", true); world.setReenterTime(); } } + return super.onKill(npc, killer, isSummon); } @Override diff --git a/L2J_Mobius_10.1_MasterClass/dist/game/data/stats/npcs/29100-29199.xml b/L2J_Mobius_10.1_MasterClass/dist/game/data/stats/npcs/29100-29199.xml index ef5ab4fd3a..8da0aa7f7c 100644 --- a/L2J_Mobius_10.1_MasterClass/dist/game/data/stats/npcs/29100-29199.xml +++ b/L2J_Mobius_10.1_MasterClass/dist/game/data/stats/npcs/29100-29199.xml @@ -244,7 +244,7 @@ - + CONSTRUCT MALE @@ -277,7 +277,7 @@ - + CONSTRUCT MALE @@ -310,7 +310,7 @@ - + CONSTRUCT MALE @@ -343,7 +343,7 @@ - + CONSTRUCT MALE diff --git a/L2J_Mobius_10.1_MasterClass/dist/game/data/stats/npcs/29200-29299.xml b/L2J_Mobius_10.1_MasterClass/dist/game/data/stats/npcs/29200-29299.xml index f1e7936871..eabed17ad1 100644 --- a/L2J_Mobius_10.1_MasterClass/dist/game/data/stats/npcs/29200-29299.xml +++ b/L2J_Mobius_10.1_MasterClass/dist/game/data/stats/npcs/29200-29299.xml @@ -791,10 +791,10 @@ DEMONIC MALE - + - + diff --git a/L2J_Mobius_10.1_MasterClass/dist/game/data/stats/npcs/29300-29399.xml b/L2J_Mobius_10.1_MasterClass/dist/game/data/stats/npcs/29300-29399.xml index d9db774a54..d233824eaf 100644 --- a/L2J_Mobius_10.1_MasterClass/dist/game/data/stats/npcs/29300-29399.xml +++ b/L2J_Mobius_10.1_MasterClass/dist/game/data/stats/npcs/29300-29399.xml @@ -5833,35 +5833,80 @@ - + + + + + + + + + + + + + + + DEMONIC MALE + - - - + + + - 600 + 470 + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + BARLER_RO + + + + + + BUG diff --git a/L2J_Mobius_10.2_MasterClass/dist/game/data/instances/Bosses/BaylorWarzone.xml b/L2J_Mobius_10.2_MasterClass/dist/game/data/instances/Bosses/BaylorWarzone.xml index d7510136ed..91d30496fd 100644 --- a/L2J_Mobius_10.2_MasterClass/dist/game/data/instances/Bosses/BaylorWarzone.xml +++ b/L2J_Mobius_10.2_MasterClass/dist/game/data/instances/Bosses/BaylorWarzone.xml @@ -64,24 +64,24 @@ - - - + + + - - - + + + - - - + + + - - - + + + diff --git a/L2J_Mobius_10.2_MasterClass/dist/game/data/instances/Bosses/BaylorWarzone110.xml b/L2J_Mobius_10.2_MasterClass/dist/game/data/instances/Bosses/BaylorWarzone110.xml index ef74f4abd3..5506d4fda6 100644 --- a/L2J_Mobius_10.2_MasterClass/dist/game/data/instances/Bosses/BaylorWarzone110.xml +++ b/L2J_Mobius_10.2_MasterClass/dist/game/data/instances/Bosses/BaylorWarzone110.xml @@ -60,28 +60,28 @@ - - + + - - - + + + - - - + + + - - - + + + - - - + + + diff --git a/L2J_Mobius_10.2_MasterClass/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java b/L2J_Mobius_10.2_MasterClass/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java index f887513668..d2735491be 100644 --- a/L2J_Mobius_10.2_MasterClass/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java +++ b/L2J_Mobius_10.2_MasterClass/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java @@ -28,7 +28,6 @@ import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.instance.Door; -import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureDeath; import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.instancezone.Instance; @@ -48,7 +47,8 @@ public class BaylorWarzone extends AbstractInstance // NPCs private static final int BAYLOR = 29213; private static final int BAYLOR_110 = 29380; - private static final int PRISON_GUARD = 29104; + private static final int PRISON_GUARD = 29217; + private static final int PRISON_GUARD_110 = 29214; private static final int BENUSTA = 34542; private static final int INVISIBLE_NPC_1 = 29106; private static final int INVISIBLE_NPC_2 = 29108; @@ -77,7 +77,7 @@ public class BaylorWarzone extends AbstractInstance addInstanceCreatedId(TEMPLATE_IDS); addSpellFinishedId(INVISIBLE_NPC_1); addCreatureSeeId(INVISIBLE_NPC_1); - setCreatureKillId(this::onBossKill, BAYLOR, BAYLOR_110); + addKillId(BAYLOR, BAYLOR_110); } @Override @@ -253,7 +253,7 @@ public class BaylorWarzone extends AbstractInstance getTimers().addTimer("START_SCENE_15", 1500, invisNpc, null); }); - world.getAliveNpcs(PRISON_GUARD).forEach(guard -> + world.getAliveNpcs(world.getTemplateId() == TEMPLATE_IDS[0] ? PRISON_GUARD : PRISON_GUARD_110).forEach(guard -> { final int random = getRandom(100); if (random >= 20) @@ -336,7 +336,7 @@ public class BaylorWarzone extends AbstractInstance if (isInInstance(world)) { world.getAliveNpcs(INVISIBLE_NPC_1, INVISIBLE_NPC_2, INVISIBLE_NPC_3).forEach(Npc::deleteMe); - world.getAliveNpcs(PRISON_GUARD).forEach(guard -> guard.doDie(null)); + world.getAliveNpcs(world.getTemplateId() == TEMPLATE_IDS[0] ? PRISON_GUARD : PRISON_GUARD_110).forEach(guard -> guard.doDie(null)); npc.deleteMe(); } return super.onSpellFinished(npc, player, skill); @@ -346,6 +346,7 @@ public class BaylorWarzone extends AbstractInstance public void onInstanceCreated(Instance instance, Player player) { instance.getParameters().set("INITIAL_PARTY_MEMBERS", player.getParty() != null ? player.getParty().getMemberCount() : 1); + instance.getParameters().set("ONE_BAYLOR_KILLED", false); getTimers().addTimer("BATTLE_PORT", 3000, e -> { instance.getPlayers().forEach(p -> p.teleToLocation(BATTLE_PORT)); @@ -353,14 +354,13 @@ public class BaylorWarzone extends AbstractInstance }); } - public void onBossKill(OnCreatureDeath event) + @Override + public String onKill(Npc npc, Player killer, boolean isSummon) { - final Npc npc = (Npc) event.getTarget(); final Instance world = npc.getInstanceWorld(); if (isInInstance(world)) { - final List baylors = world.getAliveNpcs(world.getTemplateId() == TEMPLATE_IDS[0] ? BAYLOR : BAYLOR_110); - if (baylors.isEmpty()) + if (world.getParameters().getBoolean("ONE_BAYLOR_KILLED", false)) { for (Player member : world.getPlayers()) { @@ -375,9 +375,11 @@ public class BaylorWarzone extends AbstractInstance } else { + world.getParameters().set("ONE_BAYLOR_KILLED", true); world.setReenterTime(); } } + return super.onKill(npc, killer, isSummon); } @Override diff --git a/L2J_Mobius_10.2_MasterClass/dist/game/data/stats/npcs/29100-29199.xml b/L2J_Mobius_10.2_MasterClass/dist/game/data/stats/npcs/29100-29199.xml index a9907da207..9e54535a2c 100644 --- a/L2J_Mobius_10.2_MasterClass/dist/game/data/stats/npcs/29100-29199.xml +++ b/L2J_Mobius_10.2_MasterClass/dist/game/data/stats/npcs/29100-29199.xml @@ -244,7 +244,7 @@ - + CONSTRUCT MALE @@ -277,7 +277,7 @@ - + CONSTRUCT MALE @@ -310,7 +310,7 @@ - + CONSTRUCT MALE @@ -343,7 +343,7 @@ - + CONSTRUCT MALE diff --git a/L2J_Mobius_10.2_MasterClass/dist/game/data/stats/npcs/29200-29299.xml b/L2J_Mobius_10.2_MasterClass/dist/game/data/stats/npcs/29200-29299.xml index 6f5cd4a392..6f21c94770 100644 --- a/L2J_Mobius_10.2_MasterClass/dist/game/data/stats/npcs/29200-29299.xml +++ b/L2J_Mobius_10.2_MasterClass/dist/game/data/stats/npcs/29200-29299.xml @@ -791,10 +791,10 @@ DEMONIC MALE - + - + diff --git a/L2J_Mobius_10.2_MasterClass/dist/game/data/stats/npcs/29300-29399.xml b/L2J_Mobius_10.2_MasterClass/dist/game/data/stats/npcs/29300-29399.xml index 7b6b0dacee..166b9b9302 100644 --- a/L2J_Mobius_10.2_MasterClass/dist/game/data/stats/npcs/29300-29399.xml +++ b/L2J_Mobius_10.2_MasterClass/dist/game/data/stats/npcs/29300-29399.xml @@ -5877,35 +5877,80 @@ - + + + + + + + + + + + + + + + DEMONIC MALE + - - - + + + - 600 + 470 + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + BARLER_RO + + + + + + BUG