Classic fishing quest.

This commit is contained in:
MobiusDev
2017-08-01 03:28:42 +00:00
parent c1194b585c
commit 8b083e4437
23 changed files with 268 additions and 47 deletions

View File

@@ -1,4 +1,3 @@
127 Fishing Specialist's Request
374 Whisper of Dreams, Part 1
375 Whisper of Dreams, Part 2
910 Request from the Red Libra Guild - Basic

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Specialist Pierre:<br>
For me fishing is the best way to have a rest. It helps me to relax, to forget about mortal coil, gives you peace of mind. However, it might end soon. There are some gossips that dirty water from the northwestern part of the Alligator Island kills all the fish. I'm afraid that these gossips might be true... Will you help me to deal with this problem and allay my anxiety?<br>
(Only characters Lv. 20 or above can take this quest.)
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Specialist Pierre:<br>
For me fishing is the best way to have a rest. It helps me to relax, to forget about mortal coil, gives you peace of mind. However, it might end soon. There are some gossips that dirty water from the northwestern part of the Alligator Island kills all the fish. I'm afraid that these gossips might be true...<br>Could you, please, hear me out?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00127_FishingSpecialistsRequest 30013-02.html">"I would like to listen to you"</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Fishing Specialist Pierre:<br>
Thank you a lot!<br>
There are some gossips that dirty water from the northwestern part of the Alligator Island kills all the fish. I'm afraid that these gossips might be true. It is of crucial importance to check everything and find out what is happening. My friend <font color="LEVEL">Farm</font> is fishing in those lands. It's far away from here, to reach the place you need to cross the sea. But I can relocate you.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00127_FishingSpecialistsRequest teleport_to_ferma">"Teleport me, please"</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Specialist Pierre:<br>
You haven't visited Ferma yet?! Hurry up! Bring him my <font color="LEVEL">letter</font>! There is very important information, which I heard from the fishers.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00127_FishingSpecialistsRequest teleport_to_ferma">"Teleport me, please"</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Specialist Pierre:<br>
So that was the reason of water pollution! Thank you oce again. I'll ask the guild researchers to scrutinize everything.<br>
And you... Please take it... Just to express you my gratitude...
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Ferma:<br>
Fishing Specialist Pierre from Giran Harbor asked you to come! There is something that pollutes the water and destroys the ecosystem... Our guild sent there the researcher. While he was testing the water quantity I made a <font color="LEVEL">Report about Fish</font>. Hand this report to researcher.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Ferma:<br>
You still haven't given my report to Researcher of Waters <font color="LEVEL">Baikal</font>? He is waiting for you in the cave. This report contains very important information about fish. Please, hurry up!
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Ferma:<br>
Hand a <font color="LEVEL">Sealed Bottle</font> with polluted water to <font color="LEVEL">Fishing Specialist Pierre</font>. You need to hurry up, otherwise contamination can spread!
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Researcher of Waters Baikal:<br>
Thanks to <font color="LEVEL">Report about Fish</font>, that you brought, I could make significant progress. Actually, I wanted to stay here for a while and to continue my research. Soon the water will be completely spoiled. I poured a little bit into <font color="LEVEL">Sealed Bottle</font>. Please, give it to Fishing Specialist Pierre. Help you to stop this disaster.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Researcher of Waters Baikal:<br>
Haven't you visited Fishing Specialist Pierre yet? Hurry up. The situation is getting worse. I am really worried about the water quality as it can affect a future of the fishery.<br1>
Ferma will help you to reach Giran Harbor. You will find him outside of the cave. When you meet <font color="LEVEL">Fishing Specialist Pierre</font>, please hand him <font color="LEVEL">Sealed Bottle</font>.
</body></html>

View File

@@ -0,0 +1,177 @@
/*
* 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.Q00127_FishingSpecialistsRequest;
import com.l2jmobius.gameserver.model.Location;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
/**
* Fishing Specialist's Request (127)
* @author Mobius
*/
public class Q00127_FishingSpecialistsRequest extends Quest
{
// NPCs
private static final int PIERRE = 30013;
private static final int FERMA = 30015;
private static final int BAIKAL = 30016;
// Items
private static final int PIERRE_LETTER = 49510;
private static final int FISH_REPORT = 49504;
private static final int SEALED_BOTTLE = 49505;
private static final int FISHING_ROD_CHEST = 49507;
// Location
private static final Location TELEPORT_LOC = new Location(105276, 162500, -3600);
// Misc
private static final int MIN_LEVEL = 20;
private static final int MAX_LEVEL = 110;
public Q00127_FishingSpecialistsRequest()
{
super(127);
addStartNpc(PIERRE);
addTalkId(PIERRE, FERMA, BAIKAL);
addCondLevel(MIN_LEVEL, MAX_LEVEL, "30013-00.htm");
registerQuestItems(PIERRE_LETTER, FISH_REPORT, SEALED_BOTTLE);
}
@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 "30013-02.html":
{
qs.startQuest();
giveItems(player, PIERRE_LETTER, 1);
htmltext = event;
break;
}
case "teleport_to_ferma":
{
player.teleToLocation(TELEPORT_LOC);
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs == null)
{
return htmltext;
}
if (qs.isCreated())
{
if (npc.getId() == PIERRE)
{
htmltext = player.getLevel() < MIN_LEVEL ? "30013-00.htm" : "30013-01.htm";
}
}
else if (qs.isStarted())
{
switch (npc.getId())
{
case PIERRE:
{
switch (qs.getCond())
{
case 1:
case 2:
{
htmltext = "30013-03.html";
break;
}
case 3:
{
takeItems(player, -1, SEALED_BOTTLE);
giveItems(player, FISHING_ROD_CHEST, 1);
qs.exitQuest(false, true);
htmltext = "30013-04.html";
break;
}
}
break;
}
case FERMA:
{
switch (qs.getCond())
{
case 1:
{
takeItems(player, -1, PIERRE_LETTER);
giveItems(player, FISH_REPORT, 1);
qs.setCond(2, true);
htmltext = "30015-01.html";
break;
}
case 2:
{
htmltext = "30015-02.html";
break;
}
case 3:
{
htmltext = "30015-03.html";
break;
}
}
break;
}
case BAIKAL:
{
switch (qs.getCond())
{
case 2:
{
takeItems(player, -1, FISH_REPORT);
giveItems(player, SEALED_BOTTLE, 1);
qs.setCond(3, true);
htmltext = "30016-01.html";
break;
}
case 3:
{
htmltext = "30016-02.html";
break;
}
}
break;
}
}
}
else if (qs.isCompleted())
{
htmltext = getAlreadyCompletedMsg(player);
}
return htmltext;
}
}

View File

@@ -63,6 +63,7 @@ import quests.Q00105_SkirmishWithOrcs.Q00105_SkirmishWithOrcs;
import quests.Q00106_ForgottenTruth.Q00106_ForgottenTruth;
import quests.Q00107_MercilessPunishment.Q00107_MercilessPunishment;
import quests.Q00108_JumbleTumbleDiamondFuss.Q00108_JumbleTumbleDiamondFuss;
import quests.Q00127_FishingSpecialistsRequest.Q00127_FishingSpecialistsRequest;
import quests.Q00151_CureForFever.Q00151_CureForFever;
import quests.Q00152_ShardsOfGolem.Q00152_ShardsOfGolem;
import quests.Q00153_DeliverGoods.Q00153_DeliverGoods;
@@ -230,6 +231,7 @@ public class QuestMasterHandler
Q00106_ForgottenTruth.class,
Q00107_MercilessPunishment.class,
Q00108_JumbleTumbleDiamondFuss.class,
Q00127_FishingSpecialistsRequest.class,
Q00151_CureForFever.class,
Q00152_ShardsOfGolem.class,
Q00153_DeliverGoods.class,