Przeglądaj źródła

BETA: Quests in Java:
* Runaway Youth (651)
* Wild Maiden (653)

malyelfik 12 lat temu
rodzic
commit
358bb81eec
31 zmienionych plików z 293 dodań i 186 usunięć
  1. 2 2
      L2J_DataPack_BETA/dist/game/data/scripts.cfg
  2. 0 4
      L2J_DataPack_BETA/dist/game/data/scripts/quests/651_RunawayYouth/32014-01.htm
  3. 0 5
      L2J_DataPack_BETA/dist/game/data/scripts/quests/651_RunawayYouth/32014-03.htm
  4. 0 3
      L2J_DataPack_BETA/dist/game/data/scripts/quests/651_RunawayYouth/32014-04.htm
  5. 0 4
      L2J_DataPack_BETA/dist/game/data/scripts/quests/651_RunawayYouth/32014-04a.htm
  6. 0 61
      L2J_DataPack_BETA/dist/game/data/scripts/quests/651_RunawayYouth/__init__.py
  7. 0 4
      L2J_DataPack_BETA/dist/game/data/scripts/quests/653_WildMaiden/30181-01.htm
  8. 0 5
      L2J_DataPack_BETA/dist/game/data/scripts/quests/653_WildMaiden/32013-02.htm
  9. 0 3
      L2J_DataPack_BETA/dist/game/data/scripts/quests/653_WildMaiden/32013-03.htm
  10. 0 4
      L2J_DataPack_BETA/dist/game/data/scripts/quests/653_WildMaiden/32013-04a.htm
  11. 0 61
      L2J_DataPack_BETA/dist/game/data/scripts/quests/653_WildMaiden/__init__.py
  12. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00651_RunawayYouth/31989-01.html
  13. 2 2
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-01.htm
  14. 5 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-01a.htm
  15. 6 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-02.html
  16. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-03.html
  17. 5 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-04.htm
  18. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-05.htm
  19. 113 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00651_RunawayYouth/Q00651_RunawayYouth.java
  20. 4 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00653_WildMaiden/30181-01.html
  21. 5 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-01.htm
  22. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-01a.htm
  23. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-02.htm
  24. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-03.html
  25. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-04.htm
  26. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-04a.htm
  27. 3 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-05.htm
  28. 116 0
      L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00653_WildMaiden/Q00653_WildMaiden.java
  29. 2 10
      L2J_DataPack_BETA/dist/sql/game/random_spawn.sql
  30. 13 18
      L2J_DataPack_BETA/dist/sql/game/random_spawn_loc.sql
  31. 2 0
      L2J_DataPack_BETA/dist/sql/game/updates/20130101update.sql

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

@@ -678,9 +678,9 @@ quests/647_InfluxOfMachines/__init__.py
 quests/648_AnIceMerchantsDream/__init__.py
 quests/649_ALooterAndARailroadMan/__init__.py
 quests/650_ABrokenDream/__init__.py
-quests/651_RunawayYouth/__init__.py
+quests/Q00651_RunawayYouth/Q00651_RunawayYouth.java
 quests/Q00652_AnAgedExAdventurer/Q00652_AnAgedExAdventurer.java
-quests/653_WildMaiden/__init__.py
+quests/Q00653_WildMaiden/Q00653_WildMaiden.java
 quests/Q00654_JourneyToASettlement/Q00654_JourneyToASettlement.java
 quests/659_IdRatherBeCollectingFairyBreath/__init__.py
 quests/660_AidingtheFloranVillage/__init__.py

+ 0 - 4
L2J_DataPack_BETA/dist/game/data/scripts/quests/651_RunawayYouth/32014-01.htm

@@ -1,4 +0,0 @@
-<html><body>Ivan:<br>
-Oh, you're an adventurer, aren't you? Phew... I'm Ivan. I'm a fisherman like my father! But to tell you the truth, I hate the smell of fish! So I left home... I've been wandering around this dangerous place, and now I'm thinking that maybe my father was right after all! I wish I could go back home... Maybe one day you'll be able to help me.<br>
-(Quest for characters level 26 and above)
-</body></html>

+ 0 - 5
L2J_DataPack_BETA/dist/game/data/scripts/quests/651_RunawayYouth/32014-03.htm

@@ -1,5 +0,0 @@
-<html><body>Ivan:<br>
-Thank you so much! Now I can get home safely. Again, thank you.<br>
-My father is<font color="LEVEL"> Batidae, a Fishing Guild Member of the Town of Schuttgart</font>.<br>
-If you go there, please look for my father. He'll reward you. I'm leaving now... Good luck!
-</body></html>

+ 0 - 3
L2J_DataPack_BETA/dist/game/data/scripts/quests/651_RunawayYouth/32014-04.htm

@@ -1,3 +0,0 @@
-<html><body>Ivan:<br>
-All who see me make fun of me. Insults pour from their mouths. They shake their heads and say, let him commit himself unto the lord! let Him rescue him; let Him deliver him, seeing He delighteth in him.
-</body></html>

+ 0 - 4
L2J_DataPack_BETA/dist/game/data/scripts/quests/651_RunawayYouth/32014-04a.htm

@@ -1,4 +0,0 @@
-<html><body>Ivan:<br>
-You don't have a Scroll of Escape!<br>
-Talk to me when you get one.
-</body></html>

+ 0 - 61
L2J_DataPack_BETA/dist/game/data/scripts/quests/651_RunawayYouth/__init__.py

@@ -1,61 +0,0 @@
-# Made by Polo & DrLecter
-import sys
-from com.l2jserver.gameserver.model.quest import State
-from com.l2jserver.gameserver.model.quest import QuestState
-from com.l2jserver.gameserver.model.quest.jython import QuestJython as JQuest
-
-qn = "651_RunawayYouth"
-#Npc
-IVAN = 32014
-BATIDAE = 31989
-
-#Items
-SOE = 736
-
-class Quest (JQuest) :
-
- def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
-
- def onAdvEvent (self,event,npc,player) :
-    htmltext = event
-    st = player.getQuestState(qn)
-    if not st : return
-    if event == "32014-04.htm" :
-      if st.getQuestItemsCount(SOE):
-        st.set("cond","1")
-        st.setState(State.STARTED)
-        st.playSound("ItemSound.quest_accept")
-        st.takeItems(SOE,1)
-        htmltext = "32014-03.htm"
-        npc.deleteMe()
-    elif event == "32014-04a.htm" :
-        st.exitQuest(1)
-        st.playSound("ItemSound.quest_giveup")
-    return htmltext
-
- def onTalk (self,npc,player):
-   st = player.getQuestState(qn)
-   htmltext = Quest.getNoQuestMsg(player)
-   if not st : return htmltext
-   npcId = npc.getNpcId()
-   id = st.getState()
-   cond=st.getInt("cond")
-   if npcId == IVAN and id == State.CREATED:
-      if player.getLevel()>=26 :
-         htmltext = "32014-02.htm"
-      else:
-         htmltext = "32014-01.htm"
-         st.exitQuest(1)
-   elif npcId == BATIDAE and st.getInt("cond") :
-      htmltext = "31989-01.htm"
-      st.giveItems(57,2883)
-      st.playSound("ItemSound.quest_finish")
-      st.exitQuest(1)
-   return htmltext
-
-QUEST       = Quest(651,qn,"Runaway Youth")
-
-QUEST.addStartNpc(IVAN)
-
-QUEST.addTalkId(IVAN)
-QUEST.addTalkId(BATIDAE)

+ 0 - 4
L2J_DataPack_BETA/dist/game/data/scripts/quests/653_WildMaiden/30181-01.htm

@@ -1,4 +0,0 @@
-<html><body>Galibredo:<br>
-Thank you so much! Thanks to you, my daughter made it home safely. I certainly gave her a good talking-to! I swear, I don't know what I'mg going to do with that girl! I'm afraid something terrible will happen to her someday... Humph! By the way, Take this! It's not much, but think of it as a small token of my appreciation. Thank you again.<br>
-What's a father to do...
-</body></html>

+ 0 - 5
L2J_DataPack_BETA/dist/game/data/scripts/quests/653_WildMaiden/32013-02.htm

@@ -1,5 +0,0 @@
-<html><body>Suki:<br>
-Good heavens! Oh, my ... ... You're an adventurer, aren't you? You certainly surprised me. Who am I? My name's suki! What am I doing here? Honestly, I fell in love with a wonderful Warrior who came to our town not too long ago. A dark face with a melancholy shadow... Sinewy hands held his sword tight.. He admired my pure heart and then he... he kissed my... Oh my! Some things are better left unsaid... Anyway, when he left, he wouldn't let me go with him, saying that it was too dangerous for me... Although I knew the danger well, I secretly followed him! I got lost and wound up here... The days have been hard here. My skin has grown rough and I haven't eaten in days! I would give anything just to get back home!<br>
-<a action="bypass -h Quest 653_WildMaiden 32013-04.htm">"Go on Home. This will take you there."</a><br>
-<a action="bypass -h Quest 653_WildMaiden 32013-04a.htm">"What? Are you crazy? Go and find your man!"</a>
-</body></html>

+ 0 - 3
L2J_DataPack_BETA/dist/game/data/scripts/quests/653_WildMaiden/32013-03.htm

@@ -1,3 +0,0 @@
-<html><body>Suki:<br>
-Oh, thank you so much! I can now go home safely! By the way... You have such smooth skin and great body tone... Not to mention that fine looking face! if you're ever in<font color="LEVEL"> the Town of Oren</font>, speak with<font color="LEVEL"> Galibredo</font>. He's my father, and he'll reward your kindness. Well, I should be going... Goodbye and Good luck!
-</body></html>

+ 0 - 4
L2J_DataPack_BETA/dist/game/data/scripts/quests/653_WildMaiden/32013-04a.htm

@@ -1,4 +0,0 @@
-<html><body>Suki:<br>
-Humph! Oh yeah? If I die out here, it'll be all your fault!<br>
-Humph!
-</body></html>

+ 0 - 61
L2J_DataPack_BETA/dist/game/data/scripts/quests/653_WildMaiden/__init__.py

@@ -1,61 +0,0 @@
-# Made by DrLecter, based on a Polo script and a DoomIta contribution
-import sys
-from com.l2jserver.gameserver.model.quest import State
-from com.l2jserver.gameserver.model.quest import QuestState
-from com.l2jserver.gameserver.model.quest.jython import QuestJython as JQuest
-
-qn = "653_WildMaiden"
-#Npc
-SUKI = 32013
-GALIBREDO = 30181
-
-#Items
-SOE = 736
-
-class Quest (JQuest) :
-
- def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
-
- def onAdvEvent (self,event,npc,player) :
-    htmltext = event
-    st = player.getQuestState(qn)
-    if not st : return
-    if event == "32013-04.htm" :
-      if st.getQuestItemsCount(SOE):
-        st.set("cond","1")
-        st.setState(State.STARTED)
-        st.playSound("ItemSound.quest_accept")
-        st.takeItems(SOE,1)
-        htmltext = "32013-03.htm"
-        npc.deleteMe()
-    elif event == "32013-04a.htm" :
-        st.exitQuest(1)
-        st.playSound("ItemSound.quest_giveup")
-    return htmltext
-
- def onTalk (self,npc,player):
-   st = player.getQuestState(qn)
-   htmltext = Quest.getNoQuestMsg(player)
-   if not st : return htmltext
-   npcId = npc.getNpcId()
-   id = st.getState()
-   cond=st.getInt("cond")
-   if npcId == SUKI and id == State.CREATED:
-       if player.getLevel() >= 36 :
-           htmltext = "32013-02.htm"
-       else:
-           htmltext = "32013-01.htm"
-           st.exitQuest(1)
-   elif npcId == GALIBREDO and st.getInt("cond"):
-       htmltext = "30181-01.htm"
-       st.giveItems(57,2883)
-       st.playSound("ItemSound.quest_finish")
-       st.exitQuest(1)
-   return htmltext
-
-QUEST       = Quest(653,qn,"Wild Maiden")
-
-QUEST.addStartNpc(SUKI)
-
-QUEST.addTalkId(SUKI)
-QUEST.addTalkId(GALIBREDO)

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/651_RunawayYouth/31989-01.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00651_RunawayYouth/31989-01.html


+ 2 - 2
L2J_DataPack_BETA/dist/game/data/scripts/quests/651_RunawayYouth/32014-02.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-01.htm

@@ -1,5 +1,5 @@
 <html><body>Ivan:<br>
 Oh, you're an adventurer, aren't you? Phew... I'm Ivan. I'm a fisherman like my father! But to tell you the truth, I hate the smell of fish! So I left home... I've been wandering around this dangerous place, and now I'm thinking that maybe my father was right after all! I wish I could go back home... Please help me!!<br>
-<a action="bypass -h Quest 651_RunawayYouth 32014-04.htm">"Here's a Scroll of Escape."</a><br>
-<a action="bypass -h Quest 651_RunawayYouth 32014-04a.htm">"Get lost! I've got my own problems"</a>
+<a action="bypass -h Quest Q00651_RunawayYouth 32014-04.htm">"Here's a Scroll of Escape."</a><br>
+<a action="bypass -h Quest Q00651_RunawayYouth 32014-03.html">"Get lost! I've got my own problems."</a>
 </body></html>

+ 5 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-01a.htm

@@ -0,0 +1,5 @@
+<html><body>Ivan:<br>
+The boy appears not to trust you.<br>
+He doesn't want to talk to you.<br>
+(Only characters level 26 and above are permitted to take on this quest.)
+</body></html>

+ 6 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-02.html

@@ -0,0 +1,6 @@
+<html><body>Ivan:<br>
+Thanks to you, I can get home safely. Thank you again!<br>
+My father is <font color = "LEVEL">Batidae, a Fishing Guild Member of the Town of Schuttgart</font>.<br>
+If you go there, please look for my father. He'll reward you.<br>
+I'm leaving now... Good luck!
+</body></html>

+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-03.html

@@ -0,0 +1,3 @@
+<html><body>Ivan:<br>
+You're such a cold person... I never should've left home.... If I die out here, I will curse you and haunt you forever!
+</body></html>

+ 5 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-04.htm

@@ -0,0 +1,5 @@
+<html><body>Ivan:<br>
+Thank you so much!  Now I can now get home safely. Again, thank you.<br>
+My father is <font color="LEVEL">Batidae, a Fishing Guild Member of the Town of Schuttgart</font>.<br>
+If you go there, please look for my father. He'll reward you.<br>I'm leaving now... Good luck!
+</body></html>

+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00651_RunawayYouth/32014-05.htm

@@ -0,0 +1,3 @@
+<html><body>Ivan:<br>
+You don't have the Scroll of Escape... If you ever meet someone who has one, please ask them to help me!  By all that is Holy, I beg you!
+</body></html>

+ 113 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00651_RunawayYouth/Q00651_RunawayYouth.java

@@ -0,0 +1,113 @@
+/*
+ * 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.Q00651_RunawayYouth;
+
+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;
+
+/**
+ * Runaway Youth (651)
+ * @author malyelfik
+ */
+public class Q00651_RunawayYouth extends Quest
+{
+	// NPC
+	private static final int BATIDAE = 31989;
+	private static final int IVAN = 32014;
+	
+	// Item
+	private static final int SOE = 736;
+	
+	// Misc
+	private static final int MIN_LEVEL = 26;
+	
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		if (st == null)
+		{
+			return null;
+		}
+		
+		String htmltext = null;
+		if (event.equals("32014-03.html"))
+		{
+			htmltext = event;
+		}
+		else if (event.equals("32014-04.htm"))
+		{
+			if (!st.hasQuestItems(SOE))
+			{
+				return "32014-05.htm";
+			}
+			st.startQuest();
+			st.takeItems(SOE, 1);
+			npc.deleteMe();
+			htmltext = event;
+		}
+		return htmltext;
+	}
+	
+	@Override
+	public String onTalk(L2Npc npc, L2PcInstance player)
+	{
+		String htmltext = getNoQuestMsg(player);
+		final QuestState st = player.getQuestState(getName());
+		if (st == null)
+		{
+			return htmltext;
+		}
+		
+		switch (npc.getNpcId())
+		{
+			case IVAN:
+				switch (st.getState())
+				{
+					case State.CREATED:
+						htmltext = (player.getLevel() >= MIN_LEVEL) ? "32014-01.htm" : "32014-01a.htm";
+						break;
+					case State.STARTED:
+						htmltext = "32014-02.html";
+						break;
+				}
+				break;
+			case BATIDAE:
+				if (st.isStarted())
+				{
+					st.giveAdena(2883, true);
+					st.exitQuest(true, true);
+					htmltext = "31989-01.html";
+				}
+				break;
+		}
+		return htmltext;
+	}
+	
+	public Q00651_RunawayYouth(int questId, String name, String descr)
+	{
+		super(questId, name, descr);
+		addStartNpc(IVAN);
+		addTalkId(BATIDAE, IVAN);
+	}
+	
+	public static void main(String[] args)
+	{
+		new Q00651_RunawayYouth(651, Q00651_RunawayYouth.class.getSimpleName(), "Runaway Youth");
+	}
+}

+ 4 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00653_WildMaiden/30181-01.html

@@ -0,0 +1,4 @@
+<html><body>Galibredo:<br>
+Thank you so much! Thanks to you, my daughter made it home safely. I certainly gave her a good talking-to! I swear, I don't know what I'm going to do with that girl! I'm afraid something terrible will happen to her someday... Humph! By the way, Take this! It's not much, but think of it as a small token of my appreciation. Thank you again.<br>
+What's a father to do...
+</body></html>

+ 5 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-01.htm

@@ -0,0 +1,5 @@
+<html><body>Suki:<br>
+Good heavens! Oh, my ... ... You're an adventurer, aren't you? You certainly surprised me. Who am I?  My name's Suki! What am I doing here? Honestly, I fell in love with a wonderful Warrior who came to our town not too long ago. A dark face with a melancholy shadow... Sinewy hands held his sword tight... He admired my pure heart and then he... he kissed my... Oh my! Some things are better left unsaid... Anyway, when he left, he wouldn't let me go with him, saying that it was too dangerous for me... Although I knew the danger well, I secretly followed him! I got lost and wound up here... The days have been hard here. My skin has grown rough and I haven't eaten in days! I would give anything just to get back home!<br>
+<a action="bypass -h Quest Q00653_WildMaiden 32013-04.htm">"Go on home. This will take you there."</a><br>
+<a action="bypass -h Quest Q00653_WildMaiden 32013-03.html">"What? Are you crazy? Go and find your man!</a>
+</body></html>

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/653_WildMaiden/32013-01.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-01a.htm


+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-02.htm

@@ -0,0 +1,3 @@
+<html><body>Suki:<br>
+You're the adventurer who helped me! Thank you so much! Now I can return home safely. If you're ever in <font color="LEVEL">the Town of Oren</font>, speak with <font color="LEVEL">Galibredo</font>. He's my father, and he'll reward you for your kindness.
+</body></html>

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/653_WildMaiden/32013-04.htm → L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-03.html


+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-04.htm

@@ -0,0 +1,3 @@
+<html><body>Suki:<br>
+Oh, thank you so much! Thanks to you, I can now go back home safely. Thank you. By the way... Are you seeing anybody? .... Oh, never mind...Hehehe.. If you're ever in <font color = "LEVEL">the Town of Oren</font>, speak with <font color = "LEVEL">Galibredo</font>. He's my father, and he'll reward your kindness. I have to go now. So long, handsome! Good luck!
+</body></html>

+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-04a.htm

@@ -0,0 +1,3 @@
+<html><body>Suki:<br>
+Oh, thank you so much! I can now go home safely! By the way... You have such smooth skin and great body tone... Not to mention that fine looking face! What's your secret? Oh, never mind... If you're ever in <font color = "LEVEL">the Town of Oren</font>, speak with <font color = "LEVEL">Galibredo</font>. He's my father, and he'll reward your kindness. Well, I should be going... Goodbye and Good luck!
+</body></html>

+ 3 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00653_WildMaiden/32013-05.htm

@@ -0,0 +1,3 @@
+<html<body>Suki:<br>
+Ah, you don't have the Scroll of Escape, huh? Well, if you meet someone who has one, please tell them that about this innocent, fragile and pitiful girl in trouble that desperately needs their help...
+</body></html>

+ 116 - 0
L2J_DataPack_BETA/dist/game/data/scripts/quests/Q00653_WildMaiden/Q00653_WildMaiden.java

@@ -0,0 +1,116 @@
+/*
+ * 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.Q00653_WildMaiden;
+
+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;
+
+/**
+ * Wild Maiden (653)
+ * @author malyelfik
+ */
+public class Q00653_WildMaiden extends Quest
+{
+	// NPC
+	private static final int GALIBREDO = 30181;
+	private static final int SUKI = 32013;
+	
+	// Item
+	private static final int SOE = 736;
+	
+	// Misc
+	private static final int MIN_LEVEL = 36;
+		
+	@Override
+	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+	{
+		final QuestState st = player.getQuestState(getName());
+		if (st == null)
+		{
+			return null;
+		}
+		
+		String htmltext = null;
+		if (event.equals("32013-03.html"))
+		{
+			htmltext = event;
+		}
+		else if (event.equals("32013-04.htm"))
+		{
+			if (!st.hasQuestItems(SOE))
+			{
+				return "32013-05.htm";
+			}
+			st.startQuest();
+			st.takeItems(SOE, 1);
+			npc.deleteMe();
+			if (getRandom(2) == 0)
+				htmltext = event;
+			else
+				htmltext = "32013-04a.htm";
+		}
+		return htmltext;
+	}
+	
+	@Override
+	public String onTalk(L2Npc npc, L2PcInstance player)
+	{
+		String htmltext = getNoQuestMsg(player);
+		final QuestState st = player.getQuestState(getName());
+		if (st == null)
+		{
+			return htmltext;
+		}
+		
+		switch (npc.getNpcId())
+		{
+			case SUKI:
+				switch (st.getState())
+				{
+					case State.CREATED:
+						htmltext = (player.getLevel() >= MIN_LEVEL) ? "32013-01.htm" : "32013-01a.htm";
+						break;
+					case State.STARTED:
+						htmltext = "32013-02.htm";
+						break;
+				}
+				break;
+			case GALIBREDO:
+				if (st.isStarted())
+				{
+					st.giveAdena(2553, true);
+					st.exitQuest(true, true);
+					htmltext = "30181-01.html";
+				}
+				break;
+		}
+		return htmltext;
+	}
+	
+	public Q00653_WildMaiden(int questId, String name, String descr)
+	{
+		super(questId, name, descr);
+		addStartNpc(SUKI);
+		addTalkId(GALIBREDO, SUKI);
+	}
+	
+	public static void main(String[] args)
+	{
+		new Q00653_WildMaiden(653, Q00653_WildMaiden.class.getSimpleName(), "Wild Maiden");
+	}
+}

+ 2 - 10
L2J_DataPack_BETA/dist/sql/game/random_spawn.sql

@@ -12,13 +12,6 @@ CREATE TABLE `random_spawn` (
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 INSERT INTO `random_spawn` VALUES 
--- (2,31092,1,-1,60,0,'false','false'), -- Black Marketeer of Mammon
--- (3,31092,1,-1,60,0,'false','false'), -- Black Marketeer of Mammon
--- (4,31092,1,-1,60,0,'false','false'), -- Black Marketeer of Mammon
--- (5,31092,1,-1,60,0,'false','false'), -- Black Marketeer of Mammon
--- (6,31092,1,-1,60,0,'false','false'), -- Black Marketeer of Mammon
--- (7,31092,1,-1,60,0,'false','false'), -- Black Marketeer of Mammon
--- (8,31092,1,-1,60,0,'false','false'), -- Black Marketeer of Mammon
 (11,31113,1,-1,-1,-1,'true','true'), -- Merchant of Mammon
 (12,31126,1,-1,-1,-1,'true','true'), -- Blacksmith of Mammon
 (13,31094,1,-1,60,0,'false','false'), -- Orator of Revelations
@@ -120,7 +113,6 @@ INSERT INTO `random_spawn` VALUES
 (109,31171,1,-1,60,0,'false','false'), -- Crest of Dawn
 (110,25283,1,-1,86400,0,'false','false'), -- Lilith (80)
 (111,25286,1,-1,86400,0,'false','false'), -- Anakim (80)
-(112,27316,1,1800000,14400000,1800000,'false','false'), -- Fallen Chieftain Vegus
 (113,31094,1,-1,60,0,'false','false'), -- Orator of Revelations
 (114,31093,1,-1,60,0,'false','false'), -- Preacher of Doom
 (115,31094,1,-1,60,0,'false','false'), -- Orator of Revelations
@@ -141,8 +133,8 @@ INSERT INTO `random_spawn` VALUES
 (130,31094,1,-1,60,0,'false','false'), -- Orator of Revelations
 (131,31093,1,-1,60,0,'false','false'), -- Preacher of Doom
 (132,31094,1,-1,60,0,'false','false'), -- Orator of Revelations
-(133,32014,1,-1,1800000,1800000,'false','true'), -- Ivan (Runaway Youth quest)
-(134,32013,1,-1,1800000,1800000,'false','true'), -- Suki (Wild Maiden quest)
+(133,32014,1,-1,3600000,0,'false','true'), -- Ivan (Runaway Youth quest)
+(134,32013,1,-1,3600000,0,'false','true'), -- Suki (Wild Maiden quest)
 (136,32012,1,-1,3600000,0,'false','true'), -- Tantan (Aged ExAdventurer quest)
 (137,32335,1,-1,120000,120000,'false','true'), -- Marksman (Guards on kamael island)
 (138,32335,1,-1,120000,120000,'false','true'), -- Marksman (Guards on kamael island)

+ 13 - 18
L2J_DataPack_BETA/dist/sql/game/random_spawn_loc.sql

@@ -9,15 +9,6 @@ CREATE TABLE `random_spawn_loc` (
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
 INSERT INTO `random_spawn_loc` VALUES
--- Black Marketeer of Mammon
-(2,-12345,121695,-2984,0),
-(3,81360,150016,-3528,16000),
-(4,120493,76520,-2136,35500),
-(5,-84745,151732,-3128,50000),
-(6,113481,218450,-3624,33000),
-(7,80129,56947,-1552,32500),
-(8,146986,29566,-2271,32500),
-
 -- Merchant of Mammon
 (11,-52172,78884,-4741,-1), -- Necropolis of Devotion
 (11,-41350,209876,-5087,-1), -- Necropolis of Sacrifice
@@ -145,9 +136,6 @@ INSERT INTO `random_spawn_loc` VALUES
  -- Anakim (80)
 (111,185000,-13000,-5488,-1),
 
--- Fallen Chieftain Vegus
-(112,171708,43964,-4972,-1),
-
 -- Orator of Revelations / Preacher of Doom
 (113,147943,-56176,-2781,-1),
 (114,148064,-56288,-2781,-1),
@@ -171,14 +159,21 @@ INSERT INTO `random_spawn_loc` VALUES
 (132,38695,-48308,896,-1),
 
 -- Runaway Youth quest
-(133,118600,-161235,-1119,-1),
-(133,108380,-150268,-2376,-1),
-(133,123254,-148126,-3425,-1),
+(133,104000,-156496,-1968,-1),
+(133,108912,-150000,-2416,-1),
+(133,107888,-144688,-3660,-1),
+(133,123248,-147680,-3520,-1),
+(133,118176,-161008,-1072,-1),
+(133,120880,-156720,-1673,-1),
+(133,117024,-150304,-2320,-1),
 
 -- Wild Maiden quest
-(134,66578,72351,-3731,-1),
-(134,67994,79605,-3685,-1),
-(134,72414,89582,-3068,-1),
+(134,69152,88816,-3408,-1),
+(134,75392,87600,-3344,-1),
+(134,67920,77888,-3616,-1),
+(134,76544,73616,-3709,-1),
+(134,66768,72016,-3677,-1),
+(134,71520,67936,-3564,-1),
 
 -- Aged ExAdventurer quest
 (136,89856,-7248,-3034,0),

+ 2 - 0
L2J_DataPack_BETA/dist/sql/game/updates/20130101update.sql

@@ -0,0 +1,2 @@
+UPDATE character_quests SET name='Q00651_RunawayYouth' WHERE name='651_RunawayYouth';
+UPDATE character_quests SET name='Q00653_WildMaiden' WHERE name='653_WildMaiden';