瀏覽代碼

new quest: 140 - Shadow Fox - 2

Kerberos 17 年之前
父節點
當前提交
c4f725d1b8
共有 25 個文件被更改,包括 266 次插入1 次删除
  1. 1 0
      datapack_development/data/scripts.cfg
  2. 4 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30895-00.htm
  3. 8 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30895-01.htm
  4. 6 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30895-02.htm
  5. 7 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30895-03.htm
  6. 7 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30895-04.htm
  7. 4 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30895-05.htm
  8. 4 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30895-06.htm
  9. 6 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30895-07.htm
  10. 6 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30895-08.htm
  11. 5 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30895-09.htm
  12. 5 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-01.htm
  13. 7 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-02.htm
  14. 5 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-03.htm
  15. 6 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-04.htm
  16. 6 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-05.htm
  17. 7 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-06.htm
  18. 5 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-07.htm
  19. 11 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-08.htm
  20. 5 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-09.htm
  21. 5 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-09a.htm
  22. 7 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-09b.htm
  23. 3 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-10.htm
  24. 132 0
      datapack_development/data/scripts/quests/140_ShadowFoxPart2/__init__.py
  25. 4 1
      datapack_development/sql/etcitem.sql

+ 1 - 0
datapack_development/data/scripts.cfg

@@ -227,6 +227,7 @@ quests/136_MoreThanMeetsTheEye/__init__.py
 quests/137_TempleChampionPart1/__init__.py
 quests/138_TempleChampionPart2/__init__.py
 quests/139_ShadowFoxPart1/__init__.py
+quests/140_ShadowFoxPart2/__init__.py
 quests/151_SaveMySister1/__init__.py
 quests/152_ShardsOfGolem/__init__.py
 quests/153_WharfOldtimersFavor/__init__.py

+ 4 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30895-00.htm

@@ -0,0 +1,4 @@
+<html><body>Warehouse Freightman Kluck:<br>
+You are not yet ready to become a mid-level agent.<br>
+(Only characters level 37 and above are permitted to undertake this quest.)
+</body></html>

+ 8 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30895-01.htm

@@ -0,0 +1,8 @@
+<html><body>Warehouse Freightman Kluck:<br>
+You came to become a mid-level agent?<br>
+Shh!<br>
+Lower your voice...<br>
+You must be the one that Mia told me about...<br>
+So, are you really ready to become a mid-level agent?<br>
+<a action="bypass -h Quest 140_ShadowFoxPart2 30895-02.htm">"Yes! You can entrust me with any task."</a>
+</body></html>

+ 6 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30895-02.htm

@@ -0,0 +1,6 @@
+<html><body>Warehouse Freightman Kluck:<br>
+Very well -- let's get an idea of your ability.<br>
+...<br>
+Listen carefully...<br>
+<a action="bypass -h Quest 140_ShadowFoxPart2 30895-03.htm">Listen.</a>
+</body></html>

+ 7 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30895-03.htm

@@ -0,0 +1,7 @@
+<html><body>Warehouse Freightman Kluck:<br>
+Have you heard of Baron Lionel Hunter, once chief among the lords of Innadril?<br>
+He must have been a truly amazing individual.<br>
+He even defeated the water dragon Fafurion all by himself when he was young...<br>
+Ah, but that's not important right now...<br>
+<a action="bypass -h Quest 140_ShadowFoxPart2 30895-04.htm">Keep listening.</a>
+</body></html>

+ 7 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30895-04.htm

@@ -0,0 +1,7 @@
+<html><body>Warehouse Freightman Kluck:<br>
+Apparently the Sword of Othelotte actually exists...<br>
+No one knows where it is, but its sheath has been found.<br>
+The magicians present say they saw the power of the Goddess of Water emanate from it...<br>
+We are now collecting all information we can related to this phenomenon.<br>
+<a action="bypass -h Quest 140_ShadowFoxPart2 30895-05.htm">Keep listening.</a>
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30895-05.htm

@@ -0,0 +1,4 @@
+<html><body>Warehouse Freightman Kluck:<br>
+We have just determined that a secret document pertaining to the sword is in the hands of <font color="LEVEL">Dark Elf Magister Xenovia in Heine</font>...<br>
+Seek her out and obtain the <font color="LEVEL">encoded document called the Goddess Sword</font> from her...
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30895-06.htm

@@ -0,0 +1,4 @@
+<html><body>Warehouse Freightman Kluck:<br>
+A secret document pertaining to the sword is in the hands of <font color="LEVEL">Dark Elf Magister Xenovia in Heine</font>...<br>
+Seek her out and obtain the <font color="LEVEL">encoded document called the Goddess Sword</font> from her.
+</body></html>

+ 6 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30895-07.htm

@@ -0,0 +1,6 @@
+<html><body>Warehouse Freightman Kluck:<br>
+You brought back the document?<br>
+Well done!<br>
+This is an important clue in our search for the Sword of Othelotte. Our client will be pleased...<br>
+<a action="bypass -h Quest 140_ShadowFoxPart2 30895-08.htm">"Am I now a mid-level agent?"</a>
+</body></html>

+ 6 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30895-08.htm

@@ -0,0 +1,6 @@
+<html><body>Warehouse Freightman Kluck:<br>
+Yes, you are...<br>
+You are now a mid-level agent.<br>
+That is a quick promotion -- Congratulations!<br>
+<a action="bypass -h Quest 140_ShadowFoxPart2 30895-09.htm">"How can I become a high-level agent?"</a>
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30895-09.htm

@@ -0,0 +1,5 @@
+<html><body>Warehouse Freightman Kluck:<br>
+Ask <font color="LEVEL">Warehouse Chief Natools</font> how to become a high-level agent.<br>
+My concern is with the Sword of Othelotte...<br>
+Thank you for your assistance; you have certainly helped us make progres in this matter.
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-01.htm

@@ -0,0 +1,5 @@
+<html><body>Magister Xenovia:<br>
+You say that you came to see me about some encoded document pertaining to the Goddess Sword?<br>
+I don't know what you are talking about...<br>
+<a action="bypass -h Quest 140_ShadowFoxPart2 30912-02.htm">"I heard everything from Warehouse Freightman Kluck, who is in charge of the goods."</a>
+</body></html>

+ 7 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-02.htm

@@ -0,0 +1,7 @@
+<html><body>Magister Xenovia:<br>
+Hmm... Well, since you heard it from Kluck, I guess I have no choice.<br>
+Kluck never gives up!<br>
+Actually, this document has long vexed me.<br>
+I'm not even interested in the sword granted by Eva, but I need that document to further my magical research...<br>
+<a action="bypass -h Quest 140_ShadowFoxPart2 30912-03.htm">Keep listening.</a>
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-03.htm

@@ -0,0 +1,5 @@
+<html><body>Magister Xenovia:<br>
+The data that I require for my magic research is closely linked to that encoded document.<br>
+Of course, if I had the actual material that I need, I wouldn't need to consult the document...<br>
+<a action="bypass -h Quest 140_ShadowFoxPart2 30912-04.htm">"Then if I bring you the material, would you give me the document?"</a>
+</body></html>

+ 6 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-04.htm

@@ -0,0 +1,6 @@
+<html><body>Magister Xenovia:<br>
+Hmm... I need that material on a continuing basis, unfortunately.<br>
+If I were to give you the document, I would be severely limiting my options.<br>
+Perhaps...how about this?<br>Help me produce 3 Dark Oxides, which are created by putting certain chemicals on a Dark Crystal.<br>
+<a action="bypass -h Quest 140_ShadowFoxPart2 30912-05.htm">"What do you mean?"</a>
+</body></html>

+ 6 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-05.htm

@@ -0,0 +1,6 @@
+<html><body>Magister Xenovia:<br>
+I will give you the encoded document if you make the 3 Dark Oxides with materials you find on your own using my equipment.<br>
+It is very difficult to produce the Dark Oxides successfully because the process is very complicated.<br>
+And if you fail, you will be responsible for the cost of the materials...<br>
+<a action="bypass -h Quest 140_ShadowFoxPart2 30912-06.htm">"Please explain in more detail."</a>
+</body></html>

+ 7 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-06.htm

@@ -0,0 +1,7 @@
+<html><body>Magister Xenovia:<br>
+I will prepare 3 solutions if you bring me the Dark Crystal.<br>
+One of the 3 solutions will be able to produce the Dark Oxide.<br>
+Unfortunately, I cannot yet produce perfect solutions every time.<br>
+What you will need to do is choose one of these 3 solutions and then place 5 Dark Crystals in it.<br>
+<a action="bypass -h Quest 140_ShadowFoxPart2 30912-07.htm">"I see. Where can I get the Dark Crystal?"</a>
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-07.htm

@@ -0,0 +1,5 @@
+<html><body>Magister Xenovia:<br>
+Go to the <font color="LEVEL">Field of Whispers</font> and hunt <font color="LEVEL">Crokians, Dailaons, Crokian Warriors, and Parhit</font> in order to collect the <font color="LEVEL">Dark Crystals</font>. <br>
+You will need at least 5 of them for each experiment.<br>
+If you successfully carry out the experiment using the <font color="LEVEL">Dark Crystals</font>, you will be able to produce Dark Oxide. I will give you the Cryptogram of the <font color="LEVEL">Goddess Sword</font> in exchange for <font color="LEVEL">3</font> Dark Oxides.
+</body></html>

+ 11 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-08.htm

@@ -0,0 +1,11 @@
+<html><body>Magister Xenovia:<br>
+Ah! I see that you have brought the Dark Crystal... <br>
+I will give you 3 solutions. <br>
+You can continue the experiment by choosing one of them.<br>
+You will need 5 Dark Crystals for each experiment.<br>
+One of the 3 solutions will be able to produce Dark Oxide.<br>
+Please choose carefully...<br><br>
+<a action="bypass -h Quest 140_ShadowFoxPart2 30912-09.htm">Use the red solution.</a><br>
+<a action="bypass -h Quest 140_ShadowFoxPart2 30912-09.htm">Use the blue solution.</a><br>
+<a action="bypass -h Quest 140_ShadowFoxPart2 30912-09.htm">Use the yellow solution.</a>
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-09.htm

@@ -0,0 +1,5 @@
+<html><body>Magister Xenovia:<br>
+(The Dark Crystal dissolves in the solution. <br>
+The mixture begins to bubble.<br>Suddenly, something emerges from the bubbles... <br><br>
+The experiment was a success!)
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-09a.htm

@@ -0,0 +1,5 @@
+<html><body>Magister Xenovia:<br>
+(The Dark Crystal dissolves in the solution. <br>
+The mixture begins to bubble.<br>But nothing else happens.<br><br>
+The experiment was a failure!)
+</body></html>

+ 7 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-09b.htm

@@ -0,0 +1,7 @@
+<html><body>Magister Xenovia:<br>
+(The mixture begins to bubble.<br>
+Suddenly, something emerges from the bubbles... <br><br>
+The experiment was a success!)<br>Excellent! We have 3 Dark Oxides...<br>
+Thank you. Thanks to your help, I no longer need the Cryptogram of the Goddess Sword.<br>
+Take it with my gratitude!
+</body></html>

+ 3 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/30912-10.htm

@@ -0,0 +1,3 @@
+<html><body>Magister Xenovia:<br>
+Thanks to your efforts, I was able to get all the materials I needed. I am in your debt, my friend!
+</body></html>

+ 132 - 0
datapack_development/data/scripts/quests/140_ShadowFoxPart2/__init__.py

@@ -0,0 +1,132 @@
+# Made by Kerberos
+# this script is part of the Official L2J Datapack Project.
+# Visit http://forum.l2jdp.com for more details.
+import sys
+from net.sf.l2j.gameserver.model.quest import State
+from net.sf.l2j.gameserver.model.quest import QuestState
+from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
+
+qn = "140_ShadowFoxPart2"
+
+# NPCs
+KLUCK = 30895
+XENOVIA = 30912
+
+# ITEMs
+CRYSTAL = 10347
+OXYDE = 10348
+CRYPT = 10349
+
+# MONSTERs
+NPC=[20789,20790,20791,20792]
+
+class Quest (JQuest) :
+
+ def __init__(self,id,name,descr):
+    JQuest.__init__(self,id,name,descr)
+    self.questItemIds = [CRYSTAL,OXYDE,CRYPT]
+
+ def onEvent (self,event,st) :
+    htmltext = event
+    id = st.getState()
+    cond = st.getInt("cond")
+    if event == "30895-02.htm" :
+       st.set("cond","1")
+       st.playSound("ItemSound.quest_accept")
+    elif event == "30895-05.htm" :
+       st.set("cond","2")
+       st.playSound("ItemSound.quest_middle")
+    elif event == "30895-09.htm" :
+       st.playSound("ItemSound.quest_finish")
+       st.unset("talk")
+       st.exitQuest(False)
+       st.giveItems(57, 18775)
+       if player.getLevel() >= 37 and player.getLevel() <= 42:
+          st.addExpAndSp(30000,2000)
+    elif event == "30912-07.htm" :
+       st.set("cond","3")
+       st.playSound("ItemSound.quest_middle")
+    elif event == "30912-09.htm" :
+       st.takeItems(CRYSTAL, 5)
+       if st.getRandom(100) <= 60 :
+          st.giveItems(OXYDE,1)
+          if st.getQuestItemsCount(OXYDE) >= 3 :
+             htmltext = "30912-09b.htm"
+             st.set("cond","4")
+             st.playSound("ItemSound.quest_middle")
+             st.takeItems(CRYSTAL, -1)
+             st.takeItems(OXYDE, -1)
+             st.giveItems(CRYPT,1)
+       else:
+          htmltext = "30912-09a.htm"
+    return htmltext
+
+ def onTalk (self,npc,player):
+    htmltext = "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.</body></html>"
+    st = player.getQuestState(qn)
+    if not st : return htmltext
+
+    npcId = npc.getNpcId()
+    id = st.getState()
+    cond = st.getInt("cond")
+    if id == State.CREATED : return htmltext
+    if id == State.COMPLETED :
+       htmltext = "<html><body>This quest has already been completed.</body></html>"
+    elif npcId == KLUCK :
+       if cond == 0 :
+          if player.getLevel() >= 37:
+             htmltext = "30895-01.htm"
+          else:
+             htmltext = "30895-00.htm"
+             st.exitQuest(1)
+       elif cond == 1 :
+          htmltext = "30895-02.htm"
+       elif cond in [2,3] :
+          htmltext = "30895-06.htm"
+       elif cond == 4 :
+          if st.getInt("talk"):
+             htmltext = "30895-08.htm"
+          else:
+             htmltext = "30895-07.htm"
+             st.takeItems(CRYPT, -1)
+             st.set("talk","1")
+    elif npcId == XENOVIA :
+       if cond == 2 :
+          htmltext = "30912-01.htm"
+       elif cond == 3 :
+          if st.getQuestItemsCount(CRYSTAL) >= 5 :
+             htmltext = "30912-08.htm"
+          else:
+             htmltext = "30912-07.htm"
+       elif cond == 4 :
+          htmltext = "30912-10.htm"
+    return htmltext
+
+ def onKill(self,npc,player,isPet):
+    st = player.getQuestState(qn)
+    if not st : return
+    if st.getState() != State.STARTED : return
+    if st.getInt("cond")==3 and st.getRandom(100) <= 80 :
+       st.playSound("ItemSound.quest_itemget")
+       st.giveItems(CRYSTAL,1)
+    return
+
+ def onFirstTalk (self,npc,player):
+   st = player.getQuestState(qn)
+   if not st :
+      st = self.newQuestState(player)
+   qs = st.getPlayer().getQuestState("139_ShadowFoxPart1")
+   if qs :
+      if qs.getState() == State.COMPLETED :
+         if st.getState() == State.CREATED :
+            st.setState(State.STARTED)
+   npc.showChatWindow(player)
+   return
+
+QUEST       = Quest(140,qn,"Shadow Fox - 2")
+
+QUEST.addFirstTalkId(KLUCK) #this quest doesnt have starter npc, quest will appear in list only when u finish quest 139
+QUEST.addTalkId(KLUCK)
+QUEST.addTalkId(XENOVIA)
+for mob in NPC :
+   QUEST.addKillId(mob)

+ 4 - 1
datapack_development/sql/etcitem.sql

@@ -7433,4 +7433,7 @@ INSERT INTO `etcitem` VALUES
 (10343,"Angus' Recommendation", "false", "quest", 0, "stackable", "wood", "none", -1, 0, NULL, "true", "true", "true", "true", "", ""),
 (10344,"Pupina's Recommendation", "false", "quest", 0, "stackable", "wood", "none", -1, 0, NULL, "true", "true", "true", "true", "", ""),
 (10345,"Records Chest Key Fragment", "false", "quest", 0, "stackable", "wood", "none", -1, 0, NULL, "true", "true", "true", "true", "", ""),
-(10346,"Records Chest", "false", "quest", 0, "stackable", "wood", "none", -1, 0, NULL, "true", "true", "true", "true", "", "");
+(10346,"Records Chest", "false", "quest", 0, "stackable", "wood", "none", -1, 0, NULL, "true", "true", "true", "true", "", ""),
+(10347,"Dark Crystal", "false", "quest", 0, "stackable", "wood", "none", -1, 0, NULL, "true", "true", "true", "true", "", ""),
+(10348,"Dark Oxide", "false", "quest", 0, "stackable", "wood", "none", -1, 0, NULL, "true", "true", "true", "true", "", ""),
+(10349,"Cryptogram of the Goddess Sword", "false", "quest", 0, "stackable", "wood", "none", -1, 0, NULL, "true", "true", "true", "true", "", "");