/* * Copyright (C) 2004-2015 L2J DataPack * * This file is part of L2J DataPack. * * L2J DataPack is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * L2J DataPack is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ package gracia.AI.NPC.Nemo; import gracia.AI.Maguen; import ai.npc.AbstractNpcAI; import com.l2jserver.gameserver.ai.CtrlIntention; import com.l2jserver.gameserver.instancemanager.QuestManager; import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.quest.Quest; import com.l2jserver.gameserver.network.NpcStringId; /** * Nemo AI. * @author St3eT */ public final class Nemo extends AbstractNpcAI { // NPC private static final int NEMO = 32735; // Nemo private static final int MAGUEN = 18839; // Wild Maguen // Items private static final int COLLECTOR = 15487; // Maguen Plasma Collector // Misc private static final int MAXIMUM_MAGUEN = 18; // Maximum maguens in one time public Nemo() { super(Nemo.class.getSimpleName(), "gracia/AI/NPC"); addStartNpc(NEMO); addFirstTalkId(NEMO); addTalkId(NEMO); } @Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { String htmltext = null; switch (event) { case "32735-01.html": { htmltext = event; break; } case "giveCollector": { if (hasQuestItems(player, COLLECTOR)) { htmltext = "32735-03.html"; } else if (!player.isInventoryUnder90(false)) { htmltext = "32735-04.html"; } else { htmltext = "32735-02.html"; giveItems(player, COLLECTOR, 1); } break; } case "summonMaguen": { if ((player.getVariables().getInt("TEST_MAGUEN", 0) == 0) && (npc.getScriptValue() < MAXIMUM_MAGUEN)) { final L2Npc maguen = addSpawn(MAGUEN, npc.getLocation(), true, 60000, true); maguen.getVariables().set("SUMMON_PLAYER", player); maguen.getVariables().set("SPAWNED_NPC", npc); maguen.getVariables().set("TEST_MAGUEN", 1); player.getVariables().set("TEST_MAGUEN", 1); maguen.setTitle(player.getName()); maguen.setIsRunning(true); maguen.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, player); maguen.broadcastStatusUpdate(); showOnScreenMsg(player, NpcStringId.MAGUEN_APPEARANCE, 2, 4000); maguenAi().startQuestTimer("DIST_CHECK_TIMER", 1000, maguen, player); npc.setScriptValue(npc.getScriptValue() + 1); htmltext = "32735-05.html"; } else { htmltext = "32735-06.html"; } break; } case "DECREASE_COUNT": { final L2Npc spawnedNpc = npc.getVariables().getObject("SPAWNED_NPC", L2Npc.class); if ((spawnedNpc != null) && (spawnedNpc.getScriptValue() > 0)) { player.getVariables().remove("TEST_MAGUEN"); spawnedNpc.setScriptValue(spawnedNpc.getScriptValue() - 1); } } } return htmltext; } private Quest maguenAi() { return QuestManager.getInstance().getQuest(Maguen.class.getSimpleName()); } }