Addition of Santiago (34138) and two related quests.

Contributed by NightBR and Werum.
This commit is contained in:
MobiusDevelopment
2019-04-18 02:26:51 +00:00
parent 3d7c3d422d
commit 292818848e
99 changed files with 1311 additions and 237 deletions

View File

@@ -4,6 +4,9 @@
<xpRate min="1" max="1" /> <!-- XP modifiction rate -->
<spRate min="1" max="1" /> <!-- SP modifiction rate -->
<baits>
<bait itemId="46737" minPlayerLevel="95" chance="40" timeMin="105000" waitMin="15000" > <!-- Practice Bait -->
<catch itemId="46736" chance="70" multiplier="1" /> <!-- Practice Fish -->
</bait>
<bait itemId="47547" minPlayerLevel="85" chance="40" timeMin="105000" waitMin="15000" > <!-- Bait -->
<catch itemId="47550" chance="70" multiplier="1" /> <!-- Ugly Fish -->
<catch itemId="47551" chance="25" multiplier="1" /> <!-- Nimble Fish -->

View File

@@ -0,0 +1,9 @@
<html><body>Fishing Guild Leader Santiago:<br>
Asking around about the Anglers Fishing Rod, you're quite the fishing nut now, you are.<br>
It's only fair that with all the hard work you're doing for the sake of the Fishing Guild, you end up with a better fishing rod, isn't it?<br>
So, if you have a Sturdy Fishing Rod to start with, and you build up enough skill to satisfy our standards at the Fishing Guild, we'll modify your fishing rod using our special techniques to make it better. We can also make simple improvements so that the performance increases without making big changes.<br>
Of course, you're still not quite there yet in terms of skill. Please retum after building some more skill. Hmm.. let's say Faction level 2. That should do it.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 2">"How are fishing rods made?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 3">"Tell me about the effects."</Button>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Fishing Guild Leader Santiago:<br>
If you want an Master Fishing Rod made, what's most important is to have a <font color="LEVEL">Sturdy Fishing Rod</font>. See, a fishing rod needs to be as sturdy as possible in order to withstand the modifications we're going to make to it.<br>
When you find a Sturdy Fishing Rod, along with <font color="LEVEL">Santiago's Reel Fragment</font> and the additional fees necessary, come and find me. I'll make sure your fishing rod tums out exceptionally well.<br>
Like I told you before, you can also <font color="LEVEL">improve the performance</font> of your rod, so investigate thoroughly. To improve your fishing rod's performance, you will need your <font color="LEVEL">Master Fishing Rod, Sturdy Fishing Rod, Santiago's Reel Fragment</font>, and some other things.<br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 1">Back</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Fishing Guild Leader Santiago:<br>
So what does the Master Fishing Rod benefit you?<br>
Of course you're curious. With the Master Fishing Rod, you can catch fish faster and more conveniently. A Sturdy Fishing Rod means that you expend less energy trying to catch your fish, you see.<br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 2">Back</Button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Fishing Guild Leader Santiago:<br>
Sorry, but I'm forbidden by my guild from doing business with criminals like you!
</body></html>

View File

@@ -0,0 +1,7 @@
<html><body>Fishing Guild Leader Santiago:<br>
Hey there isnt a great day to fish,rain or shine.the weater just changes the experience.<br>
Come to think of it, I haven't even introduced myself to you. I'm Santiago, and i've become the new leader of the Fishing Guild.Before I took this job,through, i was a Professional Fisher who used to venture out onto the High seas where I fought with the Largest of fish.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"Tell me about fishing."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 1">"Tell me about the Angler's Fishing Rod."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@@ -177,7 +177,6 @@
10563 Control of Power
10564 Prove Progress
10565 Nothing Is Impossible
10566 Best Choice
10567 Special Mission: Nornil's Garden
10568 Kamael's Technological Advancement
10569 Declaration of War
@@ -185,7 +184,6 @@
10571 Strategic Reconciliation
10572 To Expel the Embryo's Forces
10574 Special Mission: Fortuna
10575 Let's Go Fishing
10576 Glittering Weapons
10577 Temper a Rusting Blade
10578 The Soul of a Sword

View File

@@ -62,6 +62,7 @@ public class Q00937_ToReviveTheFishingGuild extends Quest
private static final int BATIDAE = 31989;
private static final int EINDARKNER = 31697;
private static final int GALBA = 32007;
private static final int SANTIAGO = 34138;
// Reward
private static final int BASIC_SUPPLY_BOX = 47571;
private static final int INTERMEDIATE_SUPPLY_BOX = 47572;
@@ -72,8 +73,8 @@ public class Q00937_ToReviveTheFishingGuild extends Quest
public Q00937_ToReviveTheFishingGuild()
{
super(937);
addStartNpc(OFULLE, LINNAEUS, PERELIN, BLEAKER, CYANO, PAMFUS, LANOSCO, HUFS, MONAKAN, BERIX, LITULON, WILLIE, HILGENDORF, PLATIS, KLAUS, BATIDAE, EINDARKNER, GALBA);
addTalkId(OFULLE, LINNAEUS, PERELIN, BLEAKER, CYANO, PAMFUS, LANOSCO, HUFS, MONAKAN, BERIX, LITULON, WILLIE, HILGENDORF, PLATIS, KLAUS, BATIDAE, EINDARKNER, GALBA);
addStartNpc(OFULLE, LINNAEUS, PERELIN, BLEAKER, CYANO, PAMFUS, LANOSCO, HUFS, MONAKAN, BERIX, LITULON, WILLIE, HILGENDORF, PLATIS, KLAUS, BATIDAE, EINDARKNER, GALBA, SANTIAGO);
addTalkId(OFULLE, LINNAEUS, PERELIN, BLEAKER, CYANO, PAMFUS, LANOSCO, HUFS, MONAKAN, BERIX, LITULON, WILLIE, HILGENDORF, PLATIS, KLAUS, BATIDAE, EINDARKNER, GALBA, SANTIAGO);
addCondMinLevel(MIN_LEVEL, "noLevel.htm");
}
@@ -174,6 +175,7 @@ public class Q00937_ToReviveTheFishingGuild extends Quest
{
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
sendNpcLogList(player);
}
}

View File

@@ -0,0 +1,4 @@
<html><body>Herphah:<br>
Do you think continuous fighting is the only way of becoming strong?That's a serious mistake.There are many other ways to become stronger.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10566_BestChoice 34362-02.htm">"Go on."</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Herphah:<br>
Weapon enhancement and fishing are goot examples.They can strenghten you indirectly.You should make use of every possible means to become stronger.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10566_BestChoice 34362-03.htm">"Go on."</button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Herphah:<br>
So,IΞ“β€<CEB2>ΞΞ„m going to give you a chance to experience all of them.What do you think?Are you moved by my Generosity?.<br>
Say yes,Otherwise,I wonΞ“β€<CEB2>ΞΞ„t help you.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10566_BestChoice 34362-04.htm">"Yes,I am."</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Herphah:<br>
Alright.Complete the missions these people give you and bring back their certificates.Complete the fishing mission from <font color="LEVEL">Fishing GuildMaster Santiago</font> in Heine,the enchanting mission from <font color="LEVEL">Blacksmith Rupio</font> in the town of Giran, the augmenting mission from <font color="LEVEL">Head Blacksmith Flutter</font> in the Town of Oren, the Soul Crystal mission from <font color="LEVEL">Blacksmith Vincenz</font> in the Town of Rune, and the attribute mission from <font color="LEVEL">Head Blacksmith Ferris</font> in the Town of Aden.<br>
If you are confused about who to go to find,look at the list from the mission I gave You. That's it.<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Herphah:<br>
I'll tell you again. Complete the missions these people give you and bring back their certificates. Complete the fishing mission from <font color="LEVEL">Fishing GuildMaster Santiago</font> in Heine, the enchanting mission from <font color="LEVEL">Blacksmith Rupio</font> in the town of Giran, the augmenting mission from <font color="LEVEL">Head Blacksmith Flutter</font> in the Town of Oren, the Soul Crystal mission from <font color="LEVEL">Blacksmith Vincenz</font> in the Town of Rune, and the attribute mission from <font color="LEVEL">Head Blacksmith Ferris</font> in the Town of Aden.<br>
If you are confused about who to go to find,look at the list from the mission I gave You. That's it.<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Herphah:<br>
Five certificates... you completed all the missions.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10566_BestChoice 34362-07.html">"Yes,I did."</button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Herphah:<br>
Good job! Time to try other methods I taught you.You shouldn't get lazy to become strong.<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Guild Leader Santiago:<br>
Hey, let nature take its course. It's not good for us to go against it.<br>
(Only Premium characters who have the quest "Best Choice" in progress, can play this quest.)<br>
</body></html>

View File

@@ -0,0 +1,123 @@
/*
* 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.Q10566_BestChoice;
import org.l2jmobius.gameserver.enums.QuestType;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State;
/**
* Best Choice (10566)
* @URL https://l2wiki.com/Best_Choice
* @author Werum / Standardization by NightBR
*/
public class Q10566_BestChoice extends Quest
{
// NPC
private static final int HERPHAH = 34362;
// Misc
private static final int MIN_LEVEL = 95;
// Items
private static final int CERTIFICATE_SANTIAGO = 48173;
private static final int CERTIFICATE_RUPIO = 48174;
private static final int CERTIFICATE_FLUTTER = 48175;
private static final int CERTIFICATE_VINCENZ = 48176;
private static final int CERTIFICATE_FERRIS = 48177;
private static final int HERPHAHS_SUPPORT_BOX = 48250;
private static final int HERPHAHS_MISSION_LIST = 48172;
public Q10566_BestChoice()
{
super(10566);
addStartNpc(HERPHAH);
addTalkId(HERPHAH);
addCondMinLevel(MIN_LEVEL, "noLevel.html");
registerQuestItems(CERTIFICATE_SANTIAGO, CERTIFICATE_RUPIO, CERTIFICATE_FLUTTER, CERTIFICATE_VINCENZ, CERTIFICATE_FERRIS, HERPHAHS_MISSION_LIST);
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return getNoQuestMsg(player);
}
String htmltext = null;
switch (event)
{
case "34362-02.htm":
case "34362-03.htm":
{
htmltext = event;
break;
}
case "34362-04.htm":
{
qs.startQuest();
giveItems(player, HERPHAHS_MISSION_LIST, 1);
break;
}
case "34362-07.html":
{
giveItems(player, HERPHAHS_SUPPORT_BOX, 1);
qs.exitQuest(QuestType.ONE_TIME, true);
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, PlayerInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
switch (qs.getState())
{
case State.CREATED:
{
htmltext = (player.hasPremiumStatus()) ? "34362-01.htm" : "34362-99.html";
break;
}
case State.STARTED:
{
if (qs.isCond(1))
{
boolean hasItems = hasQuestItems(player, CERTIFICATE_SANTIAGO, CERTIFICATE_RUPIO, CERTIFICATE_FLUTTER, CERTIFICATE_VINCENZ, CERTIFICATE_FERRIS);
// Chck if player has the necessary quest items to complete the quest
if (hasItems)
{
qs.setCond(2, true);
}
htmltext = (hasItems) ? "34362-06.html" : "34362-05.html";
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
}

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Guild Member:<br>
Hmm, it would seem that it's a bit too early still to discuss the Fishing Guild with you. Please return after you've become stronger.<br>
(Only characters with Lv. 95 or above may undertake this quest.)
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Guild Leader Santiago:<br>
Could it be that you'd like to learn how to fish, but don't know where to start or don't have the necessary equipment? Oh, you've come to just the place. I have a great opportunity for you.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10575_LetsGoFishing 34138-02.htm">"Go on."</button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Fishing Guild Leader Santiago:<br>
Since you agreed, I'll take it that you accepted the experience. I'll explain in simple terms, you always need to learn the theory first.<br>
In order to fish, you need to find a <font color="LEVEL">fishing dock</font>. Once you arrive at the right spot, you'll see the button on the right side of your screen that alerts you that you can fish. If you see that button, it means you've found a right spot.<br>
Fishing docks are at the <font color="LEVEL">Iris Lake, Narsell Lake, Giran Harbor. near the Plains of the Lizardmen, the banks near the Town of Gludio, the Neutral Zone, Heine, Fellmere Lake, and the bridge near the Town of Giran</font>. Understand so far?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10575_LetsGoFishing 34138-03.html">"I Understand."</button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Fishing Guild Leader Santiago:<br>
Then you'll need to prepare your fishing tools. You'll need <font color="LEVEL">Fishing Rod</font> and <font color="LEVEL">Bait</font>. You can only fish if you have them.<br>
You can receive the Normal Bait from me, but if you want to catch more expensive fish, I recommend you use the Special Bait. I have never seen Special Bait, but I heard that you can get it from the boxes you get from fishing.<br>
You can buy fishing rods from Fishing Guild Members, but I'll give you one for practice. If you already have a fishing rod, you can use that one. already have a fishing rod, you can use that one. Sounds easy, right?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10575_LetsGoFishing 34138-04.html">"Yes,got it."</button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Fishing Guild Leader Santiago:<br>
One more thing! I must tell you about <font color="LEVEL">Fishing Shots</font>. It's like applying Soulshots to Fishing. When you fish, use this item to <font color="LEVEL">increase the chances of catching fish</font>. You can buy them from Fishing Guild Members and register it in the shortcuts to use them automatically.<br>
I won't give you any right now since you are practicing, but if you want to get them yourself... go ahead.<br>
That should be everything I need to explain. Let's get practicing now!
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10575_LetsGoFishing 34138-05.html">"Tell me about practice."</button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Fishing Guild Leader Santiago:<br>
Well.. practice is... practice, what else? You'll be having a go at fishing. Find a fishing dock, and use the fishing tools to catch a fish.<br>
Well, I'll give you the things you need. Your goal is to catch <font color="LEVEL">5 Practice Fish</font>. If you succeed, you won't be a complete newbie anymore.<br>
Oh, remember that <font color="LEVEL">practice fish can only be caught using the practice bait</font> I'll be giving you. It isn't worth much, but you'll catch them faster than normal fish, and that makes them perfect for practice!<br>
Good luck to you, then!
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Fishing Guild Leader Santiago:<br>
Ah, you've caught all the practice fish you need.<br>
So? It's not that hard to fish, right? And it's fun!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10575_LetsGoFishing 34138-07.html">"Yes,it's fun."</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Guild Leader Santiago:<br>
Yes, great.<br>
I'll give you a box with fishing supplies as a reward. How about making it into your new hobby? Hahaha!<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Guild Leader Santiago:<br>
Hey, let nature take its course. It's not good for us to go against it.<br>
(Only Premium characters who have the quest "Best Choice" in progress, can play this quest.)
</body></html>

View File

@@ -0,0 +1,190 @@
/*
* 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.Q10575_LetsGoFishing;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.enums.QuestType;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.events.EventType;
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
import org.l2jmobius.gameserver.model.events.annotations.RegisterType;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerFishing;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State;
import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import org.l2jmobius.gameserver.network.serverpackets.fishing.ExFishingEnd.FishingEndReason;
import quests.Q10566_BestChoice.Q10566_BestChoice;
/**
* Let's Go Fishing (10575)
* @URL https://l2wiki.com/Let%27s_Go_Fishing
* @author NightBR / htmls: by Werum
*/
public class Q10575_LetsGoFishing extends Quest
{
// NPCs
private static final int SANTIAGO = 34138;
// Items
private static final int PRACTICE_BAIT = 46737;
private static final int PRACTICE_FISH = 46736;
private static final int PRACTICE_FISHING_ROD = 46738;
// Rewards
private static final int XP = 597699960;
private static final int SP = 597690;
private static final int CERTIFICATE_FROM_SANTIAGO = 48173;
private static final int FISHING_SHOT = 38154;
private static final int REWARD_FISHING_ROD_PACK = 46739;
private static final int BAIT = 48537;
// Misc
private static final int MIN_LEVEL = 95;
private static final String COUNT_VAR = "FishWinCount";
private static final int NPCSTRING_ID = NpcStringId.CATCH_PRACTICE_FISH.getId();
public Q10575_LetsGoFishing()
{
super(10575);
addStartNpc(SANTIAGO);
addTalkId(SANTIAGO);
registerQuestItems(PRACTICE_BAIT, PRACTICE_FISH, PRACTICE_FISHING_ROD);
addCondMinLevel(MIN_LEVEL, "noLevel.htm");
addCondStartedQuest(Q10566_BestChoice.class.getSimpleName(), "34138-99.html");
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "34138-03.html":
case "34138-04.html":
{
htmltext = event;
break;
}
case "34138-02.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "34138-05.html":
{
// show Service/Help/Fishing page
player.sendPacket(new ExTutorialShowId(111));
qs.setCond(2, true);
giveItems(player, PRACTICE_BAIT, 50);
giveItems(player, PRACTICE_FISHING_ROD, 1);
htmltext = event;
break;
}
case "34138-07.html":
{
if (qs.isCond(3))
{
addExpAndSp(player, XP, SP);
giveItems(player, CERTIFICATE_FROM_SANTIAGO, 1);
giveItems(player, FISHING_SHOT, 60);
giveItems(player, REWARD_FISHING_ROD_PACK, 1);
giveItems(player, BAIT, 60);
qs.exitQuest(QuestType.ONE_TIME, true);
htmltext = event;
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, PlayerInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
switch (qs.getState())
{
case State.CREATED:
{
htmltext = (player.hasPremiumStatus()) ? "34138-01.htm" : "34138-99.html";
break;
}
case State.STARTED:
{
htmltext = (qs.getCond() <= 2) ? "34138-05.html" : "34138-06.html";
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
@RegisterEvent(EventType.ON_PLAYER_FISHING)
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
public void onPlayerFishing(OnPlayerFishing event)
{
final PlayerInstance player = event.getPlayer();
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(2) && (event.getReason() == FishingEndReason.WIN))
{
int count = qs.getInt(COUNT_VAR);
qs.set(COUNT_VAR, ++count);
if (count >= 5)
{
qs.setCond(3, true);
}
else
{
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
sendNpcLogList(player);
}
}
@Override
public Set<NpcLogListHolder> getNpcLogList(PlayerInstance player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(2))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NPCSTRING_ID, true, qs.getInt(COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Guild Member:<br>
Hmm, it would seem that it's a bit too early still to discuss the Fishing Guild with you. Please return after you've become stronger.<br>
(Only characters with Lv. 95 or above may undertake this quest.)
</body></html>

View File

@@ -354,6 +354,8 @@ import quests.Q10544_SeekerSupplies.Q10544_SeekerSupplies;
import quests.Q10560_WayOfWanderingKnight.Q10560_WayOfWanderingKnight;
import quests.Q10561_AcrossTheDeathLine.Q10561_AcrossTheDeathLine;
import quests.Q10562_TakeUpArms.Q10562_TakeUpArms;
import quests.Q10566_BestChoice.Q10566_BestChoice;
import quests.Q10575_LetsGoFishing.Q10575_LetsGoFishing;
import quests.Q10658_MakkumInTheDimension.Q10658_MakkumInTheDimension;
import quests.Q10701_TheRoadToDestruction.Q10701_TheRoadToDestruction;
import quests.Q10702_TheRoadToInfinity.Q10702_TheRoadToInfinity;
@@ -900,7 +902,7 @@ public class QuestMasterHandler
Q10563_ControlOfPower.class, // TODO: Not done.
Q10564_ProveProgress.class, // TODO: Not done.
Q10565_NothingIsImpossible.class, // TODO: Not done.
Q10566_BestChoice.class, // TODO: Not done.
Q10566_BestChoice.class,
Q10567_SpecialMissionNornilsGarden.class, // TODO: Not done.
Q10568_KamaelsTechnologicalAdvancement.class, // TODO: Not done.
Q10569_DeclarationOfWar.class, // TODO: Not done.
@@ -908,7 +910,7 @@ public class QuestMasterHandler
Q10571_StrategicReconciliation.class, // TODO: Not done.
Q10572_ToExpelTheEmbryosForces.class, // TODO: Not done.
Q10574_SpecialMissionFortuna.class, // TODO: Not done.
Q10575_LetsGoFishing.class, // TODO: Not done.
Q10575_LetsGoFishing.class,
Q10576_GlitteringWeapons.class, // TODO: Not done.
Q10577_TemperARustingBlade.class, // TODO: Not done.
Q10578_TheSoulOfASword.class, // TODO: Not done.

View File

@@ -1,36 +0,0 @@
/*
* 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.not_done;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.quest.Quest;
/**
* @author Mobius
*/
public class Q10566_BestChoice extends Quest
{
private static final int START_NPC = 34362;
public Q10566_BestChoice()
{
super(10566);
addStartNpc(START_NPC);
addTalkId(START_NPC);
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
}
}

View File

@@ -1,36 +0,0 @@
/*
* 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.not_done;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.quest.Quest;
/**
* @author Mobius
*/
public class Q10575_LetsGoFishing extends Quest
{
private static final int START_NPC = 34138;
public Q10575_LetsGoFishing()
{
super(10575);
addStartNpc(START_NPC);
addTalkId(START_NPC);
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
}
}

View File

@@ -76,6 +76,7 @@
<npc id="36706" x="115020" y="220453" z="-3728" heading="48207" respawnTime="60sec" /> <!-- Mermoden -->
<npc id="33946" x="111126" y="219190" z="-3543" heading="59402" respawnTime="60sec" /> <!-- Adventure Guildsman -->
<npc id="34156" x="111286" y="219274" z="-3550" heading="49151" respawnTime="60sec" /> <!-- Peeves -->
<npc id="34138" x="110600" y="220840" z="-3679" heading="56835" respawnTime="60sec" /> <!-- Santiago -->
</group>
</spawn>
</list>

View File

@@ -744,7 +744,7 @@
<height normal="9" />
</collision>
</npc>
<npc id="34138" level="85" type="Npc" name="Santiago" title="Fishing Guild Leader">
<npc id="34138" level="85" type="Fisherman" name="Santiago" title="Fishing Guild Leader">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMAN</race>
<sex>FEMALE</sex>

View File

@@ -4,6 +4,9 @@
<xpRate min="1" max="1" /> <!-- XP modifiction rate -->
<spRate min="1" max="1" /> <!-- SP modifiction rate -->
<baits>
<bait itemId="46737" minPlayerLevel="95" chance="40" timeMin="105000" waitMin="15000" > <!-- Practice Bait -->
<catch itemId="46736" chance="70" multiplier="1" /> <!-- Practice Fish -->
</bait>
<bait itemId="47547" minPlayerLevel="85" chance="40" timeMin="105000" waitMin="15000" > <!-- Bait -->
<catch itemId="47550" chance="70" multiplier="1" /> <!-- Ugly Fish -->
<catch itemId="47551" chance="25" multiplier="1" /> <!-- Nimble Fish -->

View File

@@ -0,0 +1,9 @@
<html><body>Fishing Guild Leader Santiago:<br>
Asking around about the Anglers Fishing Rod, you're quite the fishing nut now, you are.<br>
It's only fair that with all the hard work you're doing for the sake of the Fishing Guild, you end up with a better fishing rod, isn't it?<br>
So, if you have a Sturdy Fishing Rod to start with, and you build up enough skill to satisfy our standards at the Fishing Guild, we'll modify your fishing rod using our special techniques to make it better. We can also make simple improvements so that the performance increases without making big changes.<br>
Of course, you're still not quite there yet in terms of skill. Please retum after building some more skill. Hmm.. let's say Faction level 2. That should do it.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 2">"How are fishing rods made?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 3">"Tell me about the effects."</Button>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Fishing Guild Leader Santiago:<br>
If you want an Master Fishing Rod made, what's most important is to have a <font color="LEVEL">Sturdy Fishing Rod</font>. See, a fishing rod needs to be as sturdy as possible in order to withstand the modifications we're going to make to it.<br>
When you find a Sturdy Fishing Rod, along with <font color="LEVEL">Santiago's Reel Fragment</font> and the additional fees necessary, come and find me. I'll make sure your fishing rod tums out exceptionally well.<br>
Like I told you before, you can also <font color="LEVEL">improve the performance</font> of your rod, so investigate thoroughly. To improve your fishing rod's performance, you will need your <font color="LEVEL">Master Fishing Rod, Sturdy Fishing Rod, Santiago's Reel Fragment</font>, and some other things.<br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 1">Back</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Fishing Guild Leader Santiago:<br>
So what does the Master Fishing Rod benefit you?<br>
Of course you're curious. With the Master Fishing Rod, you can catch fish faster and more conveniently. A Sturdy Fishing Rod means that you expend less energy trying to catch your fish, you see.<br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 2">Back</Button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Fishing Guild Leader Santiago:<br>
Sorry, but I'm forbidden by my guild from doing business with criminals like you!
</body></html>

View File

@@ -0,0 +1,7 @@
<html><body>Fishing Guild Leader Santiago:<br>
Hey there isnt a great day to fish,rain or shine.the weater just changes the experience.<br>
Come to think of it, I haven't even introduced myself to you. I'm Santiago, and i've become the new leader of the Fishing Guild.Before I took this job,through, i was a Professional Fisher who used to venture out onto the High seas where I fought with the Largest of fish.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"Tell me about fishing."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 1">"Tell me about the Angler's Fishing Rod."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@@ -191,7 +191,6 @@
10563 Control of Power
10564 Prove Progress
10565 Nothing Is Impossible
10566 Best Choice
10567 Special Mission: Nornil's Garden
10568 Kamael's Technological Advancement
10569 Declaration of War
@@ -199,7 +198,6 @@
10571 Strategic Reconciliation
10572 To Expel the Embryo's Forces
10574 Special Mission: Fortuna
10575 Let's Go Fishing
10576 Glittering Weapons
10577 Temper a Rusting Blade
10578 The Soul of a Sword

View File

@@ -62,6 +62,7 @@ public class Q00937_ToReviveTheFishingGuild extends Quest
private static final int BATIDAE = 31989;
private static final int EINDARKNER = 31697;
private static final int GALBA = 32007;
private static final int SANTIAGO = 34138;
// Reward
private static final int BASIC_SUPPLY_BOX = 47571;
private static final int INTERMEDIATE_SUPPLY_BOX = 47572;
@@ -72,8 +73,8 @@ public class Q00937_ToReviveTheFishingGuild extends Quest
public Q00937_ToReviveTheFishingGuild()
{
super(937);
addStartNpc(OFULLE, LINNAEUS, PERELIN, BLEAKER, CYANO, PAMFUS, LANOSCO, HUFS, MONAKAN, BERIX, LITULON, WILLIE, HILGENDORF, PLATIS, KLAUS, BATIDAE, EINDARKNER, GALBA);
addTalkId(OFULLE, LINNAEUS, PERELIN, BLEAKER, CYANO, PAMFUS, LANOSCO, HUFS, MONAKAN, BERIX, LITULON, WILLIE, HILGENDORF, PLATIS, KLAUS, BATIDAE, EINDARKNER, GALBA);
addStartNpc(OFULLE, LINNAEUS, PERELIN, BLEAKER, CYANO, PAMFUS, LANOSCO, HUFS, MONAKAN, BERIX, LITULON, WILLIE, HILGENDORF, PLATIS, KLAUS, BATIDAE, EINDARKNER, GALBA, SANTIAGO);
addTalkId(OFULLE, LINNAEUS, PERELIN, BLEAKER, CYANO, PAMFUS, LANOSCO, HUFS, MONAKAN, BERIX, LITULON, WILLIE, HILGENDORF, PLATIS, KLAUS, BATIDAE, EINDARKNER, GALBA, SANTIAGO);
addCondMinLevel(MIN_LEVEL, "noLevel.htm");
}
@@ -174,6 +175,7 @@ public class Q00937_ToReviveTheFishingGuild extends Quest
{
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
sendNpcLogList(player);
}
}

View File

@@ -0,0 +1,4 @@
<html><body>Herphah:<br>
Do you think continuous fighting is the only way of becoming strong?That's a serious mistake.There are many other ways to become stronger.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10566_BestChoice 34362-02.htm">"Go on."</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Herphah:<br>
Weapon enhancement and fishing are goot examples.They can strenghten you indirectly.You should make use of every possible means to become stronger.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10566_BestChoice 34362-03.htm">"Go on."</button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Herphah:<br>
So,IΓΒ΄m going to give you a chance to experience all of them.What do you think?Are you moved by my Generosity?.<br>
Say yes,Otherwise,I wonΓΒ΄t help you.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10566_BestChoice 34362-04.htm">"Yes,I am."</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Herphah:<br>
Alright.Complete the missions these people give you and bring back their certificates.Complete the fishing mission from <font color="LEVEL">Fishing GuildMaster Santiago</font> in Heine,the enchanting mission from <font color="LEVEL">Blacksmith Rupio</font> in the town of Giran, the augmenting mission from <font color="LEVEL">Head Blacksmith Flutter</font> in the Town of Oren, the Soul Crystal mission from <font color="LEVEL">Blacksmith Vincenz</font> in the Town of Rune, and the attribute mission from <font color="LEVEL">Head Blacksmith Ferris</font> in the Town of Aden.<br>
If you are confused about who to go to find,look at the list from the mission I gave You. That's it.<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Herphah:<br>
I'll tell you again. Complete the missions these people give you and bring back their certificates. Complete the fishing mission from <font color="LEVEL">Fishing GuildMaster Santiago</font> in Heine, the enchanting mission from <font color="LEVEL">Blacksmith Rupio</font> in the town of Giran, the augmenting mission from <font color="LEVEL">Head Blacksmith Flutter</font> in the Town of Oren, the Soul Crystal mission from <font color="LEVEL">Blacksmith Vincenz</font> in the Town of Rune, and the attribute mission from <font color="LEVEL">Head Blacksmith Ferris</font> in the Town of Aden.<br>
If you are confused about who to go to find,look at the list from the mission I gave You. That's it.<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Herphah:<br>
Five certificates... you completed all the missions.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10566_BestChoice 34362-07.html">"Yes,I did."</button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Herphah:<br>
Good job! Time to try other methods I taught you.You shouldn't get lazy to become strong.<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Guild Leader Santiago:<br>
Hey, let nature take its course. It's not good for us to go against it.<br>
(Only Premium characters who have the quest "Best Choice" in progress, can play this quest.)<br>
</body></html>

View File

@@ -0,0 +1,123 @@
/*
* 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.Q10566_BestChoice;
import org.l2jmobius.gameserver.enums.QuestType;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State;
/**
* Best Choice (10566)
* @URL https://l2wiki.com/Best_Choice
* @author Werum / Standardization by NightBR
*/
public class Q10566_BestChoice extends Quest
{
// NPC
private static final int HERPHAH = 34362;
// Misc
private static final int MIN_LEVEL = 95;
// Items
private static final int CERTIFICATE_SANTIAGO = 48173;
private static final int CERTIFICATE_RUPIO = 48174;
private static final int CERTIFICATE_FLUTTER = 48175;
private static final int CERTIFICATE_VINCENZ = 48176;
private static final int CERTIFICATE_FERRIS = 48177;
private static final int HERPHAHS_SUPPORT_BOX = 48250;
private static final int HERPHAHS_MISSION_LIST = 48172;
public Q10566_BestChoice()
{
super(10566);
addStartNpc(HERPHAH);
addTalkId(HERPHAH);
addCondMinLevel(MIN_LEVEL, "noLevel.html");
registerQuestItems(CERTIFICATE_SANTIAGO, CERTIFICATE_RUPIO, CERTIFICATE_FLUTTER, CERTIFICATE_VINCENZ, CERTIFICATE_FERRIS, HERPHAHS_MISSION_LIST);
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return getNoQuestMsg(player);
}
String htmltext = null;
switch (event)
{
case "34362-02.htm":
case "34362-03.htm":
{
htmltext = event;
break;
}
case "34362-04.htm":
{
qs.startQuest();
giveItems(player, HERPHAHS_MISSION_LIST, 1);
break;
}
case "34362-07.html":
{
giveItems(player, HERPHAHS_SUPPORT_BOX, 1);
qs.exitQuest(QuestType.ONE_TIME, true);
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, PlayerInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
switch (qs.getState())
{
case State.CREATED:
{
htmltext = (player.hasPremiumStatus()) ? "34362-01.htm" : "34362-99.html";
break;
}
case State.STARTED:
{
if (qs.isCond(1))
{
boolean hasItems = hasQuestItems(player, CERTIFICATE_SANTIAGO, CERTIFICATE_RUPIO, CERTIFICATE_FLUTTER, CERTIFICATE_VINCENZ, CERTIFICATE_FERRIS);
// Chck if player has the necessary quest items to complete the quest
if (hasItems)
{
qs.setCond(2, true);
}
htmltext = (hasItems) ? "34362-06.html" : "34362-05.html";
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
}

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Guild Member:<br>
Hmm, it would seem that it's a bit too early still to discuss the Fishing Guild with you. Please return after you've become stronger.<br>
(Only characters with Lv. 95 or above may undertake this quest.)
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Guild Leader Santiago:<br>
Could it be that you'd like to learn how to fish, but don't know where to start or don't have the necessary equipment? Oh, you've come to just the place. I have a great opportunity for you.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10575_LetsGoFishing 34138-02.htm">"Go on."</button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Fishing Guild Leader Santiago:<br>
Since you agreed, I'll take it that you accepted the experience. I'll explain in simple terms, you always need to learn the theory first.<br>
In order to fish, you need to find a <font color="LEVEL">fishing dock</font>. Once you arrive at the right spot, you'll see the button on the right side of your screen that alerts you that you can fish. If you see that button, it means you've found a right spot.<br>
Fishing docks are at the <font color="LEVEL">Iris Lake, Narsell Lake, Giran Harbor. near the Plains of the Lizardmen, the banks near the Town of Gludio, the Neutral Zone, Heine, Fellmere Lake, and the bridge near the Town of Giran</font>. Understand so far?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10575_LetsGoFishing 34138-03.html">"I Understand."</button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Fishing Guild Leader Santiago:<br>
Then you'll need to prepare your fishing tools. You'll need <font color="LEVEL">Fishing Rod</font> and <font color="LEVEL">Bait</font>. You can only fish if you have them.<br>
You can receive the Normal Bait from me, but if you want to catch more expensive fish, I recommend you use the Special Bait. I have never seen Special Bait, but I heard that you can get it from the boxes you get from fishing.<br>
You can buy fishing rods from Fishing Guild Members, but I'll give you one for practice. If you already have a fishing rod, you can use that one. already have a fishing rod, you can use that one. Sounds easy, right?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10575_LetsGoFishing 34138-04.html">"Yes,got it."</button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Fishing Guild Leader Santiago:<br>
One more thing! I must tell you about <font color="LEVEL">Fishing Shots</font>. It's like applying Soulshots to Fishing. When you fish, use this item to <font color="LEVEL">increase the chances of catching fish</font>. You can buy them from Fishing Guild Members and register it in the shortcuts to use them automatically.<br>
I won't give you any right now since you are practicing, but if you want to get them yourself... go ahead.<br>
That should be everything I need to explain. Let's get practicing now!
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10575_LetsGoFishing 34138-05.html">"Tell me about practice."</button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Fishing Guild Leader Santiago:<br>
Well.. practice is... practice, what else? You'll be having a go at fishing. Find a fishing dock, and use the fishing tools to catch a fish.<br>
Well, I'll give you the things you need. Your goal is to catch <font color="LEVEL">5 Practice Fish</font>. If you succeed, you won't be a complete newbie anymore.<br>
Oh, remember that <font color="LEVEL">practice fish can only be caught using the practice bait</font> I'll be giving you. It isn't worth much, but you'll catch them faster than normal fish, and that makes them perfect for practice!<br>
Good luck to you, then!
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Fishing Guild Leader Santiago:<br>
Ah, you've caught all the practice fish you need.<br>
So? It's not that hard to fish, right? And it's fun!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10575_LetsGoFishing 34138-07.html">"Yes,it's fun."</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Guild Leader Santiago:<br>
Yes, great.<br>
I'll give you a box with fishing supplies as a reward. How about making it into your new hobby? Hahaha!<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Guild Leader Santiago:<br>
Hey, let nature take its course. It's not good for us to go against it.<br>
(Only Premium characters who have the quest "Best Choice" in progress, can play this quest.)
</body></html>

View File

@@ -0,0 +1,190 @@
/*
* 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.Q10575_LetsGoFishing;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.enums.QuestType;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.events.EventType;
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
import org.l2jmobius.gameserver.model.events.annotations.RegisterType;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerFishing;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State;
import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import org.l2jmobius.gameserver.network.serverpackets.fishing.ExFishingEnd.FishingEndReason;
import quests.Q10566_BestChoice.Q10566_BestChoice;
/**
* Let's Go Fishing (10575)
* @URL https://l2wiki.com/Let%27s_Go_Fishing
* @author NightBR / htmls: by Werum
*/
public class Q10575_LetsGoFishing extends Quest
{
// NPCs
private static final int SANTIAGO = 34138;
// Items
private static final int PRACTICE_BAIT = 46737;
private static final int PRACTICE_FISH = 46736;
private static final int PRACTICE_FISHING_ROD = 46738;
// Rewards
private static final int XP = 597699960;
private static final int SP = 597690;
private static final int CERTIFICATE_FROM_SANTIAGO = 48173;
private static final int FISHING_SHOT = 38154;
private static final int REWARD_FISHING_ROD_PACK = 46739;
private static final int BAIT = 48537;
// Misc
private static final int MIN_LEVEL = 95;
private static final String COUNT_VAR = "FishWinCount";
private static final int NPCSTRING_ID = NpcStringId.CATCH_PRACTICE_FISH.getId();
public Q10575_LetsGoFishing()
{
super(10575);
addStartNpc(SANTIAGO);
addTalkId(SANTIAGO);
registerQuestItems(PRACTICE_BAIT, PRACTICE_FISH, PRACTICE_FISHING_ROD);
addCondMinLevel(MIN_LEVEL, "noLevel.htm");
addCondStartedQuest(Q10566_BestChoice.class.getSimpleName(), "34138-99.html");
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "34138-03.html":
case "34138-04.html":
{
htmltext = event;
break;
}
case "34138-02.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "34138-05.html":
{
// show Service/Help/Fishing page
player.sendPacket(new ExTutorialShowId(111));
qs.setCond(2, true);
giveItems(player, PRACTICE_BAIT, 50);
giveItems(player, PRACTICE_FISHING_ROD, 1);
htmltext = event;
break;
}
case "34138-07.html":
{
if (qs.isCond(3))
{
addExpAndSp(player, XP, SP);
giveItems(player, CERTIFICATE_FROM_SANTIAGO, 1);
giveItems(player, FISHING_SHOT, 60);
giveItems(player, REWARD_FISHING_ROD_PACK, 1);
giveItems(player, BAIT, 60);
qs.exitQuest(QuestType.ONE_TIME, true);
htmltext = event;
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, PlayerInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
switch (qs.getState())
{
case State.CREATED:
{
htmltext = (player.hasPremiumStatus()) ? "34138-01.htm" : "34138-99.html";
break;
}
case State.STARTED:
{
htmltext = (qs.getCond() <= 2) ? "34138-05.html" : "34138-06.html";
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
@RegisterEvent(EventType.ON_PLAYER_FISHING)
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
public void onPlayerFishing(OnPlayerFishing event)
{
final PlayerInstance player = event.getPlayer();
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(2) && (event.getReason() == FishingEndReason.WIN))
{
int count = qs.getInt(COUNT_VAR);
qs.set(COUNT_VAR, ++count);
if (count >= 5)
{
qs.setCond(3, true);
}
else
{
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
sendNpcLogList(player);
}
}
@Override
public Set<NpcLogListHolder> getNpcLogList(PlayerInstance player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(2))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NPCSTRING_ID, true, qs.getInt(COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Guild Member:<br>
Hmm, it would seem that it's a bit too early still to discuss the Fishing Guild with you. Please return after you've become stronger.<br>
(Only characters with Lv. 95 or above may undertake this quest.)
</body></html>

View File

@@ -308,6 +308,8 @@ import quests.Q10544_SeekerSupplies.Q10544_SeekerSupplies;
import quests.Q10560_WayOfWanderingKnight.Q10560_WayOfWanderingKnight;
import quests.Q10561_AcrossTheDeathLine.Q10561_AcrossTheDeathLine;
import quests.Q10562_TakeUpArms.Q10562_TakeUpArms;
import quests.Q10566_BestChoice.Q10566_BestChoice;
import quests.Q10575_LetsGoFishing.Q10575_LetsGoFishing;
import quests.Q10658_MakkumInTheDimension.Q10658_MakkumInTheDimension;
import quests.Q10701_TheRoadToDestruction.Q10701_TheRoadToDestruction;
import quests.Q10702_TheRoadToInfinity.Q10702_TheRoadToInfinity;
@@ -811,7 +813,7 @@ public class QuestMasterHandler
Q10563_ControlOfPower.class, // TODO: Not done.
Q10564_ProveProgress.class, // TODO: Not done.
Q10565_NothingIsImpossible.class, // TODO: Not done.
Q10566_BestChoice.class, // TODO: Not done.
Q10566_BestChoice.class,
Q10567_SpecialMissionNornilsGarden.class, // TODO: Not done.
Q10568_KamaelsTechnologicalAdvancement.class, // TODO: Not done.
Q10569_DeclarationOfWar.class, // TODO: Not done.
@@ -819,7 +821,7 @@ public class QuestMasterHandler
Q10571_StrategicReconciliation.class, // TODO: Not done.
Q10572_ToExpelTheEmbryosForces.class, // TODO: Not done.
Q10574_SpecialMissionFortuna.class, // TODO: Not done.
Q10575_LetsGoFishing.class, // TODO: Not done.
Q10575_LetsGoFishing.class,
Q10576_GlitteringWeapons.class, // TODO: Not done.
Q10577_TemperARustingBlade.class, // TODO: Not done.
Q10578_TheSoulOfASword.class, // TODO: Not done.

View File

@@ -1,36 +0,0 @@
/*
* 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.not_done;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.quest.Quest;
/**
* @author Mobius
*/
public class Q10566_BestChoice extends Quest
{
private static final int START_NPC = 34362;
public Q10566_BestChoice()
{
super(10566);
addStartNpc(START_NPC);
addTalkId(START_NPC);
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
}
}

View File

@@ -1,36 +0,0 @@
/*
* 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.not_done;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.quest.Quest;
/**
* @author Mobius
*/
public class Q10575_LetsGoFishing extends Quest
{
private static final int START_NPC = 34138;
public Q10575_LetsGoFishing()
{
super(10575);
addStartNpc(START_NPC);
addTalkId(START_NPC);
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
}
}

View File

@@ -76,6 +76,7 @@
<npc id="36706" x="115020" y="220453" z="-3728" heading="48207" respawnTime="60sec" /> <!-- Mermoden -->
<npc id="33946" x="111126" y="219190" z="-3543" heading="59402" respawnTime="60sec" /> <!-- Adventure Guildsman -->
<npc id="34156" x="111286" y="219274" z="-3550" heading="49151" respawnTime="60sec" /> <!-- Peeves -->
<npc id="34138" x="110600" y="220840" z="-3679" heading="56835" respawnTime="60sec" /> <!-- Santiago -->
</group>
</spawn>
</list>

View File

@@ -744,7 +744,7 @@
<height normal="9" />
</collision>
</npc>
<npc id="34138" level="85" type="Npc" name="Santiago" title="Fishing Guild Leader">
<npc id="34138" level="85" type="Fisherman" name="Santiago" title="Fishing Guild Leader">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMAN</race>
<sex>FEMALE</sex>

View File

@@ -4,6 +4,9 @@
<xpRate min="1" max="1" /> <!-- XP modifiction rate -->
<spRate min="1" max="1" /> <!-- SP modifiction rate -->
<baits>
<bait itemId="46737" minPlayerLevel="95" chance="40" timeMin="105000" waitMin="15000" > <!-- Practice Bait -->
<catch itemId="46736" chance="70" multiplier="1" /> <!-- Practice Fish -->
</bait>
<bait itemId="47547" minPlayerLevel="85" chance="40" timeMin="105000" waitMin="15000" > <!-- Bait -->
<catch itemId="47550" chance="70" multiplier="1" /> <!-- Ugly Fish -->
<catch itemId="47551" chance="25" multiplier="1" /> <!-- Nimble Fish -->

View File

@@ -0,0 +1,9 @@
<html><body>Fishing Guild Leader Santiago:<br>
Asking around about the Anglers Fishing Rod, you're quite the fishing nut now, you are.<br>
It's only fair that with all the hard work you're doing for the sake of the Fishing Guild, you end up with a better fishing rod, isn't it?<br>
So, if you have a Sturdy Fishing Rod to start with, and you build up enough skill to satisfy our standards at the Fishing Guild, we'll modify your fishing rod using our special techniques to make it better. We can also make simple improvements so that the performance increases without making big changes.<br>
Of course, you're still not quite there yet in terms of skill. Please retum after building some more skill. Hmm.. let's say Faction level 2. That should do it.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 2">"How are fishing rods made?"</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 3">"Tell me about the effects."</Button>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Fishing Guild Leader Santiago:<br>
If you want an Master Fishing Rod made, what's most important is to have a <font color="LEVEL">Sturdy Fishing Rod</font>. See, a fishing rod needs to be as sturdy as possible in order to withstand the modifications we're going to make to it.<br>
When you find a Sturdy Fishing Rod, along with <font color="LEVEL">Santiago's Reel Fragment</font> and the additional fees necessary, come and find me. I'll make sure your fishing rod tums out exceptionally well.<br>
Like I told you before, you can also <font color="LEVEL">improve the performance</font> of your rod, so investigate thoroughly. To improve your fishing rod's performance, you will need your <font color="LEVEL">Master Fishing Rod, Sturdy Fishing Rod, Santiago's Reel Fragment</font>, and some other things.<br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 1">Back</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Fishing Guild Leader Santiago:<br>
So what does the Master Fishing Rod benefit you?<br>
Of course you're curious. With the Master Fishing Rod, you can catch fish faster and more conveniently. A Sturdy Fishing Rod means that you expend less energy trying to catch your fish, you see.<br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 2">Back</Button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Fishing Guild Leader Santiago:<br>
Sorry, but I'm forbidden by my guild from doing business with criminals like you!
</body></html>

View File

@@ -0,0 +1,7 @@
<html><body>Fishing Guild Leader Santiago:<br>
Hey there isnt a great day to fish,rain or shine.the weater just changes the experience.<br>
Come to think of it, I haven't even introduced myself to you. I'm Santiago, and i've become the new leader of the Fishing Guild.Before I took this job,through, i was a Professional Fisher who used to venture out onto the High seas where I fought with the Largest of fish.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Link fisherman/fishing_manual001.htm">"Tell me about fishing."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 1">"Tell me about the Angler's Fishing Rod."</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@@ -197,14 +197,12 @@
10563 Control of Power
10564 Prove Progress
10565 Nothing Is Impossible
10566 Best Choice
10567 Special Mission: Nornil's Garden
10568 Kamael's Technological Advancement
10569 Declaration of War
10570 Hurrah for Kamael's Independence
10571 Strategic Reconciliation
10572 To Expel the Embryo's Forces
10575 Let's Go Fishing
10576 Glittering Weapons
10577 Temper a Rusting Blade
10578 The Soul of a Sword

View File

@@ -62,6 +62,7 @@ public class Q00937_ToReviveTheFishingGuild extends Quest
private static final int BATIDAE = 31989;
private static final int EINDARKNER = 31697;
private static final int GALBA = 32007;
private static final int SANTIAGO = 34138;
// Reward
private static final int BASIC_SUPPLY_BOX = 47571;
private static final int INTERMEDIATE_SUPPLY_BOX = 47572;
@@ -72,8 +73,8 @@ public class Q00937_ToReviveTheFishingGuild extends Quest
public Q00937_ToReviveTheFishingGuild()
{
super(937);
addStartNpc(OFULLE, LINNAEUS, PERELIN, BLEAKER, CYANO, PAMFUS, LANOSCO, HUFS, MONAKAN, BERIX, LITULON, WILLIE, HILGENDORF, PLATIS, KLAUS, BATIDAE, EINDARKNER, GALBA);
addTalkId(OFULLE, LINNAEUS, PERELIN, BLEAKER, CYANO, PAMFUS, LANOSCO, HUFS, MONAKAN, BERIX, LITULON, WILLIE, HILGENDORF, PLATIS, KLAUS, BATIDAE, EINDARKNER, GALBA);
addStartNpc(OFULLE, LINNAEUS, PERELIN, BLEAKER, CYANO, PAMFUS, LANOSCO, HUFS, MONAKAN, BERIX, LITULON, WILLIE, HILGENDORF, PLATIS, KLAUS, BATIDAE, EINDARKNER, GALBA, SANTIAGO);
addTalkId(OFULLE, LINNAEUS, PERELIN, BLEAKER, CYANO, PAMFUS, LANOSCO, HUFS, MONAKAN, BERIX, LITULON, WILLIE, HILGENDORF, PLATIS, KLAUS, BATIDAE, EINDARKNER, GALBA, SANTIAGO);
addCondMinLevel(MIN_LEVEL, "noLevel.htm");
}
@@ -174,6 +175,7 @@ public class Q00937_ToReviveTheFishingGuild extends Quest
{
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
sendNpcLogList(player);
}
}

View File

@@ -0,0 +1,4 @@
<html><body>Herphah:<br>
Do you think continuous fighting is the only way of becoming strong?That's a serious mistake.There are many other ways to become stronger.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10566_BestChoice 34362-02.htm">"Go on."</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Herphah:<br>
Weapon enhancement and fishing are goot examples.They can strenghten you indirectly.You should make use of every possible means to become stronger.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10566_BestChoice 34362-03.htm">"Go on."</button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Herphah:<br>
So,I´m going to give you a chance to experience all of them.What do you think?Are you moved by my Generosity?.<br>
Say yes,Otherwise,I won´t help you.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10566_BestChoice 34362-04.htm">"Yes,I am."</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Herphah:<br>
Alright.Complete the missions these people give you and bring back their certificates.Complete the fishing mission from <font color="LEVEL">Fishing GuildMaster Santiago</font> in Heine,the enchanting mission from <font color="LEVEL">Blacksmith Rupio</font> in the town of Giran, the augmenting mission from <font color="LEVEL">Head Blacksmith Flutter</font> in the Town of Oren, the Soul Crystal mission from <font color="LEVEL">Blacksmith Vincenz</font> in the Town of Rune, and the attribute mission from <font color="LEVEL">Head Blacksmith Ferris</font> in the Town of Aden.<br>
If you are confused about who to go to find,look at the list from the mission I gave You. That's it.<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Herphah:<br>
I'll tell you again. Complete the missions these people give you and bring back their certificates. Complete the fishing mission from <font color="LEVEL">Fishing GuildMaster Santiago</font> in Heine, the enchanting mission from <font color="LEVEL">Blacksmith Rupio</font> in the town of Giran, the augmenting mission from <font color="LEVEL">Head Blacksmith Flutter</font> in the Town of Oren, the Soul Crystal mission from <font color="LEVEL">Blacksmith Vincenz</font> in the Town of Rune, and the attribute mission from <font color="LEVEL">Head Blacksmith Ferris</font> in the Town of Aden.<br>
If you are confused about who to go to find,look at the list from the mission I gave You. That's it.<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Herphah:<br>
Five certificates... you completed all the missions.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10566_BestChoice 34362-07.html">"Yes,I did."</button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Herphah:<br>
Good job! Time to try other methods I taught you.You shouldn't get lazy to become strong.<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Guild Leader Santiago:<br>
Hey, let nature take its course. It's not good for us to go against it.<br>
(Only Premium characters who have the quest "Best Choice" in progress, can play this quest.)<br>
</body></html>

View File

@@ -0,0 +1,123 @@
/*
* 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.Q10566_BestChoice;
import org.l2jmobius.gameserver.enums.QuestType;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State;
/**
* Best Choice (10566)
* @URL https://l2wiki.com/Best_Choice
* @author Werum / Standardization by NightBR
*/
public class Q10566_BestChoice extends Quest
{
// NPC
private static final int HERPHAH = 34362;
// Misc
private static final int MIN_LEVEL = 95;
// Items
private static final int CERTIFICATE_SANTIAGO = 48173;
private static final int CERTIFICATE_RUPIO = 48174;
private static final int CERTIFICATE_FLUTTER = 48175;
private static final int CERTIFICATE_VINCENZ = 48176;
private static final int CERTIFICATE_FERRIS = 48177;
private static final int HERPHAHS_SUPPORT_BOX = 48250;
private static final int HERPHAHS_MISSION_LIST = 48172;
public Q10566_BestChoice()
{
super(10566);
addStartNpc(HERPHAH);
addTalkId(HERPHAH);
addCondMinLevel(MIN_LEVEL, "noLevel.html");
registerQuestItems(CERTIFICATE_SANTIAGO, CERTIFICATE_RUPIO, CERTIFICATE_FLUTTER, CERTIFICATE_VINCENZ, CERTIFICATE_FERRIS, HERPHAHS_MISSION_LIST);
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return getNoQuestMsg(player);
}
String htmltext = null;
switch (event)
{
case "34362-02.htm":
case "34362-03.htm":
{
htmltext = event;
break;
}
case "34362-04.htm":
{
qs.startQuest();
giveItems(player, HERPHAHS_MISSION_LIST, 1);
break;
}
case "34362-07.html":
{
giveItems(player, HERPHAHS_SUPPORT_BOX, 1);
qs.exitQuest(QuestType.ONE_TIME, true);
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, PlayerInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
switch (qs.getState())
{
case State.CREATED:
{
htmltext = (player.hasPremiumStatus()) ? "34362-01.htm" : "34362-99.html";
break;
}
case State.STARTED:
{
if (qs.isCond(1))
{
boolean hasItems = hasQuestItems(player, CERTIFICATE_SANTIAGO, CERTIFICATE_RUPIO, CERTIFICATE_FLUTTER, CERTIFICATE_VINCENZ, CERTIFICATE_FERRIS);
// Chck if player has the necessary quest items to complete the quest
if (hasItems)
{
qs.setCond(2, true);
}
htmltext = (hasItems) ? "34362-06.html" : "34362-05.html";
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
}

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Guild Member:<br>
Hmm, it would seem that it's a bit too early still to discuss the Fishing Guild with you. Please return after you've become stronger.<br>
(Only characters with Lv. 95 or above may undertake this quest.)
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Guild Leader Santiago:<br>
Could it be that you'd like to learn how to fish, but don't know where to start or don't have the necessary equipment? Oh, you've come to just the place. I have a great opportunity for you.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10575_LetsGoFishing 34138-02.htm">"Go on."</button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Fishing Guild Leader Santiago:<br>
Since you agreed, I'll take it that you accepted the experience. I'll explain in simple terms, you always need to learn the theory first.<br>
In order to fish, you need to find a <font color="LEVEL">fishing dock</font>. Once you arrive at the right spot, you'll see the button on the right side of your screen that alerts you that you can fish. If you see that button, it means you've found a right spot.<br>
Fishing docks are at the <font color="LEVEL">Iris Lake, Narsell Lake, Giran Harbor. near the Plains of the Lizardmen, the banks near the Town of Gludio, the Neutral Zone, Heine, Fellmere Lake, and the bridge near the Town of Giran</font>. Understand so far?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10575_LetsGoFishing 34138-03.html">"I Understand."</button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Fishing Guild Leader Santiago:<br>
Then you'll need to prepare your fishing tools. You'll need <font color="LEVEL">Fishing Rod</font> and <font color="LEVEL">Bait</font>. You can only fish if you have them.<br>
You can receive the Normal Bait from me, but if you want to catch more expensive fish, I recommend you use the Special Bait. I have never seen Special Bait, but I heard that you can get it from the boxes you get from fishing.<br>
You can buy fishing rods from Fishing Guild Members, but I'll give you one for practice. If you already have a fishing rod, you can use that one. already have a fishing rod, you can use that one. Sounds easy, right?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10575_LetsGoFishing 34138-04.html">"Yes,got it."</button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Fishing Guild Leader Santiago:<br>
One more thing! I must tell you about <font color="LEVEL">Fishing Shots</font>. It's like applying Soulshots to Fishing. When you fish, use this item to <font color="LEVEL">increase the chances of catching fish</font>. You can buy them from Fishing Guild Members and register it in the shortcuts to use them automatically.<br>
I won't give you any right now since you are practicing, but if you want to get them yourself... go ahead.<br>
That should be everything I need to explain. Let's get practicing now!
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10575_LetsGoFishing 34138-05.html">"Tell me about practice."</button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Fishing Guild Leader Santiago:<br>
Well.. practice is... practice, what else? You'll be having a go at fishing. Find a fishing dock, and use the fishing tools to catch a fish.<br>
Well, I'll give you the things you need. Your goal is to catch <font color="LEVEL">5 Practice Fish</font>. If you succeed, you won't be a complete newbie anymore.<br>
Oh, remember that <font color="LEVEL">practice fish can only be caught using the practice bait</font> I'll be giving you. It isn't worth much, but you'll catch them faster than normal fish, and that makes them perfect for practice!<br>
Good luck to you, then!
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Fishing Guild Leader Santiago:<br>
Ah, you've caught all the practice fish you need.<br>
So? It's not that hard to fish, right? And it's fun!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10575_LetsGoFishing 34138-07.html">"Yes,it's fun."</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Guild Leader Santiago:<br>
Yes, great.<br>
I'll give you a box with fishing supplies as a reward. How about making it into your new hobby? Hahaha!<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Guild Leader Santiago:<br>
Hey, let nature take its course. It's not good for us to go against it.<br>
(Only Premium characters who have the quest "Best Choice" in progress, can play this quest.)
</body></html>

View File

@@ -0,0 +1,190 @@
/*
* 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.Q10575_LetsGoFishing;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.enums.QuestType;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.events.EventType;
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
import org.l2jmobius.gameserver.model.events.annotations.RegisterType;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerFishing;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State;
import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import org.l2jmobius.gameserver.network.serverpackets.fishing.ExFishingEnd.FishingEndReason;
import quests.Q10566_BestChoice.Q10566_BestChoice;
/**
* Let's Go Fishing (10575)
* @URL https://l2wiki.com/Let%27s_Go_Fishing
* @author NightBR / htmls: by Werum
*/
public class Q10575_LetsGoFishing extends Quest
{
// NPCs
private static final int SANTIAGO = 34138;
// Items
private static final int PRACTICE_BAIT = 46737;
private static final int PRACTICE_FISH = 46736;
private static final int PRACTICE_FISHING_ROD = 46738;
// Rewards
private static final int XP = 597699960;
private static final int SP = 597690;
private static final int CERTIFICATE_FROM_SANTIAGO = 48173;
private static final int FISHING_SHOT = 38154;
private static final int REWARD_FISHING_ROD_PACK = 46739;
private static final int BAIT = 48537;
// Misc
private static final int MIN_LEVEL = 95;
private static final String COUNT_VAR = "FishWinCount";
private static final int NPCSTRING_ID = NpcStringId.CATCH_PRACTICE_FISH.getId();
public Q10575_LetsGoFishing()
{
super(10575);
addStartNpc(SANTIAGO);
addTalkId(SANTIAGO);
registerQuestItems(PRACTICE_BAIT, PRACTICE_FISH, PRACTICE_FISHING_ROD);
addCondMinLevel(MIN_LEVEL, "noLevel.htm");
addCondStartedQuest(Q10566_BestChoice.class.getSimpleName(), "34138-99.html");
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "34138-03.html":
case "34138-04.html":
{
htmltext = event;
break;
}
case "34138-02.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "34138-05.html":
{
// show Service/Help/Fishing page
player.sendPacket(new ExTutorialShowId(111));
qs.setCond(2, true);
giveItems(player, PRACTICE_BAIT, 50);
giveItems(player, PRACTICE_FISHING_ROD, 1);
htmltext = event;
break;
}
case "34138-07.html":
{
if (qs.isCond(3))
{
addExpAndSp(player, XP, SP);
giveItems(player, CERTIFICATE_FROM_SANTIAGO, 1);
giveItems(player, FISHING_SHOT, 60);
giveItems(player, REWARD_FISHING_ROD_PACK, 1);
giveItems(player, BAIT, 60);
qs.exitQuest(QuestType.ONE_TIME, true);
htmltext = event;
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, PlayerInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
switch (qs.getState())
{
case State.CREATED:
{
htmltext = (player.hasPremiumStatus()) ? "34138-01.htm" : "34138-99.html";
break;
}
case State.STARTED:
{
htmltext = (qs.getCond() <= 2) ? "34138-05.html" : "34138-06.html";
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
@RegisterEvent(EventType.ON_PLAYER_FISHING)
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
public void onPlayerFishing(OnPlayerFishing event)
{
final PlayerInstance player = event.getPlayer();
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(2) && (event.getReason() == FishingEndReason.WIN))
{
int count = qs.getInt(COUNT_VAR);
qs.set(COUNT_VAR, ++count);
if (count >= 5)
{
qs.setCond(3, true);
}
else
{
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
sendNpcLogList(player);
}
}
@Override
public Set<NpcLogListHolder> getNpcLogList(PlayerInstance player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(2))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NPCSTRING_ID, true, qs.getInt(COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@@ -0,0 +1,4 @@
<html><body>Fishing Guild Member:<br>
Hmm, it would seem that it's a bit too early still to discuss the Fishing Guild with you. Please return after you've become stronger.<br>
(Only characters with Lv. 95 or above may undertake this quest.)
</body></html>

View File

@@ -306,6 +306,8 @@ import quests.Q10544_SeekerSupplies.Q10544_SeekerSupplies;
import quests.Q10560_WayOfWanderingKnight.Q10560_WayOfWanderingKnight;
import quests.Q10561_AcrossTheDeathLine.Q10561_AcrossTheDeathLine;
import quests.Q10562_TakeUpArms.Q10562_TakeUpArms;
import quests.Q10566_BestChoice.Q10566_BestChoice;
import quests.Q10575_LetsGoFishing.Q10575_LetsGoFishing;
import quests.Q10658_MakkumInTheDimension.Q10658_MakkumInTheDimension;
import quests.Q10701_TheRoadToDestruction.Q10701_TheRoadToDestruction;
import quests.Q10702_TheRoadToInfinity.Q10702_TheRoadToInfinity;
@@ -831,14 +833,14 @@ public class QuestMasterHandler
Q10563_ControlOfPower.class, // TODO: Not done.
Q10564_ProveProgress.class, // TODO: Not done.
Q10565_NothingIsImpossible.class, // TODO: Not done.
Q10566_BestChoice.class, // TODO: Not done.
Q10566_BestChoice.class,
Q10567_SpecialMissionNornilsGarden.class, // TODO: Not done.
Q10568_KamaelsTechnologicalAdvancement.class, // TODO: Not done.
Q10569_DeclarationOfWar.class, // TODO: Not done.
Q10570_HurrahForKamaelsIndependence.class, // TODO: Not done.
Q10571_StrategicReconciliation.class, // TODO: Not done.
Q10572_ToExpelTheEmbryosForces.class, // TODO: Not done.
Q10575_LetsGoFishing.class, // TODO: Not done.
Q10575_LetsGoFishing.class,
Q10576_GlitteringWeapons.class, // TODO: Not done.
Q10577_TemperARustingBlade.class, // TODO: Not done.
Q10578_TheSoulOfASword.class, // TODO: Not done.

View File

@@ -1,36 +0,0 @@
/*
* 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.not_done;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.quest.Quest;
/**
* @author Mobius
*/
public class Q10566_BestChoice extends Quest
{
private static final int START_NPC = 34362;
public Q10566_BestChoice()
{
super(10566);
addStartNpc(START_NPC);
addTalkId(START_NPC);
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
}
}

View File

@@ -1,36 +0,0 @@
/*
* 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.not_done;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.model.quest.Quest;
/**
* @author Mobius
*/
public class Q10575_LetsGoFishing extends Quest
{
private static final int START_NPC = 34138;
public Q10575_LetsGoFishing()
{
super(10575);
addStartNpc(START_NPC);
addTalkId(START_NPC);
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
}
}

View File

@@ -76,6 +76,7 @@
<npc id="36706" x="115020" y="220453" z="-3728" heading="48207" respawnTime="60sec" /> <!-- Mermoden -->
<npc id="33946" x="111126" y="219190" z="-3543" heading="59402" respawnTime="60sec" /> <!-- Adventure Guildsman -->
<npc id="34156" x="111286" y="219274" z="-3550" heading="49151" respawnTime="60sec" /> <!-- Peeves -->
<npc id="34138" x="110600" y="220840" z="-3679" heading="56835" respawnTime="60sec" /> <!-- Santiago -->
</group>
</spawn>
</list>

View File

@@ -744,7 +744,7 @@
<height normal="9" />
</collision>
</npc>
<npc id="34138" level="85" type="Npc" name="Santiago" title="Fishing Guild Leader">
<npc id="34138" level="85" type="Fisherman" name="Santiago" title="Fishing Guild Leader">
<!-- AUTO GENERATED NPC TODO: FIX IT -->
<race>HUMAN</race>
<sex>FEMALE</sex>