Explorar o código

JYTHON: Fix #1843 by fixing drop configuration, thx bigbro for reporting
Fix #2097 by turning off randomOffset for Raldo's spawn, thx _DS_ for reporting
Fix #2185 by adding another mob for killing, thx Kratos for reporting

Emperorc %!s(int64=17) %!d(string=hai) anos
pai
achega
591c82a155

+ 2 - 2
datapack_development/data/scripts/quests/211_TrialOfChallenger/__init__.py

@@ -189,11 +189,11 @@ class Quest (JQuest) :
       st.giveItems(WATCHERS_EYE2,1)
       st.playSound("ItemSound.quest_middle")
       st.set("cond","7")
-      st.addSpawn(30646,npc,True,0)
+      st.addSpawn(30646,npc,0,0)
    elif npcId == 27114 and cond == 9 :
       st.set("cond","10")
       st.playSound("ItemSound.quest_middle")
-      st.addSpawn(30646,npc,True,0)
+      st.addSpawn(30646,npc,0,0)
    return
 
 QUEST       = Quest(211,qn,"Trial Of Challenger")

+ 24 - 24
datapack_development/data/scripts/quests/233_TestOfWarspirit/__init__.py

@@ -2,7 +2,6 @@
 # rewritten by Rolarga, Version 0.3
 # Shadow Weapon Coupons contributed by BiTi for 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
@@ -52,7 +51,6 @@ NPC=[30030,30436,30507,30510,30515,30630,30649,30682]
 
 STATS=["cond","step","Orim","Racoy","Perkiron","Manakia","Manakia_Queen"]
 
-
 #npcId=[[accepted values for this part],variable for the current part from the mob,maxcount,chance in %, items to give(one per kill max)]
 DROPLIST={
 20213:[[2,3,4],"Orim",10,100,[PORTAS_EYE]],
@@ -80,8 +78,8 @@ for mob in DROPLIST.keys():
 
 class Quest (JQuest) :
 
-  def __init__(self,id,name,descr):
-    JQuest.__init__(self,id,name,descr)
+  def __init__(self,id,name,descr):
+    JQuest.__init__(self,id,name,descr)
     self.questItemIds = range(2880,2915)
 
   def onEvent (self,event,st) :
@@ -89,7 +87,7 @@ class Quest (JQuest) :
     if event == "1" :
       htmltext = "30510-05.htm"
       for var in STATS:
-        st.set(var,"1")
+        st.set(var,"1")
       st.setState(State.STARTED)
       st.set("progress","PART1")
       st.playSound("ItemSound.quest_accept")
@@ -140,8 +138,6 @@ class Quest (JQuest) :
       st.playSound("ItemSound.quest_finish")
     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)
@@ -169,7 +165,7 @@ class Quest (JQuest) :
       return htmltext
     # if quest is already State.COMPLETED
     elif id == State.COMPLETED:
-      return "<html><body>This quest has already been completed.</body></html>"
+      return "<html><body>This quest has already been completed.</body></html>"
 
     # if quest is accepted and in progress
     elif id == State.STARTED and st.get("progress") == "PART1":
@@ -187,7 +183,7 @@ class Quest (JQuest) :
             st.takeItems(KIRUNAS_REMAINS1,1)
             st.takeItems(TONARS_REMAINS1,1)
             st.giveItems(VENDETTA_TOTEM,1)
-            st.setState(State.STARTED)
+            st.setState(State.STARTED)
             st.set("progress","PART2")
           else:                                        # shows you again his List
             htmltext = "30510-06.htm"
@@ -321,28 +317,33 @@ class Quest (JQuest) :
     random=st.getRandom(100)
 #    return the current value of the var
     isValue = st.getInt(var)
-    if st.getInt(var) in value and random<chance:
+    if isValue in value and random < chance:
       # special part for Noble Ants
       if npcId in [20089,20090]:
-        if random>70:
-          list=0
-        elif random>40:
-          list=1
-        elif random>10 and st.getQuestItemsCount(KIRUNAS_SKULL)==0:
-          list=2
-        else:
+        if not (st.getQuestItemsCount(KIRUNAS_THIGH_BONE) and st.getQuestItemsCount(KIRUNAS_ARM_BONE)) :
+          list = 0
+          chance = 70
+        elif not (st.getQuestItemsCount(KIRUNAS_SPINE) and st.getQuestItemsCount(KIRUNAS_RIB_BONE)) :
+          list = 1
+          chance = 40
+        elif not st.getQuestItemsCount(KIRUNAS_SKULL) :
+          list = 2
+          chance = 10
+        else :
+          return
+        if random > chance :
           return
         for item in itemList[list]:
           count = st.getQuestItemsCount(item)
+          if count >= maxcount : continue
           st.giveItems(item,1)
-          if int(st.get(var)) < 9:
+          if st.getInt(var) < 9:
             st.set(var,str(isValue+1))
-          if st.getQuestItemsCount(KIRUNAS_SKULL) and int(st.get(var))>6:
+          if st.getQuestItemsCount(KIRUNAS_SKULL) and st.getInt(var)==9:
             st.set(var,"10")
             st.playSound("ItemdSound.quest_middle")
-            return
-          st.playSound("ItemSound.quest_itemget")
-        return
+          else :
+            st.playSound("ItemSound.quest_itemget")
       # Drop part for any other mobs
       else:    
         for item in itemList:
@@ -358,8 +359,7 @@ class Quest (JQuest) :
               st.set(var,str(isValue+1))
             else:
               st.playSound("ItemSound.quest_itemget")
-            return
-
+    return
 
 QUEST     = Quest(233,qn,"Test Of Warspirit")
 

+ 6 - 22
datapack_development/data/scripts/quests/34_InSearchOfClothes/__init__.py

@@ -17,7 +17,7 @@ class Quest (JQuest) :
 
  def __init__(self,id,name,descr):
      JQuest.__init__(self,id,name,descr)
-     self.questItemIds = [SPINNERET]
+     self.questItemIds = [SPINNERET,SPIDERSILK]
 
  def onEvent (self,event,st) :
    htmltext = event
@@ -78,32 +78,15 @@ class Quest (JQuest) :
          htmltext = "30165-2.htm"
        elif npcId == 30088 and cond == 6 :
           htmltext = "30088-4.htm"
-       else : 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>" 
    return htmltext
 
  def onKill(self,npc,player,isPet):
-   # get 1 party member among those with cond between 1 and 4
-   partyMember = 0
-   j = 0
-   for i in range(1,5) :  # i between 1 and 4 inclusive
-       partyMember = self.getRandomPartyMember(player,str(i))
-       if partyMember :
-           j = i
-           break
+   partyMember = self.getRandomPartyMember(player,"4")
    if not partyMember : return
-   
-   # if at least 1 cond exists with a party member, check if there also exist in a different cond as well
-   for i in range(j+1,5) :
-       partyMember2 = self.getRandomPartyMember(player,str(i))
-       # if a party member is found in another cond, randomly choose between
-       # the new one and the previous one
-       if partyMember2 :
-           if Rnd.get(2) : partyMember = partyMember2
-           
    st = partyMember.getQuestState(qn)
    if not st : return 
    if st.getState() != State.STARTED : return
-   
+
    count = st.getQuestItemsCount(SPINNERET)
    if count < 10 :
      st.giveItems(SPINNERET,1)
@@ -114,11 +97,12 @@ class Quest (JQuest) :
        st.playSound("ItemSound.quest_itemget")
    return
 
-QUEST       = Quest(34,qn,"In Search of Clothes")
+QUEST = Quest(34,qn,"In Search of Clothes")
 
 QUEST.addStartNpc(30088)
 QUEST.addTalkId(30088)
 
 QUEST.addTalkId(30165)
 QUEST.addTalkId(30294)
-QUEST.addKillId(20560)
+QUEST.addKillId(20560)
+QUEST.addKillId(20561)