Răsfoiți Sursa

new quest: 141 - Shadow Fox - 3

Kerberos 17 ani în urmă
părinte
comite
0fd92ae007
22 a modificat fișierele cu 227 adăugiri și 1 ștergeri
  1. 1 0
      datapack_development/data/scripts.cfg
  2. 4 0
      datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-00.htm
  3. 10 0
      datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-01.htm
  4. 4 0
      datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-02.htm
  5. 5 0
      datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-03.htm
  6. 4 0
      datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-04.htm
  7. 3 0
      datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-05.htm
  8. 5 0
      datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-06.htm
  9. 4 0
      datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-07.htm
  10. 6 0
      datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-08.htm
  11. 6 0
      datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-09.htm
  12. 5 0
      datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-10.htm
  13. 6 0
      datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-11.htm
  14. 7 0
      datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-12.htm
  15. 7 0
      datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-13.htm
  16. 7 0
      datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-14.htm
  17. 7 0
      datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-15.htm
  18. 8 0
      datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-16.htm
  19. 9 0
      datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-17.htm
  20. 6 0
      datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-18.htm
  21. 111 0
      datapack_development/data/scripts/quests/141_ShadowFoxPart3/__init__.py
  22. 2 1
      datapack_development/sql/etcitem.sql

+ 1 - 0
datapack_development/data/scripts.cfg

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

+ 4 - 0
datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-00.htm

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

+ 10 - 0
datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-01.htm

@@ -0,0 +1,10 @@
+<html><body>Warehouse Chief Natools:<br>
+Ah, you are the adventurer who wants to meet Shadow Fox!<br>
+I know your reasons already, so there's no need to justify yourself to me.<br>
+You want to know the status of our search for the angel, don't you?<br>
+I heard news from Kluck, you know.<br>
+But you must be a high-level agent to meet Shadow Fox.<br>
+Before I can fully trust you, I must ask that you carry out another mission for me.<br><br>
+Are you ready?<br>
+<a action="bypass -h Quest 141_ShadowFoxPart3 30894-02.htm">"I am ready."</a>
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-02.htm

@@ -0,0 +1,4 @@
+<html><body>Warehouse Chief Natools:<br>
+Very well. I will explain what you must do...<br>
+<a action="bypass -h Quest 141_ShadowFoxPart3 30894-03.htm">Listen carefully.</a>
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-03.htm

@@ -0,0 +1,5 @@
+<html><body>Warehouse Chief Natools:<br>
+Before your arrival, I worked with another high-level agent I trusted completely.<br>
+Unfortunately, during his last mission he was attacked and slain by monsters...<br>
+<a action="bypass -h Quest 141_ShadowFoxPart3 30894-04.htm">Keep listening.</a>
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-04.htm

@@ -0,0 +1,4 @@
+<html><body>Warehouse Chief Natools:<br>
+My request is not very complicated -- just dangerous.<br>
+Go to <font color="LEVEL">Alligator Beach</font> and destroy the <font color="LEVEL">Crokian Warriors, Farhites and Alligators</font> you find there. Then collect <font color="LEVEL">30 Predecessor's Investigative Reports</font>.
+</body></html>

+ 3 - 0
datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-05.htm

@@ -0,0 +1,3 @@
+<html><body>Warehouse Chief Natools:<br>
+Go to <font color="LEVEL">Alligator Beach</font> and destroy the <font color="LEVEL">Crokian Warriors, Farhites and Alligators</font> you find there. Then collect <font color="LEVEL">30 Predecessor's Investigative Reports</font>.
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-06.htm

@@ -0,0 +1,5 @@
+<html><body>Warehouse Chief Natools:<br>
+Ah, you've returned with my agent's reports. Well done!<br>
+Please wait while I read these...<br>
+<a action="bypass -h Quest 141_ShadowFoxPart3 30894-07.htm">Wait.</a>
+</body></html>

+ 4 - 0
datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-07.htm

@@ -0,0 +1,4 @@
+<html><body>Warehouse Chief Natools:<br>
+What?! How could that possibly happen? Astonishing...<br>
+<a action="bypass -h Quest 141_ShadowFoxPart3 30894-08.htm">"What is it?"</a>
+</body></html>

+ 6 - 0
datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-08.htm

@@ -0,0 +1,6 @@
+<html><body>Warehouse Chief Natools:<br>
+(Natools mutters to himself, obviously deep in thought.)<br>
+Hmm... Perhaps...yes, this is the only way... Such an exceptional situation requires an exceptional response...<br><br>
+Hey -- you there!<br><br>
+<a action="bypass -h Quest 141_ShadowFoxPart3 30894-09.htm">"Yes?"</a>
+</body></html>

+ 6 - 0
datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-09.htm

@@ -0,0 +1,6 @@
+<html><body>Warehouse Chief Natools:<br>
+I had originally planned to give you several more missions to prove yourself worthy of being a high-level agent.<br>
+But the situation has changed, and I now need your assistance with a particularly sensitive and important mission.<br>
+On the basis of my personal authority, I hereby confer on you the title of high-level agent.<br>
+<a action="bypass -h Quest 141_ShadowFoxPart3 30894-10.htm">"Can I meet Shadow Fox now?"</a>
+</body></html>

+ 5 - 0
datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-10.htm

@@ -0,0 +1,5 @@
+<html><body>Warehouse Chief Natools:<br>
+Ha! Not particularly quick-witted, are you?<br>
+Think about it -- if Shadow Fox is the only one empowered by the authorities to create high-level agents, and now I have just made you a high-level agent...<br>
+<a action="bypass -h Quest 141_ShadowFoxPart3 30894-11.htm">"That means you must be..."</a>
+</body></html>

+ 6 - 0
datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-11.htm

@@ -0,0 +1,6 @@
+<html><body>Warehouse Chief Natools:<br>
+Yes... Not exactly what you expected, eh?<br>
+Well, anonymity has its uses in this game, as you'll discover if you survive long enough.<br>
+Now listen carefully...<br>
+<a action="bypass -h Quest 141_ShadowFoxPart3 30894-12.htm">Listen carefully.</a>
+</body></html>

+ 7 - 0
datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-12.htm

@@ -0,0 +1,7 @@
+<html><body>Warehouse Chief Natools:<br>
+As you already know, I instructed your predecessor to discover the location of the angel.<br>
+That was not, however, his sole mission.<br>
+Both the Temple and the Rulers of Dawn requested the use of a trusted secret messenger.<br>
+Your predecessor was also carrying out that task when he was killed...<br>
+<a action="bypass -h Quest 141_ShadowFoxPart3 30894-13.htm">Keep listening.</a>
+</body></html>

+ 7 - 0
datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-13.htm

@@ -0,0 +1,7 @@
+<html><body>Warehouse Chief Natools:<br>
+Moreover, I also received a request from the Preachers of the Wilderness and the Revolutionaries of Dusk concerning the angel...<br>
+Yes, we received 2 requests at the same time!<br>
+If you look over the details of each request contained in your predecessor's reports, one from the Temple and the other from the Preachers of the Wilderness, you will undoubtedly notice that the two are mutually exclusive. You cannot carry out both.<br>
+You must choose only one of them...<br>
+<a action="bypass -h Quest 141_ShadowFoxPart3 30894-14.htm">Keep listening.</a>
+</body></html>

+ 7 - 0
datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-14.htm

@@ -0,0 +1,7 @@
+<html><body>Warehouse Chief Natools:<br>
+Our organization takes a neutral stance in any dispute over power or ideology, nor am I personally interested in those things.<br>
+Normally we accept our missions based on the size of the payment.<br>
+In this case, however, both sides have offered us the same amount...<br>
+So I am giving this to you to decide.<br>Choose well -- our organization will abide by your decision.<br>
+<a action="bypass -h Quest 141_ShadowFoxPart3 30894-15.htm">"Before I choose, can you give me more information about each request?"</a>
+</body></html>

+ 7 - 0
datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-15.htm

@@ -0,0 +1,7 @@
+<html><body>Warehouse Chief Natools:<br>
+I am sorry, but I cannot. Whichever mission you choose, the details of the other must still be kept confidential.<br>
+This rule is what has allowed us to deal amicably with both sides over the years, preserving our integrity and earning our clients' trust.<br>
+But I understand that it might be difficult to choose without at least some additional information.<br>
+I can tell you more about the situation of each of these groups...<br>
+<a action="bypass -h Quest 141_ShadowFoxPart3 30894-16.htm">"Please tell me about the Rulers of Dawn and the Temple."</a>
+</body></html>

+ 8 - 0
datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-16.htm

@@ -0,0 +1,8 @@
+<html><body>Warehouse Chief Natools:<br>
+Very well. The Temple and the Rulers of Dawn believe that Einhasad created Humans, and that they are her rightful representatives in this world, with the power to issue commands in her name.<br>They believe that the other gods are inferior to Einhasad, and so their followers should submit to the Temple's leadership in the war against Shilen and the forces of chaos.<br>
+Unity and order are their chief concerns, and they take a dim view of diversity and individualism.<br>
+In fact, they believe that only through a unified society built on a rigid hierarchy can justice prevail and the weak be truly protected.<br>
+Certainly, their argument carries some weight: the weak are daily attacked and exploited, and justice seems but a dream to most...<br>
+Ultimately, the Temple and the Rulers of Dawn hope for some sort of reborn empire to bring peace and order to the land...<br>
+<a action="bypass -h Quest 141_ShadowFoxPart3 30894-17.htm">"What about the Preachers of the Wilderness and the Revolutionaries of Dusk?"</a>
+</body></html>

+ 9 - 0
datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-17.htm

@@ -0,0 +1,9 @@
+<html><body>Warehouse Chief Natools:<br>
+They respect diversity...<br>
+They claim that all powers and creatures are equal, and that the Temple and the Rulers of Dawn are simply trying to accumulate power and wealth for their own benefit.<br>
+The Preachers and the Revolutionaries of Dusk say that their opponents are hypocrites and liars intent on using religion to exploit the people...<br>
+They believe that true peace can only be achieved by respecting diversity of race, culture and belief. The use of force, they say, will only create a tyrannical artificial peace.<br>
+As the evidence of the hypocrisy of the Temple, they claim that Einhasad did not actually create Humans -- that story was concocted solely by Emperor Schuneimann in order to consolidate his power. The Temple and the Rulers of Dawn have perpetuated that myth, they say, to maintain their hold on power.<br>
+Both the Preachers and the Revolutionaries of Dusk are intent on finding iron-clad evidence of the Temple's hypocrisy that will sway the people to their side.<br>
+<a action="bypass -h Quest 141_ShadowFoxPart3 30894-18.htm">"Both sides seem to have valid points."</a>
+</body></html>

+ 6 - 0
datapack_development/data/scripts/quests/141_ShadowFoxPart3/30894-18.htm

@@ -0,0 +1,6 @@
+<html><body>Warehouse Chief Natools:<br>
+Yes... Peace can be achieved through both centralized authority and the harmony of diversity...<br>
+However, history shows that words like "order" and "peace" can be used to justify tyranny.<br>
+On the other hand, words like "harmony" and "diversity" may only be ideals impossible to achieve in reality...<br>
+"I will make my decision now."
+</body></html>

+ 111 - 0
datapack_development/data/scripts/quests/141_ShadowFoxPart3/__init__.py

@@ -0,0 +1,111 @@
+# 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 = "141_ShadowFoxPart3"
+
+# NPCs
+NATOOLS = 30894
+
+# ITEMs
+REPORT = 10350
+
+# MONSTERs
+NPC=[20791,20792,20135]
+
+class Quest (JQuest) :
+
+ def __init__(self,id,name,descr):
+    JQuest.__init__(self,id,name,descr)
+    self.questItemIds = [REPORT]
+
+ def onEvent (self,event,st) :
+    htmltext = event
+    id = st.getState()
+    cond = st.getInt("cond")
+    if event == "30894-02.htm" :
+       st.set("cond","1")
+       st.playSound("ItemSound.quest_accept")
+    elif event == "30894-04.htm" :
+       st.set("cond","2")
+       st.playSound("ItemSound.quest_middle")
+    elif event == "30894-15.htm" :
+       st.set("cond","4")
+       st.unset("talk")
+       st.playSound("ItemSound.quest_middle")
+    elif event == "30894-18.htm" :
+       st.playSound("ItemSound.quest_finish")
+       st.exitQuest(False)
+       st.giveItems(57, 88888)
+       if player.getLevel() >= 37 and player.getLevel() <= 42:
+          st.addExpAndSp(219975,13047)
+    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 == NATOOLS :
+       if cond == 0 :
+          if player.getLevel() >= 37:
+             htmltext = "30894-01.htm"
+          else:
+             htmltext = "30894-00.htm"
+             st.exitQuest(1)
+       elif cond == 1 :
+          htmltext = "30894-02.htm"
+       elif cond == 2 :
+          htmltext = "30894-05.htm"
+       elif cond == 3 :
+          if st.getInt("talk"):
+             htmltext = "30894-07.htm"
+          else:
+             htmltext = "30894-06.htm"
+             st.takeItems(REPORT, -1)
+             st.set("talk","1")
+       elif cond == 4 :
+          htmltext = "30894-16.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 and st.getRandom(100) <= 80 and st.getQuestItemsCount(REPORT)<30:
+       st.giveItems(REPORT,1)
+       if st.getQuestItemsCount(REPORT)>=30:
+          st.set("cond","3")
+          st.playSound("ItemSound.quest_middle")
+       else:
+          st.playSound("ItemSound.quest_itemget")
+    return
+
+ def onFirstTalk (self,npc,player):
+   st = player.getQuestState(qn)
+   if not st :
+      st = self.newQuestState(player)
+   qs = st.getPlayer().getQuestState("140_ShadowFoxPart2")
+   if qs :
+      if qs.getState() == State.COMPLETED :
+         if st.getState() == State.CREATED :
+            st.setState(State.STARTED)
+   npc.showChatWindow(player)
+   return
+
+QUEST       = Quest(141,qn,"Shadow Fox - 3")
+
+QUEST.addFirstTalkId(NATOOLS) #this quest doesnt have starter npc, quest will appear in list only when u finish quest 140
+QUEST.addTalkId(NATOOLS)
+for mob in NPC :
+   QUEST.addKillId(mob)

+ 2 - 1
datapack_development/sql/etcitem.sql

@@ -7436,4 +7436,5 @@ INSERT INTO `etcitem` VALUES
 (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", "", "");
+(10349,"Cryptogram of the Goddess Sword", "false", "quest", 0, "stackable", "wood", "none", -1, 0, NULL, "true", "true", "true", "true", "", ""),
+(10350,"Predecessor's Report", "false", "quest", 0, "stackable", "wood", "none", -1, 0, NULL, "true", "true", "true", "true", "", "");