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

View File

@ -0,0 +1,4 @@
<html><body>High Priest Hollint:<br>
So, are you ready for young Jacob's memorial service?<br>
<a action="bypass -h Quest Q00193_SevenSignsDyingMessage 30191-02.html">"Yes, I am."</a>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>High Priest Hollint:<br>
Good. Now as I trust you're aware, the memorial services aren't actually held here. Unfortunately our time is more often than not spent calming the masses these days, and memorial services aren't particularly good at raising spirits.<br>
Instead we've passed those duties onto the priests of the <font color="LEVEL">Service Altar near Oren's lake</font>. I believe <font color="LEVEL">Priest Cain</font> is ready to receive you actually.<br>
All you need to do is bring him Jacob's necklace....
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>High Priest Hollint:<br>
(Only characters who are level 79 or higher and who have already completed the <font color="LEVEL">Seven Signs and Series of Mysterious Events</font> quests may undertake this quest.)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Hollint:<br>
I've imbued it with a blessing to ward off evil spirits, and safeguard Jacob's passage. <font color="LEVEL">Priest Cain</font> will need it for the service though, so be sure to hand it to him.<br>
Einhasad's grace, my child. Safe travels.
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Sir Gustav Athebaldt:<br>
Aha! The good priest told me about you! As fast as your legs are, nothing spreads faster than gossip my friend!<br>
So you're here for your reward are you? Let's see what I can dig out for you....<br>
<a action="bypass -h Quest Q00193_SevenSignsDyingMessage reward">"Actually I came to offer my services, but I won't say no to a reward."</a>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Sir Gustav Athebaldt:<br>
Ha! Good! I don't trust people who turn down money. Means they've already been paid, usually, and THAT means they aren't in my employ.<br>
Ah yes, here. I believe this should be about right.<br>
Now, there's much I need to tell you, but a man's ears are near useless when his stomach's empty. How about you rest up and get a good fill. Come back when you're good and ready for the next chapter in this messy, messy story, hear?
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Priest Cain:<br>
Men and women come into this world screaming and crying, and leave it silent as a winter's night. Still, they each deserve a moment's pause for reflection and consideration.<br>
You see, some walk through life and leave shallow footprints, while some leave marks as deep as trenches, and are remembered forever. I wonder which sort this Jacob fellow is... and will be.<br>
<a action="bypass -h Quest Q00193_SevenSignsDyingMessage 32569-02.html">"He was just a simple contractor. This necklace was his only valuable possession."</a>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Priest Cain:<br>
Hmm... a contractor? That makes two in two days.<br>
I'm not believer in coincidences, you know. Perhaps there are patterns here that can be discerned--pinpoints that alone mean little, but together map something significant.<br>
This Jacob fellow, where was he based?<br>
<a action="bypass -h Quest Q00193_SevenSignsDyingMessage 32569-03.html">"In Oren."</a>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Priest Cain:<br>
So then Jacob ran the errands between the Merchants of Mammon and Oren, while the man I buried yesterday was from... where was it... ah yes--Goddard.<br>
Hmm. I will have to think on this for a while. I have heard whispers of others being killed too, but will have to speak with my associates to ascertain the rumors that have foundation, and those which do not.<br>
So what part did you play in this act? I assume you are not family.<br>
<a action="bypass -h Quest Q00193_SevenSignsDyingMessage 32569-04.html">"No. I was hired to find Jacob by Crook, his cousin."</a>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Priest Cain:<br>
I see. Well then, I can only offer you my heartfelt thanks for doing far more than you were initially hired to do.<br>
Now I'm afraid I have to ask you to do something more. You see, a memorial service cannot be performed without incense, and incense cannot be made without the full complement of herbs.<br>
We've been burning through much incense than normal, what with all the recent deaths, and now I'm completely out of the <font color="LEVEL">Deadman's Herb</font>. It's a key ingredient.<br>
<a action="bypass -h Quest Q00193_SevenSignsDyingMessage 32569-05.html">"So you want me to pick it?"</a>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Priest Cain:<br>
Pick it? No no--I have a supplier already, only he's a forgetful type and I fear he's just forgotten to send me the package.<br>
I need you to visit my supplier, <font color="LEVEL">Herb Collector Eric</font>, and bring me the herbs that he should have already gathered. He's normally found in the <font color="LEVEL">Enchanted Valley</font>, so I'd suggest you start your search for him there.<br>
Godspeed my friend. Be safe.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Priest Cain:<br>
You'll find <font color="LEVEL">Herb Collector Eric</font> in the <font color="LEVEL">Enchanted Valley</font>.<br>
Don't forget to bring back the herbs I need!
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Priest Cain:<br>
Ah good--I assume that package is full of the herbs Eric collected? Pass it here won't you?<br>
Now we can begin the service. Close your eyes, my child, and pray with me....<br>
<a action="bypass -h Quest Q00193_SevenSignsDyingMessage showmovie">Close your eyes.</a>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Priest Cain:<br>
What was that?! You did see it, right? The black flames billowing out the moment I put Jacob's necklace on the altar?<br>
Something's wrong. Something is very wrong. This has never happened before... now I fear I have released an evil spirit into our very mids....<br>
Look! Behind you!<br>
<a action="bypass -h Quest Q00193_SevenSignsDyingMessage fight">Look around.</a>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Priest Cain:<br>
Oh my! I... I've never seen anything killed before! I don't know quite how I'm supposed to feel.<br>
Come on, Cain--gather yourself--now is not the time for soul-searching! Breathe in... and breathe out. Breathe in... and out....<br>
Okay, that's better. Now let's analyze what just happened. I placed the necklace on the altar, and dark flames erupted in an instant. Now why would that... of course! Dwarven magic!<br>
<a action="bypass -h Quest Q00193_SevenSignsDyingMessage 32569-10.html">"You're going to have to explain this."</a>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Priest Cain:<br>
Dwarves have been able to inscribe weapons and armor with incantations, friend--their skills with metals are unrivalled throughout Aden.<br>
But what if Jacob were inscribe his necklace with something other than an incantation? What if he left a message within his necklace as he lay dying? A message that would pinpoint his killer?<br>
It seems that somehow that creature was able to hide itself in the message, and when the necklace touched the burning incense... we must have released it.<br>
<a action="bypass -h Quest Q00193_SevenSignsDyingMessage 32569-11.html">"I see... I think."</a>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Priest Cain:<br>
While you were gone I did some research, by the by, and I believe the Contractor deaths have something to do with the <font color="LEVEL">Seven Signs</font>.<br>
As I'm sure you know, the forces of dawn wage war with the forces of dusk for control over the three Seals. I may as well tell you now; I belong to the Order of the Dawn. That's actually how I came to be in charge of this place.<br>
You've had first-hand experiences of these murders, as well as the murderers, and I feel I would be remiss in not extending our hand to you. Help us, and we will reward you well.<br>
<a action="bypass -h Quest Q00193_SevenSignsDyingMessage 32569-12.html">"I'll help you, certainly."</a>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Priest Cain:<br>
Thank you, friend! Thank you!<br>
Now I will study the necklace and see if my theory regarding Jacob's message holds water. You should hurry to <font color="LEVEL">Sir Gustav Athebaldt in Oren</font>. He coordinates our efforts, and will be able to tell you far more than I.<br>
Go - hurry, and keep your sword arm free.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Priest Cain:<br>
(Priest Cain is focused on fighting the strange-looking creature. He does not notice you trying to talk to him.)<br>
(Another player is currently speaking with him.)
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Priest Cain:<br>
Don't just stand there! Destroy that... thing!
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Herb Collector Eric:<br>
Now can I do for you, eh? I'm Eric, master gatherer and general do-gooder. Yessir, need something found, just come to me. Need something killed, then... go to someone else. Heh.<br>
Oh lord... you've only gone and made me forget what I was lookin' for, haven't you? I wonder if I still have that letter on me....<br>
<a action="bypass -h Quest Q00193_SevenSignsDyingMessage 32570-02.html">"Actually, I'm here to pick up Priest Cain's shipment. You forgot to send it."</a>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Herb Collector Eric:<br>
Priest Ca... oh! Oh... that's what this package was then.<br>
See, least I remembered to pick the herbs, eh? Picked an' packaged, then just forgot who they were going to.<br>
Well, here you are. Send along my apologies to the good priest, won't you?
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Herb Collector Eric:<br>
Hurry and take the package to Cain, won't you? Lord knows I'm in enough trouble without you loping around here.
</body></html>

View File

@ -0,0 +1,349 @@
/*
* Copyright (C) 2004-2014 L2J DataPack
*
* This file is part of L2J DataPack.
*
* L2J DataPack is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* L2J DataPack is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package quests.Q00193_SevenSignsDyingMessage;
import quests.Q00192_SevenSignsSeriesOfDoubt.Q00192_SevenSignsSeriesOfDoubt;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.enums.QuestSound;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.holders.SkillHolder;
import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.model.quest.State;
import com.l2jserver.gameserver.network.NpcStringId;
import com.l2jserver.gameserver.network.clientpackets.Say2;
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
/**
* Seven Signs, Dying Message (193)
* @author Adry_85
*/
public final class Q00193_SevenSignsDyingMessage extends Quest
{
// NPCs
private static final int SHILENS_EVIL_THOUGHTS = 27343;
private static final int HOLLINT = 30191;
private static final int SIR_GUSTAV_ATHEBALDT = 30760;
private static final int CAIN = 32569;
private static final int ERIC = 32570;
// Items
private static final int JACOBS_NECKLACE = 13814;
private static final int DEADMANS_HERB = 13816;
private static final int SCULPTURE_OF_DOUBT = 14353;
// Misc
private static final int MIN_LEVEL = 79;
private boolean isBusy = false;
// Skill
private static SkillHolder NPC_HEAL = new SkillHolder(4065, 8);
public Q00193_SevenSignsDyingMessage()
{
super(193, Q00193_SevenSignsDyingMessage.class.getSimpleName(), "Seven Signs, Dying Message");
addStartNpc(HOLLINT);
addTalkId(HOLLINT, CAIN, ERIC, SIR_GUSTAV_ATHEBALDT);
addKillId(SHILENS_EVIL_THOUGHTS);
registerQuestItems(JACOBS_NECKLACE, DEADMANS_HERB, SCULPTURE_OF_DOUBT);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if ((npc.getId() == SHILENS_EVIL_THOUGHTS) && "despawn".equals(event))
{
if (!npc.isDead())
{
isBusy = false;
npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.NEXT_TIME_YOU_WILL_NOT_ESCAPE));
npc.deleteMe();
}
return super.onAdvEvent(event, npc, player);
}
final QuestState st = getQuestState(player, false);
if (st == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "30191-02.html":
{
st.giveItems(JACOBS_NECKLACE, 1);
st.startQuest();
htmltext = event;
break;
}
case "32569-02.html":
case "32569-03.html":
case "32569-04.html":
{
if (st.isCond(1) && st.hasQuestItems(JACOBS_NECKLACE))
{
htmltext = event;
}
break;
}
case "32569-05.html":
{
if (st.isCond(1) && st.hasQuestItems(JACOBS_NECKLACE))
{
st.takeItems(JACOBS_NECKLACE, -1);
st.setCond(2, true);
htmltext = event;
}
break;
}
case "showmovie":
{
if (st.isCond(3) && st.hasQuestItems(DEADMANS_HERB))
{
st.takeItems(DEADMANS_HERB, -1);
st.setCond(4, true);
player.showQuestMovie(9);
return "";
}
break;
}
case "32569-10.html":
case "32569-11.html":
{
if (st.isCond(5) && st.hasQuestItems(SCULPTURE_OF_DOUBT))
{
htmltext = event;
}
break;
}
case "32569-12.html":
{
if (st.isCond(5) && st.hasQuestItems(SCULPTURE_OF_DOUBT))
{
st.takeItems(SCULPTURE_OF_DOUBT, -1);
st.setCond(6, true);
htmltext = event;
}
break;
}
case "32570-02.html":
{
if (st.isCond(2))
{
st.giveItems(DEADMANS_HERB, 1);
st.setCond(3, true);
htmltext = event;
}
break;
}
case "fight":
{
htmltext = "32569-14.html";
if (st.isCond(4))
{
isBusy = true;
NpcSay ns = new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.S1_THAT_STRANGER_MUST_BE_DEFEATED_HERE_IS_THE_ULTIMATE_HELP);
ns.addStringParameter(player.getName());
npc.broadcastPacket(ns);
startQuestTimer("heal", 30000 - getRandom(20000), npc, player);
L2MonsterInstance monster = (L2MonsterInstance) addSpawn(SHILENS_EVIL_THOUGHTS, 82425, 47232, -3216, 0, false, 0, false);
monster.broadcastPacket(new NpcSay(monster.getObjectId(), Say2.NPC_ALL, monster.getId(), NpcStringId.YOU_ARE_NOT_THE_OWNER_OF_THAT_ITEM));
monster.setRunning();
monster.addDamageHate(player, 0, 999);
monster.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player);
startQuestTimer("despawn", 300000, monster, null);
}
break;
}
case "heal":
{
if (!npc.isInsideRadius(player, 600, true, false))
{
NpcSay ns = new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.LOOK_HERE_S1_DON_T_FALL_TOO_FAR_BEHIND);
ns.addStringParameter(player.getName());
npc.broadcastPacket(ns);
}
else if (!player.isDead())
{
npc.setTarget(player);
npc.doCast(NPC_HEAL.getSkill());
}
startQuestTimer("heal", 30000 - getRandom(20000), npc, player);
break;
}
case "reward":
{
if (st.isCond(6))
{
if (player.getLevel() >= MIN_LEVEL)
{
st.addExpAndSp(52518015, 5817677);
st.exitQuest(false, true);
htmltext = "30760-02.html";
}
else
{
htmltext = "level_check.html";
}
}
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
{
final L2PcInstance partyMember = getRandomPartyMember(player, 4);
if (partyMember == null)
{
return null;
}
final QuestState st = getQuestState(partyMember, false);
if (npc.isInsideRadius(partyMember, 1500, true, false))
{
st.giveItems(SCULPTURE_OF_DOUBT, 1);
st.playSound(QuestSound.ITEMSOUND_QUEST_FINISH);
st.setCond(5);
}
isBusy = false;
cancelQuestTimers("despawn");
cancelQuestTimers("heal");
npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.S1_YOU_MAY_HAVE_WON_THIS_TIME_BUT_NEXT_TIME_I_WILL_SURELY_CAPTURE_YOU).addStringParameter(partyMember.getName()));
return super.onKill(npc, player, isSummon);
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
QuestState st = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
switch (st.getState())
{
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
case State.CREATED:
{
if (npc.getId() == HOLLINT)
{
st = player.getQuestState(Q00192_SevenSignsSeriesOfDoubt.class.getSimpleName());
htmltext = ((player.getLevel() >= MIN_LEVEL) && (st != null) && (st.isCompleted())) ? "30191-01.htm" : "30191-03.html";
}
break;
}
case State.STARTED:
{
switch (npc.getId())
{
case HOLLINT:
{
if (st.isCond(1) && st.hasQuestItems(JACOBS_NECKLACE))
{
htmltext = "30191-04.html";
}
break;
}
case CAIN:
{
switch (st.getCond())
{
case 1:
{
if (st.hasQuestItems(JACOBS_NECKLACE))
{
htmltext = "32569-01.html";
}
break;
}
case 2:
{
htmltext = "32569-06.html";
break;
}
case 3:
{
if (st.hasQuestItems(DEADMANS_HERB))
{
htmltext = "32569-07.html";
}
break;
}
case 4:
{
if (isBusy)
{
htmltext = "32569-13.html";
}
else
{
htmltext = "32569-08.html";
}
break;
}
case 5:
{
if (st.hasQuestItems(SCULPTURE_OF_DOUBT))
{
htmltext = "32569-09.html";
}
break;
}
}
break;
}
case ERIC:
{
switch (st.getCond())
{
case 2:
{
htmltext = "32570-01.html";
break;
}
case 3:
{
htmltext = "32570-03.html";
break;
}
}
break;
}
case SIR_GUSTAV_ATHEBALDT:
{
if (st.isCond(6))
{
htmltext = "30760-01.html";
}
break;
}
}
break;
}
}
return htmltext;
}
}

View File

@ -0,0 +1,3 @@
<html><body>
Characters who are <font color="LEVEL">level 79 or above</font> may redeem the <font color="LEVEL">Reward for the Current Quest</font>.
</body></html>