浏览代码

BETA: Possessor Of A Precious Soul 3 quest update to h5

Rumen Nikiforov 13 年之前
父节点
当前提交
0bd99c6805

+ 27 - 7
L2J_DataPack_BETA/dist/game/data/scripts/quests/246_PossessorOfAPreciousSoul_3/__init__.py

@@ -18,14 +18,17 @@ WATERBINDER = 7591
 EVERGREEN = 7592
 RAIN_SONG = 7593
 RELIC_BOX = 7594
+FRAGMENTS = 21725
 
 #MOBS
 PILGRIM_OF_SPLENDOR = 21541
 JUDGE_OF_SPLENDOR = 21544
 BARAKIEL = 25325
+MOBS = [21535,21536,21537,21538,21539,21540]
 
 #CHANCE FOR DROP
 CHANCE_FOR_DROP = 5
+CHANCE_FOR_DROP_FRAGMENTS = 30 # Not verifed!
 
 class Quest (JQuest) :
 
@@ -52,14 +55,17 @@ class Quest (JQuest) :
        st.playSound("ItemSound.quest_middle")
    elif event == "31741-5.htm" :
      if cond == 3 :
-       st.set("cond","4")
-       st.takeItems(WATERBINDER,1)
-       st.takeItems(EVERGREEN,1)
-       st.playSound("ItemSound.quest_middle")
+        st.set("cond","4")
+        st.takeItems(WATERBINDER,1)
+        st.takeItems(EVERGREEN,1)
+        st.playSound("ItemSound.quest_middle")
    elif event == "31741-9.htm" :
      if cond == 5 :
        st.set("cond","6")
-       st.takeItems(RAIN_SONG,1)
+       if st.getQuestItemsCount(RAIN_SONG) == 1:
+          st.takeItems(RAIN_SONG,1)
+       if st.getQuestItemsCount(FRAGMENTS) >= 100:
+          st.takeItems(FRAGMENTS,-1)
        st.giveItems(RELIC_BOX,1)
        st.playSound("ItemSound.quest_middle")
    elif event == "30721-2.htm" :
@@ -101,7 +107,7 @@ class Quest (JQuest) :
            htmltext = "31741-3.htm"
          elif cond == 4 :
            htmltext = "31741-8.htm"
-         elif cond == 5 and st.getQuestItemsCount(RAIN_SONG) == 1 :
+         elif cond == 5 and st.getQuestItemsCount(RAIN_SONG) == 1 or st.getQuestItemsCount(FRAGMENTS) >= 100:
            htmltext = "31741-7.htm"
          elif cond == 6 and st.getQuestItemsCount(RELIC_BOX) == 1 :
            htmltext = "31741-11.htm"
@@ -165,6 +171,16 @@ class Quest (JQuest) :
                 pst.giveItems(RAIN_SONG,1)
                 pst.playSound("ItemSound.quest_middle")
                 pst.set("cond","5")
+   else :
+        st = player.getQuestState(qn)
+        if not st or st.getQuestItemsCount(FRAGMENTS) >= 100 or st.getInt("cond") != 4:
+            return
+        for id in MOBS:
+            if npcId == id and st.getRandom(100) < CHANCE_FOR_DROP_FRAGMENTS:
+                st.giveItems(FRAGMENTS,1)
+                if st.getQuestItemsCount(FRAGMENTS) >= 100:
+                    st.set("cond","5")
+                
    return 
 
 QUEST       = Quest(246,qn,"Possessor Of A Precious Soul - 3")
@@ -177,4 +193,8 @@ QUEST.addTalkId(LADD)
 
 QUEST.addKillId(PILGRIM_OF_SPLENDOR)
 QUEST.addKillId(JUDGE_OF_SPLENDOR)
-QUEST.addKillId(BARAKIEL)
+QUEST.addKillId(BARAKIEL)
+
+
+for id in MOBS:
+    QUEST.addKillId(id)

+ 5 - 0
L2J_DataPack_BETA/dist/game/data/stats/items/21700-21799.xml

@@ -298,7 +298,12 @@
 		<!-- Description: A severaly damaged staff piece. A mysterious light shines faintly. -->
 		<set name="icon" val="icon.etc_i.etc_vesper_caster_piece_i00" />
 		<set name="material" val="wood" />
+		<set name="is_tradable" val="false" />
+		<set name="is_dropable" val="false" />
+		<set name="is_sellable" val="false" />
+		<set name="is_depositable" val="false" />
 		<set name="is_stackable" val="true" />
+		<set name="is_questitem" val="true" />
 	</item>
 	<item id="21726" type="EtcItem" name="Angel Cat's Blessing - Event">
 		<!-- Description: When used, HP Recovery Bonus, Max MP, and Critical Atk. Rate +20%, and you can feel the effects of Prophecy of Water, Might, Haste, Empower, Acumen, Wind Walk, Vampiric Rage, Berserker Spirit, Shield, Focus, Death Whisper, Guidance, Clarity, Wild Magic, and Concentration for 1 hour. Cannot be exchanged, dropped, or destroyed. Can be stored in a private warehouse. -->