326 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			326 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| /*
 | |
|  * 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 <http://www.gnu.org/licenses/>.
 | |
|  */
 | |
| package custom.NpcLocationInfo;
 | |
| 
 | |
| import com.l2jserver.gameserver.datatables.SpawnTable;
 | |
| import com.l2jserver.gameserver.model.L2Spawn;
 | |
| 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.util.Util;
 | |
| 
 | |
| /**
 | |
|  * Npc Location Info AI.
 | |
|  * @author Nyaran
 | |
|  */
 | |
| public final class NpcLocationInfo extends Quest
 | |
| {
 | |
| 	private static final int[] NPC =
 | |
| 	{
 | |
| 		30598,
 | |
| 		30599,
 | |
| 		30600,
 | |
| 		30601,
 | |
| 		30602,
 | |
| 		32135
 | |
| 	};
 | |
| 	
 | |
| 	private static final int[] NPCRADAR =
 | |
| 	{
 | |
| 		// Talking Island
 | |
| 		30006, // Gatekeeper Roxxy
 | |
| 		30039, // Captain Gilbert
 | |
| 		30040, // Guard Leon
 | |
| 		30041, // Guard Arnold
 | |
| 		30042, // Guard Abellos
 | |
| 		30043, // Guard Johnstone
 | |
| 		30044, // Guard Chiperan
 | |
| 		30045, // Guard Kenyos
 | |
| 		30046, // Guard Hanks
 | |
| 		30283, // Blacksmith Altran
 | |
| 		30003, // Trader Silvia
 | |
| 		30004, // Trader Katerina
 | |
| 		30001, // Trader Lector
 | |
| 		30002, // Trader Jackson
 | |
| 		30031, // High Priest Biotin
 | |
| 		30033, // Magister Baulro
 | |
| 		30035, // Magister Harrys
 | |
| 		30032, // Priest Yohanes
 | |
| 		30036, // Priest Petron
 | |
| 		30026, // Grand Master Bitz
 | |
| 		30027, // Master Gwinter
 | |
| 		30029, // Master Minia
 | |
| 		30028, // Master Pintage
 | |
| 		30054, // Warehouse Keeper Rant
 | |
| 		30055, // Warehouse Keeper Rolfe
 | |
| 		30005, // Warehouse Keeper Wilford
 | |
| 		30048, // Darin
 | |
| 		30312, // Lighthouse Keeper Rockswell
 | |
| 		30368, // Lilith
 | |
| 		30049, // Bonnie
 | |
| 		30047, // Wharf Manager Firon
 | |
| 		30497, // Edmond
 | |
| 		30050, // Elias
 | |
| 		30311, // Sir Collin Windawood
 | |
| 		30051, // Cristel
 | |
| 		
 | |
| 		// Dark Elf Vill
 | |
| 		30134, // Gatekeeper Jasmine
 | |
| 		30224, // Sentry Knight Rayla
 | |
| 		30348, // Sentry Nelsya
 | |
| 		30355, // Sentry Roselyn
 | |
| 		30347, // Sentry Marion
 | |
| 		30432, // Sentry Irene
 | |
| 		30356, // Sentry Altima
 | |
| 		30349, // Sentry Jenna
 | |
| 		30346, // Sentry Kayleen
 | |
| 		30433, // Sentry Kathaway
 | |
| 		30357, // Sentry Kristin
 | |
| 		30431, // Sentry Eriel
 | |
| 		30430, // Sentry Trionell
 | |
| 		30307, // Blacksmith Karrod
 | |
| 		30138, // Trader Minaless
 | |
| 		30137, // Trader Vollodos
 | |
| 		30135, // Trader Iria
 | |
| 		30136, // Trader Payne
 | |
| 		30143, // Master Trudy
 | |
| 		30360, // Master Harant
 | |
| 		30145, // Master Vlasty
 | |
| 		30135, // Magister Harne
 | |
| 		30144, // Tetrarch Vellior
 | |
| 		30358, // Tetrarch Thifiell
 | |
| 		30359, // Tetrarch Kaitar
 | |
| 		30141, // Tetrarch Talloth
 | |
| 		30139, // Warehouse Keeper Dorankus
 | |
| 		30140, // Warehouse Keeper Erviante
 | |
| 		30350, // Warehouse Freightman Carlon
 | |
| 		30421, // Varika
 | |
| 		30419, // Arkenia
 | |
| 		30130, // Abyssal Celebrant Undrias
 | |
| 		30351, // Astaron
 | |
| 		30353, // Jughead
 | |
| 		30354, // Jewel
 | |
| 		
 | |
| 		// Elven Village
 | |
| 		30146, // Gatekeeper Mirabel
 | |
| 		30285, // Sentinel Gartrandell
 | |
| 		30284, // Sentinel Knight Alberius
 | |
| 		30221, // Sentinel Rayen
 | |
| 		30217, // Sentinel Berros
 | |
| 		30219, // Sentinel Veltress
 | |
| 		30220, // Sentinel Starden
 | |
| 		30218, // Sentinel Kendell
 | |
| 		30216, // Sentinel Wheeler
 | |
| 		30363, // Blacksmith Aios
 | |
| 		30149, // Trader Creamees
 | |
| 		30150, // Trader Herbiel
 | |
| 		30148, // Trader Ariel
 | |
| 		30147, // Trader Unoren
 | |
| 		30155, // Master Ellenia
 | |
| 		30156, // Master Cobendell
 | |
| 		30157, // Magister Greenis
 | |
| 		30158, // Magister Esrandell
 | |
| 		30154, // Hierarch Asterios
 | |
| 		30153, // Warehouse Keeper Markius
 | |
| 		30152, // Warehouse Keeper Julia
 | |
| 		30151, // Warehouse Freightman Chad
 | |
| 		30423, // Northwind
 | |
| 		30414, // Rosella
 | |
| 		31853, // Treant Bremec
 | |
| 		30223, // Arujien
 | |
| 		30362, // Andellia
 | |
| 		30222, // Alshupes
 | |
| 		30371, // Thalia
 | |
| 		31852, // Pixy Murika
 | |
| 		
 | |
| 		// Dwarven Villa
 | |
| 		30540, // Gatekeeper Wirphy
 | |
| 		30541, // Protector Paion
 | |
| 		30542, // Defender Runant
 | |
| 		30543, // Defender Ethan
 | |
| 		30544, // Defender Cromwell
 | |
| 		30545, // Defender Proton
 | |
| 		30546, // Defender Dinkey
 | |
| 		30547, // Defender Tardyon
 | |
| 		30548, // Defender Nathan
 | |
| 		30531, // Iron Gate's Lockirin
 | |
| 		30532, // Golden Wheel's Spiron
 | |
| 		30533, // Silver Scale's Balanki
 | |
| 		30534, // Bronze Key's Keef
 | |
| 		30535, // Filaur of the Gray Pillar
 | |
| 		30536, // Black Anvil's Arin
 | |
| 		30525, // Head Blacksmith Bronk
 | |
| 		30526, // Blacksmith Brunon
 | |
| 		30527, // Blacksmith Silvera
 | |
| 		30518, // Trader Garita
 | |
| 		30519, // Trader Mion
 | |
| 		30516, // Trader Reep
 | |
| 		30517, // Trader Shari
 | |
| 		30520, // Warehouse Chief Reed
 | |
| 		30521, // Warehouse Freightman Murdoc
 | |
| 		30522, // Warehouse Keeper Airy
 | |
| 		30523, // Collector Gouph
 | |
| 		30524, // Collector Pippi
 | |
| 		30537, // Daichir, Priest of the Eart
 | |
| 		30650, // Priest of the Earth Gerald
 | |
| 		30538, // Priest of the Earth Zimenf
 | |
| 		30539, // Priestess of the Earth Chichirin
 | |
| 		30671, // Captain Croto
 | |
| 		30651, // Wanderer Dorf
 | |
| 		30550, // Gauri Twinklerock
 | |
| 		30554, // Miner Bolter
 | |
| 		30553, // Maryse Redbonnet
 | |
| 		
 | |
| 		// Orc Village
 | |
| 		30576, // Gatekeeper Tamil
 | |
| 		30577, // Praetorian Rukain
 | |
| 		30578, // Centurion Nakusin
 | |
| 		30579, // Centurion Tamai
 | |
| 		30580, // Centurion Parugon
 | |
| 		30581, // Centurion Orinak
 | |
| 		30582, // Centurion Tiku
 | |
| 		30583, // Centurion Petukai
 | |
| 		30584, // Centurion Vapook
 | |
| 		30569, // Prefect Brukurse
 | |
| 		30570, // Prefect Karukia
 | |
| 		30571, // Seer Tanapi
 | |
| 		30572, // Seer Livina
 | |
| 		30564, // Blacksmith Sumari
 | |
| 		30560, // Trader Uska
 | |
| 		30561, // Trader Papuma
 | |
| 		30558, // Trader Jakal
 | |
| 		30559, // Trader Kunai
 | |
| 		30562, // Warehouse Keeper Grookin
 | |
| 		30563, // Warehouse Keeper Imantu
 | |
| 		30565, // Flame Lord Kakai
 | |
| 		30566, // Atuba Chief Varkees
 | |
| 		30567, // Neruga Chief Tantus
 | |
| 		30568, // Urutu Chief Hatos
 | |
| 		30585, // Tataru Zu Hestui
 | |
| 		30587, // Gantaki Zu Urutu
 | |
| 		
 | |
| 		// Kamael Villag
 | |
| 		32163, // Gatekeeper Ragara
 | |
| 		32173, // Zerstorer Marcela
 | |
| 		32174, // Marksman Maddy
 | |
| 		32175, // Marksman Bixon
 | |
| 		32176, // Marksman Ambra
 | |
| 		32177, // Marksman Syzar
 | |
| 		32178, // Guard Karba
 | |
| 		32179, // Marksman Putin
 | |
| 		32180, // Marksman Kato
 | |
| 		32164, // Weapons Trader Erinu
 | |
| 		32165, // Armor Trader Zacon
 | |
| 		32168, // Magic Trader Janis
 | |
| 		32166, // Accessory Trader Treavi
 | |
| 		32167, // Consumption Goods Trader Neazel
 | |
| 		32141, // Master Nerga
 | |
| 		32142, // Master Tenor
 | |
| 		32143, // Master Belkis
 | |
| 		32144, // Master Sonya
 | |
| 		32145, // Grand Master Maynard
 | |
| 		32146, // Grand Master Valpor
 | |
| 		32139, // Hierarch Casca
 | |
| 		32140, // Hierarch Zenya
 | |
| 		32138, // Hierarch Kekropus
 | |
| 		32171, // Warehouse Chief Hoffa
 | |
| 		32170, // Warehouse Keeper Benis
 | |
| 		32172, // Warehouse Freightman Saylem
 | |
| 		32153, // High Priest Prana
 | |
| 		32154, // Grand Master Aldenia
 | |
| 		32155, // Priest Nabot
 | |
| 		32156, // Master Talbot
 | |
| 		32150, // Hight Prefect Took
 | |
| 		32151, // Prefect Harz
 | |
| 		32152, // Seer Henri
 | |
| 		32147, // Grand Master Libian
 | |
| 		32148, // Master Sydnet
 | |
| 		32149, // Magister Enea
 | |
| 		32160, // Grand Magister Devon
 | |
| 		32162, // Magister Martika
 | |
| 		32161, // Master Black
 | |
| 		32158, // Warehouse Chief Fisler
 | |
| 		32157, // Head Blacksmith Moka
 | |
| 		32159, // Blacksmith Kincaid
 | |
| 		32169, // Spellbook Trader Mifren
 | |
| 	};
 | |
| 	
 | |
| 	private NpcLocationInfo()
 | |
| 	{
 | |
| 		super(-1, NpcLocationInfo.class.getSimpleName(), "custom");
 | |
| 		addStartNpc(NPC);
 | |
| 		addTalkId(NPC);
 | |
| 	}
 | |
| 	
 | |
| 	@Override
 | |
| 	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
 | |
| 	{
 | |
| 		String htmltext = event;
 | |
| 		QuestState st = getQuestState(player, false);
 | |
| 		
 | |
| 		if (st == null)
 | |
| 		{
 | |
| 			return htmltext;
 | |
| 		}
 | |
| 		
 | |
| 		if (Util.isDigit(event))
 | |
| 		{
 | |
| 			htmltext = null;
 | |
| 			int npcId = Integer.parseInt(event);
 | |
| 			
 | |
| 			if (Util.contains(NPCRADAR, npcId))
 | |
| 			{
 | |
| 				int x = 0, y = 0, z = 0;
 | |
| 				final L2Spawn spawn = SpawnTable.getInstance().getFirstSpawn(npcId);
 | |
| 				if (spawn != null)
 | |
| 				{
 | |
| 					x = spawn.getX();
 | |
| 					y = spawn.getY();
 | |
| 					z = spawn.getZ();
 | |
| 				}
 | |
| 				st.addRadar(x, y, z);
 | |
| 				htmltext = "MoveToLoc.htm";
 | |
| 			}
 | |
| 			st.exitQuest(true);
 | |
| 		}
 | |
| 		return htmltext;
 | |
| 	}
 | |
| 	
 | |
| 	@Override
 | |
| 	public String onTalk(L2Npc npc, L2PcInstance player)
 | |
| 	{
 | |
| 		String htmltext = getNoQuestMsg(player);
 | |
| 		int npcId = npc.getId();
 | |
| 		getQuestState(player, true);
 | |
| 		
 | |
| 		if (Util.contains(NPC, npcId))
 | |
| 		{
 | |
| 			htmltext = String.valueOf(npcId) + ".htm";
 | |
| 		}
 | |
| 		
 | |
| 		return htmltext;
 | |
| 	}
 | |
| 	
 | |
| 	public static void main(String args[])
 | |
| 	{
 | |
| 		new NpcLocationInfo();
 | |
| 	}
 | |
| }
 | 
