From b2ee30a67e7f718d8f8aa92360d369c930fb518b Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Thu, 15 Oct 2020 15:17:32 +0000 Subject: [PATCH] Fixed respawn issue with TimakOrcTroopLeader minion spawns. --- .../ai/others/TimakOrcTroopLeader.java | 19 ++++++++++++++++--- .../ai/others/TimakOrcTroopLeader.java | 19 ++++++++++++++++--- .../ai/others/TimakOrcTroopLeader.java | 19 ++++++++++++++++--- .../ai/others/TimakOrcTroopLeader.java | 19 ++++++++++++++++--- .../ai/others/TimakOrcTroopLeader.java | 19 ++++++++++++++++--- .../ai/others/TimakOrcTroopLeader.java | 19 ++++++++++++++++--- .../ai/others/TimakOrcTroopLeader.java | 19 ++++++++++++++++--- .../ai/others/TimakOrcTroopLeader.java | 19 ++++++++++++++++--- .../ai/others/TimakOrcTroopLeader.java | 19 ++++++++++++++++--- .../ai/others/TimakOrcTroopLeader.java | 19 ++++++++++++++++--- .../ai/others/TimakOrcTroopLeader.java | 19 ++++++++++++++++--- .../ai/others/TimakOrcTroopLeader.java | 19 ++++++++++++++++--- .../ai/others/TimakOrcTroopLeader.java | 19 ++++++++++++++++--- .../ai/others/TimakOrcTroopLeader.java | 19 ++++++++++++++++--- .../ai/others/TimakOrcTroopLeader.java | 19 ++++++++++++++++--- .../ai/others/TimakOrcTroopLeader.java | 19 ++++++++++++++++--- .../ai/others/TimakOrcTroopLeader.java | 19 ++++++++++++++++--- 17 files changed, 272 insertions(+), 51 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index b58b45a93d..2371e913b5 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -51,13 +51,26 @@ public class TimakOrcTroopLeader extends AbstractNpcAI if (npc.isMonster()) { final MonsterInstance monster = (MonsterInstance) npc; - if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0))) + if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0)) && (monster.getMinionList().countSpawnedMinions() < 3)) { for (MinionHolder is : npc.getParameters().getMinionList("Privates")) { - addMinion((MonsterInstance) npc, is.getId()); + boolean found = false; + for (MonsterInstance minion : monster.getMinionList().getSpawnedMinions()) + { + if (minion.getId() == is.getId()) + { + found = true; + break; + } + } + if (!found) + { + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); + addMinion(monster, is.getId()); + break; + } } - npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index b58b45a93d..2371e913b5 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -51,13 +51,26 @@ public class TimakOrcTroopLeader extends AbstractNpcAI if (npc.isMonster()) { final MonsterInstance monster = (MonsterInstance) npc; - if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0))) + if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0)) && (monster.getMinionList().countSpawnedMinions() < 3)) { for (MinionHolder is : npc.getParameters().getMinionList("Privates")) { - addMinion((MonsterInstance) npc, is.getId()); + boolean found = false; + for (MonsterInstance minion : monster.getMinionList().getSpawnedMinions()) + { + if (minion.getId() == is.getId()) + { + found = true; + break; + } + } + if (!found) + { + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); + addMinion(monster, is.getId()); + break; + } } - npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index b58b45a93d..2371e913b5 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -51,13 +51,26 @@ public class TimakOrcTroopLeader extends AbstractNpcAI if (npc.isMonster()) { final MonsterInstance monster = (MonsterInstance) npc; - if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0))) + if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0)) && (monster.getMinionList().countSpawnedMinions() < 3)) { for (MinionHolder is : npc.getParameters().getMinionList("Privates")) { - addMinion((MonsterInstance) npc, is.getId()); + boolean found = false; + for (MonsterInstance minion : monster.getMinionList().getSpawnedMinions()) + { + if (minion.getId() == is.getId()) + { + found = true; + break; + } + } + if (!found) + { + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); + addMinion(monster, is.getId()); + break; + } } - npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index b58b45a93d..2371e913b5 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -51,13 +51,26 @@ public class TimakOrcTroopLeader extends AbstractNpcAI if (npc.isMonster()) { final MonsterInstance monster = (MonsterInstance) npc; - if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0))) + if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0)) && (monster.getMinionList().countSpawnedMinions() < 3)) { for (MinionHolder is : npc.getParameters().getMinionList("Privates")) { - addMinion((MonsterInstance) npc, is.getId()); + boolean found = false; + for (MonsterInstance minion : monster.getMinionList().getSpawnedMinions()) + { + if (minion.getId() == is.getId()) + { + found = true; + break; + } + } + if (!found) + { + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); + addMinion(monster, is.getId()); + break; + } } - npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index b58b45a93d..2371e913b5 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -51,13 +51,26 @@ public class TimakOrcTroopLeader extends AbstractNpcAI if (npc.isMonster()) { final MonsterInstance monster = (MonsterInstance) npc; - if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0))) + if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0)) && (monster.getMinionList().countSpawnedMinions() < 3)) { for (MinionHolder is : npc.getParameters().getMinionList("Privates")) { - addMinion((MonsterInstance) npc, is.getId()); + boolean found = false; + for (MonsterInstance minion : monster.getMinionList().getSpawnedMinions()) + { + if (minion.getId() == is.getId()) + { + found = true; + break; + } + } + if (!found) + { + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); + addMinion(monster, is.getId()); + break; + } } - npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index b58b45a93d..2371e913b5 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -51,13 +51,26 @@ public class TimakOrcTroopLeader extends AbstractNpcAI if (npc.isMonster()) { final MonsterInstance monster = (MonsterInstance) npc; - if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0))) + if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0)) && (monster.getMinionList().countSpawnedMinions() < 3)) { for (MinionHolder is : npc.getParameters().getMinionList("Privates")) { - addMinion((MonsterInstance) npc, is.getId()); + boolean found = false; + for (MonsterInstance minion : monster.getMinionList().getSpawnedMinions()) + { + if (minion.getId() == is.getId()) + { + found = true; + break; + } + } + if (!found) + { + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); + addMinion(monster, is.getId()); + break; + } } - npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index b58b45a93d..2371e913b5 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -51,13 +51,26 @@ public class TimakOrcTroopLeader extends AbstractNpcAI if (npc.isMonster()) { final MonsterInstance monster = (MonsterInstance) npc; - if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0))) + if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0)) && (monster.getMinionList().countSpawnedMinions() < 3)) { for (MinionHolder is : npc.getParameters().getMinionList("Privates")) { - addMinion((MonsterInstance) npc, is.getId()); + boolean found = false; + for (MonsterInstance minion : monster.getMinionList().getSpawnedMinions()) + { + if (minion.getId() == is.getId()) + { + found = true; + break; + } + } + if (!found) + { + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); + addMinion(monster, is.getId()); + break; + } } - npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index b58b45a93d..2371e913b5 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -51,13 +51,26 @@ public class TimakOrcTroopLeader extends AbstractNpcAI if (npc.isMonster()) { final MonsterInstance monster = (MonsterInstance) npc; - if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0))) + if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0)) && (monster.getMinionList().countSpawnedMinions() < 3)) { for (MinionHolder is : npc.getParameters().getMinionList("Privates")) { - addMinion((MonsterInstance) npc, is.getId()); + boolean found = false; + for (MonsterInstance minion : monster.getMinionList().getSpawnedMinions()) + { + if (minion.getId() == is.getId()) + { + found = true; + break; + } + } + if (!found) + { + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); + addMinion(monster, is.getId()); + break; + } } - npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index 85e3cda1e4..d321fef8d0 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -51,13 +51,26 @@ public class TimakOrcTroopLeader extends AbstractNpcAI if (npc.isMonster()) { final MonsterInstance monster = (MonsterInstance) npc; - if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getTemplate().getParameters().getInt("SummonPrivateRate", 0))) + if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getTemplate().getParameters().getInt("SummonPrivateRate", 0)) && (monster.getMinionList().countSpawnedMinions() < 3)) { for (MinionHolder is : npc.getTemplate().getParameters().getMinionList("Privates")) { - addMinion((MonsterInstance) npc, is.getId()); + boolean found = false; + for (MonsterInstance minion : monster.getMinionList().getSpawnedMinions()) + { + if (minion.getId() == is.getId()) + { + found = true; + break; + } + } + if (!found) + { + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); + addMinion(monster, is.getId()); + break; + } } - npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index 85e3cda1e4..d321fef8d0 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -51,13 +51,26 @@ public class TimakOrcTroopLeader extends AbstractNpcAI if (npc.isMonster()) { final MonsterInstance monster = (MonsterInstance) npc; - if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getTemplate().getParameters().getInt("SummonPrivateRate", 0))) + if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getTemplate().getParameters().getInt("SummonPrivateRate", 0)) && (monster.getMinionList().countSpawnedMinions() < 3)) { for (MinionHolder is : npc.getTemplate().getParameters().getMinionList("Privates")) { - addMinion((MonsterInstance) npc, is.getId()); + boolean found = false; + for (MonsterInstance minion : monster.getMinionList().getSpawnedMinions()) + { + if (minion.getId() == is.getId()) + { + found = true; + break; + } + } + if (!found) + { + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); + addMinion(monster, is.getId()); + break; + } } - npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index b58b45a93d..2371e913b5 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -51,13 +51,26 @@ public class TimakOrcTroopLeader extends AbstractNpcAI if (npc.isMonster()) { final MonsterInstance monster = (MonsterInstance) npc; - if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0))) + if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0)) && (monster.getMinionList().countSpawnedMinions() < 3)) { for (MinionHolder is : npc.getParameters().getMinionList("Privates")) { - addMinion((MonsterInstance) npc, is.getId()); + boolean found = false; + for (MonsterInstance minion : monster.getMinionList().getSpawnedMinions()) + { + if (minion.getId() == is.getId()) + { + found = true; + break; + } + } + if (!found) + { + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); + addMinion(monster, is.getId()); + break; + } } - npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index b58b45a93d..2371e913b5 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -51,13 +51,26 @@ public class TimakOrcTroopLeader extends AbstractNpcAI if (npc.isMonster()) { final MonsterInstance monster = (MonsterInstance) npc; - if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0))) + if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0)) && (monster.getMinionList().countSpawnedMinions() < 3)) { for (MinionHolder is : npc.getParameters().getMinionList("Privates")) { - addMinion((MonsterInstance) npc, is.getId()); + boolean found = false; + for (MonsterInstance minion : monster.getMinionList().getSpawnedMinions()) + { + if (minion.getId() == is.getId()) + { + found = true; + break; + } + } + if (!found) + { + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); + addMinion(monster, is.getId()); + break; + } } - npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index b58b45a93d..2371e913b5 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -51,13 +51,26 @@ public class TimakOrcTroopLeader extends AbstractNpcAI if (npc.isMonster()) { final MonsterInstance monster = (MonsterInstance) npc; - if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0))) + if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0)) && (monster.getMinionList().countSpawnedMinions() < 3)) { for (MinionHolder is : npc.getParameters().getMinionList("Privates")) { - addMinion((MonsterInstance) npc, is.getId()); + boolean found = false; + for (MonsterInstance minion : monster.getMinionList().getSpawnedMinions()) + { + if (minion.getId() == is.getId()) + { + found = true; + break; + } + } + if (!found) + { + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); + addMinion(monster, is.getId()); + break; + } } - npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index b58b45a93d..2371e913b5 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -51,13 +51,26 @@ public class TimakOrcTroopLeader extends AbstractNpcAI if (npc.isMonster()) { final MonsterInstance monster = (MonsterInstance) npc; - if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0))) + if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0)) && (monster.getMinionList().countSpawnedMinions() < 3)) { for (MinionHolder is : npc.getParameters().getMinionList("Privates")) { - addMinion((MonsterInstance) npc, is.getId()); + boolean found = false; + for (MonsterInstance minion : monster.getMinionList().getSpawnedMinions()) + { + if (minion.getId() == is.getId()) + { + found = true; + break; + } + } + if (!found) + { + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); + addMinion(monster, is.getId()); + break; + } } - npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index b58b45a93d..2371e913b5 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -51,13 +51,26 @@ public class TimakOrcTroopLeader extends AbstractNpcAI if (npc.isMonster()) { final MonsterInstance monster = (MonsterInstance) npc; - if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0))) + if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0)) && (monster.getMinionList().countSpawnedMinions() < 3)) { for (MinionHolder is : npc.getParameters().getMinionList("Privates")) { - addMinion((MonsterInstance) npc, is.getId()); + boolean found = false; + for (MonsterInstance minion : monster.getMinionList().getSpawnedMinions()) + { + if (minion.getId() == is.getId()) + { + found = true; + break; + } + } + if (!found) + { + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); + addMinion(monster, is.getId()); + break; + } } - npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index b58b45a93d..2371e913b5 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -51,13 +51,26 @@ public class TimakOrcTroopLeader extends AbstractNpcAI if (npc.isMonster()) { final MonsterInstance monster = (MonsterInstance) npc; - if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0))) + if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0)) && (monster.getMinionList().countSpawnedMinions() < 3)) { for (MinionHolder is : npc.getParameters().getMinionList("Privates")) { - addMinion((MonsterInstance) npc, is.getId()); + boolean found = false; + for (MonsterInstance minion : monster.getMinionList().getSpawnedMinions()) + { + if (minion.getId() == is.getId()) + { + found = true; + break; + } + } + if (!found) + { + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); + addMinion(monster, is.getId()); + break; + } } - npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } return super.onAttack(npc, attacker, damage, isSummon); diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java index b58b45a93d..2371e913b5 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/ai/others/TimakOrcTroopLeader.java @@ -51,13 +51,26 @@ public class TimakOrcTroopLeader extends AbstractNpcAI if (npc.isMonster()) { final MonsterInstance monster = (MonsterInstance) npc; - if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0))) + if (!monster.isTeleporting() && (getRandom(1, 100) <= npc.getParameters().getInt("SummonPrivateRate", 0)) && (monster.getMinionList().countSpawnedMinions() < 3)) { for (MinionHolder is : npc.getParameters().getMinionList("Privates")) { - addMinion((MonsterInstance) npc, is.getId()); + boolean found = false; + for (MonsterInstance minion : monster.getMinionList().getSpawnedMinions()) + { + if (minion.getId() == is.getId()) + { + found = true; + break; + } + } + if (!found) + { + npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); + addMinion(monster, is.getId()); + break; + } } - npc.broadcastSay(ChatType.NPC_GENERAL, getRandomEntry(ON_ATTACK_MSG)); } } return super.onAttack(npc, attacker, damage, isSummon);