Step into the Future
- ID
- 6
- Название
- Step into the Future
- start_npcs_json
- [30006]
- npc_ids_json
- [30006,30033,30311]
- constants_json
- {"ROXXY":30006,"BAULRO":30033,"SIR_COLLIN":30311,"BAULRO_LETTER":7571,"MARK_TRAVELER":7570,"SOE_GIRAN":7559}
- Статус разбора
- metadata_only; dynamic Java conditions/rewards retained in source; unresolved starts: []
- Источник
- game/data/scripts/quests/Q00006_StepIntoTheFuture/Q00006_StepIntoTheFuture.java
NPC квеста
Условия уровней: выражения из Java
if ((player.getRace() != Race.HUMAN) || (player.getLevel() < 3))
Выдача предметов, адены и опыта: выражения из Java
giveItems(player, BAULRO_LETTER, 1); giveItems(player, MARK_TRAVELER, 1); rewardItems(player, SOE_GIRAN, 1);
Квесты содержат динамические условия Java. Выражения выдачи включают промежуточные предметы, варианты и случайные награды; это не гарантированная награда. Константы приведены выше. Полные условия — в исходнике.
Тексты квеста
[30006-01.htm] Gatekeeper Roxxy: I'm very lucky! My job allows me to travel all around the continent. From the metropolis of Aden to the bustling streets of Giran, not to mention the magnificnet Heine, each place is wonderful in its own way! I've met many different kinds of people in my travels. Naturally, I returned to my home on Talking Island; it was the most comfortable place to me. I hope to travel again someday. I especially miss the night life in Giran! (This quest may only be undertaken by a Human character of level 3 and above.)
[30006-02.htm] Gatekeeper Roxxy: I'm very lucky! My job allows me to travel all around the continent. From the metropolis of Aden to the bustling streets of Giran, not to mention the magnificnet Heine, each place is wonderful in its own way! I've met many different kinds of people in my travels. Naturally, I returned to my home on Talking Island; it was the most comfortable place to me. I hope to travel again someday. I especially miss the night life in Giran! "I want to go to Giran!"
[30006-03.htm] Gatekeeper Roxxy: Oh, I hope I didnt give you the wrong idea! Traveling to Giran from here is very, very expensive! In fact, I'd say it's completely impossible for now. Hmm, well... You seem like a nice person... so I'll help you! The Einhasad Temple beside me is also known as the Twin Temple. It's called that because twin brothers work there. Speak with Magister Baulro there. He's always happy to meet students from Talking Island! In addition, be sure to be very polite and he may help you. ...And don't tell anyone what I said!
[30006-04.htm] Gatekeeper Roxxy: Enter the Temple of Einhasad here and speak with Magister Baulro. He might help you.
[30006-05.htm] Gatekeeper Roxxy: You're back! How did it go? Did Magister Baulro help you? "Magister Baulro recommended that Sir Windawood support my journey!"
[30006-06.htm] Gatekeeper Roxxy: Oh, that's wonderful! Magister Baulo and Sir Windawood are very kind to do that for you. Now I can give you this Scroll of Escape. With it, you can use the gate of time and space to travel to Giran. Take heed, it only works once! Use it wisely! I've placed it in your Quest Item Window for safekeeping. Don't forget! It works the same as any other Scroll of Escape. Also take this Traveler's Mark that Sir Windawood asked for. If you ever want to come back to Talking Island after visiting Giran, show this mark to Trader Galladucci at his shop and he'll help you. He's very strange, so be patient with him. May your journeys be productive!
[30033-01.htm] Magister Baulro: I'm very lucky! My job allows me to travel all around the continent. You're not here to learn magic, are you? You seem worried, my child! What's wrong? Is there anything I can do for you? "I want to travel and visit big cities like Giran in order to expand my knowledge, but I can't afford it."
[30033-02.htm] Magister Baulro: Go see if Sir Collin Windawood will sponsor your trip to Giran. He can be found near the Obelisk of Victory.
[30033-03.htm] Magister Baulro: What are you still doing wandering about the temple! Go see if Sir Collin Windawood will sponsor your trip to Giran. He can be found near the Obelisk of Victory.
[30033-04.htm] Magister Baulro: I see you talked with Sir Collin Windawood! He's a great man, isn't he ? You should now speak back to Gatekeeper Roxxy. Good luck, my friend!
[30311-01.htm] Collin Windawood: Hard to find someone who's always on the move, huh? What brings you here? "Baulro told me to pay you a visit and give you this."
[30311-02.htm] Collin Windawood: Want to go to Giran, huh? Baulro sent you? I told him the story a while back. You may be fresh out of school, but worldly experiences will help shape your future. Giran is a busy place and unexpected things can happen, so stay calm and focused! Meet Gatekeeper Roxxy and tell her I sent you. Good luck!
[30311-03.htm] Collin Windawood: So where is Baulro's letter? Did you miss something? Hurry up and bring me the letter!
[30311-03a.htm] Sir Collin Windawood: Go to Gatekeeper Roxxy and tell her I sent you. She'll help you. Giran is more hectic than you're used to, so be careful. Good luck!
Исходник условий и наград (Java)
/*
* Copyright (c) 2013 L2jMobius
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
* IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package quests.Q00006_StepIntoTheFuture;
import org.l2jmobius.gameserver.entity.actor.Npc;
import org.l2jmobius.gameserver.entity.actor.Player;
import org.l2jmobius.gameserver.entity.actor.enums.creature.Race;
import org.l2jmobius.gameserver.mechanics.script.Quest;
import org.l2jmobius.gameserver.mechanics.script.QuestState;
import org.l2jmobius.gameserver.mechanics.script.State;
public class Q00006_StepIntoTheFuture extends Quest
{
// NPCs
private static final int ROXXY = 30006;
private static final int BAULRO = 30033;
private static final int SIR_COLLIN = 30311;
// Items
private static final int BAULRO_LETTER = 7571;
// Rewards
private static final int MARK_TRAVELER = 7570;
private static final int SOE_GIRAN = 7559;
public Q00006_StepIntoTheFuture()
{
super(6, "Step into the Future");
registerQuestItems(BAULRO_LETTER);
addStartNpc(ROXXY);
addTalkId(ROXXY, BAULRO, SIR_COLLIN);
}
@Override
public String onEvent(String event, Npc npc, Player player)
{
String htmltext = event;
final QuestState st = getQuestState(player, false);
if (st == null)
{
return htmltext;
}
switch (event)
{
case "30006-03.htm":
{
st.startQuest();
break;
}
case "30033-02.htm":
{
st.setCond(2, true);
giveItems(player, BAULRO_LETTER, 1);
break;
}
case "30311-02.htm":
{
if (hasQuestItems(player, BAULRO_LETTER))
{
st.setCond(3, true);
takeItems(player, BAULRO_LETTER, 1);
}
else
{
htmltext = "30311-03.htm";
}
break;
}
case "30006-06.htm":
{
giveItems(player, MARK_TRAVELER, 1);
rewardItems(player, SOE_GIRAN, 1);
st.exitQuest(false, true);
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, Player player)
{
String htmltext = getNoQuestMsg(player);
final QuestState st = getQuestState(player, true);
switch (st.getState())
{
case State.CREATED:
{
if ((player.getRace() != Race.HUMAN) || (player.getLevel() < 3))
{
htmltext = "30006-01.htm";
}
else
{
htmltext = "30006-02.htm";
}
break;
}
case State.STARTED:
{
final int cond = st.getCond();
switch (npc.getId())
{
case ROXXY:
{
if ((cond == 1) || (cond == 2))
{
htmltext = "30006-04.htm";
}
else if (cond == 3)
{
htmltext = "30006-05.htm";
}
break;
}
case BAULRO:
{
if (cond == 1)
{
htmltext = "30033-01.htm";
}
else if (cond == 2)
{
htmltext = "30033-03.htm";
}
else
{
htmltext = "30033-04.htm";
}
break;
}
case SIR_COLLIN:
{
if (cond == 2)
{
htmltext = "30311-01.htm";
}
else if (cond == 3)
{
htmltext = "30311-03a.htm";
}
break;
}
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
}