/* * Copyright (C) 2004-2014 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 events.CharacterBirthday; 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.model.quest.QuestState; import com.l2jserver.gameserver.model.quest.State; import com.l2jserver.gameserver.util.Util; /** * Character Birthday event AI.
* Updated to H5 by Nyaran. * @author Gnacik */ public final class CharacterBirthday extends Quest { private static final int ALEGRIA = 32600; private static int SPAWNS = 0; private final static int[] GK = { 30006, 30059, 30080, 30134, 30146, 30177, 30233, 30256, 30320, 30540, 30576, 30836, 30848, 30878, 30899, 31275, 31320, 31964, 32163 }; private CharacterBirthday() { super(-1, CharacterBirthday.class.getSimpleName(), "events"); addStartNpc(ALEGRIA); addStartNpc(GK); addTalkId(ALEGRIA); addTalkId(GK); } @Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { String htmltext = event; QuestState st = player.getQuestState(getName()); if (event.equalsIgnoreCase("despawn_npc")) { npc.doDie(player); SPAWNS--; htmltext = null; } else if (event.equalsIgnoreCase("change")) { // Change Hat if (st.hasQuestItems(10250)) { st.takeItems(10250, 1); // Adventurer Hat (Event) st.giveItems(21594, 1); // Birthday Hat htmltext = null; // FIXME: Probably has html // Despawn npc npc.doDie(player); SPAWNS--; } else { htmltext = "32600-nohat.htm"; } } return htmltext; } @Override public String onTalk(L2Npc npc, L2PcInstance player) { if (SPAWNS >= 3) { return "busy.htm"; } QuestState st = player.getQuestState(getName()); if (st == null) { st = newQuestState(player); } if (!Util.checkIfInRange(10, npc, player, true)) { L2Npc spawned = st.addSpawn(32600, player.getX() + 10, player.getY() + 10, player.getZ() + 10, 0, false, 0, true); st.setState(State.STARTED); st.startQuestTimer("despawn_npc", 180000, spawned); SPAWNS++; } else { return "tooclose.htm"; } return null; } public static void main(String[] args) { new CharacterBirthday(); } }