Some quest fixes from l2jserver.

This commit is contained in:
MobiusDev 2017-08-26 00:35:24 +00:00
parent 9f1002e57d
commit e31b86dd67
46 changed files with 323 additions and 313 deletions

View File

@ -66,7 +66,7 @@ public final class ElcadiasTent extends AbstractInstance
final QuestState Q10293 = talker.getQuestState(Q10293_SevenSignsForbiddenBookOfTheElmoreAdenKingdom.class.getSimpleName());
final QuestState Q10294 = talker.getQuestState(Q10294_SevenSignsToTheMonasteryOfSilence.class.getSimpleName());
final QuestState Q10296 = talker.getQuestState(Q10296_SevenSignsOneWhoSeeksThePowerOfTheSeal.class.getSimpleName());
if (((Q10292 != null) && Q10292.isStarted()) //
if (((Q10292 != null) && (Q10292.getMemoState() > 1) && (Q10292.getMemoState() < 9)) //
|| ((Q10292 != null) && Q10292.isCompleted() && (Q10293 == null)) //
|| ((Q10293 != null) && Q10293.isStarted()) //
|| ((Q10293 != null) && Q10293.isCompleted() && (Q10294 == null)) //

View File

@ -0,0 +1,5 @@
<html><body>Priestess Jaina:<br>
Are you sure you wish to leave the safety of our hall?<br>
<a action="bypass -h Quest HideoutOfTheDawn 32617-02.html">"Yes, I am sure."</a><br>
<a action="bypass -h Quest HideoutOfTheDawn 32617-02a.html">"No, I want to stay in the clan hall."</a>
</body></html>

View File

@ -1,3 +1,3 @@
<html><body>Priestess Jeina:<br>
<html><body>Priestess Jaina:<br>
May Einhasad's blessing go with you....
</body></html>

View File

@ -1,3 +1,3 @@
<html><body>Priestess Jeina:<br>
<html><body>Priestess Jaina:<br>
Please speak with Priest Franz for more details.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Priestess Jaina:<br>
Are you sure you wish to leave the safety of our hall?<br>
<a action="bypass -h Quest HideoutOfTheDawn 32617-01.html">"I want to get out of the clan hall."</a>
</body></html>

View File

@ -16,7 +16,6 @@
*/
package instances.HideoutOfTheDawn;
import com.l2jmobius.gameserver.instancemanager.InstanceManager;
import com.l2jmobius.gameserver.model.Location;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
@ -30,42 +29,54 @@ import instances.AbstractInstance;
*/
public final class HideoutOfTheDawn extends AbstractInstance
{
protected class HotDWorld extends InstanceWorld
{
}
// NPCs
private static final int WOOD = 32593;
private static final int JAINA = 32617;
// Location
private static final Location WOOD_LOC = new Location(-23758, -8959, -5384, 0, 0);
private static final Location JAINA_LOC = new Location(147072, 23743, -1984, 0);
private static final Location WOOD_LOC = new Location(-23758, -8959, -5384);
private static final Location JAINA_LOC = new Location(147072, 23743, -1984);
// Misc
private static final int TEMPLATE_ID = 113;
public HideoutOfTheDawn()
{
super(HideoutOfTheDawn.class.getSimpleName());
addFirstTalkId(JAINA);
addStartNpc(WOOD);
addTalkId(WOOD, JAINA);
}
@Override
public String onTalk(L2Npc npc, L2PcInstance talker)
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
switch (npc.getId())
String htmltext = null;
switch (event)
{
case WOOD:
case "32617-01.html":
case "32617-02a.html":
{
enterInstance(talker, "HideoutOfTheDawn.xml", TEMPLATE_ID);
return "32593-01.htm";
htmltext = event;
break;
}
case JAINA:
case "32617-02.html":
{
final InstanceWorld world = InstanceManager.getInstance().getPlayerWorld(talker);
world.removeAllowed(talker.getObjectId());
talker.setInstanceId(0);
talker.teleToLocation(JAINA_LOC);
return "32617-01.htm";
player.setInstanceId(0);
player.teleToLocation(JAINA_LOC, true);
htmltext = event;
break;
}
case "32593-01.html":
{
enterInstance(player, new HotDWorld(), "HideoutOfTheDawn.xml", TEMPLATE_ID);
htmltext = event;
}
}
return super.onTalk(npc, talker);
return htmltext;
}
@Override

View File

@ -1,4 +1,4 @@
<html><body>Priest Wood:<br>
You know Franz doesn't just meet anyone. In fact I believe you'll be the first new acquaintance of his for quite some time.<br>
<a action="bypass -h npc_%objectId%_Quest HideoutOfTheDawn">"I feel privileged."</a>
<a action="bypass -h Quest HideoutOfTheDawn 32593-01.html">"I feel privileged."</a>
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Priest Wood:<br>
Good! Now... it's time for you to meet the great man yourself.<br>
<a action="bypass -h npc_%objectId%_Quest HideoutOfTheDawn">"I'm ready."</a>
<a action="bypass -h Quest HideoutOfTheDawn 32593-01.html">"I'm ready."</a>
</body></html>

View File

@ -1,5 +0,0 @@
<html><body>Priestess Jeina:<br>
Are you sure you wish to leave the safety of our hall?<br>
<a action="bypass -h npc_%objectId%_Quest HideoutOfTheDawn">Leave the clan hall.</a><br>
<a action="bypass -h Quest Q00198_SevenSignsEmbryo 32617-02.html">Remain in the clan hall.</a>
</body></html>

View File

@ -41,7 +41,6 @@ public final class Q00198_SevenSignsEmbryo extends Quest
private static final int SHILENS_EVIL_THOUGHTS = 27346;
private static final int WOOD = 32593;
private static final int FRANZ = 32597;
private static final int JAINA = 32617;
// Items
private static final int SCULPTURE_OF_DOUBT = 14355;
private static final int DAWNS_BRACELET = 15312;
@ -49,12 +48,11 @@ public final class Q00198_SevenSignsEmbryo extends Quest
private static final int MIN_LEVEL = 79;
private boolean isBusy = false;
// Skill
private static SkillHolder NPC_HEAL = new SkillHolder(4065, 8);
private static final SkillHolder NPC_HEAL = new SkillHolder(4065, 8);
public Q00198_SevenSignsEmbryo()
{
super(198, Q00198_SevenSignsEmbryo.class.getSimpleName(), "Seven Signs, Embryo");
addFirstTalkId(JAINA);
addStartNpc(WOOD);
addTalkId(WOOD, FRANZ);
addKillId(SHILENS_EVIL_THOUGHTS);
@ -163,12 +161,6 @@ public final class Q00198_SevenSignsEmbryo extends Quest
return htmltext;
}
@Override
public String onFirstTalk(L2Npc npc, L2PcInstance player)
{
return "32617-01.html";
}
@Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
{

View File

@ -19,12 +19,10 @@ package quests.Q00269_InventionAmbition;
import java.util.HashMap;
import java.util.Map;
import com.l2jmobius.gameserver.enums.QuestSound;
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;
/**
* Invention Ambition (269)
@ -37,17 +35,17 @@ public final class Q00269_InventionAmbition extends Quest
// Items
private static final int ENERGY_ORE = 10866;
// Monsters
private static final Map<Integer, Integer> MONSTERS = new HashMap<>();
private static final Map<Integer, Double> MONSTERS = new HashMap<>();
static
{
MONSTERS.put(21124, 46); // Red Eye Barbed Bat
MONSTERS.put(21125, 48); // Northern Trimden
MONSTERS.put(21126, 50); // Kerope Werewolf
MONSTERS.put(21127, 64); // Northern Goblin
MONSTERS.put(21128, 66); // Spine Golem
MONSTERS.put(21129, 68); // Kerope Werewolf Chief
MONSTERS.put(21130, 76); // Northern Goblin Leader
MONSTERS.put(21131, 78); // Enchanted Spine Golem
MONSTERS.put(21124, 0.46); // Red Eye Barbed Bat
MONSTERS.put(21125, 0.48); // Northern Trimden
MONSTERS.put(21126, 0.5); // Kerope Werewolf
MONSTERS.put(21127, 0.64); // Northern Goblin
MONSTERS.put(21128, 0.66); // Spine Golem
MONSTERS.put(21129, 0.68); // Kerope Werewolf Chief
MONSTERS.put(21130, 0.76); // Northern Goblin Leader
MONSTERS.put(21131, 0.78); // Enchanted Spine Golem
}
// Misc
private static final int MIN_LVL = 18;
@ -65,33 +63,41 @@ public final class Q00269_InventionAmbition extends Quest
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final QuestState st = getQuestState(player, false);
String htmltext = null;
if (st != null)
if (st == null)
{
switch (event)
return null;
}
String htmltext = null;
switch (event)
{
case "32486-03.htm":
{
case "32486-03.htm":
if (player.getLevel() >= MIN_LVL)
{
htmltext = (player.getLevel() >= MIN_LVL) ? event : null;
break;
htmltext = event;
}
case "32486-04.htm":
break;
}
case "32486-04.htm":
{
if (player.getLevel() >= MIN_LVL)
{
st.startQuest();
htmltext = event;
break;
}
case "32486-07.html":
{
st.exitQuest(true, true);
htmltext = event;
break;
}
case "32486-08.html":
{
htmltext = event;
break;
}
break;
}
case "32486-07.html":
{
st.exitQuest(true, true);
htmltext = event;
break;
}
case "32486-08.html":
{
htmltext = event;
break;
}
}
return htmltext;
@ -100,11 +106,10 @@ public final class Q00269_InventionAmbition extends Quest
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState st = getQuestState(killer, false);
if ((st != null) && (getRandom(100) < MONSTERS.get(npc.getId())))
final QuestState st = getRandomPartyMemberState(killer, -1, 3, npc);
if (st != null)
{
giveItems(killer, ENERGY_ORE, 1);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
giveItemRandomly(st.getPlayer(), npc, ENERGY_ORE, 1, 0, MONSTERS.get(npc.getId()), true);
}
return super.onKill(npc, killer, isSummon);
}
@ -114,30 +119,22 @@ public final class Q00269_InventionAmbition extends Quest
{
final QuestState st = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (st != null)
if (st.isCreated())
{
switch (st.getState())
htmltext = (player.getLevel() >= MIN_LVL) ? "32486-01.htm" : "32486-02.html";
}
else if (st.isStarted())
{
if (hasQuestItems(player, ENERGY_ORE))
{
case State.CREATED:
{
htmltext = (player.getLevel() >= MIN_LVL) ? "32486-01.htm" : "32486-02.html";
break;
}
case State.STARTED:
{
if (hasQuestItems(player, ENERGY_ORE))
{
final long count = getQuestItemsCount(player, ENERGY_ORE);
giveAdena(player, (count * 50) + (count >= 10 ? 2044 : null), true);
takeItems(player, ENERGY_ORE, -1);
htmltext = "32486-06.html";
}
else
{
htmltext = "32486-05.html";
}
break;
}
final long count = getQuestItemsCount(player, ENERGY_ORE);
giveAdena(player, (count * 50) + (count >= 10 ? 2044 : 0), true);
takeItems(player, ENERGY_ORE, -1);
htmltext = "32486-06.html";
}
else
{
htmltext = "32486-05.html";
}
}
return htmltext;

View File

@ -1,3 +0,0 @@
<html><body>Hardin:<br>
Library of Sages holds so many ancient books. I believe you might be able to find whatever you seek there, friend. Please tell Elcadia she should head there first.
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Priest Wood:<br>
You are a difficult person to find. Lord Franz wishes something of you. Can you go and speak with Lord Franz?<br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32593-04.htm">Accept request.</a>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32593-02.htm">"Leave it to me."</a>
</body></html>

View File

@ -1,4 +1,5 @@
<html><body>Priest Wood:<br>
Thanks to you, we've moved another step forward.<br>
(This is an already completed quest.)
Lord Franz requests you, I'm afraid this is an urgent matter. Can you see Lord Franz right away?<br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32593-03.htm">"Yes, right now."</a><br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32593-04.htm">"Maybe later."</a>
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Priest Wood:<br>
There is more you must do first. Return when you can help me.<br>
(Only characters with level 81 or above can take on this quest.)
Very well. If you must, go ahead and meet Lord Franz.<br>
<a action="bypass -h Quest HideoutOfTheDawn 32593-01.html">"I can't wait to see him."</a>
</body></html>

View File

@ -1,5 +1,3 @@
<html><body>Priest Wood:<br>
Lord Franz requests you, I'm afraid this is an urgent matter. Can you see Lord Franz right away?<br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32593-05.htm">I will go right now.</a><br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32593-06.htm">I will go later.</a>
Are you busy right now? Alright, but tell me as soon as you are ready.
</body></html>

View File

@ -1,4 +0,0 @@
<html><body>Priest Wood:<br>
Very well. If you must, go ahead and meet Lord Franz.<br>
<a action="bypass -h npc_%objectId%_Quest HideoutOfTheDawn">Enter.</a>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Priest Wood:<br>
Thanks to you, we've moved another step forward.<br>
(You have already completed this quest.)
</body></html>

View File

@ -1,3 +1,4 @@
<html><body>Priest Wood:<br>
Are you busy right now? Alright, but tell me as soon as you are ready.
There is more you must do first. Return when you can help me.<br>
(Only characters with level 81 or above can take on this quest.)
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Priest Wood:<br>
Alright. Go ahead, you may meet Lord Franz.<br>
<a action="bypass -h npc_%objectId%_Quest HideoutOfTheDawn">Enter.</a>
<a action="bypass -h Quest HideoutOfTheDawn 32593-01.html">"I can't wait to see him."</a>
</body></html>

View File

@ -1,5 +1,5 @@
<html><body>Priest Franz:<br>
I had a good deal of results ever since the research on the Seven Signs was completed. Also, I received information suggesting that the Revolutionaries of Dusk had uncovered more information too. We're going to send someone to uncover their findings, and I want you to accompany him and find out what they know.<br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32597-07.html">"Sure."</a><br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32597-06.html">"Not interested."</a>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32597-03.html">"Sure."</a><br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32597-04.html">"Not interested."</a>
</body></html>

View File

@ -1,3 +1,3 @@
<html><body>Priest Franz:<br>
How did the job I requested go?
It is said that he has been looking for a companion. According to our intelligence, he is staying at a place in the Beast Farm. I want you to go find out what's going on.
</body></html>

View File

@ -1,3 +1,3 @@
<html><body>Priest Franz:<br>
Is the job I requested going well?
Is that so? That's too bad. But, there is nobody other than you who is qualified, so I hope that you think about it again.
</body></html>

View File

@ -1,4 +1,3 @@
<html><body>Priest Franz:<br>
We don't have accurate information regarding the figure dispatched from the Dusk. But, the only thing is, that person is looking for an adventurer who has skills to accompany him. I thought that you would be qualified to work with him because you have skill, no? It was said that he's taken on the job very secretively, so approach him cautiously.<br>
<a action="bypass -h menu_select?ask=10292&reply=2">"Okay."</a>
How did the job I requested go?
</body></html>

View File

@ -1,3 +1,3 @@
<html><body>Priest Franz:<br>
Is that so? That's too bad. But, there is nobody other than you who is qualified, so I hope that you think about it again.
Is the job I requested going well?
</body></html>

View File

@ -1,3 +0,0 @@
<html><body>Priest Franz:<br>
It is said that he has been looking for a companion. According to our intelligence, he is staying at a place in the Beast Farm. I want you to go find out what's going on.
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br>
Are you here to help me? Hm... you have an air of confidence about you, perhaps you will do. But you will have to earn my trust, and I cannot promise your safety. Are you sure you want to become involved?<br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32784-02.html">I will help you.</a>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32784-02.html">"I will help you."</a>
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br>
Alright. If you think you have what it takes, I'll just require a small demonstration. But know this, those who have come before you quickly discovered it takes more than confidence to pass this test. We shall see soon enough if you have what it takes, do you accept?<br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32784-03.html">Accept the test.</a>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32784-03.html">"Yes."</a>
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br>
Really? In a place called Pavel Ruins, northeast from here, are Golems. I've placed tokens on them using a bit of magic. Defeat them and collect the tokens. Your test is to earn 10 tokens.<br>
Alright. Then how about proving yourself by slaying the monsters around here, without venturing too far? The <font color="LEVEL">Farm Bandits and Beast Devourers</font> lurking around the Beast Farm have been marked using my magic. Slay them, and they will give up these marks. Your test is to collect 10 of these marks.<br>
Don't look so glum. Maybe it's harder than you think, but either way I have to know who I'm dealing with.
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br>
You've heard of a place called Pavel Ruins, just northeast from here? There are Golems there, with magically placed tokens hung by yours truly. Your test is to defeat the Golems until you've collected 10 tokens.<br>
You almost look disappointed. I'll take that as a good sign, if your abilities match your confidence.
Hm.. You are better than I thought. But that was just a small test.<br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32784-05.html">"Did I pass the test?"</a>
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br>
Hm.. You are better than I thought. But that was just a small test.<br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32784-06.html">Did I pass the test?</a>
Not yet... This is just a basic test. Let's call it research for a client. Can you demonstrate your abilities so I can see for myself?<br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32784-06.html">"No problem."</a>
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br>
Not yet... This is just a basic test. Let's call it research for a client. Can you demonstrate your abilities so I can see for myself?<br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32784-08.html">Continue with the testing.</a>
Yes, you certainly sound confident in battle... But can you prove it, here and now? What do you think? Are you ready?<br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt SPAWN">"Absolutely!"</a>
</body></html>

View File

@ -1,4 +1,3 @@
<html><body>Abyssal Saintess Elcadia:<br>
I love your confidence, especially if you can back it up. Why not show me firsthand what you can do? Are you ready?<br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt SPAWN">Puh-leez, I'm always ready.</a>
Hey, pay attention to detail. See all these monsters around here? I said defeat them.
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br>
Yes, you certainly sound confident in battle... But can you prove it, here and now? What do you think? Are you ready?<br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt SPAWN">Am I ready? I was BORN ready! Prepare to be impressed.</a>
I love your confidence, especially if you can back it up. Why not show me firsthand what you can do? Are you ready?<br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt SPAWN">"Always!"</a>
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br>
I'm suprised, and not in a good way. What happened to you? Are you better now? Ready to show me your true skills?<br>
<a action="bypass -h menu_select?ask=10292&reply=5">I'm always ready. I had something in my eye last time.</a>
<html><body>Abyssal Saintess Elcadia:<br>
I'm surprised, and not in a good way. What happened to you? Are you better now? Ready to show me your true skills?<br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt SPAWN">"Absolutely!"</a>
</body></html>

View File

@ -1,3 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br>
Alright. Time to see what you are made of, adventurer. Defeat the monsters I have prepared for you, and I'll know there's more to you than just a pretty face.
<html><body>Abyssal Saintess Elcadia:<br>
You are very skilled, and I am not easily impressed... Alright. Consider this a formal request. I'm in need of someone who I can count on in a number of ways, especially someone who can keep a secret. What do you say, are you willing to help me?<br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32784-11.html">"Leave it to me."</a>
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br>
You are very skilled, and I am not easily impressed... Alright. Consider this a formal request. I'm in need of someone who I can count on in a number of ways, especially someone who can keep a secret. What do you say, are you willing to help me?<br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32784-12.html">Accept the request.</a>
My request is simple, just accompany me until I get the information I need. Right now I need information on a place called Embryo. I don't even know if its a place or a person, but whatever it is I need to know.<br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32784-12.html">"Hmm... What do you want me to do?"</a>
</body></html>

View File

@ -1,4 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br>
My request is simple, just accompany me until I get the information I need. Right now I need information on a place called Embryo. I don't even know if its a place or a person, but whatever it is I need to know.<br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32784-13.html">Ask what I should do.</a>
Have you heard of the great wizard Hardin? He used to reside in Ivory Tower, and now he is studying dark magic at Hardin's Academy. He knows more than most will forget in their lifetime, he will know the information we need. I want you to find Hardin.<br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32784-13.html">"Okay. I will go find him now."</a>
</body></html>

View File

@ -1,4 +1,3 @@
<html><body>Abyssal Saintess Elcadia:<br>
Have you heard of the great wizard Hardin? He used to reside in Ivory Tower, and now he is studying dark magic at Hardin's Academy. He knows more than most will forget in their lifetime, he will know the information we need. I want you to find Hardin.<br>
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32784-14.html">Come back after meeting with Hardin.</a>
If you meet Hardin, remember to ask him about Embryo. If he asks who sent you, give him my name. He knows who I am.
</body></html>

View File

@ -1,3 +1,3 @@
<html><body>Abyssal Saintess Elcadia:<br>
If you meet Hardin, remember to ask him about Embryo. If he asks who sent you, give him my name. He knows who I am.
If you meet Hardin, ask him about the word Embryo. When he asks who sent you, give him my name. We're not close, but he knows who I am.
</body></html>

View File

@ -1,3 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br>
If you meet Hardin, ask him about the word Embryo. When he asks who sent you, give him my name. We're not close, but he knows who I am.
Oh? You seem different than when I met you. If you changed your class or if you're in a different state than before, you would have to return to your original state. Said again, I have no intention of talking with you if you're in a subclass condition.<br>
(You cannot complete the quest while in a subclass condition)
</body></html>

View File

@ -1,3 +0,0 @@
<html><body>Abyssal Saintess Elcadia:<br>
Hey, pay attention to detail. See all these monsters around here? I said defeat them.
</body></html>

View File

@ -1,3 +0,0 @@
<html><body>Abyssal Saintess Elcadia:<br>
Oh? You're different than when I first met you. If you changed your class or if you're in a different state, you would have to come back to your original state. (You cannot complete the quest when you're in a sub job condition.)
</body></html>

View File

@ -16,8 +16,6 @@
*/
package quests.Q10292_SevenSignsGirlOfDoubt;
import com.l2jmobius.gameserver.ThreadPoolManager;
import com.l2jmobius.gameserver.enums.QuestSound;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.holders.ItemHolder;
@ -30,6 +28,7 @@ import quests.Q00198_SevenSignsEmbryo.Q00198_SevenSignsEmbryo;
/**
* Seven Signs, Girl of Doubt (10292)
* @author Adry_85
* @since 2.6.0.0
*/
public final class Q10292_SevenSignsGirlOfDoubt extends Quest
{
@ -37,13 +36,14 @@ public final class Q10292_SevenSignsGirlOfDoubt extends Quest
private static final int HARDIN = 30832;
private static final int WOOD = 32593;
private static final int FRANZ = 32597;
private static final int JAINA = 32617;
private static final int ELCADIA = 32784;
// Item
private static final ItemHolder ELCADIAS_MARK = new ItemHolder(17226, 10);
// Misc
private static final int MIN_LEVEL = 81;
private boolean isBusy = false;
// Variables
private static int killCount = 0;
private static final String I_QUEST1 = "I_QUEST1";
// Monster
private static final int CREATURE_OF_THE_DUSK1 = 27422;
private static final int CREATURE_OF_THE_DUSK2 = 27424;
@ -61,7 +61,8 @@ public final class Q10292_SevenSignsGirlOfDoubt extends Quest
{
super(10292, Q10292_SevenSignsGirlOfDoubt.class.getSimpleName(), "Seven Signs, Girl of Doubt");
addStartNpc(WOOD);
addTalkId(WOOD, FRANZ, JAINA, ELCADIA, HARDIN);
addSpawnId(ELCADIA);
addTalkId(WOOD, FRANZ, ELCADIA, HARDIN);
addKillId(MOBS);
addKillId(CREATURE_OF_THE_DUSK1, CREATURE_OF_THE_DUSK2);
registerQuestItems(ELCADIAS_MARK.getId());
@ -70,8 +71,8 @@ public final class Q10292_SevenSignsGirlOfDoubt extends Quest
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
final QuestState st = getQuestState(player, false);
if (st == null)
{
return null;
}
@ -79,33 +80,31 @@ public final class Q10292_SevenSignsGirlOfDoubt extends Quest
String htmltext = null;
switch (event)
{
case "32593-02.htm":
case "32593-04.htm":
case "32593-06.htm":
{
htmltext = event;
break;
}
case "32593-05.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "32597-02.html":
case "32597-06.html":
case "32597-04.html":
{
htmltext = event;
break;
}
case "32597-07.html":
case "32593-03.htm":
{
qs.setCond(2, true);
st.startQuest();
st.setMemoState(1);
htmltext = event;
break;
}
case "32597-03.html":
{
st.setMemoState(2);
st.setCond(2, true);
htmltext = event;
break;
}
case "32784-02.html":
{
if (qs.isCond(2))
if (st.isMemoState(2))
{
htmltext = event;
}
@ -113,81 +112,78 @@ public final class Q10292_SevenSignsGirlOfDoubt extends Quest
}
case "32784-03.html":
{
if (qs.isCond(2))
if (st.isMemoState(2))
{
st.setMemoState(3);
st.setCond(3, true);
htmltext = event;
}
break;
}
case "32784-05.html":
{
if (st.isMemoState(4))
{
qs.setCond(3, true);
htmltext = event;
}
break;
}
case "32784-06.html":
{
if (qs.isCond(4) && hasItem(player, ELCADIAS_MARK))
if (st.isMemoState(4))
{
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
htmltext = event;
}
break;
}
case "32784-08.html":
{
if (qs.isCond(4) && hasItem(player, ELCADIAS_MARK))
{
takeItem(player, ELCADIAS_MARK);
qs.setCond(5, true);
htmltext = event;
}
break;
}
case "32784-12.html":
case "32784-13.html":
{
if (qs.isCond(6))
{
htmltext = event;
}
break;
}
case "32784-14.html":
{
if (qs.isCond(6))
{
qs.setCond(7, true);
st.setMemoState(5);
st.setCond(5, true);
htmltext = event;
}
break;
}
case "SPAWN":
{
if (qs.isCond(5))
if (!npc.getVariables().getBoolean(I_QUEST1, false))
{
isBusy = true;
final L2Npc creature1 = addSpawn(CREATURE_OF_THE_DUSK1, 89440, -238016, -9632, 335, false, 0, false, player.getInstanceId());
creature1.setIsNoRndWalk(true);
final L2Npc creature2 = addSpawn(CREATURE_OF_THE_DUSK2, 89524, -238131, -9632, 56, false, 0, false, player.getInstanceId());
creature2.setIsNoRndWalk(true);
ThreadPoolManager.schedule(() ->
{
creature1.deleteMe();
creature2.deleteMe();
qs.unset("ex");
isBusy = false;
}, 60000);
npc.getVariables().set(I_QUEST1, true);
addSpawn(CREATURE_OF_THE_DUSK1, 89440, -238016, -9632, getRandom(360), false, 0, false, player.getInstanceId());
addSpawn(CREATURE_OF_THE_DUSK2, 89524, -238131, -9632, getRandom(360), false, 0, false, player.getInstanceId());
}
else
{
htmltext = "32784-07.html";
}
break;
}
case "32784-11.html":
case "32784-12.html":
{
if (st.isMemoState(6))
{
htmltext = event;
}
break;
}
case "32784-13.html":
{
if (st.isMemoState(6))
{
st.setMemoState(7);
st.setCond(7, true);
htmltext = event;
}
break;
}
case "30832-02.html":
{
if (qs.isCond(7))
if (st.isMemoState(7))
{
qs.setCond(8, true);
st.setMemoState(8);
st.setCond(8, true);
htmltext = event;
}
break;
}
case "30832-03.html":
{
if (qs.isCond(8))
if (st.isMemoState(8))
{
htmltext = event;
}
@ -200,132 +196,155 @@ public final class Q10292_SevenSignsGirlOfDoubt extends Quest
@Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
{
if (Util.contains(MOBS, npc.getId()))
final QuestState st = getRandomPartyMemberState(player, -1, 3, npc);
if (st != null)
{
final QuestState qs = getRandomPartyMemberState(player, 3, 3, npc);
if ((qs != null) && giveItemRandomly(qs.getPlayer(), npc, ELCADIAS_MARK.getId(), 1, ELCADIAS_MARK.getCount(), 1.0, true))
if (Util.contains(MOBS, npc.getId()))
{
qs.setCond(4, true);
}
}
else
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(5))
{
final int value = qs.getInt("ex") + 1;
qs.set("ex", value);
if (value == 2)
if (giveItemRandomly(st.getPlayer(), npc, ELCADIAS_MARK.getId(), 1, ELCADIAS_MARK.getCount(), 0.7, true) && st.isMemoState(3))
{
qs.setCond(6, true);
st.setCond(4, true);
}
}
else
{
killCount++;
if (killCount == 2)
{
st.setMemoState(6);
st.setCond(6);
}
}
}
return super.onKill(npc, player, isSummon);
}
@Override
public String onSpawn(L2Npc npc)
{
npc.getVariables().set(I_QUEST1, false);
return super.onSpawn(npc);
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
QuestState qs = getQuestState(player, true);
final QuestState st = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
switch (npc.getId())
if (st.isCompleted())
{
case WOOD:
if (npc.getId() == WOOD)
{
if (qs.isCompleted())
{
htmltext = "32593-02.html";
}
else if (qs.isCreated())
{
qs = player.getQuestState(Q00198_SevenSignsEmbryo.class.getSimpleName());
htmltext = ((player.getLevel() >= MIN_LEVEL) && (qs != null) && qs.isCompleted()) ? "32593-01.htm" : "32593-03.htm";
}
else if (qs.isStarted())
{
htmltext = "32593-07.html";
}
break;
htmltext = "32593-05.html";
}
case FRANZ:
}
else if (st.isCreated())
{
final QuestState st1 = player.getQuestState(Q00198_SevenSignsEmbryo.class.getSimpleName());
htmltext = ((player.getLevel() >= MIN_LEVEL) && (st1 != null) && (st1.isCompleted())) ? "32593-01.htm" : "32593-06.htm";
}
else if (st.isStarted())
{
switch (npc.getId())
{
if (qs.isCond(1))
case WOOD:
{
htmltext = "32597-01.html";
}
else if (qs.isCond(2))
{
htmltext = "32597-03.html";
}
break;
}
case ELCADIA:
{
switch (qs.getCond())
{
case 2:
if ((st.getMemoState() > 0) && (st.getMemoState() < 9))
{
htmltext = "32784-01.html";
break;
htmltext = "32593-07.html";
}
case 3:
break;
}
case FRANZ:
{
final int memoState = st.getMemoState();
if (memoState == 1)
{
htmltext = "32784-04.html";
break;
htmltext = "32597-01.html";
}
case 4:
else if ((memoState >= 2) && (memoState < 7))
{
if (hasItem(player, ELCADIAS_MARK))
htmltext = "32597-05.html";
}
else if (memoState == 7)
{
htmltext = "32597-06.html";
}
break;
}
case ELCADIA:
{
switch (st.getMemoState())
{
case 2:
{
playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE);
htmltext = "32784-05.html";
htmltext = "32784-01.html";
break;
}
break;
}
case 5:
{
htmltext = isBusy ? "32784-17.html" : "32784-07.html";
break;
}
case 6:
{
htmltext = "32784-11.html";
break;
}
case 7:
{
htmltext = "32784-15.html";
break;
}
case 8:
{
if (player.isSubClassActive())
case 3:
{
htmltext = "32784-18.html";
if (!hasItem(player, ELCADIAS_MARK))
{
htmltext = "32784-03.html";
}
else
{
takeItem(player, ELCADIAS_MARK);
st.setMemoState(4);
st.setCond(4, true);
htmltext = "32784-04.html";
}
break;
}
else
case 4:
{
addExpAndSp(player, 10000000, 1000000);
qs.exitQuest(false, true);
htmltext = "32784-16.html";
htmltext = "32784-08.html";
break;
}
case 5:
{
htmltext = "32784-09.html";
break;
}
case 6:
{
htmltext = "32784-10.html";
break;
}
case 7:
{
htmltext = "32784-14.html";
break;
}
case 8:
{
if (player.isSubClassActive())
{
htmltext = "32784-15.html";
}
else
{
addExpAndSp(player, 10000000, 1000000);
st.exitQuest(false, true);
htmltext = "32784-16.html";
}
break;
}
break;
}
break;
}
break;
}
case HARDIN:
{
if (qs.isCond(7))
case HARDIN:
{
htmltext = "30832-01.html";
if (st.isMemoState(7))
{
htmltext = "30832-01.html";
}
else if (st.isMemoState(8))
{
htmltext = "30832-03.html";
}
break;
}
else if (qs.isCond(8))
{
htmltext = "30832-04.html";
}
break;
}
}
return htmltext;

View File

@ -1,4 +1,4 @@
<html><body>Priest Wood:<br>
OK, then go and greet Lord Franz. And remember your courtesies.<br>
<a action="bypass -h Quest HideoutOfTheDawn">Enter.</a>
<a action="bypass -h Quest HideoutOfTheDawn 32593-01.html">Enter.</a>
</body></html>