diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/L2AttackableAIScript.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/L2AttackableAIScript.java index efa10a0e2dadd32088f6e719da465e802bef3bde..1cd9ab59af6667bec4d21c0b46b19b71d00b045c 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/L2AttackableAIScript.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/L2AttackableAIScript.java @@ -22,6 +22,8 @@ import static com.l2jserver.gameserver.ai.CtrlIntention.AI_INTENTION_ATTACK; import java.util.List; +import ai.npc.AbstractNpcAI; + import com.l2jserver.Config; import com.l2jserver.gameserver.ai.CtrlEvent; import com.l2jserver.gameserver.ai.CtrlIntention; @@ -35,7 +37,6 @@ import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.actor.instance.L2RiftInvaderInstance; import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate; -import com.l2jserver.gameserver.model.quest.Quest; import com.l2jserver.gameserver.model.skills.Skill; import com.l2jserver.gameserver.util.Util; @@ -43,11 +44,33 @@ import com.l2jserver.gameserver.util.Util; * Overarching Superclass for all mob AI. * @author Fulminus */ -public final class L2AttackableAIScript extends Quest +public final class L2AttackableAIScript extends AbstractNpcAI { - private L2AttackableAIScript(int questId, String name, String descr) + private L2AttackableAIScript() { - super(questId, name, descr); + super(L2AttackableAIScript.class.getSimpleName(), "ai"); + final List<L2NpcTemplate> templates = NpcData.getInstance().getTemplates(npc -> (npc.getLevel() >= 1) && (npc.getLevel() < 100)); + + // register all mobs here... + for (L2NpcTemplate t : templates) + { + try + { + if (L2Attackable.class.isAssignableFrom(Class.forName("com.l2jserver.gameserver.model.actor.instance." + t.getType() + "Instance"))) + { + addAttackId(t.getId()); + addKillId(t.getId()); + addSkillSeeId(t.getId()); + addSpawnId(t.getId()); + addFactionCallId(t.getId()); + addAggroRangeEnterId(t.getId()); + } + } + catch (ClassNotFoundException ex) + { + _log.info("Class not found " + t.getType() + "Instance"); + } + } } @Override @@ -194,30 +217,6 @@ public final class L2AttackableAIScript extends Quest public static void main(String[] args) { - L2AttackableAIScript ai = new L2AttackableAIScript(-1, L2AttackableAIScript.class.getSimpleName(), "ai"); - // register all mobs here... - for (int level = 1; level < 100; level++) - { - final List<L2NpcTemplate> templates = NpcData.getInstance().getAllOfLevel(level); - for (L2NpcTemplate t : templates) - { - try - { - if (L2Attackable.class.isAssignableFrom(Class.forName("com.l2jserver.gameserver.model.actor.instance." + t.getType() + "Instance"))) - { - ai.addAttackId(t.getId()); - ai.addKillId(t.getId()); - ai.addSkillSeeId(t.getId()); - ai.addSpawnId(t.getId()); - ai.addFactionCallId(t.getId()); - ai.addAggroRangeEnterId(t.getId()); - } - } - catch (ClassNotFoundException ex) - { - _log.info("Class not found " + t.getType() + "Instance"); - } - } - } + new L2AttackableAIScript(); } } \ No newline at end of file