瀏覽代碼

new quest: 134 - Temple Missionary

Kerberos 17 年之前
父節點
當前提交
77e4a6f03b
共有 20 個文件被更改,包括 236 次插入2 次删除
  1. 1 0
      datapack_development/data/scripts.cfg
  2. 5 0
      datapack_development/data/scripts/quests/134_TempleMissionary/30067-01.htm
  3. 6 0
      datapack_development/data/scripts/quests/134_TempleMissionary/30067-02.htm
  4. 5 0
      datapack_development/data/scripts/quests/134_TempleMissionary/30067-03.htm
  5. 7 0
      datapack_development/data/scripts/quests/134_TempleMissionary/30067-04.htm
  6. 3 0
      datapack_development/data/scripts/quests/134_TempleMissionary/30067-05.htm
  7. 6 0
      datapack_development/data/scripts/quests/134_TempleMissionary/30067-06.htm
  8. 8 0
      datapack_development/data/scripts/quests/134_TempleMissionary/30067-07.htm
  9. 7 0
      datapack_development/data/scripts/quests/134_TempleMissionary/30067-08.htm
  10. 5 0
      datapack_development/data/scripts/quests/134_TempleMissionary/31418-01.htm
  11. 7 0
      datapack_development/data/scripts/quests/134_TempleMissionary/31418-02.htm
  12. 5 0
      datapack_development/data/scripts/quests/134_TempleMissionary/31418-03.htm
  13. 6 0
      datapack_development/data/scripts/quests/134_TempleMissionary/31418-04.htm
  14. 5 0
      datapack_development/data/scripts/quests/134_TempleMissionary/31418-05.htm
  15. 8 0
      datapack_development/data/scripts/quests/134_TempleMissionary/31418-06.htm
  16. 4 0
      datapack_development/data/scripts/quests/134_TempleMissionary/31418-07.htm
  17. 3 0
      datapack_development/data/scripts/quests/134_TempleMissionary/31418-08.htm
  18. 137 0
      datapack_development/data/scripts/quests/134_TempleMissionary/__init__.py
  19. 6 1
      datapack_development/sql/etcitem.sql
  20. 2 1
      datapack_development/sql/npc.sql

+ 1 - 0
datapack_development/data/scripts.cfg

@@ -221,6 +221,7 @@ quests/121_PavelTheGiants/__init__.py
 quests/122_OminousNews/__init__.py
 quests/123_TheLeaderAndTheFollower/__init__.py
 quests/124_MeetingTheElroki/__init__.py
+quests/134_TempleMissionary/__init__.py
 quests/136_MoreThanMeetsTheEye/__init__.py
 quests/151_SaveMySister1/__init__.py
 quests/152_ShardsOfGolem/__init__.py

+ 5 - 0
datapack_development/data/scripts/quests/134_TempleMissionary/30067-01.htm

@@ -0,0 +1,5 @@
+<html><body>Priest Glyvka:<br>
+Our order steadfastly obeys Einhasad's will even in the face of persecution and chaos.<br>
+We share with the nobility the desire to preserve order wherever possible.<br>I ask you, adventurer: in obedience to the goddess, are you willing to prove yourself a servant of order?<br>
+<a action="bypass -h Quest 134_TempleMissionary 30067-02.htm">"Yes, I am ready."</a>
+</body></html>

+ 6 - 0
datapack_development/data/scripts/quests/134_TempleMissionary/30067-02.htm

@@ -0,0 +1,6 @@
+<html><body>Priest Glyvka:<br>
+Then listen carefully...<br>
+North of Dion Village lie the Cruma Marshlands.<br>
+It is said that once the Cruma was a gigantic creature that was born at the creation of the world. None of its remains exist anymore, however.<br>
+<a action="bypass -h Quest 134_TempleMissionary 30067-03.htm">Keep listening.</a>
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/134_TempleMissionary/30067-03.htm

@@ -0,0 +1,5 @@
+<html><body>Priest Glyvka:<br>
+When the Giants rebelled against the goddess, they captured Cruma and imprisoned it in order to experiment on it.<br>
+Bound with massive steel chains, the Cruma could only move across a very limited area. Over time, it wore down the earth in that spot and water seeped in, resulting in the marshlands visible today.<br>
+<a action="bypass -h Quest 134_TempleMissionary 30067-04.htm">"What am I supposed to do?"</a>
+</body></html>

+ 7 - 0
datapack_development/data/scripts/quests/134_TempleMissionary/30067-04.htm

@@ -0,0 +1,7 @@
+<html><body>Priest Glyvka:<br>
+Patience...<br>
+The monsters who inhabit the Cruma Marshlands were also the twisted creations of the Giants' so-called science.<br>
+Abandoned and isolated, there must be a large number of them by now. These creatures by their very existence are violations of the order established by Einhasad. They must be destroyed!<br>
+We also know of traitors who wish to acquire the secret knowledge of the Giants for themselves and use it against the servants of order.<br>Your mission is to vanquish both the monsters bred from the chaos of the Cruma Marshlands and the traitors who have been seduced by the Giants' ancient heresy.<br>
+<font color="LEVEL">Spellbook Seller Rouke</font> will give you more details.
+</body></html>

+ 3 - 0
datapack_development/data/scripts/quests/134_TempleMissionary/30067-05.htm

@@ -0,0 +1,3 @@
+<html><body>Priest Glyvka:<br>
+Seek out <font color="LEVEL">Luke, the spellbook seller</font>, and then vanquish both the monsters bred from the chaos of the Cruma Marshlands and the apostates who have been seduced by the Giants' ancient heresy.
+</body></html>

+ 6 - 0
datapack_development/data/scripts/quests/134_TempleMissionary/30067-06.htm

@@ -0,0 +1,6 @@
+<html><body>Priest Glyvka:<br>
+You have successfully accomplished your mission? Einhasad be praised!<br>
+Now you have become the feet of our Temple.<br>
+Listen carefully to what I am about to tell you...<br>
+<a action="bypass -h Quest 134_TempleMissionary 30067-07.htm">Keep listening.</a>
+</body></html>

+ 8 - 0
datapack_development/data/scripts/quests/134_TempleMissionary/30067-07.htm

@@ -0,0 +1,8 @@
+<html><body>Priest Glyvka:<br>
+We serve Einhasad, the goddess of light, order and power.<br>
+Eons ago, Einhasad imprisoned Shilen, the evil goddess of death. She also destroyed the Giants, who in their arrogance and corruption sought to dethrone the gods themselves.<br>
+The people of this continent long served Einhasad in faithfulness and righteousness.<br>
+Recently, however, we have encountered signs that Shilen's influence is again growing: groups of disciples devoted to preparing her return, and hordes of monsters that have invaded the peaceful regions of our land.<br>In this age of rival warlords and ambitious adventurers, the chaos necessary for evil to prevail is all too prevalent.<br>
+It is our task to use all our resources to preserve order and carry out Einhasad's will.<br>
+<a action="bypass -h Quest 134_TempleMissionary 30067-08.htm">"I understand. I will help as much as I can."</a>
+</body></html>

+ 7 - 0
datapack_development/data/scripts/quests/134_TempleMissionary/30067-08.htm

@@ -0,0 +1,7 @@
+<html><body>Priest Glyvka:<br>
+Then accept this badge, which shows that you are the feet of our Temple. Other citizens should learn from your example...<br><br>
+If you also become <font color="LEVEL">the hands of the association, you will be awarded the title of the limbs of the association</font>...<br>
+To become <font color="LEVEL">the hands of the Temple, seek out Priest Shegfield</font>.<br><br>
+You can be made the <font color="LEVEL">limbs of the Temple by High Priest Sylvain</font>...<br>If you aspire to that level, you will have a place in our council and will be involved in important decisions.<br><br>
+Congratulations on your achievement as the feet of our association. I know you will well repay our trust...
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/134_TempleMissionary/31418-01.htm

@@ -0,0 +1,5 @@
+<html><body>Spellbook Seller Rouke:<br>
+You are here on behalf of the Temple, eh?<br>
+Very well. I will explain what you must do to defeat the monsters and traitors in the Cruma Marshlands. Listen carefully!<br>
+<a action="bypass -h Quest 134_TempleMissionary 31418-02.htm">Listen.</a>
+</body></html>

+ 7 - 0
datapack_development/data/scripts/quests/134_TempleMissionary/31418-02.htm

@@ -0,0 +1,7 @@
+<html><body>Spellbook Seller Rouke:<br>
+You can obtain the <font color="LEVEL">Giants' Experimental Tools Fragments</font> by defeating the <font color="LEVEL">Marsh Stakatos, Stinger Wasps, Marsh Stakato Workers, Toad Lords, Marsh Stakato Soldiers, Marsh Spiders and Marsh Stakato Drones</font> in the <font color="LEVEL">Cruma Marshlands</font>.<br>
+If you bring me <font color="LEVEL">10 Giants' Experimental Tool Fragments</font>, I will re-assemble them into the <font color="LEVEL">Giants' Experimental Tool</font>.<br>
+If you then fight the monsters while wearing this, the traitors who are attracted to the device will appear.<br>
+Defeat them and bring me <font color="LEVEL">3 research papers concerning the Giants' technology</font>...<br>
+The Giants' Experimental Tools are easily broken, so you had better be sure to carry a sufficient number of them.
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/134_TempleMissionary/31418-03.htm

@@ -0,0 +1,5 @@
+<html><body>Spellbook Seller Rouke:<br>
+You can obtain the <font color="LEVEL">pieces from the Giant's Experimental Tools</font> by defeating the <font color="LEVEL">Marsh Stakatos, Stinger Wasps, Marsh Stakato Workers, Toad Lords, Marsh Stakato Soldiers, Marsh Spiders and Marsh Stakato Drones</font> in the <font color="LEVEL">Cruma Marshlands</font>.<br>
+If you bring me <font color="LEVEL">10 Giant's Experimental Tool Fragments</font>, I will re-assemble them into the <font color="LEVEL">Giant's Experimental Tool</font>.<br>
+If you then fight the monsters while wearing this, the traitors who are attracted to the device will appear.<br>Defeat them and bring me <font color="LEVEL">3 research papers concerning the Giants' technology</font>. Then you will have done your duty.
+</body></html>

+ 6 - 0
datapack_development/data/scripts/quests/134_TempleMissionary/31418-04.htm

@@ -0,0 +1,6 @@
+<html><body>Spellbook Seller Rouke:<br>
+Excellent, you've gathered the <font color="LEVEL">Giants' Experimental Tool Fragments</font> I need. Now take this fully operational <font color="LEVEL">Giant's Experimental Tool</font>.<br>
+If you fight the monsters while this tool is in your inventory, the traitors will appear, as they are drawn to the tool.<br>
+Defeat them and bring me <font color="LEVEL">3 research papers concerning the Giants' technology</font>...<br>
+The Giants' Experimental Tools are easily broken, so you had better be sure to carry a sufficient number of them.
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/134_TempleMissionary/31418-05.htm

@@ -0,0 +1,5 @@
+<html><body>Spellbook Seller Rouke:<br>
+Oh, you've gathered all the research papers on the Giants' technology...<br>
+The Temple will be very pleased; they are keenly interested in the lost technology of the Giants...<br>
+<a action="bypass -h Quest 134_TempleMissionary 31418-06.htm">"What are you talking about? The Temple of Einhasad, the goddess of order, is interested in the chaos-spawned technology of the Giants?"</a>
+</body></html>

+ 8 - 0
datapack_development/data/scripts/quests/134_TempleMissionary/31418-06.htm

@@ -0,0 +1,8 @@
+<html><body>Spellbook Seller Rouke:<br>
+Uh...perhaps I've said too much.<br>
+I do not know why the Temple is interested in the ancient Giants' technology.<br>
+Perhaps it is simply in order to keep it away from the traitors, or to counter its effects should it fall into the wrong hands.<br>
+How can I understand the subtle strategies of the Temple's leaders?<br>
+In any case, please pass this report to Priestess Glyvka.<br>
+<a action="bypass -h Quest 134_TempleMissionary 31418-07.htm">Receive the report from Rouke.</a>
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/134_TempleMissionary/31418-07.htm

@@ -0,0 +1,4 @@
+<html><body>Spellbook Seller Rouke:<br>
+The report also mentions your help in this matter, adventurer.<br>
+If you give this to Priestess Glyvka, I am sure she will express her thanks...
+</body></html>

+ 3 - 0
datapack_development/data/scripts/quests/134_TempleMissionary/31418-08.htm

@@ -0,0 +1,3 @@
+<html><body>Spellbook Seller Rouke:<br>
+If you give this report to Priestess Glyvka, adventurer, she will judge your worthiness.
+</body></html>

+ 137 - 0
datapack_development/data/scripts/quests/134_TempleMissionary/__init__.py

@@ -0,0 +1,137 @@
+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 = "134_TempleMissionary"
+
+# NPCs
+GLYVKA = 30067
+ROUKE = 31418
+
+# ITEMs
+FRAGMENT = 10335
+TOOL = 10336
+REPORT = 10337
+REPORT2 = 10338
+BADGE = 10339
+
+# MONSTERs
+NPC = [20157,20229,20230,20231,20232,20233,20234,27339]
+
+class Quest (JQuest) :
+
+ def __init__(self,id,name,descr):
+    JQuest.__init__(self,id,name,descr)
+    self.questItemIds = [FRAGMENT,TOOL,REPORT,REPORT2]
+
+ def onEvent (self,event,st) :
+    htmltext = event
+    id = st.getState()
+    cond = st.getInt("cond")
+    if event == "30067-02.htm" :
+       st.set("cond","1")
+       st.setState(State.STARTED)
+       st.playSound("ItemSound.quest_accept")
+    elif event == "30067-04.htm" :
+       st.set("cond","2")
+       st.playSound("ItemSound.quest_middle")
+    elif event == "30067-08.htm" :
+       st.playSound("ItemSound.quest_finish")
+       st.unset("talk")
+       st.exitQuest(False)
+       st.giveItems(57, 15100)
+       st.giveItems(BADGE, 1)
+    elif event == "31418-02.htm" :
+       st.set("cond","3")
+       st.playSound("ItemSound.quest_middle")
+    elif event == "31418-07.htm" :
+       st.set("cond","5")
+       st.playSound("ItemSound.quest_middle")
+       st.giveItems(REPORT2, 1)
+       st.set("talk","0")
+    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.COMPLETED :
+       htmltext = "<html><body>This quest has already been completed.</body></html>"
+    elif npcId == GLYVKA :
+       if cond == 0 :
+          if player.getLevel() >= 35 :
+             htmltext = "30067-01.htm"
+          else:
+             htmltext = "30067-00.htm"
+             st.exitQuest(1)
+       elif cond == 1 :
+          htmltext = "30067-02.htm"
+       elif cond in [2,3,4] :
+          htmltext = "30067-05.htm"
+       elif cond == 5 :
+          if st.getQuestItemsCount(REPORT2) >= 1:
+             htmltext = "30067-06.htm"
+             st.takeItems(REPORT2, -1)
+             st.set("talk","1")
+          elif st.getInt("talk"):
+             htmltext = "30067-07.htm"
+    elif npcId == ROUKE :
+       if cond == 2 :
+          htmltext = "31418-01.htm"
+       elif cond == 3 :
+          count = st.getQuestItemsCount(FRAGMENT)
+          if count >= 10 :
+             htmltext = "31418-04.htm"
+             calc = int(count/10)
+             st.takeItems(FRAGMENT, calc*10)
+             st.giveItems(TOOL, calc)
+          else:
+             htmltext = "31418-03.htm"
+       elif cond == 4 :
+          if st.getQuestItemsCount(REPORT) >= 3:
+             htmltext = "31418-05.htm"
+             st.takeItems(FRAGMENT, -1)
+             st.takeItems(TOOL, -1)
+             st.takeItems(REPORT, -1)
+             st.set("talk","1")
+          elif st.getInt("talk"):
+             htmltext = "31418-06.htm"
+       elif cond == 5 :
+          htmltext = "31418-08.htm"
+    return htmltext
+
+ def onKill(self,npc,player,isPet):
+    st = player.getQuestState(qn)
+    if not st : return
+    if st.getState() != State.STARTED : return
+    npcId = npc.getNpcId()
+    if st.getInt("cond")==3 :
+       if npcId == 27339 :
+          st.giveItems(REPORT,1)
+          if st.getQuestItemsCount(REPORT) >= 3:
+             st.set("cond","4")
+             st.playSound("ItemSound.quest_middle")
+          else :
+             st.playSound("ItemSound.quest_itemget")
+       else:
+          if st.getQuestItemsCount(TOOL) >= 1:
+             st.takeItems(TOOL, 1)
+             if st.getRandom(100) <= 45 :
+                st.addSpawn(27339,npc,True,900000)
+          elif st.getRandom(100) <= 70 :
+             st.playSound("ItemSound.quest_itemget")
+             st.giveItems(FRAGMENT,1)
+    return
+
+QUEST       = Quest(134,qn,"Temple Missionary")
+
+QUEST.addStartNpc(GLYVKA)
+QUEST.addTalkId(ROUKE)
+QUEST.addTalkId(GLYVKA)
+for mob in NPC :
+   QUEST.addKillId(mob)

+ 6 - 1
datapack_development/sql/etcitem.sql

@@ -7414,4 +7414,9 @@ INSERT INTO `etcitem` VALUES
 (10272,'Treasure Sack Piece','false','none',0,'stackable','wood','none',-1,0,NULL,'true','true','true','true','',''),
 (10274,'Rabbit Transformation Scroll','false','none',120,'stackable','wood','none',-1,0,NULL,'true','true','true','true','',''),
 (10275,'Battle Manual - Warp','false','spellbook',120,'stackable','wood','none',-1,0,NULL,'true','true','true','true','',''),
-(10276,'Battle Manual - Soul Shock','false','spellbook',120,'stackable','wood','none',-1,0,NULL,'true','true','true','true','','');
+(10276,'Battle Manual - Soul Shock','false','spellbook',120,'stackable','wood','none',-1,0,NULL,'true','true','true','true','',''),
+(10335,"Giants' Experimental Tool Fragment", "false", "quest", 0, "stackable", "wood", "none", -1, 0, NULL, "true", "true", "true", "true", "", ""),
+(10336,"Giants' Experimental Tool", "false", "quest", 0, "stackable", "wood", "none", -1, 0, NULL, "true", "true", "true", "true", "", ""),
+(10337,"Giants' Technology Report", "false", "quest", 0, "stackable", "wood", "none", -1, 0, NULL, "true", "true", "true", "true", "", ""),
+(10338,"Rouke's Report", "false", "quest", 0, "stackable", "paper", "none", -1, 0, NULL, "true", "true", "true", "true", "", ""),
+(10339,"Badge - Temple Missionary", "quest", "none", 0, "stackable", "wood", "none", -1, 0, NULL, "true", "true", "true", "true", "", "");

+ 2 - 1
datapack_development/sql/npc.sql

@@ -4485,7 +4485,8 @@ INSERT INTO `npc` VALUES
 (27334, 27334, "Archon of Halisha", 0, "Quest Monster", 0, "LineageMonster2.ahrimanes", 14, 58, 76, "male", "L2Monster", 40, 4297, 1710, 13.43, 3.09, 40, 43, 30, 21, 20, 10, 0, 0, 2242, 534, 994, 433, 200, 150, 333, 6722, 0, 0, 38, 198, "NULL", 0, 0, 0, "LAST_HIT", 0, 0, 0, "fighter"),
 (27335, 27335, "Dark Angel Othiel", 0, "Quest Monster", 0, "LineageMonster.archangel", 15, 80, 81, "female", "L2Monster", 40, 41478, 1896, 120.87, 3.09, 40, 43, 30, 21, 20, 10, 0, 0, 1630, 499, 1182, 477, 317, 150, 333, 229, 0, 0, 70, 198, "NULL", 0, 0, 0, "LAST_HIT", 0, 0, 0, "balanced"),
 (27336, 27336, "Crimson Lady", 0, "Quest Monster", 0, "LineageMonster.succubus", 8, 22, 40, "male", "L2Monster", 40, 1527, 531, 7.11, 1.84, 40, 43, 30, 21, 20, 10, 0, 0, 273, 201, 131, 164, 278, 0, 333, 0, 0, 0, 29, 154, "NULL", 0, 0, 0, "LAST_HIT", 0, 0, 0, "fighter"),
-(27337, 27337, "Ol Mahum Officer Tak", 0, "Quest Monster", 0, "LineageMonster.ol_mahum_champion", 8, 22, 20, "male", "L2Monster", 40, 541, 213, 3.95, 1.21, 40, 43, 30, 21, 20, 10, 0, 0, 57, 94, 23, 76, 278, 0, 333, 2, 0, 0, 88, 143, "NULL", 0, 0, 0, "LAST_HIT", 0, 0, 0, "fighter");
+(27337, 27337, "Ol Mahum Officer Tak", 0, "Quest Monster", 0, "LineageMonster.ol_mahum_champion", 8, 22, 20, "male", "L2Monster", 40, 541, 213, 3.95, 1.21, 40, 43, 30, 21, 20, 10, 0, 0, 57, 94, 23, 76, 278, 0, 333, 2, 0, 0, 88, 143, "NULL", 0, 0, 0, "LAST_HIT", 0, 0, 0, "fighter"),
+(27339, 27339, "Cruma Marshlands Traitor", 0, "Quest Monster", 0, "LineageMonster.ol_mahum_champion", 6, 21.5, 35, "female", "L2Monster", 40, 1220, 426, 6.95, 2.21, 40, 43, 30, 21, 20, 10, 0, 0, 415, 217, 192, 315, 278, 0, 333, 946, 0, 0, 64, 180, "NULL", 0, 0, 0, "LAST_HIT", 0, 0, 0, "fighter");
 
 INSERT INTO `npc` VALUES
 (29001, 29001, "Queen Ant", 0, "", 0, "Monster.queen_ant", 45, 53, 40, "female", "L2GrandBoss", 40, 229898, 667, 495.04, 2.14, 60, 57, 73, 76, 70, 80, 2179535, 140740, 329, 1615, 77, 655, 278, 0, 3819, 0, 0, 0, 129, 372, "queen_ant_clan", 1000, 0, 0, "LAST_HIT", 0, 0, 0, "balanced"),