Parcourir la source

BETA: Missing quest '''Seven Signs, Embryo''' (198).

	'''Note:''' Epilogue feature.
Adry_85 il y a 12 ans
Parent
commit
d2716702ef
27 fichiers modifiés avec 597 ajouts et 2 suppressions
  1. 5 0
      L2J_DataPack_BETA/dist/game/data/html/default/32597.htm
  2. 13 0
      L2J_DataPack_BETA/dist/game/data/instances/HideoutOfTheDawn.xml
  3. 3 2
      L2J_DataPack_BETA/dist/game/data/scripts.cfg
  4. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/instances/HideoutOfTheDawn/32593-01.htm
  5. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/instances/HideoutOfTheDawn/32617-01.htm
  6. 177 0
      L2J_DataPack_BETA/dist/game/data/scripts/instances/HideoutOfTheDawn/HideoutOfTheDawn.java
  7. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32593-01.htm
  8. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32593-02.html
  9. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32593-03.html
  10. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32593-04.html
  11. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32593-05.html
  12. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-01.html
  13. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-02.html
  14. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-03.html
  15. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-04.html
  16. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-05.html
  17. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-06.html
  18. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-07.html
  19. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-08.html
  20. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-09.html
  21. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-10.html
  22. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-11.html
  23. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-12.html
  24. 5 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32617-01.html
  25. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32617-02.html
  26. 321 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/Q00198_SevenSignsEmbryo.java
  27. 2 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/level_check.html

+ 5 - 0
L2J_DataPack_BETA/dist/game/data/html/default/32597.htm

@@ -0,0 +1,5 @@
+<html><body>
+Priest Franz:<br>
+So, we meet at last! I am Franz, it's my sincerest pleasure to meet you, my child.<br>
+<a action="bypass -h npc_%objectId%_Quest">Quest</a>
+</body></html>

+ 13 - 0
L2J_DataPack_BETA/dist/game/data/instances/HideoutOfTheDawn.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<instance name="Hideout of the Dawn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/instance.xsd">
+	<activityTime val="30" />
+	<allowSummon val="false" />
+	<emptyDestroyTime val="30" />
+	<spawnPoint spawnX="147072" spawnY="23743" spawnZ="-1984" />
+	<spawnlist>
+		<!-- Franz -->
+		<spawn npcId="32597" x="-23976" y="-8964" z="-5392" heading="0" respawn="60" />
+		<!-- Jaina -->
+		<spawn npcId="32617" x="-23961" y="-8892" z="-5392" heading="0" respawn="60" />
+	</spawnlist>
+</instance>

+ 3 - 2
L2J_DataPack_BETA/dist/game/data/scripts.cfg

@@ -254,6 +254,7 @@ instances/DarkCloudMansion/DarkCloudMansion.java
 instances/CrystalCaverns/CrystalCaverns.java
 instances/DemonPrinceFloor/DemonPrinceFloor.java
 instances/HellboundTown/HellboundTown.java
+instances/HideoutOfTheDawn/HideoutOfTheDawn.java
 instances/Kamaloka/Kamaloka.java
 instances/Pailaka/PailakaSongOfIceAndFire.java
 instances/Pailaka/PailakaDevilsLegacy.java
@@ -433,8 +434,8 @@ quests/Q00193_SevenSignsDyingMessage/Q00193_SevenSignsDyingMessage.java
 quests/Q00194_SevenSignsMammonsContract/Q00194_SevenSignsMammonsContract.java
 #quests/Q00195_SevenSignsSecretRitualOfThePriests/Q00195_SevenSignsSecretRitualOfThePriests.java
 #quests/Q00196_SevenSignsSealOfTheEmperor/Q00196_SevenSignsSealOfTheEmperor.java
-#quests/Q00197_SevenSignsTheSacredBookOfSeal/Q00197_SevenSignsTheSacredBookOfSeal.java
-#quests/Q00198_SevenSignsEmbryo/Q00198_SevenSignsEmbryo.java
+quests/Q00197_SevenSignsTheSacredBookOfSeal/Q00197_SevenSignsTheSacredBookOfSeal.java
+quests/Q00198_SevenSignsEmbryo/Q00198_SevenSignsEmbryo.java
 quests/211_TrialOfChallenger/__init__.py
 quests/212_TrialOfDuty/__init__.py
 quests/213_TrialOfSeeker/__init__.py

+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/instances/HideoutOfTheDawn/32593-01.htm

@@ -0,0 +1,3 @@
+<html><body>Priest Wood:<br>
+Spare no detail when you recount your story! The smallest unturned stone can still hide the greatest of treasures!
+</body></html>

+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/instances/HideoutOfTheDawn/32617-01.htm

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

+ 177 - 0
L2J_DataPack_BETA/dist/game/data/scripts/instances/HideoutOfTheDawn/HideoutOfTheDawn.java

@@ -0,0 +1,177 @@
+package instances.HideoutOfTheDawn;
+
+import com.l2jserver.gameserver.ai.CtrlIntention;
+import com.l2jserver.gameserver.instancemanager.InstanceManager;
+import com.l2jserver.gameserver.instancemanager.InstanceManager.InstanceWorld;
+import com.l2jserver.gameserver.model.actor.L2Character;
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.effects.L2Effect;
+import com.l2jserver.gameserver.model.quest.Quest;
+import com.l2jserver.gameserver.model.quest.QuestState;
+import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.network.SystemMessageId;
+
+/**
+ * @author Adry_85
+ */
+public class HideoutOfTheDawn extends Quest
+{
+	private class HoDWorld extends InstanceWorld
+	{
+		public long[] storeTime =
+		{
+			0,
+			0
+		};
+		
+		public HoDWorld()
+		{
+		}
+	}
+	
+	private static final int INSTANCEID = 113;
+	private static final int WOOD = 32593;
+	private static final int JAINA = 32617;
+	
+	public class teleCoord
+	{
+		int instanceId;
+		int x;
+		int y;
+		int z;
+	}
+	
+	public HideoutOfTheDawn(int questId, String name, String descr)
+	{
+		super(questId, name, descr);
+		
+		addStartNpc(WOOD);
+		addTalkId(WOOD, JAINA);
+	}
+	
+	@Override
+	public String onTalk(L2Npc npc, L2PcInstance player)
+	{
+		QuestState st = player.getQuestState(getName());
+		if (st == null)
+		{
+			st = newQuestState(player);
+		}
+		
+		switch (npc.getNpcId())
+		{
+			case WOOD:
+			{
+				teleCoord tele = new teleCoord();
+				tele.x = -23758;
+				tele.y = -8959;
+				tele.z = -5384;
+				enterInstance(player, "HideoutOfTheDawn.xml", tele);
+				return "32593-01.htm";
+			}
+			
+			case JAINA:
+			{
+				InstanceManager.InstanceWorld world = InstanceManager.getInstance().getPlayerWorld(player);
+				world.allowed.remove(world.allowed.indexOf(Integer.valueOf(player.getObjectId())));
+				teleCoord tele = new teleCoord();
+				tele.instanceId = 0;
+				tele.x = 147072;
+				tele.y = 23743;
+				tele.z = -1984;
+				exitInstance(player, tele);
+				return "32617-01.htm";
+			}
+		}
+		
+		return "";
+	}
+	
+	private void teleportplayer(L2PcInstance player, teleCoord teleto)
+	{
+		removeBuffs(player);
+		player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
+		player.setInstanceId(teleto.instanceId);
+		player.teleToLocation(teleto.x, teleto.y, teleto.z);
+	}
+	
+	protected int enterInstance(L2PcInstance player, String template, teleCoord teleto)
+	{
+		int instanceId = 0;
+		// check for existing instances for this player
+		InstanceWorld world = InstanceManager.getInstance().getPlayerWorld(player);
+		// existing instance
+		if (world != null)
+		{
+			if (!(world instanceof HoDWorld))
+			{
+				player.sendPacket(SystemMessageId.ALREADY_ENTERED_ANOTHER_INSTANCE_CANT_ENTER);
+				return 0;
+			}
+			teleto.instanceId = world.instanceId;
+			teleportplayer(player, teleto);
+			return instanceId;
+		}
+		// New instance
+		instanceId = InstanceManager.getInstance().createDynamicInstance(template);
+		world = new HoDWorld();
+		world.instanceId = instanceId;
+		world.templateId = INSTANCEID;
+		world.status = 0;
+		((HoDWorld) world).storeTime[0] = System.currentTimeMillis();
+		InstanceManager.getInstance().addWorld(world);
+		_log.info("SevenSign started " + template + " Instance: " + instanceId + " created by player: " + player.getName());
+		// teleport players
+		teleto.instanceId = instanceId;
+		teleportplayer(player, teleto);
+		world.allowed.add(player.getObjectId());
+		
+		return instanceId;
+	}
+	
+	protected void exitInstance(L2PcInstance player, teleCoord tele)
+	{
+		player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
+		player.setInstanceId(0);
+		player.teleToLocation(tele.x, tele.y, tele.z);
+	}
+	
+	private static final void removeBuffs(L2Character ch)
+	{
+		for (L2Effect e : ch.getAllEffects())
+		{
+			if (e == null)
+			{
+				continue;
+			}
+			L2Skill skill = e.getSkill();
+			if (skill.isDebuff() || skill.isStayAfterDeath())
+			{
+				continue;
+			}
+			e.exit();
+		}
+		if (ch.getSummon() != null)
+		{
+			for (L2Effect e : ch.getSummon().getAllEffects())
+			{
+				if (e == null)
+				{
+					continue;
+				}
+				L2Skill skill = e.getSkill();
+				if (skill.isDebuff() || skill.isStayAfterDeath())
+				{
+					continue;
+				}
+				e.exit();
+			}
+		}
+	}
+	
+	public static void main(String[] args)
+	{
+		new HideoutOfTheDawn(-1, HideoutOfTheDawn.class.getSimpleName(), "instances");
+	}
+}

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32593-01.htm

@@ -0,0 +1,4 @@
+<html><body>Priest Wood:<br>
+Ah, I've just received word from Franz. Apparently he cancelled all his appointments and has just arrived back so he can meet you.<br>Clearly you are someone of great importance, my friend. I've got this manuscript for you to give him, so... are you ready?<br>
+<a action="bypass -h Quest Q00198_SevenSignsEmbryo 32593-02.html">"Yes."</a>
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32593-02.html

@@ -0,0 +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>
+</body></html>

+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32593-03.html

@@ -0,0 +1,3 @@
+<html><body>Priest Wood:<br>
+Priest Wood:<br>(Only characters who are level 79 or above and who have completed the <font color="LEVEL">Seven Signs and Sacred Book of Seals</font> quests may undertake this quest.)
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32593-04.html

@@ -0,0 +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>
+</body></html>

+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32593-05.html

@@ -0,0 +1,3 @@
+<html><body>Priest Wood:<br>
+You're back!<br>I must ask you to keep your conversation with Franz between just the two of you. You have been made aware of some of our order's greatest secrets; should they become public knowledge our society would be ruined.<br>Now, I understand I am to give you this, and bid you farewell while you train, and we research. We will contact you soon, so be ready!
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-01.html

@@ -0,0 +1,4 @@
+<html><body>Priest Franz:<br>
+I must first apologize for taking so long to get here. Unfortunately I can only get about so quickly, and I was quite a way away.<br>Now, I have heard from Sir Athebaldt, his good wife Lady Claudia, and Iason Heine. You've collected quite a revered list of companions, but from what I have gathered... it is they who should consider themselves blessed.<br>
+<a action="bypass -h Quest Q00198_SevenSignsEmbryo 32597-02.html">"Thank you..."</a>
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-02.html

@@ -0,0 +1,4 @@
+<html><body>Priest Franz:<br>
+Not at all.<br>Now I'm going to let you in on another of our secrets. It... it... did you hear that? Strange....<br>It concerns that book of yours.<br>
+<a action="bypass -h Quest Q00198_SevenSignsEmbryo 32597-03.html">"Oh?"</a>
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-03.html

@@ -0,0 +1,4 @@
+<html><body>Priest Franz:<br>
+As you may know, Emperor Shunaiman had control over the Seven Seals.<br> Only those in his bloodline could control them, so when the last of his bloodline, Emperor Baium, was killed, we thought the power of the Seals had been lost forever.<br>
+<a action="bypass -h Quest Q00198_SevenSignsEmbryo 32597-04.html">"But..."</a>
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-04.html

@@ -0,0 +1,4 @@
+<html><body>Priest Franz:<br>
+But, we were wrong. It has since emerged that that power still exists, and is contained in a Seal Stone <font color="LEVEL">buried in Lilith's own body</font>.<br>Now... not all the books can currently be controlled, but the Book of Seals is said to teach whoever reads it, and gain them mastery over all se... seven....<br>What... what's that? It's gone cold....<br>
+<a action="bypass -h Quest Q00198_SevenSignsEmbryo fight">Look around.</a>
+</body></html>

+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-05.html

@@ -0,0 +1,3 @@
+<html><body>Priest Franz:<br>
+A monster! Kill it! It must have heard our secrets! Kill it!
+</body></html>

+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-06.html

@@ -0,0 +1,3 @@
+<html><body>Priest Franz:<br>
+Fight the creature or we'll both be killed!<br>(Another player is currently speaking with him.)
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-07.html

@@ -0,0 +1,4 @@
+<html><body>Priest Franz:<br>
+My word! What was that thing? And... and what is that thing it left?<br>It must have been searching for this copy of the Book of Seals...<br>What? This is part of the <font color="LEVEL">Sculpture of Shilen</font>... she must have somehow manifested herself into inanimate objects. My word....<br>Quickly child--hand me that manuscript.<br>
+<a action="bypass -h Quest Q00198_SevenSignsEmbryo 32597-08.html">"Here."</a>
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-08.html

@@ -0,0 +1,4 @@
+<html><body>Priest Franz:<br>
+Well, I cannot fully interpret the document, but... I can understand enough.<br><font color="LEVEL">"When the... when the new powers of... Shilen enter the world, monsters unseen shall become... seen."</font><br>Oh my....<br>
+<a action="bypass -h Quest Q00198_SevenSignsEmbryo 32597-09.html">"What does it mean?"</a>
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-09.html

@@ -0,0 +1,4 @@
+<html><body>Priest Franz:<br>
+It just proves my theory: that creature was indeed <font color="LEVEL">a manifestation of Shilen herself</font>. Clearly she is looking to <font color="LEVEL">control the power of the Seals</font>. That also means a <font color="LEVEL">fourth seal</font> has been broken somewhere... but how?<br>
+<a action="bypass -h Quest Q00198_SevenSignsEmbryo 32597-10.html">Keep Listening.</a>
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-10.html

@@ -0,0 +1,4 @@
+<html><body>Priest Franz:<br>
+There is more to this story, I'm sure of it, and I believe you are the one who can uncover the final chapters. Look at what you have done far, in such a short space of time, compared to what our best have uncovered over months... years even.<br>But would you willing to help us again, when the time comes?<br>
+<a action="bypass -h Quest Q00198_SevenSignsEmbryo 32597-11.html">"Of course."</a>
+</body></html>

+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-11.html

@@ -0,0 +1,3 @@
+<html><body>Priest Franz:<br>
+Thank you. We must uncover exactly what has happened and who is behind it all. Shilen stirs, but she can't be acting alone... I must look at our enemies--the Order of Dusk.<br>More training is required--much more--before we can even look at them though. I propose a respite: you should leave and prepare yourself for a great fight, while I shall take this Shilen fragment and study it further.<br>Priestess Jayna will lead you outside, and I believe Priest Wood has a reward for you.
+</body></html>

+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32597-12.html

@@ -0,0 +1,3 @@
+<html><body>Priest Franz:<br>
+You must leave now, my child. We will do our research, and then contact you when the time is right.<br>Priestess Jayna will lead you outside, and I believe Priest Wood has a reward for you.
+</body></html>

+ 5 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32617-01.html

@@ -0,0 +1,5 @@
+<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>

+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/32617-02.html

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

+ 321 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/Q00198_SevenSignsEmbryo.java

@@ -0,0 +1,321 @@
+/*
+ * 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.Q00198_SevenSignsEmbryo;
+
+import com.l2jserver.gameserver.ai.CtrlIntention;
+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.itemcontainer.PcInventory;
+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;
+import com.l2jserver.util.Rnd;
+
+/**
+ * Seven Signs, Embryo (198)
+ * @author Adry_85
+ */
+public class Q00198_SevenSignsEmbryo extends Quest
+{
+	// NPCs
+	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;
+	// Misc
+	private static final int MIN_LEVEL = 79;
+	private boolean isBusy = false;
+	// Skill
+	private static SkillHolder NPC_HEAL = new SkillHolder(4065, 8);
+	
+	public Q00198_SevenSignsEmbryo(int questId, String name, String descr)
+	{
+		super(questId, name, descr);
+		
+		addFirstTalkId(JAINA);
+		addStartNpc(WOOD);
+		addTalkId(WOOD, FRANZ);
+		addKillId(SHILENS_EVIL_THOUGHTS);
+		registerQuestItems(SCULPTURE_OF_DOUBT);
+	}
+	
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		if ((npc.getNpcId() == SHILENS_EVIL_THOUGHTS) && "despawn".equals(event))
+		{
+			if (!npc.isDead())
+			{
+				isBusy = false;
+				npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.ALL, npc.getNpcId(), NpcStringId.NEXT_TIME_YOU_WILL_NOT_ESCAPE));
+				npc.deleteMe();
+			}
+			return super.onAdvEvent(event, npc, player);
+		}
+		
+		final QuestState st = player.getQuestState(getName());
+		if (st == null)
+		{
+			return null;
+		}
+		
+		String htmltext = null;
+		switch (event)
+		{
+			case "32593-02.html":
+			{
+				st.startQuest();
+				htmltext = event;
+				break;
+			}
+			case "32597-02.html":
+			{
+				if (st.isCond(1))
+				{
+					htmltext = event;
+				}
+				break;
+			}
+			case "32597-03.html":
+			{
+				if (st.isCond(1))
+				{
+					htmltext = event;
+				}
+				break;
+			}
+			case "32597-04.html":
+			{
+				if (st.isCond(1))
+				{
+					htmltext = event;
+				}
+				break;
+			}
+			case "fight":
+			{
+				htmltext = "32597-05.html";
+				if (st.isCond(1))
+				{
+					isBusy = true;
+					NpcSay ns = new NpcSay(npc.getObjectId(), Say2.ALL, npc.getNpcId(), NpcStringId.S1_THAT_STRANGER_MUST_BE_DEFEATED_HERE_IS_THE_ULTIMATE_HELP);
+					ns.addStringParameter(player.getName());
+					npc.broadcastPacket(ns);
+					startQuestTimer("heal", 30000 - Rnd.get(20000), npc, player);
+					L2MonsterInstance monster = (L2MonsterInstance) addSpawn(SHILENS_EVIL_THOUGHTS, -23734, -9184, -5384, 0, false, 0, false, npc.getInstanceId());
+					monster.broadcastPacket(new NpcSay(monster.getObjectId(), Say2.ALL, monster.getNpcId(), 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.ALL, npc.getNpcId(), NpcStringId.LOOK_HERE_S1_DONT_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 - Rnd.get(20000), npc, player);
+				break;
+			}
+			case "32597-08.html":
+			{
+				if (st.isCond(2) && st.hasQuestItems(SCULPTURE_OF_DOUBT))
+				{
+					htmltext = event;
+				}
+				break;
+			}
+			case "32597-09.html":
+			{
+				if (st.isCond(2) && st.hasQuestItems(SCULPTURE_OF_DOUBT))
+				{
+					htmltext = event;
+				}
+				break;
+			}
+			case "32597-10.html":
+			{
+				if (st.isCond(2) && st.hasQuestItems(SCULPTURE_OF_DOUBT))
+				{
+					htmltext = event;
+				}
+				break;
+			}
+			case "32597-11.html":
+			{
+				if (st.isCond(2) && st.hasQuestItems(SCULPTURE_OF_DOUBT))
+				{
+					st.takeItems(SCULPTURE_OF_DOUBT, -1);
+					st.setCond(3, true);
+					htmltext = event;
+					npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.ALL, npc.getNpcId(), NpcStringId.WE_WILL_BE_WITH_YOU_ALWAYS));
+				}
+				break;
+			}
+			case "32617-02.html":
+			{
+				htmltext = event;
+				break;
+			}
+		}
+		
+		return htmltext;
+	}
+	
+	@Override
+	public String onTalk(L2Npc npc, L2PcInstance player)
+	{
+		QuestState st = player.getQuestState(getName());
+		String htmltext = getNoQuestMsg(player);
+		if (st == null)
+		{
+			return htmltext;
+		}
+		
+		switch (st.getState())
+		{
+			case State.COMPLETED:
+			{
+				htmltext = getAlreadyCompletedMsg(player);
+				break;
+			}
+			case State.CREATED:
+			{
+				if (npc.getNpcId() == WOOD)
+				{
+					st = player.getQuestState("Q00197_SevenSignsTheSacredBookOfSeal");
+					htmltext = ((player.getLevel() >= MIN_LEVEL) && (st != null) && (st.isCompleted())) ? "32593-01.htm" : "32593-03.html";
+				}
+				break;
+			}
+			case State.STARTED:
+			{
+				if (npc.getNpcId() == WOOD)
+				{
+					if ((st.getCond() > 0) && (st.getCond() < 3))
+					{
+						htmltext = "32593-04.html";
+					}
+					else if (st.isCond(3))
+					{
+						if (player.getLevel() >= MIN_LEVEL)
+						{
+							st.addExpAndSp(315108090, 34906059);
+							st.giveItems(DAWNS_BRACELET, 1);
+							st.giveItems(PcInventory.ANCIENT_ADENA_ID, 1500000);
+							st.exitQuest(false, true);
+							htmltext = "32593-05.html";
+						}
+						else
+						{
+							htmltext = "level_check.html";
+						}
+					}
+				}
+				else if (npc.getNpcId() == FRANZ)
+				{
+					switch (st.getCond())
+					{
+						case 1:
+						{
+							htmltext = (isBusy) ? "32597-06.html" : "32597-01.html";
+							break;
+						}
+						case 2:
+						{
+							if (st.hasQuestItems(SCULPTURE_OF_DOUBT))
+							{
+								htmltext = "32597-07.html";
+							}
+							break;
+						}
+						case 3:
+						{
+							htmltext = "32597-12.html";
+							break;
+						}
+					}
+				}
+				break;
+			}
+		}
+		
+		return htmltext;
+	}
+	
+	@Override
+	public String onFirstTalk(L2Npc npc, L2PcInstance player)
+	{
+		QuestState st = player.getQuestState(getName());
+		String htmltext = getNoQuestMsg(player);
+		if (st == null)
+		{
+			return htmltext;
+		}
+		
+		return "32617-01.html";
+	}
+	
+	@Override
+	public String onKill(L2Npc npc, L2PcInstance player, boolean isPet)
+	{
+		final L2PcInstance partyMember = getRandomPartyMember(player, "1");
+		if (partyMember == null)
+		{
+			return null;
+		}
+		
+		final QuestState st = partyMember.getQuestState(getName());
+		
+		if (npc.isInsideRadius(player, 1500, true, false))
+		{
+			st.giveItems(SCULPTURE_OF_DOUBT, 1);
+			st.playSound("ItemSound.quest_finish");
+			st.setCond(2);
+		}
+		
+		isBusy = false;
+		cancelQuestTimers("despawn");
+		cancelQuestTimers("heal");
+		NpcSay ns = new NpcSay(npc.getObjectId(), Say2.ALL, npc.getNpcId(), NpcStringId.S1_YOU_MAY_HAVE_WON_THIS_TIME_BUT_NEXT_TIME_I_WILL_SURELY_CAPTURE_YOU);
+		ns.addStringParameter(player.getName());
+		npc.broadcastPacket(ns);
+		
+		return super.onKill(npc, player, isPet);
+	}
+	
+	public static void main(String args[])
+	{
+		new Q00198_SevenSignsEmbryo(198, Q00198_SevenSignsEmbryo.class.getSimpleName(), "Seven Signs, Embryo");
+	}
+}

+ 2 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/level_check.html

@@ -0,0 +1,2 @@
+<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>