This commit is contained in:
mobius
2015-01-01 20:02:50 +00:00
parent eeae660458
commit a6a3718849
17894 changed files with 2818932 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
<html><body>Mysterious Necromancer:<br>
You seem too weak to travel here. Come back again after training some more. Otherwise, I cannot guarantee your safety. (Quest available for the character of LEVEL 60 or above.)
</body></html>

View File

@@ -0,0 +1,7 @@
<html><body>Mysterious Necromancer:<br>
You aren't a pilgrim, are you? Anyway, you've traveled a long way, haven't you? Could you help me with something?<br>
I'm trying to create a new type of chimera! I've tried all sorts of ingredients, including blood of vampire and muscle of Ogre!<br>
I've come here to find a new source for ingredients... But gathering ingredients isn't as easy as it seems! Right now I'm trying to find remains of saint!<br>
Why are you looking at me like that? You think we should just let them rot? Do you want to help me or what?<br>
<a action="bypass -h Quest Q00627_HeartInSearchOfPower 31518-02.htm">"What do you want me to do?"</a>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Mysterious Necromancer:<br>
All I know so far is that the remains of saints are in a place called <font color="LEVEL">Enfeux</font>, which is sealed.<br>
I must make a seal from beads of obedience to unlock it. Beads of obedience control the thoughts of the creatures that guard the Valley of Saints. Bring me 300 of them. You can take them from the <font color="LEVEL">Eye of Splendor, Flash of Splendor, Blade of Splendor, Wisdom of Splendor, Soul of Splendor, Victory of Splendor, Punishment of Splendor, Shout of Splendor, Signet of Splendor, Crown of Splendor and Wailing of Splendor</font>. I'm counting on you!
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Mysterious Necromancer:<br>
Where are the 300 beads of obedience I asked for? You can get them from <font color="LEVEL">eyes of splendor, flashes of splendor, knife edges of splendor, Wisdom of Splendor, souls of splendor, victories of splendor, vengeance of splendor, shouts of splendor, seals of splendor, crowns of splendor and Wailing of Splendor</font>. Please collect 300 beads and bring them to me.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Mysterious Necromancer:<br>
You've collected all 300 beads of obedience for me! Now I can use them to make a Seal of Light! Please give them to me.<br>
<a action="bypass -h Quest Q00627_HeartInSearchOfPower 31518-06.html">"Here you go."</a>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Mysterious Necromancer:<br>
Where are the 300 beads of obedience?
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Mysterious Necromancer:<br>
The beads of obedience allowed me to create a Seal of Light. Could you possibly help me some more?<br>
Enfeux is in the deepest part of the Valley of Saints. It's marked on this Map. You can take it with you. To extract the remains of saints, you must insert this Seal of Light into the space to the right side of Enfeux. After activating it with the seal, you can take out the remains of saints. I hope you can bring back as many as possible, but remember, the Seal of Light can be used only once.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Mysterious Necromancer:<br>
What are you still doing here? Don't you know how important this is? Bring me some remains of saints right away!
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Mysterious Necromancer:<br>
You brought me the remains of saints! Did you have any serious problems?<br>
I'm so glad to hear it! Now, please give me the remains of saints!<br>
<a action="bypass -h Quest Q00627_HeartInSearchOfPower 31518-09.html">"Not until I get my reward!"</a>
</body></html>

View File

@@ -0,0 +1,8 @@
<html><body>Mysterious Necromancer:<br>
Since you brought me the remains you will be rewarded. Would you care for some Adena or a basic ingredient? Which do you choose?<br>
<a action="bypass -h Quest Q00627_HeartInSearchOfPower Adena">"Adena."</a><br>
<a action="bypass -h Quest Q00627_HeartInSearchOfPower Asofes">"Asofes."</a><br>
<a action="bypass -h Quest Q00627_HeartInSearchOfPower Thons">"Thons."</a><br>
<a action="bypass -h Quest Q00627_HeartInSearchOfPower Enrias">"Enrias."</a><br>
<a action="bypass -h Quest Q00627_HeartInSearchOfPower Mold_Hardener">"Mold Hardener."</a>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Mysterious Necromancer:<br>
I wish it could be more, but this is all I can give you. I hope you'll find it useful.<br>
Feel free to come back and help anytime!
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Mysterious Necromancer:<br>
Where are the remains of saints? You can't fool me!
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Enfeux:<br>
Upon close examination, on the lower right side, you see where to insert the seal.<br>
<a action="bypass -h Quest Q00627_HeartInSearchOfPower 31519-02.html">Insert the seal.</a>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Enfeux:<br>
The Seal of Light has disappeared. In its place, you find an orb that looks like remains of saints.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Enfeux:<br>
You've already obtained the remains of saints. You can't get any more of them until you have a Seal of Light.
</body></html>

View File

@@ -0,0 +1,237 @@
/*
* Copyright (C) 2004-2014 L2J DataPack
*
* This file is part of L2J DataPack.
*
* L2J DataPack 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.
*
* L2J DataPack 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.Q00627_HeartInSearchOfPower;
import java.util.HashMap;
import java.util.Map;
import com.l2jserver.Config;
import com.l2jserver.gameserver.enums.QuestSound;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.model.quest.State;
/**
* Heart in Search of Power (627)
* @author Citizen
*/
public class Q00627_HeartInSearchOfPower extends Quest
{
// NPCs
private static final int MYSTERIOUS_NECROMANCER = 31518;
private static final int ENFEUX = 31519;
// Items
private static final int SEAL_OF_LIGHT = 7170;
private static final int BEAD_OF_OBEDIENCE = 7171;
private static final int GEM_OF_SAINTS = 7172;
// Monsters
private static final Map<Integer, Integer> MONSTERS = new HashMap<>();
static
{
MONSTERS.put(21520, 661); // Eye of Splendor
MONSTERS.put(21523, 668); // Flash of Splendor
MONSTERS.put(21524, 714); // Blade of Splendor
MONSTERS.put(21525, 714); // Blade of Splendor
MONSTERS.put(21526, 796); // Wisdom of Splendor
MONSTERS.put(21529, 659); // Soul of Splendor
MONSTERS.put(21530, 704); // Victory of Splendor
MONSTERS.put(21531, 791); // Punishment of Splendor
MONSTERS.put(21532, 820); // Shout of Splendor
MONSTERS.put(21535, 827); // Signet of Splendor
MONSTERS.put(21536, 798); // Crown of Splendor
MONSTERS.put(21539, 875); // Wailing of Splendor
MONSTERS.put(21540, 875); // Wailing of Splendor
MONSTERS.put(21658, 791); // Punishment of Splendor
}
// Misc
private static final int MIN_LEVEL_REQUIRED = 60;
private static final int BEAD_OF_OBEDIENCE_COUNT_REQUIRED = 300;
// Rewards ID's
private static final int ASOFE = 4043;
private static final int THONS = 4044;
private static final int ENRIA = 4042;
private static final int MOLD_HARDENER = 4041;
public Q00627_HeartInSearchOfPower()
{
super(627, Q00627_HeartInSearchOfPower.class.getSimpleName(), "Heart in Search of Power");
addStartNpc(MYSTERIOUS_NECROMANCER);
addTalkId(MYSTERIOUS_NECROMANCER, ENFEUX);
addKillId(MONSTERS.keySet());
registerQuestItems(SEAL_OF_LIGHT, BEAD_OF_OBEDIENCE, GEM_OF_SAINTS);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final QuestState st = getQuestState(player, false);
if (st == null)
{
return null;
}
String htmltext = event;
switch (event)
{
case "31518-02.htm":
st.startQuest();
break;
case "31518-06.html":
if (st.getQuestItemsCount(BEAD_OF_OBEDIENCE) < BEAD_OF_OBEDIENCE_COUNT_REQUIRED)
{
return "31518-05.html";
}
st.giveItems(SEAL_OF_LIGHT, 1);
st.takeItems(BEAD_OF_OBEDIENCE, -1);
st.setCond(3);
break;
case "Adena":
case "Asofes":
case "Thons":
case "Enrias":
case "Mold_Hardener":
if (!st.hasQuestItems(GEM_OF_SAINTS))
{
return "31518-11.html";
}
switch (event)
{
case "Adena":
st.giveAdena(100000, true);
break;
case "Asofes":
st.rewardItems(ASOFE, 13);
st.giveAdena(6400, true);
break;
case "Thons":
st.rewardItems(THONS, 13);
st.giveAdena(6400, true);
break;
case "Enrias":
st.rewardItems(ENRIA, 6);
st.giveAdena(13600, true);
break;
case "Mold_Hardener":
st.rewardItems(MOLD_HARDENER, 3);
st.giveAdena(17200, true);
break;
}
htmltext = "31518-10.html";
st.exitQuest(true);
break;
case "31519-02.html":
if (st.hasQuestItems(SEAL_OF_LIGHT) && st.isCond(3))
{
st.giveItems(GEM_OF_SAINTS, 1);
st.takeItems(SEAL_OF_LIGHT, -1);
st.setCond(4);
}
else
{
htmltext = getNoQuestMsg(player);
}
break;
case "31518-09.html":
break;
default:
htmltext = null;
break;
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final L2PcInstance partyMember = getRandomPartyMember(killer, 1);
if (partyMember != null)
{
final QuestState st = getQuestState(partyMember, false);
final float chance = (MONSTERS.get(npc.getId()) * Config.RATE_QUEST_DROP);
if (getRandom(1000) < chance)
{
st.giveItems(BEAD_OF_OBEDIENCE, 1);
if (st.getQuestItemsCount(BEAD_OF_OBEDIENCE) < BEAD_OF_OBEDIENCE_COUNT_REQUIRED)
{
st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
else
{
st.setCond(2, true);
}
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
String htmltext = getNoQuestMsg(player);
final QuestState st = getQuestState(player, true);
if (st == null)
{
return htmltext;
}
switch (st.getState())
{
case State.CREATED:
if (npc.getId() == MYSTERIOUS_NECROMANCER)
{
htmltext = (player.getLevel() >= MIN_LEVEL_REQUIRED) ? "31518-01.htm" : "31518-00.htm";
}
break;
case State.STARTED:
switch (npc.getId())
{
case MYSTERIOUS_NECROMANCER:
switch (st.getCond())
{
case 1:
htmltext = "31518-03.html";
break;
case 2:
htmltext = "31518-04.html";
break;
case 3:
htmltext = "31518-07.html";
break;
case 4:
htmltext = "31518-08.html";
break;
}
break;
case ENFEUX:
switch (st.getCond())
{
case 3:
htmltext = "31519-01.html";
break;
case 4:
htmltext = "31519-03.html";
break;
}
break;
}
break;
}
return htmltext;
}
}