326 lines
8.7 KiB
Java
326 lines
8.7 KiB
Java
/*
|
|
* 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 <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();
|
|
}
|
|
}
|