Whisper Of Dreams Part1 (374).

Contributed by Stayway.
This commit is contained in:
MobiusDev
2017-08-04 11:35:34 +00:00
parent 4479cbbacc
commit 4fa2c90c41
16 changed files with 342 additions and 5 deletions

View File

@@ -0,0 +1,4 @@
<html><body>Priest Vanutu:<br>
May the glory of Pa'agrio shine upon the brave!<br>
Go to the Lair of Antharas and collect <font color="LEVEL">360 cave beast teeth and 360 Death Wave Lights</font>. You mustn't attempt this mission alone.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Priest Vanutu:<br>
Your inner voice is not yet clear to you. Come back when you have it.<br>
(This quest may only be undertaken by a character of level 56 and above.)
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Priest Vanutu:<br>
You haven't brought enough! You must bring me <font color="LEVEL">360 cave beast teeth and 360 Death Wave Lights</font>. I don't like to repeat myself! Go! Now!
</body></html>

View File

@@ -0,0 +1,8 @@
<html><body>Priest Vanutu:<br>
Oh, the sacred flames of Pa'agrio!<br>
Now I can perform the ritual! Choose your reward!<br>
<a action="bypass -h Quest Q00374_WhisperOfDreams_Part1 reward1">1 Scroll Part: Enchant Armor</a><br>
<a action="bypass -h Quest Q00374_WhisperOfDreams_Part1 reward2">2 Refined Scroll Part: Enchant Armor<br>
<a action="bypass -h Quest Q00374_WhisperOfDreams_Part1 reward3">1 Scroll: Enchant Armor (B-grade)<br>
<a action="bypass -h Quest Q00374_WhisperOfDreams_Part1 reward4">1 Improved Scroll: Enchant Armor (B-grade)<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Priest Vanutu:<br>
Now I can perform the ritual. But, bear in mind, it's almost impossible to foretell the chaotic future with just one ritual. Why don't you stay and help me?<br>
<a action="bypass -h Quest Q00374_WhisperOfDreams_Part1 30938-06.html">"I'll stay and help."</a><br>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Priest Vanutu:<br>
May the power of Pa'agrio be with you...<br>
Now, you need to kill Cave Beast and Death Wave monsters and get the Sealed Mysterious Stone.<br>
Galman waiting for you!
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Priest Vanutu:<br>
You still here? Go inside Anthar's Lair and kill Cave Beast and Death Wave monsters in order bring to me the Sealed Mysterious Stone.<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Priest Vanutu:<br>
Good work!<br>
You must meet with the dwarf named <font color="LEVEL">Galman</font>. You'll find him in Dragon Valley.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Priest Vanutus:<br>
Last night I dreamed of my ancestors. They spoke of a great turmoil approaching this world. I must perform a ritual to see what lies ahead. Will you help me to obtain the materials I need?<br>
<a action="bypass -h Quest Q00374_WhisperOfDreams_Part1 30938-01.htm">"I will help."</a>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Trader Galman:<br>
It's done!<br>
After you touch it a few times and your hand starts to feel warm, that means it's done. At least that's what the old orc said. Take this and don't ever come back, you hear?
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Trader Galman:<br>
Well well well! It seems like the old orc has some vinegar left in him yet. My father told me about that old geezer bothering him when I was born, saying that I had the power of Pa'agrio or something... Now he's back. Just give me the stone and I'll do this quickly. Don't bother me again.<br>
<a action="bypass -h Quest Q00374_WhisperOfDreams_Part1 31044-01.html">Give him the Mysterious Stone.</a>
</body></html>

View File

@@ -0,0 +1,282 @@
/*
* 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.Q00374_WhisperOfDreams_Part1;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.holders.ItemHolder;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
/**
* Whisper Of Dreams Part1 (374)
* @author Stayway
*/
public class Q00374_WhisperOfDreams_Part1 extends Quest
{
// NPCs
private static final int VANUTU = 30938;
private static final int GALMAN = 31044;
private static final int CAVE_BEAST = 20620;
private static final int DEATH_WAVE = 20621;
// Items
private static final ItemHolder CAVE_BEAST_TOOTH = new ItemHolder(5884, 360);
private static final ItemHolder DEATH_WAVE_LIGHT = new ItemHolder(5885, 360);
private static final ItemHolder SEALED_MYSTERIOUS_STONE = new ItemHolder(5886, 1);
private static final int MYSTERIOUS_STONE = 5887;
// Rewards
private static final int SCROLL_PART_EA = 49475;
private static final int REFINED_SCROLL_PART_EA = 49478;
private static final int ENCHANT_ARMOR_B = 948;
private static final int IMPROVED_ENCHANT_ARMOR_B = 29743;
// Misc
private static final int MIN_LEVEL = 56;
private static final int MAX_LEVEL = 66;
public Q00374_WhisperOfDreams_Part1()
{
super(374);
addStartNpc(VANUTU);
addTalkId(VANUTU, GALMAN);
addKillId(CAVE_BEAST, DEATH_WAVE);
addCondLevel(MIN_LEVEL, MAX_LEVEL, "30938-02.html");
registerQuestItems(SEALED_MYSTERIOUS_STONE.getId());
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
String htmltext = null;
if (qs != null)
{
switch (event)
{
case "30938-01.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "30938-06.html":
{
qs.setCond(3);
htmltext = event;
break;
}
case "reward1":
{
if (hasAllItems(player, true, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH))
{
if (qs.isCond(2))
{
giveItems(player, SCROLL_PART_EA, 1);
takeAllItems(player, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH);
giveAdena(player, 9000, true);
htmltext = "30938-05.html";
}
else if (qs.isCond(4))
{
giveItems(player, SCROLL_PART_EA, 1);
takeAllItems(player, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH);
giveAdena(player, 9000, true);
htmltext = "30938-08.html";
}
}
break;
}
case "reward2":
{
if (hasAllItems(player, true, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH))
{
if (qs.isCond(2))
{
giveItems(player, REFINED_SCROLL_PART_EA, 1);
takeAllItems(player, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH);
giveAdena(player, 9000, true);
htmltext = "30938-05.html";
}
else if (qs.isCond(4))
{
giveItems(player, REFINED_SCROLL_PART_EA, 1);
takeAllItems(player, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH);
giveAdena(player, 9000, true);
htmltext = "30938-08.html";
}
}
break;
}
case "reward3":
{
if (hasAllItems(player, true, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH))
{
if (qs.isCond(2))
{
giveItems(player, ENCHANT_ARMOR_B, 1);
takeAllItems(player, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH);
giveAdena(player, 9000, true);
htmltext = "30938-05.html";
}
else if (qs.isCond(4))
{
giveItems(player, ENCHANT_ARMOR_B, 1);
takeAllItems(player, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH);
giveAdena(player, 9000, true);
htmltext = "30938-08.html";
}
}
break;
}
case "reward4":
{
if (hasAllItems(player, true, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH))
{
if (qs.isCond(2))
{
giveItems(player, IMPROVED_ENCHANT_ARMOR_B, 1);
takeAllItems(player, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH);
giveAdena(player, 9000, true);
htmltext = "30938-05.html";
}
else if (qs.isCond(4))
{
giveItems(player, IMPROVED_ENCHANT_ARMOR_B, 1);
takeAllItems(player, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH);
giveAdena(player, 9000, true);
htmltext = "30938-08.html";
}
}
break;
}
case "31044-01.html":
{
if (qs.isCond(4))
{
giveItems(player, MYSTERIOUS_STONE, 1);
takeAllItems(player, SEALED_MYSTERIOUS_STONE);
qs.exitQuest(true, true);
htmltext = event;
}
break;
}
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
String htmltext = getNoQuestMsg(player);
final QuestState qs = getQuestState(player, true);
switch (npc.getId())
{
case VANUTU:
{
if (qs.isCompleted())
{
htmltext = getAlreadyCompletedMsg(player);
}
else if (qs.isCreated())
{
htmltext = "30938.htm";
}
else if (qs.isStarted())
{
switch (qs.getCond())
{
case 1:
{
htmltext = "30938-03.html";
break;
}
case 2:
{
htmltext = "30938-04.html";
break;
}
case 3:
{
htmltext = "30938-07.html";
break;
}
case 4:
{
htmltext = "30938-08.html";
break;
}
}
}
break;
}
case GALMAN:
{
if (qs.isCond(4))
{
htmltext = "31044.html";
}
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc);
if (qs != null)
{
switch (npc.getId())
{
case CAVE_BEAST:
{
if (qs.getCond() < 4)
{
giveItemRandomly(qs.getPlayer(), npc, CAVE_BEAST_TOOTH.getId(), 1, CAVE_BEAST_TOOTH.getCount(), 0.9, true);
if (qs.isCond(3))
{
giveItemRandomly(qs.getPlayer(), npc, SEALED_MYSTERIOUS_STONE.getId(), 1, SEALED_MYSTERIOUS_STONE.getCount(), 0.2, true);
}
}
break;
}
case DEATH_WAVE:
{
if (qs.getCond() < 4)
{
giveItemRandomly(qs.getPlayer(), npc, DEATH_WAVE_LIGHT.getId(), 1, DEATH_WAVE_LIGHT.getCount(), 0.9, true);
if (qs.isCond(3))
{
giveItemRandomly(qs.getPlayer(), npc, SEALED_MYSTERIOUS_STONE.getId(), 1, SEALED_MYSTERIOUS_STONE.getCount(), 0.2, true);
}
}
break;
}
}
if (qs.isCond(1) && (hasAllItems(qs.getPlayer(), true, DEATH_WAVE_LIGHT, CAVE_BEAST_TOOTH)))
{
qs.setCond(2);
}
if (qs.isCond(3) && (hasAllItems(qs.getPlayer(), true, SEALED_MYSTERIOUS_STONE)))
{
qs.setCond(4);
}
}
return super.onKill(npc, killer, isSummon);
}
}

View File

@@ -158,6 +158,7 @@ import quests.Q00358_IllegitimateChildOfTheGoddess.Q00358_IllegitimateChildOfThe
import quests.Q00360_PlunderTheirSupplies.Q00360_PlunderTheirSupplies;
import quests.Q00369_CollectorOfJewels.Q00369_CollectorOfJewels;
import quests.Q00370_AnElderSowsSeeds.Q00370_AnElderSowsSeeds;
import quests.Q00374_WhisperOfDreams_Part1.Q00374_WhisperOfDreams_Part1;
import quests.Q00401_PathOfTheWarrior.Q00401_PathOfTheWarrior;
import quests.Q00402_PathOfTheHumanKnight.Q00402_PathOfTheHumanKnight;
import quests.Q00403_PathOfTheRogue.Q00403_PathOfTheRogue;
@@ -317,6 +318,7 @@ public class QuestMasterHandler
Q00329_CuriosityOfADwarf.class,
Q00331_ArrowOfVengeance.class,
Q00333_HuntOfTheBlackLion.class,
Q00374_WhisperOfDreams_Part1.class,
Q00344_1000YearsTheEndOfLamentation.class,
Q00348_AnArrogantSearch.class,
Q00354_ConquestOfAlligatorIsland.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="24_21">
<group>
<npc id="30938" x="131240" y="114159" z="-3696" heading="10747" respawnTime="60sec" /> <!-- Vanutu -->
</group>
</spawn>
</list>

View File

@@ -1445,11 +1445,7 @@
<height normal="27" />
</collision>
</npc>
<npc id="30938" level="70" type="L2Monster" name="Vanutu" title="Priest">
<parameters>
<param name="MoveAroundSocial" value="90" />
<param name="MoveAroundSocial1" value="65" />
</parameters>
<npc id="30938" level="70" type="L2Npc" name="Vanutu" title="Priest">
<race>HUMANOID</race>
<sex>MALE</sex>
<stats str="40" int="21" dex="30" wit="20" con="43" men="10">

View File

@@ -50,3 +50,5 @@ TODO list
-Moon Knight quest
-Dungeon of Abyss https://www.youtube.com/watch?v=FZEu0hjCAK8
-New Savior class skills https://eu.4game.com/lineage2classic/play/saviors/classes/#newclasskills
-Provisional Clan Halls