Forgotten Truth
- ID
- 106
- Название
- Forgotten Truth
- start_npcs_json
- [30358]
- npc_ids_json
- [30133,30358]
- constants_json
- {"THIFIELL":30358,"KARTIA":30133,"ONYX_TALISMAN_1":984,"ONYX_TALISMAN_2":985,"ANCIENT_SCROLL":986,"ANCIENT_CLAY_TABLET":987,"KARTIA_TRANSLATION":988,"SPIRITSHOT_NO_GRADE":2509,"SOULSHOT_NO_GRADE":1835,"ELDRITCH_DAGGER":989,"SPIRITSHOT_FOR_BEGINNERS":5790,"SOULSHOT_FOR_BEGINNERS":5789,"ECHO_BATTLE":4412,"ECHO_LOVE":4413,"ECHO_SOLITUDE":4414,"ECHO_FEAST":4415,"ECHO_CELEBRATION":4416,"LESSER_HEALING_POTION":1060}
- Статус разбора
- metadata_only; dynamic Java conditions/rewards retained in source; unresolved starts: []
- Источник
- game/data/scripts/quests/Q00106_ForgottenTruth/Q00106_ForgottenTruth.java
NPC квеста
Условия уровней: выражения из Java
else if (player.getLevel() < 10)
Выдача предметов, адены и опыта: выражения из Java
giveItems(player, ONYX_TALISMAN_1, 1); giveItems(player, ELDRITCH_DAGGER, 1); giveItems(player, LESSER_HEALING_POTION, 100); giveItems(player, SPIRITSHOT_NO_GRADE, 500); giveItems(player, SOULSHOT_NO_GRADE, 1000); giveItems(player, SPIRITSHOT_FOR_BEGINNERS, 3000); giveItems(player, SOULSHOT_FOR_BEGINNERS, 7000); giveItems(player, ECHO_BATTLE, 10); giveItems(player, ECHO_LOVE, 10); giveItems(player, ECHO_SOLITUDE, 10); giveItems(player, ECHO_FEAST, 10); giveItems(player, ECHO_CELEBRATION, 10); giveItems(player, ONYX_TALISMAN_2, 1); giveItems(player, KARTIA_TRANSLATION, 1); giveItems(killer, ANCIENT_SCROLL, 1); giveItems(killer, ANCIENT_CLAY_TABLET, 1);
Квесты содержат динамические условия Java. Выражения выдачи включают промежуточные предметы, варианты и случайные награды; это не гарантированная награда. Константы приведены выше. Полные условия — в исходнике.
Тексты квеста
[30133-01.htm] Abyssal Celebrant Kartia: How may I help you? Tetrarch Thifiell sent you? Oh, no ... I haven't even sent word yet, and he has already sent someone ... Well, I guess it will be best to just let you know the truth. Actually, four days ago, the exact day the Tetrarch asked me to do this translation work, in fact, I sent an apprentice to fetch the original Revelation from the Tetrarch. But while the apprentice was returning to the temple, he was attacked by Orcs and robbed of the documents. Before he was killed by the Orcs, the apprentice cast a spell on himself and came to me in the form of a mangled zombie. Just as the magic gave out, he informed me of the situation with his last dying breath. Based upon the intelligence that the apprentice gave me, I have released spirits everywhere for the last two days, and finally found where the lost scrolls are. The Orcs of the Tumran tribe looted the documents. They are currently camped out in a region south of the Altar of Rites. To get to the altar, you must follow the path southwest of the village. Pass the School of Dark Arts and go further southwest. It's a considerable distance from here. You must track down those Orcs and recover the lost scrolls! You know very well what would happen if Tetrarch Thifiell were angered! Neither you nor I can be safe on the day he discovers that the scrolls have been stolen. Those scrolls must be brought back at once! Hurry! You must recover both the ancient clay tablet and the characters recorded on the sheepskin scroll.
[30133-02.htm] Abyssal Celebrant Kartia: You haven't left yet?! I'm telling you one more time, the Orcs of the Tumran tribe that took the Revelation are currently camped near the Altar of Rites. To get to the altar, you must follow the path southwest of the village. Pass the School of Dark Arts and go further southwest. It's a considerable distance from here. The day that the Tetrarch hears about the loss of the revelation is the day both our lives are in peril! I'm sure you know by now the fiery temper of the Tetrarch. I beg you to hurry!
[30133-03.htm] Abyssal Celebrant Kartia: Oh, you have recovered the scroll and the tablet. Thank you so much. Now I can start the translation. This sheepskin scroll is Kaysha's Revelation. And this Clay Tablet was recorded by Mystics in the Elmoreden age. It lists the kingdom's characters alongside the characters used by the giants, and is a key in translating the revelation. It's surprising that Tetrarch Thifiell even got his hands on this. All right! The translation is complete. Please take it. Go and deliver it to Tetrarch Thifiell at once. I must go now and create a copy of the original revelation.
[30133-04.htm] Abyssal Celebrant Kartia: Go immediately and deliver my translations to Tetrarch Thifiell! Thifiell is very impatient and hates waiting.
[30358-00.htm] Tetrarch Thifiell: Curious foreign traveler, I have no favor to ask of you. As a rule, our race of darkness prefers not to receive the aid of others. (This quest may only be undertaken by a Dark Elven character.)
[30358-02.htm] Tetrarch Thifiell: Recently a portion of the School of Dark Arts collapsed and I was able to obtain an ancient document. Because it was written in the long lost language of the ancient giants, I have asked Abyssal Celebrant Kartia, who is well learned in the ancient languages, to translate it for me. When Kartia notifies me that he has completed the translation, I'd like you to bring that document to me. I think he will contact me soon, so come back again later. (This quest may only be undertaken by a character of level 10 and above.)
[30358-03.htm] Tetrarch Thifiell: Recently, when a portion of the School of Dark Arts collapsed, a hidden room was revealed, and a portion of the ancient scroll called Kaysha's Revelation was discovered. Have you ever heard of this scroll? Fifty years ago, by the western shores of the Human kingdom Elmore, a number of very old sheepskin scrolls were discovered. According to Honorius, the Human scholar who discovered them, the scrolls were part of a religious text written in the early age of the giants. Surprisingly, the writings of the scroll contained truths previously unknown to the world or else tainted by falsehoods, the legend of Gran Kain and Shilen. But unfortunately, Honorius was imprisoned by the foolish Humans who worship Einhasad before he could translate the scrolls, and the documents he had been translating were all taken from him. A ridiculous religious court hearing was held, and the judgment was even more unbelievable -- "The accused is hereby convicted of forgery of a heretical text in secret correspondence with the followers of the dark arts, and his blasphemy is unforgivable." In the end, this poor scholar was accused of being a pagan and was put to death by those religious leaders who feared the truth. Torched at the stake. The Humans say that our Dark Elven brothers are ruthless, but we can never be a match for the coldhearted cruelty of the Humans. Ask about the whereabouts of the revelations
[30358-04.htm] Tetrarch Thifiell: It is believed that at Honorius' execution by burning at the stake, the documents he had been translating were all burned, but there were also rumors that a portion of them had been stolen. The sheepskin scrolls were never found, and thus the rumors were believed to be false, but actually, they were hidden in the School of Dark Arts. That they found their way to me can only be considered Shilen's will. It's a shame that I cannot read the Revelations properly, because I do not know the language of the giants of ere. So I have asked Abyssal Celebrant Kartia, who is well learned in the ancient languages, to translate them for me. It has been four days, and I think that they should have been finished by now. I'd like you to go to the temple of Shilen, seek Abyssal Celebrant Kartia, and bring back the translated revelations to me. I'm sure it will be a learning experience for you also. Say you will take the task
[30358-05.htm] Tetrarch Thifiell: Go and seek Abyssal Celebrant Kartia in the Temple of Shilen. This black Onyx necklace was promised to Kartia in return for the translation, so go deliver it to him, and return to me with the translated revelations. Take care that no one hears about Kaysha's Revelations. There are many dangerous characters who would stop at nothing to get their hands on that ancient scroll. For your safety and for mine, it would be best to take care of this matter quietly. Do you understand what I'm saying?
[30358-06.htm] Tetrarch Thifiell: What are you doing, you haven't gone to the temple yet?! Go immediately to the Temple of Shilen and seek Kartia. Give him the onyx talisman and return to me with the translated revelations.
[30358-07.htm] Tetrarch Thifiell: Well done! I was just getting anxious that you were not returning ... So, is this the Kaysha's Revelation that Kartia has translated? This ancient writing contains the dark inheritance passed on to our race, the truths that have been until now hidden by the Elves of Light and the Humans. Would you like to hear? In the beginning Gran Kain of the darkness and Einhasad of the light decreed us their children the lords of all creatures and had us rule all the earth ... Of the four children that were produced from the union of these two gods, the goddess born with the destiny to rule water was Shilen ... Later Einhasad borrowed the power of water from Shilen and created new life. The Treants, race of the trees. Shilen looked after this newly born race as a mother takes care of her child ... The Elves of light seek the origin of our race from the goddess Eva, but before she became the goddess of water, the title belonged to Shilen. Now the queen of death, Shilen is the true mother of our race. If you seek the path of darkness, keep this story deeply engraved in your mind. If you have studied the basics of the dark arts, you would know that the gods are the origin of the magic power that makes up this universe; thus the deeper the understanding of the gods, the greater the power of the one walking the path of darkness becomes. In honor of your new revelation, I will give you this weapon. It is a sharp blade that contains the magic power of the spirits. It will be useful in the future. But take care not to rely too heavily on such small tools. Never forget that the true power of magic lies within the Mystic.
Исходник условий и наград (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.Q00106_ForgottenTruth;
import org.l2jmobius.gameserver.config.PlayerConfig;
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.QuestSound;
import org.l2jmobius.gameserver.mechanics.script.QuestState;
import org.l2jmobius.gameserver.mechanics.script.State;
import org.l2jmobius.gameserver.mechanics.variables.PlayerVariables;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.util.LocationUtil;
public class Q00106_ForgottenTruth extends Quest
{
// NPCs
private static final int THIFIELL = 30358;
private static final int KARTIA = 30133;
// Items
private static final int ONYX_TALISMAN_1 = 984;
private static final int ONYX_TALISMAN_2 = 985;
private static final int ANCIENT_SCROLL = 986;
private static final int ANCIENT_CLAY_TABLET = 987;
private static final int KARTIA_TRANSLATION = 988;
// Rewards
private static final int SPIRITSHOT_NO_GRADE = 2509;
private static final int SOULSHOT_NO_GRADE = 1835;
private static final int ELDRITCH_DAGGER = 989;
private static final int SPIRITSHOT_FOR_BEGINNERS = 5790;
private static final int SOULSHOT_FOR_BEGINNERS = 5789;
private static final int ECHO_BATTLE = 4412;
private static final int ECHO_LOVE = 4413;
private static final int ECHO_SOLITUDE = 4414;
private static final int ECHO_FEAST = 4415;
private static final int ECHO_CELEBRATION = 4416;
private static final int LESSER_HEALING_POTION = 1060;
public Q00106_ForgottenTruth()
{
super(106, "Forgotten Truth");
registerQuestItems(ONYX_TALISMAN_1, ONYX_TALISMAN_2, ANCIENT_SCROLL, ANCIENT_CLAY_TABLET, KARTIA_TRANSLATION);
addStartNpc(THIFIELL);
addTalkId(THIFIELL, KARTIA);
addKillId(27070); // Tumran Orc Brigand
}
@Override
public String onEvent(String event, Npc npc, Player player)
{
final QuestState st = player.getQuestState(getName());
final String htmltext = event;
if (st == null)
{
return htmltext;
}
if (event.equals("30358-05.htm"))
{
st.startQuest();
giveItems(player, ONYX_TALISMAN_1, 1);
}
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.DARK_ELF)
{
htmltext = "30358-00.htm";
}
else if (player.getLevel() < 10)
{
htmltext = "30358-02.htm";
}
else
{
htmltext = "30358-03.htm";
}
break;
}
case State.STARTED:
{
final int cond = st.getCond();
switch (npc.getId())
{
case THIFIELL:
{
if (cond == 1)
{
htmltext = "30358-06.htm";
}
else if (cond == 2)
{
htmltext = "30358-06.htm";
}
else if (cond == 3)
{
htmltext = "30358-06.htm";
}
else if (cond == 4)
{
htmltext = "30358-07.htm";
takeItems(player, KARTIA_TRANSLATION, 1);
giveItems(player, ELDRITCH_DAGGER, 1);
giveItems(player, LESSER_HEALING_POTION, 100);
if (player.isMageClass())
{
giveItems(player, SPIRITSHOT_NO_GRADE, 500);
}
else
{
giveItems(player, SOULSHOT_NO_GRADE, 1000);
}
// Give newbie reward if player is eligible
if (player.isNewbie())
{
int newPlayerRewardsReceived = player.getVariables().getInt(PlayerVariables.NEWBIE_SHOTS_RECEIVED, 0);
if (newPlayerRewardsReceived < 2)
{
st.showQuestionMark(26);
if (player.isMageClass())
{
st.playTutorialVoice("tutorial_voice_027");
giveItems(player, SPIRITSHOT_FOR_BEGINNERS, 3000);
player.getVariables().set(PlayerVariables.NEWBIE_SHOTS_RECEIVED, ++newPlayerRewardsReceived);
}
else
{
st.playTutorialVoice("tutorial_voice_026");
giveItems(player, SOULSHOT_FOR_BEGINNERS, 7000);
player.getVariables().set(PlayerVariables.NEWBIE_SHOTS_RECEIVED, ++newPlayerRewardsReceived);
}
}
}
giveItems(player, ECHO_BATTLE, 10);
giveItems(player, ECHO_LOVE, 10);
giveItems(player, ECHO_SOLITUDE, 10);
giveItems(player, ECHO_FEAST, 10);
giveItems(player, ECHO_CELEBRATION, 10);
player.broadcastPacket(new SocialAction(player.getObjectId(), 3));
st.exitQuest(false, true);
}
break;
}
case KARTIA:
{
if (cond == 1)
{
htmltext = "30133-01.htm";
st.setCond(2, true);
takeItems(player, ONYX_TALISMAN_1, 1);
giveItems(player, ONYX_TALISMAN_2, 1);
}
else if (cond == 2)
{
htmltext = "30133-02.htm";
}
else if (cond == 3)
{
htmltext = "30133-03.htm";
st.setCond(4, true);
takeItems(player, ONYX_TALISMAN_2, 1);
takeItems(player, ANCIENT_SCROLL, 1);
takeItems(player, ANCIENT_CLAY_TABLET, 1);
giveItems(player, KARTIA_TRANSLATION, 1);
}
else if (cond == 4)
{
htmltext = "30133-04.htm";
}
break;
}
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
@Override
public void onKill(Npc npc, Player killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(2) && LocationUtil.checkIfInRange(PlayerConfig.ALT_PARTY_RANGE, npc, killer, true) && (getRandom(100) < 20) && hasQuestItems(killer, ONYX_TALISMAN_2))
{
if (!hasQuestItems(killer, ANCIENT_SCROLL))
{
giveItems(killer, ANCIENT_SCROLL, 1);
playSound(killer, QuestSound.ITEMSOUND_QUEST_MIDDLE);
}
else if (!hasQuestItems(killer, ANCIENT_CLAY_TABLET))
{
qs.setCond(3, true);
giveItems(killer, ANCIENT_CLAY_TABLET, 1);
}
}
}
}