Last missing quests.

Contributed by quangnguyen.
This commit is contained in:
MobiusDev 2018-03-01 22:05:43 +00:00
parent 87bfa503fb
commit 4ddc76d984
1089 changed files with 19935 additions and 33 deletions

View File

@ -0,0 +1,4 @@
<html><body>Sedrick:<br>
At some point in their lives, all the knights are at a crossroads. To determine the right path, they go on a pilgrimage.
Talk to Master Felix from the Village of the Hunters. He left chivalry and went his own way.<br>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Sedrick:<br>
My young friend, you do not have enough experience to become a Knight of the Phoenix. I see your passion and I hope that you will keep it in your heart, but it is not enough - only through the experience of battle you can acquire the power that will allow you not to deviate from your faith in the era of untruth. <br>
Come back when you are a little older and wiser. When you are ready, I will give you a mission to check if you are ready to become a Knight. <br>
(Quest for characters whose level is 76 or higher.)<br>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Sedrick:<br>
Have you not already received the title of the Knight of the Phoenix?
My brother, you do not have to go through the test of the squire again.
Your duty is to fight for your faith and the glory of the lord.<br>
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>Sedrick:<br>
Do you want to become a Phoenix Knight?
Well, then you must pass <font color="LEVEL">Saga Phoenix Knight</font>,
To prove that you are not just a reckless, quick-tempered warrior, but
Warrior with the soul of this Knight. It is a form of ritual and the process of training,
They must be performed by all who wish to become a Knight of the Phoenix.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Sedrick<br>
Congratulations! You have passed all the tests and are ready to receive the profession of the Knight of the Phoenix !!!<br>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00070_SagaOfThePhoenixKnight 30849-05.htm">Get a Profession</button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Sedrick<br>
Congratulations! You have received the profession Phoenix Knight !!!<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Sedrick:<br>
I cannot help you, child. Perhaps another can.<br>
(This quest can only be fulfilled by Paladin.)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Sedrick:<br>
Apparently, you have already chosen your path.
You do not need to do the Phoenix Knight's task.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Sedrick:<br>
Do you want to become a Phoenix Knight ?.<br>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00070_SagaOfThePhoenixKnight 30849-01a.htm">To say that you want to become a Knight of the Phoenix</button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Felix:<br>
To save the daughter of Master Felix, you need a dish, known as the "Ice Flower". He can only cook Gurman Rifken from Aden. Try to contact him
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Felix:<br>
Did you bring the "Ice Flower"?<br>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00070_SagaOfThePhoenixKnight 31277-03.htm">Give away the "Ice Flower"</button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Felix:<br>
You have received the Resonance Amulet. Activate the Stone of Knowledge to the south of the Tower of Insolence.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Felix:<br>
Have you come for the third Amulet of Resonance?<br>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00070_SagaOfThePhoenixKnight 31277-05.htm">Yes</button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Felix:<br>
Master Felix says that the third Amulet of Resonance is in Archon Halisha. <font color="LEVEL"> To summon him, you need to destroy his minions in the Molten Tops and collect the Halish Badges. Destroy these monsters and call Archon Halisha. The aim of the hunt is the Ranger of the Swamp, Burning Drake, Flamey Ifrit, Ikedith</font>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Felix:<br>
My daughter is sick and I need your help.<br>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00070_SagaOfThePhoenixKnight 31277-01.htm">How can I help?</button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Eric Ramshart:<br>
Now activate the last stone<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Eric Ramshart:<br>
Thank you! You helped avenge me, I will give you the fourth amulet. <br>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00070_SagaOfThePhoenixKnight 31631-01.htm">Get the Amulet</button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Table of Vision 1:<br>
You brought the amulet and the inscription appeared on the stone - <font color="LEVEL">The second Amulet of Resonance is in the Keepers of Forbidden Knowledge next to the second Stone of Knowledge.</font><br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Table of Vision 1:<br>
You slash like a stone starts to vibrate<br>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00070_SagaOfThePhoenixKnight 31646-01.htm">Bring the Amulet</button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Table of Vision 2:<br>
You slash like a stone starts to vibrate<br>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Table of Vision 2:<br>
Now you can go in search of the third stone<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Table of Vision 2:<br>
You slash like a stone starts to vibrate<br>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00070_SagaOfThePhoenixKnight 31647-04.htm">Bring the Amulet</button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Table of Vision 2:<br>
The third Amulet of Resonance is in Master Felix from the Village of the Hunters.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Table of Vision 2:<br>
You slash like a stone starts to vibrate<br>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00070_SagaOfThePhoenixKnight 31647-01.htm">Bring the Amulet</button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Table of Vision 3:<br>
When the activation of the third Stone of Knowledge ended, he showed the location of the next stone. The fourth Stone of Knowledge is on the Speaking Island, and the last Amulet of Resonance is near the stone. Go there.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Table of Vision 3:<br>
You slash like a stone starts to vibrate<br>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00070_SagaOfThePhoenixKnight 31651-01.htm">Bring the Amulet</button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Table of Vision 4:<br>
Shadow of Beleth appeared nearby<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Table of Vision 4:<br>
You slash like a stone starts to vibrate<br>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00070_SagaOfThePhoenixKnight 31654-03.htm">Bring the Amulet</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Table of Vision 4:<br>
You have successfully activated the last stone<br>
Never forget what you learned during this pilgrimage. Go to Grand Master Cedric in Aden and tell him about your wanderings.
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Table of Vision 4:<br>
You came to the stone and he began to vibrate<br>
The last amulet is at <font color="LEVEL">Shadows of Beleth</font><br>
Are you ready to fight him?<br>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00070_SagaOfThePhoenixKnight 31654-01.htm">Yes</button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Rifken:<br>
Gourmet Rifken needed to prepare the dish <font color="LEVEL">Fragments of the Crystal of Cold. </font> These fragments can be obtained by destroying the monsters to the southeast of Aden.<font color="LEVEL">The aim of the hunt is Ice Monster, Spirit of the Drowned One, Soul of Coldness, Phantom of Solitude, Cold Beast, Spirit of Cold. </font><br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Rifken:<br>
Did you get all the ingredients?</font> <br>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00070_SagaOfThePhoenixKnight 34268-03.htm">Give Shards.</button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Rifken:<br>
Rifken prepared the Ice Flower and said that his healing effect is manifested if you apply it to your head. Take the dish to Master Felix in the Village of the Hunters.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Rifken:<br>
I'll help you make "Ice Flower" but I need<font color="LEVEL">50 Fragments of the Crystal of Cold.</font> <br>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00070_SagaOfThePhoenixKnight 34268-01.htm">I'll get them !!!</button>
</body></html>

View File

@ -0,0 +1,450 @@
package quests.Q00070_SagaOfThePhoenixKnight;
import java.util.HashSet;
import java.util.Set;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.base.ClassId;
import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.serverpackets.MagicSkillUse;
import com.l2jmobius.gameserver.util.Util;
//QuangNguyen
public class Q00070_SagaOfThePhoenixKnight extends Quest
{
public final int SEDRICK = 30849;
public final int FELIX = 31277;
public final int RIFKEN = 34268;
public final int ERIC_RAMSHEART = 31631;
public final int TABLET_OF_VISION_1 = 31646;
public final int TABLET_OF_VISION_2 = 31647;
public final int TABLET_OF_VISION_3 = 31651;
public final int TABLET_OF_VISION_4 = 31654;
// mobs
public final int ICE_MONSTER = 27316;
public final int SPIRIT_OF_A_DROWNED = 27317;
public final int SOUL_OF_COLD = 27318;
public final int GHOST_OF_SOLITUDE = 27319;
public final int FIEND_OF_COLD = 27320;
public final int SPIRIT_OF_COLD = 27321;
public final int SPAMPLAND_WATCHMAN = 21650;
public final int FLAME_DRAKE = 21651;
public final int FIERY_IFRIT = 21652;
public final int IKEDIT = 21653;
public final int GUARDIAN_OF_FOBIDDEN_KNOWLEDGE = 27214; // check drop item
public final int FALLEN_KNIGHT_ADHIL = 27286;
public final int HALISHA_ARCHON = 27219; // blazing spawn
public final int BELETH_SHADOW = 27278; // blazing spawn
// items
public final int ICE_CRYSTAL_FRAGMENT = 49804;
public final int HALISHA_BADGE = 7485;
public final int AMULET_REZONANSA_PERVIY = 7268;
public final int AMULET_REZONANSA_VTOROI = 7299;
public final int AMULET_REZONANSA_TRETIY = 7330;
public final int AMULET_REZONANSA_CHETVERTIY = 7361;
public final int PURE_ICE = 7534;
// reward
public final int BOOKGOLDLION = 90038;
private static final String KILL_COUNT_VAR = "KillCount";
public Q00070_SagaOfThePhoenixKnight()
{
super(70);
addStartNpc(SEDRICK);
addTalkId(SEDRICK, FELIX, RIFKEN, ERIC_RAMSHEART, TABLET_OF_VISION_1, TABLET_OF_VISION_2, TABLET_OF_VISION_3, TABLET_OF_VISION_4);
addKillId(ICE_MONSTER, SPIRIT_OF_A_DROWNED, SOUL_OF_COLD, GHOST_OF_SOLITUDE, FIEND_OF_COLD);
addKillId(SPIRIT_OF_COLD, SPAMPLAND_WATCHMAN, FLAME_DRAKE, FIERY_IFRIT, IKEDIT);
addKillId(GUARDIAN_OF_FOBIDDEN_KNOWLEDGE, FALLEN_KNIGHT_ADHIL, HALISHA_ARCHON, BELETH_SHADOW);
registerQuestItems(PURE_ICE, ICE_CRYSTAL_FRAGMENT, HALISHA_BADGE);
addCondMinLevel(76, "30849-nolvl.htm");
addCondClassId(ClassId.PALADIN, "30849-checkclass.htm");
}
@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 "30849-02a.htm":
htmltext = "30849-03.htm";
break;
case "30849-01a.htm":
if (st.getCond() == 0)
{
st.startQuest();
st.setCond(1);
}
break;
case "31277-01.htm":
if (st.getCond() == 1)
{
st.setCond(2);
}
break;
case "34268-01.htm":
if (st.getCond() == 2)
{
st.setCond(3);
}
break;
case "34268-03.htm":
if (st.getCond() == 4)
{
st.setCond(5);
}
takeItems(player, ICE_CRYSTAL_FRAGMENT, -1);
giveItems(player, PURE_ICE, 1);
break;
case "31277-03.htm":
if (st.getCond() == 5)
{
st.setCond(6);
}
giveItems(player, AMULET_REZONANSA_PERVIY, 1);
takeItems(player, PURE_ICE, -1);
break;
case "31646-01.htm":
if (st.getCond() == 6)
{
st.setCond(7);
}
break;
case "31647-01.htm":
if (st.getCond() == 8)
{
addSpawn(FALLEN_KNIGHT_ADHIL, npc, true, 0, true);
st.setCond(9);
}
break;
case "31647-04.htm":
if (st.getCond() == 10)
{
st.setCond(11);
}
break;
case "31277-05.htm":
if (st.getCond() == 11)
{
st.setCond(12);
}
break;
case "31651-01.htm":
if (st.getCond() == 14)
{
st.setCond(15);
}
break;
case "31654-01.htm":
if (st.getCond() == 15)
{
st.setCond(16);
}
addSpawn(BELETH_SHADOW, npc, true, 0, true);
break;
case "31631-01.htm":
if (st.getCond() == 16)
{
st.setCond(17);
}
giveItems(player, AMULET_REZONANSA_CHETVERTIY, 1);
break;
case "31654-03.htm":
if (st.getCond() == 17)
{
st.setCond(18);
}
break;
case "30849-05.htm":
if (st.getCond() == 18)
{
if ((player.getLevel() < 76) && (player.getBaseClass() != 5))
{
htmltext = "30849-nolvl.htm";
}
addExpAndSp(player, 3100000, 103000);
rewardItems(player, BOOKGOLDLION, 1);
takeItems(player, AMULET_REZONANSA_PERVIY, -1);
takeItems(player, AMULET_REZONANSA_VTOROI, -1);
takeItems(player, AMULET_REZONANSA_TRETIY, -1);
takeItems(player, AMULET_REZONANSA_CHETVERTIY, -1);
takeItems(player, HALISHA_BADGE, -1);
st.exitQuest(false, true);
player.setClassId(90);
player.setBaseClass(90);
player.broadcastUserInfo();
npc.broadcastPacket(new MagicSkillUse(npc, player, 5103, 1, 1000, 0));
}
break;
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance talker)
{
final QuestState qs = getQuestState(talker, true);
String htmltext = getNoQuestMsg(talker);
switch (qs.getState())
{
case State.CREATED:
{
if (npc.getId() == SEDRICK)
{
htmltext = "30849.htm";
}
break;
}
case State.STARTED:
{
if (npc.getId() == SEDRICK)
{
if (qs.getCond() == 1)
{
htmltext = "30849-01a.htm";
}
if (qs.getCond() == 18)
{
htmltext = "30849-04.htm";
}
}
if (npc.getId() == FELIX)
{
if (qs.getCond() == 1)
{
htmltext = "31277.htm";
}
if (qs.getCond() == 2)
{
htmltext = "31277-01.htm";
}
if (qs.getCond() == 5)
{
htmltext = "31277-02.htm";
}
if (qs.getCond() == 6)
{
htmltext = "31277-03.htm";
}
if (qs.getCond() == 11)
{
htmltext = "31277-04.htm";
}
if (qs.getCond() == 12)
{
htmltext = "31277-05.htm";
}
}
if (npc.getId() == RIFKEN)
{
if (qs.getCond() == 2)
{
htmltext = "34268.htm";
}
if (qs.getCond() == 3)
{
htmltext = "34268-01.htm";
}
if (qs.getCond() == 4)
{
htmltext = "34268-02.htm";
}
}
if (npc.getId() == TABLET_OF_VISION_1)
{
if (qs.getCond() == 6)
{
htmltext = "31646.htm";
}
if (qs.getCond() == 7)
{
htmltext = "31646-01.htm";
}
}
if (npc.getId() == TABLET_OF_VISION_2)
{
if (qs.getCond() == 8)
{
htmltext = "31647.htm";
}
if (qs.getCond() == 9)
{
htmltext = "31647-02.htm";
}
if (qs.getCond() == 10)
{
htmltext = "31647-03.htm";
}
if (qs.getCond() == 11)
{
htmltext = "31647-04.htm";
}
}
if (npc.getId() == TABLET_OF_VISION_3)
{
if (qs.getCond() == 14)
{
htmltext = "31651.htm";
}
if (qs.getCond() == 15)
{
htmltext = "31651-01.htm";
}
}
if (npc.getId() == TABLET_OF_VISION_4)
{
if (qs.getCond() == 15)
{
htmltext = "31654.htm";
}
if (qs.getCond() == 17)
{
htmltext = "31654-02.htm";
}
if (qs.getCond() == 18)
{
htmltext = "31654-03.htm";
}
}
if (npc.getId() == ERIC_RAMSHEART)
{
if (qs.getCond() == 16)
{
htmltext = "31631.htm";
}
if (qs.getCond() == 17)
{
htmltext = "31631-01.htm";
}
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(talker);
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isStarted() && Util.checkIfInRange(1500, npc, killer, true))
{
switch (npc.getId())
{
case ICE_MONSTER:
case SPIRIT_OF_A_DROWNED:
case SOUL_OF_COLD:
case FIEND_OF_COLD:
case GHOST_OF_SOLITUDE:
case SPIRIT_OF_COLD:
if (qs.getCond() == 3)
{
if (getQuestItemsCount(killer, ICE_CRYSTAL_FRAGMENT) < 50)
{
giveItemRandomly(killer, npc, ICE_CRYSTAL_FRAGMENT, 1, 50, 50, true);
}
if (getQuestItemsCount(killer, ICE_CRYSTAL_FRAGMENT) >= 50)
{
qs.setCond(4);
}
}
break;
case FALLEN_KNIGHT_ADHIL:
if (qs.getCond() == 9)
{
qs.setCond(10);
}
break;
case SPAMPLAND_WATCHMAN:
case FLAME_DRAKE:
case FIERY_IFRIT:
case IKEDIT:
if (qs.getCond() == 12)
{
if (getQuestItemsCount(killer, HALISHA_BADGE) < 701)
{
giveItemRandomly(killer, npc, HALISHA_BADGE, 1, 701, 50, true);
if (getQuestItemsCount(killer, HALISHA_BADGE) >= 701)
{
addSpawn(HALISHA_ARCHON, npc, true, 0, true);
qs.setCond(13);
}
}
}
break;
case HALISHA_ARCHON:
if (qs.getCond() == 13)
{
if (!hasQuestItems(killer, AMULET_REZONANSA_TRETIY))
{
giveItemRandomly(killer, npc, AMULET_REZONANSA_TRETIY, 1, 1, 50, true);
}
qs.setCond(14);
}
break;
case BELETH_SHADOW:
if (qs.getCond() == 16)
{
addSpawn(ERIC_RAMSHEART, npc, true, 20000, true);
}
break;
}
if (qs.isCond(7))
{
int count = qs.getInt(KILL_COUNT_VAR);
if (npc.getId() == GUARDIAN_OF_FOBIDDEN_KNOWLEDGE)
{
if (count < 20)
{
qs.set(KILL_COUNT_VAR, ++count);
sendNpcLogList(killer);
}
}
if (count >= 20)
{
qs.setCond(8, true);
giveItems(killer, AMULET_REZONANSA_VTOROI, 1);
}
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(7))
{
final Set<NpcLogListHolder> holder = new HashSet<>(1);
// guardian of forbidden knowledge
final int guardiancount = qs.getInt(KILL_COUNT_VAR);
if (guardiancount > 0)
{
holder.add(new NpcLogListHolder(GUARDIAN_OF_FOBIDDEN_KNOWLEDGE, false, guardiancount));
}
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@ -0,0 +1,454 @@
package quests.Q00071_SagaOfEvasTemplar;
import java.util.HashSet;
import java.util.Set;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.base.ClassId;
import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.serverpackets.MagicSkillUse;
import com.l2jmobius.gameserver.util.Util;
//QuangNguyen
public class Q00071_SagaOfEvasTemplar extends Quest
{
public final int SINDEN = 30852;
public final int STEDMIEL = 30692;
public final int RIFKEN = 34268;
public final int CERENAS = 31281;
public final int TABLET_OF_VISION_1 = 31646;
public final int TABLET_OF_VISION_2 = 31648;
public final int TABLET_OF_VISION_3 = 31653;
public final int TABLET_OF_VISION_4 = 31655;
public final int KNIGHT_KASTIEN = 31638;
// mobs
public final int ICE_MONSTER = 27316;
public final int SPIRIT_OF_A_DROWNED = 27317;
public final int SOUL_OF_COLD = 27318;
public final int GHOST_OF_SOLITUDE = 27319;
public final int FIEND_OF_COLD = 27320;
public final int SPIRIT_OF_COLD = 27321;
public final int SPAMPLAND_WATCHMAN = 21650;
public final int FLAME_DRAKE = 21651;
public final int FIERY_IFRIT = 21652;
public final int IKEDIT = 21653;
public final int GATEKEEPER_OF_THE_HOLY_EDICT = 27215;
public final int BOUND_ELF_PANACEA = 27287;
public final int HALISHA_ARCHON = 27219;
public final int CURSED_KESADEIN = 27279;
// items
public final int ICE_CRYSTAL_FRAGMENT = 49805;
public final int HALISHA_BADGE = 7486;
public final int AMULET_REZONANSA_PERVIY = 7269;
public final int AMULET_REZONANSA_VTOROI = 7300;
public final int AMULET_REZONANSA_TRETIY = 7331;
public final int AMULET_REZONANSA_CHETVERTIY = 7362;
public final int PURE_ICE = 7535;
// reward
public final int BOOKPEGASUS = 90039;
private static final String KILL_COUNT_VAR = "KillCount";
public Q00071_SagaOfEvasTemplar()
{
super(71);
addStartNpc(SINDEN);
addTalkId(SINDEN, STEDMIEL, RIFKEN, CERENAS, KNIGHT_KASTIEN, TABLET_OF_VISION_1, TABLET_OF_VISION_2, TABLET_OF_VISION_3, TABLET_OF_VISION_4);
addKillId(ICE_MONSTER, SPIRIT_OF_A_DROWNED, SOUL_OF_COLD, GHOST_OF_SOLITUDE, FIEND_OF_COLD);
addKillId(SPIRIT_OF_COLD, SPAMPLAND_WATCHMAN, FLAME_DRAKE, FIERY_IFRIT, IKEDIT);
addKillId(GATEKEEPER_OF_THE_HOLY_EDICT, BOUND_ELF_PANACEA, HALISHA_ARCHON, CURSED_KESADEIN);
registerQuestItems(PURE_ICE, ICE_CRYSTAL_FRAGMENT, HALISHA_BADGE);
addCondMinLevel(76, "aiken02.htm");
addCondClassId(ClassId.TEMPLE_KNIGHT, "aiken03.htm");
}
@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 "aiken02a.htm":
htmltext = "aiken5.htm";
break;
case "aiken01s.htm":
if (st.getCond() == 0)
{
st.startQuest();
st.setCond(1);
}
break;
case "jer2.htm":
if (st.getCond() == 1)
{
st.setCond(2);
}
break;
case "rifken2.htm":
if (st.getCond() == 2)
{
st.setCond(3);
}
break;
case "rifken4.htm":
if (st.getCond() == 4)
{
st.setCond(5);
}
takeItems(player, ICE_CRYSTAL_FRAGMENT, -1);
giveItems(player, PURE_ICE, 1);
break;
case "jer4.htm":
if (st.getCond() == 5)
{
st.setCond(6);
}
giveItems(player, AMULET_REZONANSA_PERVIY, 1);
takeItems(player, PURE_ICE, -1);
break;
case "stone12.htm":
if (st.getCond() == 6)
{
st.setCond(7);
}
break;
case "stone22.htm":
if (st.getCond() == 8)
{
addSpawn(BOUND_ELF_PANACEA, npc, true, 0, true);
st.setCond(9);
}
break;
case "stone25.htm":
if (st.getCond() == 10)
{
st.setCond(11);
}
break;
case "jer6.htm":
if (st.getCond() == 11)
{
st.setCond(12);
}
break;
case "stone32.htm":
if (st.getCond() == 14)
{
st.setCond(15);
}
break;
case "stone41.htm":
if (st.getCond() == 15)
{
st.setCond(16);
}
addSpawn(CURSED_KESADEIN, npc, true, 0, true);
break;
case "erikrams2.htm":
if (st.getCond() == 16)
{
st.setCond(17);
}
giveItems(player, AMULET_REZONANSA_CHETVERTIY, 1);
break;
case "stone43.htm":
if (st.getCond() == 17)
{
st.setCond(18);
}
break;
case "aiken7.htm":
if (st.getCond() == 18)
{
if ((player.getLevel() < 76) && (player.getBaseClass() != 20))
{
htmltext = "30849-nolvl.htm";
}
addExpAndSp(player, 3100000, 103000);
rewardItems(player, BOOKPEGASUS, 1);
takeItems(player, AMULET_REZONANSA_PERVIY, -1);
takeItems(player, AMULET_REZONANSA_VTOROI, -1);
takeItems(player, AMULET_REZONANSA_TRETIY, -1);
takeItems(player, AMULET_REZONANSA_CHETVERTIY, -1);
takeItems(player, HALISHA_BADGE, -1);
st.exitQuest(false, true);
player.setClassId(99);
player.setBaseClass(99);
player.broadcastUserInfo();
npc.broadcastPacket(new MagicSkillUse(npc, player, 5103, 1, 1000, 0));
}
break;
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance talker)
{
final QuestState qs = getQuestState(talker, true);
String htmltext = getNoQuestMsg(talker);
switch (qs.getState())
{
case State.CREATED:
{
if (npc.getId() == SINDEN)
{
htmltext = "aiken01.htm";
}
break;
}
case State.STARTED:
{
if (npc.getId() == SINDEN)
{
if (qs.getCond() == 1)
{
htmltext = "aiken01s.htm";
}
if (qs.getCond() == 18)
{
htmltext = "aiken6.htm";
}
}
if (npc.getId() == STEDMIEL)
{
if (qs.getCond() == 1)
{
htmltext = "jer1.htm";
}
if (qs.getCond() == 2)
{
htmltext = "jer2.htm";
}
if (qs.getCond() == 5)
{
htmltext = "jer3.htm";
}
if (qs.getCond() == 6)
{
htmltext = "jer4.htm";
}
}
if (npc.getId() == CERENAS)
{
if (qs.getCond() == 11)
{
htmltext = "jer5.htm";
}
if (qs.getCond() == 12)
{
htmltext = "jer6.htm";
}
}
if (npc.getId() == RIFKEN)
{
if (qs.getCond() == 2)
{
htmltext = "rifken1.htm";
}
if (qs.getCond() == 3)
{
htmltext = "rifken2.htm";
}
if (qs.getCond() == 4)
{
htmltext = "rifken3.htm";
}
}
if (npc.getId() == TABLET_OF_VISION_1)
{
if (qs.getCond() == 6)
{
htmltext = "stone11.htm";
}
if (qs.getCond() == 7)
{
htmltext = "stone12.htm";
}
}
if (npc.getId() == TABLET_OF_VISION_2)
{
if (qs.getCond() == 8)
{
htmltext = "stone21.htm";
}
if (qs.getCond() == 9)
{
htmltext = "stone23.htm";
}
if (qs.getCond() == 10)
{
htmltext = "stone24.htm";
}
if (qs.getCond() == 11)
{
htmltext = "stone25.htm";
}
}
if (npc.getId() == TABLET_OF_VISION_3)
{
if (qs.getCond() == 14)
{
htmltext = "stone31.htm";
}
if (qs.getCond() == 15)
{
htmltext = "stone32.htm";
}
}
if (npc.getId() == TABLET_OF_VISION_4)
{
if (qs.getCond() == 15)
{
htmltext = "stone40.htm";
}
if (qs.getCond() == 17)
{
htmltext = "stone42.htm";
}
if (qs.getCond() == 18)
{
htmltext = "stone43.htm";
}
}
if (npc.getId() == KNIGHT_KASTIEN)
{
if (qs.getCond() == 16)
{
htmltext = "erikrams1.htm";
}
if (qs.getCond() == 17)
{
htmltext = "erikrams2.htm";
}
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(talker);
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isStarted() && Util.checkIfInRange(1500, npc, killer, true))
{
switch (npc.getId())
{
case ICE_MONSTER:
case SPIRIT_OF_A_DROWNED:
case SOUL_OF_COLD:
case FIEND_OF_COLD:
case GHOST_OF_SOLITUDE:
case SPIRIT_OF_COLD:
if (qs.getCond() == 3)
{
if (getQuestItemsCount(killer, ICE_CRYSTAL_FRAGMENT) < 50)
{
giveItemRandomly(killer, npc, ICE_CRYSTAL_FRAGMENT, 1, 50, 50, true);
}
if (getQuestItemsCount(killer, ICE_CRYSTAL_FRAGMENT) >= 50)
{
qs.setCond(4);
}
}
break;
case BOUND_ELF_PANACEA:
if (qs.getCond() == 9)
{
qs.setCond(10);
}
break;
case SPAMPLAND_WATCHMAN:
case FLAME_DRAKE:
case FIERY_IFRIT:
case IKEDIT:
if (qs.getCond() == 12)
{
if (getQuestItemsCount(killer, HALISHA_BADGE) < 701)
{
giveItemRandomly(killer, npc, HALISHA_BADGE, 1, 701, 50, true);
if (getQuestItemsCount(killer, HALISHA_BADGE) >= 701)
{
addSpawn(HALISHA_ARCHON, npc, true, 0, true);
qs.setCond(13);
}
}
}
break;
case HALISHA_ARCHON:
if (qs.getCond() == 13)
{
if (!hasQuestItems(killer, AMULET_REZONANSA_TRETIY))
{
giveItemRandomly(killer, npc, AMULET_REZONANSA_TRETIY, 1, 1, 50, true);
}
qs.setCond(14);
}
break;
case CURSED_KESADEIN:
if (qs.getCond() == 16)
{
addSpawn(KNIGHT_KASTIEN, npc, true, 20000, true);
}
break;
}
if (qs.isCond(7))
{
int count = qs.getInt(KILL_COUNT_VAR);
if (npc.getId() == GATEKEEPER_OF_THE_HOLY_EDICT)
{
if (count < 20)
{
qs.set(KILL_COUNT_VAR, ++count);
sendNpcLogList(killer);
}
}
if (count >= 20)
{
qs.setCond(8, true);
giveItems(killer, AMULET_REZONANSA_VTOROI, 1);
}
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(7))
{
final Set<NpcLogListHolder> holder = new HashSet<>(1);
// guardian of forbidden knowledge
final int guardiancount = qs.getInt(KILL_COUNT_VAR);
if (guardiancount > 0)
{
holder.add(new NpcLogListHolder(GATEKEEPER_OF_THE_HOLY_EDICT, false, guardiancount));
}
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@ -0,0 +1,6 @@
<html><body>
Sinden:
<br>
Do you want to become Eva's Templar?.<br>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00071_SagaOfEvasTemplar aiken01s.htm">Say that you want to become Eve's Templar </button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Sinden:
<br>
Master Sinden believes that one day the Elves will have to leave their Tree of Life. He wants you to reflect on this during the pilgrimage. First you need to talk with Master Stedmiel.
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>
Sinden:
<br>
My young friend, you do not have enough experience to become Eve's Templar. I see your passion and I hope that you will keep it in your heart, but it is not enough - only through the experience of battle you can acquire the power that will allow you not to deviate from your faith in the era of untruth.<br>
Come back when you are a little older and wiser. When you are ready, I will give you a mission to check if you are ready to become Eva's Templar.<br>
(Quest for characters whose level is 76 or higher.)
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>
Sinden:
<br>
Have you not already received the title of Templar of Eve?
  My brother, you do not have to go through the test of the squire again.
  Your duty is to fight for your faith and the glory of the lord.
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>
Sinden:
<br>
Apparently, you have already chosen your path.
  You do not need to perform the mission of Eve's Templar.
</body></html>

View File

@ -0,0 +1,9 @@
<html><body>
Sinden:
<br>
Do you want to become Eve's Templar?
Well, then you must pass <font color="LEVEL">Saga of Eva's Templar</font>,
To prove that you are not just a reckless, quick-tempered warrior, but
  Warrior with the soul of the present Templar Eve. This is a form of ritual and the process of training,
  They must be performed by all who wish to become Eve's Templar.<br>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>
Sinden:
<br>
Congratulations! You have passed all the tests and are ready to receive the profession of Templar Eve !!!
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00071_SagaOfEvasTemplar aiken7.htm">Get the profession</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Sinden:
<br>
Congratulations! You have received the profession of Templar Eve !!!
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>
Star Knight Castiel:
<br>
Thank you! You helped avenge me, I will give you the fourth amulet
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00071_SagaOfEvasTemplar erikrams2.htm">Get the amulet</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Star Knight Castiel:
<br>
Now activate the last stone
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>
Steadmiel:
<br>
To start a pilgrimage, you need a special Amulet. To get it, go to Gourmet Rifken in Aden and take some Pure Ice from him.
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00071_SagaOfEvasTemplar jer2.htm">I'm going</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Steadmiel:
<br>
To start a pilgrimage, you need a special Amulet. To get it, go to Gourmet Rifken in Aden and take some Pure Ice from him.
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>
Steadmiel:
<br>
Did you bring Pure Ice?
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00071_SagaOfEvasTemplar jer4.htm">Give</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Steadmiel:
<br>
You have received the Resonance Amulet. Activate the Stone of Knowledge to the south of the Tower of Insolence.
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>
Kerenas:
<br>
Have you come for the third Amulet of Resonance?
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00071_SagaOfEvasTemplar jer6.htm">Yes</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Kerenas:
<br>
Priest Kerenas says that the third Amulet of Resonance is in Archon Halisha.<font color="LEVEL"> To summon him, you need to destroy his minions in the Swollen Tops and collect the Halisha Signs. Destroy these monsters and call Archon Halisha. The aim of the hunt is the Ranger of the Swamp, Burning Drake, Flame Iphreet, Ikedith</font>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>
Rifken:
<br>
To get pure ice, you need <font color="LEVEL">Fragments of the Crystal of Cold.</font> They can be obtained by destroying monsters to the southeast of Aden
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00071_SagaOfEvasTemplar rifken2.htm">I'll get them !!!</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Rifken:
<br>
Obtain <font color="LEVEL">Fragments of the Crystal of Cold.</font>. These pieces can be obtained by destroying monsters to the southeast of Aden.<font color="LEVEL">The aim of the hunt is the Ice Monster, the Spirit of the Drowned One, the Soul of Cold, the Phantom of Solitude, the Cold Beast, the Spirit of Cold.</font>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>
Rifken:
<br>
Did you get all the ingredients?</font>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00071_SagaOfEvasTemplar rifken4.htm">Give away Shards.</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Rifken:
<br>
Now you have Pure Ice. Take it to Master Steadmiel.
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Stone of knowledge:<br>
You slash like a stone starts to vibrate
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00071_SagaOfEvasTemplar stone12.htm">Bring an amulet</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>
Stone of knowledge:<br>
You brought the amulet and the inscription appeared on the stone - <font color="LEVEL">The second Amulet of Resonance is located near the Streets of the Holy Law next to the second Stone of Knowledge.</font>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Stone of knowledge:<br>
You slash like a stone starts to vibrate
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00071_SagaOfEvasTemplar stone22.htm">Bring the amulet</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>
Stone of knowledge:<br>
As soon as you approached the stone, the Captive Elf Panacea appeared. Obviously, he is trying to stop you. Destroy it.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>
Stone of knowledge:
Now you can go in search of the third stone
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Stone of knowledge:<br>
You slash like a stone starts to vibrate
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00071_SagaOfEvasTemplar stone25.htm">Bring the amulet</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>
Stone of knowledge:<br>
Activating the stone, you learned that the third Amulet of Resonance is at the Priest of Kerenas in the temple of Einhasad Aden. Get him the Resonance Amulet.
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Stone of knowledge:<br>
You slash like a stone starts to vibrate
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00071_SagaOfEvasTemplar stone32.htm">Bring the amulet</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>
Stone of knowledge: <br>
When the activation of the third Stone of Knowledge ended, he showed the location of the next stone. The fourth Stone of Knowledge is in the area of the Elven Village, and the last Amulet of Resonance is near the stone. Go there.
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>
You came to the stone and he began to vibrate<br>
The last amulet is located at <font color="LEVEL">Cursed Kesadein </font><br>
Are you ready to fight him?
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00071_SagaOfEvasTemplar stone41.htm">Yes</button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>
Near the Cursed Kesadein appeared
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Stone of knowledge:<br>
You slash like a stone starts to vibrate
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00071_SagaOfEvasTemplar stone43.htm">Bring an amulet</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Stone of knowledge:<br>
You successfully activated the last stone<br>
During the pilgrimage you learned a lot about your people. Go to Master Sinden and tell him about your wanderings.
</body></html>

View File

@ -0,0 +1,454 @@
package quests.Q00072_SagaOfTheSwordMuse;
import java.util.HashSet;
import java.util.Set;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.base.ClassId;
import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.serverpackets.MagicSkillUse;
import com.l2jmobius.gameserver.util.Util;
//QuangNguyen
public class Q00072_SagaOfTheSwordMuse extends Quest
{
public final int RAIEN = 30853;
public final int GALLADUCCI = 30097;
public final int RIFKEN = 34268;
public final int CERENAS = 31281;
public final int TABLET_OF_VISION_1 = 31646;
public final int TABLET_OF_VISION_2 = 31649;
public final int TABLET_OF_VISION_3 = 31650;
public final int TABLET_OF_VISION_4 = 31655;
public final int MOON_VOICE_IRENE = 31618;
// mobs
public final int ICE_MONSTER = 27316;
public final int SPIRIT_OF_A_DROWNED = 27317;
public final int SOUL_OF_COLD = 27318;
public final int GHOST_OF_SOLITUDE = 27319;
public final int FIEND_OF_COLD = 27320;
public final int SPIRIT_OF_COLD = 27321;
public final int SPAMPLAND_WATCHMAN = 21650;
public final int FLAME_DRAKE = 21651;
public final int FIERY_IFRIT = 21652;
public final int IKEDIT = 21653;
public final int WATCHER_OF_ANCIENT_PLEDGE = 27216;
public final int SWORD_PLAYER_BIEL = 27288;
public final int HALISHA_ARCHON = 27219;
public final int FALLEN_ANGEL_NARCISSUS = 27280;
// items
public final int ICE_CRYSTAL_FRAGMENT = 49806;
public final int HALISHA_BADGE = 7487;
public final int AMULET_REZONANSA_PERVIY = 7270;
public final int AMULET_REZONANSA_VTOROI = 7301;
public final int AMULET_REZONANSA_TRETIY = 7332;
public final int AMULET_REZONANSA_CHETVERTIY = 7363;
public final int BITTER_COLD_BEER = 7536;
// reward
public final int BOOKPEGASUS = 90039;
private static final String KILL_COUNT_VAR = "KillCount";
public Q00072_SagaOfTheSwordMuse()
{
super(72);
addStartNpc(RAIEN);
addTalkId(RAIEN, GALLADUCCI, RIFKEN, CERENAS, MOON_VOICE_IRENE, TABLET_OF_VISION_1, TABLET_OF_VISION_2, TABLET_OF_VISION_3, TABLET_OF_VISION_4);
addKillId(ICE_MONSTER, SPIRIT_OF_A_DROWNED, SOUL_OF_COLD, GHOST_OF_SOLITUDE, FIEND_OF_COLD);
addKillId(SPIRIT_OF_COLD, SPAMPLAND_WATCHMAN, FLAME_DRAKE, FIERY_IFRIT, IKEDIT);
addKillId(WATCHER_OF_ANCIENT_PLEDGE, SWORD_PLAYER_BIEL, HALISHA_ARCHON, FALLEN_ANGEL_NARCISSUS);
registerQuestItems(BITTER_COLD_BEER, ICE_CRYSTAL_FRAGMENT, HALISHA_BADGE);
addCondMinLevel(76, "aiken02.htm");
addCondClassId(ClassId.SWORDSINGER, "aiken03.htm");
}
@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 "aiken02a.htm":
htmltext = "aiken5.htm";
break;
case "aiken01s.htm":
if (st.getCond() == 0)
{
st.startQuest();
st.setCond(1);
}
break;
case "jer2.htm":
if (st.getCond() == 1)
{
st.setCond(2);
}
break;
case "rifken2.htm":
if (st.getCond() == 2)
{
st.setCond(3);
}
break;
case "rifken4.htm":
if (st.getCond() == 4)
{
st.setCond(5);
}
takeItems(player, ICE_CRYSTAL_FRAGMENT, -1);
giveItems(player, BITTER_COLD_BEER, 1);
break;
case "jer4.htm":
if (st.getCond() == 5)
{
st.setCond(6);
}
giveItems(player, AMULET_REZONANSA_PERVIY, 1);
takeItems(player, BITTER_COLD_BEER, -1);
break;
case "stone12.htm":
if (st.getCond() == 6)
{
st.setCond(7);
}
break;
case "stone22.htm":
if (st.getCond() == 8)
{
addSpawn(SWORD_PLAYER_BIEL, npc, true, 0, true);
st.setCond(9);
}
break;
case "stone25.htm":
if (st.getCond() == 10)
{
st.setCond(11);
}
break;
case "jer6.htm":
if (st.getCond() == 11)
{
st.setCond(12);
}
break;
case "stone32.htm":
if (st.getCond() == 14)
{
st.setCond(15);
}
break;
case "stone41.htm":
if (st.getCond() == 15)
{
st.setCond(16);
}
addSpawn(FALLEN_ANGEL_NARCISSUS, npc, true, 0, true);
break;
case "erikrams2.htm":
if (st.getCond() == 16)
{
st.setCond(17);
}
giveItems(player, AMULET_REZONANSA_CHETVERTIY, 1);
break;
case "stone43.htm":
if (st.getCond() == 17)
{
st.setCond(18);
}
break;
case "aiken7.htm":
if (st.getCond() == 18)
{
if ((player.getLevel() < 76) && (player.getBaseClass() != 21))
{
htmltext = "30849-nolvl.htm";
}
addExpAndSp(player, 3100000, 103000);
rewardItems(player, BOOKPEGASUS, 1);
takeItems(player, AMULET_REZONANSA_PERVIY, -1);
takeItems(player, AMULET_REZONANSA_VTOROI, -1);
takeItems(player, AMULET_REZONANSA_TRETIY, -1);
takeItems(player, AMULET_REZONANSA_CHETVERTIY, -1);
takeItems(player, HALISHA_BADGE, -1);
st.exitQuest(false, true);
player.setClassId(100);
player.setBaseClass(100);
player.broadcastUserInfo();
npc.broadcastPacket(new MagicSkillUse(npc, player, 5103, 1, 1000, 0));
}
break;
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance talker)
{
final QuestState qs = getQuestState(talker, true);
String htmltext = getNoQuestMsg(talker);
switch (qs.getState())
{
case State.CREATED:
{
if (npc.getId() == RAIEN)
{
htmltext = "aiken01.htm";
}
break;
}
case State.STARTED:
{
if (npc.getId() == RAIEN)
{
if (qs.getCond() == 1)
{
htmltext = "aiken01s.htm";
}
if (qs.getCond() == 18)
{
htmltext = "aiken6.htm";
}
}
if (npc.getId() == GALLADUCCI)
{
if (qs.getCond() == 1)
{
htmltext = "jer1.htm";
}
if (qs.getCond() == 2)
{
htmltext = "jer2.htm";
}
if (qs.getCond() == 5)
{
htmltext = "jer3.htm";
}
if (qs.getCond() == 6)
{
htmltext = "jer4.htm";
}
}
if (npc.getId() == CERENAS)
{
if (qs.getCond() == 11)
{
htmltext = "jer5.htm";
}
if (qs.getCond() == 12)
{
htmltext = "jer6.htm";
}
}
if (npc.getId() == RIFKEN)
{
if (qs.getCond() == 2)
{
htmltext = "rifken1.htm";
}
if (qs.getCond() == 3)
{
htmltext = "rifken2.htm";
}
if (qs.getCond() == 4)
{
htmltext = "rifken3.htm";
}
}
if (npc.getId() == TABLET_OF_VISION_1)
{
if (qs.getCond() == 6)
{
htmltext = "stone11.htm";
}
if (qs.getCond() == 7)
{
htmltext = "stone12.htm";
}
}
if (npc.getId() == TABLET_OF_VISION_2)
{
if (qs.getCond() == 8)
{
htmltext = "stone21.htm";
}
if (qs.getCond() == 9)
{
htmltext = "stone23.htm";
}
if (qs.getCond() == 10)
{
htmltext = "stone24.htm";
}
if (qs.getCond() == 11)
{
htmltext = "stone25.htm";
}
}
if (npc.getId() == TABLET_OF_VISION_3)
{
if (qs.getCond() == 14)
{
htmltext = "stone31.htm";
}
if (qs.getCond() == 15)
{
htmltext = "stone32.htm";
}
}
if (npc.getId() == TABLET_OF_VISION_4)
{
if (qs.getCond() == 15)
{
htmltext = "stone40.htm";
}
if (qs.getCond() == 17)
{
htmltext = "stone42.htm";
}
if (qs.getCond() == 18)
{
htmltext = "stone43.htm";
}
}
if (npc.getId() == MOON_VOICE_IRENE)
{
if (qs.getCond() == 16)
{
htmltext = "erikrams1.htm";
}
if (qs.getCond() == 17)
{
htmltext = "erikrams2.htm";
}
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(talker);
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isStarted() && Util.checkIfInRange(1500, npc, killer, true))
{
switch (npc.getId())
{
case ICE_MONSTER:
case SPIRIT_OF_A_DROWNED:
case SOUL_OF_COLD:
case FIEND_OF_COLD:
case GHOST_OF_SOLITUDE:
case SPIRIT_OF_COLD:
if (qs.getCond() == 3)
{
if (getQuestItemsCount(killer, ICE_CRYSTAL_FRAGMENT) < 50)
{
giveItemRandomly(killer, npc, ICE_CRYSTAL_FRAGMENT, 1, 50, 50, true);
}
if (getQuestItemsCount(killer, ICE_CRYSTAL_FRAGMENT) >= 50)
{
qs.setCond(4);
}
}
break;
case SWORD_PLAYER_BIEL:
if (qs.getCond() == 9)
{
qs.setCond(10);
}
break;
case SPAMPLAND_WATCHMAN:
case FLAME_DRAKE:
case FIERY_IFRIT:
case IKEDIT:
if (qs.getCond() == 12)
{
if (getQuestItemsCount(killer, HALISHA_BADGE) < 701)
{
giveItemRandomly(killer, npc, HALISHA_BADGE, 1, 701, 50, true);
if (getQuestItemsCount(killer, HALISHA_BADGE) >= 701)
{
addSpawn(HALISHA_ARCHON, npc, true, 0, true);
qs.setCond(13);
}
}
}
break;
case HALISHA_ARCHON:
if (qs.getCond() == 13)
{
if (!hasQuestItems(killer, AMULET_REZONANSA_TRETIY))
{
giveItemRandomly(killer, npc, AMULET_REZONANSA_TRETIY, 1, 1, 50, true);
}
qs.setCond(14);
}
break;
case FALLEN_ANGEL_NARCISSUS:
if (qs.getCond() == 16)
{
addSpawn(MOON_VOICE_IRENE, npc, true, 20000, true);
}
break;
}
if (qs.isCond(7))
{
int count = qs.getInt(KILL_COUNT_VAR);
if (npc.getId() == WATCHER_OF_ANCIENT_PLEDGE)
{
if (count < 20)
{
qs.set(KILL_COUNT_VAR, ++count);
sendNpcLogList(killer);
}
}
if (count >= 20)
{
qs.setCond(8, true);
giveItems(killer, AMULET_REZONANSA_VTOROI, 1);
}
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(7))
{
final Set<NpcLogListHolder> holder = new HashSet<>(1);
// guardian of forbidden knowledge
final int guardiancount = qs.getInt(KILL_COUNT_VAR);
if (guardiancount > 0)
{
holder.add(new NpcLogListHolder(WATCHER_OF_ANCIENT_PLEDGE, false, guardiancount));
}
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@ -0,0 +1,6 @@
<html><body>
Ryan:
<br>
Do you want to become a Sword Muse ?<br>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00072_SagaOfTheSwordMuse aiken01s.htm">Say that you want to become a Sword Muse</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Ryan:
<br>
Eve only gives the power of her songs to the Elves. Do you want to improve further in the way of her teaching? Then you need to make a pilgrimage ... Go to Giran to the arms dealer Galaducci
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>
Ryan:
<br>
My young friend, you do not have enough experience to become a Sword Muse. I see your passion and I hope that you will keep it in your heart, but it is not enough - only through the experience of battle you can acquire the power that will allow you not to deviate from your faith in the era of untruth. <br>
Come back when you are a little older and wiser. When you are ready, I will give you an assignment to check if you are ready to become a Sword Muse. <br>
(Quest for characters whose level is 76 or higher.)
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>
Ryan:
<br>
Have you not already received the title of Sword Muse?
  My brother, you do not have to go through the test of the squire again.
  Your duty is to fight for your faith and the glory of the lord.
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>
Ryan:
<br>
Apparently, you have already chosen your path.
  You do not need to perform the task of the sword muse.
</body></html>

View File

@ -0,0 +1,9 @@
<html><body>
Ryan:
<br>
Do you want to become a Sword Muse?
Well, then you must pass <font color="LEVEL">Saga of Sword Muse</font>,
To prove that you are not just a reckless, quick-tempered warrior, but
  A warrior with the soul of a true sword muse. This is a form of ritual and the process of training,
  Which all those who wish to become sword muse must perform.<br>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>
Ryan:
<br>
Congratulations! You have passed all the tests and are ready to receive the Sword Muse profession!
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00072_SagaOfTheSwordMuse aiken7.htm">Get the Profession</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Ryan:
<br>
Congratulations! You have received the Sword Muse profession!
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>
Irene The Voice of the Moon:
<br>
Thank you! You helped avenge me, I will give you the fourth amulet
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00072_SagaOfTheSwordMuse erikrams2.htm">Get the amulet</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Irene The Voice of the Moon:
<br>
Now activate the last stone
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>
Galaducci:
<br>
Merchant Galaducci the Merchant asks him to bring him some Cold Beer. To get it, go to Gourmet Rifken in Aden.
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00072_SagaOfTheSwordMuse jer2.htm"> I'm going</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Galaducci:
<br>
Merchant Galaducci the Merchant asks him to bring him some Cold Beer. To get it, go to Gourmet Rifken in Aden.
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>
Galaducci:
<br>
Have you brought Cold Beer?
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00072_SagaOfTheSwordMuse jer4.htm">Give</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Galaducci:
<br>
You have received the Resonance Amulet. Activate the Stone of Knowledge to the south of the Tower of Insolence.
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>
Kerenas:
<br>
Have you come for the third Amulet of Resonance?
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00072_SagaOfTheSwordMuse jer6.htm">Yes</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Kerenas:
<br>
Priest Kerenas says that the third Amulet of Resonance is in Archon Halisha.<font color="LEVEL"> To summon him, you need to destroy his minions in the Swollen Tops and collect the Halisha Signs. Destroy these monsters and call Archon Halisha. The aim of the hunt is the Ranger of the Swamp, Burning Drake, Flamey Ifrit, Ikedith</font>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>
Rifken:
<br>
Gourmet Rifken for making a Cold Beer needs <font color="LEVEL">Fragments of the Crystal of Cold.</font>They can be obtained by destroying monsters to the southeast of Aden
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00072_SagaOfTheSwordMuse rifken2.htm">I'll get them !!!!</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Rifken:
<br>
Obtain <font color="LEVEL">Fragments of the Crystal of Cold.</font>.These pieces can be obtained by destroying monsters to the southeast of Aden.<font color="LEVEL">The aim of the hunt is the Ice Monster, the Spirit of the Drowned One, the Soul of Cold, the Phantom of Solitude, the Behemoth of Coldness, the Spirit of Coldness.</font>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>
Rifken:
<br>
Did you get all the ingredients? </font>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00072_SagaOfTheSwordMuse rifken4.htm">Give away Shards.</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Rifken:
<br>
Gourmet Rifken cooked Cold Beer. Return to Giran to the Merchant of Galaducci.
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Stone of knowledge:<br>
You slash like a stone starts to vibrate
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00072_SagaOfTheSwordMuse stone12.htm">Bring the amulet</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>
Stone of knowledge:<br>
You brought the amulet and the inscription appeared on the stone - <font color="LEVEL">The second Amulet of Resonance is at the Keepers of the Ancient Vow next to the second Stone of Knowledge.</font>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Stone of knowledge:<br>
You slash like a stone starts to vibrate
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00072_SagaOfTheSwordMuse stone22.htm">Bring an amulet</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>
Stone of knowledge:<br>
As soon as you came to the stone, the Sword Virtuoso Biel appeared. Obviously, he is trying to stop you. Destroy it.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>
Stone of knowledge:
Now you can go in search of the third stone
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Stone of knowledge:<br>
You slash like a stone starts to vibrate
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00072_SagaOfTheSwordMuse stone25.htm">Bring the amulet</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>
Stone of knowledge:<br>
Activating the stone, you learned that the third Amulet of Resonance is at the Priest of Kerenas in the temple of Einhasad Aden. Get him the Resonance Amulet.
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>
Stone of knowledge:<br>
You slash like a stone starts to vibrate
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00072_SagaOfTheSwordMuse stone32.htm">Bring the amulet</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>
Stone of knowledge:<br>
When the activation of the third Stone of Knowledge ended, he showed the location of the next stone. The fourth Stone of Knowledge is in the area of the Elven Village, and the last Amulet of Resonance is near the stone. Go there.
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>
You came to the stone and he began to vibrate <br>
The last amulet is in <font color="LEVEL">the Fallen Angel of Narcissus</font><br>
Are you ready to fight him?
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00072_SagaOfTheSwordMuse stone41.htm">Yes</button>
</body></html>

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