Exalted quest updates.

Contributed by CostyKiller.
This commit is contained in:
MobiusDevelopment 2020-10-11 05:35:55 +00:00
parent 496912f2d2
commit 4f0d9189e3
592 changed files with 8940 additions and 1794 deletions

View File

@ -119,10 +119,4 @@
10853 To Weaken the Giants
10854 To Seize the Fortress
10858 Queen Ramona, Controller of the Vessel
10859 Own the Earth and the Heavens
10874 Against the New Enemy
10875 For Reputation
10877 Break Through Crisis
10881 For the Pride
10882 Victory Collection
10883 Immortal Honor
10859 Own the Earth and the Heavens

View File

@ -0,0 +1,3 @@
<html><body>Fire Dragon Bride Leona Blackbird:<br>
You have to bring me 10.000 <font color="LEVEL">Proof of Qualification</font> to obtain my certificate.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Fire Dragon Bride Leona Blackbird:<br>
Have you brought me 10.000 <font color="LEVEL">Proof of Qualification</font>, if not then go get them, to obtain the certificate.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10874_AgainstTheNewEnemy 31595-02.htm">"Yes, here they are."</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Fire Dragon Bride Leona Blackbird:<br>
Good! You have brought 10.000 <font color="LEVEL">Proof of Qualification</font>.<br>
Now choose your reward:<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10874_AgainstTheNewEnemy 31595-03.htm">"4.500 GIANT TRACKERS Faction Points."</Button>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10874_AgainstTheNewEnemy 31595-04.htm">"4.500 BLACKBIRD CLAN Faction Points."</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Fire Dragon Bride Leona Blackbird:<br>
You received <font color="LEVEL">4.500 GIANT TRACKERS Faction Points</font>.<br>
Now you can get your certificate.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10874_AgainstTheNewEnemy 31595-05.html">"Obtain certificate."</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Fire Dragon Bride Leona Blackbird:<br>
You received <font color="LEVEL">4.500 BLACKBIRD CLAN Faction Points</font>.<br>
Now you can get your certificate.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10874_AgainstTheNewEnemy 31595-05.htm">"Obtain certificate."</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Fire Dragon Bride Leona Blackbird:<br>
You received your <font color="LEVEL">Faction Points</font>.<br>
Now you can get your certificate.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10874_AgainstTheNewEnemy 31595-06.html">"Obtain certificate."</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Fire Dragon Bride Leona Blackbird:<br>
I knew you could do it. Here's the certificate. I hope you become even stronger.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Commando Captain Sporcha:<br>
You are not ready to be called by me. Come back when you are ready.<br>
(The Exalted, Reaching Another Level quest is in progress and level 103+ and Lionel Hunter Mission List - 4 should be in the inventory.)
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Commando Captain Sporcha:<br>
I've been planning for a long time! I mean... well, I belive one who wants to lead the world... must pass a very difficult test.<br>
If I had a chance to give such test, I'd make an unimaginably difficult test. That's what I thought.<br>
Are you listening to me?<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10874_AgainstTheNewEnemy 34230-02.htm">"Go on."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Commando Captain Sporcha:<br>
Lionel Hunter said that you would lead the world. A leader must have dignity. I ask you to prove it.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10874_AgainstTheNewEnemy 34230-03.htm">"Ask what to prove."</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Commando Captain Sporcha:<br>
Then, I have the chance I'd always dreamed of! Hahaha. Oops, I'm sorry. I'm just so happy to have this chance.<br>
If anyone wants to take my test, I'll put him through the most terrible time of their lives... If you're not ready, you'd better leave now. Otherwise, you'll die before your time.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10874_AgainstTheNewEnemy 34230-04.htm">"I will take the test."</Button>
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>Commando Captain Sporcha:<br>
Eh? Are you sure? Oh... well, you might be qualified to undertake my mission.<br>
Actually, it's not that complicated. You only need to grow strong enough to defeat unknown enemies.<br>
How? That's simple.<br>
Hunting. Will you accept the mission?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10874_AgainstTheNewEnemy 34230-05.html">"Alright."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Commando Captain Sporcha:<br>
Listen carefully, I won't explain this again. Hunt monsters in <font color="LEVEL">Beleth's Magic Circle, the Desert Quarry, and the upper floor of the Giant's Cave</font> and collect 10.000 <font color="LEVEL">Proof of Qualification</font>. What do you say? It's quite hard, right? Hahahaha!!!<br><br><br>
Ah, after completing the mission, go to Leona Blackbird, not to me. She's the one who can give you a certificate.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Commando Captain Sporcha:<br>
Hunt monsters in <font color="LEVEL">Beleth's Magic Circle, the Desert Quarry, and the upper floor of the Giant's Cave</font> and collect 10.000 <font color="LEVEL">Proof of Qualification</font>.<br><br><br>
Then go to Leona Blackbird, not to me. She's the one who can give you a certificate.<br>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Commando Captain Sporcha:<br>
You have 10.000 <font color="LEVEL">Proof of Qualification</font>, now go to Leona Blackbird, not to me. She's the one who can give you a certificate.<br>
</body></html>

View File

@ -0,0 +1,273 @@
/*
* 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.Q10874_AgainstTheNewEnemy;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.Faction;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.instancemanager.QuestManager;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
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.util.Util;
import quests.Q10873_ExaltedReachingAnotherLevel.Q10873_ExaltedReachingAnotherLevel;
/**
* Against the New Enemy (10874)
* @URL https://l2wiki.com/Against_the_New_Enemy
* @author Mobius
*/
public class Q10874_AgainstTheNewEnemy extends Quest
{
// NPC
private static final int CAPTAIN_SPORCHA = 34230;
private static final int LEONA_BLACKBIRD = 31595;
private static final int[] MONSTERS =
{
// Desert Quarry
23811, // Cantera Tanya
23812, // Cantera Deathmoz
23813, // Cantera Floxis
23814, // Cantera Belika
23815, // Cantera Bridget
// Beleth's Magic Circle
23354, // Decay Hannibal
23355, // Armor Beast
23356, // Klein Soldier
23357, // Disorder Warrior
23360, // Bizuard
23361, // Mutated Fly
23367, // Armor Beast
23368, // Klein Soldier
23369, // Disorder Warrior
23372, // Bizuard
23373, // Mutated Fly
// Giant's Cave Upper Floor
23727, // Shaqrima Bathus
23728, // Shaqrima Carcass
23729, // Shaqrima Kshana
23733, // Lesser Giant Warrior
23734, // Lesser Giant Wizard
23735, // Captive Familiar Spirit
23736, // Captive Hell Demon
23737, // Captive Succubus
23738, // Captive Phantom
23742, // Naia Bathus, Demons Foreman
23743, // Naia Karkus, Demons Foreman
23744, // Naia Kshana, Demons Foreman
23746, // Recovering Lesser Giant Warrior
23747, // Recovering Lesser Giant Wizard
23749, // Root of the Lesser Giant
23754, // Essence of the Lesser Giant
};
// Items
private static final int PROOF_OF_QUALIFICATION = 47839;
private static final ItemHolder LIONEL_HUNTERS_LIST_PART_4 = new ItemHolder(47829, 1);
// Rewards
private static final int LEONA_CERTIFICATE = 47830;
private static final int FP = 4500; // Faction points
// Misc
private static final int MIN_LEVEL = 103;
private static final int PROOF_OF_QUALIFICATION_NEEDED = 10000;
public Q10874_AgainstTheNewEnemy()
{
super(10874);
addStartNpc(CAPTAIN_SPORCHA);
addTalkId(CAPTAIN_SPORCHA, LEONA_BLACKBIRD);
addKillId(MONSTERS);
addCondMinLevel(MIN_LEVEL, "34230-00.html");
addCondStartedQuest(Q10873_ExaltedReachingAnotherLevel.class.getSimpleName(), "34230-00.html");
registerQuestItems(PROOF_OF_QUALIFICATION);
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return htmltext;
}
switch (event)
{
case "31595-02.htm":
case "31595-05.htm":
case "34230-02.htm":
case "34230-03.htm":
case "34230-04.htm":
{
htmltext = event;
break;
}
case "34230-05.html":
{
if (hasItem(player, LIONEL_HUNTERS_LIST_PART_4))
{
qs.startQuest();
htmltext = event;
}
break;
}
case "31595-03.htm":
{
if (qs.isCond(2) && (getQuestItemsCount(player, PROOF_OF_QUALIFICATION) >= PROOF_OF_QUALIFICATION_NEEDED))
{
addFactionPoints(player, Faction.GIANT_TRACKERS, FP); // add FP points to GIANT_TRACKERS Faction
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
qs.setCond(3, true);
htmltext = event;
}
break;
}
case "31595-04.htm":
{
if (qs.isCond(2) && (getQuestItemsCount(player, PROOF_OF_QUALIFICATION) >= PROOF_OF_QUALIFICATION_NEEDED))
{
addFactionPoints(player, Faction.BLACKBIRD_CLAN, FP); // add FP points to BLACKBIRD_CLAN Faction
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
qs.setCond(3, true);
htmltext = event;
}
break;
}
case "31595-06.html":
{
if (qs.isCond(3) && (getQuestItemsCount(player, PROOF_OF_QUALIFICATION) >= PROOF_OF_QUALIFICATION_NEEDED))
{
takeItems(player, PROOF_OF_QUALIFICATION, PROOF_OF_QUALIFICATION_NEEDED);
giveItems(player, LEONA_CERTIFICATE, 1);
qs.exitQuest(false, true);
final Quest mainQ = QuestManager.getInstance().getQuest(Q10873_ExaltedReachingAnotherLevel.class.getSimpleName());
if (mainQ != null)
{
mainQ.notifyEvent("SUBQUEST_FINISHED_NOTIFY", npc, player);
}
htmltext = event;
}
else
{
htmltext = getNoQuestLevelRewardMsg(player);
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, PlayerInstance player)
{
String htmltext = getNoQuestMsg(player);
final QuestState qs = getQuestState(player, true);
switch (qs.getState())
{
case State.CREATED:
{
if (hasItem(player, LIONEL_HUNTERS_LIST_PART_4))
{
htmltext = "34230-01.htm";
}
else
{
htmltext = "34230-00.htm";
}
break;
}
case State.STARTED:
{
switch (npc.getId())
{
case CAPTAIN_SPORCHA:
{
if (qs.isCond(1))
{
if (getQuestItemsCount(player, PROOF_OF_QUALIFICATION) >= PROOF_OF_QUALIFICATION_NEEDED)
{
htmltext = "34230-07.html";
}
else
{
htmltext = "34230-06.html";
}
}
break;
}
case LEONA_BLACKBIRD:
{
if (qs.isCond(2))
{
htmltext = "31595-01.htm";
}
else if (qs.isCond(3))
{
htmltext = "31595-05.htm";
}
else
{
htmltext = "31595-00.html";
}
}
break;
}
}
break;
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
@Override
public void actionForEachPlayer(PlayerInstance player, Npc npc, boolean isSummon)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1) && Util.checkIfInRange(Config.ALT_PARTY_RANGE, npc, player, false))
{
if ((getQuestItemsCount(player, PROOF_OF_QUALIFICATION) < PROOF_OF_QUALIFICATION_NEEDED) && (getRandom(100) < 90))
{
giveItems(player, PROOF_OF_QUALIFICATION, 1);
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
if ((getQuestItemsCount(player, PROOF_OF_QUALIFICATION) >= PROOF_OF_QUALIFICATION_NEEDED) && (player.getLevel() >= MIN_LEVEL))
{
qs.setCond(2, true);
}
}
}
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
executeForEachPlayer(killer, npc, isSummon, true, false);
return super.onKill(npc, killer, isSummon);
}
}

View File

@ -0,0 +1,4 @@
<html><body>Hierarch Kekropus:<br>
I don't think you are done yet.<br>
Bring me the <font color="LEVEL">Blackbird Clan Certificate</font> and the <font color="LEVEL">Giant Trackers Certificate</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hierarch Kekropus:<br>
Did you bring me <font color="LEVEL">Blackbird Clan Certificate</font> and <font color="LEVEL">Giant Trackers Certificate</font> requested by Krenaht?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10875_ForReputation 34222-02.html">"Yes, here they are."</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Hierarch Kekropus:<br>
I knew you could do it. Here's the certificate. I hope you become even stronger.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Giant Tracker Leader Krenaht:<br>
You are not ready to be called by me. Come back when you are ready.<br>
(The Exalted, Reaching Another Level quest is in progress and level 103+ and Lionel Hunter Mission List - 4 should be in the inventory.)
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Giant Tracker Leader Krenaht:<br>
Did Lionel Hunter send you? You look special.<br>
Yes, the right person for my mission.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10875_ForReputation 34237-02.htm">"Go on"</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Giant Tracker Leader Krenaht:<br>
Well, you need to gain fame to use that power correctly... but it's not easy to gain fame, either good or bad...<br>
Nevertheless, if you gain fame, you will be able to exercise influence, earning a ground to use your power.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10875_ForReputation 34237-03.htm">"Ask about the mission"</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Giant Tracker Leader Krenaht:<br>
As far as I know, after the title Exalted was created, many new factions have emerged. They might influence one another, or it might be just a coincidence.<br>
In either case, what I want from you is to build a relationship with them and earn their trust. Can you do that?
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10875_ForReputation 34237-04.html">"Alright"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Giant Tracker Leader Krenaht:<br>
Okay. Your mission is to help the <font color="LEVEL">Blackbird Clan</font> and the <font color="LEVEL">Giant Trackers</font> and earn an amity level of 6 with them. You must receive certificates to prove your achievement.<br>
Receive the <font color="LEVEL">Blackbird Clan Certificate</font> from Leona Blackbird and the <font color="LEVEL">Giant Trackers Certificate</font> from Kekropus. To complete the mission, report to Kekropus.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Giant Tracker Leader Krenaht:<br>
I don't think you are done yet.<br>
Receive the <font color="LEVEL">Blackbird Clan Certificate</font> from Leona Blackbird and the <font color="LEVEL">Giant Trackers Certificate</font> from Kekropus. To complete the mission, report to Kekropus.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Giant Tracker Leader Krenaht:<br>
You did it! How was it? Not that bad, right?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10875_ForReputation 34237-07.html">"It was okay."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Giant Tracker Leader Krenaht:<br>
You've proven me right. I knew you could do it.<br>
Go see Hierarch Kekropus in Giran Town now.
</body></html>

View File

@ -0,0 +1,169 @@
/*
* 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.Q10875_ForReputation;
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;
import quests.Q10873_ExaltedReachingAnotherLevel.Q10873_ExaltedReachingAnotherLevel;
/**
* For Reputation (10875)
* @URL https://l2wiki.com/For_Reputation https://www.youtube.com/watch?v=7i-M4U4qxaA
* @author Mobius
*/
public class Q10875_ForReputation extends Quest
{
// NPC
private static final int KRENAHT = 34237;
private static final int KEKROPUS = 34222;
// Items
private static final int BLACKBIRD_CLAN_CERTIFICATION = 47840;
private static final int GIANT_TRACKERS_CERTIFICATION = 47841;
// Rewards
private static final int KEKROPUS_CERTIFICATE = 47831;
private static final int SPELLBOOK_VITALITY_OF_THE_EXALTED = 47831;
// Misc
private static final int MIN_LEVEL = 103;
public Q10875_ForReputation()
{
super(10875);
addStartNpc(KRENAHT);
addTalkId(KRENAHT, KEKROPUS);
addCondMinLevel(MIN_LEVEL, "34237-00.html");
addCondStartedQuest(Q10873_ExaltedReachingAnotherLevel.class.getSimpleName(), "34237-00.html");
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return htmltext;
}
switch (event)
{
case "34237-02.htm":
case "34237-03.htm":
{
htmltext = event;
break;
}
case "34237-04.html":
{
qs.startQuest();
htmltext = event;
break;
}
case "34237-07.html":
{
qs.setCond(2);
htmltext = event;
break;
}
case "34222-02.html":
{
if (qs.isCond(2))
{
if ((player.getLevel() >= MIN_LEVEL))
{
if (!hasQuestItems(player, BLACKBIRD_CLAN_CERTIFICATION, GIANT_TRACKERS_CERTIFICATION))
{
htmltext = "34222-00.html";
}
else
{
htmltext = event;
giveItems(player, KEKROPUS_CERTIFICATE, 1);
giveItems(player, SPELLBOOK_VITALITY_OF_THE_EXALTED, 1);
qs.exitQuest(false, true);
}
}
else
{
htmltext = getNoQuestLevelRewardMsg(player);
}
}
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 = "34237-01.htm";
break;
}
case State.STARTED:
{
switch (npc.getId())
{
case KRENAHT:
{
if (qs.isCond(1) && !hasQuestItems(player, BLACKBIRD_CLAN_CERTIFICATION, GIANT_TRACKERS_CERTIFICATION))
{
htmltext = "34237-05.html";
}
else if (qs.isCond(2))
{
htmltext = "34237-07.htm";
}
else
{
htmltext = "34237-06.htm";
}
break;
}
case KEKROPUS:
{
if (qs.isCond(2))
{
htmltext = "34222-01.htm";
}
else
{
htmltext = "34222-00.html";
}
break;
}
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
}

View File

@ -1,4 +1,4 @@
<html><body>Santiago:<br>
<html><body>Fishing Guild Leader Santiago:<br>
You are not ready to be called by me. Come back when you are ready.<br>
(The Exalted, Reaching Another Level quest is is progress and level 103+ and Lionel Hunter Mission List - 4 should be in the inventory.)
</body></html>

View File

@ -1,5 +1,4 @@
<html><body>Santiago:<br>
Santiago, the Head of the Fisheries Guild, said he needed special qualities to get an Honorary Status.<br>
character traits and even perform work that does not fit the noble face.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10876_LeadersGrace 34138-02.htm">"Yes, I'm ready."</Button>
<html><body>Fishing Guild Leader Santiago:<br>
You must be the one Lionel Hunter talked about. Ah, no need to raise your guard. I'm a fisher. I have no interest in fighting. I mean, I'm not in the position to give such missions.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10876_LeadersGrace 34138-02.htm">"Go on."</Button>
</body></html>

View File

@ -1,5 +1,4 @@
<html><body>Santiago:<br>
so how? you are ready? You can, I believe you! become a true foodie!.<br>
you need to try very hard if you want to earn my trust and respect for you.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10876_LeadersGrace 34138-03.htm">"Yes."</Button>
<html><body>Fishing Guild Leader Santiago:<br>
Lionel Hunter said that you would lead the world. A leader must have dignity. I ask you to prove it.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10876_LeadersGrace 34138-03.htm">"Ask what to prove."</Button>
</body></html>

View File

@ -1,4 +1,5 @@
<html><body>Santiago:<br>
Fishing Guild Leader Santiago says the one who seeks out new power should have the grace that matches the power.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10876_LeadersGrace 34138-04.html">"I'm ready."</Button>
<html><body>Fishing Guild Leader Santiago:<br>
The strong and the privileged usually don't understand the poor. But a good leader must care for the poor. If one wins, another loses. If you ignore this rule, you're no better than those monsters out there.<br>
My point is that your mission is to help the poor.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10876_LeadersGrace 34138-04.html">"Alright."</Button>
</body></html>

View File

@ -1,4 +1,5 @@
<html><body>Santiago:<br>
I charge you to obtain <font color="LEVEL">Special Fish Stew</font> (50 pcs.) <font color="LEVEL">And R-Grade Gems</font> (80)<br>
as soon as you complete the task, come to me.
<html><body>Fishing Guild Leader Santiago:<br>
There are some poor people in this area. Gather <font color="LEVEL">50 Special Fish Stews</font> to feed them.<br>
To make 1 Special Fish Stew, you need <font color="LEVEL">1 Powerful Fish</font> and <font color="LEVEL">1 Magic Spice</font>. Once you get them, ask me and I'll exchange them immediately. You can gather the igredients yourself or buy them.<br>
I'd also like to teach them how to fish, but I don't have enough materials for fishing rods. Please gather <font color="LEVEL">80 Gemstones (R-Grade)</font> for me. That's your mission.
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Santiago:<br>
I charge you to obtain <font color="LEVEL">Special Fish Stew</font> (50 pcs.) <font color="LEVEL">And R-Grade Gems</font> (80)<br>
<html><body>Fishing Guild Leader Santiago:<br>
I charge you to obtain <font color="LEVEL">50 Special Fish Stews</font> and <font color="LEVEL">80 Gemstones (R-Grade)</font><br>
as soon as you complete the task, come to me.
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Santiago:<br>
<html><body>Fishing Guild Leader Santiago:<br>
You've completed a long journey. Good job. I'm glad to see you haven't given up.<br>
here is your reward.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10876_LeadersGrace 34138-07.html">"Yes, here."</Button>

View File

@ -1,4 +1,4 @@
<html><body>Santiago:<br>
<html><body>Fishing Guild Leader Santiago:<br>
The power given to us by the gods... But you've proven that we are now able to overcome any limits without the protection of the gods.<br>
Now that you have violated the restrictions set by the gods, we will call you a master and give you this.
</body></html>

View File

@ -40,7 +40,7 @@ public class Q10876_LeadersGrace extends Quest
private static final int R_GRADE_GEMSTONE = 19440;
private static final ItemHolder LIONEL_HUNTERS_LIST_PART_4 = new ItemHolder(47829, 1);
// Rewards
private static final int SANTIAGO_SERTIFICATE = 47832;
private static final int SANTIAGO_CERTIFICATE = 47832;
private static final int ELCYUM_CRYSTAL = 36514;
// Misc
private static final int MIN_LEVEL = 103;
@ -88,7 +88,7 @@ public class Q10876_LeadersGrace extends Quest
takeItems(player, SPECIAL_FISH_STEW, -50);
takeItems(player, R_GRADE_GEMSTONE, -80);
giveItems(player, ELCYUM_CRYSTAL, 1);
giveItems(player, SANTIAGO_SERTIFICATE, 1);
giveItems(player, SANTIAGO_CERTIFICATE, 1);
qs.exitQuest(false, true);
final Quest mainQ = QuestManager.getInstance().getQuest(Q10873_ExaltedReachingAnotherLevel.class.getSimpleName());

View File

@ -0,0 +1,4 @@
<html><body>Hunters Guild Leader Arcturus:<br>
You are not ready to be called by me. Come back when you are ready.<br>
(The Exalted, Reaching Another Level quest is in progress and level 103+ and Lionel Hunter Mission List - 4 should be in the inventory.)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hunters Guild Leader Arcturus:<br>
I hunted countless beasts and monsters, but this world still swarms with them. Many say that the world is in this crisis. If they are right, I will wade through the crisis in my own way.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10877_BreakThroughCrisis 34267-02.htm">"Go on."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hunters Guild Leader Arcturus:<br>
To complete the Hunter Guild's Guide is to save the world from threats and restore peace.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10877_BreakThroughCrisis 34267-03.htm">"Ask why"</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Hunters Guild Leader Arcturus:<br>
First, if we hunt monsters, the world will be safer. Second, if we know more about the monsters, we will share the information with others so that it will be used to make the world safer.<br>
If you dream of rising to a respected position, I advise you to join this mission.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10877_BreakThroughCrisis 34267-04.html">"Alright."</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Hunters Guild Leader Arcturus:<br>
<font color="LEVEL">Fill 10</font> Hunter Guild's Bestiaries. You can fill them by defeating 10 of the monsters illustrated in the Bestiary. You can select even those you have defetead before.<br>
Note that it is useless to kill monsters of other factions.<br>
<font color="LEVEL">Click Menu > Bestiary, and the Bestiary page will open. Select the Hunter Guild as your faction and defeat 10 of the listed monsters to complete the mission.</font>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Hunters Guild Leader Arcturus:<br>
<font color="LEVEL">Fill 10</font> Hunter Guild's Bestiaries.<br>
As soon as you complete the task, come to me.<br>
<font color="LEVEL">Click Menu > Bestiary, and the Bestiary page will open. Select the Hunter Guild as your faction and defeat 10 of the listed monsters to complete the mission.</font>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hunters Guild Leader Arcturus:<br>
Have you <font color="LEVEL">filled 10</font> Hunter Guild's Bestiaries?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10877_BreakThroughCrisis 34267-07.html">"Yes, here."</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Hunters Guild Leader Arcturus:<br>
You've completed a long journey. Good job. I'm glad to see you haven't given up.<br>
Here is your reward.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10877_BreakThroughCrisis 34267-08.html">"Great."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hunters Guild Leader Arcturus:<br>
The power given to us by the gods... But you've proven that we are now able to overcome any limits without the protection of the gods.<br>
Now that you have violated the restrictions set by the gods, we will call you a master and give you this.
</body></html>

View File

@ -0,0 +1,178 @@
/*
* 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.Q10877_BreakThroughCrisis;
import java.util.ArrayList;
import java.util.List;
import org.l2jmobius.gameserver.data.xml.impl.MonsterBookData;
import org.l2jmobius.gameserver.enums.Faction;
import org.l2jmobius.gameserver.instancemanager.QuestManager;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.MonsterBookCardHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State;
import quests.Q10873_ExaltedReachingAnotherLevel.Q10873_ExaltedReachingAnotherLevel;
/**
* Break Through Crisis (10877)
* @URL https://l2wiki.com/Break_Through_Crisis
* @author CostyKiller
*/
public class Q10877_BreakThroughCrisis extends Quest
{
// NPC
private static final int ARCTURUS = 34267;
// Items
private static final ItemHolder LIONEL_HUNTERS_LIST_PART_4 = new ItemHolder(47829, 1);
// Rewards
private static final int ARCTURUS_CERTIFICATE = 47833;
// Misc
private static final int MIN_LEVEL = 103;
private static final int BESTIARY_PAGES_NEEDED = 10;
public Q10877_BreakThroughCrisis()
{
super(10877);
addStartNpc(ARCTURUS);
addTalkId(ARCTURUS);
addCondMinLevel(MIN_LEVEL, "34267-00.html");
addCondStartedQuest(Q10873_ExaltedReachingAnotherLevel.class.getSimpleName(), "34267-00.html");
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return htmltext;
}
switch (event)
{
case "34267-02.htm":
case "34267-03.htm":
{
htmltext = event;
break;
}
case "34267-04.html":
{
if (hasItem(player, LIONEL_HUNTERS_LIST_PART_4))
{
qs.startQuest();
htmltext = event;
}
break;
}
case "34267-07.html":
{
qs.setCond(2);
htmltext = event;
break;
}
case "34267-08.html":
{
// 64 to 103 card ids of hunters guild mobs
final List<Integer> killedMobs = new ArrayList<>();
for (MonsterBookCardHolder card : MonsterBookData.getInstance().getMonsterBookCards())
{
if ((card.getFaction() == Faction.HUNTERS_GUILD) && (player.getMonsterBookKillCount(card.getId()) > 0))
{
killedMobs.add(card.getId());
}
}
if (killedMobs.size() >= BESTIARY_PAGES_NEEDED)
{
addExpAndSp(player, 34471245000L, 634471244);
giveItems(player, ARCTURUS_CERTIFICATE, 1);
qs.exitQuest(false, true);
final Quest mainQ = QuestManager.getInstance().getQuest(Q10873_ExaltedReachingAnotherLevel.class.getSimpleName());
if (mainQ != null)
{
mainQ.notifyEvent("SUBQUEST_FINISHED_NOTIFY", npc, player);
}
htmltext = event;
}
else
{
htmltext = "34267-06.html";
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, PlayerInstance player)
{
String htmltext = getNoQuestMsg(player);
final QuestState qs = getQuestState(player, true);
switch (qs.getState())
{
case State.CREATED:
{
if (hasItem(player, LIONEL_HUNTERS_LIST_PART_4))
{
htmltext = "34267-01.htm";
}
else
{
htmltext = "34267-00.htm";
}
break;
}
case State.STARTED:
{
if (qs.isCond(1))
{
// 64 to 103 card ids of hunters guild mobs
final List<Integer> killedMobs = new ArrayList<>();
for (MonsterBookCardHolder card : MonsterBookData.getInstance().getMonsterBookCards())
{
if ((card.getFaction() == Faction.HUNTERS_GUILD) && (player.getMonsterBookKillCount(card.getId()) > 0))
{
killedMobs.add(card.getId());
}
}
if (killedMobs.size() >= BESTIARY_PAGES_NEEDED)
{
htmltext = "34267-06.html";
}
}
else
{
htmltext = "34267-05.html";
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
}

View File

@ -0,0 +1,4 @@
<html><body>Royal Guard Captain Logart Van Dyke:<br>
May I help you?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10881_ForThePride 34235-07.html">"State your business."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Royal Guard Captain Logart Van Dyke:<br>
I don't see the certificates. You can receive the <font color="LEVEL">Mother Tree Guardians Certificate</font> from <font color="LEVEL">Guardian Irene</font> and <font color="LEVEL">Unworldly Visitors Certificate</font> from <font color="LEVEL">Ferin</font>.<br>
To get them, you must earn their trust.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Royal Guard Captain Logart Van Dyke:<br>
Have you got the certificates?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10881_ForThePride 34235-09.html">"Yes, I have."</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Royal Guard Captain Logart Van Dyke:<br>
Great work. I hope you you never forget the sadness of those who have to suffer because of the long battles against the monsters.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Quartermaster Dinford:<br>
I do not believe our paths are meant to cross here. Perhaps later down the road.<br>
(Only characters above Lv. 104 and The Exalted, Guide to Power quest should be in progress..)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Quartermaster Dinford:<br>
Hello! I assign missions on behalf of the Kingdom's Royal Guard and Royal Guard Captain Logart Van Dyke. Would you let me explain it?<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10881_ForThePride 34236-02.htm">"Go on."</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Quartermaster Dinford:<br>
Do you know what pride means? Pride is confidence that you gain when you believe in yourself.<br>
Then, how you can judge you own ability? How can you prove that your judgment is right? You can earn true pride only when those who are qualified for such judgment are convinced in your abilities.<br>
I suggest this mission in the hope of developing your confidence.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10881_ForThePride 34236-03.htm">"Ask about the mission."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Quartermaster Dinford:<br>
As far as I know, you've built relationships with some factions. If you undertake missions of other factions, you will be able to understand the meaning of true pride. Will you accept their missions?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10881_ForThePride 34236-04.htm">"Alright."</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Quartermaster Dinford:<br>
Great. Take on missions of the <font color="LEVEL">Mother Tree Guardians</font>, the <font color="LEVEL">Unworldly Visitors</font>, and the <font color="LEVEL">Kingdom's Royal Guard</font>, and increase your Faction Level with <font color="LEVEL">two or more of these factions</font>, to at least <font color="LEVEL">6</font>. Then, receive certificates to prove your Faction Level 6 or higher from the following people: the <font color="LEVEL">Mother Tree Guardians Certificate</font> from <font color="LEVEL">Guardian Irene</font>, the <font color="LEVEL">Unworldly Visitors Certificate</font> from <font color="LEVEL">Ferin</font>, and the <font color="LEVEL">Kingdom's Royal Guard Certificate</font> from <font color="LEVEL">Royal Guard Captain Logart Van Dyke</font>.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Quartermaster Dinford:<br>
Great, you have the certificates. Now go talk to <font color="LEVEL">Royal Guard Captain Logart Van Dyke</font>.
</body></html>

View File

@ -0,0 +1,181 @@
/*
* 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.Q10881_ForThePride;
import org.l2jmobius.gameserver.instancemanager.QuestManager;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State;
import quests.Q10879_ExaltedGuideToPower.Q10879_ExaltedGuideToPower;
/**
* For the Pride (10881)
* @URL https://l2wiki.com/For_the_Pride
* @author CostyKiller
*/
public class Q10881_ForThePride extends Quest
{
private static final int DINFORD = 34236;
private static final int LOGART_VAN_DYKE = 34235;
public Q10881_ForThePride()
{
super(10881);
addStartNpc(DINFORD);
addTalkId(DINFORD, LOGART_VAN_DYKE);
addCondMinLevel(MIN_LEVEL, "34236-00.htm");
addCondStartedQuest(Q10879_ExaltedGuideToPower.class.getSimpleName(), "34236-00.htm");
}
// Items
private static final int LOGART_VAN_DYKE_CERTIFICATE = 47836;
private static final int MOTHER_TREE_GUARDIAN_CERTIFICATION = 47844;
private static final int UNWORLDLY_VISITORS_CERTIFICATION = 47845;
private static final int KINGDOM_ROYAL_GUARD_CERTIFICATION = 47846;
private static final ItemHolder LIONEL_HUNTERS_LIST_PART_5 = new ItemHolder(47834, 1);
private static final int SPELLBOOK_VITALITY_OF_THE_EXALTED = 47855;
// Misc
private static final int MIN_LEVEL = 104;
@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 "34326-02.htm":
case "34326-03.htm":
{
htmltext = event;
break;
}
case "34326-04.htm":
{
if (hasItem(player, LIONEL_HUNTERS_LIST_PART_5))
{
qs.startQuest();
htmltext = event;
}
break;
}
case "34325-07.html":
{
if (qs.isCond(1) && (!(hasQuestItems(player, MOTHER_TREE_GUARDIAN_CERTIFICATION, UNWORLDLY_VISITORS_CERTIFICATION)) || !(hasQuestItems(player, MOTHER_TREE_GUARDIAN_CERTIFICATION, KINGDOM_ROYAL_GUARD_CERTIFICATION)) || !(hasQuestItems(player, UNWORLDLY_VISITORS_CERTIFICATION, KINGDOM_ROYAL_GUARD_CERTIFICATION))))
{
htmltext = event;
}
else
{
qs.setCond(2);
htmltext = "34325-08.htm";
}
break;
}
case "34325-09.html":
{
if (qs.isCond(2))
{
if ((player.getLevel() >= MIN_LEVEL))
{
giveItems(player, LOGART_VAN_DYKE_CERTIFICATE, 1);
giveItems(player, SPELLBOOK_VITALITY_OF_THE_EXALTED, 1);
qs.exitQuest(false, true);
final Quest mainQ = QuestManager.getInstance().getQuest(Q10879_ExaltedGuideToPower.class.getSimpleName());
if (mainQ != null)
{
mainQ.notifyEvent("SUBQUEST_FINISHED_NOTIFY", npc, player);
}
htmltext = event;
}
else
{
htmltext = getNoQuestLevelRewardMsg(player);
}
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() == DINFORD) && (hasItem(player, LIONEL_HUNTERS_LIST_PART_5)))
{
htmltext = "34326-01.htm";
}
else
{
htmltext = "noItem.html";
}
break;
}
case State.STARTED:
{
switch (npc.getId())
{
case DINFORD:
{
if (qs.isCond(1) && ((hasQuestItems(player, MOTHER_TREE_GUARDIAN_CERTIFICATION, UNWORLDLY_VISITORS_CERTIFICATION)) || (hasQuestItems(player, MOTHER_TREE_GUARDIAN_CERTIFICATION, KINGDOM_ROYAL_GUARD_CERTIFICATION)) || (hasQuestItems(player, UNWORLDLY_VISITORS_CERTIFICATION, KINGDOM_ROYAL_GUARD_CERTIFICATION))))
{
htmltext = "34326-05.html";
}
break;
}
case LOGART_VAN_DYKE:
{
if (qs.isCond(1))
{
htmltext = "34325-06.htm";
}
else if (qs.isCond(2))
{
htmltext = "34325-08.html";
}
break;
}
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
}

View File

@ -0,0 +1,4 @@
<html><body>Quartermaster Dinford:<br>
I don't know how you found your way here, but I can't do anything for you if you haven't talked to Lionel Hunter.<br>
(You don't meet the requirements for proceed with this quest. You need Lionel Hunter's Mission List - Part 5 in your inventory.)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Owner Settlen:<br>
I do not believe our paths are meant to cross here. Perhaps later down the road.<br>
(Only characters above Lv. 104 and The Exalted, Guide to Power quest should be in progress..)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Owner Settlen:<br>
I'm going to give you a mission. I believe that those in high positions have to listen to the voices of their people. Fortunately, I know many stories to tell you. You don't need to wander around to hear them.
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10882_VictoryCollection 34180-02.htm">"Ask what to do."</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Owner Settlen:<br>
Listen to all stories you can hear in this tavern.<br>
After completing this mission, make books about the stories and bring them to me.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10882_VictoryCollection 34180-03.htm">"Alright."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Owner Settlen:<br>
You cannot make a storybook simply by listening to a story, but you're more likely to get it if you listen to more stories, more often. Understand?<br>
I expect you to bring me a <font color="LEVEL">Storybook - Tauti</font>, <font color="LEVEL">Storybook - Kelbim</font>, <font color="LEVEL">Storybook - Freya</font>, and <font color="LEVEL">Storybook - Kain van Halter</font>.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Owner Settlen:<br>
I expect you to bring me a <font color="LEVEL">Storybook - Tauti</font>, <font color="LEVEL">Storybook - Kelbim</font>, <font color="LEVEL">Storybook - Freya</font>, and <font color="LEVEL">Storybook - Kain van Halter</font>.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Owner Settlen:<br>
Have you got all the story books?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10882_VictoryCollection 34180-06.html">"Yes, I have."</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Owner Settlen:<br>
Great work. I hope you you never forget the sadness of those who have to suffer because of the long battles against the monsters.
</body></html>

View File

@ -0,0 +1,198 @@
/*
* 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.Q10882_VictoryCollection;
import org.l2jmobius.Config;
import org.l2jmobius.commons.util.CommonUtil;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.instancemanager.QuestManager;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State;
import quests.Q10879_ExaltedGuideToPower.Q10879_ExaltedGuideToPower;
/**
* Victory Collection (10882)
* @URL https://l2wiki.com/Victory_Collection
* @author CostyKiller
*/
public class Q10882_VictoryCollection extends Quest
{
// Npcs
private static final int SETTLEN = 34180;
// Monsters
private static final int[] MONSTERS =
{
// TODO: Add Kelbim and Kain Instance Monsters
// TODO: Add Story books drop to RBs
// Tauti Instance Monsters
23680, // Flame Golem
23709, // Flame Scarab
23683, // Seal Archangel
23685, // Seal Angel
// Freya Instance Monsters
23686, // Frost Golem
23687, // Glacier Frostbringer
23703, // Ice Knight
23689 // Freya
};
// Items
private static final int SETTLEN_CERTIFICATE = 47837;
private static final ItemHolder LIONEL_HUNTERS_LIST_PART_5 = new ItemHolder(47834, 1);
private static final int STORY_BOOK_OF_TAUTI = 47847;
private static final int STORY_BOOK_OF_KELBIM = 47848;
private static final int STORY_BOOK_OF_FREYA = 47849;
private static final int STORY_BOOK_OF_KAIN_VAN_HALTER = 47850;
private static final int COVERED_PAGE = 48930;
// Misc
private static final int MIN_LEVEL = 104;
public Q10882_VictoryCollection()
{
super(10882);
addStartNpc(SETTLEN);
addTalkId(SETTLEN);
addKillId(MONSTERS);
addCondMinLevel(MIN_LEVEL, "34180-00.htm");
addCondStartedQuest(Q10879_ExaltedGuideToPower.class.getSimpleName(), "34180-00.htm");
}
@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 "34180-02.htm":
case "34180-04.html":
{
htmltext = event;
break;
}
case "34180-03.html":
{
if (hasItem(player, LIONEL_HUNTERS_LIST_PART_5))
{
qs.startQuest();
htmltext = event;
}
break;
}
case "34180-06.html":
{
if (qs.isCond(2))
{
if ((player.getLevel() >= MIN_LEVEL))
{
giveItems(player, SETTLEN_CERTIFICATE, 1);
addExpAndSp(player, 69661122560L, 709661122);
qs.exitQuest(false, true);
final Quest mainQ = QuestManager.getInstance().getQuest(Q10879_ExaltedGuideToPower.class.getSimpleName());
if (mainQ != null)
{
mainQ.notifyEvent("SUBQUEST_FINISHED_NOTIFY", npc, player);
}
htmltext = event;
}
else
{
htmltext = getNoQuestLevelRewardMsg(player);
}
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() == SETTLEN) && (hasItem(player, LIONEL_HUNTERS_LIST_PART_5)))
{
htmltext = "34180-01.htm";
}
else
{
htmltext = "noItem.html";
}
break;
}
case State.STARTED:
{
if ((npc.getId() == SETTLEN) && qs.isCond(2) && (hasQuestItems(player, STORY_BOOK_OF_TAUTI, STORY_BOOK_OF_KELBIM, STORY_BOOK_OF_FREYA, STORY_BOOK_OF_KAIN_VAN_HALTER)))
{
htmltext = "34180-05.htm";
}
else
{
htmltext = "34180-04.html";
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
@Override
public String onKill(Npc npc, PlayerInstance player, boolean isSummon)
{
executeForEachPlayer(player, npc, isSummon, true, false);
return super.onKill(npc, player, isSummon);
}
@Override
public void actionForEachPlayer(PlayerInstance player, Npc npc, boolean isSummon)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE) && CommonUtil.contains(MONSTERS, npc.getId()))
{
giveItems(player, COVERED_PAGE, 1);
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (getQuestItemsCount(player, COVERED_PAGE) >= 24)
{
qs.setCond(2, true);
}
}
}
}

View File

@ -0,0 +1,4 @@
<html><body>Owner Settlen:<br>
I don't know how you found your way here, but I can't do anything for you if you haven't talked to Lionel Hunter.<br>
(You don't meet the requirements for proceed with this quest. You need Lionel Hunter's Mission List - Part 5 in your inventory.)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Admiral Keucereus:<br>
I do not believe our paths are meant to cross here. Perhaps later down the road.<br>
(Only characters above Lv. 104 and The Exalted, Guide to Power quest should be in progress..)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Admiral Keucereus:<br>
Did Lionel Hunter send you? I should appreciate his choice. You seem to be the right person for my mission.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10883_ImmortalHonor 32548-02.htm">"Go on."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Admiral Keucereus:<br>
Battles frequently take place here. I'm sure that you know what it means to be summoned.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10883_ImmortalHonor 32548-03.htm">"Yes."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Admiral Keucereus:<br>
This battle will determine the fate of the world. Do you want to gain fame? Or honor? Either would be meaningless if there is no world. Do you understand? Then, your duty is to save the world.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10883_ImmortalHonor 32548-04.html">"Alright."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Admiral Keucereus:<br>
I order you to defeat <font color="LEVEL">Camille</font> and <font color="LEVEL">Kain van Halter</font>.
Save the world and earn eternal fame.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Admiral Keucereus:<br>
I ordered you to defeat <font color="LEVEL">Camille</font> and <font color="LEVEL">Kain van Halter</font>.
Come back when you killed them.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Admiral Keucereus:<br>
Have you defeated <font color="LEVEL">Camille</font> and <font color="LEVEL">Kain van Halter</font>?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10883_ImmortalHonor 32548-07.html">"Yes, I have."</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Admiral Keucereus:<br>
Great work. I hope you you never forget the sadness of those who have to suffer because of the long battles against the monsters.
</body></html>

View File

@ -0,0 +1,175 @@
/*
* 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.Q10883_ImmortalHonor;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.instancemanager.QuestManager;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State;
import quests.Q10879_ExaltedGuideToPower.Q10879_ExaltedGuideToPower;
/**
* Immortal Honor (10883)
* @URL https://l2wiki.com/Immortal_Honor
* @author CostyKiller
*/
public class Q10883_ImmortalHonor extends Quest
{
// Npcs
private static final int KEUCEREUS_ADMIRAL = 32548;
// Raids
private static final int CAMILLE = 26236;
private static final int KAIN_VAN_HALTER = 26235;
// Items
private static final int KEUCEREUS_CERTIFICATE = 47837;
private static final ItemHolder LIONEL_HUNTERS_LIST_PART_5 = new ItemHolder(47834, 1);
// Misc
private static final int MIN_LEVEL = 104;
public Q10883_ImmortalHonor()
{
super(10883);
addStartNpc(KEUCEREUS_ADMIRAL);
addTalkId(KEUCEREUS_ADMIRAL);
addKillId(CAMILLE, KAIN_VAN_HALTER);
addCondMinLevel(MIN_LEVEL, "32548-00.htm");
addCondStartedQuest(Q10879_ExaltedGuideToPower.class.getSimpleName(), "32548-00.htm");
}
@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 "32548-02.htm":
case "32548-03.htm":
{
htmltext = event;
break;
}
case "32548-04.html":
{
if (hasItem(player, LIONEL_HUNTERS_LIST_PART_5))
{
qs.startQuest();
qs.set(Integer.toString(CAMILLE), "false");
qs.set(Integer.toString(KAIN_VAN_HALTER), "false");
htmltext = event;
}
break;
}
case "32548-07.html":
{
if (qs.isCond(2))
{
if ((player.getLevel() >= MIN_LEVEL))
{
giveItems(player, KEUCEREUS_CERTIFICATE, 1);
addExpAndSp(player, 104491683840L, 1064491683);
qs.exitQuest(false, true);
final Quest mainQ = QuestManager.getInstance().getQuest(Q10879_ExaltedGuideToPower.class.getSimpleName());
if (mainQ != null)
{
mainQ.notifyEvent("SUBQUEST_FINISHED_NOTIFY", npc, player);
}
htmltext = event;
}
else
{
htmltext = getNoQuestLevelRewardMsg(player);
}
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() == KEUCEREUS_ADMIRAL) && (hasItem(player, LIONEL_HUNTERS_LIST_PART_5)))
{
htmltext = "32548-01.htm";
}
else
{
htmltext = "noItem.html";
}
break;
}
case State.STARTED:
{
if ((npc.getId() == KEUCEREUS_ADMIRAL) && qs.get(Integer.toString(CAMILLE)).equals("true") && qs.get(Integer.toString(KAIN_VAN_HALTER)).equals("true"))
{
htmltext = "32548-06.htm";
}
else
{
htmltext = "32548-05.html";
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
@Override
public String onKill(Npc npc, PlayerInstance player, boolean isSummon)
{
executeForEachPlayer(player, npc, isSummon, true, false);
return super.onKill(npc, player, isSummon);
}
@Override
public void actionForEachPlayer(PlayerInstance player, Npc npc, boolean isSummon)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isStarted() && player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
{
qs.set(Integer.toString(npc.getId()), "true");
notifyKill(npc, player, isSummon);
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
}
}
}

View File

@ -0,0 +1,4 @@
<html><body>Admiral Keucereus:<br>
I don't know how you found your way here, but I can't do anything for you if you haven't talked to Lionel Hunter.<br>
(You don't meet the requirements for proceed with this quest. You need Lionel Hunter's Mission List - Part 5 in your inventory.)
</body></html>

View File

@ -496,9 +496,15 @@ import quests.Q10852_TheMotherTreeRevivalProject.Q10852_TheMotherTreeRevivalProj
import quests.Q10856_SuperionAppears.Q10856_SuperionAppears;
import quests.Q10857_SecretTeleport.Q10857_SecretTeleport;
import quests.Q10873_ExaltedReachingAnotherLevel.Q10873_ExaltedReachingAnotherLevel;
import quests.Q10874_AgainstTheNewEnemy.Q10874_AgainstTheNewEnemy;
import quests.Q10875_ForReputation.Q10875_ForReputation;
import quests.Q10876_LeadersGrace.Q10876_LeadersGrace;
import quests.Q10877_BreakThroughCrisis.Q10877_BreakThroughCrisis;
import quests.Q10879_ExaltedGuideToPower.Q10879_ExaltedGuideToPower;
import quests.Q10880_TheLastOneStanding.Q10880_TheLastOneStanding;
import quests.Q10881_ForThePride.Q10881_ForThePride;
import quests.Q10882_VictoryCollection.Q10882_VictoryCollection;
import quests.Q10883_ImmortalHonor.Q10883_ImmortalHonor;
import quests.not_done.Q00504_CompetitionForTheBanditStronghold;
import quests.not_done.Q00655_AGrandPlanForTamingWildBeasts;
import quests.not_done.Q00667_HowToCoverShilensEyes;
@ -541,12 +547,6 @@ import quests.not_done.Q10853_ToWeakenTheGiants;
import quests.not_done.Q10854_ToSeizeTheFortress;
import quests.not_done.Q10858_QueenRamonaControllerOfTheVessel;
import quests.not_done.Q10859_OwnTheEarthAndTheHeavens;
import quests.not_done.Q10874_AgainstTheNewEnemy;
import quests.not_done.Q10875_ForReputation;
import quests.not_done.Q10877_BreakThroughCrisis;
import quests.not_done.Q10881_ForThePride;
import quests.not_done.Q10882_VictoryCollection;
import quests.not_done.Q10883_ImmortalHonor;
/**
* @author NosBit
@ -1076,15 +1076,15 @@ public class QuestMasterHandler
Q10858_QueenRamonaControllerOfTheVessel.class, // TODO: Not done.
Q10859_OwnTheEarthAndTheHeavens.class, // TODO: Not done.
Q10873_ExaltedReachingAnotherLevel.class,
Q10874_AgainstTheNewEnemy.class, // TODO: Not done.
Q10875_ForReputation.class, // TODO: Not done.
Q10874_AgainstTheNewEnemy.class,
Q10875_ForReputation.class,
Q10876_LeadersGrace.class,
Q10877_BreakThroughCrisis.class, // TODO: Not done.
Q10877_BreakThroughCrisis.class,
Q10879_ExaltedGuideToPower.class,
Q10880_TheLastOneStanding.class,
Q10881_ForThePride.class, // TODO: Not done.
Q10882_VictoryCollection.class, // TODO: Not done.
Q10883_ImmortalHonor.class, // TODO: Not done.
Q10881_ForThePride.class,
Q10882_VictoryCollection.class,
Q10883_ImmortalHonor.class,
};
public static void main(String[] args)

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 Q10874_AgainstTheNewEnemy extends Quest
{
private static final int START_NPC = 34230;
public Q10874_AgainstTheNewEnemy()
{
super(10874);
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 Q10875_ForReputation extends Quest
{
private static final int START_NPC = 34237;
public Q10875_ForReputation()
{
super(10875);
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 Q10877_BreakThroughCrisis extends Quest
{
private static final int START_NPC = 34267;
public Q10877_BreakThroughCrisis()
{
super(10877);
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 Q10881_ForThePride extends Quest
{
private static final int START_NPC = 34236;
public Q10881_ForThePride()
{
super(10881);
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 Q10882_VictoryCollection extends Quest
{
private static final int START_NPC = 34180;
public Q10882_VictoryCollection()
{
super(10882);
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 Q10883_ImmortalHonor extends Quest
{
private static final int START_NPC = 32548;
public Q10883_ImmortalHonor()
{
super(10883);
addStartNpc(START_NPC);
addTalkId(START_NPC);
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
}
}

View File

@ -139,10 +139,4 @@
10853 To Weaken the Giants
10854 To Seize the Fortress
10858 Queen Ramona, Controller of the Vessel
10859 Own the Earth and the Heavens
10874 Against the New Enemy
10875 For Reputation
10877 Break Through Crisis
10881 For the Pride
10882 Victory Collection
10883 Immortal Honor
10859 Own the Earth and the Heavens

View File

@ -30,7 +30,7 @@ import quests.Q10811_ExaltedOneWhoFacesTheLimit.Q10811_ExaltedOneWhoFacesTheLimi
/**
* Facing Sadness (10812)
* @author Stayway
* @author Stayway, CostyKiller
*/
public class Q10812_FacingSadness extends Quest
{
@ -100,6 +100,7 @@ public class Q10812_FacingSadness extends Quest
// Misc
private static final int MIN_LEVEL = 99;
private static final int PROOF_OF_DISPOSAL_NEEDED = 8000;
public Q10812_FacingSadness()
{
@ -145,7 +146,7 @@ public class Q10812_FacingSadness extends Quest
{
if ((player.getLevel() >= MIN_LEVEL))
{
takeItems(player, PROOF_OF_DISPOSAL, -1);
takeItems(player, PROOF_OF_DISPOSAL, PROOF_OF_DISPOSAL_NEEDED);
giveItems(player, ELIKIA_CERTIFICATE, 1);
addExpAndSp(player, 0, 498204432);
qs.exitQuest(false, true);
@ -193,7 +194,7 @@ public class Q10812_FacingSadness extends Quest
{
htmltext = "31620-05.html";
}
else if (qs.isCond(2))
else if (qs.isCond(2) && (getQuestItemsCount(player, PROOF_OF_DISPOSAL) >= PROOF_OF_DISPOSAL_NEEDED))
{
htmltext = "31620-07.html";
}
@ -221,12 +222,12 @@ public class Q10812_FacingSadness extends Quest
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1) && player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
{
if (getQuestItemsCount(player, PROOF_OF_DISPOSAL) < 8000)
if (getQuestItemsCount(player, PROOF_OF_DISPOSAL) < PROOF_OF_DISPOSAL_NEEDED)
{
giveItems(player, PROOF_OF_DISPOSAL, 1);
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
if (getQuestItemsCount(player, PROOF_OF_DISPOSAL) >= 8000)
if (getQuestItemsCount(player, PROOF_OF_DISPOSAL) >= PROOF_OF_DISPOSAL_NEEDED)
{
qs.setCond(2, true);
}

View File

@ -1,5 +1,4 @@
<html><body>Eva's Knight Lionel Hunter:<br>
Have you completed all the tests?<br>
Congratulations on passing them all. Did you bring back all the certificates?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10817_ExaltedOneWhoOvercomesTheLimit 33907-08.html">"Yes, here."</Button>
You are not ready to be called by me. Come back when you are ready.<br>
(Only Noblesse characters Lv. 99 or above can perform this quest.)
</body></html>

View File

@ -1,5 +1,5 @@
<html><body>Eva's Knight Lionel Hunter:<br>
You are on track to overcoming your limit. Congratulations on passing the second test.<br>
Don't get complacent, though. You'll soon be taking the third test, once you are ready for it.<br>
I'll call you when you are ready.
Have you completed all the tests?<br>
Congratulations on passing them all. Did you bring back all the certificates?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10817_ExaltedOneWhoOvercomesTheLimit 33907-09.html">"Yes, here."</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Eva's Knight Lionel Hunter:<br>
You are on track to overcoming your limit. Congratulations on passing the second test.<br>
Don't get complacent, though. You'll soon be taking the third test, once you are ready for it.<br>
I'll call you when you are ready.
</body></html>

View File

@ -84,7 +84,7 @@ public class Q10817_ExaltedOneWhoOvercomesTheLimit extends Quest
}
break;
}
case "33907-08.html":
case "33907-09.html":
{
if (hasQuestItems(player, DAICHIR_SERTIFICATE, OLYMPIAD_MANAGER_CERTIFICATE, ISHUMA_CERTIFICATE, SIR_KRISTOF_RODEMAI_CERTIFICATE) && (player.getLevel() >= MIN_COMPLETE_LEVEL))
{
@ -116,7 +116,7 @@ public class Q10817_ExaltedOneWhoOvercomesTheLimit extends Quest
{
if (hasQuestItems(player, DAICHIR_SERTIFICATE, OLYMPIAD_MANAGER_CERTIFICATE, ISHUMA_CERTIFICATE, SIR_KRISTOF_RODEMAI_CERTIFICATE) && (player.getLevel() >= MIN_COMPLETE_LEVEL))
{
htmltext = "33907-07.html";
htmltext = "33907-08.html";
}
else
{

View File

@ -1,5 +1,4 @@
<html><body>Eva's Knight Lionel Hunter:<br>
You've completed a long journey. Good job. I'm glad to see you haven't given up.<br>
Do you have all the certificates?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10823_ExaltedOneWhoShattersTheLimit 33907-08.html">"Yes, here."</Button>
You are not ready to be called by me. Come back when you are ready.<br>
(Only Noblesse characters Lv. 100 or above can perform this quest.)
</body></html>

View File

@ -1,4 +1,5 @@
<html><body>Eva's Knight Lionel Hunter:<br>
The power given to us by the gods... we called it Noblesse. But you've proven that we are now able to overcome any limits without the protection of the gods.<br>
Now that you've shattered the limits set by the gods, we will call you <font color="LEVEL">Exalted</font>. You are now one step above Noblesse. Congratulations.
You've completed a long journey. Good job. I'm glad to see you haven't given up.<br>
Do you have all the certificates?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10823_ExaltedOneWhoShattersTheLimit 33907-09.html">"Yes, here."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Eva's Knight Lionel Hunter:<br>
The power given to us by the gods... we called it Noblesse. But you've proven that we are now able to overcome any limits without the protection of the gods.<br>
Now that you've shattered the limits set by the gods, we will call you <font color="LEVEL">Exalted</font>. You are now one step above Noblesse. Congratulations.
</body></html>

View File

@ -34,7 +34,7 @@ public class Q10823_ExaltedOneWhoShattersTheLimit extends Quest
// NPC
private static final int LIONEL = 33907;
// Items
private static final int MERLOT_SERTIFICATE = 46056;
private static final int MERLOT_CERTIFICATE = 46056;
private static final int KURTIZ_CERTIFICATE = 46057;
private static final int MAMMON_CERTIFICATE = 45635;
private static final int GUSTAV_CERTIFICATE = 45636;
@ -53,9 +53,9 @@ public class Q10823_ExaltedOneWhoShattersTheLimit extends Quest
super(10823);
addStartNpc(LIONEL);
addTalkId(LIONEL);
addCondMinLevel(MIN_LEVEL, "");
addCondMinLevel(MIN_LEVEL, "33907-07.html");
addCondCompletedQuest(Q10817_ExaltedOneWhoOvercomesTheLimit.class.getSimpleName(), "33907-02.html");
registerQuestItems(LIONEL_MISSION_LIST_3, MERLOT_SERTIFICATE, KURTIZ_CERTIFICATE, MAMMON_CERTIFICATE, GUSTAV_CERTIFICATE);
registerQuestItems(LIONEL_MISSION_LIST_3, MERLOT_CERTIFICATE, KURTIZ_CERTIFICATE, MAMMON_CERTIFICATE, GUSTAV_CERTIFICATE);
}
@Override
@ -86,14 +86,18 @@ public class Q10823_ExaltedOneWhoShattersTheLimit extends Quest
}
break;
}
case "33907-08.html":
case "33907-09.html":
{
if (hasQuestItems(player, MERLOT_SERTIFICATE, KURTIZ_CERTIFICATE, MAMMON_CERTIFICATE, GUSTAV_CERTIFICATE) && ((player.getDualClass() != null) && (player.getDualClass().getLevel() >= MIN_DUALCLASS_LEVEL)))
if (hasQuestItems(player, MERLOT_CERTIFICATE, KURTIZ_CERTIFICATE, MAMMON_CERTIFICATE, GUSTAV_CERTIFICATE) && ((player.getDualClass() != null) && (player.getDualClass().getLevel() >= MIN_DUALCLASS_LEVEL)))
{
giveItems(player, EXALTED_CLOAK, 1);
giveItems(player, OBTAIN_EXALTED_STATUS, 1);
giveItems(player, EXALTED_TIARA, 1);
giveItems(player, DIGNITY_OF_THE_EXALTED, 1);
// Give Exalted status here?
// https://l2wiki.com/Noblesse
player.setNobleLevel(2);
player.broadcastUserInfo();
qs.exitQuest(false, true);
htmltext = event;
}
@ -118,9 +122,9 @@ public class Q10823_ExaltedOneWhoShattersTheLimit extends Quest
}
case State.STARTED:
{
if (hasQuestItems(player, MERLOT_SERTIFICATE, KURTIZ_CERTIFICATE, MAMMON_CERTIFICATE, GUSTAV_CERTIFICATE) && ((player.getDualClass() != null) && (player.getDualClass().getLevel() >= MIN_DUALCLASS_LEVEL)))
if (hasQuestItems(player, MERLOT_CERTIFICATE, KURTIZ_CERTIFICATE, MAMMON_CERTIFICATE, GUSTAV_CERTIFICATE) && ((player.getDualClass() != null) && (player.getDualClass().getLevel() >= MIN_DUALCLASS_LEVEL)))
{
htmltext = "33907-07.html";
htmltext = "33907-08.html";
}
else
{

View File

@ -38,7 +38,7 @@ public class Q10826_LuckBefittingOfTheStatus extends Quest
private static final int BLACKSMITH_OF_MAMMON = 31126;
// Items
private static final int LADY_KNIFE = 45645;
private static final int MERLOT_SERTIFICATE = 46056;
private static final int MERLOT_CERTIFICATE = 46056;
private static final int KURTIZ_CERTIFICATE = 46057;
private static final int GUSTAV_CERTIFICATE = 45636;
// Rewards
@ -118,7 +118,7 @@ public class Q10826_LuckBefittingOfTheStatus extends Quest
{
if ((player.getLevel() >= MIN_LEVEL))
{
if (hasQuestItems(player, KURTIZ_CERTIFICATE, MERLOT_SERTIFICATE, GUSTAV_CERTIFICATE))
if (hasQuestItems(player, KURTIZ_CERTIFICATE, MERLOT_CERTIFICATE, GUSTAV_CERTIFICATE))
{
htmltext = "31126-15.html";
}

View File

@ -0,0 +1,3 @@
<html><body>Fire Dragon Bride Leona Blackbird:<br>
You have to bring me 10.000 <font color="LEVEL">Proof of Qualification</font> to obtain my certificate.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Fire Dragon Bride Leona Blackbird:<br>
Have you brought me 10.000 <font color="LEVEL">Proof of Qualification</font>, if not then go get them, to obtain the certificate.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10874_AgainstTheNewEnemy 31595-02.htm">"Yes, here they are."</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Fire Dragon Bride Leona Blackbird:<br>
Good! You have brought 10.000 <font color="LEVEL">Proof of Qualification</font>.<br>
Now choose your reward:<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10874_AgainstTheNewEnemy 31595-03.htm">"4.500 GIANT TRACKERS Faction Points."</Button>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10874_AgainstTheNewEnemy 31595-04.htm">"4.500 BLACKBIRD CLAN Faction Points."</Button>
</body></html>

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