Browse Source

new quest: 139 - Shadow Fox - 1

Kerberos 17 years ago
parent
commit
04fb1be2ba
20 changed files with 204 additions and 2 deletions
  1. 1 0
      datapack_development/data/scripts.cfg
  2. 4 0
      datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-00.htm
  3. 5 0
      datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-01.htm
  4. 7 0
      datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-02.htm
  5. 4 0
      datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-03.htm
  6. 4 0
      datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-04.htm
  7. 5 0
      datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-05.htm
  8. 6 0
      datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-06.htm
  9. 5 0
      datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-07.htm
  10. 4 0
      datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-08.htm
  11. 8 0
      datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-09.htm
  12. 8 0
      datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-10.htm
  13. 8 0
      datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-11.htm
  14. 4 0
      datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-12.htm
  15. 4 0
      datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-13.htm
  16. 6 0
      datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-14.htm
  17. 5 0
      datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-15.htm
  18. 7 0
      datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-16.htm
  19. 106 0
      datapack_development/data/scripts/quests/139_ShadowFoxPart1/__init__.py
  20. 3 2
      datapack_development/sql/etcitem.sql

+ 1 - 0
datapack_development/data/scripts.cfg

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

+ 4 - 0
datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-00.htm

@@ -0,0 +1,4 @@
+<html><body>Warehouse Keeper Mia:<br>
+You are not yet ready to meet Shadow Fox.<br>
+(Only characters level 37 and above are permitted to undertake this quest.)
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-01.htm

@@ -0,0 +1,5 @@
+<html><body>Warehouse Keeper Mia:<br>
+You want to meet Shadow Fox, eh? Shh! Keep your voice down...<br>
+How did you know that I have a connection with Shadow Fox?<br>
+<a action="bypass -h Quest 139_ShadowFoxPart1 30896-02.htm">Tell her that you heard it from High Priest Sylvain.</a>
+</body></html>

+ 7 - 0
datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-02.htm

@@ -0,0 +1,7 @@
+<html><body>Warehouse Keeper Mia:<br>
+Oh, I see...<br>
+Well, if you wish to meet Shadow Fox, you will first have to prove your reliability and ability to me.<br>
+I warn you, I won't go easy on you...<br>
+So do you still want to contact Shadow Fox?<br>
+<a action="bypass -h Quest 139_ShadowFoxPart1 30896-03.htm">"Yes! I need to talk to him about something very important."</a>
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-03.htm

@@ -0,0 +1,4 @@
+<html><body>Warehouse Keeper Mia:<br>
+Very well! Then listen to what you must do to prove yourself to me...<br>
+<a action="bypass -h Quest 139_ShadowFoxPart1 30896-04.htm">Keep listening.</a>
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-04.htm

@@ -0,0 +1,4 @@
+<html><body>Warehouse Keeper Mia:<br>
+I may seem a humble warehouse keeper, but I have another occupation as well -- a secret occupation...<br>
+<a action="bypass -h Quest 139_ShadowFoxPart1 30896-05.htm">"Secret?"</a>
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-05.htm

@@ -0,0 +1,5 @@
+<html><body>Warehouse Keeper Mia:<br>
+Yes, I belong to a secret organization that buys and sells information.<br>We are called information dealers...<br>
+Shadow Fox is our chief, the senior information dealer.<br>But he takes great care to hide his identity -- given what he knows, he would certainly be captured or killed if his true name was known. <br>
+<a action="bypass -h Quest 139_ShadowFoxPart1 30896-06.htm">Keep listening.</a>
+</body></html>

+ 6 - 0
datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-06.htm

@@ -0,0 +1,6 @@
+<html><body>Warehouse Keeper Mia:<br>
+However, since you have been recommended by High Priest Sylvain...<br>
+You came to assist us in the search for the angel, eh?<br>To do so, you must join our organization as an agent. You must undertake the missions we assign you and serve our interests.<br>We are a neutral party in political, religious and cultural conflicts, entering into contracts with any and all sides if the price is right.<br>
+Agents and information dealers work independently on our clients' behalf and are sworn to secrecy.<br>
+<a action="bypass -h Quest 139_ShadowFoxPart1 30896-07.htm">Keep listening.</a>
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-07.htm

@@ -0,0 +1,5 @@
+<html><body>Warehouse Keeper Mia:<br>
+Only trusted high-level agents are permitted to assist with such an important and sensitive mission as the search for the angel.<br>
+If that is your desire, then you must prove yourself at each level -- low, mid and high -- before you can be assigned to this particular mission.<br>
+<a action="bypass -h Quest 139_ShadowFoxPart1 30896-08.htm">Keep listening.</a>
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-08.htm

@@ -0,0 +1,4 @@
+<html><body>Warehouse Keeper Mia:<br>
+I am a low-level information dealer. I will make you a low-level agent if you prove your value to me on one of my current assignments.<br>
+<a action="bypass -h Quest 139_ShadowFoxPart1 30896-09.htm">Ask how you can help.</a>
+</body></html>

+ 8 - 0
datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-09.htm

@@ -0,0 +1,8 @@
+<html><body>Warehouse Keeper Mia:<br>
+Do you know Iason Heine, the president of Heine Merchant Association?<br>
+He has been responsible for paying a large portion of the taxes owed to the lord, and for financially supporting the repair of Innadril Castle.<br>
+But some people say that he is simply waiting for an opportunity to seize greater power.<br>
+Our mission is to discover evidence that proves that Iason is in collusion with the Tasaba Lizardmen.<br>
+If this is true, it will seriously damage his career and reputation.<br>
+<a action="bypass -h Quest 139_ShadowFoxPart1 30896-10.htm">"How?"</a>
+</body></html>

+ 8 - 0
datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-10.htm

@@ -0,0 +1,8 @@
+<html><body>Warehouse Keeper Mia:<br>
+When he was knighted, Iason took a new family name, "Heine."<br>
+He said that he had discovered that the legendary hero Heine, who drove out the Lizardmen from the land of Innadril, was actually his ancestor.<br>
+But if he is in collusion with Lizardmen, his claim will lose its validity.<br>
+Moreover, if he became wealthy by monopolizing the trade route owned by the Tasaba Lizardmen at the expense of his countrymen, he will almost certainly be severely punished.<br>
+That, of course, doesn't concern us at all -- as long as we get paid...<br>
+<a action="bypass -h Quest 139_ShadowFoxPart1 30896-11.htm">"Tell me about the mission."</a>
+</body></html>

+ 8 - 0
datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-11.htm

@@ -0,0 +1,8 @@
+<html><body>Warehouse Keeper Mia:<br>
+Our client wants us to find the secret contract between the Tasaba Lizardmen and Iason.<br>
+...<br>
+Listen carefully now...<br>
+Go to the <font color="LEVEL">Field of Silence</font> and get rid of the <font color="LEVEL">Tasaba Lizardmen and Tasaba Lizardman Shaman</font> there. Once you have done so, you will be able to obtain <font color="LEVEL">both the pieces of the key to the Records Chest and the Records Chest itself</font>. I can make 1 key to the Records Chest if I have <font color="LEVEL">10 pieces of the key</font>.<br>
+What we seek should be within the Records Chest itself.<br>
+Now go bring me the Records Chest and the pieces of the key we need to open it!
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-12.htm

@@ -0,0 +1,4 @@
+<html><body>Warehouse Keeper Mia:<br>
+We need at least 10 pieces of the key and 1 Records Chest in order to find open it and find the evidence our client has asked for.<br>
+Go to the <font color="LEVEL">Field of Silence</font> and get rid of the <font color="LEVEL">Tasaba Lizardmen and Tasaba Lizardman Shaman</font> there. Once you have done so, you will be able to obtain <font color="LEVEL">both the pieces of the key to the Records Chest and the Records Chest itself</font>.
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-13.htm

@@ -0,0 +1,4 @@
+<html><body>Warehouse Keeper Mia:<br>
+Ah, well done! Now I can reforge the key and open the Records Chest.<br>
+<a action="bypass -h Quest 139_ShadowFoxPart1 30896-14.htm">Wait until she has finished.</a>
+</body></html>

+ 6 - 0
datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-14.htm

@@ -0,0 +1,6 @@
+<html><body>Warehouse Keeper Mia:<br>
+Yes, here's what we are looking for...<br>
+Oh! The part of this contract that lists the name of the parties involved is written in code.<br>
+I doubt this will help our client as much as they hoped...<br>
+<a action="bypass -h Quest 139_ShadowFoxPart1 30896-15.htm">"What should I do?"</a>
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-15.htm

@@ -0,0 +1,5 @@
+<html><body>Warehouse Keeper Mia:<br>
+Oh, you have done your part... I'm sure our client will still want this evidence, even if it's not quite the coffin nail they hoped for. In any case, we fulfilled our part of the contract and will still be paid.<br>
+...<br>
+<a action="bypass -h Quest 139_ShadowFoxPart1 30896-16.htm">"Did I pass the test?"</a>
+</body></html>

+ 7 - 0
datapack_development/data/scripts/quests/139_ShadowFoxPart1/30896-16.htm

@@ -0,0 +1,7 @@
+<html><body>Warehouse Mia:<br>
+Yes, adventurer. You have successfully proved your reliability and ability.<br>
+I confer on you the official title of low-level agent.<br>
+Congratulations!<br>
+...<br>
+Speak with <font color="LEVEL">Warehouse Freightman Kluck</font> if you want to become a mid-level agent.
+</body></html>

+ 106 - 0
datapack_development/data/scripts/quests/139_ShadowFoxPart1/__init__.py

@@ -0,0 +1,106 @@
+# 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 = "139_ShadowFoxPart1"
+
+# NPCs
+MIA = 30896
+
+# ITEMs
+FRAGMENT = 10345
+CHEST = 10346
+# MONSTERs
+NPC=[20784,20785,21639,21640]
+
+class Quest (JQuest) :
+
+ def __init__(self,id,name,descr):
+    JQuest.__init__(self,id,name,descr)
+    self.questItemIds = [FRAGMENT,CHEST]
+
+ def onEvent (self,event,st) :
+    htmltext = event
+    id = st.getState()
+    cond = st.getInt("cond")
+    if event == "30896-03.htm" :
+       st.set("cond","1")
+       st.playSound("ItemSound.quest_accept")
+    elif event == "30896-11.htm" :
+       st.set("cond","2")
+       st.playSound("ItemSound.quest_middle")
+    elif event == "30896-14.htm" :
+       st.takeItems(FRAGMENT, -1)
+       st.takeItems(CHEST, -1)
+       st.set("talk","1")
+    elif event == "30896-16.htm" :
+       st.playSound("ItemSound.quest_finish")
+       st.unset("talk")
+       st.exitQuest(False)
+       st.giveItems(57, 14050)
+       if player.getLevel() >= 37 and player.getLevel() <= 42:
+          st.addExpAndSp(30000,2000)
+    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 == MIA :
+       if cond == 0 :
+          if player.getLevel() >= 37:
+             htmltext = "30896-01.htm"
+          else:
+             htmltext = "30896-00.htm"
+             st.exitQuest(1)
+       elif cond == 1 :
+          htmltext = "30896-03.htm"
+       elif cond == 2 :
+          if st.getQuestItemsCount(FRAGMENT) >= 10 and st.getQuestItemsCount(CHEST) >= 1:
+             htmltext = "31418-13.htm"
+          elif st.getInt("talk"):
+             htmltext = "31418-14.htm"
+          else:
+             htmltext = "31418-12.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")==2 :
+       st.playSound("ItemSound.quest_itemget")
+       st.giveItems(FRAGMENT,1)
+       if st.getRandom(100) <= 2 :
+          st.giveItems(CHEST,1)
+    return
+
+ def onFirstTalk (self,npc,player):
+   st = player.getQuestState(qn)
+   if not st :
+      st = self.newQuestState(player)
+   qs = st.getPlayer().getQuestState("138_TempleChampionPart2")
+   if qs :
+      if qs.getState() == State.COMPLETED :
+         if st.getState() == State.CREATED :
+            st.setState(State.STARTED)
+   npc.showChatWindow(player)
+   return
+
+QUEST       = Quest(139,qn,"Shadow Fox - 1")
+
+QUEST.addFirstTalkId(MIA) #this quest doesnt have starter npc, quest will appear in list only when u finish quest 137
+QUEST.addTalkId(MIA)
+for mob in NPC :
+   QUEST.addKillId(mob)

+ 3 - 2
datapack_development/sql/etcitem.sql

@@ -7431,5 +7431,6 @@ INSERT INTO `etcitem` VALUES
 (10341,"Temple Manifesto", "false", "quest", 0, "stackable", "wood", "none", -1, 0, NULL, "true", "true", "true", "true", "", ""),
 (10342,"Relics of the Dark Elf Trainee", "false", "quest", 0, "stackable", "wood", "none", -1, 0, NULL, "true", "true", "true", "true", "", ""),
 (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", "", "");
-
+(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", "", "");