Faction quest NPCs and related additions.

Contributed by NightBR.
This commit is contained in:
MobiusDevelopment 2019-04-03 22:19:25 +00:00
parent 23e3c14278
commit 525aa970c5
233 changed files with 3806 additions and 351 deletions

View File

@ -0,0 +1,4 @@
<html><body>Tarti:<br>
What is it? Just tell me if you want to undertake the missions of Unworldly Visitors.<br>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Herphah:<br>
Is there?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 0">Return</Button>
</body></html>

View File

@ -0,0 +1,9 @@
<html><body>Herphah:<br>
I traveled around the continent and decided to stay here for a while... Then, I saw you! What fate!<br>
If you are wandering without knowing what to do, I can help you. How about starting the <font color="LEVEL">Way of Wandering Knight </font>?
I also recommend visiting the Adventure Guild, which has many missions appropriate for you.<br>
I'm now working with the <font color="LEVEL">Adventure Guild </font>so you can trust them.<br>
Let me know if you need any advice.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Herphah 34362-01.html"><font color="LEVEL">"Is there any other ways of growth?"</font></button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -0,0 +1,63 @@
/*
* 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 ai.areas.Aden.Herphah;
import com.l2jmobius.gameserver.model.actor.Npc;
import com.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import com.l2jmobius.gameserver.network.serverpackets.PlaySound;
import ai.AbstractNpcAI;
/**
* Aden Faction Npc AI
* @author NightBR
* @date 2019-03-27
*/
public class Herphah extends AbstractNpcAI
{
// NPC
private static final int HERPHAH = 34362;
private Herphah()
{
addStartNpc(HERPHAH);
addTalkId(HERPHAH);
addFirstTalkId(HERPHAH);
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
if (event.equals("34362-01.html"))
{
// TODO: return event;
}
return null;
}
@Override
public String onFirstTalk(Npc npc, PlayerInstance player)
{
player.sendPacket(new PlaySound(3, "Npcdialog1.herphah_faction_1", 0, 0, 0, 0, 0));
return "34362.html";
}
public static void main(String[] args)
{
new Herphah();
}
}

View File

@ -0,0 +1,8 @@
<html><body>Adventure Guildsman Penny:<br>
Your ability is a reflection of your life. If you continue to do your best, your ability will grow.<br>
Me? As you see, I don't have any talent for hunting, but I'm quite good at distributing tasks to adventures.<br>
If you have a <font color="LEVEL">Medal of Honor </font>or a<font color="LEVEL"> Grand Medal of Honor </font>I'll raise your amity points, so let me know.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Penny medal"><font color="LEVEL">"I have a Medal of Honor."</font></button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Penny grand_medal"><font color="LEVEL">"I have a Grand Medal of Honor."</font></button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -0,0 +1,72 @@
/*
* 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 ai.areas.Aden.Penny;
import com.l2jmobius.gameserver.model.actor.Npc;
import com.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import com.l2jmobius.gameserver.network.serverpackets.PlaySound;
import ai.AbstractNpcAI;
/**
* Aden Faction Npc AI
* @author NightBR
* @date 2019-03-27
*/
public class Penny extends AbstractNpcAI
{
// NPC
private static final int PENNY = 34413;
private Penny()
{
addStartNpc(PENNY);
addTalkId(PENNY);
addFirstTalkId(PENNY);
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
switch (event)
{
case "medal":
{
// Take medal / Give rep?
return null;
}
case "grand_medal":
{
// Take medal / Give rep?
return null;
}
}
return null;
}
@Override
public String onFirstTalk(Npc npc, PlayerInstance player)
{
player.sendPacket(new PlaySound(3, "Npcdialog1.penny_faction_1", 0, 0, 0, 0, 0));
return "34413.html";
}
public static void main(String[] args)
{
new Penny();
}
}

View File

@ -2,5 +2,5 @@
My, you don't know anything about the history of Kartia's Labyrinth, do you?<br>
But I can see you're curious about its history.<br>
Well, if you bring me something they left behind, I will probably be able to give you some information. A cronicle, perhaps?<br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest KartiasLabyrinth 33647-3.htm">Quest</Button>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest KartiasLabyrinth 33647-3.htm">I see</Button>
</body></html>

View File

@ -2,7 +2,6 @@
561 Basic Mission: Harnak Underground Ruins
562 Basic Mission: Altar of Evil
563 Basic Mission: Bloody Swampland
564 Basic Mission: Kartia's Labyrinth (Solo)
565 Basic Mission: Fairy Settlement - West
566 Basic Mission: Fairy Settlement - East
567 Basic Mission: Isle of Souls
@ -184,8 +183,6 @@
10557 New Power, Winds of Fate
10558 Hidden in Chaos
10559 Before the Guide
10560 Way of Wandering Knight
10561 Across the Death Line
10562 Take Up Arms
10563 Control of Power
10564 Prove Progress

View File

@ -0,0 +1,4 @@
<html><body>Kartia Researcher:<br>
The Adventure Guild is very famous, almost everyone knows about them. If they're the ones who sent you, I'm sure you're trustworthy!<br>
To do the basic mission quest, <font color="LEVEL">Kartia's Labyrinth (Solo)</font>, you have to do the <font color="LEVEL">"Incarnation of Greed Zellaka (Solo), Incarnation of Jealousy Pelline (Solo) or Incarnation of Gluttony Kalios (Solo)"</font> quests from Kartia Researcher.<br>
</body></html>

View File

@ -0,0 +1,3 @@
<ht<html><body>Kartia Researcher:<br>
Now go back to Adventure Guildsman Penny.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Adventure Guildsman Penny:<br>
Your're the one that Hephah has sent, right? If not, you should go meet Herphah and receive a mission from her before you continue. If you think it doesn't matter, I can continue anyway. Do you want me to continue?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00564_BasicMissionKartiasLabyrinthSolo 34413-02.htm">"Sure, no problem!"</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Adventure Guildsman Penny:<br>
Herphah wants you to do some missions, and I'll chose an appropriate mission depending on your relationship with us at the Adventure Guild.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00564_BasicMissionKartiasLabyrinthSolo 34413-03.htm">"Go on."</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Adventure Guildsman Penny:<br>
Your mission is to assist with task at Kartia's Labyrinth. If are successful, our Adventure Guild will give you additional rewards on top of the mission payment and, your relationship with our faction will grow even stronger.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00564_BasicMissionKartiasLabyrinthSolo 34413-04.html">"Alright."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Adventure Guildsman Penny:<br>
Good choice. Now, let me tell you about the mission.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00564_BasicMissionKartiasLabyrinthSolo 34413-05.html">"Go on."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Adventure Guildsman Penny:<br>
To do this mission, you have to go to <font color="LEVEL">Kartia's Labyrinth</font>. It is called an <font color="LEVEL">Instanced Zone</font>, and is different from normal hunting grounds.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00564_BasicMissionKartiasLabyrinthSolo 34413-06.html">"What's the difference?"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Adventure Guildsman Penny:<br>
Only you and your party can enter the <font color="LEVEL">Instanced Zone Dungeon</font>. That way, you can focus on hunting, without worring about outsiders. But there's a catch, you can only enter the dungeon a limited number of times at certain hours.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00564_BasicMissionKartiasLabyrinthSolo 34413-07.html">"Could you tell me more about the mission?"</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Adventure Guildsman Penny:<br>
To do the mission, you have to meet the <font color="LEVEL">Kartia Researcher</font> at the Town of Aden. Do the mission that they give. Then, come back to me.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Adventure Guildsman Penny:<br>
Welcome back! So, did you di a good job?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00564_BasicMissionKartiasLabyrinthSolo 34413-09.html">"Yes, I did."</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Adventure Guildsman Penny:<br>
Thanks, you've done a great job! I'm sure eveyone in the Adventure Guild will know your name now. If there is another opportunity, we'd love for you to help us again. Good luck and farewell!<br>
</body></html>

View File

@ -0,0 +1,207 @@
/*
* 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.Q00564_BasicMissionKartiasLabyrinthSolo;
import com.l2jmobius.gameserver.enums.Faction;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.model.actor.Npc;
import com.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
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.serverpackets.ExTutorialShowId;
/**
* Q00564_KartiasLabyrinthSolo
* @URL https://l2wiki.com/Basic_Mission:_Kartia%27s_Labyrinth_(Solo)
* @author NightBR
*/
public class Q00564_BasicMissionKartiasLabyrinthSolo extends Quest
{
// NPCs
private static final int PENNY = 34413;
private static final int KARTIA = 33647;
// Reward's
private static final long EXP = 1409345453;
private static final int SP = 3968411;
private static final int SCROLL_OF_ESCAPE_KARTIAS_LABYRINTH = 39497;
// Misc
private static final int MIN_LEVEL = 85;
private static final int MAX_LEVEL = 97;
public Q00564_BasicMissionKartiasLabyrinthSolo()
{
super(564);
addStartNpc(PENNY);
addTalkId(PENNY, KARTIA);
addCondLevel(MIN_LEVEL, MAX_LEVEL, "nolevel.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 "34413-02.htm":
case "34413-03.htm":
case "34413-05.html":
{
htmltext = event;
break;
}
case "34413-04.html":
{
qs.startQuest();
htmltext = event;
break;
}
case "34413-06.html":
{
// Show Service/Help/Instance Zone page
player.sendPacket(new ExTutorialShowId(29));
htmltext = event;
break;
}
case "34413-07.html":
{
qs.setCond(2, true);
htmltext = event;
break;
}
case "34413-09.html":
{
StringBuilder str = new StringBuilder("000");
checkQuestCompleted(player, str); // Initialize the array with all quests completed
if (str.indexOf("1") == -1) // verify if no quest completed
{
htmltext = "34413-07.html";
}
else
{
if (str.charAt(0) == '1')
{
addFactionPoints(player, Faction.ADVENTURE_GUILD, 100); // add 100 points to ADVENTURE_GUILD Faction
}
if (str.charAt(1) == '1')
{
addFactionPoints(player, Faction.ADVENTURE_GUILD, 125);// add 125 points to ADVENTURE_GUILD Faction
}
if (str.charAt(2) == '1')
{
addFactionPoints(player, Faction.ADVENTURE_GUILD, 150);// add 150 points to ADVENTURE_GUILD Faction
}
giveItems(player, SCROLL_OF_ESCAPE_KARTIAS_LABYRINTH, 1);
addExpAndSp(player, EXP, SP);
qs.exitQuest(QuestType.DAILY, 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:
{
if (npc.getId() == PENNY)
{
htmltext = "34413-01.htm";
}
break;
}
case State.STARTED:
{
switch (npc.getId())
{
case PENNY:
{
htmltext = qs.isCond(2) ? "34413-07.html" : "34413-08.html";
break;
}
case KARTIA:
{
if (qs.isCond(2))
{
StringBuilder str = new StringBuilder("000");
checkQuestCompleted(player, str); // Initialize the array with all quests completed
if (str.indexOf("1") != -1) // verify if any quest completed
{
qs.setCond(4, true);
htmltext = "33647-02.html";
}
else
{
htmltext = "33647-01.html";
}
}
break;
}
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
private StringBuilder checkQuestCompleted(PlayerInstance player, StringBuilder string)
{
int index = 0;
char ch = '1';
final QuestState st1 = player.getQuestState("Q00497_IncarnationOfGreedZellakaSolo");
if ((st1 != null) && st1.isCompleted())
{
index = 0;
string.setCharAt(index, ch);
}
final QuestState st2 = player.getQuestState("Q00498_IncarnationOfJealousyPellineSolo");
if ((st2 != null) && st2.isCompleted())
{
index = 1;
string.setCharAt(index, ch);
}
final QuestState st3 = player.getQuestState("Q00499_IncarnationOfGluttonyKaliosSolo");
if ((st3 != null) && st3.isCompleted())
{
index = 2;
string.setCharAt(index, ch);
}
return string;
}
}

View File

@ -0,0 +1,4 @@
<html><body>Penny:<br>
I don't understand why someone like you is interested in this mission?<br>
(Only characters above Lv.85.)
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Adventurer's Guide:<br>
Welcome! Refresh yourselves! i was waiting!<br>
I was watching you when you were fighting the dummy. Did you notice?<br>
I can give you a little bit fo help that will <font color="LEVEL">protect your body </font>, and allow you to wield <font color="LEVEL">stronger powers</font> when attacking the enemy. In short, you'll be taught how to use <font color="LEVEL">buffs.</font><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10560_WayOfWanderingKnight 32327-2.htm">"What's a buff?"</button>
</body></html>

View File

@ -0,0 +1,8 @@
<html><body>Adventurer's Guide:<br>
Buffs help to ease the impact if you're hit while making your own attacks more effective. The following buffs can be used by all classes.<br>
<font color="LEVEL">Horn Melody Lv1/Drum Melody Lv1</font><br>
<font color="LEVEL">Pipe Organ Melody Lv1/Guitar Melody Lv1</font><br>
<font color="LEVEL">Prevating Sonata / Daring Sonata / Refreshing Sonata</font><br>
Now, this is important. There are special buffs for each class that are not shared.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10560_WayOfWanderingKnight 32327-3.htm">"Tell me about these other buffs."</button>
</body></html>

View File

@ -0,0 +1,8 @@
<html><body>Adventurer's Guide:<br>
Knight's Harmony (Defense Warrior).<br>
Warrior's Harmony (Attack Warrior).<br>
Wizard's Harmony (Wizard).<br>
That's it.<br>
The one right for you is... <font color="LEVEL">%classbuff%'s Harmony</font><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Quest Q10560_WayOfWanderingKnight %classbuff%">"Receive a %classbuff%'s buff set."</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Herphah:<br>
Look at you. Your fresh, hopeful face tell me that you're a novice adventurer. My job is to lead young adventurers like you to become future leaders.<br>
My systematic training will take you to the right path. You only need to follow my instructions.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10560_WayOfWanderingKnight 34362-02.htm">"Go on."</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Herphah:<br>
You must have had a good reason for choosing to live as an adventurer in this tough land. Whatever it was, I admit you have a potential.<br>
But you're far from being perfect. More practice? Yes, but aimless diligence will get you nowhere. You need someone to guide you. I can help you if you promise to follow my instructions.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10560_WayOfWanderingKnight 34362-03.htm">"Go on."</button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Herphah:<br>
No matter how goof you are, you can't do everything alone. That's the reason most heroes and adventurers form or join a clan to make allies. The clan is a blood brotherhood tha binds its members for the same cause.<br>
They help and motivate each other and can make more progress than adventurers who work alone.<br>
This is the first and most important lesson you should remember.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10560_WayOfWanderingKnight 34362-04.htm">"Alright."</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Herphah:<br>
Although you have little experience, some heroes may still want to work with you because it's almost impossible to work alone in this world. So, I recommend you to <font color="LEVEL">join a clan</font> and make allies. Or, you can <font color="LEVEL">create a new clan.</font> It's more difficult, but you will have men fighting under your banner.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10560_WayOfWanderingKnight 34362-05.htm">"Go on."</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Herphah:<br>
To <font color="LEVEL">join a clan</font>, go the Clan Membership System and check which clans are recruiting members.<br>
You can search for a clan that is looking for members and join.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10560_WayOfWanderingKnight 34362-06.htm">"Go on."</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Herphah:<br>
To <font color="LEVEL">create a clan</font>, go the High Priest, Grand Master, High Prefect, or other clan officers. You can find them in any village. You must be level 10 or higher to create a clan.<br>
Creating a new clan is more difficult and more complicated than joining an existing clan, but it would be completely customizable to your will.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10560_WayOfWanderingKnight 34362-07.htm">"Go on."</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Herphah:<br>
But the clan itself won't make you stronger. You must train and strengthen yourself by fighting enemies.<br>
You must be well prepared to fight enemies. As you know, just having weapons and equipament doesn't mean you will be successful in the hunt.<br>
Go to the <font color="LEVEL">Adventure's Guide </font>in Town od Aden and ask how to get support magic that will help you in hunting.<br>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Herphah:<br>
But the clan itself won't make you stronger. You must train and strengthen yourself by fighting enemies.<br>
You must be well prepared to fight enemies. As you know, just having weapons and equipament doesn't mean you will be successful in the hunt.<br>
Go to the <font color="LEVEL">Adventure's Guide </font>in Town od Aden and ask how to get support magic that will help you in hunting.<br>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Herphah:<br>
Did you get support magic from the Adeventurer's Guide? How does it feel to have the power that covers your weaknesses?<br>
You can receive support magic from the Adventurer's Guide in each village until you reach a certain level.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10560_WayOfWanderingKnight 34362-10.html">"All Right."</button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Herphah:<br>
Now I'll tell you how to win favor with organizations in this continent, raise their Amity Levels, and reap the benefits.<br>
Those organizations are called <font color="LEVEL">factions.</font> Each factions has its own goals and looks for adventurers who can help.<br>
if you help their missions, you can gain their gratitude and trust.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10560_WayOfWanderingKnight 34362-11.html">"All Right."</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Herphah:<br>
I know a faction that is in need of novice adventurers like you. It's called the <font color="LEVEL">Adventure Guild </font>.<br>
It's a group of public officers that the kingdom dispatches to help adventurers. I've heard it has some missions for novice adventurers. You should check them out.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10560_WayOfWanderingKnight 34362-12.html">"All Right."</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Herphah:<br>
An adventure Guildsman happens to be around here. Tell him that I introduced him to you. He will give you missions appropriate for your level and ability.<br>
Go talk to the Adventure Guild's Administrator <font color="LEVEL">Penny </font>.<br>
Carry out the Adventure Guild's missions and raise the Amity Level with the guild to level 1.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Herphah:<br>
How were the Adventure Guild's missions? Did you earn some amity points?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10560_WayOfWanderingKnight 34362-14.html">"Yes, I did."</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Herphah:<br>
I guess it's time to congratulate the kid for taking the first step on a real adventure. But this is just a beginning, so I prepared some things that could help you in the future.<br>
Among the items I gave you, the <font color="LEVEL">Elementary Seed Bracelet</font> has the ability to summon <font color="LEVEL">Agathion</font>. You can teleport to many large towns including here, the Town of Aden, so I imagine it'll be of great use to you. I also added some other features, so make sure to look at them.<br>
You still have much to learn. If you're ready to begin the next step, come see me again.<br>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Penny:<br>
Hello, Adventurer. I'm Penny, and I was dispatched from Adventure Guild to take charge in the Town of Aden.<br>
You said you were introduced by Herphah, right? She's been sending a lot of trainees lately. Can't believe she's the same person who used to run away when we asked for help.<br>
Oh, sorry for sidetracking. I do have one request to make.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10560_WayOfWanderingKnight 34413-2.htm">"What is it?"</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Penny:<br>
<br>
Is the mission that herphah gave you to achieve the Amity Level 1 of our Adventure Guild? To achieve that, you have to complete the mission that I give you. Then, you can raise the Amity Level so you can complete Herphah's mission.<br>
I believe you can do it. Complete the missions, starting from the ones that are feasible. If you want to receive a mission from Adventure Guild, please talk to me again.<br>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Penny:<br>
<br>
You reached Amity Level 1 with our Adventure Guild? I should be able to tell Herphah then.<br>
Thank you for your work.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10560_WayOfWanderingKnight 34413-4.htm">"I reached Amity Level 1 or above."</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Penny:<br>
<br>
I'll be sure to tell Herphah about this. You should go and see Herphah now.<br>
I'll see you again, soon.<br>
</body></html>

View File

@ -0,0 +1,300 @@
/*
* 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.Q10560_WayOfWanderingKnight;
import com.l2jmobius.gameserver.data.xml.impl.CategoryData;
import com.l2jmobius.gameserver.enums.CategoryType;
import com.l2jmobius.gameserver.enums.Faction;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.model.actor.Npc;
import com.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import com.l2jmobius.gameserver.model.base.ClassId;
import com.l2jmobius.gameserver.model.holders.SkillHolder;
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.model.skills.Skill;
import com.l2jmobius.gameserver.model.skills.SkillCaster;
import com.l2jmobius.gameserver.network.serverpackets.ExTutorialShowId;
import com.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml;
//import ai.others.AdventurersGuide.AdventurersGuide;
/**
* Way Of Wandering Knight (10560)
* @URL https://l2wiki.com/Way_of_Wandering_Knight
* @author NightBR
*/
public final class Q10560_WayOfWanderingKnight extends Quest
{
// NPCs
private static final int HERPHAH = 34362;
private static final int PENNY = 34413;
private static final int ADVENTURERS_GUIDE = 32327;
// Skills
private static final SkillHolder KNIGHT = new SkillHolder(15648, 1); // Knight's Harmony (Adventurer)
private static final SkillHolder WARRIOR = new SkillHolder(15649, 1); // Warrior's Harmony (Adventurer)
private static final SkillHolder WIZARD = new SkillHolder(15650, 1); // Wizard's Harmony (Adventurer)
private static final SkillHolder[] GROUP_BUFFS =
{
new SkillHolder(15642, 1), // Horn Melody (Adventurer)
new SkillHolder(15643, 1), // Drum Melody (Adventurer)
new SkillHolder(15644, 1), // Pipe Organ Melody (Adventurer)
new SkillHolder(15645, 1), // Guitar Melody (Adventurer)
new SkillHolder(15651, 1), // Prevailing Sonata (Adventurer)
new SkillHolder(15652, 1), // Daring Sonata (Adventurer)
new SkillHolder(15653, 1), // Refreshing Sonata (Adventurer)
};
// Reward's
private static final long EXP = 1889719478;
private static final int SP = 1700747;
private static final int SOUL_SHOT_GRADE_R = 22433;
private static final int BS_SHOT_GRADE_R = 22434;
private static final int PA_ART_OF_SEDUCTION = 37928;
private static final int ELEMENTARY_SEED_BRACELET = 48072;
// Misc
private static final int MIN_LEVEL = 85;
private static final int MAX_LEVEL = 97;
public Q10560_WayOfWanderingKnight()
{
super(10560);
addStartNpc(HERPHAH);
addTalkId(HERPHAH, PENNY, ADVENTURERS_GUIDE);
addCondMinLevel(MIN_LEVEL, "noLevel.html");
addCondMaxLevel(MAX_LEVEL, "noLevel.html");
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
final QuestState qs = getQuestState(player, false);
final ClassId classId = player.getClassId();
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "34362-02.htm":
case "34362-03.htm":
case "34362-11.html":
case "32327-2.htm":
{
htmltext = event;
break;
}
case "34362-04.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "34362-05.htm":
{
// Show Service/Help/Join a Clan page
player.sendPacket(new ExTutorialShowId(46));
htmltext = event;
break;
}
case "34362-06.htm":
{
// Show Service/Help/Creating a Clan page
player.sendPacket(new ExTutorialShowId(22));
htmltext = event;
break;
}
case "34362-07.htm":
{
qs.setCond(2, true);
htmltext = event;
break;
}
case "34362-10.html":
{
// Show Service/Help/Faction System page
player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\help_faction.htm", TutorialShowHtml.LARGE_WINDOW));
// TODO: Find the correct Id for player.sendPacket(new ExTutorialShowId(22));
qs.setCond(4, true);
htmltext = event;
break;
}
case "34362-12.html":
{
qs.setCond(5, true);
htmltext = event;
break;
}
case "34362-14.html":
{
if (player.getFactionLevel(Faction.ADVENTURE_GUILD) >= 1)
{
giveItems(player, SOUL_SHOT_GRADE_R, 1500);
giveItems(player, BS_SHOT_GRADE_R, 1500);
giveItems(player, PA_ART_OF_SEDUCTION, 5);
giveItems(player, ELEMENTARY_SEED_BRACELET, 1);
addExpAndSp(player, EXP, SP);
qs.exitQuest(QuestType.ONE_TIME, true);
htmltext = event;
}
else
{
htmltext = getHtm(player, "noAmity.htm").replaceAll("%name%", "Herphah");
}
break;
}
case "32327-3.htm":
{
if (CategoryData.getInstance().isInCategory(CategoryType.MAGE_GROUP, classId.getId()))
{
htmltext = getHtm(player, "32327-3.htm").replaceAll("%classbuff%", "Wizard");
}
else if (CategoryData.getInstance().isInCategory(CategoryType.ATTACKER_GROUP, classId.getId()))
{
htmltext = getHtm(player, "32327-3.htm").replaceAll("%classbuff%", "Warrior");
}
else if (CategoryData.getInstance().isInCategory(CategoryType.TANKER_GROUP, classId.getId()))
{
htmltext = getHtm(player, "32327-3.htm").replaceAll("%classbuff%", "Knight");
}
// Show Service/Help/Adventurer's Guide page
player.sendPacket(new ExTutorialShowId(25));
break;
}
case "Wizard":
{
htmltext = applyBuffs(npc, player, WIZARD.getSkill());
qs.setCond(3, true);
break;
}
case "Warrior":
{
htmltext = applyBuffs(npc, player, WARRIOR.getSkill());
qs.setCond(3, true);
break;
}
case "Knight":
{
htmltext = applyBuffs(npc, player, KNIGHT.getSkill());
qs.setCond(3, true);
break;
}
case "34413-2.htm":
{
qs.setCond(6, true);
htmltext = event;
break;
}
case "34413-4.htm":
{
// TODO: we need to add reward % of amity points to factions in all faction quests
// check if reached level 1 with Adventurer's Guild Faction
if (player.getFactionLevel(Faction.ADVENTURE_GUILD) >= 1)
{
qs.setCond(7, true);
htmltext = event;
}
else
{
htmltext = getHtm(player, "noAmity.htm").replaceAll("%name%", "Penny");
}
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:
{
if (npc.getId() == HERPHAH)
{
htmltext = "34362-01.htm";
}
break;
}
case State.STARTED:
{
switch (npc.getId())
{
case HERPHAH:
{
if (qs.isCond(3))
{
htmltext = "34362-09.html";
}
else if (qs.isCond(6) || qs.isCond(7))
{
htmltext = "34362-13.html";
}
break;
}
case PENNY:
{
if (qs.isCond(5))
{
htmltext = "34413-1.htm";
}
else if (qs.isCond(6))
{
htmltext = "34413-3.htm";
}
break;
}
case ADVENTURERS_GUIDE:
{
if (qs.isCond(2))
{
htmltext = "32327-1.htm";
}
break;
}
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
public String applyBuffs(Npc npc, PlayerInstance player, Skill skill)
{
for (SkillHolder holder : GROUP_BUFFS)
{
SkillCaster.triggerCast(npc, player, holder.getSkill());
}
SkillCaster.triggerCast(npc, player, skill);
return null;
}
}

View File

@ -0,0 +1,3 @@
<html><body>%name%:<br>
To reach Amity Level 1 with the Adventure Guild, you must complete the missions I told you about of the Adventure Guild.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Herphah:<br>
I don't understand why someone like you is interested in this mission?<br>
(Only characters above Lv.85.)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Shannon:<br>
I don't trust you.<br>
(Ertheia classes cannot perform this quest.)
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Herphah:<br>
You only made the first step. You will have much to learn. but, fortunately for you, there are a lot of people so desperate for help that they welcome rookies.<br>
Are you ready for the next mission?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10561_AcrossTheDeathLine 34362-02.htm">"Yes."</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Herphah:<br>
We are neither gods nor demons. I mean to say, we are mortal. You may have felt it in the previous course, but no matter how strong you are, you could be killed if you were attacked by a lot of enemies and seriously wounded.<br>
Generous gods of this world may protect you. But even then, their generosity has limit.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10561_AcrossTheDeathLine 34362-03.htm">"Go on."</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Herphah:<br>
You will often experience being dead or half-dead and will have to beg the gods for mercy. Such experiences may help you improve yourself, but it won't be pleasant.<br>
Keep in mind what I'm going to tell you. It will help you deal with such a crisis.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10561_AcrossTheDeathLine 34362-04.htm">"Alright."</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Herphah:<br>
Even if you are killedm don't worry. Death doesn't mean the end. You can resurrect and start again. However, the gods can't always save you from death without any consequences.<br>
You must get familiar with the <font color="LEVEL">Death Penalty</font>.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10561_AcrossTheDeathLine 34362-05.htm">"Go on."</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Herphah:<br>
If you die from a serious wound in the battle, you will revive in a nearby village, but you should pay the cost. It is called the <font color="LEVEL">Death Penalty</font>. You may lose some XP or experience the Death Penalty.<br>
If you lose more than the specified limit of XP after you reach level 85, you may possibly experience a <font color="LEVEL">level down</font>. B careful to avoid such disaster. Otherwise, you will lose what you've worked so hard to earn.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10561_AcrossTheDeathLine 34362-06.htm">"Go on."</button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Herphah:<br>
Are you worried? Relax. With the help of an ally, you can resurrect immediately where you died, without paying the <font color="LEVEL">Death Penalty</font>.<br>
A healer with the resurrection skill or someone with a resurrection item such as the Blessed Scroll of Resurrection can revive you.<br>
Others can help you, but that means you can help others too. Keep that in mind.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10561_AcrossTheDeathLine 34362-07.htm">"Alright."</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Herphah:<br>
You're finished the second basic course. I'll give you a mission that can help you grow further.<br>
Go find <font color="LEVEL">Adventure Guildsman Penny</font>. Carry out the missions of Adeventurer's Guides and raise the Amity Level with them to level 2.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Herphah:<br>
Penny told me that you raised the Amity Level with the Adventurer's Guild to Level 2.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10561_AcrossTheDeathLine 34362-09.html">"Yes I did"</button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Herphah:<br>
It gives my heart true joy to see you grow step by step. I've prepared some items to help you again.<br>
Do you see this <font color="LEVEL">Talisman - Destruction</font>? First, you must learn about <font color="LEVEL">Talismans</font>. A talisman is an item equipped in the right bracelet and has various effects like battle abillities and unique skills.<br>
unfortunately, you can't equip them on left bracelets like the Elementary Seed Bracelet i gave you last time. The left bracelet is usually used to summon Agathion, so remember that you need a right bracelet to equip a Talisman.<br>
If you keep getting stronget like this, I'm sure my days as your teacher are numbered. Come talk to me if you're ready to begin the next step.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Herphah:<br>
Hey, let nature take its course. It's not good for us to go against it.<br>
(Only those characters who have completed the quest "Way Of Wandering Knight" can play this quest.)
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Penny:<br>
Nice to see yiu again, Adventurer. Like I said before, the Adventure Guild is working hard to help you grow and settle down in Aden.<br>
Let's work hard for our next goal. As you complete the missions I give you, we will grow closer as well.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10561_AcrossTheDeathLine 34413-2.htm">"Go on"</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Penny:<br>
Now it's time that you reach Amity Level 2 with our Adventure Guild. Please complete the missions of the Adventure Guild in order to reach Level 2.<br>
Please let me know if you want to receive the missions for the Adventure Guild.<br>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Penny:<br>
You reached Amity Level 2 with our Adventure Guild? I should be able to tell Herphah then.<br>
Thank you for your work.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10561_AcrossTheDeathLine 34413-4.htm">"I reached Amity Level 1 or above."</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Penny:<br>
I'll be sure to tell Herphah about this. You should go and see Herphah now.<br>
I'll see you again, soon.<br>
</body></html>

View File

@ -0,0 +1,194 @@
/*
* 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.Q10561_AcrossTheDeathLine;
import com.l2jmobius.gameserver.enums.Faction;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.model.actor.Npc;
import com.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
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.serverpackets.ExTutorialShowId;
import quests.Q10560_WayOfWanderingKnight.Q10560_WayOfWanderingKnight;
/**
* Way Of Wandering Knight (10560)
* @URL https://l2wiki.com/Across_the_Death_Line
* @author NightBR
*/
public final class Q10561_AcrossTheDeathLine extends Quest
{
// NPCs
private static final int HERPHAH = 34362;
private static final int PENNY = 34413;
// Reward's
private static final long EXP = 1409345453;
private static final int SP = 3968411;
private static final int SOUL_SHOT_GRADE_R = 22433;
private static final int BS_SHOT_GRADE_R = 22434;
private static final int PA_ART_OF_SEDUCTION = 37928;
private static final int TALISMAN_DESTRUCTION = 34985;
// Misc
private static final int MIN_LEVEL = 85;
private static final int MAX_LEVEL = 97;
public Q10561_AcrossTheDeathLine()
{
super(10561);
addStartNpc(HERPHAH);
addTalkId(HERPHAH, PENNY);
addCondLevel(MIN_LEVEL, MAX_LEVEL, "nolevel.html");
addCondCompletedQuest(Q10560_WayOfWanderingKnight.class.getSimpleName(), "34362-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 "34362-02.htm":
case "34362-03.htm":
case "34362-05.htm":
case "34362-06.htm":
case "34362-11.html":
case "32327-2.htm":
{
htmltext = event;
break;
}
case "34362-04.htm":
{
// show Service/Help/Death Penalty page
player.sendPacket(new ExTutorialShowId(60));
qs.startQuest();
htmltext = event;
break;
}
case "34362-07.htm":
{
qs.setCond(2, true);
htmltext = event;
break;
}
case "34362-09.html":
{
giveItems(player, SOUL_SHOT_GRADE_R, 2500);
giveItems(player, BS_SHOT_GRADE_R, 2500);
giveItems(player, PA_ART_OF_SEDUCTION, 5);
giveItems(player, TALISMAN_DESTRUCTION, 1);
addExpAndSp(player, EXP, SP);
qs.exitQuest(QuestType.ONE_TIME, true);
htmltext = event;
break;
}
case "34413-2.htm":
{
qs.setCond(3, true);
htmltext = event;
break;
}
case "34413-4.htm":
{
qs.setCond(4, 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:
{
if (npc.getId() == HERPHAH)
{
htmltext = "34362-01.htm";
}
break;
}
case State.STARTED:
{
switch (npc.getId())
{
case HERPHAH:
{
if (qs.isCond(3))
{
htmltext = "34362-07.htm";
}
else if (qs.isCond(4))
{
htmltext = "34362-08.html";
}
else if (qs.isCond(5))
{
htmltext = "34362-13.html";
}
break;
}
case PENNY:
{
if (qs.isCond(2))
{
htmltext = "34413-1.htm";
}
else if (qs.isCond(3))
{
addFactionPoints(player, Faction.ADVENTURE_GUILD, 200);
// TODO: we need to add reward % of amity points to factions in all faction quests
// Checking if reached level 2 with Adventurer's Guild Faction
if (player.getFactionLevel(Faction.ADVENTURE_GUILD) >= 2)
{
htmltext = "34413-3.htm";
}
else
{
htmltext = "noAmity.html";
}
}
break;
}
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
}

View File

@ -0,0 +1,3 @@
<html><body>Penny:<br>
To reach Amity Level 2 with the Adventure Guild, you must complete the missions I told you about of the Adventure Guild.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Herphah:<br>
I don't understand why someone like you is interested in this mission?<br>
(Only characters above Lv.85.)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Shannon:<br>
I don't trust you.<br>
(Ertheia classes cannot perform this quest.)
</body></html>

View File

@ -137,6 +137,7 @@ import quests.Q00511_AwlUnderFoot.Q00511_AwlUnderFoot;
import quests.Q00512_BladeUnderFoot.Q00512_BladeUnderFoot;
import quests.Q00551_OlympiadStarter.Q00551_OlympiadStarter;
import quests.Q00553_OlympiadUndefeated.Q00553_OlympiadUndefeated;
import quests.Q00564_BasicMissionKartiasLabyrinthSolo.Q00564_BasicMissionKartiasLabyrinthSolo;
import quests.Q00617_GatherTheFlames.Q00617_GatherTheFlames;
import quests.Q00618_IntoTheFlame.Q00618_IntoTheFlame;
import quests.Q00620_FourGoblets.Q00620_FourGoblets;
@ -341,6 +342,8 @@ import quests.Q10541_TrainLikeTheRealThing.Q10541_TrainLikeTheRealThing;
import quests.Q10542_SearchingForNewPower.Q10542_SearchingForNewPower;
import quests.Q10543_SheddingWeight.Q10543_SheddingWeight;
import quests.Q10544_SeekerSupplies.Q10544_SeekerSupplies;
import quests.Q10560_WayOfWanderingKnight.Q10560_WayOfWanderingKnight;
import quests.Q10561_AcrossTheDeathLine.Q10561_AcrossTheDeathLine;
import quests.Q10658_MakkumInTheDimension.Q10658_MakkumInTheDimension;
import quests.Q10701_TheRoadToDestruction.Q10701_TheRoadToDestruction;
import quests.Q10702_TheRoadToInfinity.Q10702_TheRoadToInfinity;
@ -576,7 +579,7 @@ public class QuestMasterHandler
Q00561_BasicMissionHarnakUndergroundRuins.class, // TODO: Not done.
Q00562_BasicMissionAltarOfEvil.class, // TODO: Not done.
Q00563_BasicMissionBloodySwampland.class, // TODO: Not done.
Q00564_BasicMissionKartiasLabyrinthSolo.class, // TODO: Not done.
Q00564_BasicMissionKartiasLabyrinthSolo.class,
Q00565_BasicMissionFairySettlementWest.class, // TODO: Not done.
Q00566_BasicMissionFairySettlementEast.class, // TODO: Not done.
Q00567_BasicMissionIsleOfSouls.class, // TODO: Not done.
@ -880,8 +883,8 @@ public class QuestMasterHandler
Q10557_NewPowerWindsOfFate.class, // TODO: Not done.
Q10558_HiddenInChaos.class, // TODO: Not done.
Q10559_BeforeTheGuide.class, // TODO: Not done.
Q10560_WayOfWanderingKnight.class, // TODO: Not done.
Q10561_AcrossTheDeathLine.class, // TODO: Not done.
Q10560_WayOfWanderingKnight.class,
Q10561_AcrossTheDeathLine.class,
Q10562_TakeUpArms.class, // TODO: Not done.
Q10563_ControlOfPower.class, // TODO: Not done.
Q10564_ProveProgress.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 com.l2jmobius.Config;
import com.l2jmobius.gameserver.model.quest.Quest;
/**
* @author Mobius
*/
public class Q00564_BasicMissionKartiasLabyrinthSolo extends Quest
{
private static final int START_NPC = 34413;
public Q00564_BasicMissionKartiasLabyrinthSolo()
{
super(564);
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 com.l2jmobius.Config;
import com.l2jmobius.gameserver.model.quest.Quest;
/**
* @author Mobius
*/
public class Q10560_WayOfWanderingKnight extends Quest
{
private static final int START_NPC = 34362;
public Q10560_WayOfWanderingKnight()
{
super(10560);
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 com.l2jmobius.Config;
import com.l2jmobius.gameserver.model.quest.Quest;
/**
* @author Mobius
*/
public class Q10561_AcrossTheDeathLine extends Quest
{
private static final int START_NPC = 34362;
public Q10561_AcrossTheDeathLine()
{
super(10561);
addStartNpc(START_NPC);
addTalkId(START_NPC);
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
}
}

View File

@ -110,6 +110,9 @@
<npc id="30703" x="147796" y="25622" z="-2008" heading="12414" respawnTime="60sec" /> <!-- Colin -->
<npc id="30744" x="147840" y="25591" z="-2008" heading="14023" respawnTime="60sec" /> <!-- Grey -->
<npc id="33946" x="147108" y="25670" z="-2014" heading="14661" respawnTime="60sec" /> <!-- Adventure Guildsman -->
<npc id="34413" x="146488" y="26728" z="-2209" heading="2264" respawnTime="60sec" /> <!-- Penny -->
<npc id="34362" x="146472" y="26808" z="-2209" heading="62980" respawnTime="60sec" /> <!-- Herphah -->
<npc id="34359" x="146856" y="26696" z="-2209" heading="14831" respawnTime="60sec" /> <!-- Tarti -->
</group>
</spawn>
</list>

View File

@ -2,9 +2,11 @@
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
<spawn name="BloodySwampland" ai="DayNightSpawns">
<group>
<npc id="33562" x="-16136" y="30952" z="-3629" heading="50686" respawnTime="60sec" /> <!-- Hermuncus' Minion -->
<npc id="32981" x="-15976" y="30856" z="-3629" heading="44466" respawnTime="60sec" /> <!-- Adventurers' Guide -->
<npc id="34414" x="-16056" y="30952" z="-3629" heading="49151" respawnTime="60sec" /> <!-- Lapathia -->
<npc id="30137" x="-15801" y="30787" z="-3624" heading="47722" respawnTime="60sec" /> <!-- Vollodos -->
<npc id="30350" x="-15900" y="30804" z="-3624" heading="51973" respawnTime="60sec" /> <!-- Carlon -->
<npc id="33562" x="-15975" y="30867" z="-3624" heading="44643" respawnTime="60sec" /> <!-- Hermuncus' Minion -->
<npc id="23162" x="-10109" y="36931" z="-3696" heading="28366" respawnTime="60sec" /> <!-- Corpse Devourer -->
<npc id="23162" x="-10175" y="36858" z="-3696" heading="28207" respawnTime="60sec" /> <!-- Corpse Devourer -->
<npc id="23162" x="-10396" y="35116" z="-3600" heading="47377" respawnTime="60sec" /> <!-- Corpse Devourer -->

View File

@ -27,7 +27,8 @@ public enum Faction
UNWORLDLY_VISITORS(4, 100, 1200, 3400, 6700, 12200, 21000, 33100),
KINGDOM_ROYAL_GUARDS(5, 100, 900, 2500, 4900, 8100, 12100, 16900, 22500, 29700, 38500, 48900),
FISHING_GUILD(6, 100, 7300, 18100, 32500, 53500, 78700, 106700),
HUNTERS_GUILD(7, 200, 4000, 9600, 19900, 32500, 47200, 64000);
HUNTERS_GUILD(7, 200, 4000, 9600, 19900, 32500, 47200, 64000),
ADVENTURE_GUILD(8, 200, 4000, 9600, 19900, 32500, 47200, 64000);
private int _id;
private int[] _points;

View File

@ -0,0 +1,4 @@
<html><body>Tarti:<br>
What is it? Just tell me if you want to undertake the missions of Unworldly Visitors.<br>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Herphah:<br>
Is there?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 0">Return</Button>
</body></html>

View File

@ -0,0 +1,9 @@
<html><body>Herphah:<br>
I traveled around the continent and decided to stay here for a while... Then, I saw you! What fate!<br>
If you are wandering without knowing what to do, I can help you. How about starting the <font color="LEVEL">Way of Wandering Knight </font>?
I also recommend visiting the Adventure Guild, which has many missions appropriate for you.<br>
I'm now working with the <font color="LEVEL">Adventure Guild </font>so you can trust them.<br>
Let me know if you need any advice.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Herphah 34362-01.html"><font color="LEVEL">"Is there any other ways of growth?"</font></button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -0,0 +1,63 @@
/*
* 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 ai.areas.Aden.Herphah;
import com.l2jmobius.gameserver.model.actor.Npc;
import com.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import com.l2jmobius.gameserver.network.serverpackets.PlaySound;
import ai.AbstractNpcAI;
/**
* Aden Faction Npc AI
* @author NightBR
* @date 2019-03-27
*/
public class Herphah extends AbstractNpcAI
{
// NPC
private static final int HERPHAH = 34362;
private Herphah()
{
addStartNpc(HERPHAH);
addTalkId(HERPHAH);
addFirstTalkId(HERPHAH);
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
if (event.equals("34362-01.html"))
{
// TODO: return event;
}
return null;
}
@Override
public String onFirstTalk(Npc npc, PlayerInstance player)
{
player.sendPacket(new PlaySound(3, "Npcdialog1.herphah_faction_1", 0, 0, 0, 0, 0));
return "34362.html";
}
public static void main(String[] args)
{
new Herphah();
}
}

View File

@ -0,0 +1,8 @@
<html><body>Adventure Guildsman Penny:<br>
Your ability is a reflection of your life. If you continue to do your best, your ability will grow.<br>
Me? As you see, I don't have any talent for hunting, but I'm quite good at distributing tasks to adventures.<br>
If you have a <font color="LEVEL">Medal of Honor </font>or a<font color="LEVEL"> Grand Medal of Honor </font>I'll raise your amity points, so let me know.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Penny medal"><font color="LEVEL">"I have a Medal of Honor."</font></button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Penny grand_medal"><font color="LEVEL">"I have a Grand Medal of Honor."</font></button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@ -0,0 +1,72 @@
/*
* 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 ai.areas.Aden.Penny;
import com.l2jmobius.gameserver.model.actor.Npc;
import com.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import com.l2jmobius.gameserver.network.serverpackets.PlaySound;
import ai.AbstractNpcAI;
/**
* Aden Faction Npc AI
* @author NightBR
* @date 2019-03-27
*/
public class Penny extends AbstractNpcAI
{
// NPC
private static final int PENNY = 34413;
private Penny()
{
addStartNpc(PENNY);
addTalkId(PENNY);
addFirstTalkId(PENNY);
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
switch (event)
{
case "medal":
{
// Take medal / Give rep?
return null;
}
case "grand_medal":
{
// Take medal / Give rep?
return null;
}
}
return null;
}
@Override
public String onFirstTalk(Npc npc, PlayerInstance player)
{
player.sendPacket(new PlaySound(3, "Npcdialog1.penny_faction_1", 0, 0, 0, 0, 0));
return "34413.html";
}
public static void main(String[] args)
{
new Penny();
}
}

View File

@ -2,5 +2,5 @@
My, you don't know anything about the history of Kartia's Labyrinth, do you?<br>
But I can see you're curious about its history.<br>
Well, if you bring me something they left behind, I will probably be able to give you some information. A cronicle, perhaps?<br>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest KartiasLabyrinth 33647-3.htm">Quest</Button>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest KartiasLabyrinth 33647-3.htm">I see</Button>
</body></html>

View File

@ -7,7 +7,6 @@
561 Basic Mission: Harnak Underground Ruins
562 Basic Mission: Altar of Evil
563 Basic Mission: Bloody Swampland
564 Basic Mission: Kartia's Labyrinth (Solo)
565 Basic Mission: Fairy Settlement - West
566 Basic Mission: Fairy Settlement - East
567 Basic Mission: Isle of Souls
@ -198,8 +197,6 @@
10557 New Power, Winds of Fate
10558 Hidden in Chaos
10559 Before the Guide
10560 Way of Wandering Knight
10561 Across the Death Line
10562 Take Up Arms
10563 Control of Power
10564 Prove Progress

View File

@ -0,0 +1,4 @@
<html><body>Kartia Researcher:<br>
The Adventure Guild is very famous, almost everyone knows about them. If they're the ones who sent you, I'm sure you're trustworthy!<br>
To do the basic mission quest, <font color="LEVEL">Kartia's Labyrinth (Solo)</font>, you have to do the <font color="LEVEL">"Incarnation of Greed Zellaka (Solo), Incarnation of Jealousy Pelline (Solo) or Incarnation of Gluttony Kalios (Solo)"</font> quests from Kartia Researcher.<br>
</body></html>

View File

@ -0,0 +1,3 @@
<ht<html><body>Kartia Researcher:<br>
Now go back to Adventure Guildsman Penny.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Adventure Guildsman Penny:<br>
Your're the one that Hephah has sent, right? If not, you should go meet Herphah and receive a mission from her before you continue. If you think it doesn't matter, I can continue anyway. Do you want me to continue?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00564_BasicMissionKartiasLabyrinthSolo 34413-02.htm">"Sure, no problem!"</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Adventure Guildsman Penny:<br>
Herphah wants you to do some missions, and I'll chose an appropriate mission depending on your relationship with us at the Adventure Guild.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00564_BasicMissionKartiasLabyrinthSolo 34413-03.htm">"Go on."</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Adventure Guildsman Penny:<br>
Your mission is to assist with task at Kartia's Labyrinth. If are successful, our Adventure Guild will give you additional rewards on top of the mission payment and, your relationship with our faction will grow even stronger.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00564_BasicMissionKartiasLabyrinthSolo 34413-04.html">"Alright."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Adventure Guildsman Penny:<br>
Good choice. Now, let me tell you about the mission.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00564_BasicMissionKartiasLabyrinthSolo 34413-05.html">"Go on."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Adventure Guildsman Penny:<br>
To do this mission, you have to go to <font color="LEVEL">Kartia's Labyrinth</font>. It is called an <font color="LEVEL">Instanced Zone</font>, and is different from normal hunting grounds.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00564_BasicMissionKartiasLabyrinthSolo 34413-06.html">"What's the difference?"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Adventure Guildsman Penny:<br>
Only you and your party can enter the <font color="LEVEL">Instanced Zone Dungeon</font>. That way, you can focus on hunting, without worring about outsiders. But there's a catch, you can only enter the dungeon a limited number of times at certain hours.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00564_BasicMissionKartiasLabyrinthSolo 34413-07.html">"Could you tell me more about the mission?"</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Adventure Guildsman Penny:<br>
To do the mission, you have to meet the <font color="LEVEL">Kartia Researcher</font> at the Town of Aden. Do the mission that they give. Then, come back to me.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Adventure Guildsman Penny:<br>
Welcome back! So, did you di a good job?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00564_BasicMissionKartiasLabyrinthSolo 34413-09.html">"Yes, I did."</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Adventure Guildsman Penny:<br>
Thanks, you've done a great job! I'm sure eveyone in the Adventure Guild will know your name now. If there is another opportunity, we'd love for you to help us again. Good luck and farewell!<br>
</body></html>

View File

@ -0,0 +1,207 @@
/*
* 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.Q00564_BasicMissionKartiasLabyrinthSolo;
import com.l2jmobius.gameserver.enums.Faction;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.model.actor.Npc;
import com.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
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.serverpackets.ExTutorialShowId;
/**
* Q00564_KartiasLabyrinthSolo
* @URL https://l2wiki.com/Basic_Mission:_Kartia%27s_Labyrinth_(Solo)
* @author NightBR
*/
public class Q00564_BasicMissionKartiasLabyrinthSolo extends Quest
{
// NPCs
private static final int PENNY = 34413;
private static final int KARTIA = 33647;
// Reward's
private static final long EXP = 1409345453;
private static final int SP = 3968411;
private static final int SCROLL_OF_ESCAPE_KARTIAS_LABYRINTH = 39497;
// Misc
private static final int MIN_LEVEL = 85;
private static final int MAX_LEVEL = 97;
public Q00564_BasicMissionKartiasLabyrinthSolo()
{
super(564);
addStartNpc(PENNY);
addTalkId(PENNY, KARTIA);
addCondLevel(MIN_LEVEL, MAX_LEVEL, "nolevel.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 "34413-02.htm":
case "34413-03.htm":
case "34413-05.html":
{
htmltext = event;
break;
}
case "34413-04.html":
{
qs.startQuest();
htmltext = event;
break;
}
case "34413-06.html":
{
// Show Service/Help/Instance Zone page
player.sendPacket(new ExTutorialShowId(29));
htmltext = event;
break;
}
case "34413-07.html":
{
qs.setCond(2, true);
htmltext = event;
break;
}
case "34413-09.html":
{
StringBuilder str = new StringBuilder("000");
checkQuestCompleted(player, str); // Initialize the array with all quests completed
if (str.indexOf("1") == -1) // verify if no quest completed
{
htmltext = "34413-07.html";
}
else
{
if (str.charAt(0) == '1')
{
addFactionPoints(player, Faction.ADVENTURE_GUILD, 100); // add 100 points to ADVENTURE_GUILD Faction
}
if (str.charAt(1) == '1')
{
addFactionPoints(player, Faction.ADVENTURE_GUILD, 125);// add 125 points to ADVENTURE_GUILD Faction
}
if (str.charAt(2) == '1')
{
addFactionPoints(player, Faction.ADVENTURE_GUILD, 150);// add 150 points to ADVENTURE_GUILD Faction
}
giveItems(player, SCROLL_OF_ESCAPE_KARTIAS_LABYRINTH, 1);
addExpAndSp(player, EXP, SP);
qs.exitQuest(QuestType.DAILY, 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:
{
if (npc.getId() == PENNY)
{
htmltext = "34413-01.htm";
}
break;
}
case State.STARTED:
{
switch (npc.getId())
{
case PENNY:
{
htmltext = qs.isCond(2) ? "34413-07.html" : "34413-08.html";
break;
}
case KARTIA:
{
if (qs.isCond(2))
{
StringBuilder str = new StringBuilder("000");
checkQuestCompleted(player, str); // Initialize the array with all quests completed
if (str.indexOf("1") != -1) // verify if any quest completed
{
qs.setCond(4, true);
htmltext = "33647-02.html";
}
else
{
htmltext = "33647-01.html";
}
}
break;
}
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
private StringBuilder checkQuestCompleted(PlayerInstance player, StringBuilder string)
{
int index = 0;
char ch = '1';
final QuestState st1 = player.getQuestState("Q00497_IncarnationOfGreedZellakaSolo");
if ((st1 != null) && st1.isCompleted())
{
index = 0;
string.setCharAt(index, ch);
}
final QuestState st2 = player.getQuestState("Q00498_IncarnationOfJealousyPellineSolo");
if ((st2 != null) && st2.isCompleted())
{
index = 1;
string.setCharAt(index, ch);
}
final QuestState st3 = player.getQuestState("Q00499_IncarnationOfGluttonyKaliosSolo");
if ((st3 != null) && st3.isCompleted())
{
index = 2;
string.setCharAt(index, ch);
}
return string;
}
}

View File

@ -0,0 +1,4 @@
<html><body>Penny:<br>
I don't understand why someone like you is interested in this mission?<br>
(Only characters above Lv.85.)
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Guard Kelios:<br>
Really? <font color="LEVEL">Refugee Leo</font> asked you to kill the Oel Mahum monsters? That's a serious workout! In case I don't get the chance to tell you later, thank you in advance.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Guard Kelios:<br>
Say, didn't <font color="LEVEL">Refugee Leo</font> ask you to kill the Oel Mahum monsters? Have you finished already?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10395_NotATraitor 33862-03.html">"I killed them all."</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Guard Kelios:<br>
Thank you! I will report this to <font color="LEVEL">Blacksmith Flutter</font> in detail. And we'll make sure that we put together the Suspicious Fragments.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Refugee Leo:<br>
Please, hear me out! I'm no threat to you now. I'm a refugee, no home, no possessions, no nothing. I'm not the person you beat up and left for dead.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10395_NotATraitor 33863-02.htm">"Start talking."</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Refugee Leo:<br>
I heard from <font color="LEVEL">Kelios</font> why you're here, but you and I both know that killing monsters won't solve the problem.<br>
We must remove the <font color="LEVEL">Oel Mahums</font> from the Outlaw Forest.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10395_NotATraitor 33863-03.htm">"Seriously? Your own people?"</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Refugee Leo:<br>
That's correct. But I am no traitor. My people are... out of their minds.<br>
The Mahums were proud warriors once. But we were driven from our homes, weak in spirit, when Shilen came among us. I thought what we were feeling was rekindled pride, but we became violently insane. Now my people are only beasts hungry for blood. Can you help them die with dignity?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10395_NotATraitor 33863-04.htm">"Is there no way back for them?".</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Refugee Leo:<br>
Please, help them rest in peace. Get rid of <font color="LEVEL">Oel Mahums, Oel Mahum Warriors, Oel Mahum Shamen and Ol Mahum Transcenders</font>.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Refugee Leo:<br>
I feel so... weak. Please, don't hurt me. Just leave me alone! <br>
(This quest is for characters level 46 or above who have completed the quest "Mutual Benefit".)
</body></html>

Some files were not shown because too many files have changed in this diff Show More