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 Q10293 = talker.getQuestState(Q10293_SevenSignsForbiddenBookOfTheElmoreAdenKingdom.class.getSimpleName());
final QuestState Q10294 = talker.getQuestState(Q10294_SevenSignsToTheMonasteryOfSilence.class.getSimpleName()); final QuestState Q10294 = talker.getQuestState(Q10294_SevenSignsToTheMonasteryOfSilence.class.getSimpleName());
final QuestState Q10296 = talker.getQuestState(Q10296_SevenSignsOneWhoSeeksThePowerOfTheSeal.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)) // || ((Q10292 != null) && Q10292.isCompleted() && (Q10293 == null)) //
|| ((Q10293 != null) && Q10293.isStarted()) // || ((Q10293 != null) && Q10293.isStarted()) //
|| ((Q10293 != null) && Q10293.isCompleted() && (Q10294 == null)) // || ((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.... May Einhasad's blessing go with you....
</body></html> </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. Please speak with Priest Franz for more details.
</body></html> </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; package instances.HideoutOfTheDawn;
import com.l2jmobius.gameserver.instancemanager.InstanceManager;
import com.l2jmobius.gameserver.model.Location; import com.l2jmobius.gameserver.model.Location;
import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
@@ -30,42 +29,54 @@ import instances.AbstractInstance;
*/ */
public final class HideoutOfTheDawn extends AbstractInstance public final class HideoutOfTheDawn extends AbstractInstance
{ {
protected class HotDWorld extends InstanceWorld
{
}
// NPCs // NPCs
private static final int WOOD = 32593; private static final int WOOD = 32593;
private static final int JAINA = 32617; private static final int JAINA = 32617;
// Location // Location
private static final Location WOOD_LOC = new Location(-23758, -8959, -5384, 0, 0); private static final Location WOOD_LOC = new Location(-23758, -8959, -5384);
private static final Location JAINA_LOC = new Location(147072, 23743, -1984, 0); private static final Location JAINA_LOC = new Location(147072, 23743, -1984);
// Misc // Misc
private static final int TEMPLATE_ID = 113; private static final int TEMPLATE_ID = 113;
public HideoutOfTheDawn() public HideoutOfTheDawn()
{ {
super(HideoutOfTheDawn.class.getSimpleName()); super(HideoutOfTheDawn.class.getSimpleName());
addFirstTalkId(JAINA);
addStartNpc(WOOD); addStartNpc(WOOD);
addTalkId(WOOD, JAINA); addTalkId(WOOD, JAINA);
} }
@Override @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); htmltext = event;
return "32593-01.htm"; break;
} }
case JAINA: case "32617-02.html":
{ {
final InstanceWorld world = InstanceManager.getInstance().getPlayerWorld(talker); player.setInstanceId(0);
world.removeAllowed(talker.getObjectId()); player.teleToLocation(JAINA_LOC, true);
talker.setInstanceId(0); htmltext = event;
talker.teleToLocation(JAINA_LOC); break;
return "32617-01.htm"; }
case "32593-01.html":
{
enterInstance(player, new HotDWorld(), "HideoutOfTheDawn.xml", TEMPLATE_ID);
htmltext = event;
} }
} }
return super.onTalk(npc, talker); return htmltext;
} }
@Override @Override

View File

@@ -1,4 +1,4 @@
<html><body>Priest Wood:<br> <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> 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> </body></html>

View File

@@ -1,4 +1,4 @@
<html><body>Priest Wood:<br> <html><body>Priest Wood:<br>
Good! Now... it's time for you to meet the great man yourself.<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> </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 SHILENS_EVIL_THOUGHTS = 27346;
private static final int WOOD = 32593; private static final int WOOD = 32593;
private static final int FRANZ = 32597; private static final int FRANZ = 32597;
private static final int JAINA = 32617;
// Items // Items
private static final int SCULPTURE_OF_DOUBT = 14355; private static final int SCULPTURE_OF_DOUBT = 14355;
private static final int DAWNS_BRACELET = 15312; 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 static final int MIN_LEVEL = 79;
private boolean isBusy = false; private boolean isBusy = false;
// Skill // Skill
private static SkillHolder NPC_HEAL = new SkillHolder(4065, 8); private static final SkillHolder NPC_HEAL = new SkillHolder(4065, 8);
public Q00198_SevenSignsEmbryo() public Q00198_SevenSignsEmbryo()
{ {
super(198, Q00198_SevenSignsEmbryo.class.getSimpleName(), "Seven Signs, Embryo"); super(198, Q00198_SevenSignsEmbryo.class.getSimpleName(), "Seven Signs, Embryo");
addFirstTalkId(JAINA);
addStartNpc(WOOD); addStartNpc(WOOD);
addTalkId(WOOD, FRANZ); addTalkId(WOOD, FRANZ);
addKillId(SHILENS_EVIL_THOUGHTS); addKillId(SHILENS_EVIL_THOUGHTS);
@@ -163,12 +161,6 @@ public final class Q00198_SevenSignsEmbryo extends Quest
return htmltext; return htmltext;
} }
@Override
public String onFirstTalk(L2Npc npc, L2PcInstance player)
{
return "32617-01.html";
}
@Override @Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) 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.HashMap;
import java.util.Map; import java.util.Map;
import com.l2jmobius.gameserver.enums.QuestSound;
import com.l2jmobius.gameserver.model.actor.L2Npc; import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.Quest; import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState; import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
/** /**
* Invention Ambition (269) * Invention Ambition (269)
@@ -37,17 +35,17 @@ public final class Q00269_InventionAmbition extends Quest
// Items // Items
private static final int ENERGY_ORE = 10866; private static final int ENERGY_ORE = 10866;
// Monsters // Monsters
private static final Map<Integer, Integer> MONSTERS = new HashMap<>(); private static final Map<Integer, Double> MONSTERS = new HashMap<>();
static static
{ {
MONSTERS.put(21124, 46); // Red Eye Barbed Bat MONSTERS.put(21124, 0.46); // Red Eye Barbed Bat
MONSTERS.put(21125, 48); // Northern Trimden MONSTERS.put(21125, 0.48); // Northern Trimden
MONSTERS.put(21126, 50); // Kerope Werewolf MONSTERS.put(21126, 0.5); // Kerope Werewolf
MONSTERS.put(21127, 64); // Northern Goblin MONSTERS.put(21127, 0.64); // Northern Goblin
MONSTERS.put(21128, 66); // Spine Golem MONSTERS.put(21128, 0.66); // Spine Golem
MONSTERS.put(21129, 68); // Kerope Werewolf Chief MONSTERS.put(21129, 0.68); // Kerope Werewolf Chief
MONSTERS.put(21130, 76); // Northern Goblin Leader MONSTERS.put(21130, 0.76); // Northern Goblin Leader
MONSTERS.put(21131, 78); // Enchanted Spine Golem MONSTERS.put(21131, 0.78); // Enchanted Spine Golem
} }
// Misc // Misc
private static final int MIN_LVL = 18; private static final int MIN_LVL = 18;
@@ -65,20 +63,29 @@ public final class Q00269_InventionAmbition extends Quest
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{ {
final QuestState st = getQuestState(player, false); final QuestState st = getQuestState(player, false);
String htmltext = null; if (st == null)
if (st != null)
{ {
return null;
}
String htmltext = null;
switch (event) switch (event)
{ {
case "32486-03.htm": case "32486-03.htm":
{ {
htmltext = (player.getLevel() >= MIN_LVL) ? event : null; if (player.getLevel() >= MIN_LVL)
{
htmltext = event;
}
break; break;
} }
case "32486-04.htm": case "32486-04.htm":
{
if (player.getLevel() >= MIN_LVL)
{ {
st.startQuest(); st.startQuest();
htmltext = event; htmltext = event;
}
break; break;
} }
case "32486-07.html": case "32486-07.html":
@@ -93,18 +100,16 @@ public final class Q00269_InventionAmbition extends Quest
break; break;
} }
} }
}
return htmltext; return htmltext;
} }
@Override @Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{ {
final QuestState st = getQuestState(killer, false); final QuestState st = getRandomPartyMemberState(killer, -1, 3, npc);
if ((st != null) && (getRandom(100) < MONSTERS.get(npc.getId()))) if (st != null)
{ {
giveItems(killer, ENERGY_ORE, 1); giveItemRandomly(st.getPlayer(), npc, ENERGY_ORE, 1, 0, MONSTERS.get(npc.getId()), true);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
} }
return super.onKill(npc, killer, isSummon); return super.onKill(npc, killer, isSummon);
} }
@@ -114,21 +119,16 @@ public final class Q00269_InventionAmbition extends Quest
{ {
final QuestState st = getQuestState(player, true); final QuestState st = getQuestState(player, true);
String htmltext = getNoQuestMsg(player); String htmltext = getNoQuestMsg(player);
if (st != null) if (st.isCreated())
{
switch (st.getState())
{
case State.CREATED:
{ {
htmltext = (player.getLevel() >= MIN_LVL) ? "32486-01.htm" : "32486-02.html"; htmltext = (player.getLevel() >= MIN_LVL) ? "32486-01.htm" : "32486-02.html";
break;
} }
case State.STARTED: else if (st.isStarted())
{ {
if (hasQuestItems(player, ENERGY_ORE)) if (hasQuestItems(player, ENERGY_ORE))
{ {
final long count = getQuestItemsCount(player, ENERGY_ORE); final long count = getQuestItemsCount(player, ENERGY_ORE);
giveAdena(player, (count * 50) + (count >= 10 ? 2044 : null), true); giveAdena(player, (count * 50) + (count >= 10 ? 2044 : 0), true);
takeItems(player, ENERGY_ORE, -1); takeItems(player, ENERGY_ORE, -1);
htmltext = "32486-06.html"; htmltext = "32486-06.html";
} }
@@ -136,9 +136,6 @@ public final class Q00269_InventionAmbition extends Quest
{ {
htmltext = "32486-05.html"; htmltext = "32486-05.html";
} }
break;
}
}
} }
return htmltext; 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> <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> 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> </body></html>

View File

@@ -1,4 +1,5 @@
<html><body>Priest Wood:<br> <html><body>Priest Wood:<br>
Thanks to you, we've moved another step forward.<br> Lord Franz requests you, I'm afraid this is an urgent matter. Can you see Lord Franz right away?<br>
(This is an already completed quest.) <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> </body></html>

View File

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

View File

@@ -1,5 +1,3 @@
<html><body>Priest Wood:<br> <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> Are you busy right now? Alright, but tell me as soon as you are ready.
<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>
</body></html> </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> <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> </body></html>

View File

@@ -1,4 +1,4 @@
<html><body>Priest Wood:<br> <html><body>Priest Wood:<br>
Alright. Go ahead, you may meet Lord Franz.<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> </body></html>

View File

@@ -1,5 +1,5 @@
<html><body>Priest Franz:<br> <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> 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-03.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-04.html">"Not interested."</a>
</body></html> </body></html>

View File

@@ -1,3 +1,3 @@
<html><body>Priest Franz:<br> <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> </body></html>

View File

@@ -1,3 +1,3 @@
<html><body>Priest Franz:<br> <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> </body></html>

View File

@@ -1,4 +1,3 @@
<html><body>Priest Franz:<br> <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> How did the job I requested go?
<a action="bypass -h menu_select?ask=10292&reply=2">"Okay."</a>
</body></html> </body></html>

View File

@@ -1,3 +1,3 @@
<html><body>Priest Franz:<br> <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> </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> <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> 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> </body></html>

View File

@@ -1,4 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br> <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> 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> </body></html>

View File

@@ -1,4 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br> <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. 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> </body></html>

View File

@@ -1,4 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br> <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> Hm.. You are better than I thought. But that was just a small test.<br>
You almost look disappointed. I'll take that as a good sign, if your abilities match your confidence. <a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32784-05.html">"Did I pass the test?"</a>
</body></html> </body></html>

View File

@@ -1,4 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br> <html><body>Abyssal Saintess Elcadia:<br>
Hm.. You are better than I thought. But that was just a small test.<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-06.html">Did I pass the test?</a> <a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32784-06.html">"No problem."</a>
</body></html> </body></html>

View File

@@ -1,4 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br> <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> 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 32784-08.html">Continue with the testing.</a> <a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt SPAWN">"Absolutely!"</a>
</body></html> </body></html>

View File

@@ -1,4 +1,3 @@
<html><body>Abyssal Saintess Elcadia:<br> <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> Hey, pay attention to detail. See all these monsters around here? I said defeat them.
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt SPAWN">Puh-leez, I'm always ready.</a>
</body></html> </body></html>

View File

@@ -1,4 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br> <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> 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">Am I ready? I was BORN ready! Prepare to be impressed.</a> <a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt SPAWN">"Always!"</a>
</body></html> </body></html>

View File

@@ -1,4 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br> <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> 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 menu_select?ask=10292&reply=5">I'm always ready. I had something in my eye last time.</a> <a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt SPAWN">"Absolutely!"</a>
</body></html> </body></html>

View File

@@ -1,3 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br> <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. 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> </body></html>

View File

@@ -1,4 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br> <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> 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">Accept the request.</a> <a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32784-12.html">"Hmm... What do you want me to do?"</a>
</body></html> </body></html>

View File

@@ -1,4 +1,4 @@
<html><body>Abyssal Saintess Elcadia:<br> <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> 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">Ask what I should do.</a> <a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32784-13.html">"Okay. I will go find him now."</a>
</body></html> </body></html>

View File

@@ -1,4 +1,3 @@
<html><body>Abyssal Saintess Elcadia:<br> <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> 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.
<a action="bypass -h Quest Q10292_SevenSignsGirlOfDoubt 32784-14.html">Come back after meeting with Hardin.</a>
</body></html> </body></html>

View File

@@ -1,3 +1,3 @@
<html><body>Abyssal Saintess Elcadia:<br> <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> </body></html>

View File

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

View File

@@ -1,4 +1,4 @@
<html><body>Priest Wood:<br> <html><body>Priest Wood:<br>
OK, then go and greet Lord Franz. And remember your courtesies.<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> </body></html>