فهرست منبع

Some Jython contributions:

Hellbound's Newbie Guide driven Adventurer's coupon system (tnx Vice). Miss Queens' event is now disabled by default (so their spawnlist entries are commented).

Introducing the Infinity items in the Hero script (tnx !BinLaden, Fabian & bitye)
DrLecter 17 سال پیش
والد
کامیت
c654dfb715
26فایلهای تغییر یافته به همراه280 افزوده شده و 18 حذف شده
  1. 1 0
      datapack_development/data/html/default/30598.htm
  2. 1 0
      datapack_development/data/html/default/30599.htm
  3. 1 0
      datapack_development/data/html/default/30600.htm
  4. 1 0
      datapack_development/data/html/default/30601.htm
  5. 1 0
      datapack_development/data/html/default/30602.htm
  6. 1 0
      datapack_development/data/html/default/31076.htm
  7. 1 0
      datapack_development/data/html/default/31077.htm
  8. 2 1
      datapack_development/data/html/default/32135.htm
  9. 28 0
      datapack_development/data/multisell/305986001.xml
  10. 10 0
      datapack_development/data/multisell/305986002.xml
  11. 3 0
      datapack_development/data/multisell/readme.txt
  12. 1 0
      datapack_development/data/scripts.cfg
  13. 1 1
      datapack_development/data/scripts/custom/5000_MissQueen/__init__.py
  14. 5 0
      datapack_development/data/scripts/custom/5001_NewbieCoupons/30598-1.htm
  15. 8 0
      datapack_development/data/scripts/custom/5001_NewbieCoupons/30598-2.htm
  16. 6 0
      datapack_development/data/scripts/custom/5001_NewbieCoupons/30598-3.htm
  17. 5 0
      datapack_development/data/scripts/custom/5001_NewbieCoupons/30598-4.htm
  18. 8 0
      datapack_development/data/scripts/custom/5001_NewbieCoupons/30598-5.htm
  19. 6 0
      datapack_development/data/scripts/custom/5001_NewbieCoupons/30598-6.htm
  20. 5 0
      datapack_development/data/scripts/custom/5001_NewbieCoupons/30598-7.htm
  21. 5 0
      datapack_development/data/scripts/custom/5001_NewbieCoupons/30598-8.htm
  22. 16 0
      datapack_development/data/scripts/custom/5001_NewbieCoupons/30598.htm
  23. 90 0
      datapack_development/data/scripts/custom/5001_NewbieCoupons/__init__.py
  24. 4 1
      datapack_development/data/scripts/custom/7000_HeroItems/__init__.py
  25. 55 1
      datapack_development/data/stats/weapon/10400-10499.xml
  26. 15 14
      datapack_development/sql/spawnlist.sql

+ 1 - 0
datapack_development/data/html/default/30598.htm

@@ -6,4 +6,5 @@ Receive blessing of protection. [not done yet]<br>
 <a action="bypass -h npc_%objectId%_Chat 12">Ask about the Newbie Travel Token.</a><br>
 <a action="bypass -h npc_%objectId%_Quest 1104_NewbieTravelToken">Teleport using the Newbie Travel Token.</a><br>
 <a action="bypass -h npc_%objectId%_SupportMagic">Check list of available support magic.</a><br>
+<a action="bypass -h npc_%objectId%_Quest 5001_NewbieCoupons">Ask for help with a newbie item.</a><br>
 </body></html>

+ 1 - 0
datapack_development/data/html/default/30599.htm

@@ -6,4 +6,5 @@ Receive blessing of protection. [not done yet]<br>
 <a action="bypass -h npc_%objectId%_Chat 12">Ask about the Newbie Travel Token.</a><br>
 <a action="bypass -h npc_%objectId%_Quest 1104_NewbieTravelToken">Teleport using the Newbie Travel Token.</a><br>
 <a action="bypass -h npc_%objectId%_SupportMagic">Receive help from beneficial magic.</a><br>
+<a action="bypass -h npc_%objectId%_Quest 5001_NewbieCoupons">Ask for help with a newbie item.</a><br>
 </body></html>

+ 1 - 0
datapack_development/data/html/default/30600.htm

@@ -6,4 +6,5 @@ Receive blessing of protection. [not done yet]<br>
 <a action="bypass -h npc_%objectId%_Chat 12">Ask about the Newbie Travel Token.</a><br>
 <a action="bypass -h npc_%objectId%_Quest 1104_NewbieTravelToken">Teleport using the Newbie Travel Token.</a><br>
 <a action="bypass -h npc_%objectId%_SupportMagic">Receive help from beneficial magic.</a><br>
+<a action="bypass -h npc_%objectId%_Quest 5001_NewbieCoupons">Ask for help with a newbie item.</a><br>
 </body></html>

+ 1 - 0
datapack_development/data/html/default/30601.htm

@@ -6,4 +6,5 @@ Receive blessing of protection. [not done yet]<br>
 <a action="bypass -h npc_%objectId%_Chat 12">Ask about the Newbie Travel Token.</a><br>
 <a action="bypass -h npc_%objectId%_Quest 1104_NewbieTravelToken">Teleport using the Newbie Travel Token.</a><br>
 <a action="bypass -h npc_%objectId%_SupportMagic">Receive help from beneficial magic.</a><br>
+<a action="bypass -h npc_%objectId%_Quest 5001_NewbieCoupons">Ask for help with a newbie item.</a><br>
 </body></html>

+ 1 - 0
datapack_development/data/html/default/30602.htm

@@ -6,4 +6,5 @@ Receive blessing of protection. [not done yet]<br>
 <a action="bypass -h npc_%objectId%_Chat 12">Ask about the Newbie Travel Token.</a><br>
 <a action="bypass -h npc_%objectId%_Quest 1104_NewbieTravelToken">Teleport using the Newbie Travel Token.</a><br>
 <a action="bypass -h npc_%objectId%_SupportMagic">Receive help from beneficial magic.</a><br>
+<a action="bypass -h npc_%objectId%_Quest 5001_NewbieCoupons">Ask for help with a newbie item.</a><br>
 </body></html>

+ 1 - 0
datapack_development/data/html/default/31076.htm

@@ -3,5 +3,6 @@ Good day, friend. I now live peacefully here on this island, but once I was a we
 Today, my time is spent guiding novices, If you have any questions, please come and ask me. I will teach you as much as I can.<br>
 <a action="bypass -h npc_%objectId%_Chat 1">Ask for advice</a><br>
 <a action="bypass -h npc_%objectId%_SupportMagic">"Give me some support magic."</a><br>
+<a action="bypass -h npc_%objectId%_Quest 5001_NewbieCoupons">Ask for help with a newbie item.</a><br>
 <a action="bypass -h npc_%objectId%_Chat 12">"Tell me about novice characters."</a>
 </body></html>

+ 1 - 0
datapack_development/data/html/default/31077.htm

@@ -3,5 +3,6 @@ May the glorious light of Einhasad guide and protect you always. One of my dutie
 Don't be fooled! The world grows more dangerous with each passing day! Violent spirits, unending wars, even this collision between dawn and dusk! You will need both strenth and wisdom to survive! do not ignore my warnings, I pray you.<br>
 <a action="bypass -h npc_%objectId%_Chat 1">Obtain advice about class transfer.</a><br>
 <a action="bypass -h npc_%objectId%_SupportMagic">Receive help from beneficial magic.</a><br>
+<a action="bypass -h npc_%objectId%_Quest 5001_NewbieCoupons">Ask for help with a newbie item.</a><br>
 <a action="bypass -h npc_%objectId%_Chat 2">Receive blessing of protection.</a>
 </body></html>

+ 2 - 1
datapack_development/data/html/default/32135.htm

@@ -5,4 +5,5 @@ Can I help you with anything? What do you wish do know?<br>
 <a action="bypass -h npc_%objectId%_Chat 12">Ask about Newbie Travel Tokens.</a><br>
 <a action="bypass -h npc_%objectId%_Quest 1104_NewbieTravelToken">Teleport using Newbie Travel Token.</a><br><br>
 <a action="bypass -h npc_%objectId%_Chat 20">Check the list of available Support Magic.</a>
-</body></html>
+<a action="bypass -h npc_%objectId%_Quest 5001_NewbieCoupons">Ask for help with a newbie item.</a><br>
+</body></html>

+ 28 - 0
datapack_development/data/multisell/305986001.xml

@@ -0,0 +1,28 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!-- Newbie Weapon Token -->
+<list>
+        <item id="1">
+                <production id="10474" count="1"/>
+                <ingredient id="7832" count="1"/>
+        </item>
+        <item id="2">
+                <production id="10475" count="1"/>
+                <ingredient id="7832" count="1"/>
+        </item>
+        <item id="3">
+                <production id="10476" count="1"/>
+                <ingredient id="7832" count="1"/>
+        </item>
+        <item id="4">
+                <production id="10477" count="1"/>
+                <ingredient id="7832" count="1"/>
+        </item>
+        <item id="5">
+                <production id="10478" count="1"/>
+                <ingredient id="7832" count="1"/>
+        </item>
+        <item id="6">
+                <production id="10479" count="1"/>
+                <ingredient id="7832" count="1"/>
+        </item>
+</list>

+ 10 - 0
datapack_development/data/multisell/305986002.xml

@@ -0,0 +1,10 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!-- Newbie Armor Token -->
+<list>
+        <item id="1">
+                <production id="10122" count="2"/>
+                <production id="10123" count="1"/>
+                <production id="10124" count="2"/>
+                <ingredient id="7833" count="1"/>
+        </item>
+</list>

+ 3 - 0
datapack_development/data/multisell/readme.txt

@@ -92,6 +92,9 @@ of this directory a little bit.
 320825001.xml -> Adventure Guildsman: Use Life Crystal for A weapons
 320825002.xml -> Adventure Guildsman: Use Life Crystal for A armors
 
+305986001.xml -> Hellbound's Newbie Shadow Weapon Coupons
+305986002.xml -> Hellbound's Newbie Shadow Armor Coupons
+
 317606001.xml -> Adventurers' Guide Miss Queen: Give Newbie Coupon
 317606002.xml -> Adventurers' Guide Miss Queen: Return Newbie Coupon
 317606003.xml -> Adventurers' Guide Miss Queen: Give Traveler Coupon

+ 1 - 0
datapack_development/data/scripts.cfg

@@ -476,6 +476,7 @@ quests/999_T1Tutorial/__init__.py
 custom/3995_echo/__init__.py
 custom/4000_ShadowWeapons/__init__.py
 custom/5000_MissQueen/__init__.py
+custom/5001_NewbieCoupons/__init__.py
 custom/6050_KetraOrcSupport/__init__.py
 custom/6051_VarkaSilenosSupport/__init__.py
 custom/7000_HeroItems/__init__.py

+ 1 - 1
datapack_development/data/scripts/custom/5000_MissQueen/__init__.py

@@ -13,7 +13,7 @@ COUPON_TWO = 7833
 NPCs = range(31760,31767)
 
 #enable/disable coupon give
-QUEEN_ENABLED=1
+QUEEN_ENABLED=0
 #Newbie/one time rewards section
 #Any quest should rely on a unique bit, but
 #it could be shared among quest that were mutually

+ 5 - 0
datapack_development/data/scripts/custom/5001_NewbieCoupons/30598-1.htm

@@ -0,0 +1,5 @@
+<html><body>Newbie Guide:<br>
+You have already received the Apprentice Adventurer's Weapon Exchange Coupon!
+Trying to trick me, eh? Don't underestimate my memory for faces!
+(Each character may only receive 1 Apprentice Adventurer's Weapon Exchange Coupon.)
+</body></html>

+ 8 - 0
datapack_development/data/scripts/custom/5001_NewbieCoupons/30598-2.htm

@@ -0,0 +1,8 @@
+<html><body>Newbie Guide:<br>
+Here is the Apprentice Adventurer's Weapon Exchange Coupon.<br>
+You can exchange this ticket for the No-Grade Shadow Weapon from the Adventure Guild warehouse.
+Keep in mind that this Exchange Coupon is reserved only for you.
+Should you lose either the ticket or the weapon you borrowed, you cannot get a new one.
+Guard it carefully! You can use the weapon warehouse if you visit the Newbie Guide in each town.
+I wish you a pleasant and prosperous journey!
+</body></html>

+ 6 - 0
datapack_development/data/scripts/custom/5001_NewbieCoupons/30598-3.htm

@@ -0,0 +1,6 @@
+<html><body>Newbie Guide:<br>
+You are not eligible to have the Apprentice Adventurer's Weapon Exchange Coupon!
+It is reserved especially for new adventurers who are visiting the world of Lineage 2 for the first time.
+You may not receive the Exchange Coupon if your level is under 6 or you have completed an occupation change.
+(Only beginners who are between <font color="LEVEL">level 6 and level 19</font> may use it.)
+</body></html>

+ 5 - 0
datapack_development/data/scripts/custom/5001_NewbieCoupons/30598-4.htm

@@ -0,0 +1,5 @@
+<html><body>Newbie Guide:<br>
+You have already received the Apprentice Adventurer's Armor Exchange Coupon!
+Trying to trick me, eh? Don't underestimate my memory for faces!
+(Each character may only receive 1 Apprentice Adventurer's Armor Exchange Coupon.)
+</body></html>

+ 8 - 0
datapack_development/data/scripts/custom/5001_NewbieCoupons/30598-5.htm

@@ -0,0 +1,8 @@
+<html><body>Newbie Guide:<br>
+Here is the Apprentice Adventurer's Armor Exchange Coupon.<br>
+You can exchange this ticket for the No-Grade Shadow Armor from the Adventure Guild warehouse.
+Keep in mind that this Exchange Coupon is reserved only for you.
+Should you lose either the ticket or the weapon you borrowed, you cannot get a new one.
+Guard it carefully! You can use the weapon warehouse if you visit the Newbie Guide in each town.
+I wish you a pleasant and prosperous journey!
+</body></html>

+ 6 - 0
datapack_development/data/scripts/custom/5001_NewbieCoupons/30598-6.htm

@@ -0,0 +1,6 @@
+<html><body>Newbie Guide:<br>
+You are not eligible to receive the Apprentice Adventurer's Armor Exchange Coupon!
+It is reserved for new adventurers visiting the world of Lineage 2 for the first time.
+Even then, you can not receive the ticket unless you have completed the first occupation change!
+(Only beginners who have <font color="LEVEL">completed the first occupation change</font> may use it.)
+</body></html>

+ 5 - 0
datapack_development/data/scripts/custom/5001_NewbieCoupons/30598-7.htm

@@ -0,0 +1,5 @@
+<html><body>Newbie Guide:<br>
+You are not eligible to use the warehouse.
+You may not receive the Exchange Coupon if your level is under 6 or you have completed an occupation change.
+(Only beginners who are between <font color="LEVEL">level 6 and level 19</font> may use the warehouse.)
+</body></html>

+ 5 - 0
datapack_development/data/scripts/custom/5001_NewbieCoupons/30598-8.htm

@@ -0,0 +1,5 @@
+<html><body>Newbie Guide:<br>
+You are not eligible to use the warehouse.
+You must complete your first class change!
+(Only <font color="LEVEL">beginners who have completed the first class change</font> may use the warehouse.)
+</body></html>

+ 16 - 0
datapack_development/data/scripts/custom/5001_NewbieCoupons/30598.htm

@@ -0,0 +1,16 @@
+<html><body>Newbie Guide:<br>
+As token of congratulations, the Adventure Guild is pleased to open its warehouse to both apprentice adventurers
+who have reached level 6 as well as travelers who have completed their first occupation change.
+At level 6, you can borrow a <font color="LEVEL">No-Grade Shadow Weapon</font> with the
+<font color="LEVEL">Apprentice Adventurer's Weapon Exchange Coupon</font>.
+At level 20, you can borrow <font color="LEVEL">Shadow Armor</font> with the
+<font color="LEVEL">Adventurer's Magic Armor Exchange Coupon</font>.
+No-Grade Shadow Weapons can be exchanged up to level 19 and Shadow Armor can be exchanged up to level 39.
+Now then: how can I help you?<br>(Note: chaotic characters may not use weapons or armor borrowed from the Adventure Guild.)<br>
+<a action="bypass -h Quest 5001_NewbieCoupons newbie_give_weapon_coupon">Get the Apprentice Adventurer's Weapon Exchange Coupon.</a><br>
+<a action="bypass -h Quest 5001_NewbieCoupons newbie_show_weapon">Use the weapon warehouse for apprentice adventurers.</a><br>
+<a action="bypass -h Quest 5001_NewbieCoupons newbie_give_armor_coupon">Get the Adventurer's Magic Armor Exchange Coupon.</a><br>
+<a action="bypass -h Quest 5001_NewbieCoupons newbie_show_armor">Use the Magic Armor warehouse for travelers.</a><br>
+<a action="bypass -h npc_%objectId%_multisell 305986001">"list 1"</a><br>
+<a action="bypass -h npc_%objectId%_multisell 305986002">"list 2"</a><br>
+</body></html>

+ 90 - 0
datapack_development/data/scripts/custom/5001_NewbieCoupons/__init__.py

@@ -0,0 +1,90 @@
+#Newbie Weapon/Accesories Coupons for the Hellbound opening event.
+#written by Vice, based in the Miss Queen script.
+import sys
+from net.sf.l2j.gameserver.model import L2Multisell
+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 = "5001_NewbieCoupons"
+
+COUPON_ONE = 7832
+COUPON_TWO = 7833
+
+NPCs = range(30598,30603)+[31076,31077,32135]
+
+# Multisell
+WEAPON_MULTISELL = 305986001
+ACCESORIES_MULTISELL = 305986002
+
+#enable/disable coupon give
+NEWBIE_COUPONS_ENABLED=1
+#Newbie/one time rewards section
+#Any quest should rely on a unique bit, but
+#it could be shared among quests that were mutually
+#exclusive or race restricted.
+#Bit #1 isn't used for backwards compatibility.
+#This script uses 2 bits, one for newbie coupons and another for travelers
+#These 2 bits happen to be the same used by the Miss Queen script
+NEWBIE_WEAPON = 16
+NEWBIE_ACCESORY = 32
+
+class Quest (JQuest) :
+
+ def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
+
+ def onAdvEvent (self,event,npc,player) :
+    if not NEWBIE_COUPONS_ENABLED : return
+    st = player.getQuestState(qn)
+    newbie = player.getNewbie()
+    level = player.getLevel()
+    occupation_level = player.getClassId().level()
+    pkkills = player.getPkKills()
+    if event == "newbie_give_weapon_coupon" :
+       #@TODO: check if this is the very first character for this account
+       #would need a bit of SQL, or a core method to determine it.
+       #This condition should be stored by the core in the account_data table
+       #upon character creation.
+       if 6 <= level <= 39 and not pkkills and occupation_level == 0 :
+          # check the player state against this quest newbie rewarding mark.
+          if newbie | NEWBIE_WEAPON != newbie :
+             player.setNewbie(newbie|NEWBIE_WEAPON)
+             st.giveItems(COUPON_ONE,1)
+             return "30598-2.htm" #here's the coupon you requested
+          else :
+             return "30598-1.htm" #you got a coupon already!
+       else :
+          return "30598-3.htm" #you're not eligible to get a coupon (level caps, pkkills or already changed class)
+    elif event == "newbie_give_armor_coupon" :
+       if 6 <= level <= 39 and not pkkills and occupation_level == 1 :
+          # check the player state against this quest newbie rewarding mark.
+          if newbie | NEWBIE_ACCESORY != newbie :
+             player.setNewbie(newbie|NEWBIE_ACCESORY)
+             st.giveItems(COUPON_TWO,1)
+             return "30598-5.htm" #here's the coupon you requested
+          else :
+             return "30598-4.htm" #you got a coupon already!
+       else :
+          return "30598-6.htm" #you're not eligible to get a coupon (level caps, pkkills or didnt change class yet)
+    elif event == "newbie_show_weapon" :
+       if 6 <= level <= 39 and not pkkills and occupation_level == 0 :
+          L2Multisell.getInstance().separateAndSend(WEAPON_MULTISELL, player, False, 0.0);
+       else :
+          return "30598-7.htm" #you're not eligible to use warehouse
+    elif event == "newbie_show_armor" :
+       if 6 <= level <= 39 and not pkkills and occupation_level > 0 :
+          L2Multisell.getInstance().separateAndSend(ACCESORIES_MULTISELL, player, False, 0.0);
+       else :
+          return "30598-8.htm" #you're not eligible to use warehouse
+
+ def onTalk (self,npc,player):
+   st = player.getQuestState(qn)
+   if not st :
+      st = self.newQuestState(player)
+   return "30598.htm"
+
+QUEST = Quest(5001,qn,"custom")
+
+for i in NPCs :
+    QUEST.addStartNpc(i)
+    QUEST.addTalkId(i)

+ 4 - 1
datapack_development/data/scripts/custom/7000_HeroItems/__init__.py

@@ -19,6 +19,9 @@ HERO_ITEMS={
 6619:["weapon_the_bow_of_hero_i00","Infinity Bow","Increases MaxMP/MaxCP and decreases re-use delay of a bow. Slows target when a critical attack occurs and has Cheap Shot effect. Also enhances damage to target during PvP.","707/169","Bow"],
 6620:["weapon_the_dualsword_of_hero_i00","Infinity Wing","When a critical attack occurs, increases MaxHP, MaxMP, MaxCP and critical chance. Silences the target and has possibility of reflecting the skill back on the target. Also enhances damage to target during PvP.","461/169","Dual Sword"],
 6621:["weapon_the_pole_of_hero_i00","Infinity Spear","During a critical attack, increases MaxHP, Max CP, Atk. Spd. and Accuracy. Casts dispel on a target and has possibility of reflecting the skill back on the target. Also enhances damage to target during PvP.","379/169","Pole"],
+9388:["weapon_infinity_rapier_i00","Infinity Rapier","Decreases the target's P. Def and increases the de-buff casting ability, the damage shield ability, and the Max HP/Max MP/Max CP on a critical attack. Increases damage inflicted during PvP. A critical attack will have a chance to increase P. Atk., M. Atk., and healing power, and decrease MP consumption during skill use, for you and your party members.","344/169","Rapier"],
+9389:["weapon_infinity_sword_i00","Infinity Sword","Increases critical attack success rate/power, MaxHP, MaxCP, and damage inflicted during PvP. Also inflicts extra damage on critical attacks, and reflects debuff attacks back on enemies.","410/169","Ancient Sword"],
+9390:["weapon_infinity_shooter_i00","Infinity Shooter","Produces the following effects when a critical attack occurs: the target is slowed, decrease MP consumption for skill use, and increase Max MP/Max CP. Enhances damage done to the target during PvP.","405/169","Crossbow"],
 6842:["accessory_hero_cap_i00","Wings of Destiny Circlet","Hair accessory exclusively used by heroes.","0","Hair Accessory"]
 }
 
@@ -59,7 +62,7 @@ class Quest (JQuest) :
                st.giveItems(item,1)
                htmltext = "Enjoy your Wings of Destiny Circlet"
           else :
-             for i in range(6611,6622):
+             for i in range(6611,6622)+range(9388,9391):
                 if st.getQuestItemsCount(i):
                    st.exitQuest(1)
                    return "You already have an "+HERO_ITEMS[i][1]

+ 55 - 1
datapack_development/data/stats/weapon/10400-10499.xml

@@ -533,5 +533,59 @@
    <mul val='1.05' order='0x30' stat='pvpPhysDmg'/> 
    <mul val='1.05' order='0x30' stat='pvpMagicalDmg'/> 
   </for> 
-</item> 
+</item>
+<item id='10474' name="Shadow Item - Apprentice's Staff">
+  <for>
+   <set val='23' order='0x08' stat='pAtk'/>
+   <set val='22' order='0x08' stat='mAtk'/>
+   <set val='4' order='0x08' stat='rCrit'/>
+   <add val='4' order='0x10' stat='accCombat'/>
+   <set val='325' order='0x08' stat='pAtkSpd'/>
+  </for>
+</item>
+<item id='10475' name="Shadow Item - Bone Club">
+  <for>
+    <set val='24' order='0x08' stat='pAtk'/>
+    <set val='17' order='0x08' stat='mAtk'/>
+    <set val='4' order='0x08' stat='rCrit'/>
+    <add val='4' order='0x10' stat='accCombat'/>
+    <set val='379' order='0x08' stat='pAtkSpd'/>
+  </for>
+</item>
+<item id='10476' name="Shadow Item - Shining Knife for Coupon Event">
+  <for>
+    <set val='21' order='0x08' stat='pAtk'/>
+    <set val='17' order='0x08' stat='mAtk'/>
+    <set val='12' order='0x08' stat='rCrit'/>
+    <add val='-3' order='0x10' stat='accCombat'/>
+    <set val='433' order='0x08' stat='pAtkSpd'/>
+  </for>
+</item>
+<item id='10477' name="Shadow Item - Cestus for Coupon Event">
+  <for>
+    <set val='29' order='0x08' stat='pAtk'/>
+    <set val='17' order='0x08' stat='mAtk'/>
+    <set val='4' order='0x08' stat='rCrit'/>
+    <add val='4' order='0x10' stat='accCombat'/>
+    <set val='325' order='0x08' stat='pAtkSpd'/>
+  </for>
+</item>
+<item id='10478' name="Shadow Item - Forest Bow for Coupon Event">
+  <for>
+    <set val='49' order='0x08' stat='pAtk'/>
+    <set val='17' order='0x08' stat='mAtk'/>
+    <set val='12' order='0x08' stat='rCrit'/>
+    <add val='-3' order='0x10' stat='accCombat'/>
+    <set val='293' order='0x08' stat='pAtkSpd'/>
+  </for>
+</item>
+<item id='10479' name="Shadow Item - Long Sword for Coupon Event">
+  <for>
+    <set val='24' order='0x08' stat='pAtk'/>
+    <set val='17' order='0x08' stat='mAtk'/>
+    <set val='8' order='0x08' stat='rCrit'/>
+    <add val='0' order='0x10' stat='accCombat'/>
+    <set val='379' order='0x08' stat='pAtkSpd'/>
+  </for>
+</item>
 </list>

+ 15 - 14
datapack_development/sql/spawnlist.sql

@@ -39302,22 +39302,23 @@ INSERT INTO `spawnlist` VALUES
 (54931,'Nornil Garden',1,32237,-119832,87098,-12608,0,0,0,240,0,0),
 (54932,'Nornil Garden',1,32239,-120080,87176,-12608,0,0,0,240,0,0);
 
--- Miss_Queen Spawns
-INSERT INTO spawnlist VALUES
-(54933,'Miss_Queen',1,31760,116224,-181728,-1378,0,0,0,60,0,'0'),
-(54934,'Miss_Queen',1,31760,114885,-178092,-832,0,0,0,60,0,'0'),
-(54935,'Miss_Queen',1,31761,45472,49312,-3072,0,0,53000,60,0,'0'),
-(54936,'Miss_Queen',1,31761,47648,51296,-2994,0,0,38500,60,0,'0'),
-(54937,'Miss_Queen',1,31762,11340,15972,-4582,0,0,14000,60,0,'0'),
-(54938,'Miss_Queen',1,31762,10968,17540,-4572,0,0,55000,60,0,'0'),
-(54939,'Miss_Queen',1,31763,-14048,123184,-3120,0,0,32000,60,0,'0'),
-(54940,'Miss_Queen',1,31764,-44979,-113508,-199,0,0,32000,60,0,'0'),
-(54941,'Miss_Queen',1,31765,-84119,243254,-3730,0,0,8000,60,0,'0'),
-(54942,'Miss_Queen',1,31765,-84336,242156,-3730,0,0,24500,60,0,'0'),
-(54943,'Miss_Queen',1,31766,-82032,150160,-3127,0,0,16500,60,0,'0'),
-(54945,'IvoryTower2ndFloor',1,32323,85333,15779,-2809,0,0,19030,60,0,0);
+-- Miss_Queen Spawns - Disabled by default
+-- INSERT INTO spawnlist VALUES
+-- (54933,'Miss_Queen',1,31760,116224,-181728,-1378,0,0,0,60,0,'0'),
+-- (54934,'Miss_Queen',1,31760,114885,-178092,-832,0,0,0,60,0,'0'),
+-- (54935,'Miss_Queen',1,31761,45472,49312,-3072,0,0,53000,60,0,'0'),
+-- (54936,'Miss_Queen',1,31761,47648,51296,-2994,0,0,38500,60,0,'0'),
+-- (54937,'Miss_Queen',1,31762,11340,15972,-4582,0,0,14000,60,0,'0'),
+-- (54938,'Miss_Queen',1,31762,10968,17540,-4572,0,0,55000,60,0,'0'),
+-- (54939,'Miss_Queen',1,31763,-14048,123184,-3120,0,0,32000,60,0,'0'),
+-- (54940,'Miss_Queen',1,31764,-44979,-113508,-199,0,0,32000,60,0,'0'),
+-- (54941,'Miss_Queen',1,31765,-84119,243254,-3730,0,0,8000,60,0,'0'),
+-- (54942,'Miss_Queen',1,31765,-84336,242156,-3730,0,0,24500,60,0,'0'),
+-- (54943,'Miss_Queen',1,31766,-82032,150160,-3127,0,0,16500,60,0,'0');
+
 
 INSERT INTO spawnlist VALUES
+(54945,'IvoryTower2ndFloor',1,32323,85333,15779,-2809,0,0,19030,60,0,0),
 (54953,'hellbound',1,22324,-13532,235663,-3264,0,0,21503,60,0,0),
 (54954,'hellbound',1,22325,-14355,234970,-3136,0,0,50489,60,0,0),
 (54955,'hellbound',1,22324,-12955,236669,-3288,0,0,52243,60,0,0),