Exalted quest updates.
Contributed by CostyKiller.
This commit is contained in:
@@ -116,8 +116,6 @@
|
||||
1900 Storm Isle - Secret Spot
|
||||
1901 Storm Isle - Furtive Deal
|
||||
10298 Wasteland Queen
|
||||
10514 New Path to Glory
|
||||
10515 New Way for Pride
|
||||
10554 To Weaken the Giants
|
||||
10555 To Weaken the Giants
|
||||
10556 To Weaken the Giants
|
||||
@@ -138,12 +136,6 @@
|
||||
10848 Trials before the Battle
|
||||
10853 To Weaken the Giants
|
||||
10854 To Seize the Fortress
|
||||
10874 Against the New Enemy
|
||||
10875 For Reputation
|
||||
10877 Break Through Crisis
|
||||
10881 For the Pride
|
||||
10882 Victory Collection
|
||||
10883 Immortal Honor
|
||||
10885 Savior's Path - Discovery
|
||||
10886 Savior's Path - Search the Refinery
|
||||
10887 Savior's Path - Demons and Atelia
|
||||
|
@@ -0,0 +1,4 @@
|
||||
<html><body>High Priest Sylvain:<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>
|
6
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10514_NewPathToGlory/30070-01.htm
vendored
Normal file
6
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10514_NewPathToGlory/30070-01.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>High Priest Sylvain:<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 Q10514_NewPathToGlory 30070-02.htm">"Go on."</Button>
|
||||
</body></html>
|
5
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10514_NewPathToGlory/30070-02.htm
vendored
Normal file
5
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10514_NewPathToGlory/30070-02.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>High Priest Sylvain:<br>
|
||||
Lionel Hunter said that you want to reach another level.<br>
|
||||
I was waiting for someone to complete a mission to substitute all the missions from the other people...<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10514_NewPathToGlory 30070-03.htm">"Ask what mission."</Button>
|
||||
</body></html>
|
5
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10514_NewPathToGlory/30070-03.htm
vendored
Normal file
5
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10514_NewPathToGlory/30070-03.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>High Priest Sylvain:<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 Q10514_NewPathToGlory 30070-04.htm">"I will take the test."</Button>
|
||||
</body></html>
|
7
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10514_NewPathToGlory/30070-04.htm
vendored
Normal file
7
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10514_NewPathToGlory/30070-04.htm
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<html><body>High Priest Sylvain:<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 Q10514_NewPathToGlory 30070-05.html">"Alright."</Button>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>High Priest Sylvain:<br>
|
||||
Listen carefully, I won't explain this again. Hunt monsters in <font color="LEVEL">Atelia Refinery, Ivory Tower Crater, Alligator Island and Tanor Canyon</font> and collect 80.000 <font color="LEVEL">Proof of Reputation</font>. What do you say? It's quite hard, right? Hahahaha!!!<br>
|
||||
Come to me after completing the mission to get a certificate.<br>
|
||||
</body></html>
|
@@ -0,0 +1,5 @@
|
||||
<html><body>High Priest Sylvain:<br>
|
||||
You did not get what I asked for.<br>
|
||||
Hunt monsters in <font color="LEVEL">Atelia Refinery, Ivory Tower Crater, Alligator Island and Tanor Canyon</font> and collect 80.000 <font color="LEVEL">Proof of Reputation</font>.<br>
|
||||
Come to me after completing the mission to get a certificate.<br>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>High Priest Sylvain:<br>
|
||||
Did you get 80.000 <font color="LEVEL">Proof of Reputation</font>?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10514_NewPathToGlory 30070-08.html">"Yes, here."</Button>
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>High Priest Sylvain:<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>
|
@@ -0,0 +1,226 @@
|
||||
/*
|
||||
* 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.Q10514_NewPathToGlory;
|
||||
|
||||
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 org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
import quests.Q10873_ExaltedReachingAnotherLevel.Q10873_ExaltedReachingAnotherLevel;
|
||||
|
||||
/**
|
||||
* New Path To Glory (10514)
|
||||
* @URL https://l2wiki.com/New_Path_to_Glory
|
||||
* @author CostyKiller
|
||||
*/
|
||||
public class Q10514_NewPathToGlory extends Quest
|
||||
{
|
||||
// NPC
|
||||
private static final int HIGH_PRIEST_SYLVAIN = 30070;
|
||||
private static final int[] MONSTERS =
|
||||
{
|
||||
// Atelia Refinery
|
||||
24150, // Devil Warrior
|
||||
24149, // Devil Nightmare
|
||||
24153, // Devil Varos
|
||||
24152, // Devil Sinist
|
||||
24151, // Devil Guardian
|
||||
24144, // Death Rogue
|
||||
24145, // Death Shooter
|
||||
24146, // Death Warrior
|
||||
24147, // Death Sorcerer
|
||||
24148, // Death Pondus
|
||||
24155, // Demonic Warrior
|
||||
24154, // Demonic Wizard
|
||||
24158, // Demonic Weiss
|
||||
24157, // Demonic Keras
|
||||
24156, // Demonic Archer
|
||||
|
||||
// Ivory Tower Crater
|
||||
24421, // Stone Gargoyle
|
||||
24422, // Stone Golem
|
||||
24423, // Monster Eye
|
||||
24424, // Gargoyle Hunter
|
||||
24425, // Steel Golem
|
||||
24426, // Stone Cube
|
||||
|
||||
// Alligator Island
|
||||
24372, // Crokian Lad
|
||||
24373, // Dailaon Lad
|
||||
24375, // Farhite Lad
|
||||
24376, // Nos Lad
|
||||
24377, // Swamp Tribe
|
||||
24378, // Swamp Alligator
|
||||
24379, // Swamp Warrior
|
||||
|
||||
// Tanor Canyon
|
||||
20936, // Tanor Silenos -->
|
||||
20937, // Tanor Silenos Solider -->
|
||||
20938, // Tanor Silenos Scout -->
|
||||
20939, // Tanor Silenos Warrior -->
|
||||
20941, // Tanor Silenos Chieftain -->
|
||||
20942, // Nightmare Guide -->
|
||||
20943, // Nightmare Watchman -->
|
||||
20944 // Nightmare Lord -->
|
||||
};
|
||||
// Items
|
||||
private static final int PROOF_OF_REPUTATION = 80826;
|
||||
private static final ItemHolder LIONEL_HUNTERS_LIST_PART_4 = new ItemHolder(47829, 1);
|
||||
// Rewards
|
||||
private static final int SYLVAIN_CERTIFICATE = 80828;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 103;
|
||||
private static final int PROOF_OF_REPUTATION_NEEDED = 80000;
|
||||
|
||||
public Q10514_NewPathToGlory()
|
||||
{
|
||||
super(10514);
|
||||
addStartNpc(HIGH_PRIEST_SYLVAIN);
|
||||
addTalkId(HIGH_PRIEST_SYLVAIN);
|
||||
addKillId(MONSTERS);
|
||||
addCondMinLevel(MIN_LEVEL, "30070-00.html");
|
||||
addCondStartedQuest(Q10873_ExaltedReachingAnotherLevel.class.getSimpleName(), "30070-00.html");
|
||||
registerQuestItems(PROOF_OF_REPUTATION);
|
||||
}
|
||||
|
||||
@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 "30070-02.htm":
|
||||
case "30070-03.htm":
|
||||
case "30070-04.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30070-05.html":
|
||||
{
|
||||
if (hasItem(player, LIONEL_HUNTERS_LIST_PART_4))
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30070-08.html":
|
||||
{
|
||||
if (qs.isCond(2) && (getQuestItemsCount(player, PROOF_OF_REPUTATION) >= PROOF_OF_REPUTATION_NEEDED))
|
||||
{
|
||||
takeItems(player, PROOF_OF_REPUTATION, PROOF_OF_REPUTATION_NEEDED);
|
||||
giveItems(player, SYLVAIN_CERTIFICATE, 1);
|
||||
addExpAndSp(player, 3480527972686L, 0);
|
||||
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 = "30070-01.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30070-00.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (getQuestItemsCount(player, PROOF_OF_REPUTATION) >= PROOF_OF_REPUTATION_NEEDED)
|
||||
{
|
||||
htmltext = "30070-07.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30070-06.html";
|
||||
}
|
||||
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_REPUTATION) < PROOF_OF_REPUTATION_NEEDED) && (getRandom(100) < 90))
|
||||
{
|
||||
giveItems(player, PROOF_OF_REPUTATION, 1);
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
if ((getQuestItemsCount(player, PROOF_OF_REPUTATION) >= PROOF_OF_REPUTATION_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);
|
||||
}
|
||||
}
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Cardinal Seresin:<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>
|
5
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10515_NewWayForPride/30657-01.htm
vendored
Normal file
5
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10515_NewWayForPride/30657-01.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Cardinal Seresin:<br>
|
||||
Lionel Hunter sent you? He told me about a soldier who will come to test and qualify for the <font color="LEVEL">Guide of Power</font> who is supposed to save the world from darkness.<br>
|
||||
I won't bore you with a long story. In short, he told me to test the adventurers and give certificates to only those who pass.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10515_NewWayForPride 30657-02.htm">"Go on."</Button>
|
||||
</body></html>
|
5
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10515_NewWayForPride/30657-02.htm
vendored
Normal file
5
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10515_NewWayForPride/30657-02.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Cardinal Seresin:<br>
|
||||
I was surprised that Lionel accepted the offer so readily. He's not a person who takes on troublesome work. I was wondering what he had in mind... Now I'm doing his job.<br>
|
||||
I thought is better for you to know what happened so far.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10515_NewWayForPride 30657-03.htm">"Go on."</Button>
|
||||
</body></html>
|
5
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10515_NewWayForPride/30657-03.htm
vendored
Normal file
5
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10515_NewWayForPride/30657-03.htm
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
<html><body>Cardinal Seresin:<br>
|
||||
I thought that <font color="LEVEL">hunting</font> would be the simplest way of proving oneself capable of guiding the power, and you are certainly qualified to take the test.<br>
|
||||
However, it doesn't mean that you can finish it successfully. Think carefully before undertaking the mission.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10515_NewWayForPride 30657-04.htm">"Alright."</Button>
|
||||
</body></html>
|
6
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10515_NewWayForPride/30657-04.htm
vendored
Normal file
6
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10515_NewWayForPride/30657-04.htm
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<html><body>Cardinal Seresin:<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>
|
||||
Will you accept the mission?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10515_NewWayForPride 30657-05.html">"Alright."</Button>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Cardinal Seresin:<br>
|
||||
Listen carefully, I won't explain this again. Hunt monsters in <font color="LEVEL">Atelia Refinery, Ivory Tower Crater, Alligator Island and Tanor Canyon</font> and collect 80.000 <font color="LEVEL">Proof of Reputation</font>. What do you say? It's quite hard, right? Hahahaha!!!<br>
|
||||
Come to me after completing the mission to get a certificate.<br>
|
||||
</body></html>
|
@@ -0,0 +1,5 @@
|
||||
<html><body>Cardinal Seresin:<br>
|
||||
You did not get what I asked for.<br>
|
||||
Hunt monsters in <font color="LEVEL">Atelia Refinery, Ivory Tower Crater, Alligator Island and Tanor Canyon</font> and collect 80.000 <font color="LEVEL">Proof of Reputation</font>.<br>
|
||||
Come to me after completing the mission to get a certificate.<br>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Cardinal Seresin:<br>
|
||||
Did you get 80.000 <font color="LEVEL">Proof of Reputation</font>?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10515_NewWayForPride 30657-08.html">"Yes, here."</Button>
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Cardinal Seresin:<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>
|
@@ -0,0 +1,221 @@
|
||||
/*
|
||||
* 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.Q10515_NewWayForPride;
|
||||
|
||||
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;
|
||||
|
||||
/**
|
||||
* New Way For Pride (10515)
|
||||
* @URL https://l2wiki.com/New_Way_for_Pride
|
||||
* @author CostyKiller
|
||||
*/
|
||||
public class Q10515_NewWayForPride extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int CARDINAL_SERESIN = 30657;
|
||||
// Items
|
||||
private static final int SERESIN_CERTIFICATE = 80829;
|
||||
private static final int PROOF_OF_REPUTATION = 80826;
|
||||
private static final ItemHolder LIONEL_HUNTERS_LIST_PART_5 = new ItemHolder(47834, 1);
|
||||
// Monsters
|
||||
private static final int[] MONSTERS =
|
||||
{
|
||||
// Atelia Refinery
|
||||
24150, // Devil Warrior
|
||||
24149, // Devil Nightmare
|
||||
24153, // Devil Varos
|
||||
24152, // Devil Sinist
|
||||
24151, // Devil Guardian
|
||||
24144, // Death Rogue
|
||||
24145, // Death Shooter
|
||||
24146, // Death Warrior
|
||||
24147, // Death Sorcerer
|
||||
24148, // Death Pondus
|
||||
24155, // Demonic Warrior
|
||||
24154, // Demonic Wizard
|
||||
24158, // Demonic Weiss
|
||||
24157, // Demonic Keras
|
||||
24156, // Demonic Archer
|
||||
|
||||
// Ivory Tower Crater
|
||||
24421, // Stone Gargoyle
|
||||
24422, // Stone Golem
|
||||
24423, // Monster Eye
|
||||
24424, // Gargoyle Hunter
|
||||
24425, // Steel Golem
|
||||
24426, // Stone Cube
|
||||
|
||||
// Alligator Island
|
||||
24372, // Crokian Lad
|
||||
24373, // Dailaon Lad
|
||||
24375, // Farhite Lad
|
||||
24376, // Nos Lad
|
||||
24377, // Swamp Tribe
|
||||
24378, // Swamp Alligator
|
||||
24379, // Swamp Warrior
|
||||
|
||||
// Tanor Canyon
|
||||
20936, // Tanor Silenos
|
||||
20937, // Tanor Silenos Solider
|
||||
20938, // Tanor Silenos Scout
|
||||
20939, // Tanor Silenos Warrior
|
||||
20941, // Tanor Silenos Chieftain
|
||||
20942, // Nightmare Guide
|
||||
20943, // Nightmare Watchman
|
||||
20944, // Nightmare Lord
|
||||
};
|
||||
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 104;
|
||||
private static final int PROOF_OF_REPUTATION_NEEDED = 80000;
|
||||
|
||||
public Q10515_NewWayForPride()
|
||||
{
|
||||
super(10515);
|
||||
addStartNpc(CARDINAL_SERESIN);
|
||||
addTalkId(CARDINAL_SERESIN);
|
||||
addKillId(MONSTERS);
|
||||
addCondMinLevel(MIN_LEVEL, "30657-00.html");
|
||||
addCondStartedQuest(Q10879_ExaltedGuideToPower.class.getSimpleName(), "30657-00.html");
|
||||
registerQuestItems(PROOF_OF_REPUTATION);
|
||||
}
|
||||
|
||||
@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 "30657-02.htm":
|
||||
case "30657-03.htm":
|
||||
case "30657-04.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30657-05.html":
|
||||
{
|
||||
if (hasItem(player, LIONEL_HUNTERS_LIST_PART_5))
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "30657-08.html":
|
||||
{
|
||||
if (qs.isCond(2) && (getQuestItemsCount(player, PROOF_OF_REPUTATION) >= PROOF_OF_REPUTATION_NEEDED))
|
||||
{
|
||||
if ((player.getLevel() >= MIN_LEVEL))
|
||||
{
|
||||
takeItems(player, PROOF_OF_REPUTATION, PROOF_OF_REPUTATION_NEEDED);
|
||||
giveItems(player, SERESIN_CERTIFICATE, 1);
|
||||
addExpAndSp(player, 3480527972686L, 0);
|
||||
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() == CARDINAL_SERESIN) && (hasItem(player, LIONEL_HUNTERS_LIST_PART_5)))
|
||||
{
|
||||
htmltext = "30657-01.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30657-00.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
htmltext = "30657-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) && player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE) && CommonUtil.contains(MONSTERS, npc.getId()))
|
||||
{
|
||||
giveItems(player, PROOF_OF_REPUTATION, 1);
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
|
||||
if (getQuestItemsCount(player, PROOF_OF_REPUTATION) >= PROOF_OF_REPUTATION_NEEDED)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,6 +1,6 @@
|
||||
<html><body>Eva's Knight Lionel Hunter:<br>
|
||||
I'll be seeing whether you have what it takes to become stronger.<br>
|
||||
First, you must prove that you are capable of using <font color="LEVEL">16 Ability Points</font>. Learn a skill with Ability Points and prove your strength.<br>
|
||||
Then, pass the tests set by the following people and bring back certificates. The people who will test you are <font color="LEVEL">Verdure Elder Elikia</font> in <font color="LEVEL">Heine</font>, the <font color="LEVEL">Mysterious Butler</font>, <font color="LEVEL">Trader Galladucci</font> in the <font color="LEVEL">Town of Giran</font>, and <font color="LEVEL">Sir Eric Rodemai</font> in the <font color="LEVEL">Town of Aden</font>.<br>
|
||||
Then, pass the tests set by the following people and bring back certificates. The people who will test you are <font color="LEVEL">Verdure Elder Elikia</font> in <font color="LEVEL">Heine</font>, the <font color="LEVEL">Mysterious Butler</font>, <font color="LEVEL">Trader Galladucci</font> in the <font color="LEVEL">Town of Giran</font>, and <font color="LEVEL">Sir Eric Rodemai</font> in the <font color="LEVEL">Town of Aden</font>. <br><br><br>
|
||||
Go talk to them to find out what their tests are about. I'll be waiting for you to return with the certificates. If you forget who you must go to, refer to the guide I'll be giving you.
|
||||
</body></html>
|
@@ -1,6 +1,6 @@
|
||||
<html><body>Eva's Knight Lionel Hunter:<br>
|
||||
Still? I'll explain again, so remember it.<br>
|
||||
Use <font color="LEVEL">16 Ability Points</font> to learn a skill and prove your strength. After that, pass the tests of the following people and bring back their certificates.<br>
|
||||
The first people who will test you are <font color="LEVEL">Verdure Elder Elikia</font> in <font color="LEVEL">Heine</font>, the <font color="LEVEL">Mysterious Butler</font>, <font color="LEVEL">Trader Galladucci</font> in the <font color="LEVEL">Town of Giran</font>, and <font color="LEVEL">Sir Eric Rodemai</font> in the <font color="LEVEL">Town of Aden</font>.<br>
|
||||
The first people who will test you are <font color="LEVEL">Verdure Elder Elikia</font> in <font color="LEVEL">Heine</font>, the <font color="LEVEL">Mysterious Butler</font>, <font color="LEVEL">Trader Galladucci</font> in the <font color="LEVEL">Town of Giran</font>, and <font color="LEVEL">Sir Eric Rodemai</font> in the <font color="LEVEL">Town of Aden</font>. <br><br><br>
|
||||
Go talk to them to find out what their tests are about. I'll be waiting for you to return with the certificates.
|
||||
</body></html>
|
@@ -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);
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<html><body>Mysterious Butler:<br>
|
||||
After a long discussion with Lionel, I've decided that I'll find someone who can prove their strength by constantly participating in the <font color="LEVEL">Ceremony of Chaos</font> and the <font color="LEVEL">Olympiad</font>.<br>
|
||||
In order to keep track of your performance, you'll be getting a <font color="LEVEL">Proof of Battle</font> whenever you participate in the <font color="LEVEL">Ceremony of Chaos</font> or the <font color="LEVEL">Olympiad</font>.<br>
|
||||
If you can get <font color="LEVEL">80 Proof of Battle</font>, you'll prove that you are worthy. Not too hard, right?</body></html>
|
||||
If you can get <font color="LEVEL">10 Proof of Battle</font>, you'll prove that you are worthy. Not too hard, right?</body></html>
|
@@ -1,4 +1,4 @@
|
||||
<html><body>Mysterious Butler:<br>
|
||||
Oh, are you done? Just as I expected. How was it? Did you get the 80 Proof of Battle?<br>
|
||||
Oh, are you done? Just as I expected. How was it? Did you get the 10 Proof of Battle?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10813_ForGlory 33685-06.html">"Yes."</Button>
|
||||
</body></html>
|
@@ -1,3 +1,3 @@
|
||||
<html><body>Mysterious Butler:<br>
|
||||
When you participate in the <font color="LEVEL">Ceremony of Chaos</font> or the <font color="LEVEL">Olympiad</font>, you'll be able to to get <font color="LEVEL">Proof of Battle.</font> If you can get <font color="LEVEL">80</font> of these, I'll recognize your strengh.
|
||||
When you participate in the <font color="LEVEL">Ceremony of Chaos</font> or the <font color="LEVEL">Olympiad</font>, you'll be able to to get <font color="LEVEL">Proof of Battle.</font> If you can get <font color="LEVEL">10</font> of these, I'll recognize your strengh.
|
||||
</body></html>
|
@@ -38,14 +38,15 @@ import quests.Q10811_ExaltedOneWhoFacesTheLimit.Q10811_ExaltedOneWhoFacesTheLimi
|
||||
*/
|
||||
public class Q10813_ForGlory extends Quest
|
||||
{
|
||||
// Npc
|
||||
// NPC
|
||||
private static final int MYSTERIOUS_BUTLER = 33685;
|
||||
// Items
|
||||
private static final int PROOF_OF_BATTLE = 45872;
|
||||
private static final int PROOF_OF_BATTLE_1 = 45872;
|
||||
private static final int MYSTERIOUS_BUTLER_CERTIFICATE = 45624;
|
||||
private static final int BATTLE_QUIKCK_HEALING_POTION = 45945;
|
||||
private static final int BATTLE_QUICK_HEALING_POTION = 45945;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 99;
|
||||
private static final int PROOF_OF_BATTLE_1_NEEDED = 10;
|
||||
|
||||
public Q10813_ForGlory()
|
||||
{
|
||||
@@ -54,7 +55,7 @@ public class Q10813_ForGlory extends Quest
|
||||
addTalkId(MYSTERIOUS_BUTLER);
|
||||
addCondMinLevel(MIN_LEVEL, "33685-09.htm");
|
||||
addCondStartedQuest(Q10811_ExaltedOneWhoFacesTheLimit.class.getSimpleName(), "33685-07.htm");
|
||||
registerQuestItems(PROOF_OF_BATTLE);
|
||||
registerQuestItems(PROOF_OF_BATTLE_1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -85,10 +86,10 @@ public class Q10813_ForGlory extends Quest
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
if ((player.getLevel() >= MIN_LEVEL))
|
||||
if ((player.getLevel() >= MIN_LEVEL) && (getQuestItemsCount(player, PROOF_OF_BATTLE_1) >= PROOF_OF_BATTLE_1_NEEDED))
|
||||
{
|
||||
takeItems(player, PROOF_OF_BATTLE, -1);
|
||||
giveItems(player, BATTLE_QUIKCK_HEALING_POTION, 120);
|
||||
takeItems(player, PROOF_OF_BATTLE_1, PROOF_OF_BATTLE_1_NEEDED);
|
||||
giveItems(player, BATTLE_QUICK_HEALING_POTION, 120);
|
||||
giveItems(player, MYSTERIOUS_BUTLER_CERTIFICATE, 1);
|
||||
qs.exitQuest(false, true);
|
||||
|
||||
@@ -126,7 +127,7 @@ public class Q10813_ForGlory extends Quest
|
||||
{
|
||||
htmltext = "33685-08.html";
|
||||
}
|
||||
else if (qs.isCond(2))
|
||||
else if (qs.isCond(2) && (getQuestItemsCount(player, PROOF_OF_BATTLE_1) >= PROOF_OF_BATTLE_1_NEEDED))
|
||||
{
|
||||
htmltext = "33685-05.html";
|
||||
}
|
||||
@@ -148,9 +149,9 @@ public class Q10813_ForGlory extends Quest
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
giveItems(player, PROOF_OF_BATTLE, 1);
|
||||
giveItems(player, PROOF_OF_BATTLE_1, 1);
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
if (getQuestItemsCount(player, PROOF_OF_BATTLE) >= 80)
|
||||
if (getQuestItemsCount(player, PROOF_OF_BATTLE_1) >= PROOF_OF_BATTLE_1_NEEDED)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
|
@@ -148,7 +148,8 @@ public class Q10814_BefittingOfTheStatus extends Quest
|
||||
takeItems(player, itemId, 1);
|
||||
if (qs.getCond() < 6)
|
||||
{
|
||||
qs.setCond(qs.getCond() + 1);
|
||||
// qs.setCond(qs.getCond() + 1);
|
||||
qs.setCond(6);
|
||||
}
|
||||
|
||||
switch (qs.getCond())
|
||||
|
@@ -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>
|
@@ -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>
|
@@ -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>
|
@@ -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
|
||||
{
|
||||
|
@@ -1,6 +1,8 @@
|
||||
<html><body>Head Priest of the Earth Daichir:<br>
|
||||
Defeat the monsters that are threatening the safety of this world. I'll tell you which ones to defeat.<br>
|
||||
First, you must defeat <font color="LEVEL">Istina, Octavis, and Tauti</font> in an <font color="LEVEL">Epic Battle</font>. You must also defeat <font color="LEVEL">Beleth</font> and <font color="LEVEL">Earth Wyrm Trasken</font>, and bring a <font color="LEVEL">Dark Soul Stone</font>.<br>
|
||||
First, you must defeat <font color="LEVEL">Istina, Octavis, Tauti and Ekimus</font> in an <font color="LEVEL">Epic Battle</font>. You must also defeat <font color="LEVEL">Beleth</font> and <font color="LEVEL">Earth Wyrm Trasken</font>, and bring a <font color="LEVEL">Dark Soul Stone</font>.<br><br>
|
||||
However, defeating Earth Wyrm Trasken is difficult. That's why I have another method. Would like to hear it?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10818_ConfrontingAGiantMonster 30537-06a.html">"What is it?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10818_ConfrontingAGiantMonster 30537-06a.html">"Which is it?"</Button><br>
|
||||
Or you can skip all this and hunt some easier monsters.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10818_ConfrontingAGiantMonster 30537-06b.html">"I'll choose this."</Button>
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Head Priest of the Earth Daichir:<br>
|
||||
Go defeat the monsters in <font color="LEVEL">Giant's Cave</font> and <font color="LEVEL">Enchanted Valley</font> and bring back 10.000 <font color="LEVEL">Proof of Resistance</font>.<br>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Head Priest of the Earth Daichir:<br>
|
||||
You did not get me 10.000 <font color="LEVEL">Proof of Resistance</font>.<br>
|
||||
You must defeat the monsters in <font color="LEVEL">Giant's Cave</font> and <font color="LEVEL">Enchanted Valley</font> to obtain them.
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Guide of Infinity Jaedin:<br>
|
||||
<font color="LEVEL">TEMP FIX FOR EKIMUS RB KILL CHECK</font><br>
|
||||
This will set your kill status to true on the quest until Seed of Infinity instance will be implemented.<br>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Guide of Infinity Jaedin:<br>
|
||||
<font color="LEVEL">TEMP FIX FOR EKIMUS RB KILL CHECK</font><br>
|
||||
Your kill status is already true on the quest.<br>
|
||||
</body></html>
|
@@ -17,6 +17,7 @@
|
||||
package quests.Q10818_ConfrontingAGiantMonster;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.commons.util.CommonUtil;
|
||||
import org.l2jmobius.gameserver.enums.QuestSound;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
@@ -29,38 +30,126 @@ import quests.Q10817_ExaltedOneWhoOvercomesTheLimit.Q10817_ExaltedOneWhoOvercome
|
||||
/**
|
||||
* Confronting a Giant Monster (10818)
|
||||
* @URL https://l2wiki.com/Confronting_a_Giant_Monster
|
||||
* @author Mobius
|
||||
* @author Mobius, CostyKiller
|
||||
*/
|
||||
public class Q10818_ConfrontingAGiantMonster extends Quest
|
||||
{
|
||||
// NPC
|
||||
// NPCs
|
||||
private static final int DAICHIR = 30537;
|
||||
private static final int JAEDIN = 33915;
|
||||
// Monsters
|
||||
private static final int ISTINA = 29196; // Extreme
|
||||
private static final int OCTAVIS = 29212; // Extreme
|
||||
private static final int TAUTI = 29233; // correct id?
|
||||
private static final int TAUTI = 29237; // Extreme
|
||||
private static final int EKIMUS = 29251; // correct id?
|
||||
private static final int TRASKEN = 29197; // correct id?
|
||||
private static final int VERIDAN = 25796;
|
||||
private static final int KECHI = 25797;
|
||||
private static final int MICHAELA = 25799;
|
||||
private static final int[] MONSTERS =
|
||||
{
|
||||
// Giant's Cave Monsters
|
||||
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 -->
|
||||
|
||||
// Fairy Settlement Monsters
|
||||
18972, // Treekin Defender Scout
|
||||
18973, // Treekin Defender Experienced Scout
|
||||
18974, // Centaur Archer Scout
|
||||
18975, // Centaur Archer Experienced Scout
|
||||
18976, // Beorning Berserker Scout
|
||||
18977, // Beorning Berserker Experienced Scout
|
||||
22863, // Fairy Warrior
|
||||
22864, // Fairy Warrior Wicked
|
||||
22865, // Fairy Warrior Mature
|
||||
22866, // Fairy Warrior Imperfect
|
||||
22867, // Fairy Warrior Violent
|
||||
22868, // Fairy Warrior Brutal
|
||||
22869, // Fairy Warrior Fully Enraged
|
||||
22870, // Fairy Warrior Slightly Enraged
|
||||
22871, // Fairy Rogue
|
||||
22875, // Fairy Rogue Wicked
|
||||
22873, // Fairy Rogue Mature
|
||||
22874, // Fairy Rogue Imperfect
|
||||
22875, // Fairy Rogue Violent
|
||||
22876, // Fairy Rogue Brutal
|
||||
22877, // Fairy Rogue Fully Enraged
|
||||
22878, // Fairy Rogue Slightly Enraged
|
||||
22879, // Fairy Knight
|
||||
22880, // Fairy Knight Wicked
|
||||
22881, // Fairy Knight Mature
|
||||
22882, // Fairy Knight Imperfect
|
||||
22883, // Fairy Knight Violent
|
||||
22884, // Fairy Knight Brutal
|
||||
22885, // Fairy Knight Fully Enraged
|
||||
22886, // Fairy Knight Slightly Enraged
|
||||
22887, // Satyr Wizard
|
||||
22888, // Satyr Wizard Wicked
|
||||
22889, // Satyr Wizard Mature
|
||||
22890, // Satyr Wizard Imperfect
|
||||
22891, // Satyr Wizard Violent
|
||||
22892, // Satyr Wizard Brutal
|
||||
22893, // Satyr Wizard Fully Enraged
|
||||
22894, // Satyr Wizard Slightly Enraged
|
||||
22895, // Satyr Summoner
|
||||
22896, // Satyr Summoner Wicked
|
||||
22897, // Satyr Summoner Mature
|
||||
22898, // Satyr Summoner Imperfect
|
||||
22899, // Satyr Summoner Violent
|
||||
22900, // Satyr Summoner Brutal
|
||||
22901, // Satyr Summoner Fully Enraged
|
||||
22902, // Satyr Summoner Slightly Enraged
|
||||
22903, // Satyr Witch
|
||||
22904, // Satyr Witch Wicked
|
||||
22905, // Satyr Witch Mature
|
||||
22906, // Satyr Witch Imperfect
|
||||
22907, // Satyr Witch Violent
|
||||
22908, // Satyr Witch Brutal
|
||||
22909, // Satyr Witch Fully Enraged
|
||||
22910, // Satyr Witch Slightly Enraged
|
||||
23041 // Pan Direm
|
||||
};
|
||||
|
||||
// Items
|
||||
private static final int DARK_SOUL_STONE = 46055;
|
||||
private static final int OLYMPIAD_MANAGER_CERTIFICATE = 45629;
|
||||
private static final int ISHUMA_CERTIFICATE = 45630;
|
||||
private static final int SIR_KRISTOF_RODEMAI_CERTIFICATE = 45631;
|
||||
private static final int PROOF_OF_RESISTANCE = 80823;
|
||||
private static final int VERIDAN_SOUL_STONE = 46052;
|
||||
private static final int KECHI_SOUL_STONE = 46053;
|
||||
private static final int MICHAELA_SOUL_STONE = 46054;
|
||||
// Rewards
|
||||
private static final int EXP_AMOUNT = 542310795;
|
||||
private static final int DAICHIR_SERTIFICATE = 45628;
|
||||
private static final long EXP_AMOUNT = 193815839115L;
|
||||
private static final int DAICHIR_CERTIFICATE = 45628;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 99;
|
||||
private static final int PROOF_OF_RESISTANCE_NEEDED = 10000;
|
||||
|
||||
public Q10818_ConfrontingAGiantMonster()
|
||||
{
|
||||
super(10818);
|
||||
addStartNpc(DAICHIR);
|
||||
addTalkId(DAICHIR);
|
||||
addTalkId(DAICHIR, JAEDIN);
|
||||
addKillId(ISTINA, OCTAVIS, TAUTI, EKIMUS, TRASKEN);
|
||||
addKillId(MONSTERS);
|
||||
addCondMinLevel(MIN_LEVEL, "30537-02.html");
|
||||
addCondStartedQuest(Q10817_ExaltedOneWhoOvercomesTheLimit.class.getSimpleName(), "30537-03.html");
|
||||
registerQuestItems(DARK_SOUL_STONE);
|
||||
registerQuestItems(DARK_SOUL_STONE, VERIDAN_SOUL_STONE, KECHI_SOUL_STONE, MICHAELA_SOUL_STONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -77,17 +166,27 @@ public class Q10818_ConfrontingAGiantMonster extends Quest
|
||||
{
|
||||
case "30537-04.htm":
|
||||
case "30537-05.htm":
|
||||
case "30537-06.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30537-06a.html":
|
||||
case "30537-06.htm":
|
||||
{
|
||||
if (qs.isCreated())
|
||||
{
|
||||
qs.startQuest();
|
||||
}
|
||||
qs.startQuest();
|
||||
qs.set(Integer.toString(ISTINA), "false");
|
||||
qs.set(Integer.toString(OCTAVIS), "false");
|
||||
qs.set(Integer.toString(TAUTI), "false");
|
||||
qs.set(Integer.toString(EKIMUS), "false");
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30537-06b.html":
|
||||
{
|
||||
qs.setCond(3);
|
||||
qs.unset(Integer.toString(ISTINA));
|
||||
qs.unset(Integer.toString(OCTAVIS));
|
||||
qs.unset(Integer.toString(TAUTI));
|
||||
qs.unset(Integer.toString(EKIMUS));
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
@@ -95,7 +194,7 @@ public class Q10818_ConfrontingAGiantMonster extends Quest
|
||||
{
|
||||
if ((player.getLevel() >= MIN_LEVEL))
|
||||
{
|
||||
if (hasQuestItems(player, DARK_SOUL_STONE) && qs.get(Integer.toString(ISTINA)).equals("true") && qs.get(Integer.toString(OCTAVIS)).equals("true") && qs.get(Integer.toString(TAUTI)).equals("true") && qs.get(Integer.toString(EKIMUS)).equals("true"))
|
||||
if ((qs.isCond(4) && (getQuestItemsCount(player, PROOF_OF_RESISTANCE) >= PROOF_OF_RESISTANCE_NEEDED)) || (qs.isCond(2) && hasQuestItems(player, DARK_SOUL_STONE) && (qs.get(Integer.toString(ISTINA)).equals("true") && qs.get(Integer.toString(OCTAVIS)).equals("true") && qs.get(Integer.toString(TAUTI)).equals("true") && qs.get(Integer.toString(EKIMUS)).equals("true"))))
|
||||
{
|
||||
if (hasQuestItems(player, OLYMPIAD_MANAGER_CERTIFICATE, ISHUMA_CERTIFICATE, SIR_KRISTOF_RODEMAI_CERTIFICATE))
|
||||
{
|
||||
@@ -105,13 +204,16 @@ public class Q10818_ConfrontingAGiantMonster extends Quest
|
||||
{
|
||||
htmltext = event;
|
||||
}
|
||||
takeItems(player, DARK_SOUL_STONE, -1);
|
||||
giveItems(player, DAICHIR_SERTIFICATE, 1);
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
takeItems(player, DARK_SOUL_STONE, 1);
|
||||
qs.unset(Integer.toString(ISTINA));
|
||||
qs.unset(Integer.toString(OCTAVIS));
|
||||
qs.unset(Integer.toString(TAUTI));
|
||||
qs.unset(Integer.toString(EKIMUS));
|
||||
}
|
||||
giveItems(player, DAICHIR_CERTIFICATE, 1);
|
||||
addExpAndSp(player, EXP_AMOUNT, 0);
|
||||
qs.unset(Integer.toString(ISTINA));
|
||||
qs.unset(Integer.toString(OCTAVIS));
|
||||
qs.unset(Integer.toString(TAUTI));
|
||||
qs.unset(Integer.toString(EKIMUS));
|
||||
qs.exitQuest(false, true);
|
||||
}
|
||||
}
|
||||
@@ -139,15 +241,51 @@ public class Q10818_ConfrontingAGiantMonster extends Quest
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (hasQuestItems(player, DARK_SOUL_STONE) && qs.get(Integer.toString(ISTINA)).equals("true") && qs.get(Integer.toString(OCTAVIS)).equals("true") && qs.get(Integer.toString(TAUTI)).equals("true") && qs.get(Integer.toString(EKIMUS)).equals("true"))
|
||||
switch (npc.getId())
|
||||
{
|
||||
htmltext = "30537-08.html";
|
||||
case DAICHIR:
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
if (hasQuestItems(player, DARK_SOUL_STONE) && (qs.get(Integer.toString(ISTINA)).equals("true") && qs.get(Integer.toString(OCTAVIS)).equals("true") && qs.get(Integer.toString(TAUTI)).equals("true") && qs.get(Integer.toString(EKIMUS)).equals("true")))
|
||||
{
|
||||
htmltext = "30537-08.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30537-07.html";
|
||||
}
|
||||
}
|
||||
else if (qs.isCond(4))
|
||||
{
|
||||
if (getQuestItemsCount(player, PROOF_OF_RESISTANCE) >= PROOF_OF_RESISTANCE_NEEDED)
|
||||
{
|
||||
htmltext = "30537-08.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30537-07a.html";
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
// XXX: Set Ekimus quest check until instance is done
|
||||
case JAEDIN:
|
||||
{
|
||||
if (qs.get(Integer.toString(EKIMUS)).equals("false"))
|
||||
{
|
||||
htmltext = "33915-01.html";
|
||||
qs.set(Integer.toString(EKIMUS), "true");
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "33915-02.html";
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30537-07.html";
|
||||
}
|
||||
break;
|
||||
return htmltext;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
@@ -176,9 +314,38 @@ public class Q10818_ConfrontingAGiantMonster extends Quest
|
||||
giveItems(player, DARK_SOUL_STONE, 1);
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
else
|
||||
else if (npc.getId() == VERIDAN)
|
||||
{
|
||||
giveItems(player, VERIDAN_SOUL_STONE, 1);
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
else if (npc.getId() == KECHI)
|
||||
{
|
||||
giveItems(player, KECHI_SOUL_STONE, 1);
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
else if (npc.getId() == MICHAELA)
|
||||
{
|
||||
giveItems(player, MICHAELA_SOUL_STONE, 1);
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
else if (CommonUtil.contains(MONSTERS, npc.getId()))
|
||||
{
|
||||
giveItems(player, PROOF_OF_RESISTANCE, 1);
|
||||
if (getQuestItemsCount(player, PROOF_OF_RESISTANCE) >= PROOF_OF_RESISTANCE_NEEDED)
|
||||
{
|
||||
qs.setCond(4, true);
|
||||
}
|
||||
}
|
||||
else if ((npc.getId() == ISTINA) || (npc.getId() == OCTAVIS) || (npc.getId() == TAUTI) || (npc.getId() == EKIMUS))
|
||||
{
|
||||
qs.set(Integer.toString(npc.getId()), "true");
|
||||
notifyKill(npc, player, isSummon);
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
|
||||
if ((qs.get(Integer.toString(ISTINA)).equals("true") && qs.get(Integer.toString(OCTAVIS)).equals("true") && qs.get(Integer.toString(TAUTI)).equals("true") && qs.get(Integer.toString(EKIMUS)).equals("true")))
|
||||
{
|
||||
qs.setCond(2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<html><body>Olympiad Manager:<br>
|
||||
You'll get a <font color="LEVEL">Proof of Battle</font> when you participate in the <font color="LEVEL">Olympiad</font> or the <font color="LEVEL">Ceremony of Chaos</font>. Please bring <font color="LEVEL">100</font> of these.<br>
|
||||
Bringing 100 Proof of Battle is my test.<br>
|
||||
You'll get a <font color="LEVEL">Proof of Battle</font> when you participate in the <font color="LEVEL">Olympiad</font> or the <font color="LEVEL">Ceremony of Chaos</font>. Please bring <font color="LEVEL">20</font> of these.<br>
|
||||
Bringing 20 Proof of Battle is my test.<br>
|
||||
I'm sure as someone who Lionel has personally sent, you'll do great.
|
||||
</body></html>
|
@@ -1,4 +1,4 @@
|
||||
<html><body>Olympiad Manager:<br>
|
||||
I don't think you are done yet.<br>
|
||||
Participate in the <font color="LEVEL">Olympiad</font> and the <font color="LEVEL">Ceremony of Chaos</font>, and collect <font color="LEVEL">100 Proof of Battle</font>.
|
||||
Participate in the <font color="LEVEL">Olympiad</font> and the <font color="LEVEL">Ceremony of Chaos</font>, and collect <font color="LEVEL">20 Proof of Battle</font>.
|
||||
</body></html>
|
4
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10819_ForHonor/31688-07a.html
vendored
Normal file
4
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10819_ForHonor/31688-07a.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Olympiad Manager:<br>
|
||||
Did you get <font color="LEVEL">20 Proof of Battle</font>?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10819_ForHonor 31688-08.html">"Yes, here."</Button>
|
||||
</body></html>
|
@@ -41,15 +41,16 @@ public class Q10819_ForHonor extends Quest
|
||||
// NPC
|
||||
private static final int OLYMPIAD_MANAGER = 31688;
|
||||
// Items
|
||||
private static final int PROOF_OF_BATTLE = 45872;
|
||||
private static final int PROOF_OF_BATTLE_2 = 45873;
|
||||
private static final int ISHUMA_CERTIFICATE = 45630;
|
||||
private static final int SIR_KRISTOF_RODEMAI_CERTIFICATE = 45631;
|
||||
private static final int DAICHIR_SERTIFICATE = 45628;
|
||||
private static final int DAICHIR_CERTIFICATE = 45628;
|
||||
// Rewards
|
||||
private static final int OLYMPIAD_MANAGER_CERTIFICATE = 45629;
|
||||
private static final int BATTLE_QUICK_HEALING_POTION = 45945;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 99;
|
||||
private static final int PROOF_OF_BATTLE_2_NEEDED = 20;
|
||||
|
||||
public Q10819_ForHonor()
|
||||
{
|
||||
@@ -58,7 +59,7 @@ public class Q10819_ForHonor extends Quest
|
||||
addTalkId(OLYMPIAD_MANAGER);
|
||||
addCondMinLevel(MIN_LEVEL, "31688-02.html");
|
||||
addCondStartedQuest(Q10817_ExaltedOneWhoOvercomesTheLimit.class.getSimpleName(), "31688-03.html");
|
||||
registerQuestItems(PROOF_OF_BATTLE);
|
||||
registerQuestItems(PROOF_OF_BATTLE_2);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -87,11 +88,11 @@ public class Q10819_ForHonor extends Quest
|
||||
}
|
||||
case "31688-09.html":
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
if (qs.isCond(2) && (getQuestItemsCount(player, PROOF_OF_BATTLE_2) >= PROOF_OF_BATTLE_2_NEEDED))
|
||||
{
|
||||
if ((player.getLevel() >= MIN_LEVEL))
|
||||
{
|
||||
if (hasQuestItems(player, DAICHIR_SERTIFICATE, ISHUMA_CERTIFICATE, SIR_KRISTOF_RODEMAI_CERTIFICATE))
|
||||
if (hasQuestItems(player, DAICHIR_CERTIFICATE, ISHUMA_CERTIFICATE, SIR_KRISTOF_RODEMAI_CERTIFICATE))
|
||||
{
|
||||
htmltext = "31688-10.html";
|
||||
}
|
||||
@@ -99,7 +100,7 @@ public class Q10819_ForHonor extends Quest
|
||||
{
|
||||
htmltext = event;
|
||||
}
|
||||
takeItems(player, PROOF_OF_BATTLE, -1);
|
||||
takeItems(player, PROOF_OF_BATTLE_2, PROOF_OF_BATTLE_2_NEEDED);
|
||||
giveItems(player, BATTLE_QUICK_HEALING_POTION, 180);
|
||||
giveItems(player, OLYMPIAD_MANAGER_CERTIFICATE, 1);
|
||||
qs.exitQuest(false, true);
|
||||
@@ -133,7 +134,12 @@ public class Q10819_ForHonor extends Quest
|
||||
{
|
||||
htmltext = "31688-07.html";
|
||||
}
|
||||
else if (qs.isCond(2))
|
||||
else if (qs.isCond(1) && (getQuestItemsCount(player, PROOF_OF_BATTLE_2) >= PROOF_OF_BATTLE_2_NEEDED))
|
||||
{
|
||||
qs.setCond(2);
|
||||
htmltext = "31688-07a.html";
|
||||
}
|
||||
else if (qs.isCond(2) && (getQuestItemsCount(player, PROOF_OF_BATTLE_2) >= PROOF_OF_BATTLE_2_NEEDED))
|
||||
{
|
||||
htmltext = "31688-08.html";
|
||||
}
|
||||
@@ -155,9 +161,9 @@ public class Q10819_ForHonor extends Quest
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
giveItems(player, PROOF_OF_BATTLE, 1);
|
||||
giveItems(player, PROOF_OF_BATTLE_2, 1);
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
if (getQuestItemsCount(player, PROOF_OF_BATTLE) >= 100)
|
||||
if (getQuestItemsCount(player, PROOF_OF_BATTLE_2) >= PROOF_OF_BATTLE_2_NEEDED)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
|
@@ -1,5 +1,6 @@
|
||||
<html><body>Maestro Ishuma:<br>
|
||||
Well, if you got that, take the materials I give you and try making one.<br>
|
||||
If you need more <font color="LEVEL">Recipe: Citrine Pendant</font> or <font color="LEVEL">Citrine Pendant Fragments</font> let me know. You'll have to get the other materials, though.<br>
|
||||
Here, take them.
|
||||
Here, take them.<br>
|
||||
You can craft a Citrine Pendant, or you can pay the Black Marketeer of Mammon to craft it.
|
||||
</body></html>
|
@@ -1,4 +1,6 @@
|
||||
<html><body>Sir Kristof Rodemai:<br>
|
||||
Help those who are weaker than you. Help them grow stronger, and you'll be able to receive a <font color="LEVEL">Mentee's Mark</font>.<br>
|
||||
That will be the proof that you've taken the time to help those who are weaker than you.
|
||||
That will be the proof that you've taken the time to help those who are weaker than you.<br><br>
|
||||
Or you can try another way, lead them into battle.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10821_HelpingOthers 30756-06a.html">"I'll do that."</Button>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Sir Kristof Rodemai:<br>
|
||||
Help those who are weaker than you. Lead them into battle and help them grow stronger.<br>
|
||||
That will be the proof that you've taken the time to help those who are weaker than you.
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Sir Kristof Rodemai:<br>
|
||||
You haven't passed my test yet.<br>
|
||||
Become a leader for those who are weaker and help them grow.</font>.
|
||||
</body></html>
|
@@ -0,0 +1,5 @@
|
||||
<html><body>Sir Kristof Rodemai:<br>
|
||||
You've passed the test I gave you.<br>
|
||||
How was to lead those weaker than you? You learned that being a great warrior is not all about just being strong, right?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10821_HelpingOthers 30756-09.html">"Yes."</Button>
|
||||
</body></html>
|
@@ -18,6 +18,11 @@ package quests.Q10821_HelpingOthers;
|
||||
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.events.EventType;
|
||||
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
||||
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
||||
import org.l2jmobius.gameserver.model.events.annotations.RegisterType;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.npc.OnAttackableKill;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import org.l2jmobius.gameserver.model.quest.State;
|
||||
@@ -32,10 +37,10 @@ import quests.Q10817_ExaltedOneWhoOvercomesTheLimit.Q10817_ExaltedOneWhoOvercome
|
||||
public class Q10821_HelpingOthers extends Quest
|
||||
{
|
||||
// NPC
|
||||
private static final int SIR_ERIC_RODEMAI = 30756;
|
||||
private static final int SIR_KRISTOF_RODEMAI = 30756;
|
||||
// Items
|
||||
private static final int MENTEE_MARK = 33804;
|
||||
private static final int DAICHIR_SERTIFICATE = 45628;
|
||||
private static final int DAICHIR_CERTIFICATE = 45628;
|
||||
private static final int OLYMPIAD_MANAGER_CERTIFICATE = 45629;
|
||||
private static final int ISHUMA_CERTIFICATE = 45630;
|
||||
// Rewards
|
||||
@@ -43,12 +48,13 @@ public class Q10821_HelpingOthers extends Quest
|
||||
private static final int SPELLBOOK_FAVOR_OF_THE_EXALTED = 45928;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 99;
|
||||
private static final int MENTEE_MARKS_NEEDED = 45000;
|
||||
|
||||
public Q10821_HelpingOthers()
|
||||
{
|
||||
super(10821);
|
||||
addStartNpc(SIR_ERIC_RODEMAI);
|
||||
addTalkId(SIR_ERIC_RODEMAI);
|
||||
addStartNpc(SIR_KRISTOF_RODEMAI);
|
||||
addTalkId(SIR_KRISTOF_RODEMAI);
|
||||
addCondMinLevel(MIN_LEVEL, "30756-02.html");
|
||||
addCondStartedQuest(Q10817_ExaltedOneWhoOvercomesTheLimit.class.getSimpleName(), "30756-03.html");
|
||||
// registerQuestItems(MENTEE_MARK); Should they be removed when abandoning quest?
|
||||
@@ -78,13 +84,19 @@ public class Q10821_HelpingOthers extends Quest
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30756-06a.html":
|
||||
{
|
||||
qs.setCond(2);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30756-09.html":
|
||||
{
|
||||
if (qs.isCond(1) && (getQuestItemsCount(player, MENTEE_MARK) >= 45000))
|
||||
if ((qs.isCond(1) && (getQuestItemsCount(player, MENTEE_MARK) >= MENTEE_MARKS_NEEDED)) || qs.isCond(3))
|
||||
{
|
||||
if ((player.getLevel() >= MIN_LEVEL))
|
||||
{
|
||||
if (hasQuestItems(player, DAICHIR_SERTIFICATE, ISHUMA_CERTIFICATE, OLYMPIAD_MANAGER_CERTIFICATE))
|
||||
if (hasQuestItems(player, DAICHIR_CERTIFICATE, ISHUMA_CERTIFICATE, OLYMPIAD_MANAGER_CERTIFICATE))
|
||||
{
|
||||
htmltext = "30756-10.html";
|
||||
}
|
||||
@@ -92,7 +104,10 @@ public class Q10821_HelpingOthers extends Quest
|
||||
{
|
||||
htmltext = event;
|
||||
}
|
||||
takeItems(player, MENTEE_MARK, 45000);
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
takeItems(player, MENTEE_MARK, MENTEE_MARKS_NEEDED);
|
||||
}
|
||||
giveItems(player, SIR_KRISTOF_RODEMAI_CERTIFICATE, 1);
|
||||
giveItems(player, SPELLBOOK_FAVOR_OF_THE_EXALTED, 1);
|
||||
qs.exitQuest(false, true);
|
||||
@@ -122,15 +137,33 @@ public class Q10821_HelpingOthers extends Quest
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (getQuestItemsCount(player, MENTEE_MARK) >= 45000)
|
||||
switch (qs.getCond())
|
||||
{
|
||||
htmltext = "30756-08.html";
|
||||
case 1:
|
||||
{
|
||||
if (getQuestItemsCount(player, MENTEE_MARK) >= MENTEE_MARKS_NEEDED)
|
||||
{
|
||||
htmltext = "30756-08.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30756-07.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
if (qs.isMemoState(2))
|
||||
{
|
||||
htmltext = "30756-08a.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30756-07a.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30756-07.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
@@ -140,4 +173,48 @@ public class Q10821_HelpingOthers extends Quest
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@RegisterEvent(EventType.ON_ATTACKABLE_KILL)
|
||||
@RegisterType(ListenerRegisterType.GLOBAL_MONSTERS)
|
||||
public void onAttackableKill(OnAttackableKill event)
|
||||
{
|
||||
final PlayerInstance player = event.getAttacker();
|
||||
if (player == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (player.getParty() == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (player.getParty().getLeader() != player)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (!event.getTarget().isRaid())
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (event.getTarget().isRaidMinion())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
final int memo = qs.getMemoState() + 1;
|
||||
qs.setMemoState(memo);
|
||||
// sendNpcLogList(player);
|
||||
|
||||
if (memo >= 2)
|
||||
{
|
||||
qs.setCond(3, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -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>
|
@@ -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>
|
@@ -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>
|
@@ -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
|
||||
{
|
||||
|
@@ -45,44 +45,67 @@ public class Q10824_ConfrontingTheGreatestDanger extends Quest
|
||||
private static final int PROOF_OF_PREPARATION = 80824;
|
||||
private static final ItemHolder LIONEL_HUNTERS_LIST_PART_3 = new ItemHolder(45637, 1);
|
||||
// Boss
|
||||
private static final int[] BOSS =
|
||||
private static final int[] DIM_RAID_RBS =
|
||||
{
|
||||
25745, // test
|
||||
25747 // test
|
||||
29283, // Vengeful Lerazia (Gludin - South gate)
|
||||
29284, // Vengeful Edaire (Gludin - West gate)
|
||||
29285, // Vengeful Agonia (Gludin - North gate)
|
||||
29278, // Vengeful Agarez (Gludio - North Gate)
|
||||
29279, // Vengeful Oretross (Gludio - West Gate)
|
||||
29280, // Vengeful Eligos (Gludio - South Gate)
|
||||
29268, // Crook The Mad (Giran - North Gate)
|
||||
29269, // Houpon The Warden (Giran - West Gate)
|
||||
29270, // Guillotine Of Death (Giran - South Gate)
|
||||
29263, // Harp (Aden - West Gate)
|
||||
29260, // Maliss (Aden - East Gate)
|
||||
29261, // Isadora (Aden - South Gate)
|
||||
29298, // Varbasion (Oren - North Gate)
|
||||
29299, // Varmonia (Oren - East Gate)
|
||||
29300, // Varkaron (Oren - South Gate)
|
||||
29273, // Lindvior Herald Numa (Goddard - East Gate)
|
||||
29274, // Valakas Herald Potigia (Goddard - North Gate)
|
||||
29275, // Antharas Herald Komabor (Goddard - West Gate)
|
||||
29288, // Nerva Orc Nergatt (Schuttgart - West Gate)
|
||||
29289, // Amden Orc Turation (Schuttgart - South Gate)
|
||||
29290, // Nerva Chief Turakan (Schuttgart - East Gate)
|
||||
29293, // Theor (Gainak - South West Gate)
|
||||
29294, // Tebird (Gainak - West Gate)
|
||||
29295 // Tegaffe (Gainak - North Gate)
|
||||
};
|
||||
// Mobs
|
||||
private static final int[] MONSTERS =
|
||||
{
|
||||
// Atelia Refinery
|
||||
24150, // Devil Warrior
|
||||
24149, // Devil Nightmare
|
||||
24153, // Devil Varos
|
||||
24152, // Devil Sinist
|
||||
24151, // Devil Guardian
|
||||
24144, // Death Rogue
|
||||
24145, // Death Shooter
|
||||
24146, // Death Warrior
|
||||
24147, // Death Sorcerer
|
||||
24148, // Death Pondus
|
||||
24155, // Demonic Warrior
|
||||
24149, // Devil Nightmare
|
||||
24150, // Devil Warrior
|
||||
24151, // Devil Guardian
|
||||
24152, // Devil Sinist
|
||||
24153, // Devil Varos
|
||||
24154, // Demonic Wizard
|
||||
24158, // Demonic Weiss
|
||||
24157, // Demonic Keras
|
||||
24155, // Demonic Warrior
|
||||
24156, // Demonic Archer
|
||||
// Raider's Crossroads Mobs
|
||||
23572, // Nymph Astra
|
||||
23573, // Nymph Astra
|
||||
23568, // Nymph Lily
|
||||
23569, // Nymph Lily
|
||||
24157, // Demonic Keras
|
||||
24158, // Demonic Weiss
|
||||
|
||||
// Enchanted Valley
|
||||
23566, // Nymph rose
|
||||
23567, // Nymph rose
|
||||
23568, // Nymph Lily
|
||||
23569, // Nymph Lily
|
||||
23570, // Nymph Tulip
|
||||
23571, // Nymph Tulip
|
||||
23581, // Afros
|
||||
23578 // Nymph Sentinel
|
||||
23572, // Nymph Astra
|
||||
23573, // Nymph Astra
|
||||
23578, // Nymph Sentinel
|
||||
23581 // Afros
|
||||
};
|
||||
// Rewards
|
||||
private static final int MERLOT_SERTIFICATE = 46056;
|
||||
private static final int MERLOT_CERTIFICATE = 46056;
|
||||
private static final int SPELLBOOK_BLESSING_OF_THE_EXALTED = 45926;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 100;
|
||||
@@ -146,7 +169,7 @@ public class Q10824_ConfrontingTheGreatestDanger extends Quest
|
||||
htmltext = event;
|
||||
}
|
||||
takeItems(player, MARK_OF_ADVANCE, -3);
|
||||
giveItems(player, MERLOT_SERTIFICATE, 1);
|
||||
giveItems(player, MERLOT_CERTIFICATE, 1);
|
||||
giveItems(player, SPELLBOOK_BLESSING_OF_THE_EXALTED, 1);
|
||||
qs.exitQuest(false, true);
|
||||
}
|
||||
@@ -172,7 +195,7 @@ public class Q10824_ConfrontingTheGreatestDanger extends Quest
|
||||
htmltext = event;
|
||||
}
|
||||
takeItems(player, PROOF_OF_PREPARATION, -20000);
|
||||
giveItems(player, MERLOT_SERTIFICATE, 1);
|
||||
giveItems(player, MERLOT_CERTIFICATE, 1);
|
||||
giveItems(player, SPELLBOOK_BLESSING_OF_THE_EXALTED, 1);
|
||||
qs.exitQuest(false, true);
|
||||
}
|
||||
@@ -255,7 +278,7 @@ public class Q10824_ConfrontingTheGreatestDanger extends Quest
|
||||
qs.setCond(4, true);
|
||||
}
|
||||
}
|
||||
else if ((qs != null) && qs.isCond(1) && player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE) && CommonUtil.contains(BOSS, npc.getId()))
|
||||
else if ((qs != null) && qs.isCond(1) && player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE) && CommonUtil.contains(DIM_RAID_RBS, npc.getId()))
|
||||
{
|
||||
giveItems(player, MARK_OF_ADVANCE, 1);
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
|
@@ -1,5 +1,7 @@
|
||||
<html><body>Captain Kurtiz:<br>
|
||||
You are quick to understand.<br>
|
||||
You have to participate in a <font color="LEVEL">siege</font> or a <font color="LEVEL">dimensional siege</font>. When you reach the <font color="LEVEL">Flag of Protection</font> inside, you'll be able to obtain a <font color="LEVEL">Mark of Valor</font>. Your mission is to obtain <font color="LEVEL">10</font> of these.<br>
|
||||
You'll be able to get more marks when you participate in a dimensional siege or in the Aden or Rune Castle Sieges.
|
||||
You'll be able to get more marks when you participate in a dimensional siege or in the Aden or Rune Castle Sieges.<br><br>
|
||||
Or you can try another way, fight in Grand Olympiad or Ceremony of Chaos.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10825_ForVictory 30870-06a.html">"I'll do that."</Button>
|
||||
</body></html>
|
3
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10825_ForVictory/30870-06a.html
vendored
Normal file
3
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10825_ForVictory/30870-06a.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Captain Kurtiz:<br>
|
||||
You have to participate in <font color="LEVEL">Grand Olympiad</font> or <font color="LEVEL">Ceremony of Chaos</font>.Your mission is to obtain <font color="LEVEL">30 Proof of Settlement</font>.<br>
|
||||
</body></html>
|
4
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10825_ForVictory/30870-07a.html
vendored
Normal file
4
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10825_ForVictory/30870-07a.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Captain Kurtiz:<br>
|
||||
You didn't forget what you have to do, right? Well, I can tell you again.<br>
|
||||
You have to participate in <font color="LEVEL">Grand Olympiad</font> or <font color="LEVEL">Ceremony of Chaos</font>.Your mission is to obtain <font color="LEVEL">30 Proof of Settlement</font>.<br>
|
||||
</body></html>
|
4
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10825_ForVictory/30870-08a.html
vendored
Normal file
4
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10825_ForVictory/30870-08a.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Captain Kurtiz:<br>
|
||||
Did you get <font color="LEVEL">30 Proof of Settlement</font>?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10825_ForVictory 30870-09.html">"Yes."</Button>
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Flag of Protection:<br>
|
||||
(You received a Mark of Valor.)<br><br>
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Flag of Protection:<br>
|
||||
(You can only get reward if you are registered as attacker or defender.)<br><br>
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Flag of Protection:<br>
|
||||
(You can only get reward from one castle per day.)<br><br>
|
||||
</body></html>
|
@@ -23,7 +23,8 @@ import org.l2jmobius.gameserver.model.events.EventType;
|
||||
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
||||
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
||||
import org.l2jmobius.gameserver.model.events.annotations.RegisterType;
|
||||
import org.l2jmobius.gameserver.model.events.impl.sieges.OnCastleSiegeFinish;
|
||||
import org.l2jmobius.gameserver.model.events.impl.ceremonyofchaos.OnCeremonyOfChaosMatchResult;
|
||||
import org.l2jmobius.gameserver.model.events.impl.olympiad.OnOlympiadMatchResult;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
import org.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import org.l2jmobius.gameserver.model.quest.State;
|
||||
@@ -38,10 +39,21 @@ import quests.Q10823_ExaltedOneWhoShattersTheLimit.Q10823_ExaltedOneWhoShattersT
|
||||
public class Q10825_ForVictory extends Quest
|
||||
{
|
||||
// NPC
|
||||
private static final int KURTIZ = 34019;
|
||||
private static final int KURTIZ = 30870;
|
||||
// Flag of Protection NPCs
|
||||
private static final int FLAG_GLUDIO = 36741; // 1 Gludio Castle
|
||||
private static final int FLAG_DION = 36742; // 2 Dion Castle
|
||||
private static final int FLAG_GIRAN = 36743; // 3 Giran Castle
|
||||
private static final int FLAG_OREN = 36744; // 4 Oren Castle
|
||||
private static final int FLAG_ADEN = 36745; // 5 Aden Castle
|
||||
private static final int FLAG_INNADRIL = 36746; // 6 Innadril Castle
|
||||
private static final int FLAG_GODDARD = 36747; // 7 Goddard Castle
|
||||
private static final int FLAG_RUNE = 36748; // 8 Rune Castle
|
||||
private static final int FLAG_SCHUTTGART = 36749; // 9 Schuttgart Castle
|
||||
// Items
|
||||
private static final int PROOF_OF_SETTLEMENT = 80825;
|
||||
private static final int MARK_OF_VALOR = 46059;
|
||||
private static final int MERLOT_SERTIFICATE = 46056;
|
||||
private static final int MERLOT_CERTIFICATE = 46056;
|
||||
private static final int MAMMON_CERTIFICATE = 45635;
|
||||
private static final int GUSTAV_CERTIFICATE = 45636;
|
||||
// Rewards
|
||||
@@ -49,15 +61,17 @@ public class Q10825_ForVictory extends Quest
|
||||
private static final int SPELLBOOK_SUMMON_BATTLE_POTION = 45927;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 100;
|
||||
private static final int MARK_OF_VALOR_NEEDED = 10;
|
||||
private static final int PROOF_OF_SETTLEMENT_NEEDED = 30;
|
||||
|
||||
public Q10825_ForVictory()
|
||||
{
|
||||
super(10825);
|
||||
addStartNpc(KURTIZ);
|
||||
addTalkId(KURTIZ);
|
||||
addTalkId(KURTIZ, FLAG_GLUDIO, FLAG_DION, FLAG_GIRAN, FLAG_OREN, FLAG_ADEN, FLAG_INNADRIL, FLAG_GODDARD, FLAG_RUNE, FLAG_SCHUTTGART);
|
||||
addCondMinLevel(MIN_LEVEL, "30870-02.html");
|
||||
addCondStartedQuest(Q10823_ExaltedOneWhoShattersTheLimit.class.getSimpleName(), "30870-03.html");
|
||||
registerQuestItems(MARK_OF_VALOR);
|
||||
registerQuestItems(PROOF_OF_SETTLEMENT, MARK_OF_VALOR);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -81,16 +95,23 @@ public class Q10825_ForVictory extends Quest
|
||||
case "30870-06.html":
|
||||
{
|
||||
qs.startQuest();
|
||||
qs.set("TimeCheck", 0);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30870-06a.html":
|
||||
{
|
||||
qs.setCond(3);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30870-09.html":
|
||||
{
|
||||
if (qs.isCond(1) && (getQuestItemsCount(player, MARK_OF_VALOR) >= 10))
|
||||
if ((qs.isCond(2) && (getQuestItemsCount(player, MARK_OF_VALOR) >= MARK_OF_VALOR_NEEDED)) || (qs.isCond(4) && (getQuestItemsCount(player, PROOF_OF_SETTLEMENT) >= PROOF_OF_SETTLEMENT_NEEDED)))
|
||||
{
|
||||
if ((player.getLevel() >= MIN_LEVEL))
|
||||
{
|
||||
if (hasQuestItems(player, MERLOT_SERTIFICATE, MAMMON_CERTIFICATE, GUSTAV_CERTIFICATE))
|
||||
if (hasQuestItems(player, MERLOT_CERTIFICATE, MAMMON_CERTIFICATE, GUSTAV_CERTIFICATE))
|
||||
{
|
||||
htmltext = "30870-10.html";
|
||||
}
|
||||
@@ -98,6 +119,14 @@ public class Q10825_ForVictory extends Quest
|
||||
{
|
||||
htmltext = event;
|
||||
}
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
takeItems(player, MARK_OF_VALOR, MARK_OF_VALOR_NEEDED);
|
||||
}
|
||||
if (qs.isCond(4))
|
||||
{
|
||||
takeItems(player, PROOF_OF_SETTLEMENT, PROOF_OF_SETTLEMENT_NEEDED);
|
||||
}
|
||||
giveItems(player, KURTIZ_CERTIFICATE, 1);
|
||||
giveItems(player, SPELLBOOK_SUMMON_BATTLE_POTION, 1);
|
||||
qs.exitQuest(false, true);
|
||||
@@ -109,6 +138,82 @@ public class Q10825_ForVictory extends Quest
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "mark":
|
||||
{
|
||||
final long TIME_CHECK = Long.parseLong(qs.get("TimeCheck"));
|
||||
final long CURRENT_TIME = System.currentTimeMillis();
|
||||
final long SIEGE_LENGTH = 7200000; // 2 hours in milliseconds
|
||||
switch (npc.getId())
|
||||
{
|
||||
case FLAG_GLUDIO:
|
||||
case FLAG_DION:
|
||||
case FLAG_GIRAN:
|
||||
case FLAG_OREN:
|
||||
case FLAG_INNADRIL:
|
||||
case FLAG_GODDARD:
|
||||
case FLAG_SCHUTTGART:
|
||||
{
|
||||
if (player != null)
|
||||
{
|
||||
if (qs.isCond(1) && (getQuestItemsCount(player, MARK_OF_VALOR) < MARK_OF_VALOR_NEEDED) && (CURRENT_TIME > (TIME_CHECK + SIEGE_LENGTH)))
|
||||
{
|
||||
if (player.getSiegeState() == 0)
|
||||
{
|
||||
htmltext = "CastleFlagOfProtection-03.html"; // Reward only siege participants
|
||||
}
|
||||
else
|
||||
{
|
||||
qs.set("TimeCheck", Long.toString(CURRENT_TIME));
|
||||
giveItems(player, MARK_OF_VALOR, 1);
|
||||
if (getQuestItemsCount(player, MARK_OF_VALOR) >= MARK_OF_VALOR_NEEDED)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
htmltext = "CastleFlagOfProtection-02.html"; // Reward received
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "CastleFlagOfProtection-04.html"; // Reward only from one castle per day
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case FLAG_ADEN:
|
||||
case FLAG_RUNE:
|
||||
{
|
||||
if (player != null)
|
||||
{
|
||||
if (qs.isCond(1) && (getQuestItemsCount(player, MARK_OF_VALOR) < MARK_OF_VALOR_NEEDED) && (CURRENT_TIME > (TIME_CHECK + SIEGE_LENGTH)))
|
||||
{
|
||||
if (player.getSiegeState() == 0)
|
||||
{
|
||||
htmltext = "CastleFlagOfProtection-03.html"; // Reward only siege participants
|
||||
}
|
||||
else
|
||||
{
|
||||
qs.set("TimeCheck", String.valueOf(CURRENT_TIME));
|
||||
giveItems(player, MARK_OF_VALOR, 2);
|
||||
if (getQuestItemsCount(player, MARK_OF_VALOR) >= MARK_OF_VALOR_NEEDED)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
htmltext = "CastleFlagOfProtection-02.html"; // Reward received
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "CastleFlagOfProtection-04.html"; // Reward only from one castle per day
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
@@ -127,13 +232,32 @@ public class Q10825_ForVictory extends Quest
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (getQuestItemsCount(player, MARK_OF_VALOR) >= 10)
|
||||
switch (qs.getCond())
|
||||
{
|
||||
htmltext = "30870-08.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30870-07.html";
|
||||
case 1:
|
||||
{
|
||||
if (getQuestItemsCount(player, MARK_OF_VALOR) >= MARK_OF_VALOR_NEEDED)
|
||||
{
|
||||
htmltext = "30870-08.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30870-07.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
if (getQuestItemsCount(player, PROOF_OF_SETTLEMENT) >= PROOF_OF_SETTLEMENT_NEEDED)
|
||||
{
|
||||
htmltext = "30870-08a.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "30870-07a.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -153,16 +277,28 @@ public class Q10825_ForVictory extends Quest
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
giveItems(player, MARK_OF_VALOR, 1);
|
||||
giveItems(player, PROOF_OF_SETTLEMENT, 1);
|
||||
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
if (getQuestItemsCount(player, PROOF_OF_SETTLEMENT) >= PROOF_OF_SETTLEMENT_NEEDED)
|
||||
{
|
||||
qs.setCond(4, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@RegisterEvent(EventType.ON_CASTLE_SIEGE_FINISH)
|
||||
@RegisterEvent(EventType.ON_CEREMONY_OF_CHAOS_MATCH_RESULT)
|
||||
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
|
||||
private void OnCastleSiegeFinish(OnCastleSiegeFinish event)
|
||||
private void onCeremonyOfChaosMatchResult(OnCeremonyOfChaosMatchResult event)
|
||||
{
|
||||
event.getSiege().getPlayersInZone().forEach(this::manageQuestProgress);
|
||||
event.getMembers().forEach(player -> manageQuestProgress(player.getPlayer()));
|
||||
}
|
||||
|
||||
@RegisterEvent(EventType.ON_OLYMPIAD_MATCH_RESULT)
|
||||
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
|
||||
private void onOlympiadMatchResult(OnOlympiadMatchResult event)
|
||||
{
|
||||
manageQuestProgress(event.getWinner().getPlayer());
|
||||
manageQuestProgress(event.getLoser().getPlayer());
|
||||
}
|
||||
}
|
@@ -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";
|
||||
}
|
||||
|
@@ -39,7 +39,7 @@ public class Q10827_StepUpToLead extends Quest
|
||||
// NPC
|
||||
private static final int GUSTAV = 30760;
|
||||
// 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;
|
||||
// Rewards
|
||||
@@ -47,6 +47,7 @@ public class Q10827_StepUpToLead extends Quest
|
||||
private static final int SPELLBOOK_FAVOR_OF_THE_EXALTED = 45870;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 100;
|
||||
private static final int PARTY_LEADER_TIMES = 5;
|
||||
|
||||
public Q10827_StepUpToLead()
|
||||
{
|
||||
@@ -87,7 +88,7 @@ public class Q10827_StepUpToLead extends Quest
|
||||
{
|
||||
if ((player.getLevel() >= MIN_LEVEL))
|
||||
{
|
||||
if (hasQuestItems(player, KURTIZ_CERTIFICATE, MERLOT_SERTIFICATE, MAMMON_CERTIFICATE))
|
||||
if (hasQuestItems(player, KURTIZ_CERTIFICATE, MERLOT_CERTIFICATE, MAMMON_CERTIFICATE))
|
||||
{
|
||||
htmltext = "30760-10.html";
|
||||
}
|
||||
@@ -97,12 +98,6 @@ public class Q10827_StepUpToLead extends Quest
|
||||
}
|
||||
giveItems(player, GUSTAV_CERTIFICATE, 1);
|
||||
giveItems(player, SPELLBOOK_FAVOR_OF_THE_EXALTED, 1);
|
||||
|
||||
// Give Exalted status here?
|
||||
// https://l2wiki.com/Noblesse
|
||||
player.setNobleLevel(2);
|
||||
player.broadcastUserInfo();
|
||||
|
||||
qs.exitQuest(false, true);
|
||||
}
|
||||
else
|
||||
@@ -185,7 +180,7 @@ public class Q10827_StepUpToLead extends Quest
|
||||
final int memo = qs.getMemoState() + 1;
|
||||
qs.setMemoState(memo);
|
||||
|
||||
if (memo >= 30)
|
||||
if (memo >= PARTY_LEADER_TIMES)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<html><body>Eva's Knight Lionel Hunter:<br>
|
||||
Great job passing the second test. I knew you would be able to do it.<br>
|
||||
Now, only the third test is left. Are you ready for it?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10823_ExaltedOneWhoShattersTheLimit 33907-03.htm">"Yes, I'm ready."</Button>
|
||||
You already passed the three tests to gain the new power. However, the world has changed, and so has the path you should take.<br>
|
||||
Would you like to learn about the qualification test for this new stage?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10873_ExaltedReachingAnotherLevel 33907-03.htm">"Go on."</Button>
|
||||
</body></html>
|
@@ -1,5 +1,5 @@
|
||||
<html><body>Eva's Knight Lionel Hunter:<br>
|
||||
All the efforts you've made so far are simple compared to what you'll have to do now.<br>
|
||||
You must remember that it is not about overcoming the limit, but about learning that there's no limit at all. Do you understand what I'm saying?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10823_ExaltedOneWhoShattersTheLimit 33907-04.htm">"Yes."</Button>
|
||||
I'm fully aware that you worked hard to rise to the Exalted position and achieve the power you wished. However, the world has changed. More precisely, the birth of a new power has changed the world.<br>
|
||||
In either case, we've come to the same conclusion: we must move on. The world does not need ones who linger in the present. You must start a new journey and overcome new trials.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10873_ExaltedReachingAnotherLevel 33907-04.htm">"Go on."</Button>
|
||||
</body></html>
|
@@ -1,6 +1,5 @@
|
||||
<html><body>Eva's Knight Lionel Hunter:<br>
|
||||
You've already overcome your limit. There's no such thing as a limit now. That's what you will be proving on this third test.<br>
|
||||
The things you've obtained as you improved will make you even stronger, and what you will obtain from now on will help you prove yourself.<br>
|
||||
Are you ready to not go back?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10823_ExaltedOneWhoShattersTheLimit 33907-05.html">"I'm ready."</Button>
|
||||
During this journey, you must reach a new stage, establish a solid foothold, and expand your influence to this world. To save the world, you must be able not only to develop yourself but also to spread your power to other areas. I know it sounds like a riddle.<br>
|
||||
But I can promise you one thing, by the time you pass the test, you will have reached the new stage. Would you take the fourth test?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10873_ExaltedReachingAnotherLevel 33907-05.html">"Yes, that is correct."</Button>
|
||||
</body></html>
|
@@ -1,7 +1,9 @@
|
||||
<html><body>Eva's Knight Lionel Hunter:<br>
|
||||
This is the third test.<br>
|
||||
You must overcome not just the limit of the power you were born with, but also the limit of the new power you obtained.<br>
|
||||
Make sure your <font color="LEVEL">Lv. 104</font>. Then, go find <font color="LEVEL">Sporcha</font> in <font color="LEVEL">Refugee Village</font>, <font color="LEVEL">Captain Krenaht</font> in the <font color="LEVEL">Giants Cave</font>, the <font color="LEVEL">Santiago</font>, and <font color="LEVEL">Arcturus</font> in the <font color="LEVEL">Hunters Village</font>, and pass the tests they give you. It's best that you hear about the tests from them.<br><br><br>
|
||||
Remember to bring back their certificates.<br>
|
||||
If you forget who you must go to, refer to the guide I'll be giving you.
|
||||
I'll tell you about the fourth test.<br>
|
||||
First, you must reach <font color="LEVEL">Lv. 104</font> to prove you are qualified to advance to the new stage. You must also pass the tests of the following people and receive their certificates.<br>
|
||||
Your testers include <font color="LEVEL">Commando Captain Sporcha</font> in the <font color="LEVEL">Hellbound Refugee Camp</font>, <font color="LEVEL">Giant Tracker Leader Krenaht</font> in the <font color="LEVEL">Giant's Cave</font>, <font color="LEVEL">Fishing Guild Leader Santiago</font> in <font color="LEVEL">Heine</font>, and <font color="LEVEL">Hunter's Guild President Arcturus</font> in the <font color="LEVEL">Hunter's Village</font>.<br><br><br>
|
||||
Only they know what they'll test you on, so go talk to them. If you forget who you must go to, refer to the guide I'll be giving you<br><br>
|
||||
All this can be substituted by completing a mission from <font color="LEVEL">High Priest Sylvain</font> in the <font color="LEVEL">Einhasad Temple</font> in the <font color="LEVEL">Town of Dion</font>.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10873_ExaltedReachingAnotherLevel 33907-05a.html">"I'll do that."</Button>
|
||||
</body></html>
|
||||
</body></html>
|
@@ -0,0 +1,5 @@
|
||||
<html><body>Eva's Knight Lionel Hunter:<br>
|
||||
I'll tell you about the fourth test.<br>
|
||||
You need to complete a mission from <font color="LEVEL">High Priest Sylvain</font> in the <font color="LEVEL">Einhasad Temple</font> in the <font color="LEVEL">Town of Dion</font>.<br>
|
||||
Only him knows what he'll test you on, so go talk to him. If you forget who you must go to, refer to the guide I'll be giving you<br>
|
||||
</body></html>
|
@@ -1,6 +1,6 @@
|
||||
<html><body>Eva's Knight Lionel Hunter:<br>
|
||||
You haven't finished all the tests. In order to overcome your limit, you must pass all the tests.<br>
|
||||
You haven't finished all the tests. In order to reach another level, you must pass all the tests.<br>
|
||||
You must overcome not just the limit of the power you were born with, but also the limit of the new power you obtained.<br>
|
||||
Make sure your <font color="LEVEL">Lv. 104</font>. Then, go find <font color="LEVEL">Sporcha</font> in <font color="LEVEL">Refugee Village</font>, <font color="LEVEL">Captain Krenaht</font> in the <font color="LEVEL">Giants Cave</font>, the <font color="LEVEL">Santiago</font>, and <font color="LEVEL">Arcturus</font> in the <font color="LEVEL">Hunters Village</font>, and pass the tests they give you.<br>
|
||||
Make sure you're <font color="LEVEL">Lv. 104</font>. Then, go find <font color="LEVEL">Commando Captain Sporcha</font> in the <font color="LEVEL">Hellbound Refugee Camp</font>, <font color="LEVEL">Giant Tracker Leader Krenaht</font> in the <font color="LEVEL">Giant's Cave</font>, <font color="LEVEL">Fishing Guild Leader Santiago</font> in <font color="LEVEL">Heine</font>, and <font color="LEVEL">Hunter's Guild President Arcturus</font> in the <font color="LEVEL">Hunter's Village</font>, and pass the tests they give you.<br><br><br>
|
||||
It's best that you hear about the tests from them. Remember to bring back their certificates.
|
||||
</body></html>
|
@@ -0,0 +1,6 @@
|
||||
<html><body>Eva's Knight Lionel Hunter:<br>
|
||||
You haven't finished the test. In order to reach another level, you must pass the test.<br>
|
||||
You must overcome not just the limit of the power you were born with, but also the limit of the new power you obtained.<br>
|
||||
Make sure you're <font color="LEVEL">Lv. 104</font>. Then, go find <font color="LEVEL">High Priest Sylvain</font> in the <font color="LEVEL">Einhasad Temple</font> in the <font color="LEVEL">Town of Dion</font>.<br><br><br>
|
||||
It's best that you hear about the test from him. Remember to bring back his certificate.
|
||||
</body></html>
|
@@ -1,5 +1,5 @@
|
||||
<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>
|
||||
Have you completed all tests?<br>
|
||||
Congratulations on passing them all. Did you bring back all the certificates?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10873_ExaltedReachingAnotherLevel 33907-08.html">"Yes, I did."</Button>
|
||||
</body></html>
|
@@ -0,0 +1,5 @@
|
||||
<html><body>Eva's Knight Lionel Hunter:<br>
|
||||
Have you completed the test?<br>
|
||||
Congratulations on passing it. Did you bring back the certificate?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10873_ExaltedReachingAnotherLevel 33907-08.html">"Yes, I did."</Button>
|
||||
</body></html>
|
@@ -1,4 +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">true exalted nobleman</font>. Get access to the next quest Exalted, Guide to Power. Congratulations.
|
||||
You took the first step forward the new stage rather than being content staying still. Congratulations for passing the fourth test.<br>
|
||||
Don't forget that more tests remain. For now, enjoy your achievement.
|
||||
</body></html>
|
@@ -35,12 +35,12 @@ public class Q10873_ExaltedReachingAnotherLevel extends Quest
|
||||
private static final int LIONEL = 33907;
|
||||
// Items
|
||||
private static final int SPORCHA_CERTIFICATE = 47830;
|
||||
private static final int KRENAHT_CERTIFICATE = 47831;
|
||||
private static final int SANTIAGO_SERTIFICATE = 47832;
|
||||
private static final int KEKROPUS_CERTIFICATE = 47831;
|
||||
private static final int SANTIAGO_CERTIFICATE = 47832;
|
||||
private static final int ARCTURUS_CERTIFICATE = 47833;
|
||||
private static final int SYLVAIN_CERTIFICATE = 80828;
|
||||
private static final int LIONEL_MISSION_LIST_4 = 47829;
|
||||
// Rewards
|
||||
private static final int VITALITY_OF_THE_EXALTED = 47854;
|
||||
private static final int DIGNITY_OF_THE_EXALTED = 47852;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 103;
|
||||
@@ -53,7 +53,7 @@ public class Q10873_ExaltedReachingAnotherLevel extends Quest
|
||||
addTalkId(LIONEL);
|
||||
addCondMinLevel(MIN_LEVEL, "33907-00.htm");
|
||||
addCondCompletedQuest(Q10823_ExaltedOneWhoShattersTheLimit.class.getSimpleName(), "33907-00.htm");
|
||||
registerQuestItems(LIONEL_MISSION_LIST_4, SPORCHA_CERTIFICATE, KRENAHT_CERTIFICATE, SANTIAGO_SERTIFICATE, ARCTURUS_CERTIFICATE);
|
||||
registerQuestItems(LIONEL_MISSION_LIST_4, SPORCHA_CERTIFICATE, KEKROPUS_CERTIFICATE, SANTIAGO_CERTIFICATE, ARCTURUS_CERTIFICATE, SYLVAIN_CERTIFICATE);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -83,12 +83,18 @@ public class Q10873_ExaltedReachingAnotherLevel extends Quest
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "33907-05a.html":
|
||||
{
|
||||
qs.setCond(3);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33907-08.html":
|
||||
{
|
||||
if (hasQuestItems(player, SPORCHA_CERTIFICATE, KRENAHT_CERTIFICATE, SANTIAGO_SERTIFICATE, ARCTURUS_CERTIFICATE) && (player.getLevel() >= MIN_COMPLETE_LEVEL))
|
||||
if ((hasQuestItems(player, SYLVAIN_CERTIFICATE) || hasQuestItems(player, SPORCHA_CERTIFICATE, KEKROPUS_CERTIFICATE, SANTIAGO_CERTIFICATE, ARCTURUS_CERTIFICATE)) && (player.getLevel() >= MIN_COMPLETE_LEVEL))
|
||||
{
|
||||
giveItems(player, VITALITY_OF_THE_EXALTED, 1);
|
||||
giveItems(player, DIGNITY_OF_THE_EXALTED, 1);
|
||||
addExpAndSp(player, 1178303740714L, 1178303740);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
@@ -112,13 +118,32 @@ public class Q10873_ExaltedReachingAnotherLevel extends Quest
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (hasQuestItems(player, SPORCHA_CERTIFICATE, KRENAHT_CERTIFICATE, SANTIAGO_SERTIFICATE, ARCTURUS_CERTIFICATE) && (player.getLevel() >= MIN_COMPLETE_LEVEL))
|
||||
switch (qs.getCond())
|
||||
{
|
||||
htmltext = "33907-07.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "33907-06.html";
|
||||
case 1:
|
||||
{
|
||||
if (hasQuestItems(player, SPORCHA_CERTIFICATE, KEKROPUS_CERTIFICATE, SANTIAGO_CERTIFICATE, ARCTURUS_CERTIFICATE) && (player.getLevel() >= MIN_COMPLETE_LEVEL))
|
||||
{
|
||||
htmltext = "33907-07.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "33907-06.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
if (hasQuestItems(player, SYLVAIN_CERTIFICATE) && (player.getLevel() >= MIN_COMPLETE_LEVEL))
|
||||
{
|
||||
htmltext = "33907-07a.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "33907-06a.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@@ -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>
|
@@ -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>
|
@@ -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>
|
@@ -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>
|
@@ -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>
|
@@ -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>
|
@@ -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>
|
@@ -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>
|
@@ -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>
|
@@ -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>
|
@@ -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>
|
@@ -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>
|
@@ -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>
|
@@ -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>
|
@@ -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>
|
@@ -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 CostyKiller
|
||||
*/
|
||||
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);
|
||||
}
|
||||
}
|
4
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10875_ForReputation/34222-00.html
vendored
Normal file
4
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10875_ForReputation/34222-00.html
vendored
Normal 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>
|
4
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10875_ForReputation/34222-01.htm
vendored
Normal file
4
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10875_ForReputation/34222-01.htm
vendored
Normal 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>
|
3
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10875_ForReputation/34222-02.html
vendored
Normal file
3
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10875_ForReputation/34222-02.html
vendored
Normal 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>
|
4
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10875_ForReputation/34237-00.html
vendored
Normal file
4
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10875_ForReputation/34237-00.html
vendored
Normal 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>
|
5
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10875_ForReputation/34237-01.htm
vendored
Normal file
5
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10875_ForReputation/34237-01.htm
vendored
Normal 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>
|
5
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10875_ForReputation/34237-02.htm
vendored
Normal file
5
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10875_ForReputation/34237-02.htm
vendored
Normal 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>
|
5
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10875_ForReputation/34237-03.htm
vendored
Normal file
5
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10875_ForReputation/34237-03.htm
vendored
Normal 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>
|
4
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10875_ForReputation/34237-04.html
vendored
Normal file
4
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10875_ForReputation/34237-04.html
vendored
Normal 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>
|
4
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10875_ForReputation/34237-05.html
vendored
Normal file
4
L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10875_ForReputation/34237-05.html
vendored
Normal 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>
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user