Quest Kekropus' Letter: The Origins of a Rumor (10439).

Contributed by Stayway.
This commit is contained in:
MobiusDev
2016-08-20 22:30:37 +00:00
parent 7727189f80
commit 3065226e54
19 changed files with 305 additions and 6 deletions

View File

@@ -98,7 +98,6 @@
10435 Chasing Keltron 10435 Chasing Keltron
10437 The Seal of Punishment: Plains of the Lizardmen 10437 The Seal of Punishment: Plains of the Lizardmen
10438 Chasing Loygen 10438 Chasing Loygen
10439 Kekropus' Letter: The Origins of a Rumor (9/9)
10440 The Seal of Punishment: The Fields 10440 The Seal of Punishment: The Fields
10441 Chasing Meccadan 10441 Chasing Meccadan
10446 Hit and Run 10446 Hit and Run

View File

@@ -0,0 +1,4 @@
<html><body>Captain Gosta:<br>
Good day, adventurer. What do you need?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10439_KekropusLetterTheOriginsOfARumor 30916-02.html">"Do you remember Kekropus?"</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Captain Gosta:<br>
You came just in time. Under the Innadril Lord Lionel Hunter's orders, I've been tracking the Embryo, and found that they seem to have located another seal.<br>
It's a seal called Punishment. It seems that they are desperate to find a way to undo the seal...but the thing is, the key lies outside our dimension. <br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10439_KekropusLetterTheOriginsOfARumor 30916-03.html">"I'm listening."</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Captain Gosta:<br>
The Mucrokians in the Field of Silence have been acting very strange lately, and that's got me worried. Could you go check it out? You can go meet<font color="LEVEL">Dr. Helvetica</font> in the <font color="LEVEL">Field of Silence</font> or <font color="LEVEL">Priestess Athenia</font> in the <font color="LEVEL">Field of Whispers</font>. Who do you want to meet?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10439_KekropusLetterTheOriginsOfARumor 30916-04.html">"I'd like to go meet Dr. Helvetica."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10439_KekropusLetterTheOriginsOfARumor 30916-06.html">"I'd like to go meet Priestess Athenia."</Button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><head><body>Captain Gosta:<br>
Dr. Helvetica is in the <font color="LEVEL">Field of Silence</font>. You can go meet with him now. Be careful.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Captain Gosta:<br>
Dr. Helvetica is in the <font color="LEVEL">Field of Silence</font>. You can go meet with him now. Be careful.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Captain Gosta:<br>
Priestess Athenia is in the <font color="LEVEL">Field of Whispers</font>. You can go meet her now. Be careful.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Captain Gosta:<br>
Priestess Athenia is in the <font color="LEVEL">Field of Whispers</font>. You can go meet her now. Be careful.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Dr. Helvetica:<br>
What is it?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10439_KekropusLetterTheOriginsOfARumor 32641-02.html">"I've received a mission related to the Seal of Punishment."</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Dr. Helvetica:<br>
You can count on me to give you lots of useful stuff, not just stones. Hang tight, and I'll have a mission for you.<br><br>
<font color="LEVEL">- Note: You can develop yourself through quests and hunting at the hunting grounds of the Field of Whispers and the Field of Silence. You have finished all tasks related to Kekropus' Letter. Please work on the quest The Minstrel's Song at Lv. 85.</font>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Priestess Athenia:<br>
What brings you here?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10439_KekropusLetterTheOriginsOfARumor 32642-02.html">"I've come to assist with the Seal of Punishment."</Button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Priestess Athenia:<br>
The stones and supplies have been given to you. Please wait a minute while I prep a mission for you to undertake.
</body></html>

View File

@@ -0,0 +1,195 @@
/*
* This file is part of the L2J Mobius project.
*
* This program 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.
*
* This program 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 quests.Q10439_KekropusLetterTheOriginsOfARumor;
import com.l2jmobius.gameserver.enums.CategoryType;
import com.l2jmobius.gameserver.model.Location;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import quests.LetterQuest;
/**
* Kekropus' Letter: The Origins of a Rumor (10439)
* @author Stayway
*/
public final class Q10439_KekropusLetterTheOriginsOfARumor extends LetterQuest
{
// NPCs
private static final int GOSTA = 30916;
private static final int HELVETICA = 32641;
private static final int ATHENIA = 32643;
private static final int INVISIBLE_NPC = 19543;
// Items
private static final int SOE_HEINE = 37112; // Scroll of Escape: Heine
private static final int SOE_FIELD_OF_SILENCE = 37039; // Scroll of Escape: Field of Silence
private static final int SOE_FIELD_OF_WISPERS = 37040; // Scroll of Escape: Field of Wispers
private static final int EWS = 959; // Scroll: Enchant Weapon (S-grade)
private static final int EAS = 960; // Scroll: Enchant Armor (S-grade)
// Location
private static final Location TELEPORT_LOC = new Location(108457, 221649, -3598);
// Misc
private static final int MIN_LEVEL = 81;
private static final int MAX_LEVEL = 84;
public Q10439_KekropusLetterTheOriginsOfARumor()
{
super(10439);
addTalkId(GOSTA, HELVETICA, ATHENIA);
addSeeCreatureId(INVISIBLE_NPC);
setIsErtheiaQuest(false);
setLevel(MIN_LEVEL, MAX_LEVEL);
setStartQuestSound("Npcdialog1.kekrops_quest_9");
setStartLocation(SOE_HEINE, TELEPORT_LOC);
registerQuestItems(SOE_HEINE, SOE_FIELD_OF_SILENCE, SOE_FIELD_OF_WISPERS);
addCondInCategory(CategoryType.MAGE_CLOACK, "nocond.html");
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "30916-02.html":
case "30916-03.html":
{
htmltext = event;
break;
}
case "30916-04.html":
{
if (qs.isCond(1))
{
giveItems(player, SOE_FIELD_OF_SILENCE, 1);
qs.setCond(2, true);
htmltext = event;
}
break;
}
case "30916-06.html":
{
if (qs.isCond(1))
{
giveItems(player, SOE_FIELD_OF_WISPERS, 1);
qs.setCond(3, true);
htmltext = event;
}
break;
}
case "32641-02.html":
{
if (qs.isCond(2))
{
qs.exitQuest(false, true);
giveItems(player, EWS, 1);
giveItems(player, EAS, 10);
giveStoryQuestReward(player, 235);
if ((player.getLevel() >= MIN_LEVEL) && (player.getLevel() <= MAX_LEVEL))
{
addExpAndSp(player, 1_412_040, 338);
}
htmltext = event;
}
break;
}
case "32642-02.html":
{
if (qs.isCond(3))
{
qs.exitQuest(false, true);
giveItems(player, EWS, 1);
giveItems(player, EAS, 10);
giveStoryQuestReward(player, 235);
if ((player.getLevel() >= MIN_LEVEL) && (player.getLevel() <= MAX_LEVEL))
{
addExpAndSp(player, 1_412_040, 338);
}
htmltext = event;
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
String htmltext = getNoQuestMsg(player);
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return htmltext;
}
if (qs.isStarted())
{
giveItems(player, SOE_HEINE, 1);
if ((npc.getId() == GOSTA) && qs.isCond(1))
{
htmltext = "30916-01.html";
}
else if (qs.isCond(2))
{
htmltext = npc.getId() == GOSTA ? "30916-05.html" : "32641-01.html";
}
else if (qs.isCond(3))
{
htmltext = npc.getId() == GOSTA ? "30917-07.html" : "32642-01.html";
}
}
return htmltext;
}
@Override
public String onSeeCreature(L2Npc npc, L2Character creature, boolean isSummon)
{
if (creature.isPlayer())
{
final L2PcInstance player = creature.getActingPlayer();
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(2))
{
showOnScreenMsg(player, NpcStringId.FIELD_OF_SILENCE_AND_FIELD_OR_WHISPERS_ARE_GOOD_HUNTING_ZONES_FOR_LV_81_OR_ABOVE, ExShowScreenMessage.TOP_CENTER, 6000);
}
else if ((qs != null) && qs.isCond(3))
{
showOnScreenMsg(player, NpcStringId.FIELD_OF_SILENCE_AND_FIELD_OR_WHISPERS_ARE_GOOD_HUNTING_ZONES_FOR_LV_81_OR_ABOVE, ExShowScreenMessage.TOP_CENTER, 6000);
}
}
return super.onSeeCreature(npc, creature, isSummon);
}
@Override
public boolean canShowTutorialMark(L2PcInstance player)
{
return player.isInCategory(CategoryType.MAGE_CLOACK);
}
}

View File

@@ -0,0 +1,4 @@
<html><body>Captain Gosta:<br>
I don't think it's time to act quite yet.<br>
(This quest may only be undertaken by a Mage's who have 3rd class transfered.)
</body></html>

View File

@@ -0,0 +1,6 @@
<html><head><title>Kekropus' Letter</title></head><body>Kekropus' Letter:<br>
Information has turned up regarding <font color="LEVEL">"Punishment"</font>, Shilen's 6th seal. Go to <font color="LEVEL">Captain Gosta</font> in the <font color="LEVEL">Heine</font> for details.<br>
(A <font color="LEVEL">Scroll of Escape</font> is enclosed. If you want to go now, use it to travel immediately.)<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h %teleport%">"I'll go right away with this scroll."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h tutorial_close">Close</Button>
</body></html>

View File

@@ -291,6 +291,7 @@ import quests.Q10427_AssassinationOfTheKetraOrcChief.Q10427_AssassinationOfTheKe
import quests.Q10430_KekropusLetterTrackingTheEvil.Q10430_KekropusLetterTrackingTheEvil; import quests.Q10430_KekropusLetterTrackingTheEvil.Q10430_KekropusLetterTrackingTheEvil;
import quests.Q10433_KekropusLetterRegardingASeal.Q10433_KekropusLetterRegardingASeal; import quests.Q10433_KekropusLetterRegardingASeal.Q10433_KekropusLetterRegardingASeal;
import quests.Q10436_KekropusLetterTheSealOfPunishment.Q10436_KekropusLetterTheSealOfPunishment; import quests.Q10436_KekropusLetterTheSealOfPunishment.Q10436_KekropusLetterTheSealOfPunishment;
import quests.Q10439_KekropusLetterTheOriginsOfARumor.Q10439_KekropusLetterTheOriginsOfARumor;
import quests.Q10442_TheAnnihilatedPlains1.Q10442_TheAnnihilatedPlains1; import quests.Q10442_TheAnnihilatedPlains1.Q10442_TheAnnihilatedPlains1;
import quests.Q10443_TheAnnihilatedPlains2.Q10443_TheAnnihilatedPlains2; import quests.Q10443_TheAnnihilatedPlains2.Q10443_TheAnnihilatedPlains2;
import quests.Q10444_TheOriginOfMonsters.Q10444_TheOriginOfMonsters; import quests.Q10444_TheOriginOfMonsters.Q10444_TheOriginOfMonsters;
@@ -665,6 +666,7 @@ public class QuestMasterHandler
Q10430_KekropusLetterTrackingTheEvil.class, Q10430_KekropusLetterTrackingTheEvil.class,
Q10433_KekropusLetterRegardingASeal.class, Q10433_KekropusLetterRegardingASeal.class,
Q10436_KekropusLetterTheSealOfPunishment.class, Q10436_KekropusLetterTheSealOfPunishment.class,
Q10439_KekropusLetterTheOriginsOfARumor.class,
Q10442_TheAnnihilatedPlains1.class, Q10442_TheAnnihilatedPlains1.class,
Q10443_TheAnnihilatedPlains2.class, Q10443_TheAnnihilatedPlains2.class,
Q10444_TheOriginOfMonsters.class, Q10444_TheOriginOfMonsters.class,

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
<spawn name="FieldOfSilence">
<group>
<npc id="19543" x="86932" y="162376" z="-3573" heading="8191" respawnTime="60sec" /> <!-- Invisible NPC -->
</group>
</spawn>
</list>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
<spawn name="FieldOfWispers">
<group>
<npc id="19543" x="81407" y="226688" z="-3600" heading="27064" respawnTime="60sec" /> <!-- Invisible NPC -->
</group>
</spawn>
</list>

View File

@@ -278,7 +278,7 @@
<skill id="9928" toLevel="1" name="Scroll of Escape: Heine"> <skill id="9928" toLevel="1" name="Scroll of Escape: Heine">
<!-- Return to Heine. --> <!-- Return to Heine. -->
<icon>icon.skill0000</icon> <icon>icon.skill0000</icon>
<hitTime>1500</hitTime> <hitTime>500</hitTime>
<isMagic>2</isMagic> <!-- Static Skill --> <isMagic>2</isMagic> <!-- Static Skill -->
<itemConsumeId>37112</itemConsumeId> <itemConsumeId>37112</itemConsumeId>
<itemConsumeCount>1</itemConsumeCount> <itemConsumeCount>1</itemConsumeCount>
@@ -1098,26 +1098,62 @@
<hitTime>1500</hitTime> <hitTime>1500</hitTime>
</skill> </skill>
<skill id="9980" toLevel="1" name="Scroll of Escape: Field of Silence"> <skill id="9980" toLevel="1" name="Scroll of Escape: Field of Silence">
<!-- AUTO GENERATED SKILL -->
<!-- Return to the Field of Silence. --> <!-- Return to the Field of Silence. -->
<icon>icon.skill0000</icon> <icon>icon.skill0000</icon>
<hitTime>500</hitTime>
<isMagic>2</isMagic> <!-- Static Skill -->
<itemConsumeId>37039</itemConsumeId> <itemConsumeId>37039</itemConsumeId>
<itemConsumeCount>1</itemConsumeCount> <itemConsumeCount>1</itemConsumeCount>
<magicLvl>1</magicLvl>
<operateType>A1</operateType> <operateType>A1</operateType>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<hitTime>1500</hitTime> <cond msgId="113" addName="1">
<and>
<player canEscape="true" />
<not>
<player insideZoneId="10501, 10502, 10503, 10504, 10505, 10506, 10507, 10508" />
</not>
</and>
</cond>
<effects>
<effect name="Teleport">
<x>86922</x>
<y>162508</y>
<z>-3579</z>
</effect>
</effects>
</skill> </skill>
<skill id="9981" toLevel="1" name="Scroll of Escape: Field of Whispers"> <skill id="9981" toLevel="1" name="Scroll of Escape: Field of Whispers">
<!-- AUTO GENERATED SKILL -->
<!-- Return to the Field of Whispers. --> <!-- Return to the Field of Whispers. -->
<icon>icon.skill0000</icon> <icon>icon.skill0000</icon>
<hitTime>500</hitTime>
<itemConsumeId>37040</itemConsumeId> <itemConsumeId>37040</itemConsumeId>
<itemConsumeCount>1</itemConsumeCount> <itemConsumeCount>1</itemConsumeCount>
<operateType>A1</operateType> <operateType>A1</operateType>
<targetType>SELF</targetType> <targetType>SELF</targetType>
<affectScope>SINGLE</affectScope> <affectScope>SINGLE</affectScope>
<hitTime>1500</hitTime> <magicLvl>1</magicLvl>
<operateType>A1</operateType>
<rideState>NONE;STRIDER;WYVERN;WOLF</rideState>
<targetType>SELF</targetType>
<affectScope>SINGLE</affectScope>
<cond msgId="113" addName="1">
<and>
<player canEscape="true" />
<not>
<player insideZoneId="10501, 10502, 10503, 10504, 10505, 10506, 10507, 10508" />
</not>
</and>
</cond>
<effects>
<effect name="Teleport">
<x>81307</x>
<y>226534</y>
<z>-3588</z>
</effect>
</effects>
</skill> </skill>
<skill id="9982" toLevel="1" name="Elixir: Divine Protection"> <skill id="9982" toLevel="1" name="Elixir: Divine Protection">
<!-- AUTO GENERATED SKILL --> <!-- AUTO GENERATED SKILL -->