Quest Investigate The Forest (10794).

Contributed by gigilo1968.
This commit is contained in:
MobiusDev 2016-08-01 16:49:33 +00:00
parent f52fb4d151
commit 41cee646cc
15 changed files with 286 additions and 1 deletions

View File

@ -152,7 +152,6 @@
10749 Mysterious Suggestion - 2
10753 Winds of Fate: Choices
10767 A Whole New Level of Alchemy
10794 Investigate the Forest
10796 The Eye that Defied the Gods
10797 Crossing Fate
10801 The Dimensional Warp, Part 1

View File

@ -0,0 +1,4 @@
<html><body>Tombstone:<br>
(Who could be the owner of this tombstone?)<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10794_InvestigateTheForest 31531-02.html">"Maybe if I squint?"</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Tombstone:<br>
(Nothing suspicious, but there is an old jewelry box in a box in the corner.)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Tracker Hatuba:<br>
I have no business with you.<br>
(Only Ertheia characters can perform this quest.)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Tracker Hatuba:<br>
I don't trust you.<br>
(Characters must be Lv. 65 or above to perform this quest.)
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Tracker Hatuba:<br>
The ghosts around here seem to have calmed down. I want you to now go and investigate the Forest of the Dead. There's no place as strange.<br>
The longer I'm here, the more curious I become about this place, but my mission doesn't lie in that path.<br>
So, will you go to the Forest of the Dead in my place?<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10794_InvestigateTheForest 33849-03.htm">"What do you want me to investigate?"</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Tracker Hatuba:<br>
The Forest of the Dead is where the rebel Von Hellmann was slaughtered. Why such a prestigious family would do such a thing is beyond me, but the dead can't speak.<br>
After the Hellmann family was massacred, strange things began happening here. Those who like to talk say it's a conspiracy planned by one person, but who knows?<br>
Anyway, you'll find out more once you're there.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10794_InvestigateTheForest 33849-04.htm">"What do you want me to do exactly?"</Button>
</body></html>

View File

@ -0,0 +1,8 @@
<html><body>Tracker Hatuba:<br>
I want you to help me with two things.<br>
The first thing is to fell all the Undead in the Forest of the Dead.<br>
The countless number of the Undead in the area is a testament to the horror of the massacre that occurred there.<br>
Another thing is to investigate the tombstones on the south side of Cursed Village.<br>
Don't you think it's interesting that there are tombstones and no one around to venerate them? I think that's well worth investigating.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10794_InvestigateTheForest 33849-05.htm">"Sounds reasonable."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Tracker Hatuba:<br>
The Undead you need to fell are around the <font color="LEVEL">Cursed Village</font>.<br>
These include <font color="LEVEL">Guillotine's Ghost, Devil Bat, Atrox, Ghost of Guillotine, Behemoth Zombie, Bone Collector, Bone Animator, Bone Slayer, Bone Sweeper, Bone Grinder, Bone Scavenger, Bone Caster, Bone Puppeteer, Skull Collector, Skull Animator, Requiem Lord, Requiem Priest, Requiem Behemoth, Ghost of Betrayer, Ghost of Rebel Soldier, Ghost of Rebel Leader, Vampire Soldier, Vampire Magician, Vampire Adept, Vampire Warrior, Vampire Wizard, Vampire Magister, and the Vampire Warlord</font>.<br>
Also, the <font color="LEVEL">tombstones</font> are located on the south side of the Cursed Village.</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Tracker Hatuba:<br>
You still don't have what it takes to investigate the strange happenings in the Forest of the Dead. Go and <font color="LEVEL">fell the Undead</font> in the <font color="LEVEL">Cursed Village</font> and don't forget to investigate the <font color="LEVEL">tombstones</font>.There's a lot for you to do, so you'd best get going.
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Tracker Hatuba:<br>
Did you finish your investigation?<br1>
Well then, did you find anything worth mentioning?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10794_InvestigateTheForest 33849-08.html">"Here's what I found."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Tracker Hatuba:<br>
Mm, an old jewelry box?<br>
A jewel...could it be the rumors were true? Something related to the ill-fated princess?
</body></html>

View File

@ -0,0 +1,230 @@
/*
* 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.Q10794_InvestigateTheForest;
import java.util.HashSet;
import java.util.Set;
import com.l2jmobius.gameserver.enums.QuestSound;
import com.l2jmobius.gameserver.enums.Race;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
import quests.Q10793_SaveTheSouls.Q10793_SaveTheSouls;
/**
* Investigate The Forest (10794)
* @URL https://l2wiki.com/Investigate_the_Forest
* @author Gigi
*/
public final class Q10794_InvestigateTheForest extends Quest
{
// NPCs
private static final int HATUBA = 33849;
private static final int TOMBSTONE = 31531;
// Monsters
private static final int[] MONSTERS =
{
21562, // Guillotine's Ghost
21563, // Bone Collector
21564, // Skull Collector
21565, // Bone Animator
21566, // Skull Animator
21567, // Bone Slayer
21568, // Devil Bat
21570, // Ghost of Betrayer
21571, // Ghost of Rebel Soldier
21572, // Bone Sweeper
21573, // Atrox
21574, // Bone Grinder
21576, // Ghost of Guillotine
21578, // Behemoth Zombie
21579, // Ghost of Rebel Leader
21580, // Bone Caster
21581, // Bone Puppeteer
21582, // Vampire Soldier
21583, // Bone Scavenger
21585, // Vampire Magician
21586, // Vampire Adept
21587, // Vampire Warrior
21588, // Vampire Wizard
21590, // Vampire Magister
21593, // Vampire Warlord
21596, // Requiem Lord
21597, // Requiem Lord
21599, // Requiem Priest
};
// Misc
private static final int MIN_LEVEL = 65;
private static final int MAX_LEVEL = 70;
private static final String KILL_COUNT_VAR = "KillCount";
// Items
private static final int ENCHANT_ARMOR_A = 730;
private static final int OLD_JEWELRY_BOX = 39725;
public Q10794_InvestigateTheForest()
{
super(10794);
addStartNpc(HATUBA);
addTalkId(HATUBA, TOMBSTONE);
addKillId(MONSTERS);
registerQuestItems(OLD_JEWELRY_BOX);
addCondRace(Race.ERTHEIA, "33849-00.htm");
addCondLevel(MIN_LEVEL, MAX_LEVEL, "33849-01.htm");
addCondStart(L2PcInstance::isMageClass, "33849-01.htm");
addCondCompletedQuest(Q10793_SaveTheSouls.class.getSimpleName(), "restriction.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 "33849-03.htm":
case "33849-04.htm":
{
htmltext = event;
break;
}
case "33849-05.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "31531-02.html":
{
giveItems(player, OLD_JEWELRY_BOX, 1);
qs.setCond(2);
qs.setCond(4, true);
htmltext = event;
break;
}
case "33849-08.html":
{
if (qs.isCond(4))
{
takeItems(player, OLD_JEWELRY_BOX, -1);
giveItems(player, ENCHANT_ARMOR_A, 5);
giveStoryQuestReward(player, 63);
if (player.getLevel() >= MIN_LEVEL)
{
addExpAndSp(player, 16968420, 4072);
}
htmltext = event;
qs.exitQuest(false, true);
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
switch (qs.getState())
{
case State.CREATED:
{
htmltext = "33849-02.htm";
break;
}
case State.STARTED:
{
switch (npc.getId())
{
case HATUBA:
{
htmltext = (qs.isCond(1)) ? "33849-06.html" : "33849-07.html";
break;
}
case TOMBSTONE:
{
final int count = qs.getInt(KILL_COUNT_VAR);
if ((count >= 50) && (getQuestItemsCount(player, OLD_JEWELRY_BOX) < 1))
{
htmltext = "31531-01.html";
}
break;
}
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
int count = qs.getInt(KILL_COUNT_VAR) + 1;
qs.set(KILL_COUNT_VAR, count);
if (count >= 50)
{
qs.setCond(1, true);
}
else
{
sendNpcLogList(killer);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR);
if (killCount > 0)
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.KILL_THE_UNDEAD_NEAR_THE_CURSED_VILLAGE, killCount));
return holder;
}
}
return super.getNpcLogList(player);
}
}

View File

@ -0,0 +1,3 @@
<html><body>Research Pio:<br>
(Quest only available to Ertheia characters Lv. 65-70 who have completed the quest "Investigate the Forest.")
</body></html>

View File

@ -346,6 +346,7 @@ import quests.Q10790_AMercenaryHelper.Q10790_AMercenaryHelper;
import quests.Q10791_TheManOfMystery.Q10791_TheManOfMystery;
import quests.Q10792_LettersFromTheQueenForestOfTheDead.Q10792_LettersFromTheQueenForestOfTheDead;
import quests.Q10793_SaveTheSouls.Q10793_SaveTheSouls;
import quests.Q10794_InvestigateTheForest.Q10794_InvestigateTheForest;
import quests.Q10795_LettersFromTheQueenWallOfAgros.Q10795_LettersFromTheQueenWallOfAgros;
import quests.Q10798_LettersFromTheQueenDragonValley.Q10798_LettersFromTheQueenDragonValley;
import quests.Q10799_StrangeThingsAfootInTheValley.Q10799_StrangeThingsAfootInTheValley;
@ -702,6 +703,7 @@ public class QuestMasterHandler
Q10791_TheManOfMystery.class,
Q10792_LettersFromTheQueenForestOfTheDead.class,
Q10793_SaveTheSouls.class,
Q10794_InvestigateTheForest.class,
Q10795_LettersFromTheQueenWallOfAgros.class,
Q10798_LettersFromTheQueenDragonValley.class,
Q10799_StrangeThingsAfootInTheValley.class,