diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/fantasy_isle/HandysBlockCheckerEvent.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/fantasy_isle/HandysBlockCheckerEvent.java index 9c2f0b50cf5c3d7d06f066b1dae0e952291e7704..de37a7b5780215a074d58608e719500a737d7fdd 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/fantasy_isle/HandysBlockCheckerEvent.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/fantasy_isle/HandysBlockCheckerEvent.java @@ -41,6 +41,13 @@ public class HandysBlockCheckerEvent extends Quest private static final int A_MANAGER_3 = 32523; private static final int A_MANAGER_4 = 32524; + public HandysBlockCheckerEvent() + { + super(-1, HandysBlockCheckerEvent.class.getSimpleName(), "Handy's Block Checker Event"); + addFirstTalkId(A_MANAGER_1, A_MANAGER_2, A_MANAGER_3, A_MANAGER_4); + HandysBlockCheckerManager.getInstance().startUpParticipantsQueue(); + } + @Override public String onFirstTalk(L2Npc npc, L2PcInstance player) { @@ -89,23 +96,16 @@ public class HandysBlockCheckerEvent extends Quest return HandysBlockCheckerManager.getInstance().getHolder(arena).getAllPlayers().size() == 12; } - public HandysBlockCheckerEvent(int questId, String name, String descr) - { - super(questId, name, descr); - addFirstTalkId(A_MANAGER_1, A_MANAGER_2, A_MANAGER_3, A_MANAGER_4); - } - public static void main(String[] args) { - if (!Config.ENABLE_BLOCK_CHECKER_EVENT) + if (Config.ENABLE_BLOCK_CHECKER_EVENT) { - _log.info("Handy's Block Checker Event is disabled"); + new HandysBlockCheckerEvent(); + _log.info("Handy's Block Checker Event is enabled"); } else { - new HandysBlockCheckerEvent(-1, HandysBlockCheckerEvent.class.getSimpleName(), "Handy's Block Checker Event"); - HandysBlockCheckerManager.getInstance().startUpParticipantsQueue(); - _log.info("Handy's Block Checker Event is enabled"); + _log.info("Handy's Block Checker Event is disabled"); } } } \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/fantasy_isle/MC_Show.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/fantasy_isle/MC_Show.java index 2c358982c5774c94b3ced3d987096d7a91f724ce..b6703bafd2142b884b435a7d1a8859df247eb6b6 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/fantasy_isle/MC_Show.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/fantasy_isle/MC_Show.java @@ -178,8 +178,17 @@ public class MC_Show extends AbstractNpcAI private static Map<String, ShoutInfo> talks = new FastMap<>(); private static Map<String, WalkInfo> walks = new FastMap<>(); + private MC_Show() + { + super(MC_Show.class.getSimpleName(), "ai/fantasy_isle"); + addSpawnId(32433, 32431, 32432, 32442, 32443, 32444, 32445, 32446, 32424, 32425, 32426, 32427, 32428); + load(); + scheduleTimer(); + } + private void load() { + // TODO put this stuff in Routes.xml talks.put("1", new ShoutInfo(MESSAGES[1], "2", 1000)); talks.put("2", new ShoutInfo(MESSAGES[2], "3", 6000)); talks.put("3", new ShoutInfo(MESSAGES[3], "4", 4000)); @@ -288,22 +297,9 @@ public class MC_Show extends AbstractNpcAI walks.put("27", new WalkInfo(new L2CharPosition(-56702, -56340, -2008, 0), "29", 1800)); } - private MC_Show(String name, String descr) - { - super(name, descr); - addSpawnId(32433, 32431, 32432, 32442, 32443, 32444, 32445, 32446, 32424, 32425, 32426, 32427, 32428); - load(); - scheduleTimer(); - } - - private int getGameTime() - { - return GameTimeController.getInstance().getGameTime(); - } - private void scheduleTimer() { - int gameTime = getGameTime(); + int gameTime = GameTimeController.getInstance().getGameTime(); int hours = (gameTime / 60) % 24; int minutes = gameTime % 60; int hourDiff, minDiff; @@ -326,8 +322,9 @@ public class MC_Show extends AbstractNpcAI SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); _log.info("Fantasy Isle: MC show script starting at " + format.format(System.currentTimeMillis() + diff) + " and is scheduled each next 4 hours."); } + // TODO startQuestTimer("Start", 14400000L, null, null, true); + // missing option to provide different initial delay ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new StartMCShow(), diff, 14400000L); - } private void autoChat(L2Npc npc, NpcStringId npcString, int type) @@ -523,6 +520,6 @@ public class MC_Show extends AbstractNpcAI public static void main(String[] args) { - new MC_Show(MC_Show.class.getSimpleName(), "ai"); + new MC_Show(); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/BeastFarm.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/BeastFarm.java index 1f90330015708b5c3eb6fd50f0be97f24c54301d..c4b7f6814ea34ea798adaa27e0c120a3676de301 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/BeastFarm.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/BeastFarm.java @@ -115,7 +115,7 @@ public class BeastFarm extends AbstractNpcAI private BeastFarm() { - super(BeastFarm.class.getSimpleName(), "ai"); + super(BeastFarm.class.getSimpleName(), "ai/group_template"); registerMobs(FEEDABLE_BEASTS, QuestEventType.ON_KILL, QuestEventType.ON_SKILL_SEE); GrowthCapableMob temp; diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Chests.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Chests.java index a36bcd1585fe345fc0ad5bcc81ddfb8decc9f19d..660050ba40cdc6ab036f35ee0e21aaf80b321a73 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Chests.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Chests.java @@ -35,87 +35,31 @@ import com.l2jserver.gameserver.util.Util; */ public class Chests extends AbstractNpcAI { + // NPCs + // @formatter:off + private static final int[] TREASURE_CHESTS = + { + 18265, 18266, 18267, 18268, 18269, 18270, 18271, 18272, 18273, 18274, + 18275, 18276, 18277, 18278, 18279, 18280, 18281, 18282, 18283, 18284, + 18285, 18286, 18287, 18288, 18289, 18290, 18291, 18292, 18293, 18294, + 18295, 18296, 18297, 18298, 21671, 21694, 21717, 21740, 21763, 21786, + 21801, 21802, 21803, 21804, 21805, 21806, 21807, 21808, 21809, 21810, + 21811, 21812, 21813, 21814, 21815, 21816, 21817, 21818, 21819, 21820, + 21821, 21822 + }; + // @formatter:on private static final int SKILL_DELUXE_KEY = 2229; - // Base chance for BOX to be opened private static final int BASE_CHANCE = 100; - // Percent to decrease base chance when grade of DELUXE key not match private static final int LEVEL_DECREASE = 40; - // Chance for a chest to actually be a BOX (as opposed to being a mimic). private static final int IS_BOX = 40; - private static final int[] NPC_IDS = - { - 18265, - 18266, - 18267, - 18268, - 18269, - 18270, - 18271, - 18272, - 18273, - 18274, - 18275, - 18276, - 18277, - 18278, - 18279, - 18280, - 18281, - 18282, - 18283, - 18284, - 18285, - 18286, - 18287, - 18288, - 18289, - 18290, - 18291, - 18292, - 18293, - 18294, - 18295, - 18296, - 18297, - 18298, - 21671, - 21694, - 21717, - 21740, - 21763, - 21786, - 21801, - 21802, - 21803, - 21804, - 21805, - 21806, - 21807, - 21808, - 21809, - 21810, - 21811, - 21812, - 21813, - 21814, - 21815, - 21816, - 21817, - 21818, - 21819, - 21820, - 21821, - 21822 - }; - - private Chests(String name, String descr) + private Chests() { - super(name, descr); - registerMobs(NPC_IDS, QuestEventType.ON_ATTACK, QuestEventType.ON_SKILL_SEE); + super(Chests.class.getSimpleName(), "ai/group_template"); + registerMobs(TREASURE_CHESTS, QuestEventType.ON_ATTACK, QuestEventType.ON_SKILL_SEE); } @Override @@ -130,15 +74,7 @@ public class Chests extends AbstractNpcAI return super.onSkillSee(npc, caster, skill, targets, isSummon); } L2ChestInstance chest = ((L2ChestInstance) npc); - int npcId = chest.getNpcId(); - int skillId = skill.getId(); - int skillLevel = skill.getLevel(); - // check if the chest and skills used are valid for this script. Exit if invalid. - if (!Util.contains(NPC_IDS, npcId)) - { - return super.onSkillSee(npc, caster, skill, targets, isSummon); - } // if this has already been interacted, no further ai decisions are needed // if it's the first interaction, check if this is a box or mimic if (!chest.isInteracted()) @@ -147,11 +83,11 @@ public class Chests extends AbstractNpcAI if (getRandom(100) < IS_BOX) { // if it's a box, either it will be successfully opened by a proper key, or instantly disappear - if (skillId == SKILL_DELUXE_KEY) + if (skill.getId() == SKILL_DELUXE_KEY) { // check the chance to open the box int keyLevelNeeded = chest.getLevel() / 10; - keyLevelNeeded -= skillLevel; + keyLevelNeeded -= skill.getLevel(); if (keyLevelNeeded < 0) { keyLevelNeeded *= -1; @@ -188,13 +124,6 @@ public class Chests extends AbstractNpcAI if (npc instanceof L2ChestInstance) { L2ChestInstance chest = ((L2ChestInstance) npc); - int npcId = chest.getNpcId(); - // check if the chest and skills used are valid for this script. Exit if invalid. - if (!Util.contains(NPC_IDS, npcId)) - { - return super.onAttack(npc, attacker, damage, isSummon); - } - // if this was a mimic, set the target, start the skills and become agro if (!chest.isInteracted()) { @@ -219,6 +148,6 @@ public class Chests extends AbstractNpcAI public static void main(String[] args) { - new Chests(Chests.class.getSimpleName(), "ai"); + new Chests(); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Chimeras.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Chimeras.java index 91fa2c5e4e71d4e8b96d05256904aeefc8ee1929..d55aeb52b4cb1e30d99efc36c825387825dbc681 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Chimeras.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Chimeras.java @@ -60,9 +60,9 @@ public class Chimeras extends AbstractNpcAI private static final int LIFE_FORCE = 9681; private static final int CONTAINED_LIFE_FORCE = 9682; - private Chimeras(int questId, String name, String descr) + private Chimeras() { - super(name, descr); + super(Chimeras.class.getSimpleName(), "ai/group_template"); addSkillSeeId(NPCS); addSpawnId(CELTUS); addSkillSeeId(CELTUS); @@ -140,6 +140,6 @@ public class Chimeras extends AbstractNpcAI public static void main(String[] args) { - new Chimeras(-1, Chimeras.class.getSimpleName(), "ai"); + new Chimeras(); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/DenOfEvil.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/DenOfEvil.java index e476ead4fa84b2133ac1d1e25af5e23695e0abae..7e25ba4744a46a8f5466634d7624f5cb9a6a8a9f 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/DenOfEvil.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/DenOfEvil.java @@ -40,7 +40,6 @@ import com.l2jserver.gameserver.util.Util; public class DenOfEvil extends AbstractNpcAI { // private static final int _buffer_id = 32656; - protected static final int[] EYE_IDS = { 18812, @@ -97,9 +96,9 @@ public class DenOfEvil extends AbstractNpcAI new Location(62905, -106109, -2384, 51288) }; - private DenOfEvil(String name, String descr) + private DenOfEvil() { - super(name, descr); + super(DenOfEvil.class.getSimpleName(), "ai/group_template"); registerMobs(EYE_IDS, QuestEventType.ON_KILL, QuestEventType.ON_SPAWN); spawnEyes(); } @@ -114,49 +113,43 @@ public class DenOfEvil extends AbstractNpcAI @Override public String onSpawn(L2Npc npc) { - if (Util.contains(EYE_IDS, npc.getNpcId())) + npc.disableCoreAI(true); + npc.setIsImmobilized(true); + L2EffectZone zone = ZoneManager.getInstance().getZone(npc, L2EffectZone.class); + if (zone == null) { - npc.disableCoreAI(true); - npc.setIsImmobilized(true); - L2EffectZone zone = ZoneManager.getInstance().getZone(npc, L2EffectZone.class); - if (zone == null) - { - _log.warning("NPC " + npc + " spawned outside of L2EffectZone, check your zone coords! X:" + npc.getX() + " Y:" + npc.getY() + " Z:" + npc.getZ()); - return null; - } - int skillId = getSkillIdByNpcId(npc.getNpcId()); - int skillLevel = zone.getSkillLevel(skillId); - zone.addSkill(skillId, skillLevel + 1); - if (skillLevel == 3) // 3+1=4 - { - ThreadPoolManager.getInstance().scheduleAi(new KashaDestruction(zone), 2 * 60 * 1000l); - zone.broadcastPacket(SystemMessage.getSystemMessage(SystemMessageId.KASHA_EYE_PITCHES_TOSSES_EXPLODE)); - } - else if (skillLevel == 2) - { - zone.broadcastPacket(SystemMessage.getSystemMessage(SystemMessageId.I_CAN_FEEL_ENERGY_KASHA_EYE_GETTING_STRONGER_RAPIDLY)); - } + _log.warning("NPC " + npc + " spawned outside of L2EffectZone, check your zone coords! X:" + npc.getX() + " Y:" + npc.getY() + " Z:" + npc.getZ()); + return null; } - return null; + int skillId = getSkillIdByNpcId(npc.getNpcId()); + int skillLevel = zone.getSkillLevel(skillId); + zone.addSkill(skillId, skillLevel + 1); + if (skillLevel == 3) // 3+1=4 + { + ThreadPoolManager.getInstance().scheduleAi(new KashaDestruction(zone), 2 * 60 * 1000l); + zone.broadcastPacket(SystemMessage.getSystemMessage(SystemMessageId.KASHA_EYE_PITCHES_TOSSES_EXPLODE)); + } + else if (skillLevel == 2) + { + zone.broadcastPacket(SystemMessage.getSystemMessage(SystemMessageId.I_CAN_FEEL_ENERGY_KASHA_EYE_GETTING_STRONGER_RAPIDLY)); + } + return super.onSpawn(npc); } @Override public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) { - if (Util.contains(EYE_IDS, npc.getNpcId())) + ThreadPoolManager.getInstance().scheduleAi(new RespawnNewEye(npc.getLocation()), 15000); + L2EffectZone zone = ZoneManager.getInstance().getZone(npc, L2EffectZone.class); + if (zone == null) { - ThreadPoolManager.getInstance().scheduleAi(new RespawnNewEye(npc.getLocation()), 15000); - L2EffectZone zone = ZoneManager.getInstance().getZone(npc, L2EffectZone.class); - if (zone == null) - { - _log.warning("NPC " + npc + " killed outside of L2EffectZone, check your zone coords! X:" + npc.getX() + " Y:" + npc.getY() + " Z:" + npc.getZ()); - return null; - } - int skillId = getSkillIdByNpcId(npc.getNpcId()); - int skillLevel = zone.getSkillLevel(skillId); - zone.addSkill(skillId, skillLevel - 1); + _log.warning("NPC " + npc + " killed outside of L2EffectZone, check your zone coords! X:" + npc.getX() + " Y:" + npc.getY() + " Z:" + npc.getZ()); + return null; } - return null; + int skillId = getSkillIdByNpcId(npc.getNpcId()); + int skillLevel = zone.getSkillLevel(skillId); + zone.addSkill(skillId, skillLevel - 1); + return super.onKill(npc, killer, isSummon); } private void spawnEyes() @@ -244,6 +237,6 @@ public class DenOfEvil extends AbstractNpcAI public static void main(String[] args) { - new DenOfEvil(DenOfEvil.class.getSimpleName(), "ai"); + new DenOfEvil(); } } \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/EnergySeeds.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/EnergySeeds.java index e6acc9633453f4ab187d5c0fb5b7fe63ba35fb53..54cc8206e9b91cdd6b426fa6e7f0ae5c604466a3 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/EnergySeeds.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/EnergySeeds.java @@ -61,76 +61,33 @@ public class EnergySeeds extends AbstractNpcAI protected static Map<L2Npc, Integer> _spawnedNpcs = new FastMap<L2Npc, Integer>().shared(); private static final int TEMPORARY_TELEPORTER = 32602; + // @formatter:off private static final int[] SEED_IDS = { - 18678, - 18679, - 18680, - 18681, - 18682, - 18683 + 18678, 18679, 18680, 18681, 18682, 18683 }; private static final int[][] ANNIHILATION_SUPRISE_MOB_IDS = { - { - 22746, - 22747, - 22748, - 22749 - }, - { - 22754, - 22755, - 22756 - }, - { - 22760, - 22761, - 22762 - } + { 22746, 22747, 22748, 22749 }, + { 22754, 22755, 22756 }, + { 22760, 22761, 22762 } }; private static int[] SEED_OF_DESTRUCTION_DOORS = { - 12240003, - 12240004, - 12240005, - 12240006, - 12240007, - 12240008, - 12240009, - 12240010, - 12240011, - 12240012, - 12240013, - 12240014, - 12240015, - 12240016, - 12240017, - 12240018, - 12240019, - 12240020, - 12240021, - 12240022, - 12240023, - 12240024, - 12240025, - 12240026, - 12240027, - 12240028, - 12240029, - 12240030, + 12240003, 12240004, 12240005, 12240006, 12240007, 12240008, 12240009, + 12240010, 12240011, 12240012, 12240013, 12240014, 12240015, 12240016, + 12240017, 12240018, 12240019, 12240020, 12240021, 12240022, 12240023, + 12240024, 12240025, 12240026, 12240027, 12240028, 12240029, 12240030, 12240031 }; - - private static final int SOD_ZONE = 60009; private static final int[] SOD_EXIT_POINT = { - -248717, - 250260, - 4337 + -248717, 250260, 4337 }; + // @formatter:off + private static final int SOD_ZONE = 60009; private enum GraciaSeeds { @@ -141,6 +98,17 @@ public class EnergySeeds extends AbstractNpcAI ANNIHILATION_COKRAKON } + private EnergySeeds() + { + super(EnergySeeds.class.getSimpleName(), "instances"); // ai/group_template? + registerMobs(SEED_IDS); + addFirstTalkId(SEED_IDS); + addFirstTalkId(TEMPORARY_TELEPORTER); + addEnterZoneId(SOD_ZONE); + addSpawnsToList(); + startAI(); + } + protected boolean isSeedActive(GraciaSeeds seed) { switch (seed) @@ -808,17 +776,6 @@ public class EnergySeeds extends AbstractNpcAI } } - private EnergySeeds() - { - super(EnergySeeds.class.getSimpleName(), "instances"); - registerMobs(SEED_IDS); - addFirstTalkId(SEED_IDS); - addFirstTalkId(TEMPORARY_TELEPORTER); - addEnterZoneId(SOD_ZONE); - addSpawnsToList(); - startAI(); - } - public static void main(String[] args) { new EnergySeeds(); diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/EvasGiftBoxes.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/EvasGiftBoxes.java index eed47cd00c62f16ee576950acdfc12ec391cb7cc..8c5f241a1de5afa939af825e68238af70b22698a 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/EvasGiftBoxes.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/EvasGiftBoxes.java @@ -29,32 +29,21 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; */ public class EvasGiftBoxes extends AbstractNpcAI { + // Monster private static final int GIFTBOX = 32342; - + // Skill private static final int KISSOFEVA = 1073; - - // index 0: without kiss of eva - // index 1: with kiss of eva - // chance,itemId,... + // @formatter:off private static final int[][] CHANCES = { - { - 2, - 9692, - 1, - 9693 - }, - { - 100, - 9692, - 50, - 9693 - } + // chance,itemId,... + { 2, 9692, 1, 9693 }, // without kiss of eva + { 100, 9692, 50, 9693 } // with kiss of eva }; - - private EvasGiftBoxes(String name, String descr) + // @formatter:on + private EvasGiftBoxes() { - super(name, descr); + super(EvasGiftBoxes.class.getSimpleName(), "ai/group_template"); addKillId(GIFTBOX); addSpawnId(GIFTBOX); } @@ -89,6 +78,6 @@ public class EvasGiftBoxes extends AbstractNpcAI public static void main(String[] args) { - new EvasGiftBoxes(EvasGiftBoxes.class.getSimpleName(), "ai"); + new EvasGiftBoxes(); } } \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/FairyTrees.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/FairyTrees.java index d79b0962432ee6ed401af4967add5477b12dd8b7..a2f458ec4d092e20e6dc015b41b73a1e04aee388 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/FairyTrees.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/FairyTrees.java @@ -31,24 +31,23 @@ import com.l2jserver.gameserver.util.Util; import com.l2jserver.util.Rnd; /** - * Fairy Trees AI + * Fairy Trees AI. * @author Charus */ public class FairyTrees extends AbstractNpcAI { + // @formatter:off private static final int[] MOBS = { - 27185, - 27186, - 27187, - 27188 + 27185, 27186, 27187, 27188 }; + // @formatter:on - private FairyTrees(String name, String descr) + private FairyTrees() { - super(name, descr); + super(FairyTrees.class.getSimpleName(), "ai/group_template"); registerMobs(MOBS, QuestEventType.ON_KILL); - addSpawnId(27189); + addSpawnId(27189); // TODO why is this here? } @Override @@ -79,6 +78,6 @@ public class FairyTrees extends AbstractNpcAI public static void main(String[] args) { - new FairyTrees(FairyTrees.class.getSimpleName(), "ai"); + new FairyTrees(); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/FeedableBeasts.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/FeedableBeasts.java index fddbd6b10ca61535d7b7fde012ae6eed10df92ab..8029b917552021e501340575c9913b56eaca3e2b 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/FeedableBeasts.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/FeedableBeasts.java @@ -48,90 +48,24 @@ public class FeedableBeasts extends AbstractNpcAI private static final int CRYSTAL_SPICE = 6644; private static final int SKILL_GOLDEN_SPICE = 2188; private static final int SKILL_CRYSTAL_SPICE = 2189; + private static final int FOODSKILLDIFF = GOLDEN_SPICE - SKILL_GOLDEN_SPICE; + // @formatter:off private static final int[] TAMED_BEASTS = { - 16013, - 16014, - 16015, - 16016, - 16017, - 16018 + 16013, 16014, 16015, 16016, 16017, 16018 }; - private static final int FOODSKILLDIFF = GOLDEN_SPICE - SKILL_GOLDEN_SPICE; - // all mobs that can eat... private static final int[] FEEDABLE_BEASTS = { - 21451, - 21452, - 21453, - 21454, - 21455, - 21456, - 21457, - 21458, - 21459, - 21460, - 21461, - 21462, - 21463, - 21464, - 21465, - 21466, - 21467, - 21468, - 21469, - 21470, - 21471, - 21472, - 21473, - 21474, - 21475, - 21476, - 21477, - 21478, - 21479, - 21480, - 21481, - 21482, - 21483, - 21484, - 21485, - 21486, - 21487, - 21488, - 21489, - 21490, - 21491, - 21492, - 21493, - 21494, - 21495, - 21496, - 21497, - 21498, - 21499, - 21500, - 21501, - 21502, - 21503, - 21504, - 21505, - 21506, - 21507, - 21824, - 21825, - 21826, - 21827, - 21828, - 21829, - 16013, - 16014, - 16015, - 16016, - 16017, - 16018 + 21451, 21452, 21453, 21454, 21455, 21456, 21457, 21458, 21459, 21460, + 21461, 21462, 21463, 21464, 21465, 21466, 21467, 21468, 21469, 21470, + 21471, 21472, 21473, 21474, 21475, 21476, 21477, 21478, 21479, 21480, + 21481, 21482, 21483, 21484, 21485, 21486, 21487, 21488, 21489, 21490, + 21491, 21492, 21493, 21494, 21495, 21496, 21497, 21498, 21499, 21500, + 21501, 21502, 21503, 21504, 21505, 21506, 21507, 21824, 21825, 21826, + 21827, 21828, 21829, 16013, 16014, 16015, 16016, 16017, 16018 }; + // @formatter:on private static final Map<Integer, Integer> MAD_COW_POLYMORPH = new FastMap<>(); static @@ -238,7 +172,7 @@ public class FeedableBeasts extends AbstractNpcAI private FeedableBeasts() { - super(FeedableBeasts.class.getSimpleName(), "ai"); + super(FeedableBeasts.class.getSimpleName(), "ai/group_template"); registerMobs(FEEDABLE_BEASTS, QuestEventType.ON_KILL, QuestEventType.ON_SKILL_SEE); // TODO: no grendels? @@ -577,7 +511,7 @@ public class FeedableBeasts extends AbstractNpcAI int npcId = npc.getNpcId(); int skillId = skill.getId(); // check if the npc and skills used are valid for this script. Exit if invalid. - if (!Util.contains(FEEDABLE_BEASTS, npcId) || ((skillId != SKILL_GOLDEN_SPICE) && (skillId != SKILL_CRYSTAL_SPICE))) + if ((skillId != SKILL_GOLDEN_SPICE) && (skillId != SKILL_CRYSTAL_SPICE)) { return super.onSkillSee(npc, caster, skill, targets, isSummon); } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/FrozenLabyrinth.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/FrozenLabyrinth.java index bdc81283b72f20d1793960524d849b6f3641ac8d..15f34ecd4d523220cd6e4c19ff84f49f2f8ba2de 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/FrozenLabyrinth.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/FrozenLabyrinth.java @@ -26,7 +26,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.skills.L2Skill; /** - * Frozen Labyrinth AI + * Frozen Labyrinth AI. * @author malyelfik */ public final class FrozenLabyrinth extends AbstractNpcAI @@ -37,9 +37,9 @@ public final class FrozenLabyrinth extends AbstractNpcAI private static final int LOST_BUFFALO = 22093; private static final int FROST_BUFFALO = 22094; - private FrozenLabyrinth(String name, String descr) + private FrozenLabyrinth() { - super(name, descr); + super(FrozenLabyrinth.class.getSimpleName(), "ai/group_template"); addAttackId(PRONGHORN, FROST_BUFFALO); } @@ -72,6 +72,6 @@ public final class FrozenLabyrinth extends AbstractNpcAI public static void main(String[] args) { - new FrozenLabyrinth(FrozenLabyrinth.class.getSimpleName(), "ai/group_template"); + new FrozenLabyrinth(); } } \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/GiantScouts.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/GiantScouts.java index 5db48a5eba653e3d4222c608ea217dd673208c88..8ca3a4c56f597dd15dd1cf94c01c69341dda2f68 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/GiantScouts.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/GiantScouts.java @@ -40,16 +40,10 @@ import com.l2jserver.gameserver.network.serverpackets.CreatureSay; */ public class GiantScouts extends AbstractNpcAI { - private static final int[] SCOUTS = + private GiantScouts() { - 22668, - 22669 - }; - - private GiantScouts(String name, String descr) - { - super(name, descr); - addAggroRangeEnterId(SCOUTS); + super(GiantScouts.class.getSimpleName(), "ai/group_template"); + addAggroRangeEnterId(22668, 22669); // scouts } @Override @@ -95,6 +89,6 @@ public class GiantScouts extends AbstractNpcAI public static void main(String[] args) { - new GiantScouts(GiantScouts.class.getSimpleName(), "ai"); + new GiantScouts(); } } \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/IsleOfPrayer.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/IsleOfPrayer.java index ca7787fee68f366c09b4cfaecb71d54ffe17545d..06860c2a66250eb83e02b26921028b6611b7cabd 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/IsleOfPrayer.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/IsleOfPrayer.java @@ -54,7 +54,7 @@ public class IsleOfPrayer extends AbstractNpcAI private IsleOfPrayer() { - super(IsleOfPrayer.class.getSimpleName(), "ai"); + super(IsleOfPrayer.class.getSimpleName(), "ai/group_template"); addKillId(MUDDY_CORAL); } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/MithrilMines.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/MithrilMines.java index b4765e32a049e0b429360efa1d8169ff479509a2..063572981cb0ef8f129860652401f5d0da72c22f 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/MithrilMines.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/MithrilMines.java @@ -26,7 +26,7 @@ import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance; /** - * Mithril Mines AI + * Mithril Mines AI. * @author malyelfik */ public final class MithrilMines extends AbstractNpcAI @@ -45,9 +45,9 @@ public final class MithrilMines extends AbstractNpcAI 22686, // Servitor of Darkness }; - private MithrilMines(String name, String descr) + private MithrilMines() { - super(name, descr); + super(MithrilMines.class.getSimpleName(), "ai/group_template"); addSpawnId(GRAVE_ROBBER_SUMMONER, GRAVE_ROBBER_MAGICIAN); for (L2Spawn spawn : SpawnTable.getInstance().getSpawns(GRAVE_ROBBER_SUMMONER)) @@ -75,6 +75,6 @@ public final class MithrilMines extends AbstractNpcAI public static void main(String[] args) { - new MithrilMines(MithrilMines.class.getSimpleName(), "ai/group_template"); + new MithrilMines(); } } \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Monastery.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Monastery.java index 14f06be6b14cbd7a19f91aa32f5917324b4b6afc..8dd8c2b21836a935e2dafba873f73c9ab243dd56 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Monastery.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Monastery.java @@ -75,9 +75,9 @@ public class Monastery extends AbstractNpcAI private static final SkillHolder DECREASE_SPEED = new SkillHolder(4589, 8); - private Monastery(String name, String descr) + private Monastery() { - super(name, descr); + super(Monastery.class.getSimpleName(), "ai/group_template"); addAggroRangeEnterId(SOLINA_CLAN); addAggroRangeEnterId(CAPTAIN, KNIGHT); addSpellFinishedId(SOLINA_CLAN); @@ -100,29 +100,25 @@ public class Monastery extends AbstractNpcAI @Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { - switch (event) + if (event.equals("training") && !npc.isInCombat() && (getRandom(100) < 25)) { - case "training": - if (!npc.isInCombat() && (getRandom(100) < 25)) + for (L2Character character : npc.getKnownList().getKnownCharactersInRadius(300)) + { + if (character.isNpc() && (((L2Npc) character).getNpcId() == SCARECROW)) { - for (L2Character character : npc.getKnownList().getKnownCharactersInRadius(300)) + for (L2Skill skill : npc.getAllSkills()) { - if (!character.isPlayable() && (((L2Npc) character).getNpcId() == SCARECROW)) + if (skill.isActive()) { - for (L2Skill skill : npc.getAllSkills()) - { - if (skill.isActive()) - { - npc.disableSkill(skill, 0); - } - } - npc.setRunning(); - ((L2Attackable) npc).addDamageHate(character, 0, 100); - npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, character, null); - break; + npc.disableSkill(skill, 0); } } + npc.setRunning(); + ((L2Attackable) npc).addDamageHate(character, 0, 100); + npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, character, null); + break; } + } } return super.onAdvEvent(event, npc, player); } @@ -209,6 +205,6 @@ public class Monastery extends AbstractNpcAI public static void main(String[] args) { - new Monastery(Monastery.class.getSimpleName(), "ai/group_template"); + new Monastery(); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/NonLethalableNpcs.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/NonLethalableNpcs.java index 333566a3f03d90cbabbf4f940b62d0b7178a11a7..caf0fd63090aa1cc3d6ce6e49ec2bf39b3c0a4ee 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/NonLethalableNpcs.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/NonLethalableNpcs.java @@ -29,22 +29,15 @@ import com.l2jserver.gameserver.model.actor.L2Npc; */ public class NonLethalableNpcs extends AbstractNpcAI { - private static final int[] NPCS = - { - 35062, // Headquarters - }; + private static final int HEADQUARTERS = 35062; - public NonLethalableNpcs(String name, String descr) + public NonLethalableNpcs() { - super(name, descr); - addSpawnId(NPCS); - - for (int npcId : NPCS) + super(NonLethalableNpcs.class.getSimpleName(), "ai/group_template"); + addSpawnId(HEADQUARTERS); + for (L2Spawn spawn : SpawnTable.getInstance().getSpawns(HEADQUARTERS)) { - for (L2Spawn spawn : SpawnTable.getInstance().getSpawns(npcId)) - { - onSpawn(spawn.getLastSpawn()); - } + onSpawn(spawn.getLastSpawn()); } } @@ -57,6 +50,6 @@ public class NonLethalableNpcs extends AbstractNpcAI public static void main(String[] args) { - new NonLethalableNpcs(NonLethalableNpcs.class.getSimpleName(), "ai/group_template"); + new NonLethalableNpcs(); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PavelArchaic.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PavelArchaic.java index 0e14c502a2cfed6d6289337ec9277b0a1cfcb533..1f2367e6980d1c85eb8e7c87d351d286593a4066 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PavelArchaic.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PavelArchaic.java @@ -30,22 +30,11 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; */ public class PavelArchaic extends AbstractNpcAI { - private static final int[] MOBS1 = + private PavelArchaic() { - 22801, - 22804 - }; - - private static final int[] MOBS2 = - { - 18917 - }; - - private PavelArchaic(String name, String descr) - { - super(name, descr); - registerMobs(MOBS1, QuestEventType.ON_KILL); - registerMobs(MOBS2, QuestEventType.ON_ATTACK); + super(PavelArchaic.class.getSimpleName(), "ai/group_template"); + addKillId(22801, 22804); + addAttackId(18917); } @Override @@ -70,13 +59,13 @@ public class PavelArchaic extends AbstractNpcAI @Override public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) { - L2Attackable _golem = (L2Attackable) addSpawn(npc.getNpcId() + 1, npc.getLocation(), false, 0); - attackPlayer(_golem, killer); + L2Attackable golem = (L2Attackable) addSpawn(npc.getNpcId() + 1, npc.getLocation(), false, 0); + attackPlayer(golem, killer); return super.onKill(npc, killer, isSummon); } public static void main(String[] args) { - new PavelArchaic(PavelArchaic.class.getSimpleName(), "ai"); + new PavelArchaic(); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PlainsOfDion.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PlainsOfDion.java index 8467191a33a4d7981e776d95ce60a4d0f92504ec..3dc7e9ae36c1ebbc2fc1b9ba326b484f7c413939 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PlainsOfDion.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PlainsOfDion.java @@ -30,12 +30,12 @@ import com.l2jserver.gameserver.network.clientpackets.Say2; import com.l2jserver.gameserver.util.Util; /** - * AI for mobs in Plains of Dion (near Floran Village) + * AI for mobs in Plains of Dion (near Floran Village). * @author Gladicek */ public final class PlainsOfDion extends AbstractNpcAI { - private static final int MONSTERS[] = + private static final int DELU_LIZARDMEN[] = { 21104, // Delu Lizardman Supplier 21105, // Delu Lizardman Special Agent @@ -58,10 +58,10 @@ public final class PlainsOfDion extends AbstractNpcAI NpcStringId.WHAT_ARE_YOU_LOOKING_AT }; - private PlainsOfDion(String name, String descr) + private PlainsOfDion() { - super(name, descr); - addAttackId(MONSTERS); + super(PlainsOfDion.class.getSimpleName(), "ai/group_template"); + addAttackId(DELU_LIZARDMEN); } @Override @@ -81,7 +81,7 @@ public final class PlainsOfDion extends AbstractNpcAI for (L2Character obj : npc.getKnownList().getKnownCharactersInRadius(npc.getFactionRange())) { - if (obj.isMonster() && Util.contains(MONSTERS, ((L2MonsterInstance) obj).getNpcId()) && !obj.isAttackingNow() && !obj.isDead() && GeoData.getInstance().canSeeTarget(npc, obj)) + if (obj.isMonster() && Util.contains(DELU_LIZARDMEN, ((L2MonsterInstance) obj).getNpcId()) && !obj.isAttackingNow() && !obj.isDead() && GeoData.getInstance().canSeeTarget(npc, obj)) { final L2MonsterInstance monster = (L2MonsterInstance) obj; attackPlayer(monster, player); @@ -95,6 +95,6 @@ public final class PlainsOfDion extends AbstractNpcAI public static void main(String[] args) { - new PlainsOfDion(PlainsOfDion.class.getSimpleName(), "ai"); + new PlainsOfDion(); } } \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PlainsOfLizardman.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PlainsOfLizardman.java index 700d3be1de2af9d7e50f9eab8810666315d0bc74..54207031910eaef6f259b393d98e23ae13963b8e 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PlainsOfLizardman.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PlainsOfLizardman.java @@ -29,7 +29,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.holders.SkillHolder; /** - * Plains of Lizardman AI + * Plains of Lizardmen AI. * @author Gnacik, malyelfik */ public final class PlainsOfLizardman extends AbstractNpcAI @@ -44,7 +44,7 @@ public final class PlainsOfLizardman extends AbstractNpcAI private static final int TANTA_SCOUT = 22768; private static final int TANTA_MAGICIAN = 22773; private static final int TANTA_SUMMONER = 22774; - private static final int[] MOBS = + private static final int[] TANTA_LIZARDMEN = { 22768, // Tanta Lizardman Scout 22769, // Tanta Lizardman Warrior @@ -54,7 +54,6 @@ public final class PlainsOfLizardman extends AbstractNpcAI 22773, // Tanta Lizardman Magician 22774, // Tanta Lizardman Summoner }; - // Skills private static final SkillHolder STUN_EFFECT = new SkillHolder(6622, 1); private static final SkillHolder DEMOTIVATION_HEX = new SkillHolder(6425, 1); @@ -62,7 +61,6 @@ public final class PlainsOfLizardman extends AbstractNpcAI private static final SkillHolder RAINBOW_FROG_SKILL = new SkillHolder(6429, 1); private static final SkillHolder STICKY_MUSHROOM_SKILL = new SkillHolder(6428, 1); private static final SkillHolder ENERGY_PLANT_SKILL = new SkillHolder(6430, 1); - // Buffs private static final SkillHolder[] BUFFS = { @@ -81,22 +79,19 @@ public final class PlainsOfLizardman extends AbstractNpcAI new SkillHolder(6640, 1), // Energizing Aura new SkillHolder(6674, 1), // Energy of Range Increment }; - // Misc + // @formatter:off private static final int[] BUFF_LIST = { - 6, - 7, - 8, - 11, - 13 + 6, 7, 8, 11, 13 }; + // @formatter:on - private PlainsOfLizardman(String name, String descr) + private PlainsOfLizardman() { - super(name, descr); + super(PlainsOfLizardman.class.getSimpleName(), "ai/group_template"); addAttackId(FANTASY_MUSHROOM, RAINBOW_FROG, STICKY_MUSHROOM, ENERGY_PLANT, TANTA_SUMMONER); - addKillId(MOBS); + addKillId(TANTA_LIZARDMEN); } @Override @@ -246,6 +241,6 @@ public final class PlainsOfLizardman extends AbstractNpcAI public static void main(String[] args) { - new PlainsOfLizardman(PlainsOfLizardman.class.getSimpleName(), "ai"); + new PlainsOfLizardman(); } } \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PolymorphingAngel.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PolymorphingAngel.java index d79fdbee80b1d282f2907a7ace3bdf57a4b5baae..767abd9785a0dd82db0cd66549388953f75c6fee 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PolymorphingAngel.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PolymorphingAngel.java @@ -42,9 +42,9 @@ public class PolymorphingAngel extends AbstractNpcAI ANGELSPAWNS.put(21070, 21071); } - private PolymorphingAngel(String name, String descr) + private PolymorphingAngel() { - super(name, descr); + super(PolymorphingAngel.class.getSimpleName(), "ai/group_template"); addKillId(ANGELSPAWNS.keySet()); } @@ -58,6 +58,6 @@ public class PolymorphingAngel extends AbstractNpcAI public static void main(String[] args) { - new PolymorphingAngel(PolymorphingAngel.class.getSimpleName(), "ai"); + new PolymorphingAngel(); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PolymorphingOnAttack.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PolymorphingOnAttack.java index 8e515f005962747d571c5b677b25a454e4f2da6f..cf1e931bdbcb69b2ee00f98480dc19efdee35f45 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PolymorphingOnAttack.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PolymorphingOnAttack.java @@ -57,7 +57,6 @@ public class PolymorphingOnAttack extends AbstractNpcAI MOBSPAWNS.put(21533, Arrays.asList(21534, 100, 30, -1)); // Alliance of Splendor MOBSPAWNS.put(21537, Arrays.asList(21538, 100, 30, -1)); // Fang of Splendor } - protected static final NpcStringId[][] MOBTEXTS = { new NpcStringId[] @@ -80,9 +79,9 @@ public class PolymorphingOnAttack extends AbstractNpcAI } }; - private PolymorphingOnAttack(String name, String descr) + private PolymorphingOnAttack() { - super(name, descr); + super(PolymorphingOnAttack.class.getSimpleName(), "ai/group_template"); registerMobs(MOBSPAWNS.keySet(), QuestEventType.ON_ATTACK); } @@ -116,6 +115,6 @@ public class PolymorphingOnAttack extends AbstractNpcAI public static void main(String[] args) { - new PolymorphingOnAttack(PolymorphingOnAttack.class.getSimpleName(), "ai"); + new PolymorphingOnAttack(); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PrisonGuards.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PrisonGuards.java index 237cc48a42cc064979cd22e0f41666e46122fc2f..17afef17c3d2bdc74e1f1d21773a3aed5abdaf65 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PrisonGuards.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PrisonGuards.java @@ -56,23 +56,18 @@ public class PrisonGuards extends AbstractNpcAI "4th" }; - private final static int silence = 4098; - private final static int pertification = 4578; - private final static int eventTimer = 5239; + private final static int SKILL_SILENCE = 4098; + private final static int SKILL_PERTIFICATION = 4578; + private final static int SKILL_EVENT_TIMER = 5239; private boolean _firstAttacked = false; private final Map<L2Npc, Integer> _guards = new FastMap<>(); - private PrisonGuards(String name, String descr) + private PrisonGuards() { - super(name, descr); - int[] mob = - { - GUARD1, - GUARD2 - }; - registerMobs(mob); + super(PrisonGuards.class.getSimpleName(), "ai/group_template"); + registerMobs(GUARD1, GUARD2); // place 1 _guards.put(addSpawn(GUARD2, 160704, 184704, -3704, 49152, false, 0), 0); @@ -106,7 +101,7 @@ public class PrisonGuards extends AbstractNpcAI @Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { - if (event.equalsIgnoreCase("Respawn")) + if (event.equals("Respawn")) { L2Npc newGuard = addSpawn(npc.getNpcId(), npc.getSpawn().getLocx(), npc.getSpawn().getLocy(), npc.getSpawn().getLocz(), npc.getSpawn().getHeading(), false, 0); newGuard.setIsNoRndWalk(true); @@ -121,7 +116,7 @@ public class PrisonGuards extends AbstractNpcAI _guards.remove(npc); _guards.put(newGuard, place); } - else if (event.equalsIgnoreCase("attackEnd") && (npc.getNpcId() == GUARD2)) + else if (event.equals("attackEnd") && (npc.getNpcId() == GUARD2)) { if ((npc.getX() != npc.getSpawn().getLocx()) || (npc.getY() != npc.getSpawn().getLocy())) { @@ -132,7 +127,7 @@ public class PrisonGuards extends AbstractNpcAI npc.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); } - return null; + return super.onAdvEvent(event, npc, player); } @Override @@ -142,11 +137,11 @@ public class PrisonGuards extends AbstractNpcAI if (npc.getNpcId() == GUARD2) { - if (_firstAttacked && (caster.getFirstEffect(eventTimer) == null)) + if (_firstAttacked && (caster.getFirstEffect(SKILL_EVENT_TIMER) == null)) { - if (caster.getFirstEffect(silence) == null) + if (caster.getFirstEffect(SKILL_SILENCE) == null) { - castDebuff(npc, caster, silence, isSummon, false, true); + castDebuff(npc, caster, SKILL_SILENCE, isSummon, false, true); } } } @@ -161,7 +156,7 @@ public class PrisonGuards extends AbstractNpcAI if (npc.getNpcId() == GUARD2) { - if (target.getFirstEffect(eventTimer) != null) + if (target.getFirstEffect(SKILL_EVENT_TIMER) != null) { cancelQuestTimer("attackEnd", null, null); startQuestTimer("attackEnd", 180000, npc, null); @@ -195,11 +190,11 @@ public class PrisonGuards extends AbstractNpcAI _firstAttacked = true; - if (attacker.getFirstEffect(eventTimer) == null) + if (attacker.getFirstEffect(SKILL_EVENT_TIMER) == null) { - if (attacker.getFirstEffect(pertification) == null) + if (attacker.getFirstEffect(SKILL_PERTIFICATION) == null) { - castDebuff(npc, attacker, pertification, isSummon, true, false); + castDebuff(npc, attacker, SKILL_PERTIFICATION, isSummon, true, false); } npc.setTarget(null); @@ -263,6 +258,6 @@ public class PrisonGuards extends AbstractNpcAI public static void main(String[] args) { - new PrisonGuards(PrisonGuards.class.getSimpleName(), "ai"); + new PrisonGuards(); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/RandomSpawn.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/RandomSpawn.java index 621c0bf13f868e8201958104757a227f3319035b..a09cc1d487ed57f78e45585658f1f8cf0333deb3 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/RandomSpawn.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/RandomSpawn.java @@ -28,13 +28,12 @@ import com.l2jserver.gameserver.model.Location; import com.l2jserver.gameserver.model.actor.L2Npc; /** - * Manages spawn of NPC's, having several random spawn points. + * Manages spawn of NPCs having several random spawn points. * @author GKR */ public class RandomSpawn extends AbstractNpcAI { private static Map<Integer, Location[]> SPAWN_POINTS = new FastMap<>(); - static { // Keltas @@ -80,10 +79,9 @@ public class RandomSpawn extends AbstractNpcAI }); } - public RandomSpawn(String name, String descr) + public RandomSpawn() { - super(name, descr); - + super(RandomSpawn.class.getSimpleName(), "ai/group_template"); for (int npcId : SPAWN_POINTS.keySet()) { addSpawnId(npcId); @@ -127,6 +125,6 @@ public class RandomSpawn extends AbstractNpcAI public static void main(String[] args) { - new RandomSpawn(RandomSpawn.class.getSimpleName(), "ai"); + new RandomSpawn(); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Remnants.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Remnants.java index fcb8cb284924ed9a85b88342eb2a2042cbd63803..b738a0903cc4c7ece51c0a09a5197d3897b9117f 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Remnants.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Remnants.java @@ -37,23 +37,17 @@ public class Remnants extends AbstractNpcAI 18464, 18465 }; - - private static final int HOLY_WATER = 2358; + private static final int SKILL_HOLY_WATER = 2358; // TODO: Find retail strings. // private static final String MSG = "The holy water affects Remnants Ghost. You have freed his soul."; // private static final String MSG_DEREK = "The holy water affects Derek. You have freed his soul."; - - /** - * Do not override onKill for Derek here. Let's make global Hellbound manipulations in Engine where it is possible. - * @param name - * @param descr - */ - private Remnants(String name, String descr) + private Remnants() { - super(name, descr); + super(Remnants.class.getSimpleName(), "ai/group_template"); addSpawnId(NPCS); addSkillSeeId(NPCS); + // Do not override onKill for Derek here. Let's make global Hellbound manipulations in Engine where it is possible. } @Override @@ -66,7 +60,7 @@ public class Remnants extends AbstractNpcAI @Override public final String onSkillSee(L2Npc npc, L2PcInstance caster, L2Skill skill, L2Object[] targets, boolean isSummon) { - if (skill.getId() == HOLY_WATER) + if (skill.getId() == SKILL_HOLY_WATER) { if (!npc.isDead()) { @@ -95,6 +89,6 @@ public class Remnants extends AbstractNpcAI public static void main(String[] args) { - new Remnants(Remnants.class.getSimpleName(), "ai"); + new Remnants(); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Sandstorms.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Sandstorms.java index 2ed6a07400e21fbc51c5a8178921a11077f93ade..0b5eda193dd37d114d712136dbae6a10ad4a7b54 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Sandstorms.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Sandstorms.java @@ -30,7 +30,11 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; */ public class Sandstorms extends AbstractNpcAI { - private static final int SANDSTORM = 32350; + public Sandstorms() + { + super(Sandstorms.class.getSimpleName(), "ai/group_template"); + addAggroRangeEnterId(32350); // Sandstorm + } @Override public String onAggroRangeEnter(L2Npc npc, L2PcInstance player, boolean isSummon) @@ -40,14 +44,8 @@ public class Sandstorms extends AbstractNpcAI return super.onAggroRangeEnter(npc, player, isSummon); } - public Sandstorms(String name, String descr) - { - super(name, descr); - addAggroRangeEnterId(SANDSTORM); - } - public static void main(String[] args) { - new Sandstorms(Sandstorms.class.getSimpleName(), "ai"); + new Sandstorms(); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SearchingMaster.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SearchingMaster.java index 9566d40a4906834cd048911064a1f5ab1f022555..0f4fe08083b18534321cdfd7bc1f6276dac8b8b7 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SearchingMaster.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SearchingMaster.java @@ -31,42 +31,26 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; */ public class SearchingMaster extends AbstractNpcAI { - private static final int[] MOBS = + private SearchingMaster() { - 20965, - 20966, - 20967, - 20968, - 20969, - 20970, - 20971, - 20972, - 20973 - }; - - private SearchingMaster(String name, String descr) - { - super(name, descr); - addAttackId(MOBS); + super(SearchingMaster.class.getSimpleName(), "ai/group_template"); + addAttackId(20965, 20966, 20967, 20968, 20969, 20970, 20971, 20972, 20973); } @Override public String onAttack(L2Npc npc, L2PcInstance player, int damage, boolean isSummon) { - if (player == null) + if (player != null) { - return null; + npc.setIsRunning(true); + ((L2Attackable) npc).addDamageHate(player, 0, 999); + npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player); } - - npc.setIsRunning(true); - ((L2Attackable) npc).addDamageHate(player, 0, 999); - npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player); - return super.onAttack(npc, player, damage, isSummon); } public static void main(String[] args) { - new SearchingMaster(SearchingMaster.class.getSimpleName(), "ai"); + new SearchingMaster(); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SeeThroughSilentMove.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SeeThroughSilentMove.java index b4cf5565ab1d5fe7eca5d40b02da8da1fc9673f3..f398de7921547d39178fed891da3810ddd040228 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SeeThroughSilentMove.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SeeThroughSilentMove.java @@ -32,30 +32,20 @@ import com.l2jserver.gameserver.model.actor.L2Npc; public class SeeThroughSilentMove extends AbstractNpcAI { //@formatter:off - private static final int[] MOBIDS = + private static final int[] MONSTERS = { - 18001, 18002, 22199, - 22215, 22216, 22217, - 22327, 22746, 22747, - 22748, 22749, 22750, - 22751, 22752, 22753, - 22754, 22755, 22756, - 22757, 22758, 22759, - 22760, 22761, 22762, - 22763, 22764, 22765, - 22794, 22795, 22796, - 22797, 22798, 22799, - 22800, 22843, 22857, - 25725, 25726, 25727, - 29009, 29010, 29011, - 29012, 29013 + 18001, 18002, 22199, 22215, 22216, 22217, 22327, 22746, 22747, 22748, + 22749, 22750, 22751, 22752, 22753, 22754, 22755, 22756, 22757, 22758, + 22759, 22760, 22761, 22762, 22763, 22764, 22765, 22794, 22795, 22796, + 22797, 22798, 22799, 22800, 22843, 22857, 25725, 25726, 25727, 29009, + 29010, 29011, 29012, 29013 }; //@formatter:on - private SeeThroughSilentMove(String name, String descr) + private SeeThroughSilentMove() { - super(name, descr); - for (int npcId : MOBIDS) + super(SeeThroughSilentMove.class.getSimpleName(), "ai/group_template"); + for (int npcId : MONSTERS) { for (L2Spawn spawn : SpawnTable.getInstance().getSpawns(npcId)) { @@ -66,7 +56,7 @@ public class SeeThroughSilentMove extends AbstractNpcAI } } } - addSpawnId(MOBIDS); + addSpawnId(MONSTERS); } @Override @@ -81,6 +71,6 @@ public class SeeThroughSilentMove extends AbstractNpcAI public static void main(String[] args) { - new SeeThroughSilentMove(SeeThroughSilentMove.class.getSimpleName(), "ai"); + new SeeThroughSilentMove(); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SeedOfAnnihilation.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SeedOfAnnihilation.java index 7ef9f73e4b0b65f6eebb7c124692992061a0395c..ce6f5ba8dcab4481d02e9b00a7fc89652ea184d2 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SeedOfAnnihilation.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SeedOfAnnihilation.java @@ -79,9 +79,9 @@ public class SeedOfAnnihilation extends AbstractNpcAI _teleportZones.put(60005, new Location(-179275, 186802, -10720)); } - private SeedOfAnnihilation(String name, String descr) + private SeedOfAnnihilation() { - super(name, descr); + super(SeedOfAnnihilation.class.getSimpleName(), "ai/group_template"); loadSeedRegionData(); for (int i : _teleportZones.keySet()) { @@ -359,12 +359,6 @@ public class SeedOfAnnihilation extends AbstractNpcAI return null; } - @Override - public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) - { - return super.onKill(npc, killer, isSummon); - } - @Override public String onEnterZone(L2Character character, L2ZoneType zone) { @@ -396,6 +390,6 @@ public class SeedOfAnnihilation extends AbstractNpcAI public static void main(String[] args) { - new SeedOfAnnihilation(SeedOfAnnihilation.class.getSimpleName(), "ai"); + new SeedOfAnnihilation(); } } \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Slaves.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Slaves.java index 4805dad6410d622d641a9de2d2aae5209e464d99..11c9fbb5367e38694c9ade7ff891a6b6aca6c83e 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Slaves.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Slaves.java @@ -44,16 +44,13 @@ public class Slaves extends AbstractNpcAI 22320, 22321 }; - private static final L2CharPosition MOVE_TO = new L2CharPosition(-25451, 252291, -3252, 3500); - private static final int TRUST_REWARD = 10; - private Slaves(String name, String descr) + private Slaves() { - super(name, descr); - addSpawnId(MASTERS); - addKillId(MASTERS); + super(Slaves.class.getSimpleName(), "ai/group_template"); + registerMobs(MASTERS, QuestEventType.ON_SPAWN, QuestEventType.ON_KILL); } @Override @@ -101,6 +98,6 @@ public class Slaves extends AbstractNpcAI public static void main(String[] args) { - new Slaves(Slaves.class.getSimpleName(), "ai"); + new Slaves(); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/StakatoNest.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/StakatoNest.java index fdc032c929c0709cfbee552919ec4220c3bcfbc9..4e7ae43725e797d899e894dcf5890a3a1a34d5be 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/StakatoNest.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/StakatoNest.java @@ -40,46 +40,20 @@ import com.l2jserver.gameserver.util.Util; */ public class StakatoNest extends AbstractNpcAI { + // @formatter:off // List of all mobs just for register private static final int[] STAKATO_MOBS = { - 18793, - 18794, - 18795, - 18796, - 18797, - 18798, - 22617, - 22618, - 22619, - 22620, - 22621, - 22622, - 22623, - 22624, - 22625, - 22626, - 22627, - 22628, - 22629, - 22630, - 22631, - 22632, - 22633, - 25667 + 18793, 18794, 18795, 18796, 18797, 18798, 22617, 22618, 22619, 22620, + 22621, 22622, 22623, 22624, 22625, 22626, 22627, 22628, 22629, 22630, + 22631, 22632, 22633, 25667 }; - // Coocons private static final int[] COCOONS = { - 18793, - 18794, - 18795, - 18796, - 18797, - 18798 + 18793, 18794, 18795, 18796, 18797, 18798 }; - + // @formatter:on // Cannibalistic Stakato Leader private static final int STAKATO_LEADER = 22625; @@ -110,9 +84,9 @@ public class StakatoNest extends AbstractNpcAI // Large Stakato Cocoon private static final int LARGE_COCOON = 14834; - private StakatoNest(String name, String descr) + private StakatoNest() { - super(name, descr); + super(StakatoNest.class.getSimpleName(), "ai/group_template"); registerMobs(STAKATO_MOBS); } @@ -147,56 +121,61 @@ public class StakatoNest extends AbstractNpcAI @Override public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) { - L2MonsterInstance _minion = checkMinion(npc); - - if ((npc.getNpcId() == STAKATO_NURSE) && (_minion != null)) - { - Broadcast.toSelfAndKnownPlayers(npc, new MagicSkillUse(npc, 2046, 1, 1000, 0)); - for (int i = 0; i < 3; i++) - { - L2Npc _spawned = addSpawn(STAKATO_CAPTAIN, _minion, true); - attackPlayer(killer, _spawned); - } - } - else if (npc.getNpcId() == STAKATO_BABY) - { - L2MonsterInstance leader = ((L2MonsterInstance) npc).getLeader(); - if ((leader != null) && !leader.isDead()) - { - startQuestTimer("nurse_change", 5000, leader, killer); - } - } - else if ((npc.getNpcId() == STAKATO_MALE) && (_minion != null)) + L2MonsterInstance monster; + switch (npc.getNpcId()) { - Broadcast.toSelfAndKnownPlayers(npc, new MagicSkillUse(npc, 2046, 1, 1000, 0)); - for (int i = 0; i < 3; i++) - { - L2Npc _spawned = addSpawn(STAKATO_GUARD, _minion, true); - attackPlayer(killer, _spawned); - } - } - else if (npc.getNpcId() == STAKATO_FEMALE) - { - L2MonsterInstance leader = ((L2MonsterInstance) npc).getLeader(); - if ((leader != null) && !leader.isDead()) - { - startQuestTimer("male_change", 5000, leader, killer); - } - } - else if (npc.getNpcId() == STAKATO_CHIEF) - { - if (killer.isInParty()) - { - List<L2PcInstance> party = killer.getParty().getMembers(); - for (L2PcInstance member : party) + case STAKATO_NURSE: + monster = checkMinion(npc); + if (monster != null) { - giveCocoon(member, npc); + Broadcast.toSelfAndKnownPlayers(npc, new MagicSkillUse(npc, 2046, 1, 1000, 0)); + for (int i = 0; i < 3; i++) + { + L2Npc _spawned = addSpawn(STAKATO_CAPTAIN, monster, true); + attackPlayer(killer, _spawned); + } } - } - else - { - giveCocoon(killer, npc); - } + break; + case STAKATO_BABY: + monster = ((L2MonsterInstance) npc).getLeader(); + if ((monster != null) && !monster.isDead()) + { + startQuestTimer("nurse_change", 5000, monster, killer); + } + break; + case STAKATO_MALE: + monster = checkMinion(npc); + if (monster != null) + { + Broadcast.toSelfAndKnownPlayers(npc, new MagicSkillUse(npc, 2046, 1, 1000, 0)); + for (int i = 0; i < 3; i++) + { + L2Npc _spawned = addSpawn(STAKATO_GUARD, monster, true); + attackPlayer(killer, _spawned); + } + } + break; + case STAKATO_FEMALE: + monster = ((L2MonsterInstance) npc).getLeader(); + if ((monster != null) && !monster.isDead()) + { + startQuestTimer("male_change", 5000, monster, killer); + } + break; + case STAKATO_CHIEF: + if (killer.isInParty()) + { + List<L2PcInstance> party = killer.getParty().getMembers(); + for (L2PcInstance member : party) + { + giveCocoon(member, npc); + } + } + else + { + giveCocoon(killer, npc); + } + break; } return super.onKill(npc, killer, isSummon); } @@ -216,30 +195,29 @@ public class StakatoNest extends AbstractNpcAI @Override public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { - if ((npc == null) || (player == null)) - { - return null; - } - if (npc.isDead()) + if ((npc == null) || (player == null) || npc.isDead()) { return null; } - if (event.equalsIgnoreCase("nurse_change")) + int npcId = 0; + switch (event) { - npc.getSpawn().decreaseCount(npc); - npc.deleteMe(); - L2Npc _spawned = addSpawn(STAKATO_NURSE_2, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 0, true); - attackPlayer(player, _spawned); + case "nurse_change": + npcId = STAKATO_NURSE_2; + break; + case "male_change": + npcId = STAKATO_MALE_2; + break; } - else if (event.equalsIgnoreCase("male_change")) + if (npcId > 0) { npc.getSpawn().decreaseCount(npc); npc.deleteMe(); - L2Npc _spawned = addSpawn(STAKATO_MALE_2, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 0, true); + L2Npc _spawned = addSpawn(npcId, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 0, true); attackPlayer(player, _spawned); } - return null; + return super.onAdvEvent(event, npc, player); } private static L2MonsterInstance checkMinion(L2Npc npc) @@ -269,18 +247,11 @@ public class StakatoNest extends AbstractNpcAI private static void giveCocoon(L2PcInstance player, L2Npc npc) { - if (getRandom(100) > 80) - { - player.addItem("StakatoCocoon", LARGE_COCOON, 1, npc, true); - } - else - { - player.addItem("StakatoCocoon", SMALL_COCOON, 1, npc, true); - } + player.addItem("StakatoCocoon", ((getRandom(100) > 80) ? LARGE_COCOON : SMALL_COCOON), 1, npc, true); } public static void main(String[] args) { - new StakatoNest(StakatoNest.class.getSimpleName(), "ai"); + new StakatoNest(); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/StarStones.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/StarStones.java index 3686bec2307d1ee31cc7c3e5a1c7351aa72bac11..772b8b6273fc78b408466243c59da8886d7c550c 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/StarStones.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/StarStones.java @@ -32,25 +32,19 @@ import com.l2jserver.gameserver.network.SystemMessageId; */ public class StarStones extends AbstractNpcAI { + // @formatter:off private static final int[] MOBS = { - 18684, - 18685, - 18686, - 18687, - 18688, - 18689, - 18690, - 18691, - 18692 + 18684, 18685, 18686, 18687, 18688, 18689, 18690, 18691, 18692 }; + // @formatter:on - private static final int RATE = 1; + private static final int COLLECTION_RATE = 1; - private StarStones(String name, String descr) + private StarStones() { - super(name, descr); - registerMobs(MOBS, QuestEventType.ON_SKILL_SEE); + super(StarStones.class.getSimpleName(), "ai/group_template"); + addSkillSeeId(MOBS); } @Override @@ -87,12 +81,12 @@ public class StarStones extends AbstractNpcAI if (getRandom(100) < 33) { caster.sendPacket(SystemMessageId.THE_COLLECTION_HAS_SUCCEEDED); - caster.addItem("StarStone", itemId, getRandom(RATE + 1, 2 * RATE), null, true); + caster.addItem("StarStone", itemId, getRandom(COLLECTION_RATE + 1, 2 * COLLECTION_RATE), null, true); } else if (((skill.getLevel() == 1) && (getRandom(100) < 15)) || ((skill.getLevel() == 2) && (getRandom(100) < 50)) || ((skill.getLevel() == 3) && (getRandom(100) < 75))) { caster.sendPacket(SystemMessageId.THE_COLLECTION_HAS_SUCCEEDED); - caster.addItem("StarStone", itemId, getRandom(1, RATE), null, true); + caster.addItem("StarStone", itemId, getRandom(1, COLLECTION_RATE), null, true); } else { @@ -105,6 +99,6 @@ public class StarStones extends AbstractNpcAI public static void main(String[] args) { - new StarStones(StarStones.class.getSimpleName(), "ai"); + new StarStones(); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SummonMinions.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SummonMinions.java index 8c25fbc25e3c8db6b35cb33699eba0d9c1de29a7..268364545c11fdcfe5d2084655ad6e81ec11a19f 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SummonMinions.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/SummonMinions.java @@ -46,7 +46,6 @@ public class SummonMinions extends AbstractNpcAI private static Set<Integer> myTrackingSet = new FastSet<Integer>().shared(); // Used to track instances of npcs private final FastMap<Integer, FastList<L2PcInstance>> _attackersList = new FastMap<Integer, FastList<L2PcInstance>>().shared(); private static final Map<Integer, List<Integer>> MINIONS = new HashMap<>(); - static { // Timak Orc Troop @@ -86,7 +85,6 @@ public class SummonMinions extends AbstractNpcAI // Tanta Lizardman Summoner MINIONS.put(22774, Arrays.asList(22768, 22768)); } - // Timak Orc Troop Messages private static final NpcStringId[] ATTACK_LEADER_MSG = { @@ -96,9 +94,9 @@ public class SummonMinions extends AbstractNpcAI NpcStringId.COME_OUT_YOU_CHILDREN_OF_DARKNESS }; - private SummonMinions(String name, String descr) + private SummonMinions() { - super(name, descr); + super(SummonMinions.class.getSimpleName(), "ai/group_template"); registerMobs(MINIONS.keySet(), QuestEventType.ON_ATTACK, QuestEventType.ON_KILL); } @@ -120,7 +118,6 @@ public class SummonMinions extends AbstractNpcAI case 22030: // mobs that summon minions only on certain hp case 22032: case 22038: - { if (npc.getCurrentHp() < (npc.getMaxHp() / 2.0)) { HasSpawned = 0; @@ -136,7 +133,6 @@ public class SummonMinions extends AbstractNpcAI } } break; - } case 22257: case 22258: case 22259: @@ -147,7 +143,6 @@ public class SummonMinions extends AbstractNpcAI case 22264: case 22265: case 22266: - { if (isSummon) { attacker = attacker.getSummon().getOwner(); @@ -193,9 +188,7 @@ public class SummonMinions extends AbstractNpcAI } } break; - } default: // mobs without special conditions - { HasSpawned = 0; if (npcId != 20767) { @@ -216,7 +209,6 @@ public class SummonMinions extends AbstractNpcAI } } break; - } } } return super.onAttack(npc, attacker, damage, isSummon); @@ -238,6 +230,6 @@ public class SummonMinions extends AbstractNpcAI public static void main(String[] args) { - new SummonMinions(SummonMinions.class.getSimpleName(), "ai"); + new SummonMinions(); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/VarkaKetra.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/VarkaKetra.java index 30461d6702584a7b8d847280d66e72e84b2f6a3b..4e2a6c2f30f8e503d09c77568ead27e53942cbcc 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/VarkaKetra.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/VarkaKetra.java @@ -138,9 +138,9 @@ public class VarkaKetra extends AbstractNpcAI Q00616_MagicalPowerOfFirePart2.class.getSimpleName() }; - private VarkaKetra(String name, String descr) + private VarkaKetra() { - super(name, descr); + super(VarkaKetra.class.getSimpleName(), "ai/group_template"); addAggroRangeEnterId(KETRA); addAggroRangeEnterId(VARKA); addKillId(KETRA); @@ -216,6 +216,6 @@ public class VarkaKetra extends AbstractNpcAI public static void main(String[] args) { - new VarkaKetra(VarkaKetra.class.getSimpleName(), "ai/group_template"); + new VarkaKetra(); } } \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/WarriorFishingBlock.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/WarriorFishingBlock.java index a78994149665cb5abbf4aceb2f447b4d47b462aa..da09d9f19566e2687247b93853167ffced33c81c 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/WarriorFishingBlock.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/WarriorFishingBlock.java @@ -69,9 +69,9 @@ public class WarriorFishingBlock extends AbstractNpcAI private static final int CHANCE_TO_SHOUT_ON_ATTACK = 33; private static final int DESPAWN_TIME = 50000; // 50 seconds - public WarriorFishingBlock(String name, String descr) + public WarriorFishingBlock() { - super(name, descr); + super(WarriorFishingBlock.class.getSimpleName(), "ai/group_template"); addAttackId(MONSTERS); addKillId(MONSTERS); addSpawnId(MONSTERS); @@ -133,6 +133,6 @@ public class WarriorFishingBlock extends AbstractNpcAI public static void main(String[] args) { - new WarriorFishingBlock(WarriorFishingBlock.class.getSimpleName(), "ai/group_template"); + new WarriorFishingBlock(); } }