Various quest contributions.

Contributed by gigilo1968.
This commit is contained in:
MobiusDev
2017-01-20 22:20:28 +00:00
parent bb675cf036
commit 17f03ff21b
1558 changed files with 27491 additions and 1658 deletions

View File

@@ -1,19 +1,5 @@
149 Primal Mother, Istina
150 Extreme Challenge: Primal Mother Resurrected
180 Infernal Flames Burning in Crystal Prison
181 Devils Strike Back, Advent of Balok
245 Come to Me
459 The Villain of the Underground Mine, Teredor
460 Precious Research Material
462 Stuffed Ancient Heroes
465 We Are Friends
469 Suspicious Gardener
471 Breaking through the Emerald Square
472 Challenge, Steam Corridor
473 In the Coral Garden
482 Recertification of Value
483 Intended Tactic
491 In Nomine Patris
504 Competition for the Bandit Stronghold
655 A Grand Plan for Taming Wild Beasts
744 The Alligator Hunter returns
@@ -22,26 +8,15 @@
747 Defending the Forsaken Plains
748 Endless Revenge
750 Seven Flowers
751 Liberating the Spirits
752 Uncover the Secret
753 Reacting to a Crisis
758 The Fallen King's Men
759 The Dwarven Nightmare Continues
766 10-day Adventure
773 To Calm the Flood
774 Dreaming of peace
775 Retrieving the Chaos Fragment
776 Slay Dark Lord Ekimus
777 Slay Dark Lord Tiat
778 Operation Roaring Flame
779 Utilize the Darkness - Seed of Destruction
780 Utilize the Darkness - Seed of Infinity
781 Utilize the Darkness - Seed of Annihilation
782 Utilize the Darkness - Seed of Hellfire
783 Vestige of the Magic Power
787 The Role of a Watcher
789 Waiting for Pa'agrio
790 Obtaining Ferin's Trust
792 The Superion Giants
800 Hunter Guild Request - Altar of Evil
801 Hunter Guild Request - Gludio Territory
@@ -56,8 +31,6 @@
810 Hunter Guild Request - Isle of Souls
811 Hunter Guild Request - Cemetery
816 Plans to Repair the Stronghold
817 Black Atelia Research
823 Disappeared Race, New Fairy
824 Attack the Command Post
825 Hunter Guild Request - Valley of Saints
826 In Search of the Secret Weapon
@@ -100,35 +73,13 @@
938 The Fisherman's Other Hobby
940 Hunter Guild Request - Atelia Fortress
10298 Wasteland Queen
10303 Crossroads between Light and Darkness
10304 For the Forgotten Heroes
10307 The Corrupted Leader: His Truth
10311 Peaceful Days are Over
10312 Abandoned God's Creature
10315 To the Prison of Darkness
10316 Undecaying Memory of the Past
10353 Certification of Value
10357 Altar of Blood that Awakens Destruction
10370 Menacing Times
10371 Grasp Thy Power
10372 Purgatory Volvere
10373 Exploring the Dimension - Sealing the Dimension
10374 That Place Succubus
10375 Succubus Disciples
10376 Bloody Good Time
10378 Weeding Work
10380 The Executioner's Execution
10388 Conspiracy Behind Doors
10389 The Voice of Authority
10396 Witch of Spores
10407 Let's Go Fishing
10418 The Immortal Pirate King
10446 Hit and Run
10447 Timing is Everything
10452 Is it Edible?
10456 Operation: Rescue
10457 Kefensis' Illusion
10462 Temper a Rusting Blade
10506 Diana's Request
10521 Queen Navari's Letter: Varka Silenos Barracks Achieve Level 76
10522 The Dark Secret of Varka Silenos Reveal the dark secret
@@ -146,24 +97,13 @@
10538 Giant's Evolution Cause of failed evolution
10539 Energy Supply Cutoff Plan Defeat Halisha's Henchman
10540 Thwarting Mimir's Plan Defeating Mimir
10541 Train Like the Real Thing Use Your Weapon
10542 Searching for New Power Preparing for real combat
10543 Shedding Weight A lighter body
10544 Seeker Supplies To the Grocer
10658 Makkum in the Dimension Dimensional Makkum
10703 Bottle of Istina's Soul
10704 Bottle of Octavis' Soul
10705 Bottle of Tauti's Soul
10712 The Minstrel's Song, Part 1
10717 The Minstrel's Song, Part 2
10720 The Minstrel's Song, Part 3
10723 The Minstrel's Song, Part 4
10726 The Minstrel's Song, Part 5
10731 The Minstrel's Song, Part 6
10748 Mysterious Suggestion - 1
10749 Mysterious Suggestion - 2
10796 The Eye that Defied the Gods
10797 Crossing Fate
10801 The Dimensional Warp, Part 1
10802 The Dimensional Warp, Part 2
10803 The Dimensional Warp, Part 3

View File

@@ -0,0 +1,7 @@
<html><head>The officer Limier:<br>
Isthina, Mrs. Seed of Annihilation - such a terrible demon that even among assistants
Shilen these can be counted on the fingers. To cope with such a demon,
need not sacrifice, empty and meaningless, and careful preparation.
You're still not ready for this.<br>
(This quest is available after reaching level 90.)
</body></html>

View File

@@ -0,0 +1,9 @@
<html><head>The officer Limier:<br>
Finally, in the Seeds of Evil were observed spatial fluctuations.
And I have a vague idea of ​​how it all began.
Seeds of Destruction will return to the world of instincts and primitivism, when he wakes up
their true master. The essence of it is not yet known to us. If all goes
still, we lose all hope. <br>
Isthina ... Necessarily have to destroy the monster that controls the Seed of Annihilation.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00149_PrimalMotherIstina 33293-02.htm">Ask about Isthine</button>
</body></html>

View File

@@ -0,0 +1,10 @@
<html><head>The officer Limier:<br>
Return to Life of the Goddess of Death, Shilen - the biggest threat to all life in this world,
and the Seed of Annihilation is no exception. Hostess Seed of Annihilation - Isthina,
one of the Apostles Elder, symbolizing the primitive and decline.
Because of the return of Elder Isthina even awakened her awakening strongly
affected area Seeds. If you do not defeat these demons, you can not
will ensure not only the strength of our position in Graz, but
security of the whole world, is not it?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00149_PrimalMotherIstina 33293-03.htm">Listen more</button>
</body></html>

View File

@@ -0,0 +1,8 @@
<html><head>The officer Limier:<br>
Symbols Isthiny - primitive and intemperance. If hovering her power
over the world, then by all the countries will be fruitful mad terrible monsters.
And by the will of Shilen monsters will attack civilians. It remains to
only plead the mighty intrepid travelers about them to stop Isthinu.<br>
I can turn to you to destroy Isthinu?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00149_PrimalMotherIstina 33293-04.htm">Agree</button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><head>The officer Limier:<br>
How nice that you have decided on it! However, you are alone for nothing
not cope with this huge demon. Be able to resist it,
Only having trained together with experienced teammates. Please
destroy Isthinu and bring me the Signs of Shilen.
</body></html>

View File

@@ -0,0 +1,6 @@
<html><head>The officer Limier:<br>
How nice that you have decided on it! However, you are not alone for
not cope with this huge demon. Be able to resist it,
Only having trained together with experienced teammates. Please
destroy Isthinu and bring me the Signs of Shilen.
</body></html>

View File

@@ -0,0 +1,11 @@
<html><head>The officer Limier:<br>
Thank the gods ... Falling Isthiny very inspired us. Everything, everything
thanks to you! Thank you! We inflict a final defeat gangs Shilen
Seeds of Destruction attack.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00149_PrimalMotherIstina reward_9546">15 Fire Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00149_PrimalMotherIstina reward_9547">15 Water Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00149_PrimalMotherIstina reward_9548">15 Earth Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00149_PrimalMotherIstina reward_9549">15 Wind Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00149_PrimalMotherIstina reward_9550">15 Dark Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00149_PrimalMotherIstina reward_9551">15 Holy Stones</Button>
</body></html>

View File

@@ -0,0 +1,8 @@
<html><head>The officer Limier:<br>
Hopefully, the demon done? We are so happy ...
For us is very important your help in eliminating Isthiny,
which had a considerable weight of 9 Apostles Elder.<br>
All thanks to you all! Thank you! We inflict a final defeat gangs Shilen
Seeds of Destruction attack. We must not forget about the debt.<br>
It's not too useful subject, but I hope it is useful to you.
</body></html>

View File

@@ -0,0 +1,6 @@
<html><head>The officer Limier:<br>
Lair of the Demon, having lost the host, will be thrown into chaos.
We still have hope. Even the opportunity to talk about it is at
us due to your merit. Thank you very much!<br>
(Quest has been completed.)
</body></html>

View File

@@ -0,0 +1,158 @@
/*
* 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.Q00149_PrimalMotherIstina;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
/**
* Primal Mother, Istina (149)
* @URL https://l2wiki.com/Primal_Mother,_Istina
* @author Gigi
*/
public final class Q00149_PrimalMotherIstina extends Quest
{
// NPCs
private static final int RUMIESE = 33293;
private static final int ISTHINA_NORMAL = 29195;
// Item
private static final int SHILENS_MARK = 17589;
private static final int ISTHINA_BRACELET = 19455;
private static final int EAR = 17527;
// Misc
private static final int MIN_LEVEL = 90;
public Q00149_PrimalMotherIstina()
{
super(149);
addStartNpc(RUMIESE);
addTalkId(RUMIESE);
addKillId(ISTHINA_NORMAL);
addCondMinLevel(MIN_LEVEL, "33293-00.htm");
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
String htmltext = null;
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return htmltext;
}
switch (event)
{
case "33293-02.htm":
case "33293-03.htm":
{
htmltext = event;
break;
}
case "33293-04.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "reward_9546":
case "reward_9547":
case "reward_9548":
case "reward_9549":
case "reward_9550":
case "reward_9551":
{
if (qs.isCond(2) && (getQuestItemsCount(player, SHILENS_MARK) >= 1))
{
final int stoneId = Integer.parseInt(event.replaceAll("reward_", ""));
takeItems(player, SHILENS_MARK, 1);
addExpAndSp(player, 833065000, 199935);
giveItems(player, ISTHINA_BRACELET, 1);
giveItems(player, EAR, 10);
giveItems(player, stoneId, 15);
qs.exitQuest(false, true);
}
htmltext = "33293-07.html";
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs == null)
{
return htmltext;
}
final int npcId = npc.getId();
switch (qs.getState())
{
case State.CREATED:
{
if (npcId == RUMIESE)
{
htmltext = "33293-01.htm";
}
break;
}
case State.STARTED:
{
if (qs.isCond(1))
{
htmltext = "33293-05.html";
}
else if (qs.isCond(2))
{
htmltext = "33293-06.html";
}
break;
}
case State.COMPLETED:
{
htmltext = "Complete.html";
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
{
executeForEachPlayer(player, npc, isSummon, true, false);
return super.onKill(npc, player, isSummon);
}
@Override
public void actionForEachPlayer(L2PcInstance player, L2Npc npc, boolean isSummon)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && player.isInsideRadius(npc, Config.ALT_PARTY_RANGE, true, true))
{
giveItems(player, SHILENS_MARK, 1);
qs.setCond(2, true);
}
}
}

View File

@@ -0,0 +1,7 @@
<html><head>The officer Limier:<br>
Isthina, lady of Seeds of Annihilation - such a terrible demon,
that even among these assistants of Shilen can be counted on the fingers.
To cope with such a demon, you need not sacrifice, empty and meaningless,
and careful preparation. You're still not ready for this.<br>
(This quest is available after the 97-level and performance)
</body></html>

View File

@@ -0,0 +1,6 @@
<html><head>The officer Limier:<br>
This is indeed serious. We hope that you and his comrades had thrown Isthinu,
Turning the tide of the war ... But in fact, it was not as easy as in words.
Elder Isthinu again revived. Not only that, she has become even stronger.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00150_ExtremeChallengePrimalMotherResurrected 33293-02.htm">Ask about the resurrected Isthine</button>
</body></html>

View File

@@ -0,0 +1,9 @@
<html><head>The officer Limier:<br>
I think we underestimated the forces of Shilen and her demons. Elder forces that
finally about to wake up, too high even in its current state.
It enormously strong, despite the fact that not fully awakened.
Elder resurrected killed you Isthinu and caused her here. And it was a demon
even stronger! We would have groaned in despair if it were not for you. After all, you already
battled the demon and killed him, did not you?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00150_ExtremeChallengePrimalMotherResurrected 33293-03.htm">Learn more</button>
</body></html>

View File

@@ -0,0 +1,9 @@
<html><head>The officer Limier:<br>
I have heard of such cases before. For example, a case
when appearing on the continent of Aden Snow Queen Freya was also
defeated, but then resurrected, and her strength increased. From there Isthinoy
same. In any case, no matter how foolish this may appear to act
it is necessary to challenge it, but it can only make you with their brave comrades.<br>
I can turn to you to destroy the revitalized Isthinu?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00150_ExtremeChallengePrimalMotherResurrected 33293-04.htm">Agree</button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><head>The officer Limier:<br>
How nice that you have decided on it! However, you are not alone for
not cope with this huge demon. be able to withstand
her only having trained together with experienced teammates.
I ask you to destroy and bring me Isthinu Signs of Shilen.
</body></html>

View File

@@ -0,0 +1,6 @@
<html><head>The officer Limier:<br>
How nice that you have decided on it! However, you are not alone for
not cope with this huge demon. be able to withstand
her only having trained together with experienced teammates.
I ask you to destroy Isthinu and bring me Signs of Shilen.
</body></html>

View File

@@ -0,0 +1,5 @@
<html><head>The officer Limier:<br>
Thank the gods ... Falling Isthiny very inspired us. Thank you! We also plotted
final defeat for Shieln gangs attacking the seeds of destruction.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00150_ExtremeChallengePrimalMotherResurrected 33293-07.html">We did everything possible</button>
</body></html>

View File

@@ -0,0 +1,8 @@
<html><head>The officer Limier:<br>
Hopefully, the demon done? We are so happy ... We care
Your help is crucial in eliminating Isthiny, which had a significant
weight of 9 Apostles Elder. All thanks to you all! Thank you! we also
inflict a final defeat gangs Elder, attacking seeds of destruction.
We must not forget about the debt.<br>
It's not too useful subject, but I hope it is useful to you.
</body></html>

View File

@@ -0,0 +1,5 @@
<html><head>The officer Limier:<br>
I do not know how far the power of Shilen, but we seem to have done everything
they could. I admire your courage. Thank you very much!<br>
(Quest has been completed.)
</body></html>

View File

@@ -0,0 +1,148 @@
/*
* 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.Q00150_ExtremeChallengePrimalMotherResurrected;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
/**
* Extreme Challenge: Primal Mother Resurrected (150)
* @URL https://l2wiki.com/Extreme_Challenge:_Primal_Mother_Resurrected
* @author Gigi
*/
public final class Q00150_ExtremeChallengePrimalMotherResurrected extends Quest
{
// NPCs
private static final int RUMIESE = 33293;
private static final int ISTHINA_EXTRIM = 29196;
// Item
private static final int SHILENS_MARK = 17589;
private static final int BOTTLE_OF_ISTHINAS_SOUL = 34883;
// Misc
private static final int MIN_LEVEL = 97;
public Q00150_ExtremeChallengePrimalMotherResurrected()
{
super(150);
addStartNpc(RUMIESE);
addTalkId(RUMIESE);
addKillId(ISTHINA_EXTRIM);
addCondMinLevel(MIN_LEVEL, "33293-00.htm");
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
String htmltext = null;
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return htmltext;
}
switch (event)
{
case "33293-02.htm":
case "33293-03.htm":
{
htmltext = event;
break;
}
case "33293-04.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "33293-07.html":
{
if (qs.isCond(2) && (getQuestItemsCount(player, SHILENS_MARK) >= 1))
{
takeItems(player, SHILENS_MARK, 1);
giveItems(player, BOTTLE_OF_ISTHINAS_SOUL, 1);
qs.exitQuest(false, true);
}
htmltext = event;
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs == null)
{
return htmltext;
}
final int npcId = npc.getId();
switch (qs.getState())
{
case State.CREATED:
{
if (npcId == RUMIESE)
{
htmltext = "33293-01.htm";
}
break;
}
case State.STARTED:
{
if (qs.isCond(1))
{
htmltext = "33293-05.html";
}
else if (qs.isCond(2))
{
htmltext = "33293-06.html";
}
break;
}
case State.COMPLETED:
{
htmltext = "Complete.html";
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
{
executeForEachPlayer(player, npc, isSummon, true, false);
return super.onKill(npc, player, isSummon);
}
@Override
public void actionForEachPlayer(L2PcInstance player, L2Npc npc, boolean isSummon)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && player.isInsideRadius(npc, Config.ALT_PARTY_RANGE, true, true))
{
giveItems(player, SHILENS_MARK, 1);
qs.setCond(2, true);
}
}
}

View File

@@ -0,0 +1,4 @@
<html><body>Fioren:<br>
The danger posed by Shilen, gradually approaching. If the Queen of Death wake up, I can not imagine to what tip the chaos of this world. And the stronger the influence of Shilen, the stronger her children, dragons. Amid the chaos, the Crystal Maze began to appear powerful demons. I do not know what they are woven intrigue, but there is no reason to doubt that they need to stop.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00180_InfernalFlamesBurningInCrystalPrison 33044-04.htm">Ask about Demons</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fioren:<br>
The world is caught up in evil and cruelty. We have to constantly train and temper ourselves to survive. I see you are still not ready to fully prepared to meet whatever fate has prepared for you.<br>
(This quest is available after the 97th level.)
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fioren:<br>
We must guard against not only the Goddess of Death. Also represent a threat to "Children of Shilen" and the hordes of demons from hell present themselves here. Need your help is growing. Please do not forget about the development and cultivation.<br>
(Quest is completed.)
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fioren:<br>
The Crystal Maze is a kind of prison for those who came not to the liking of Fafurionu. There were these poor horrible torture. However, as we know, has long been Fafurion escaped from these places. Now, Maze became a haven for demons, which has caused Belef. Some of these demons, by the way, supports Shilen in its desire to destroy the world.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00180_InfernalFlamesBurningInCrystalPrison 33044-05.htm">Listen more</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fioren:<br>
Now Crystal Caverns is in the hands caused by demons and Belefom Baylor, who directs. I think they're trying to get by with Fafuriona Fanariona Gems, located in the depths of the Crystal Caverns. And demons and minions Shilen represent a huge threat to us, but if they can awaken Fanarion ... Oh, with this disaster, I think we will not cope. We must stop as soon as Baylor and his demons. Please help me.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00180_InfernalFlamesBurningInCrystalPrison 33044-06.html">Agree</button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Fioren:<br>
I ask you to liquidate the Guardian Baylor, located in the depth of the Crystal Caverns, and then bring it to me signs. We will be able to release Parnas from the influence of demons only if the conduct of these signs cleansing ritual. Know the demon Baylor - not a weak opponent, so bring on the battle with him as much as possible allies.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Fioren:<br>
I ask you to liquidate the Guardian Baylor, located in the depth of the Crystal Caverns, and then bring it to me signs. We will be able to release Parnas from the influence of demons only if the conduct of these signs cleansing ritual. Know the demon Baylor - not a weak opponent, so bring on the battle with him as much as possible allies.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fioren:<br>
So, you came, killing Baylor, along with his henchmen. This is good. Now we clean up Parnassus, having brought by ritual on your characters. We mzgonim of these places are evil spirits and demons.<br>
For his feats you deserve a reward. Here, take God be with you the blessing of Eve...
</body></html>

View File

@@ -0,0 +1,122 @@
/*
* 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.Q00180_InfernalFlamesBurningInCrystalPrison;
import com.l2jmobius.gameserver.enums.QuestSound;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.util.Util;
/**
* @author hlwrave
* @URL https://l2wiki.com/Infernal_Flames_Burning_in_Crystal_Prison
*/
public class Q00180_InfernalFlamesBurningInCrystalPrison extends Quest
{
// Npc
public static final int FIOREN = 33044;
// Monster
public static final int BAYLOR = 29213;
// Misc
public static final int MIN_LEVEL = 97;
// Quest Item
private static final int BELETH_MARK = 17591;
// Item
private static final int ENCHANT_SROLL_R = 22428;
public Q00180_InfernalFlamesBurningInCrystalPrison()
{
super(180);
addStartNpc(FIOREN);
addTalkId(FIOREN);
registerQuestItems(BELETH_MARK);
addKillId(BAYLOR);
addCondMinLevel(MIN_LEVEL, "33044-02.html");
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final String htmltext = event;
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return getNoQuestMsg(player);
}
if ("33044-06.html".equals(event))
{
qs.startQuest();
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
htmltext = "33044-01.htm";
}
else if (qs.isStarted())
{
if (qs.isCond(1))
{
htmltext = "33044-07.html";
}
else if (qs.isCond(2))
{
takeItems(player, BELETH_MARK, -1);
giveItems(player, ENCHANT_SROLL_R, 1);
addExpAndSp(player, 14000000, 6400000);
qs.exitQuest(QuestType.ONE_TIME, true);
htmltext = "33044-08.html";
}
}
else if (qs.isCompleted())
{
htmltext = "33044-03.html";
}
return htmltext;
}
@Override
public void actionForEachPlayer(L2PcInstance player, L2Npc npc, boolean isSummon)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && Util.checkIfInRange(1500, npc, player, false))
{
giveItems(player, BELETH_MARK, 1);
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
qs.setCond(2, true);
}
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
executeForEachPlayer(killer, npc, isSummon, true, false);
return super.onKill(npc, killer, isSummon);
}
}

View File

@@ -0,0 +1,4 @@
<html><body>Fioren:<br>
Situation became even more unfavorable. We believed that after the destruction of Baylor everything will be decided by itself…. However, new problem, it seems, arose. And consists it before the fact that the gem Of Fanarion concealed before the crystal labyrinth easily can pass beside the hands Of Beleth and its demons. If this happens, then it is necessary at the point of us tightly. Indeed Beleth - extremely powerful demon. However, first at the point of you one must battle not with it, but with its myrmidon.<br>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00181_DevilsStrikeBackAdventOfBalok 33044-04.htm">To ask about the new devil</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fioren:<br>
Peace of before the evil and the cruelty. Is necessary to be trained and to harden itself, in order to survive. You, I see, it is not still ready to fully armed meet everything that the fate prepared for you.<br>
(This Quest is accessible after reaching 97 of level and fulfillment of Quest "Flame Hell in the Crystal Prison")
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fioren:<br>
We must be warned not only the goddess of death. They also present threat "Children Of Shillen" and the horde of the demons, which appeared here from hell. The need at the point of your aid all grows. I please not to forget you about the development and the self-perfection.<br>
(Quest is already completed.)
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fioren:<br>
New demon they call Balok. It appeared before the labyrinth immediately after the loss Of Baylor. I, until now, reflect above the fact, who could call him. Certainly, most likely this made Beleth... However, that to sense to consider above this? One should as soon as possible get rid besides this Balok!<br>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00181_DevilsStrikeBackAdventOfBalok 33044-05.htm">To listen to further</button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Fioren:<br>
Only you upset the plans Of Baylor, as appeared new threat before the person Of Balok. Unhappy Parnassus How much still the invasions of demons will be able it to survive?<br>
Oh, great hero, whose might and bravery does not know boundaries… Can I turn down you with the request to destroy the demon Of Balok?<br>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00181_DevilsStrikeBackAdventOfBalok 33044-06.html">To agree</button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Fioren:<br>
It is clear that Balok where is stronger and more dangerous than Baylor, with which you battled earlier. But I believe that for you there is nothing impossible. Indeed you already proved that you do not surrender under no circumstances. Well, then step. But I will meanwhile pray Eva about your victory. By the way After killing Balok, bring, I please, its sign.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Fioren:<br>
It is clear that Balok where is stronger and more dangerous than Baylor, with which you battled earlier. But I believe that for you there is nothing impossible. Indeed you already proved that you do not surrender under no circumstances. Well, then step. But I will meanwhile pray Eva about your victory. By the way After killing Balok, bring, I please, its sign.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fioren:<br>
I greatly worried about you. It does mean, you did destroy Balok and its demons?<br>
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00181_DevilsStrikeBackAdventOfBalok reward">To describe about the destruction Of Balok</button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Fioren:<br>
Thanks! Yes stores you Evan!
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fioren:<br>
You selected the roll of the modification of the armors of rank R, 2 pieces. Here, take, if you please.<br1>
Yes stores you Evan!
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fioren:<br>
You selected sack with the amplifier of rank R, 2 pieces. Here, take, if you please.<br1>
Yes stores you Evan!
</body></html>

View File

@@ -0,0 +1,156 @@
/*
* 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.Q00181_DevilsStrikeBackAdventOfBalok;
import com.l2jmobius.commons.util.Rnd;
import com.l2jmobius.gameserver.enums.QuestSound;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.util.Util;
/**
* @hlwrave
* @URL https://l2wiki.com/Devils_Strike_Back,_Advent_of_Balok
*/
public class Q00181_DevilsStrikeBackAdventOfBalok extends Quest
{
// Npc
private static final int FIOREN = 33044;
// Monster
private static final int BALOK = 29218;
// Items
private static final int CONTRACT = 17592;
private static final int EAR = 17527;
private static final int EWR = 17526;
private static final int POUCH = 34861;
// Misc
public static final int MIN_LEVEL = 97;
public Q00181_DevilsStrikeBackAdventOfBalok()
{
super(181);
addStartNpc(FIOREN);
addTalkId(FIOREN);
addKillId(BALOK);
registerQuestItems(CONTRACT);
addCondMinLevel(MIN_LEVEL, "33044-02.html");
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final String htmltext = event;
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return getNoQuestMsg(player);
}
switch (event)
{
case "33044-06.html":
{
qs.startQuest();
break;
}
case "reward":
{
addExpAndSp(player, 886750000, 414855000);
giveAdena(player, 37128000, true);
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
qs.exitQuest(QuestType.ONE_TIME, true);
switch (Rnd.get(2))
{
case 0:
{
giveItems(player, EWR, 2);
return "33044-09.html";
}
case 1:
{
giveItems(player, EAR, 2);
return "33044-10.html";
}
case 2:
{
giveItems(player, POUCH, 2);
return "33044-11.html";
}
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
switch (npc.getId())
{
case FIOREN:
{
if (qs.isCreated())
{
htmltext = "33044-01.htm";
}
else if (qs.isStarted())
{
if (qs.isCond(1))
{
htmltext = "33044-07.html";
}
else if (qs.isCond(2))
{
htmltext = "33044-08.html";
}
}
else if (qs.isCompleted())
{
htmltext = "33044-03.html";
}
break;
}
}
return htmltext;
}
@Override
public void actionForEachPlayer(L2PcInstance player, L2Npc npc, boolean isSummon)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1) && Util.checkIfInRange(1500, npc, player, false))
{
giveItems(player, CONTRACT, 1);
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
qs.setCond(2, true);
}
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
executeForEachPlayer(killer, npc, isSummon, true, false);
return super.onKill(npc, killer, isSummon);
}
}

View File

@@ -0,0 +1,3 @@
<html><body>Elder Filaur:<br>
What brings you to Schuttgart? Did you come to defeat Teredor?<br>
(Only level 85+ characters may finish)</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Filaur of the Gray Pillar:<br>
I'm guessing you heard about that really vicious one and came to talk to me about it?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00459_TheVillainOfTheUndergroundMineTeredor 30535-02.htm">"Vicious one?"</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Filaur of the Gray Pillar:<br>
<font color="LEVEL">Teredor</font> keeps being sighted around the Dwarven town... They say he's some kind of Earth Wyrm, probably even related to that <font color="LEVEL">Trasken</font> monster who ruined the Dwarven tower. At least he isn't as strong as Trasken.<br>
Still, his poison's potent enough that we had to close all mines, which is threatening a lot of people's livelihood.<br>
That's not even our biggest problem.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00459_TheVillainOfTheUndergroundMineTeredor 30535-03.htm">"What's the bigger problem?"</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Filaur of the Gray Pillar:<br>
Oh, it's so bad it must be an <font color="LEVEL">Omen</font>.<br>
Many years ago, the great <font color="LEVEL">King of Dwarves, Lucien</font>, defeated Trasken and sealed it away. However, now that the Goddess of destruction is growing stronger, many ancient things are starting to wake up, such as this Teredor.<br>
I dread to think what will happen if it regains its full strength.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00459_TheVillainOfTheUndergroundMineTeredor 30535-04.htm">"Yeah, that sounds bad."</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Filaur of the Gray Pillar:<br>
The power of Shilen is closely linked to the power of death, and any deaths caused by these Earth Wyrms will only feed that.<br>
Eventually, the Earth Wyrm will wake completely, and Aden will be flooded with these creations of Shilen.<br>
Schuttgart will certainly fall, and perhaps Aden itself.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00459_TheVillainOfTheUndergroundMineTeredor 30535-05.htm">"Surely we can do something?"</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Elder Filaur:<br>
Well, it would mean a lot to catch <font color="LEVEL">Teredor</font>. It's just one part of thise whole process, but a vital part.<br>
You can't defeat this monster alone, so <font color="LEVEL">gather allies and return to me when you're ready.</font>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Elder Filaur:<br>
You can't defeat this monster alone, so <font color="LEVEL">gather allies and return to me when you're ready.</font>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Elder Filaur:<br>
Did you defeat it? You look a bit battered, but not too bad, considering the task. Thankfully the evil energy seems to be calming down. Maybe that will weaken the Earth Wyrm.<br>
You've done well. Please, take this as a reward, you earned it.<br>
But, Shilen is still strong. So stick around, will you? Come back when you've rested. We can use all the help we can get.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Elder Filaur:<br>
That Teredor creature will be quiet for a while now that we've weakened the Earth Wyrm.<br>
(You can do this quest once a day. It resets each day at 6:30am.)
</body></html>

View File

@@ -0,0 +1,141 @@
/*
* 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.Q00459_TheVillainOfTheUndergroundMineTeredor;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
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.util.Util;
/**
* The Villain of the Underground Mine, Teredor (459)
* @URL https://l2wiki.com/The_Villain_of_the_Underground_Mine,_Teredor
* @VIDEO http://www.dailymotion.com/video/x4hvrk2_quest-the-villain-of-the-underground-mine-teredor-infinity-odyssey_videogames
* @author Gigi
*/
public class Q00459_TheVillainOfTheUndergroundMineTeredor extends Quest
{
// NPCs
private static final int FILAUR = 30535;
// Monster
private static final int TEREDOR = 25785;
// Misc
private static final int MIN_LEVEL = 85;
private static final int PROOF_OF_FIDELITY = 19450;
public Q00459_TheVillainOfTheUndergroundMineTeredor()
{
super(459);
addStartNpc(FILAUR);
addTalkId(FILAUR);
addKillId(TEREDOR);
addCondMinLevel(MIN_LEVEL, "30535-00.html");
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
String htmltext = null;
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return getNoQuestMsg(player);
}
switch (event)
{
case "30535-02.htm":
case "30535-03.htm":
case "30535-04.htm":
{
htmltext = event;
break;
}
case "30535-05.htm":
{
qs.startQuest();
htmltext = event;
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
switch (qs.getState())
{
case State.CREATED:
{
htmltext = "30535-01.htm";
break;
}
case State.STARTED:
{
switch (qs.getCond())
{
case 1:
{
htmltext = "30535-05.html";
break;
}
case 2:
{
giveItems(player, PROOF_OF_FIDELITY, 6);
qs.exitQuest(QuestType.DAILY, true);
htmltext = "30535-07.html";
break;
}
}
break;
}
case State.COMPLETED:
{
if (!qs.isNowAvailable())
{
htmltext = "Complete.html";
}
qs.setState(State.CREATED);
break;
}
}
return htmltext;
}
@Override
public void actionForEachPlayer(L2PcInstance player, L2Npc npc, boolean isSummon)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1) && Util.checkIfInRange(1500, npc, player, false))
{
qs.setCond(2, true);
}
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
executeForEachPlayer(killer, npc, isSummon, true, true);
return super.onKill(npc, killer, isSummon);
}
}

View File

@@ -0,0 +1,4 @@
<html><body>Filaur of the Gray Pillar:<br>
What's that you're holding?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00460_PreciousResearchMaterial 30535-02.htm">"I need to tell you about Amer."</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Elder Filaur:<br>
So Amer is dead, and you're delivering this?<br>
You're a role model to all these promise-breakers who wander round as if they did nothing wrong. We'll forever remember Amer for keeping the promise to the <font color="LEVEL">Gray Pillar Guild</font>.<br>
And, never fear, you will be getting a reward as well.</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Amer:<br>
You need to collect all <font color="LEVEL">20</font> of the <font color="LEVEL">Teredor Egg Fragments</font> before you can make delivery! you need more!<br>
</body></html>

View File

@@ -0,0 +1,135 @@
/*
* 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.Q00460_PreciousResearchMaterial;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
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.util.Util;
/**
* Precious Research Material (460)
* @URL https://l2wiki.com/Precious_Research_Material
* @author Gigi
*/
public class Q00460_PreciousResearchMaterial extends Quest
{
// NPCs
private static final int AMER = 33092;
private static final int FILAUR = 30535;
// Monster
private static final int EGG = 18997;
// Item's
private static final int PROOF_OF_FIDELITY = 19450; //
private static final int TEREDOR_EGG_FRAGMENT = 17735;
// Misc
private static final int MIN_LEVEL = 85;
public Q00460_PreciousResearchMaterial()
{
super(460);
addStartNpc(AMER);
addTalkId(AMER, FILAUR);
addKillId(EGG);
registerQuestItems(TEREDOR_EGG_FRAGMENT);
addCondMinLevel(MIN_LEVEL, "30535-00.html");
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
String htmltext = null;
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return getNoQuestMsg(player);
}
switch (event)
{
case "30535-02.htm":
{
giveItems(player, PROOF_OF_FIDELITY, 3);
qs.exitQuest(QuestType.DAILY, true);
htmltext = event;
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
switch (npc.getId())
{
case AMER:
{
switch (qs.getState())
{
case State.COMPLETED:
{
if (!qs.isNowAvailable())
{
htmltext = getNoQuestMsg(player);
break;
}
qs.setState(State.CREATED);
}
case State.CREATED:
{
htmltext = "33092-01.htm";
qs.isStarted();
break;
}
case State.STARTED:
{
htmltext = "33092-01.htm";
break;
}
}
break;
}
case FILAUR:
{
if (qs.isCond(2) && (getQuestItemsCount(player, TEREDOR_EGG_FRAGMENT) >= 20))
{
htmltext = "30535-01.htm";
}
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc);
if ((qs != null) && qs.isCond(1) && Util.checkIfInRange(1500, npc, qs.getPlayer(), false))
{
if (giveItemRandomly(killer, EGG, 1, 20, 0.7, true))
{
qs.setCond(2, true);
}
}
return super.onKill(npc, killer, isSummon);
}
}

View File

@@ -0,0 +1,5 @@
<html><body>Divine Messenger Lydia:<br>
Your life has not yet reached this page in your destiny.<br>
Prepare yourself for the future, and glory will come to you.<br>
(This quest can only be fulfilled by characters who have completed the Witch of Orbis quest, and who are level 95 or above.)
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Divine Messenger Lydia:<br>
You completed your task well. You should rest for tomorrow's mission.<br>
(This quest can be fulfilled only once per day. This quest timer resets at 6:30 a.m. everyday.)
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Divine Messenger Lydia:<br>
It is time for you to take up the mission that you were born for.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00462_StuffedAncientHeroes 32892-02.htm">"Oh?"</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Divine Messenger Lydia:<br>
This is where ancient heroes were put to rest, though the perpetuity of time degenerated their souls into something less, something pitiful. This weakness allowed <font color="LEVEL">Malevolent Power</font> to infiltrate and corrupt their souls.<br>
Now, we need a pure, untainted power to combat the darkness that threatens to engulf our world. That, my child, is what brought me to you. You are that power.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00462_StuffedAncientHeroes 32892-03.htm">"I see."</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Divine Messenger Lydia:<br>
This is no coincidence. <br1>
We've waited a long time for someone to break the eternal balance and bring peace to this place.<br>
You must fight the lost heroes, remove their darkness from their souls, and set them free once again.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00462_StuffedAncientHeroes 32892-04.htm">"I will do all I can."</Button>
</body></html>

View File

@@ -0,0 +1,7 @@
<html><body>Divine Messenger Lydia:<br>
I am sure you will. <br1>
There is one more thing I must tell you - in order to succeed, you must also fight the most powerful of the fallen heroes. There are ten in total, ten mighty champions that saved the world while they lived, and now seek to damn it as while dead. <br1>
Defeat the ancient heroes, and you'll summon these champions to defend them. As I said, there are 10 in total, but I will only ask that you kill two, if you can. If you can only kill one, then I will understand.<br>
Now, it's time to choose. Will you face the fate in front of you?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00462_StuffedAncientHeroes 32892-05.htm">"I will. It is my destiny."</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Divine Messenger Lydia:<br>
I'll tell you who you need to defeat.<br><font color="LEVEL">Turanclass</font> and <font color="LEVEL">Georgios, Angelos, Theofanis, Steregos, Micalia, Evagelos, Sotiris, Lazaros</font> are all powerful ancient warriors.<br>
Also, <font color="LEVEL">Talicrom</font>, <font color="LEVEL">Micalia, Evangelos, Sotiris, and Lazaros</font> have powerful subordinates and use magic very well.<br>
Well? Your destiny awaits!
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Divine Messenger Lydia:<br>
<font color="LEVEL">Turanclass</font> and <font color="LEVEL">Georgios, Angelos, Theofanis, Steregos, Micalia, Evagelos, Sotiris, Lazaros</font> are all powerful warriors from the past.<br>
Also, <font color="LEVEL">Talicrom</font>, <font color="LEVEL">Micalia, Evangelos, Sotiris, and Lazaros</font> have powerful subordinates and they also use magic very well.<br>
Furthermore, face the fate that will challenge you.
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Divine Messenger Lydia:<br>
You've killed one of them.<br>
What do you want to do now?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00462_StuffedAncientHeroes 32892-08.html">"I'll take the payment and stop for now."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00462_StuffedAncientHeroes 32892-09.html">"I'll go kill more."</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Divine Messenger Lydia:<br>
Okay... <br1>
I can still feel the sadness of the other fallen champions... when will they finally get the rest they deserve?<br>
Anyway, your reward is here. If you have enough of these and want to return to <font color="LEVEL">Ancient City Arcan</font> , you'll want to speak to <font color="LEVEL">Anthony</font> and exchange it for something of significant value.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Divine Messenger Lydia:<br>
Okay. Defeat any one of <font color="LEVEL">Turanclass, Georgios, Angelos, Theofanis, Steregos, Micalia, Evagelos, Sotiris, Lazaros</font>. It doesn't matter who.<br>
Go face your fate.
</body></html>

View File

@@ -0,0 +1,201 @@
/*
* 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.Q00462_StuffedAncientHeroes;
import java.util.HashSet;
import java.util.Set;
import com.l2jmobius.gameserver.enums.QuestSound;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
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 quests.Q10317_OrbisWitch.Q10317_OrbisWitch;
/**
* Stuffed Ancient Heroes (462)
* @URL https://l2wiki.com/Stuffed_Ancient_Heroes
* @author Gigi
*/
public class Q00462_StuffedAncientHeroes extends Quest
{
// NPCs
private static final int LYDIA = 32892;
private static final int ANCIENT_HEROES = 33347;
// Boss
private static final int[] BOSES =
{
25760, // Turanclass
25761, // Georgios
25762, // Angelos
25763, // Theofanis
25764, // Steregos
25766, // Talicrome
25767, // Meikaliya
25768, // Evangelos
25769, // Sotiris
25770 // Lazaros
};
// Item
private static final int CERTIFICATE_OF_HERO = 30386;
// Misc
private static final int MIN_LEVEL = 95;
private static final String KILL_COUNT_VAR = "KillCount";
public Q00462_StuffedAncientHeroes()
{
super(462);
addStartNpc(LYDIA);
addTalkId(LYDIA);
addKillId(BOSES);
addCondMinLevel(MIN_LEVEL, "32892-00.htm");
addCondCompletedQuest(Q10317_OrbisWitch.class.getSimpleName(), "32892-00.htm");
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
String htmltext = null;
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return getNoQuestMsg(player);
}
switch (event)
{
case "32892-02.htm":
case "32892-03.htm":
case "32892-04.htm":
case "32892-09.html":
{
htmltext = event;
break;
}
case "32892-05.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "32892-08.html":
{
final int killCount = qs.getInt(KILL_COUNT_VAR);
if (qs.isCond(2))
{
giveItems(player, CERTIFICATE_OF_HERO, 2);
qs.exitQuest(QuestType.DAILY, true);
}
else if (qs.isCond(3))
{
giveItems(player, CERTIFICATE_OF_HERO, killCount);
qs.exitQuest(QuestType.DAILY, true);
}
htmltext = event;
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (npc.getId() == LYDIA)
{
switch (qs.getState())
{
case State.COMPLETED:
{
if (!qs.isNowAvailable())
{
htmltext = "32892-00a.html";
break;
}
qs.setState(State.CREATED);
}
case State.CREATED:
{
htmltext = "32892-01.htm";
qs.isStarted();
break;
}
case State.STARTED:
{
if (qs.isCond(1))
{
htmltext = "32892-06.html";
}
else if (qs.getCond() > 1)
{
htmltext = "32892-07.html";
}
break;
}
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && (qs.getCond() > 0))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
qs.set(KILL_COUNT_VAR, killCount);
if (killCount == 1)
{
qs.setCond(2, true);
}
else if ((killCount > 1) && (killCount <= 10))
{
qs.setCond(1);
qs.setCond(3);
}
else
{
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
sendNpcLogList(killer);
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && (qs.getCond() > 0))
{
final int killCount = qs.getInt(KILL_COUNT_VAR);
if (killCount > 0)
{
final Set<NpcLogListHolder> holder = new HashSet<>(1);
holder.add(new NpcLogListHolder(ANCIENT_HEROES, false, killCount));
return holder;
}
}
return super.getNpcLogList(player);
}
}

View File

@@ -0,0 +1,5 @@
<html><body>Fairy citizen who ran away from Kimerian:<br>
That Kimerian, it's insane! Crazed!. We can't live this way! We need free ourselves from Kimerians.<br>
You've already helped us before; won't you help us again this time?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00465_WeAreFriends 32921-02.htm">"What kind of help?"</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fairy citizen who ran away from Kimerian:<br>
Please help <font color="LEVEL">2 or more Fairy Citizens</font> who are suffering in the <font color="LEVEL">Fairy Settlement</font>. Then we will help you when are in need. Will you help us?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00465_WeAreFriends 32921-03.htm">Say you will help</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fairy citizen who ran away from Kimerian:<br>
Thank you! You need extend a hand of true friendship.<br>
When you destroy <font color="LEVEL">Cocoons</font> and <font color="LEVEL">Large Cocoons</font> in the Fairy Settlement, you'll encounter <font color="LEVEL">Fairy Citizen</font> in need. Please when you see them!<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fairy citizen who ran away from Kimerian:<br>
Thank you for your help. You - our most loyal friend. <br>
(This quest is available once a day. Update the quest takes place daily at 6:30 am.)<br>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Fairy citizen who ran away from Kimerian:<br>
When you destroy <font color="LEVEL">Cocoons</font> and <font color="LEVEL">Large Cocoons</font> in the Fairy Settlement, you'll encounter <font color="LEVEL">Fairy Citizen</font> in need. Please when you see them!<br>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Fairy citizen who ran away from Kimerian:<br>
Were you able to help the Fairy Citizens? where you able to empathize? to feel our pain? To see our long suffering?<br>
Did the Fairy Citizens give you anything in return?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00465_WeAreFriends 32921-07.html">"I didn't receive anything"</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00465_WeAreFriends 32921-08.html">"You mean this Mark of Friendship"</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fairy citizen who ran away from Kimerian:<br>
I'm sorry you could not meet a representative of my people.<br>
I suggest you go back and look for them well, I know they're in captivity and dreams of freedom.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Fairy citizen who ran away from Kimerian:<br>
That's it! This provers you are indeed a friend to my people. Here, take this Fairy's Leaf Flute. If you find yourself facing Kimerian, and you need our help, use this. And take care until next we meet.
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Fairy citizen:<br>
Are you one who freed me from the cocoon? Oh, thank you, thank you.<br>
Any longer and know I would have been mutated. Did you know that I was here?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00465_WeAreFriends 32923-02.html">"Someone told me to help you"</button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Fairy citizen:<br>
Are you talking about the fairy in the heart of Timiniel? Ooh, good to know he made it out of here safely. Here, take this in recognition of thankful I am.
</body></html>

View File

@@ -0,0 +1,154 @@
/*
* 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.Q00465_WeAreFriends;
import com.l2jmobius.gameserver.enums.QuestSound;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
/**
* We Are Friends (465)
* @URL https://l2wiki.com/We_Are_Friends
* @author Gigi
*/
public class Q00465_WeAreFriends extends Quest
{
// Npc
public static final int FAIRY_CITIZEN = 32921;
public static final int FAIRY_CITIZEN_SPAWN = 32923;
// item
private static final int MARK_OF_FRIENDSHIP = 17377;
private static final int FAIRY_LEAF_FLUTE = 17378;
private static final int CERTIFICATE_OF_PROMISE = 30384;
// Misc
private static final int MIN_LEVEL = 88;
public Q00465_WeAreFriends()
{
super(465);
addStartNpc(FAIRY_CITIZEN);
addTalkId(FAIRY_CITIZEN, FAIRY_CITIZEN_SPAWN);
registerQuestItems(MARK_OF_FRIENDSHIP);
addCondMinLevel(MIN_LEVEL, "no_level.htm");
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "32921-02.htm":
case "32921-07.html":
{
htmltext = event;
break;
}
case "32921-03.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "32923-02.html":
{
giveItems(player, MARK_OF_FRIENDSHIP, 1);
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
if ((getQuestItemsCount(player, MARK_OF_FRIENDSHIP) >= 2))
{
qs.setCond(2, true);
}
htmltext = event;
npc.deleteMe();
break;
}
case "32921-08.html":
{
giveItems(player, FAIRY_LEAF_FLUTE, 1);
giveItems(player, CERTIFICATE_OF_PROMISE, getRandom(1, 4));
qs.exitQuest(QuestType.DAILY, true);
htmltext = event;
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
switch (qs.getState())
{
case State.COMPLETED:
{
if (!qs.isNowAvailable() && (npc.getId() == FAIRY_CITIZEN))
{
htmltext = "32921-04.html";
break;
}
qs.setState(State.CREATED);
}
case State.CREATED:
{
if (npc.getId() == FAIRY_CITIZEN)
{
htmltext = "32921-01.htm";
}
}
break;
case State.STARTED:
{
switch (npc.getId())
{
case FAIRY_CITIZEN:
{
if (qs.isCond(1))
{
htmltext = "32921-05.html";
}
else if (qs.isCond(2))
{
htmltext = "32921-06.html";
}
break;
}
case FAIRY_CITIZEN_SPAWN:
{
if (qs.isCond(1) && (npc.getTitle() == player.getName()))
{
htmltext = "32923-01.html";
break;
}
return null;
}
}
}
}
return htmltext;
}
}

View File

@@ -0,0 +1,5 @@
<html><body>Fairy citizen who ran away from Kimerian:<br>
We both suffer from tyranny Kimeriana! Oh, if we could get rid of his power! <br>
I think you could help us. Do not forget about our troubles, When you have the experience! <br>
(This quest is available after the 88th level.)<br>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Horpina:<br>
Do not know if you happened to be in the central flower garden, located in the garden? There is a prison in which the enchanted creature, called monster Afros. His guard militant Keepers. In the past they were honest and valiant warriors, receive special protection of the gods, but now... I do not even know what will happen to our wiles Magmeldom because they weave.<br>
So I want to appeal to you to...<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00469_SuspiciousGardener 33031-02.htm">"What should I do"</button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Horpina:<br>
In ancient times, the gods instructed Defenders protect the Forerunners. Now, when the ancient gods have sunk into oblivion, Defenders, drawn by the desire for power, intend to use the power of the Forerunners to their advantage. I've heard rumors that some of the precursors appear in the Ancient City Arkan and in the land of Aden, where they sowed chaos and destruction. Nobody knows what will happen even if you do not stop the Defenders.<br>
Our nation is trying to prevent their evil plans. But we need help. I ask, assist - Destroy 30 Defenders.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00469_SuspiciousGardener 33031-03.htm">"Accept"</button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Horpina:<br>
Thank you. If the keepers for fear of retribution, for a time refuse to implement their plans, it will help us win more time. For which we may be able to find a way to counter them.<br>
So, I ask you to kill 30 Arpheus Watchman, living in the garden. </body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Horpina:<br>
Thank you. If the keepers for fear of retribution, for a time refuse to implement their plans, it will help us win more time.<br>
(You can only do this quest once a day. This quest resets at 6:30 AM.)
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Horpina:<br>
You followed my assignment?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00469_SuspiciousGardener 33031-06.html">"Yes, that's evidence."</button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Horpina:<br>
Nice! You are very good you stranger. Here's your reward - not so hot that, but the rich, and so happy... Hopefully after you have rested, we can work together again?<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Horpina:<br>
For which we may be able to find a way to counter them.<br>
So, I ask you to kill 30 Arpheus Watchman, living in the garden.
</body></html>

View File

@@ -0,0 +1,158 @@
/*
* 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.Q00469_SuspiciousGardener;
import com.l2jmobius.gameserver.enums.QuestSound;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.holders.ItemHolder;
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.ExQuestNpcLogList;
import com.l2jmobius.gameserver.util.Util;
/**
* Suspicious Gardener (469)
* @URL https://l2wiki.com/Suspicious_Gardener
* @author Gigi
*/
public class Q00469_SuspiciousGardener extends Quest
{
// Npc
public static final int GOFINA = 33031;
// Monsters
private static final int APHERIUS_LOOKOUT_BEWILDERED = 22964;
// Items
private static final ItemHolder CERTIFICATE_OF_LIFE = new ItemHolder(30385, 2); // Certificate of Life
// Misc
private static final int MIN_LEVEL = 90;
public Q00469_SuspiciousGardener()
{
super(469);
addStartNpc(GOFINA);
addTalkId(GOFINA);
addKillId(APHERIUS_LOOKOUT_BEWILDERED);
addCondMinLevel(MIN_LEVEL, "no_level.html");
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "33031-02.htm":
{
htmltext = event;
break;
}
case "33031-03.htm":
{
qs.startQuest();
qs.set(Integer.toString(APHERIUS_LOOKOUT_BEWILDERED), 0);
htmltext = event;
break;
}
case "33031-06.html":
{
giveItems(player, CERTIFICATE_OF_LIFE);
qs.exitQuest(QuestType.DAILY, true);
htmltext = event;
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (npc.getId() == GOFINA)
{
switch (qs.getState())
{
case State.COMPLETED:
{
if (!qs.isNowAvailable())
{
htmltext = "33031-04.html";
break;
}
qs.setState(State.CREATED);
}
case State.CREATED:
{
htmltext = "33031-01.htm";
}
break;
case State.STARTED:
{
switch (qs.getCond())
{
case 1:
{
htmltext = "33031-07.html";
break;
}
case 2:
{
htmltext = "33031-05.html";
break;
}
}
}
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc);
if ((qs != null) && qs.isCond(1) && Util.checkIfInRange(1500, npc, qs.getPlayer(), false))
{
int kills = qs.getInt(Integer.toString(APHERIUS_LOOKOUT_BEWILDERED));
if (kills < 30)
{
kills++;
qs.set(Integer.toString(APHERIUS_LOOKOUT_BEWILDERED), kills);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
final ExQuestNpcLogList log = new ExQuestNpcLogList(getId());
log.addNpc(APHERIUS_LOOKOUT_BEWILDERED, qs.getInt(Integer.toString(APHERIUS_LOOKOUT_BEWILDERED)));
qs.getPlayer().sendPacket(log);
if ((qs.getInt(Integer.toString(APHERIUS_LOOKOUT_BEWILDERED)) >= 30))
{
qs.setCond(2, true);
}
}
return super.onKill(npc, killer, isSummon);
}
}

View File

@@ -0,0 +1,4 @@
<html><body>Horpina:<br>
Nice! But you are still very young for my order.<br>
(You must be level 90 or above to start this quest.)
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fioren:<br>
I ask you to listen to me. Received a request from the Ivory Tower, and I think that you are best suited for this job.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00471_BreakingThroughTheEmeraldSquare 33044-03.htm">Learn about the request</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fioren:<br>
You have not inspire me enough confidence. I can not charge you a job. Someday you will be able to help us, but that time has not come yet.<br>
(This quest is available after the 97th level.)
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fioren:<br>
The Ivory Tower of great interest to the monsters of Beleth Crystal Maze. Was asked to destroy appeared in Pearlescent Hall Mignon Beleth, jailers Emambifi Hell, and get proof of his death. As you look at it? Will you help me?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00471_BreakingThroughTheEmeraldSquare 33044-04.html">Agree.</button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Fioren:<br>
All right. I repeat. Destroy jailer Hell Emambifi, Mignon Beleth designed to Pearl Hall.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Fioren:<br>
All right. I repeat. Destroy jailer Hell Emambifi, Mignon Beleth designed to Pearl Hall.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fioren:<br>
How is it? You destroyed henchmen Beleth in Pearlescent Hall?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00471_BreakingThroughTheEmeraldSquare 33044-07.html">Report on the destruction</button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Fioren:<br>
I was not wrong when you choose for the job. Here is the promised reward. If you find the time, come back tomorrow. I will have one more request for you.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fioren:<br>
If you find the time, come back tomorrow. I will have one more request for you.<br>
(This activity is available once a day. Quest update occurs daily at 6:30 am.)
</body></html>

View File

@@ -0,0 +1,124 @@
/*
* 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.Q00471_BreakingThroughTheEmeraldSquare;
import com.l2jmobius.gameserver.enums.QuestSound;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.util.Util;
/**
* @author hlwrave
* @URL https://l2wiki.com/Breaking_through_the_Emerald_Square
*/
public class Q00471_BreakingThroughTheEmeraldSquare extends Quest
{
// Npc
public static final int FIOREN = 33044;
// Monster
public static final int EMABIFI = 25881;
// Misc
public static final int MIN_LEVEL = 97;
// Items
public static final int CERTIFICATE = 30387;
public Q00471_BreakingThroughTheEmeraldSquare()
{
super(471);
addStartNpc(FIOREN);
addTalkId(FIOREN);
addKillId(EMABIFI);
addCondMinLevel(MIN_LEVEL, "33044-02.html");
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final String htmltext = event;
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return getNoQuestMsg(player);
}
switch (event)
{
case "33044-04.html":
{
qs.startQuest();
break;
}
case "33044-07.html":
{
giveItems(player, CERTIFICATE, 8);
qs.exitQuest(QuestType.DAILY, true);
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
htmltext = "33044-01.htm";
}
else if (qs.isStarted())
{
if (qs.isCond(1))
{
htmltext = "33044-05.html";
}
else if (qs.isCond(2))
{
htmltext = "33044-06.html";
}
}
else if (qs.isCompleted())
{
htmltext = "33044-08.html";
}
return htmltext;
}
@Override
public void actionForEachPlayer(L2PcInstance player, L2Npc npc, boolean isSummon)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1) && Util.checkIfInRange(1500, npc, player, false))
{
qs.setCond(2, true);
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
executeForEachPlayer(killer, npc, isSummon, true, false);
return super.onKill(npc, killer, isSummon);
}
}

View File

@@ -0,0 +1,4 @@
<html><body>Fioren:<br>
I ask you to listen to me. Received a request from the Ivory Tower, and I think that you are best suited for this job.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00472_ChallengeSteamCorridor 33044-03.htm">Learn about the request</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Fioren:<br>
You have not inspire me enough confidence. I can not charge you a job. Someday you will be able to help us, but that time has not come yet.<br>
(This quest is available after the 97th level.)
</body></html>

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