ソースを参照

BETA: Adding three missing quests:
* Zaken Embroidered Soul Cloak (10501)
* Freya Embroidered Soul Cloak (10502)
* Frintezza Embroidered Soul Cloak (10503)

Zoey76 12 年 前
コミット
05491934be
22 ファイル変更549 行追加0 行削除
  1. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts.cfg
  2. 6 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10501_ZakenEmbroideredSoulCloak/32612-01.htm
  3. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10501_ZakenEmbroideredSoulCloak/32612-02.html
  4. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10501_ZakenEmbroideredSoulCloak/32612-03.html
  5. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10501_ZakenEmbroideredSoulCloak/32612-04.html
  6. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10501_ZakenEmbroideredSoulCloak/32612-05.html
  7. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10501_ZakenEmbroideredSoulCloak/32612-06.html
  8. 157 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10501_ZakenEmbroideredSoulCloak/Q10501_ZakenEmbroideredSoulCloak.java
  9. 6 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10502_FreyaEmbroideredSoulCloak/32612-01.htm
  10. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10502_FreyaEmbroideredSoulCloak/32612-02.html
  11. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10502_FreyaEmbroideredSoulCloak/32612-03.html
  12. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10502_FreyaEmbroideredSoulCloak/32612-04.html
  13. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10502_FreyaEmbroideredSoulCloak/32612-05.html
  14. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10502_FreyaEmbroideredSoulCloak/32612-06.html
  15. 157 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10502_FreyaEmbroideredSoulCloak/Q10502_FreyaEmbroideredSoulCloak.java
  16. 6 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10503_FrintezzaEmbroideredSoulCloak/32612-01.htm
  17. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10503_FrintezzaEmbroideredSoulCloak/32612-02.html
  18. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10503_FrintezzaEmbroideredSoulCloak/32612-03.html
  19. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10503_FrintezzaEmbroideredSoulCloak/32612-04.html
  20. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10503_FrintezzaEmbroideredSoulCloak/32612-05.html
  21. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10503_FrintezzaEmbroideredSoulCloak/32612-06.html
  22. 157 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10503_FrintezzaEmbroideredSoulCloak/Q10503_FrintezzaEmbroideredSoulCloak.java

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

@@ -724,6 +724,9 @@ quests/Q10288_SecretMission/Q10288_SecretMission.java
 quests/Q10289_FadeToBlack/Q10289_FadeToBlack.java
 quests/Q10290_LandDragonConqueror/Q10290_LandDragonConqueror.java
 quests/Q10291_FireDragonDestroyer/Q10291_FireDragonDestroyer.java
+quests/Q10501_ZakenEmbroideredSoulCloak/Q10501_ZakenEmbroideredSoulCloak.java
+quests/Q10502_FreyaEmbroideredSoulCloak/Q10502_FreyaEmbroideredSoulCloak.java
+quests/Q10503_FrintezzaEmbroideredSoulCloak/Q10503_FrintezzaEmbroideredSoulCloak.java
 quests/Q10504_JewelOfAntharas/Q10504_JewelOfAntharas.java
 quests/Q10505_JewelOfValakas/Q10505_JewelOfValakas.java
 

+ 6 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10501_ZakenEmbroideredSoulCloak/32612-01.htm

@@ -0,0 +1,6 @@
+<html><body>Weaver Olf Adams:<br>
+Recently, our weavers' guild learned how to imbed the souls of monsters into the clothes that we make.<br>
+This method allows us to make clothes that are far superior, and gives the wearer a monster-like appearance.<br>
+If you can collect souls of boss monsters, I can make you a new cloak. Interested?<br>
+<a action="bypass -h Quest Q10501_ZakenEmbroideredSoulCloak 32612-04.html">"Of course!"</a>
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10501_ZakenEmbroideredSoulCloak/32612-02.html

@@ -0,0 +1,4 @@
+<html><body>Weaver Olf Adams:<br>
+I'm sorry, but you're not ready to take this on.<br>
+(Only characters of level 78 or above can take on this quest.)
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10501_ZakenEmbroideredSoulCloak/32612-03.html

@@ -0,0 +1,4 @@
+<html><body>Weaver Olf Adams:<br>
+If I remember correctly, you already received my cloak, right?<br>
+(You have already completed this quest.)
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10501_ZakenEmbroideredSoulCloak/32612-04.html

@@ -0,0 +1,4 @@
+<html><body>Weaver Olf Adams:<br>
+OK.<br>
+From now on, every time you capture <font color="LEVEL">Zaken (top)</font>, you will receive <font color="LEVEL">Zaken Soul Fragments</font>. Please bring back <font color="LEVEL">20</font> of them!
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10501_ZakenEmbroideredSoulCloak/32612-05.html

@@ -0,0 +1,4 @@
+<html><body>Weaver Olf Adams:<br>
+There still aren't enough soul fragments here.<br>
+Every time you capture <font color="LEVEL">Zaken (top)</font>, you will receive <font color="LEVEL">Zaken Soul Fragments</font>. Please bring back <font color="LEVEL">20</font> of them!
+</body></html>

+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10501_ZakenEmbroideredSoulCloak/32612-06.html

@@ -0,0 +1,3 @@
+<html><body>Weaver Olf Adams:<br>
+You've finally collected all the soul fragments! Here is the cloak as promised!
+</body></html>

+ 157 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10501_ZakenEmbroideredSoulCloak/Q10501_ZakenEmbroideredSoulCloak.java

@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 2004-2013 L2J Server
+ * 
+ * This file is part of L2J Server.
+ * 
+ * L2J Server is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * L2J Server 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.Q10501_ZakenEmbroideredSoulCloak;
+
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+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.util.Util;
+
+/**
+ * Zaken Embroidered Soul Cloak (10501)
+ * @author Zoey76
+ */
+public class Q10501_ZakenEmbroideredSoulCloak extends Quest
+{
+	// NPC
+	private static final int OLF_ADAMS = 32612;
+	// Monster
+	private static final int ZAKEN = 29181;
+	// Items
+	private static final int ZAKENS_SOUL_FRAGMENT = 21722;
+	private static final int SOUL_CLOAK_OF_ZAKEN = 21719;
+	// Misc
+	private static final int MIN_LEVEL = 78;
+	private static final int FRAGMENT_COUNT = 20;
+	
+	private Q10501_ZakenEmbroideredSoulCloak(int questId, String name, String descr)
+	{
+		super(questId, name, descr);
+		addStartNpc(OLF_ADAMS);
+		addTalkId(OLF_ADAMS);
+		addKillId(ZAKEN);
+		registerQuestItems(ZAKENS_SOUL_FRAGMENT);
+	}
+	
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		if ((st != null) && (player.getLevel() >= MIN_LEVEL) && event.equals("32612-04.html"))
+		{
+			st.startQuest();
+			return event;
+		}
+		return null;
+	}
+	
+	@Override
+	public String onTalk(L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		if (st == null)
+		{
+			return getNoQuestMsg(player);
+		}
+		
+		String htmltext = getNoQuestMsg(player);
+		switch (st.getState())
+		{
+			case State.CREATED:
+			{
+				htmltext = (player.getLevel() < MIN_LEVEL) ? "32612-02.html" : "32612-01.htm";
+				break;
+			}
+			case State.STARTED:
+			{
+				switch (st.getCond())
+				{
+					case 1:
+					{
+						htmltext = "32612-05.html";
+						break;
+					}
+					case 2:
+					{
+						if (st.getQuestItemsCount(ZAKENS_SOUL_FRAGMENT) >= FRAGMENT_COUNT)
+						{
+							st.giveItems(SOUL_CLOAK_OF_ZAKEN, 1);
+							st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
+							st.exitQuest(false, true);
+							htmltext = "32612-06.html";
+						}
+						break;
+					}
+				}
+				break;
+			}
+			case State.COMPLETED:
+			{
+				htmltext = "32612-03.html";
+				break;
+			}
+		}
+		return htmltext;
+	}
+	
+	@Override
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet)
+	{
+		QuestState st;
+		if (killer.isInParty())
+		{
+			for (L2PcInstance player : killer.getParty().getMembers())
+			{
+				st = player.getQuestState(getName());
+				if ((st != null) && st.isCond(1) && Util.checkIfInRange(1500, npc, player, false))
+				{
+					st.giveItems(ZAKENS_SOUL_FRAGMENT, 1);
+					st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
+					
+					if (st.getQuestItemsCount(ZAKENS_SOUL_FRAGMENT) >= FRAGMENT_COUNT)
+					{
+						st.setCond(2, true);
+					}
+				}
+			}
+		}
+		else
+		{
+			st = killer.getQuestState(getName());
+			if ((st != null) && st.isCond(1) && Util.checkIfInRange(1500, npc, killer, false))
+			{
+				st.giveItems(ZAKENS_SOUL_FRAGMENT, 1);
+				st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
+				
+				if (st.getQuestItemsCount(ZAKENS_SOUL_FRAGMENT) >= FRAGMENT_COUNT)
+				{
+					st.setCond(2, true);
+				}
+			}
+		}
+		return super.onKill(npc, killer, isPet);
+	}
+	
+	public static void main(String[] args)
+	{
+		new Q10501_ZakenEmbroideredSoulCloak(10501, Q10501_ZakenEmbroideredSoulCloak.class.getSimpleName(), "Zaken Embroidered Soul Cloak");
+	}
+}

+ 6 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10502_FreyaEmbroideredSoulCloak/32612-01.htm

@@ -0,0 +1,6 @@
+<html><body>Weaver Olf Adams:<br>
+Recently, our weavers' guild learned how to imbed the souls of monsters into the clothes that we make.<br>
+This method allows us to make clothes that are far superior, and gives the wearer a monster-like appearance.<br>
+If you can collect souls of boss monsters, I can make you a new cloak. Interested?<br>
+<a action="bypass -h Quest Q10502_FreyaEmbroideredSoulCloak 32612-04.html">"Yes!"</a>
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10502_FreyaEmbroideredSoulCloak/32612-02.html

@@ -0,0 +1,4 @@
+<html><body>Weaver Olf Adams:<br>
+I'm sorry, but you're not ready to take this on.<br>
+(Only characters of level 82 or above can take on this quest.)
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10502_FreyaEmbroideredSoulCloak/32612-03.html

@@ -0,0 +1,4 @@
+<html><body>Weaver Olf Adams:<br>
+If I remember correctly, you already received my cloak, right?<br>
+(You have already completed this quest.)
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10502_FreyaEmbroideredSoulCloak/32612-04.html

@@ -0,0 +1,4 @@
+<html><body>Weaver Olf Adams:<br>
+OK!<br>
+From now on, every time you succeed in a <font color="LEVEL">Freya</font> raid, you will receive <font color="LEVEL">Freya Soul Fragments</font>. Please bring back <font color="LEVEL">20</font> of them!
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10502_FreyaEmbroideredSoulCloak/32612-05.html

@@ -0,0 +1,4 @@
+<html><body>Weaver Olf Adams:<br>
+There still aren't enough soul fragments here.<br>
+Every time you succeed in a <font color="LEVEL">Freya</font> raid, you will receive <font color="LEVEL">Freya Soul Fragments</font>. Please bring back <font color="LEVEL">20</font> of them.
+</body></html>

+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10502_FreyaEmbroideredSoulCloak/32612-06.html

@@ -0,0 +1,3 @@
+<html><body>Weaver Olf Adams:<br>
+You've finally collected all the soul fragments! Here is the cloak as promised!
+</body></html>

+ 157 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10502_FreyaEmbroideredSoulCloak/Q10502_FreyaEmbroideredSoulCloak.java

@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 2004-2013 L2J Server
+ * 
+ * This file is part of L2J Server.
+ * 
+ * L2J Server is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * L2J Server 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.Q10502_FreyaEmbroideredSoulCloak;
+
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+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.util.Util;
+
+/**
+ * Freya Embroidered Soul Cloak (10502)
+ * @author Zoey76
+ */
+public class Q10502_FreyaEmbroideredSoulCloak extends Quest
+{
+	// NPC
+	private static final int OLF_ADAMS = 32612;
+	// Monster
+	private static final int FREYA = 29179;
+	// Items
+	private static final int FREYAS_SOUL_FRAGMENT = 21722;
+	private static final int SOUL_CLOAK_OF_FREYA = 21719;
+	// Misc
+	private static final int MIN_LEVEL = 82;
+	private static final int FRAGMENT_COUNT = 20;
+	
+	private Q10502_FreyaEmbroideredSoulCloak(int questId, String name, String descr)
+	{
+		super(questId, name, descr);
+		addStartNpc(OLF_ADAMS);
+		addTalkId(OLF_ADAMS);
+		addKillId(FREYA);
+		registerQuestItems(FREYAS_SOUL_FRAGMENT);
+	}
+	
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		if ((st != null) && (player.getLevel() >= MIN_LEVEL) && event.equals("32612-04.html"))
+		{
+			st.startQuest();
+			return event;
+		}
+		return null;
+	}
+	
+	@Override
+	public String onTalk(L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		if (st == null)
+		{
+			return getNoQuestMsg(player);
+		}
+		
+		String htmltext = getNoQuestMsg(player);
+		switch (st.getState())
+		{
+			case State.CREATED:
+			{
+				htmltext = (player.getLevel() < MIN_LEVEL) ? "32612-02.html" : "32612-01.htm";
+				break;
+			}
+			case State.STARTED:
+			{
+				switch (st.getCond())
+				{
+					case 1:
+					{
+						htmltext = "32612-05.html";
+						break;
+					}
+					case 2:
+					{
+						if (st.getQuestItemsCount(FREYAS_SOUL_FRAGMENT) >= FRAGMENT_COUNT)
+						{
+							st.giveItems(SOUL_CLOAK_OF_FREYA, 1);
+							st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
+							st.exitQuest(false, true);
+							htmltext = "32612-06.html";
+						}
+						break;
+					}
+				}
+				break;
+			}
+			case State.COMPLETED:
+			{
+				htmltext = "32612-03.html";
+				break;
+			}
+		}
+		return htmltext;
+	}
+	
+	@Override
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet)
+	{
+		QuestState st;
+		if (killer.isInParty())
+		{
+			for (L2PcInstance player : killer.getParty().getMembers())
+			{
+				st = player.getQuestState(getName());
+				if ((st != null) && st.isCond(1) && Util.checkIfInRange(1500, npc, player, false))
+				{
+					st.giveItems(FREYAS_SOUL_FRAGMENT, 1);
+					st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
+					
+					if (st.getQuestItemsCount(FREYAS_SOUL_FRAGMENT) >= FRAGMENT_COUNT)
+					{
+						st.setCond(2, true);
+					}
+				}
+			}
+		}
+		else
+		{
+			st = killer.getQuestState(getName());
+			if ((st != null) && st.isCond(1) && Util.checkIfInRange(1500, npc, killer, false))
+			{
+				st.giveItems(FREYAS_SOUL_FRAGMENT, 1);
+				st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
+				
+				if (st.getQuestItemsCount(FREYAS_SOUL_FRAGMENT) >= FRAGMENT_COUNT)
+				{
+					st.setCond(2, true);
+				}
+			}
+		}
+		return super.onKill(npc, killer, isPet);
+	}
+	
+	public static void main(String[] args)
+	{
+		new Q10502_FreyaEmbroideredSoulCloak(10502, Q10502_FreyaEmbroideredSoulCloak.class.getSimpleName(), "Freya Embroidered Soul Cloak");
+	}
+}

+ 6 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10503_FrintezzaEmbroideredSoulCloak/32612-01.htm

@@ -0,0 +1,6 @@
+<html><body>Weaver Olf Adams:<br>
+Recently, our weavers' guild learned how to imbed the souls of monsters into the clothes that we make.<br>
+This method allows us to make clothes that are far superior, and gives the wearer a monster-like appearance.<br>
+If you can collect souls of boss monsters, I can make you a new cloak. Interested?<br>
+<a action="bypass -h Quest Q10503_FrintezzaEmbroideredSoulCloak 32612-04.html">"Yes!"</a>
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10503_FrintezzaEmbroideredSoulCloak/32612-02.html

@@ -0,0 +1,4 @@
+<html><body>Weaver Olf Adams:<br>
+I'm sorry, but you're not ready to take this on.<br>
+(Only characters of level 80 or above can take on this quest.)
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10503_FrintezzaEmbroideredSoulCloak/32612-03.html

@@ -0,0 +1,4 @@
+<html><body>Weaver Olf Adams:<br>
+If I remember correctly, you have already received my cloak, right?<br>
+(You have already completed this quest.)
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10503_FrintezzaEmbroideredSoulCloak/32612-04.html

@@ -0,0 +1,4 @@
+<html><body>Weaver Olf Adams:<br>
+OK.<br>
+From now on, every time you succeed in a <font color="LEVEL">Frintezza</font> raid, you will receive <font color="LEVEL">Frintezza Soul Fragments</font>. Please bring back <font color="LEVEL">20</font> of them!
+</body></html>

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10503_FrintezzaEmbroideredSoulCloak/32612-05.html

@@ -0,0 +1,4 @@
+<html><body>Weaver Olf Adams:<br>
+There still aren't enough soul fragments.<br>
+Every time you succeed in a <font color="LEVEL">Frintezza</font> raid, you will receive <font color="LEVEL">Frintezza Soul Fragments</font>. Please bring back <font color="LEVEL">20</font> of them!
+</body></html>

+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10503_FrintezzaEmbroideredSoulCloak/32612-06.html

@@ -0,0 +1,3 @@
+<html><body>Weaver Olf Adams:<br>
+You've finally collected all the soul fragments! Here is the cloak as promised!
+</body></html>

+ 157 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q10503_FrintezzaEmbroideredSoulCloak/Q10503_FrintezzaEmbroideredSoulCloak.java

@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 2004-2013 L2J Server
+ * 
+ * This file is part of L2J Server.
+ * 
+ * L2J Server is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * L2J Server 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.Q10503_FrintezzaEmbroideredSoulCloak;
+
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+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.util.Util;
+
+/**
+ * Frintezza Embroidered Soul Cloak (10503)
+ * @author Zoey76
+ */
+public class Q10503_FrintezzaEmbroideredSoulCloak extends Quest
+{
+	// NPC
+	private static final int OLF_ADAMS = 32612;
+	// Monster
+	private static final int FRINTEZZA = 29045;
+	// Items
+	private static final int FRINTEZZAS_SOUL_FRAGMENT = 21724;
+	private static final int SOUL_CLOAK_OF_FRINTEZZA = 21721;
+	// Misc
+	private static final int MIN_LEVEL = 80;
+	private static final int FRAGMENT_COUNT = 20;
+	
+	private Q10503_FrintezzaEmbroideredSoulCloak(int questId, String name, String descr)
+	{
+		super(questId, name, descr);
+		addStartNpc(OLF_ADAMS);
+		addTalkId(OLF_ADAMS);
+		addKillId(FRINTEZZA);
+		registerQuestItems(FRINTEZZAS_SOUL_FRAGMENT);
+	}
+	
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		if ((st != null) && (player.getLevel() >= MIN_LEVEL) && event.equals("32612-04.html"))
+		{
+			st.startQuest();
+			return event;
+		}
+		return null;
+	}
+	
+	@Override
+	public String onTalk(L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		if (st == null)
+		{
+			return getNoQuestMsg(player);
+		}
+		
+		String htmltext = getNoQuestMsg(player);
+		switch (st.getState())
+		{
+			case State.CREATED:
+			{
+				htmltext = (player.getLevel() < MIN_LEVEL) ? "32612-02.html" : "32612-01.htm";
+				break;
+			}
+			case State.STARTED:
+			{
+				switch (st.getCond())
+				{
+					case 1:
+					{
+						htmltext = "32612-05.html";
+						break;
+					}
+					case 2:
+					{
+						if (st.getQuestItemsCount(FRINTEZZAS_SOUL_FRAGMENT) >= FRAGMENT_COUNT)
+						{
+							st.giveItems(SOUL_CLOAK_OF_FRINTEZZA, 1);
+							st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
+							st.exitQuest(false, true);
+							htmltext = "32612-06.html";
+						}
+						break;
+					}
+				}
+				break;
+			}
+			case State.COMPLETED:
+			{
+				htmltext = "32612-03.html";
+				break;
+			}
+		}
+		return htmltext;
+	}
+	
+	@Override
+	public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet)
+	{
+		QuestState st;
+		if (killer.isInParty())
+		{
+			for (L2PcInstance player : killer.getParty().getMembers())
+			{
+				st = player.getQuestState(getName());
+				if ((st != null) && st.isCond(1) && Util.checkIfInRange(1500, npc, player, false))
+				{
+					st.giveItems(FRINTEZZAS_SOUL_FRAGMENT, 1);
+					st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
+					
+					if (st.getQuestItemsCount(FRINTEZZAS_SOUL_FRAGMENT) >= FRAGMENT_COUNT)
+					{
+						st.setCond(2, true);
+					}
+				}
+			}
+		}
+		else
+		{
+			st = killer.getQuestState(getName());
+			if ((st != null) && st.isCond(1) && Util.checkIfInRange(1500, npc, killer, false))
+			{
+				st.giveItems(FRINTEZZAS_SOUL_FRAGMENT, 1);
+				st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
+				
+				if (st.getQuestItemsCount(FRINTEZZAS_SOUL_FRAGMENT) >= FRAGMENT_COUNT)
+				{
+					st.setCond(2, true);
+				}
+			}
+		}
+		return super.onKill(npc, killer, isPet);
+	}
+	
+	public static void main(String[] args)
+	{
+		new Q10503_FrintezzaEmbroideredSoulCloak(10503, Q10503_FrintezzaEmbroideredSoulCloak.class.getSimpleName(), "Frintezza Embroidered Soul Cloak");
+	}
+}