|
@@ -18,12 +18,13 @@ import java.util.Map;
|
|
|
|
|
|
import javolution.util.FastMap;
|
|
|
|
|
|
+import com.l2jserver.gameserver.model.Location;
|
|
|
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.network.SystemMessageId;
|
|
|
-import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
|
|
|
+import com.l2jserver.gameserver.util.Util;
|
|
|
|
|
|
/**
|
|
|
* @author Plim
|
|
@@ -32,72 +33,69 @@ import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
|
|
|
public class NewbieTravelToken extends Quest
|
|
|
{
|
|
|
private static final int TOKEN = 8542;
|
|
|
-
|
|
|
- private static final Map<Integer, int[]> DATA = new FastMap<Integer, int[]>();
|
|
|
+ //NPC Id - Teleport Location
|
|
|
+ private static final Map<Integer, Location> DATA = new FastMap<Integer, Location>();
|
|
|
|
|
|
@Override
|
|
|
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
|
|
{
|
|
|
QuestState st = player.getQuestState(getName());
|
|
|
if (st == null)
|
|
|
+ {
|
|
|
st = newQuestState(player);
|
|
|
-
|
|
|
- try
|
|
|
+ }
|
|
|
+ if (Util.isDigit(event))
|
|
|
{
|
|
|
- if (DATA.keySet().contains(new Integer(event)))
|
|
|
+ final int npcId = Integer.parseInt(event);
|
|
|
+ if (DATA.keySet().contains(npcId))
|
|
|
{
|
|
|
if (st.hasQuestItems(TOKEN))
|
|
|
{
|
|
|
- st.takeItems(TOKEN,1);
|
|
|
- st.getPlayer().teleToLocation(DATA.get(event)[0], DATA.get(event)[1], DATA.get(event)[2]);
|
|
|
+ st.takeItems(TOKEN, 1);
|
|
|
+ st.getPlayer().teleToLocation(DATA.get(npcId), false);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
st.exitQuest(true);
|
|
|
- player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.INCORRECT_ITEM_COUNT));
|
|
|
- return "";
|
|
|
+ player.sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT);
|
|
|
}
|
|
|
+ return super.onAdvEvent(event, npc, player);
|
|
|
}
|
|
|
}
|
|
|
- catch(NumberFormatException e)
|
|
|
- {
|
|
|
- //not a number
|
|
|
- }
|
|
|
-
|
|
|
return event;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
public String onTalk(L2Npc npc, L2PcInstance player)
|
|
|
{
|
|
|
- String htmltext = "";
|
|
|
- QuestState st = player.getQuestState(getName());
|
|
|
-
|
|
|
- if (st == null)
|
|
|
- return null;
|
|
|
-
|
|
|
- if (player.getLevel() >= 20)
|
|
|
+ String htmltext = getNoQuestMsg(player);
|
|
|
+ final QuestState st = player.getQuestState(getName());
|
|
|
+ if (st != null)
|
|
|
{
|
|
|
- htmltext="cant-travel.htm";
|
|
|
- st.exitQuest(true);
|
|
|
+ if (player.getLevel() >= 20)
|
|
|
+ {
|
|
|
+ htmltext = "cant-travel.htm";
|
|
|
+ st.exitQuest(true);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ htmltext = npc.getNpcId() + ".htm";
|
|
|
+ }
|
|
|
}
|
|
|
- else
|
|
|
- htmltext = String.valueOf(npc.getNpcId())+".htm";
|
|
|
-
|
|
|
return htmltext;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
public NewbieTravelToken(int questId, String name, String descr)
|
|
|
{
|
|
|
super(questId, name, descr);
|
|
|
|
|
|
// Initialize Map
|
|
|
- DATA.put(30600, new int[]{12160, 16554,-4583}); //DE
|
|
|
- DATA.put(30601, new int[]{115594,-177993, -912}); //DW
|
|
|
- DATA.put(30599, new int[]{45470, 48328,-3059}); //EV
|
|
|
- DATA.put(30602, new int[]{-45067,-113563, -199}); //OV
|
|
|
- DATA.put(30598, new int[]{-84053, 243343,-3729}); //TI
|
|
|
- DATA.put(32135, new int[]{-119712, 44519,368}); //SI
|
|
|
+ DATA.put(30600, new Location(12160, 16554, -4583)); //DE
|
|
|
+ DATA.put(30601, new Location(115594, -177993, -912)); //DW
|
|
|
+ DATA.put(30599, new Location(45470, 48328, -3059)); //EV
|
|
|
+ DATA.put(30602, new Location(-45067, -113563, -199)); //OV
|
|
|
+ DATA.put(30598, new Location(-84053, 243343, -3729)); //TI
|
|
|
+ DATA.put(32135, new Location(-119712, 44519, 368)); //SI
|
|
|
|
|
|
for (int npcId : DATA.keySet())
|
|
|
{
|
|
@@ -108,6 +106,6 @@ public class NewbieTravelToken extends Quest
|
|
|
|
|
|
public static void main(String[] args)
|
|
|
{
|
|
|
- new NewbieTravelToken(-1, NewbieTravelToken.class.getSimpleName(), "teleports");
|
|
|
+ new NewbieTravelToken(-1, "NewbieTravelToken", "teleports");
|
|
|
}
|
|
|
}
|