Explorar el Código

Merge branch 'master' into script/episode19

Atemo hace 4 meses
padre
commit
19ea26a5eb
Se han modificado 100 ficheros con 23287 adiciones y 6281 borrados
  1. 1 0
      .gitignore
  2. 546 673
      conf/atcommands.yml
  3. 7 4
      conf/battle/drops.conf
  4. 2 2
      conf/battle/party.conf
  5. 2 2
      conf/battle/player.conf
  6. 2 2
      conf/groups.yml
  7. 2 0
      conf/inter_athena.conf
  8. 17 0
      conf/maps_athena.conf
  9. 4 1
      conf/msg_conf/map_msg.conf
  10. 3 2
      db/import-tmpl/item_group_db.yml
  11. 2 1
      db/import-tmpl/status.yml
  12. 9 8
      db/item_group_db.yml
  13. BIN
      db/map_cache.dat
  14. 9 0
      db/map_index.txt
  15. 10 16
      db/pre-re/item_db_equip.yml
  16. 3 3
      db/pre-re/item_db_etc.yml
  17. 117 117
      db/pre-re/item_db_usable.yml
  18. 67 68
      db/pre-re/item_group_db.yml
  19. 355 1938
      db/pre-re/job_stats.yml
  20. 66 48
      db/pre-re/pet_db.yml
  21. 2 0
      db/pre-re/size_fix.yml
  22. 10 29
      db/pre-re/skill_db.yml
  23. 30 0
      db/pre-re/statpoint.yml
  24. 150 307
      db/pre-re/status.yml
  25. 40 40
      db/re/enchantgrade.yml
  26. 3768 76
      db/re/item_combos.yml
  27. 241 94
      db/re/item_db_equip.yml
  28. 3022 1402
      db/re/item_db_etc.yml
  29. 209 123
      db/re/item_db_usable.yml
  30. 1653 0
      db/re/item_enchant.yml
  31. 308 281
      db/re/item_group_db.yml
  32. 79 0
      db/re/item_packages.yml
  33. 3420 6
      db/re/item_reform.yml
  34. 811 1
      db/re/job_basepoints.yml
  35. 43 3
      db/re/job_exp.yml
  36. 551 391
      db/re/job_stats.yml
  37. 365 0
      db/re/map_drops.yml
  38. 2466 117
      db/re/mob_db.yml
  39. 2 0
      db/re/mob_skill_db.txt
  40. 254 97
      db/re/pet_db.yml
  41. 249 0
      db/re/quest_db.yml
  42. 2 0
      db/re/size_fix.yml
  43. 1261 14
      db/re/skill_db.yml
  44. 259 0
      db/re/skill_tree.yml
  45. 45 0
      db/re/statpoint.yml
  46. 199 143
      db/re/status.yml
  47. 0 1
      db/size_fix.yml
  48. 2 1
      db/status.yml
  49. 5 0
      doc/atcommands.txt
  50. 6 2
      doc/item_bonus.txt
  51. 1 0
      doc/item_db.txt
  52. 76 2
      doc/item_group.txt
  53. 34 24
      doc/script_commands.txt
  54. 6 1
      doc/status.txt
  55. 78 8
      doc/status_change.txt
  56. 1 0
      doc/yaml/db/item_group_db.yml
  57. 4 0
      doc/yaml/sql/mob_db_re.sql
  58. 1 1
      npc/airports/airships.txt
  59. 1 1
      npc/cities/amatsu.txt
  60. 2 2
      npc/cities/ayothaya.txt
  61. 1 1
      npc/cities/brasilis.txt
  62. 0 69
      npc/cities/einbroch.txt
  63. 1 1
      npc/cities/gonryun.txt
  64. 1 1
      npc/cities/louyang.txt
  65. 1 1
      npc/cities/moscovia.txt
  66. 110 114
      npc/jobs/2-1/assassin.txt
  67. 1 1
      npc/jobs/2-2/monk.txt
  68. 70 0
      npc/merchants/inn.txt
  69. 1 1
      npc/quests/gunslinger_quests.txt
  70. 8 2
      npc/quests/quests_amatsu.txt
  71. 2 2
      npc/quests/quests_yuno.txt
  72. 1 1
      npc/re/cities/dewata.txt
  73. 1 1
      npc/re/cities/malaya.txt
  74. 2 2
      npc/re/instances/CorOperation.txt
  75. 6 6
      npc/re/instances/OldGlastHeim.txt
  76. 10 0
      npc/re/mapflag/noteleport.txt
  77. 8 6
      npc/re/merchants/barters.yml
  78. 355 0
      npc/re/merchants/barters/garden_of_time.yml
  79. 3 3
      npc/re/merchants/barters/quests_18.yml
  80. 117 0
      npc/re/mobs/dungeons/for_dun.txt
  81. 2 2
      npc/re/mobs/dungeons/slabw01.txt
  82. 1595 0
      npc/re/quests/garden_of_time.txt
  83. 14 8
      npc/re/quests/quests_18.txt
  84. 1 0
      npc/re/scripts_athena.conf
  85. 1 0
      npc/re/scripts_monsters.conf
  86. 5 0
      npc/test/ci/8886.txt
  87. 27 0
      rAthena.slnLaunch
  88. 1 1
      sql-files/item_db_etc.sql
  89. 1 1
      sql-files/item_db_re_etc.sql
  90. 25 2
      sql-files/main.sql
  91. 2 0
      sql-files/mob_db.sql
  92. 2 0
      sql-files/mob_db2.sql
  93. 2 0
      sql-files/mob_db2_re.sql
  94. 2 0
      sql-files/mob_db_re.sql
  95. 1 1
      sql-files/upgrades/upgrade_20220222_logs.sql
  96. 1 0
      sql-files/upgrades/upgrade_20240914.sql
  97. 3 0
      sql-files/upgrades/upgrade_20241005.sql
  98. 8 0
      sql-files/upgrades/upgrade_20241026.sql
  99. 13 0
      sql-files/upgrades/upgrade_20241216.sql
  100. 2 2
      src/char/CMakeLists.txt

+ 1 - 0
.gitignore

@@ -116,6 +116,7 @@ Thumbs.db
 .vs
 *.VC.db
 *.VC.opendb
+*.slnLaunch.user
 
 /.idea/.name
 /.idea/misc.xml

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 546 - 673
conf/atcommands.yml


+ 7 - 4
conf/battle/drops.conf

@@ -79,11 +79,17 @@ item_drop_mvp_min: 1
 item_drop_mvp_max: 10000
 item_drop_mvp_mode: 0
 
-// The rate adjustment for card-granted item drops.
+// The rate adjustment for equip-granted item drops.
 item_rate_adddrop: 100
 item_drop_add_min: 1
 item_drop_add_max: 10000
 
+// The rate adjustment for items inside of equip-granted item group drops.
+// This is used by Ore Discovery and items such as Gaia Sword, Jewel Sword, Blazzer Card, Tengu Card and Dokkaebi Horn.
+item_group_rate: 100
+item_group_drop_min: 1
+item_group_drop_max: 10000
+
 // Rate adjustment for Treasure Box drops (these override all other modifiers)
 item_rate_treasure: 100
 item_drop_treasure_min: 1
@@ -130,9 +136,6 @@ drops_by_luk: 0
 // (So at 100 luk, everything will have double chance of dropping).
 drops_by_luk2: 0
 
-// The rate of monsters dropping ores by the skill Ore Discovery (Default is 100)
-finding_ore_rate: 100
-
 // Whether or not Marine Spheres and Floras summoned by Alchemist drop items?
 // This setting has three available values:
 // 0: Nothing drops.

+ 2 - 2
conf/battle/party.conf

@@ -54,8 +54,8 @@ idle_no_share: no
 party_even_share_bonus: 0
 
 // Display party name regardless if player is in a guild.
-// Official servers do not display party name unless the user is in a guild. (Note 1)
-display_party_name: no
+// Official servers display party name even if the user is not in a guild. (Note 1)
+display_party_name: yes
 
 // Prevent multiple characters of the same account to join the same party. (Note 1)
 block_account_in_same_party: yes

+ 2 - 2
conf/battle/player.conf

@@ -295,8 +295,8 @@ trait_points_job_change: 7
 
 // Max trait stats cap.
 // Trait Stats: POW, STA, WIS, SPL, CON, CRT
-// Official is 100.
-max_trait_parameter: 100
+// Official is 110.
+max_trait_parameter: 110
 
 // Max percent of RES/MRES that can be ignored by item bonus/skill.
 // Default: 50

+ 2 - 2
conf/groups.yml

@@ -71,7 +71,7 @@ Body:
       mobinfo: true
       iteminfo: true
       whodrops: true
-      time: true
+      servertime: true
       jailtime: true
       hominfo: true
       homstats: true
@@ -195,7 +195,7 @@ Body:
       fakename: true
       option: true
       speed: true
-      warp: true
+      mapmove: true
       kill: true
       recall: true
       ban: true

+ 2 - 0
conf/inter_athena.conf

@@ -123,8 +123,10 @@ auction_db: auction
 quest_db: quest
 homunculus_db: homunculus
 skill_homunculus_db: skill_homunculus
+skillcooldown_homunculus_db: skillcooldown_homunculus
 mercenary_db: mercenary
 mercenary_owner_db: mercenary_owner
+skillcooldown_mercenary_db: skillcooldown_mercenary
 elemental_db: elemental
 skillcooldown_db: skillcooldown
 bonus_script_db: bonus_script

+ 17 - 0
conf/maps_athena.conf

@@ -1637,5 +1637,22 @@ map: mbase_in
 // Market place
 map: prt_mk
 
+// Level 275 Expansion
+map: moc_akhet
+map: nif_fild03
+
+// Copy of the maps related to izlude beginner training center
+map: iz_in_a
+map: iz_in_b
+map: iz_in_c
+map: iz_in_d
+
+// New dungeon related to Episode 21
+map: jor_sklf1
+map: jor_sklf2
+
+// Level 275 Expansion : Comodo dungeon
+map: cmd_bhole
+
 //------------------------- Clone Maps ---------------------------
 //------------------------- Extra Maps ---------------------------

+ 4 - 1
conf/msg_conf/map_msg.conf

@@ -256,7 +256,7 @@
 243: Skills have been disabled on this map.
 244: Skills have been enabled on this map.
 245: Server Uptime: %ld days, %ld hours, %ld minutes, %ld seconds.
-246: Your GM level doesn't authorize you to preform this action.
+246: Your GM level doesn't authorize you to perform this action.
 247: You are not authorized to warp to this map.
 248: You are not authorized to warp from your current map.
 249: You are not authorized to warp to your save map.
@@ -1823,5 +1823,8 @@
 1534: Usage: @stockall {<type>}
 1535: %d items are transferred (%d skipped)!
 
+1536: Log configuration has been reloaded.
+1537: Found skill '%s', unblocking...
+
 //Custom translations
 import: conf/msg_conf/import/map_msg_eng_conf.txt

+ 3 - 2
db/import-tmpl/item_group_db.yml

@@ -1,5 +1,5 @@
 # This file is a part of rAthena.
-#   Copyright(C) 2021 rAthena Development Team
+#   Copyright(C) 2024 rAthena Development Team
 #   https://rathena.org - https://github.com/rathena
 #
 # This program is free software: you can redistribute it and/or modify
@@ -25,6 +25,7 @@
 # - Group                      Group name of the item.
 #   SubGroups:
 #     - SubGroup:              SubGroup number associated with the list of item. See doc/item_group.txt for more information.
+#       Algorithm:             Type of algorithm associated with SubGroup. (Default: SharedPool)
 #       List:                  List of item(s) for the SubGroup.
 #        - Index               Unique number that can be used to add the same Item with different data in the list.
 #          Item                AegisName of item that will be obtained from this item group.
@@ -45,4 +46,4 @@
 
 Header:
   Type: ITEM_GROUP_DB
-  Version: 3
+  Version: 4

+ 2 - 1
db/import-tmpl/status.yml

@@ -38,8 +38,9 @@
 #   EndOnStart:               List of Status Changes that will end when the status activates. (Optional)
 #   EndReturn:                List of Status Changes that will end when the status activates and won't give its effect. (Optional)
 #   EndOnEnd:                 List of Status Changes that will end when the status becomes inactive. (Optional)
+#   Script:                   Script to execute, when starting the status change. (Optional)
 ###########################################################################
 
 Header:
   Type: STATUS_DB
-  Version: 3
+  Version: 4

+ 9 - 8
db/item_group_db.yml

@@ -1,5 +1,5 @@
 # This file is a part of rAthena.
-#   Copyright(C) 2021 rAthena Development Team
+#   Copyright(C) 2024 rAthena Development Team
 #   https://rathena.org - https://github.com/rathena
 #
 # This program is free software: you can redistribute it and/or modify
@@ -25,6 +25,7 @@
 # - Group                      Group name of the item.
 #   SubGroups:
 #     - SubGroup:              SubGroup number associated with the list of item. See doc/item_group.txt for more information.
+#       Algorithm:             Type of algorithm associated with SubGroup. (Default: SharedPool)
 #       List:                  List of item(s) for the SubGroup.
 #        - Index               Unique number that can be used to add the same Item with different data in the list.
 #          Item                AegisName of item that will be obtained from this item group.
@@ -32,7 +33,7 @@
 #          Amount              Amount of item that will be obtained. (Default: 1)
 #          Duration            Makes the item a rental item which will expire within the given amount in minutes. Not intended for use with stackable items. (Default: 0)
 #          Announced           If player obtains this item it will be broadcasted to the server. (Default: false)
-#          UniqueId            Makes the given item(s) have a Unique ID. (Default: false)
+#          UniqueId            Makes the given item(s) have a Unique ID. (Default: UniqueId from item_db)
 #          Stacked             Whether stackable items are given stacked or not. (Default: true)
 #          Named               Inscribes the item with the obtainer's name. (Default: false)
 #          Bound               Binds the obtained item. (Default: None)
@@ -45,12 +46,12 @@
 
 Header:
   Type: ITEM_GROUP_DB
-  Version: 3
+  Version: 4
 
 Footer:
   Imports:
-  - Path: db/pre-re/item_group_db.yml
-    Mode: Prerenewal
-  - Path: db/re/item_group_db.yml
-    Mode: Renewal
-  - Path: db/import/item_group_db.yml
+    - Path: db/pre-re/item_group_db.yml
+      Mode: Prerenewal
+    - Path: db/re/item_group_db.yml
+      Mode: Renewal
+    - Path: db/import/item_group_db.yml

BIN
db/map_cache.dat


+ 9 - 0
db/map_index.txt

@@ -1261,6 +1261,15 @@ luna_sf1
 luna_sf2
 mbase_in
 prt_mk
+moc_akhet
+nif_fild03
+iz_in_a
+iz_in_b
+iz_in_c
+iz_in_d
+jor_sklf1
+jor_sklf2
+cmd_bhole
 
 //======================================================================================
 // - Other/Extra maps -

+ 10 - 16
db/pre-re/item_db_equip.yml

@@ -1183,7 +1183,7 @@ Body:
     EquipLevelMin: 68
     Refineable: true
     Script: |
-      bonus2 bAddMonsterDropItemGroup,IG_Jewel,100;
+      bonus2 bAddMonsterDropItemGroup,IG_Jewel,10000;
   - Id: 1143
     AegisName: Gaia_Sword
     Name: Gaia Sword
@@ -1209,7 +1209,7 @@ Body:
     EquipLevelMin: 74
     Refineable: true
     Script: |
-      bonus2 bAddMonsterDropItemGroup,IG_Ore,30;
+      bonus2 bAddMonsterDropItemGroup,IG_Ore,10000;
   - Id: 1144
     AegisName: Sasimi
     Name: Sashimi
@@ -22792,7 +22792,7 @@ Body:
       Both_Accessory: true
     ArmorLevel: 1
     Script: |
-      bonus bAtkRate,5;
+      bonus2 bAddClass,Class_All,5;
       bonus bMatkRate,5;
   - Id: 2710
     AegisName: Bloody_Iron_Ball_C
@@ -23677,7 +23677,7 @@ Body:
       NoAuction: true
     Script: |
       bonus2 bAddClass,Class_All,5;
-      bonus bMatkrate,5;
+      bonus bMatkRate,5;
   - Id: 2753
     AegisName: Beholder_Ring
     Name: Beholder Ring
@@ -23883,8 +23883,8 @@ Body:
     ArmorLevel: 1
     EquipLevelMin: 95
     Script: |
-      bonus bAtkRate,5;
-      bonus bMatkrate,5;
+      bonus2 bAddClass,Class_All,5;
+      bonus bMatkRate,5;
       bonus bMaxHPrate,5;
       bonus2 bSkillHeal,"AL_HEAL",5;
       skill "MG_SIGHT",1;
@@ -39830,7 +39830,7 @@ Body:
     WeaponLevel: 4
     Script: |
       bonus bAtkEle,Ele_Fire;
-      bonus bHPDrainRate,1;
+      bonus2 bHPDrainRate,1000,1;
       bonus2 bSPLossRate,15,10000;
   - Id: 13404
     AegisName: Platinum_Shotel
@@ -40799,7 +40799,7 @@ Body:
     EquipLevelMin: 1
     View: 562
     Script: |
-      bonus bAtkRate,5;
+      bonus2 bAddClass,Class_All,5;
       bonus bMatkRate,5;
       bonus bMaxHPRate,10;
       bonus bMaxSPRate,10;
@@ -40939,19 +40939,13 @@ Body:
     Refineable: true
     View: 761
     Script: |
-      bonus bAtkRate,5;
-      if (getrefine() > 5 && getrefine() <= 12) {
+      bonus2 bAddClass,Class_All,5;
+      if (getrefine() > 5) {
          bonus2 bAddRace,RC_DemiHuman,(getrefine() - 5);
          bonus2 bSubRace,RC_DemiHuman,(getrefine() - 5);
          bonus2 bAddRace,RC_Player_Human,(getrefine() - 5);
          bonus2 bSubRace,RC_Player_Human,(getrefine() - 5);
       }
-      if (getrefine() > 12) {
-         bonus2 bAddRace,RC_DemiHuman,7;
-         bonus2 bAddRace,RC_Player_Human,7;
-         bonus2 bSubRace,RC_DemiHuman,7;
-         bonus2 bSubRace,RC_Player_Human,7;
-      }
   - Id: 18612
     AegisName: White_Musang_Hat
     Name: White Musang Hat

+ 3 - 3
db/pre-re/item_db_etc.yml

@@ -5320,7 +5320,7 @@ Body:
     Flags:
       BuyingStore: true
     Script: |
-      bonus2 bAddMonsterDropItemGroup,IG_Food,600;
+      bonus2 bAddMonsterDropItemGroup,IG_Food,10000;
   - Id: 4216
     AegisName: Sasquatch_Card
     Name: Sasquatch Card
@@ -6230,7 +6230,7 @@ Body:
     Flags:
       BuyingStore: true
     Script: |
-      bonus2 bAddMonsterDropItemGroup,IG_Recovery,600;
+      bonus2 bAddMonsterDropItemGroup,IG_Recovery,10000;
   - Id: 4283
     AegisName: Greatest_General_Card
     Name: Greatest General Card
@@ -17930,7 +17930,7 @@ Body:
     Weight: 10
   - Id: 7773
     AegisName: War_Badge
-    Name: Wat Badge
+    Name: War Badge
     Type: Etc
     Trade:
       NoDrop: true

+ 117 - 117
db/pre-re/item_db_usable.yml

@@ -1061,7 +1061,7 @@ Body:
       BuyingStore: true
       Container: true
     Script: |
-      getrandgroupitem(IG_BlueBox,1);
+      getgroupitem(IG_BLUEBOX);
   - Id: 604
     AegisName: Branch_Of_Dead_Tree
     Name: Dead Branch
@@ -1199,7 +1199,7 @@ Body:
       BuyingStore: true
       Container: true
     Script: |
-      getrandgroupitem(IG_CardAlbum,1);
+      getgroupitem(IG_CARDALBUM);
   - Id: 617
     AegisName: Old_Violet_Box
     Name: Old Purple Box
@@ -1210,7 +1210,7 @@ Body:
       BuyingStore: true
       Container: true
     Script: |
-      getrandgroupitem(IG_VioletBox,1);
+      getgroupitem(IG_VIOLETBOX);
   - Id: 618
     AegisName: Worn_Out_Scroll
     Name: Worn Out Scroll
@@ -1231,7 +1231,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1002;
+      pet;
   - Id: 620
     AegisName: Orange_Juice
     Name: Orange Juice
@@ -1243,7 +1243,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1113;
+      pet;
   - Id: 621
     AegisName: Bitter_Herb
     Name: Bitter Herb
@@ -1255,7 +1255,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1031;
+      pet;
   - Id: 622
     AegisName: Rainbow_Carrot
     Name: Rainbow Carrot
@@ -1267,7 +1267,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1063;
+      pet;
   - Id: 623
     AegisName: Earthworm_The_Dude
     Name: Earthworm the Dude
@@ -1279,7 +1279,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1049;
+      pet;
   - Id: 624
     AegisName: Rotten_Fish
     Name: Rotten Fish
@@ -1291,7 +1291,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1011;
+      pet;
   - Id: 625
     AegisName: Lusty_Iron
     Name: Rusty Iron
@@ -1303,7 +1303,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1042;
+      pet;
   - Id: 626
     AegisName: Monster_Juice
     Name: Monster Juice
@@ -1315,7 +1315,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1035;
+      pet;
   - Id: 627
     AegisName: Sweet_Milk
     Name: Sweet Milk
@@ -1327,7 +1327,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1167;
+      pet;
   - Id: 628
     AegisName: Well_Dried_Bone
     Name: Well-Dried Bone
@@ -1339,7 +1339,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1107;
+      pet;
   - Id: 629
     AegisName: Singing_Flower
     Name: Singing Flower
@@ -1351,7 +1351,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1052;
+      pet;
   - Id: 630
     AegisName: Dew_Laden_Moss
     Name: Dew Laden Moss
@@ -1363,7 +1363,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1014;
+      pet;
   - Id: 631
     AegisName: Deadly_Noxious_Herb
     Name: Deadly Noxious Herb
@@ -1375,7 +1375,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1077;
+      pet;
   - Id: 632
     AegisName: Fatty_Chubby_Earthworm
     Name: Fatty Chubby Earthworm
@@ -1387,7 +1387,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1019;
+      pet;
   - Id: 633
     AegisName: Baked_Yam
     Name: Sweet Potato
@@ -1399,7 +1399,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1056;
+      pet;
   - Id: 634
     AegisName: Tropical_Banana
     Name: Tropical Banana
@@ -1411,7 +1411,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1057;
+      pet;
   - Id: 635
     AegisName: Horror_Of_Tribe
     Name: Orc Trophy
@@ -1423,7 +1423,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1023;
+      pet;
   - Id: 636
     AegisName: No_Recipient
     Name: No Recipient
@@ -1435,7 +1435,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1026;
+      pet;
   - Id: 637
     AegisName: Old_Broom
     Name: Old Broom
@@ -1447,7 +1447,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1110;
+      pet;
   - Id: 638
     AegisName: Silver_Knife_Of_Chaste
     Name: Silver Knife of Chastity
@@ -1459,7 +1459,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1170;
+      pet;
   - Id: 639
     AegisName: Armlet_Of_Obedience
     Name: Armlet of Obedience
@@ -1471,7 +1471,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1029;
+      pet;
   - Id: 640
     AegisName: Shining_Stone
     Name: Shining Stone
@@ -1483,7 +1483,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1155;
+      pet;
   - Id: 641
     AegisName: Contracts_In_Shadow
     Name: Contract in Shadow
@@ -1495,7 +1495,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1109;
+      pet;
   - Id: 642
     AegisName: Book_Of_Devil
     Name: Book of the Devil
@@ -1507,7 +1507,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1101;
+      pet;
   - Id: 643
     AegisName: Pet_Incubator
     Name: Pet Incubator
@@ -1528,7 +1528,7 @@ Body:
       BuyingStore: true
       Container: true
     Script: |
-      getrandgroupitem(IG_GiftBox,1);
+      getgroupitem(IG_GIFTBOX);
   - Id: 645
     AegisName: Center_Potion
     Name: Concentration Potion
@@ -1619,7 +1619,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1188;
+      pet;
   - Id: 660
     AegisName: Prohibition_Red_Candle
     Name: Forbidden Red Candle
@@ -1631,7 +1631,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1200;
+      pet;
   - Id: 661
     AegisName: Sway_Apron
     Name: Soft Apron
@@ -1643,7 +1643,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1275;
+      pet;
   - Id: 662
     AegisName: Inspector_Certificate
     Name: Authoritative Badge
@@ -1674,7 +1674,7 @@ Body:
       BuyingStore: true
       Container: true
     Script: |
-      getrandgroupitem(IG_GiftBox_1,1);
+      getgroupitem(IG_GIFTBOX_1);
   - Id: 665
     AegisName: Gift_Box_2
     Name: Gift Box
@@ -1685,7 +1685,7 @@ Body:
       BuyingStore: true
       Container: true
     Script: |
-      getrandgroupitem(IG_GiftBox_2,1);
+      getgroupitem(IG_GIFTBOX_2);
   - Id: 666
     AegisName: Gift_Box_3
     Name: Gift Box
@@ -1696,7 +1696,7 @@ Body:
       BuyingStore: true
       Container: true
     Script: |
-      getrandgroupitem(IG_GiftBox_3,1);
+      getgroupitem(IG_GIFTBOX_3);
   - Id: 667
     AegisName: Gift_Box_4
     Name: Gift Box
@@ -1707,7 +1707,7 @@ Body:
       BuyingStore: true
       Container: true
     Script: |
-      getrandgroupitem(IG_GiftBox_4,1);
+      getgroupitem(IG_GIFTBOX_4);
   - Id: 668
     AegisName: Handsei
     Name: Red Envelope
@@ -2371,7 +2371,7 @@ Body:
     Buy: 1
     Weight: 10
     Script: |
-      itemheal rand(425,425),0;
+      itemheal 425,0;
   - Id: 11706
     AegisName: Steak
     Name: Steak
@@ -2663,7 +2663,7 @@ Body:
     Flags:
       Container: true
     Script: |
-      getrandgroupitem(IG_GiftBoxChina,1);
+      getgroupitem(IG_GIFTBOXCHINA);
   - Id: 12024
     AegisName: Red_Pouch_Of_Surprise
     Name: Red Pouch
@@ -2683,7 +2683,7 @@ Body:
     Flags:
       Container: true
     Script: |
-      getrandgroupitem(IG_EggBoy,1);
+      getgroupitem(IG_EGGBOY);
   - Id: 12026
     AegisName: Egg_Girl
     Name: Dano Festival Egg
@@ -2693,7 +2693,7 @@ Body:
     Flags:
       Container: true
     Script: |
-      getrandgroupitem(IG_EggGirl,1);
+      getgroupitem(IG_EGGGIRL);
   - Id: 12027
     AegisName: Giggling_Box
     Name: Giggling Box
@@ -2821,7 +2821,7 @@ Body:
     Flags:
       Container: true
     Script: |
-      getrandgroupitem(IG_LottoBox,1);
+      getgroupitem(IG_LOTTOBOX);
   - Id: 12039
     AegisName: Lotto_Box05
     Name: Lotto Box 05
@@ -3536,7 +3536,7 @@ Body:
       BuyingStore: true
       Container: true
     Script: |
-      getrandgroupitem(IG_Quiver,1);
+      getgroupitem(IG_QUIVER);
   - Id: 12105
     AegisName: Set_Of_Taiming_Item
     Name: Taming Gift Set
@@ -3547,9 +3547,9 @@ Body:
       BuyingStore: true
       Container: true
     Script: |
-      getrandgroupitem(IG_Taming,1);
-      getrandgroupitem(IG_Taming,1);
-      getrandgroupitem(IG_Taming,1);
+      getgroupitem(IG_TAMING);
+      getgroupitem(IG_TAMING);
+      getgroupitem(IG_TAMING);
   - Id: 12106
     AegisName: Accessory_Box
     Name: Jewelry Box
@@ -3560,7 +3560,7 @@ Body:
       BuyingStore: true
       Container: true
     Script: |
-      getrandgroupitem(IG_Accesory,1);
+      getgroupitem(IG_ACCESORY);
   - Id: 12107
     AegisName: Wrapped_Mask
     Name: Wrapped Mask
@@ -3571,7 +3571,7 @@ Body:
       BuyingStore: true
       Container: true
     Script: |
-      getrandgroupitem(IG_Mask,1);
+      getgroupitem(IG_MASK);
   - Id: 12108
     AegisName: Bundle_Of_Magic_Scroll
     Name: Scroll Package
@@ -3582,11 +3582,11 @@ Body:
       BuyingStore: true
       Container: true
     Script: |
-      getrandgroupitem(IG_Scroll,1);
-      getrandgroupitem(IG_Scroll,1);
-      getrandgroupitem(IG_Scroll,1);
-      getrandgroupitem(IG_Scroll,1);
-      getrandgroupitem(IG_Scroll,1);
+      getgroupitem(IG_SCROLL);
+      getgroupitem(IG_SCROLL);
+      getgroupitem(IG_SCROLL);
+      getgroupitem(IG_SCROLL);
+      getgroupitem(IG_SCROLL);
   - Id: 12109
     AegisName: Poring_Box
     Name: Poring Box
@@ -3608,11 +3608,11 @@ Body:
       BuyingStore: true
       Container: true
     Script: |
-      getrandgroupitem(IG_FirstAid,1);
-      getrandgroupitem(IG_FirstAid,1);
-      getrandgroupitem(IG_FirstAid,1);
-      getrandgroupitem(IG_FirstAid,1);
-      getrandgroupitem(IG_FirstAid,1);
+      getgroupitem(IG_FIRSTAID);
+      getgroupitem(IG_FIRSTAID);
+      getgroupitem(IG_FIRSTAID);
+      getgroupitem(IG_FIRSTAID);
+      getgroupitem(IG_FIRSTAID);
   - Id: 12111
     AegisName: Food_Package
     Name: Bundle of Food
@@ -3623,9 +3623,9 @@ Body:
       BuyingStore: true
       Container: true
     Script: |
-      getrandgroupitem(IG_FoodBag,1);
-      getrandgroupitem(IG_FoodBag,1);
-      getrandgroupitem(IG_FoodBag,1);
+      getgroupitem(IG_FOODBAG);
+      getgroupitem(IG_FOODBAG);
+      getgroupitem(IG_FOODBAG);
   - Id: 12112
     AegisName: Tropical_Sograt
     Name: Tropical Sograt
@@ -3817,9 +3817,9 @@ Body:
       BuyingStore: true
       Container: true
     Script: |
-      getrandgroupitem(IG_CookieBag,1);
-      getrandgroupitem(IG_CookieBag,1);
-      getrandgroupitem(IG_CookieBag,1);
+      getgroupitem(IG_COOKIEBAG);
+      getgroupitem(IG_COOKIEBAG);
+      getgroupitem(IG_COOKIEBAG);
   - Id: 12131
     AegisName: Lucky_Potion
     Name: Lucky Potion
@@ -4514,7 +4514,7 @@ Body:
     Flags:
       Container: true
     Script: |
-      getrandgroupitem(IG_RedBox,1);
+      getgroupitem(IG_REDBOX);
   - Id: 12187
     AegisName: Green_Box
     Name: Old Green Box
@@ -4524,7 +4524,7 @@ Body:
     Flags:
       Container: true
     Script: |
-      getrandgroupitem(IG_GreenBox,1);
+      getgroupitem(IG_GREENBOX);
   - Id: 12188
     AegisName: Magical_Moon_Cake
     Name: Grace Moon Cake
@@ -4542,7 +4542,7 @@ Body:
     Flags:
       Container: true
     Script: |
-      getrandgroupitem(IG_RedBox_2,1);
+      getgroupitem(IG_REDBOX_2);
   - Id: 12190
     AegisName: Moon_Cake
     Name: Moon Cake
@@ -4579,9 +4579,9 @@ Body:
       BuyingStore: true
       Container: true
     Script: |
-      getrandgroupitem(IG_HometownGift,1);
-      getrandgroupitem(IG_HometownGift,1);
-      getrandgroupitem(IG_HometownGift,1);
+      getgroupitem(IG_HOMETOWNGIFT);
+      getgroupitem(IG_HOMETOWNGIFT);
+      getgroupitem(IG_HOMETOWNGIFT);
   - Id: 12195
     AegisName: Plain_Rice_Cake
     Name: Plain Rice Cake
@@ -5017,7 +5017,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1245;
+      pet;
   - Id: 12226
     AegisName: Examination1
     Name: Examination 1
@@ -5185,7 +5185,7 @@ Body:
     Flags:
       Container: true
     Script: |
-      getrandgroupitem(IG_YellowBox,1);
+      getgroupitem(IG_YELLOWBOX);
   - Id: 12241
     AegisName: M_Center_Potion
     Name: Mercenary Concentration Potion
@@ -5225,7 +5225,7 @@ Body:
     Flags:
       Container: true
     Script: |
-      getrandgroupitem(IG_OldGiftBox,1);
+      getgroupitem(IG_OLDGIFTBOX);
   - Id: 12245
     AegisName: Green_Ale_US
     Name: Green Ale
@@ -5244,7 +5244,7 @@ Body:
       BuyingStore: true
       Container: true
     Script: |
-      getrandgroupitem(IG_MagicCardAlbum,1);
+      getgroupitem(IG_MAGICCARDALBUM);
   - Id: 12247
     AegisName: Halohalo
     Name: Halo-Halo
@@ -5263,7 +5263,7 @@ Body:
     Flags:
       Container: true
     Script: |
-      getrandgroupitem(IG_Masquerade,1);
+      getgroupitem(IG_MASQUERADE);
   - Id: 12249
     AegisName: Payroll_Of_Kafra_
     Name: Payment Statement for Kafra Employee
@@ -5678,7 +5678,7 @@ Body:
     Flags:
       Container: true
     Script: |
-      getrandgroupitem(IG_Tresure_Box_WoE,1);
+      getgroupitem(IG_TRESURE_BOX_WOE);
   - Id: 12282
     AegisName: Internet_Cafe1
     Name: Internet Cafe1
@@ -5728,7 +5728,7 @@ Body:
     Flags:
       Container: true
     Script: |
-      getrandgroupitem(IG_Masquerade_2,1);
+      getgroupitem(IG_MASQUERADE_2);
   - Id: 12287
     AegisName: Love_Angel
     Name: Love Angel Magic Powder
@@ -6341,7 +6341,7 @@ Body:
     Flags:
       Container: true
     Script: |
-      getrandgroupitem(IG_Cherish_Box,1);
+      getgroupitem(IG_CHERISH_BOX);
   - Id: 12335
     AegisName: Yummy_Skewered_Dish
     Name: Grilled Delicious Skewer
@@ -6384,7 +6384,7 @@ Body:
     Flags:
       Container: true
     Script: |
-      getrandgroupitem(IG_Cherish_Box_Ori,1);
+      getgroupitem(IG_CHERISH_BOX_ORI);
   - Id: 12340
     AegisName: Mysterious_Rice_Powder
     Name: Chewy Rice Powder
@@ -6401,7 +6401,7 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      pet 1815;
+      pet;
   - Id: 12341
     AegisName: Special_Alloy_Trap_Box
     Name: Special Alloy Trap Box
@@ -6623,7 +6623,7 @@ Body:
       BuyingStore: true
       Container: true
     Script: |
-      getrandgroupitem(IG_Xmas_Gift,1);
+      getgroupitem(IG_XMAS_GIFT);
   - Id: 12356
     AegisName: Louise_Costume_Box
     Name: Louise Costume Box
@@ -6634,7 +6634,7 @@ Body:
       BuyingStore: true
       Container: true
     Script: |
-      getrandgroupitem(IG_Louise_Costume_Box,1);
+      getgroupitem(IG_LOUISE_COSTUME_BOX);
   - Id: 12357
     AegisName: Shiny_Wing_Gown
     Name: Shiny Wing Gown
@@ -6642,7 +6642,7 @@ Body:
     Buy: 20
     Weight: 50
     Script: |
-      pet 1630;
+      pet;
   - Id: 12358
     AegisName: Fan_Of_Wind
     Name: Fan Of Wind
@@ -6654,7 +6654,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1513;
+      pet;
   - Id: 12359
     AegisName: Very_Soft_Plant
     Name: Very Soft Plant
@@ -6666,7 +6666,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1586;
+      pet;
   - Id: 12360
     AegisName: Very_Red_Juice
     Name: Very Red Juice
@@ -6678,7 +6678,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1505;
+      pet;
   - Id: 12361
     AegisName: Delicious_Shaved_Ice
     Name: Delicious Shaved Ice
@@ -6695,7 +6695,7 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      pet 1143;
+      pet;
   - Id: 12362
     AegisName: Kuloren
     Name: Kuloren
@@ -6707,7 +6707,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1401;
+      pet;
   - Id: 12363
     AegisName: Fit_Pipe
     Name: Fit Pipe
@@ -6724,7 +6724,7 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      pet 1179;
+      pet;
   - Id: 12364
     AegisName: Staff_Of_Leader
     Name: Staff Of Leader
@@ -6736,7 +6736,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1299;
+      pet;
   - Id: 12365
     AegisName: Charming_Lotus
     Name: Charming Lotus
@@ -6748,7 +6748,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1416;
+      pet;
   - Id: 12366
     AegisName: Gril_Doll
     Name: Girl's Doll
@@ -6760,7 +6760,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1404;
+      pet;
   - Id: 12367
     AegisName: Luxury_Whisky_Bottle
     Name: Luxury Whisky Bottle
@@ -6772,7 +6772,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1504;
+      pet;
   - Id: 12368
     AegisName: Splendid_Mirror
     Name: Splendid Mirror
@@ -6784,7 +6784,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1148;
+      pet;
   - Id: 12369
     AegisName: Oilpalm_Coconut
     Name: Oilpalm Coconut
@@ -6796,7 +6796,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1495;
+      pet;
   - Id: 12370
     AegisName: Gril's_Naivety
     Name: Girl's Naivety
@@ -6813,7 +6813,7 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      pet 1374;
+      pet;
   - Id: 12371
     AegisName: Magical_Lithography
     Name: Magical Lithography
@@ -6825,7 +6825,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1040;
+      pet;
   - Id: 12372
     AegisName: Hell_Contract
     Name: Hell Contract
@@ -6837,7 +6837,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1379;
+      pet;
   - Id: 12373
     AegisName: Boy's_Naivety
     Name: Boy's Pure Heart
@@ -6849,7 +6849,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1370;
+      pet;
   - Id: 12374
     AegisName: Flaming_Ice
     Name: Ice Fireworks
@@ -6861,7 +6861,7 @@ Body:
     NoUse:
       Sitting: true
     Script: |
-      pet 1837;
+      pet;
   - Id: 12375
     AegisName: Acaraje
     Name: Akaraje
@@ -6875,7 +6875,7 @@ Body:
       NoAuction: true
     Script: |
       specialeffect2 EF_STEAL;
-      bonus_script "{ bonus bHit,5; bonus bAspdRate,10; }",1200,0,0,EFST_ACARAJE;
+      sc_start2 SC_ACARAJE,1200000,10,5;
   - Id: 12376
     AegisName: Mysterious_Can2
     Name: Mysterious Can2
@@ -7140,7 +7140,7 @@ Body:
     Flags:
       BuyingStore: true
     Script: |
-      pet 1519;
+      pet;
   - Id: 12396
     AegisName: Fools_Day_Box
     Name: Gift Box?
@@ -7300,7 +7300,7 @@ Body:
     Name: Leaf Cat Ball
     Type: Usable
     Script: |
-      pet 2081;
+      pet;
   - Id: 12409
     AegisName: Pork_Belly_H
     Name: 1st Class Pork Belly
@@ -8678,8 +8678,8 @@ Body:
     Flags:
       Container: true
     Script: |
-      getrandgroupitem(IG_BleuBox,1);
-      getrandgroupitem(IG_BleuBox,1);
+      getgroupitem(IG_BLEUBOX);
+      getgroupitem(IG_BLEUBOX);
   - Id: 12703
     AegisName: Holy_Egg_2
     Name: Holy Egg
@@ -8796,7 +8796,7 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      getrandgroupitem(IG_Easter_Scroll,1);
+      getgroupitem(IG_EASTER_SCROLL);
   - Id: 12715
     AegisName: Black_Treasure_Box
     Name: Black Treasure Box
@@ -13079,7 +13079,7 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      getitem 7804,1;
+      getitem 2713,1;
   - Id: 13766
     AegisName: Nagan_Box
     Name: Refined Nagan Box
@@ -21307,7 +21307,7 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      pet 1122;
+      pet;
   - Id: 14570
     AegisName: Flail_Goblin_Ring
     Name: Flail Goblin Ring
@@ -21322,7 +21322,7 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      pet 1123;
+      pet;
   - Id: 14571
     AegisName: Hammer_Goblin_Ring
     Name: Hammer Goblin Ring
@@ -21337,7 +21337,7 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      pet 1125;
+      pet;
   - Id: 14572
     AegisName: Holy_Marble
     Name: Holy Marble
@@ -21352,7 +21352,7 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      pet 1385;
+      pet;
   - Id: 14573
     AegisName: Red_Burning_Stone
     Name: Red Burning Stone
@@ -21367,7 +21367,7 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      pet 1382;
+      pet;
   - Id: 14574
     AegisName: Skull_Of_Vagabond
     Name: Vagabond's Skull
@@ -21382,7 +21382,7 @@ Body:
       NoMail: true
       NoAuction: true
     Script: |
-      pet 1208;
+      pet;
   - Id: 14575
     AegisName: Str_Dish05_
     Name: Lutie Lady's Pancake
@@ -21622,12 +21622,12 @@ Body:
     Flags:
       Container: true
     Script: |
-      getrandgroupitem(IG_Pierre_Treasurebox,1);
-      getrandgroupitem(IG_Pierre_Treasurebox,1);
-      getrandgroupitem(IG_Pierre_Treasurebox,1);
-      getrandgroupitem(IG_Pierre_Treasurebox,1);
-      getrandgroupitem(IG_Pierre_Treasurebox,1);
-      getrandgroupitem(IG_Pierre_Treasurebox,1);
+      getgroupitem(IG_PIERRE_TREASUREBOX);
+      getgroupitem(IG_PIERRE_TREASUREBOX);
+      getgroupitem(IG_PIERRE_TREASUREBOX);
+      getgroupitem(IG_PIERRE_TREASUREBOX);
+      getgroupitem(IG_PIERRE_TREASUREBOX);
+      getgroupitem(IG_PIERRE_TREASUREBOX);
   - Id: 14597
     AegisName: PhreeoniS
     Name: Phreeoni Scroll

+ 67 - 68
db/pre-re/item_group_db.yml

@@ -1,5 +1,5 @@
 # This file is a part of rAthena.
-#   Copyright(C) 2023 rAthena Development Team
+#   Copyright(C) 2024 rAthena Development Team
 #   https://rathena.org - https://github.com/rathena
 #
 # This program is free software: you can redistribute it and/or modify
@@ -25,6 +25,7 @@
 # - Group                      Group name of the item.
 #   SubGroups:
 #     - SubGroup:              SubGroup number associated with the list of item. See doc/item_group.txt for more information.
+#       Algorithm:             Type of algorithm associated with SubGroup. (Default: SharedPool)
 #       List:                  List of item(s) for the SubGroup.
 #        - Index               Unique number that can be used to add the same Item with different data in the list.
 #          Item                AegisName of item that will be obtained from this item group.
@@ -45,12 +46,13 @@
 
 Header:
   Type: ITEM_GROUP_DB
-  Version: 3
+  Version: 4
 
 Body:
   - Group: ACCESORY
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Ring
@@ -181,6 +183,7 @@ Body:
   - Group: BLEUBOX
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Milk
@@ -218,6 +221,7 @@ Body:
   - Group: BLUEBOX
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Red_Potion
@@ -3288,6 +3292,7 @@ Body:
   - Group: BOMB
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Apple_Bomb
@@ -3316,6 +3321,7 @@ Body:
   - Group: BOX
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Old_Blue_Box
@@ -3329,6 +3335,7 @@ Body:
   - Group: CANDY
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Candy
@@ -3339,6 +3346,7 @@ Body:
   - Group: CARDALBUM
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Poring_Card
@@ -4429,6 +4437,7 @@ Body:
   - Group: CASH_FOOD
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Str_Dish10_
@@ -4451,6 +4460,7 @@ Body:
   - Group: CHERISH_BOX
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Dog_Cap_
@@ -4464,6 +4474,7 @@ Body:
   - Group: CHERISH_BOX_ORI
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Ragnarok_Limited_Ed
@@ -4483,6 +4494,7 @@ Body:
   - Group: COOKIEBAG
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Candy
@@ -4535,6 +4547,7 @@ Body:
   - Group: EASTER_SCROLL
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: No_Recipient
@@ -4581,6 +4594,7 @@ Body:
   - Group: EGGBOY
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Grape
@@ -4606,6 +4620,7 @@ Body:
   - Group: EGGGIRL
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Grape
@@ -4631,6 +4646,7 @@ Body:
   - Group: ELEMENT
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Scarlet_Pts
@@ -4644,73 +4660,10 @@ Body:
           - Index: 3
             Item: Lime_Green_Pts
             Rate: 1
-  - Group: FINDINGORE
-    SubGroups:
-      - SubGroup: 1
-        List:
-          - Index: 0
-            Item: Emperium
-            Rate: 3
-          - Index: 1
-            Item: Oridecon_Stone
-            Rate: 20
-          - Index: 2
-            Item: Elunium_Stone
-            Rate: 20
-          - Index: 3
-            Item: Gold
-            Rate: 2
-          - Index: 4
-            Item: Oridecon
-            Rate: 10
-          - Index: 5
-            Item: Elunium
-            Rate: 10
-          - Index: 6
-            Item: Boody_Red
-            Rate: 30
-          - Index: 7
-            Item: Crystal_Blue
-            Rate: 30
-          - Index: 8
-            Item: Wind_Of_Verdure
-            Rate: 30
-          - Index: 9
-            Item: Yellow_Live
-            Rate: 30
-          - Index: 10
-            Item: Flame_Heart
-            Rate: 15
-          - Index: 11
-            Item: Mistic_Frozen
-            Rate: 15
-          - Index: 12
-            Item: Rough_Wind
-            Rate: 15
-          - Index: 13
-            Item: Great_Nature
-            Rate: 15
-          - Index: 14
-            Item: Iron
-            Rate: 80
-          - Index: 15
-            Item: Steel
-            Rate: 50
-          - Index: 16
-            Item: Iron_Ore
-            Rate: 100
-          - Index: 17
-            Item: Coal
-            Rate: 60
-          - Index: 18
-            Item: Phracon
-            Rate: 95
-          - Index: 19
-            Item: Emveretarcon
-            Rate: 55
   - Group: FIRSTAID
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Red_Potion
@@ -4769,6 +4722,7 @@ Body:
   - Group: FISH
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Fish_Slice
@@ -4779,6 +4733,7 @@ Body:
   - Group: FOOD
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Royal_Jelly
@@ -4849,6 +4804,7 @@ Body:
   - Group: FOODBAG
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Apple
@@ -4985,6 +4941,7 @@ Body:
   - Group: FRUIT
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Apple
@@ -5004,6 +4961,7 @@ Body:
   - Group: GEMSTONE
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Yellow_Gemstone
@@ -5017,6 +4975,7 @@ Body:
   - Group: GIFTBOX
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Red_Potion
@@ -5231,6 +5190,7 @@ Body:
   - Group: GIFTBOXCHINA
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Red_Potion
@@ -6027,6 +5987,7 @@ Body:
   - Group: GIFTBOX_1
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Red_Potion
@@ -6241,6 +6202,7 @@ Body:
   - Group: GIFTBOX_2
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Red_Potion
@@ -6455,6 +6417,7 @@ Body:
   - Group: GIFTBOX_3
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Red_Potion
@@ -6669,6 +6632,7 @@ Body:
   - Group: GIFTBOX_4
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Red_Potion
@@ -6883,6 +6847,7 @@ Body:
   - Group: GREENBOX
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Chocolate_Drink
@@ -6920,6 +6885,7 @@ Body:
   - Group: HERB
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Red_Herb
@@ -6933,6 +6899,7 @@ Body:
   - Group: HOMETOWNGIFT
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Korea_Rice_Cake
@@ -6961,6 +6928,7 @@ Body:
   - Group: JEWEL
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Yellow_Gemstone
@@ -7018,13 +6986,14 @@ Body:
             Rate: 3
           - Index: 18
             Item: Crystal_Jewel___
-            Rate: 27
+            Rate: 2
           - Index: 19
             Item: Glass_Bead
             Rate: 50
   - Group: JUICE
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Apple_Juice
@@ -7038,6 +7007,7 @@ Body:
   - Group: LOTTOBOX
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Lotto31
@@ -7072,6 +7042,7 @@ Body:
   - Group: LOUISE_COSTUME_BOX
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Red_Bag
@@ -7082,6 +7053,7 @@ Body:
   - Group: MAGICCARDALBUM
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Ghostring_Card
@@ -7179,6 +7151,7 @@ Body:
   - Group: MASK
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Mr_Smile
@@ -7222,6 +7195,7 @@ Body:
   - Group: MASQUERADE
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Drooping_Nine_Tail_
@@ -7238,6 +7212,7 @@ Body:
   - Group: MASQUERADE_2
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Dress_Hat
@@ -7254,6 +7229,7 @@ Body:
   - Group: MEAT
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Meat
@@ -7264,6 +7240,7 @@ Body:
   - Group: MERCENARY
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Bow_Mercenary_Scroll1
@@ -7358,6 +7335,7 @@ Body:
   - Group: MINERAL
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Emperium
@@ -7422,6 +7400,7 @@ Body:
   - Group: OLDGIFTBOX
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Fallen_Leaves_
@@ -7435,6 +7414,7 @@ Body:
   - Group: ORE
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Iron_Ore
@@ -7499,6 +7479,7 @@ Body:
   - Group: PIERRE_TREASUREBOX
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Old_Blue_Box
@@ -7587,6 +7568,7 @@ Body:
   - Group: POISON
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Poison_Paralysis
@@ -7615,6 +7597,7 @@ Body:
   - Group: POTION
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Red_Potion
@@ -7631,6 +7614,7 @@ Body:
   - Group: QUIVER
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Arrow_Container
@@ -7674,6 +7658,7 @@ Body:
   - Group: RECOVERY
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Fruit_Of_Mastela
@@ -7688,7 +7673,7 @@ Body:
             Item: Red_Slim_Potion
             Rate: 10
           - Index: 4
-            Item: Resist_Fire
+            Item: Resist_Earth
             Rate: 10
           - Index: 5
             Item: Yellow_Herb
@@ -7720,6 +7705,7 @@ Body:
   - Group: REDBOX
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Cat_Hat
@@ -7766,6 +7752,7 @@ Body:
   - Group: REDBOX_2
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Alice_Doll
@@ -7782,6 +7769,7 @@ Body:
   - Group: RESIST
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Resist_Fire
@@ -7798,6 +7786,7 @@ Body:
   - Group: SCROLL
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Earth_Scroll_1_3
@@ -7856,6 +7845,7 @@ Body:
   - Group: TAMING
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Unripe_Apple
@@ -8010,6 +8000,7 @@ Body:
   - Group: THROWABLE
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Mysterious_Powder
@@ -8083,6 +8074,7 @@ Body:
   - Group: TOKEN_OF_SIEGFRIED
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: F_Token_Of_Siegfried
@@ -8096,6 +8088,7 @@ Body:
   - Group: TRESURE_BOX_WOE
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Old_Blue_Box
@@ -8160,6 +8153,7 @@ Body:
   - Group: VIOLETBOX
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Red_Potion
@@ -10933,6 +10927,7 @@ Body:
   - Group: XMAS_GIFT
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: HandMade_Chocolate
@@ -10994,6 +10989,7 @@ Body:
   - Group: YELLOWBOX
     SubGroups:
       - SubGroup: 1
+        Algorithm: Random
         List:
           - Index: 0
             Item: Elephant_Hat_
@@ -11010,6 +11006,7 @@ Body:
   - Group: MF_NOTELEPORT
     SubGroups:
       - SubGroup: 0
+        Algorithm: All
         List:
           - Index: 0
             Item: Wing_Of_Fly
@@ -11024,6 +11021,7 @@ Body:
   - Group: MF_NORETURN
     SubGroups:
       - SubGroup: 0
+        Algorithm: All
         List:
           - Index: 0
             Item: Wing_Of_Butterfly
@@ -11072,6 +11070,7 @@ Body:
   - Group: GIANT_FLY_WING
     SubGroups:
       - SubGroup: 0
+        Algorithm: All
         List:
           - Index: 0
             Item: Giant_Fly_Wing

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 355 - 1938
db/pre-re/job_stats.yml


+ 66 - 48
db/pre-re/pet_db.yml

@@ -65,7 +65,7 @@ Body:
     CaptureRate: 2000
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bLuk,2;
         bonus bCritical,1;
@@ -80,7 +80,7 @@ Body:
     CaptureRate: 1500
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bHit,3;
         bonus bAtk,3;
@@ -95,7 +95,7 @@ Body:
     CaptureRate: 1000
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bLuk,2;
         bonus2 bSubEle,Ele_Poison,10;
@@ -111,7 +111,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bCritical,2;
         bonus bAtk,2;
@@ -126,7 +126,7 @@ Body:
     CaptureRate: 2000
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bStr,1;
         bonus bAtk,5;
@@ -141,7 +141,7 @@ Body:
     CaptureRate: 1500
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bAgi,1;
         bonus bFlee,2;
@@ -156,7 +156,7 @@ Body:
     CaptureRate: 1000
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bFlee,6;
         bonus bAgi,-1;
@@ -171,7 +171,7 @@ Body:
     CaptureRate: 500
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bFlee,-5;
         bonus bFlee2,2;
@@ -187,7 +187,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bVit,1;
         bonus bMaxHP,50;
@@ -203,7 +203,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bInt,1;
         bonus bMaxSP,50;
@@ -219,7 +219,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bHPrecovRate,5;
         bonus bMaxHP,25;
@@ -235,7 +235,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bHit,5;
         bonus bAtk,-2;
@@ -251,7 +251,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bStr,1;
         bonus bInt,1;
@@ -266,7 +266,7 @@ Body:
     CaptureRate: 1000
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bMaxHP,150;
         bonus bMaxSP,-10;
@@ -281,7 +281,7 @@ Body:
     CaptureRate: 1000
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bAgi,1;
         bonus bFlee2,1;
@@ -296,7 +296,7 @@ Body:
     CaptureRate: 1000
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bCritical,3;
         bonus bLuk,-1;
@@ -311,7 +311,7 @@ Body:
     CaptureRate: 500
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bAtk,10;
         bonus bDef,-3;
@@ -327,7 +327,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bInt,1;
         bonus bDef,1;
@@ -343,7 +343,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bMatkRate,1;
         bonus bAtkRate,-1;
@@ -359,7 +359,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bStr,1;
         bonus bDex,1;
@@ -375,7 +375,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bMatkRate,-1;
         bonus bAtkRate,1;
@@ -391,7 +391,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bDef,-2;
         bonus bMdef,-2;
@@ -408,7 +408,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bMatkRate,1;
         bonus bAtkRate,1;
@@ -426,7 +426,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bDef,1;
         bonus bMdef,1;
@@ -442,7 +442,7 @@ Body:
     CaptureRate: 500
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bVit,1;
         bonus2 bResEff,Eff_Stun,100;
@@ -457,7 +457,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus2 bAddRace,RC_Demihuman,2;
         bonus2 bMagicAddRace,RC_DemiHuman,2;
@@ -474,7 +474,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bMdef,1;
         bonus2 bSubRace,RC_DemiHuman,1;
@@ -488,7 +488,7 @@ Body:
     CaptureRate: 2000
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus2 bSubEle,Ele_Neutral,1;
         bonus bMaxHPrate,-1;
@@ -503,7 +503,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bMaxHP,30;
         bonus2 bSubEle,Ele_Water,1;
@@ -518,12 +518,30 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bDef,1;
         bonus2 bSubRace,RC_DemiHuman,1;
         bonus2 bSubRace,RC_Player_Human,1;
       }
+# On official pre-renewal servers, only CHUNG_E (1519) was tameable.
+# Uncomment the following lines to enable CHUNG_E_ (1631) too.
+#  - Mob: CHUNG_E_
+#    TameItem: Tantanmen
+#    EggItem: Chung_E_Egg
+#    FoodItem: Bun_
+#    Fullness: 3
+#    IntimacyFed: 50
+#    CaptureRate: 2000
+#    SpecialPerformance: false
+#    Script: >
+#      .@i = getpetinfo(PETINFO_INTIMATE);
+#
+#      if( .@i >= PET_INTIMATE_LOYAL ){
+#        bonus bDef,1;
+#        bonus2 bSubRace,RC_DemiHuman,1;
+#        bonus2 bSubRace,RC_Player_Human,1;
+#      }
   - Mob: ECLIPSE_P
     EggItem: Spring_Rabbit_Egg
     FoodItem: Bok_Choy
@@ -581,7 +599,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bAgi,3;
         bonus bDex,1;
@@ -604,7 +622,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bMaxHP,100;
         bonus bFlee,-5;
@@ -620,7 +638,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bSPrecovRate,3;
       }
@@ -635,7 +653,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bVit,1;
         bonus2 bResEff,Eff_Stone,500;
@@ -651,7 +669,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bFlee,7;
         bonus bDef,-3;
@@ -667,7 +685,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus2 bAddRace,RC_DemiHuman,3;
         bonus2 bAddRace,RC_Player_Human,3;
@@ -683,7 +701,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus2 bHpDrainRate,50,5;
       }
@@ -698,7 +716,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bMaxSPRate,3;
       }
@@ -713,7 +731,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus2 bResEff,Eff_Sleep,10000;
       }
@@ -728,7 +746,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bAgi,2;
       }
@@ -743,7 +761,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bInt,1;
         bonus bCastrate,-3;
@@ -759,7 +777,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bMaxSP,30;
         bonus bSPrecovRate,5;
@@ -775,7 +793,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus2 bSubEle,Ele_Fire,3;
       }
@@ -790,7 +808,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bCritAtkRate,5;
       }
@@ -805,7 +823,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bMaxHPRate,3;
         bonus3 bAutoSpellWhenHit,"AL_HEAL",1,10;
@@ -821,7 +839,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus bMaxSP,10;
       }
@@ -836,7 +854,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus2 bSubRace,RC_Brute,3;
         bonus2 bSubRace,RC_Player_Doram,3;
@@ -861,7 +879,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if( .@i >= PET_INTIMATE_LOYAL ){
         bonus2 bSubEle,Ele_Fire,2;
         bonus2 bAddEle,Ele_Fire,2;

+ 2 - 0
db/pre-re/size_fix.yml

@@ -36,3 +36,5 @@ Body:
   - Weapon: Knuckle
     Medium: 75
     Large: 50
+  - Weapon: Whip
+    Large: 50

+ 10 - 29
db/pre-re/skill_db.yml

@@ -11618,7 +11618,6 @@ Body:
     SplashArea: 1
     Knockback: 2
     CastCancel: true
-    AfterCastActDelay: 1000
     Duration1:
       - Level: 1
         Time: 10000
@@ -11631,7 +11630,7 @@ Body:
     Unit:
       Id: Dummyskill
       Range: 1
-      Interval: 100
+      Interval: 20
       Target: Enemy
     Status: Warm
   - Id: 429
@@ -11652,7 +11651,6 @@ Body:
     SplashArea: 1
     Knockback: 2
     CastCancel: true
-    AfterCastActDelay: 1000
     Duration1:
       - Level: 1
         Time: 10000
@@ -11665,7 +11663,7 @@ Body:
     Unit:
       Id: Dummyskill
       Range: 1
-      Interval: 100
+      Interval: 20
       Target: Enemy
     Status: Warm
   - Id: 430
@@ -11686,7 +11684,6 @@ Body:
     SplashArea: 1
     Knockback: 2
     CastCancel: true
-    AfterCastActDelay: 1000
     Duration1:
       - Level: 1
         Time: 10000
@@ -11699,7 +11696,7 @@ Body:
     Unit:
       Id: Dummyskill
       Range: 1
-      Interval: 100
+      Interval: 20
       Target: Enemy
     Status: Warm
   - Id: 431
@@ -30822,7 +30819,6 @@ Body:
     TargetType: Self
     DamageFlags:
       NoDamage: true
-    Hit: Single
     AfterCastActDelay: 1000
     AfterCastWalkDelay: 1000
     Requires:
@@ -30834,7 +30830,6 @@ Body:
     TargetType: Self
     DamageFlags:
       NoDamage: true
-    Hit: Single
     AfterCastActDelay: 30000
     AfterCastWalkDelay: 1000
     Duration1:
@@ -30865,8 +30860,6 @@ Body:
     Name: HAMI_SKIN
     Description: Adamantium Skin
     MaxLevel: 5
-    DamageFlags:
-      NoDamage: true
   - Id: 8008
     Name: HAMI_BLOODLUST
     Description: Bloodlust
@@ -30874,7 +30867,6 @@ Body:
     TargetType: Self
     DamageFlags:
       NoDamage: true
-    Hit: Single
     AfterCastActDelay:
       - Level: 1
         Time: 300000
@@ -31031,19 +31023,7 @@ Body:
     MaxLevel: 5
     Type: Magic
     TargetType: Attack
-    Range: 15
-    Hit: Single
-    HitCount:
-      - Level: 1
-        Count: 1
-      - Level: 2
-        Count: 2
-      - Level: 3
-        Count: 3
-      - Level: 4
-        Count: 4
-      - Level: 5
-        Count: 5
+    Range: 9
     Requires:
       SpCost:
         - Level: 1
@@ -31060,10 +31040,10 @@ Body:
     Name: HVAN_CHAOTIC
     Description: Benediction of Chaos
     MaxLevel: 5
+    Type: Magic
     TargetType: Self
     DamageFlags:
       NoDamage: true
-    Hit: Single
     AfterCastWalkDelay: 1500
     Requires:
       SpCost: 40
@@ -31071,8 +31051,6 @@ Body:
     Name: HVAN_INSTRUCT
     Description: Instruct
     MaxLevel: 5
-    DamageFlags:
-      NoDamage: true
   - Id: 8016
     Name: HVAN_EXPLOSION
     Description: Bio Explosion
@@ -31084,10 +31062,13 @@ Body:
       IgnoreElement: true
       IgnoreFlee: true
       IgnoreDefCard: true
+    Flags:
+      TargetTrap: true
     Hit: Single
     HitCount: 1
-    Element: Weapon
-    SplashArea: 4
+    Element: Neutral
+    SplashArea: 5
+    Duration1: 1500
     Requires:
       SpCost: 1
   - Id: 8018

+ 30 - 0
db/pre-re/statpoint.yml

@@ -552,3 +552,33 @@ Body:
     Points: 4545
   - Level: 260
     Points: 4545
+  - Level: 261
+    Points: 4545
+  - Level: 262
+    Points: 4545
+  - Level: 263
+    Points: 4545
+  - Level: 264
+    Points: 4545
+  - Level: 265
+    Points: 4545
+  - Level: 266
+    Points: 4545
+  - Level: 267
+    Points: 4545
+  - Level: 268
+    Points: 4545
+  - Level: 269
+    Points: 4545
+  - Level: 270
+    Points: 4545
+  - Level: 271
+    Points: 4545
+  - Level: 272
+    Points: 4545
+  - Level: 273
+    Points: 4545
+  - Level: 274
+    Points: 4545
+  - Level: 275
+    Points: 4545

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 150 - 307
db/pre-re/status.yml


+ 40 - 40
db/re/enchantgrade.yml

@@ -76,15 +76,15 @@ Body:
               - Refine: 15
                 Chance: 7000
               - Refine: 16
-                Chance: 7000
+                Chance: 8000
               - Refine: 17
-                Chance: 7000
+                Chance: 8000
               - Refine: 18
-                Chance: 7000
+                Chance: 8000
               - Refine: 19
-                Chance: 7000
+                Chance: 8000
               - Refine: 20
-                Chance: 7000
+                Chance: 8000
             Bonus: 10
             Catalyst:
                 Item: Blessed_Etel_Dust
@@ -116,15 +116,15 @@ Body:
               - Refine: 15
                 Chance: 6000
               - Refine: 16
-                Chance: 6000
+                Chance: 7000
               - Refine: 17
-                Chance: 6000
+                Chance: 7000
               - Refine: 18
-                Chance: 6000
+                Chance: 7000
               - Refine: 19
-                Chance: 6000
+                Chance: 7000
               - Refine: 20
-                Chance: 6000
+                Chance: 7000
             Bonus: 30
             Catalyst:
                 Item: Blessed_Etel_Dust
@@ -154,15 +154,15 @@ Body:
               - Refine: 15
                 Chance: 5000
               - Refine: 16
-                Chance: 5000
+                Chance: 6000
               - Refine: 17
-                Chance: 5000
+                Chance: 6000
               - Refine: 18
-                Chance: 5000
+                Chance: 6000
               - Refine: 19
-                Chance: 5000
+                Chance: 6000
               - Refine: 20
-                Chance: 5000
+                Chance: 6000
             Bonus: 50
             AnnounceFail: true
             Catalyst:
@@ -193,15 +193,15 @@ Body:
               - Refine: 15
                 Chance: 4000
               - Refine: 16
-                Chance: 4000
+                Chance: 5000
               - Refine: 17
-                Chance: 4000
+                Chance: 5000
               - Refine: 18
-                Chance: 4000
+                Chance: 5000
               - Refine: 19
-                Chance: 4000
+                Chance: 5000
               - Refine: 20
-                Chance: 4000
+                Chance: 5000
             Bonus: 100
             AnnounceFail: true
             Catalyst:
@@ -240,15 +240,15 @@ Body:
               - Refine: 15
                 Chance: 7000
               - Refine: 16
-                Chance: 7000
+                Chance: 8000
               - Refine: 17
-                Chance: 7000
+                Chance: 8000
               - Refine: 18
-                Chance: 7000
+                Chance: 8000
               - Refine: 19
-                Chance: 7000
+                Chance: 8000
               - Refine: 20
-                Chance: 7000
+                Chance: 8000
             Bonus: 10
             Catalyst:
                 Item: Blessed_Etel_Dust
@@ -280,15 +280,15 @@ Body:
               - Refine: 15
                 Chance: 6000
               - Refine: 16
-                Chance: 6000
+                Chance: 7000
               - Refine: 17
-                Chance: 6000
+                Chance: 7000
               - Refine: 18
-                Chance: 6000
+                Chance: 7000
               - Refine: 19
-                Chance: 6000
+                Chance: 7000
               - Refine: 20
-                Chance: 6000
+                Chance: 7000
             Bonus: 30
             Catalyst:
                 Item: Blessed_Etel_Dust
@@ -318,15 +318,15 @@ Body:
               - Refine: 15
                 Chance: 5000
               - Refine: 16
-                Chance: 5000
+                Chance: 6000
               - Refine: 17
-                Chance: 5000
+                Chance: 6000
               - Refine: 18
-                Chance: 5000
+                Chance: 6000
               - Refine: 19
-                Chance: 5000
+                Chance: 6000
               - Refine: 20
-                Chance: 5000
+                Chance: 6000
             Bonus: 50
             AnnounceFail: true
             Catalyst:
@@ -357,15 +357,15 @@ Body:
               - Refine: 15
                 Chance: 4000
               - Refine: 16
-                Chance: 4000
+                Chance: 5000
               - Refine: 17
-                Chance: 4000
+                Chance: 5000
               - Refine: 18
-                Chance: 4000
+                Chance: 5000
               - Refine: 19
-                Chance: 4000
+                Chance: 5000
               - Refine: 20
-                Chance: 4000
+                Chance: 5000
             Bonus: 100
             AnnounceFail: true
             Catalyst:

+ 3768 - 76
db/re/item_combos.yml

@@ -411,14 +411,16 @@ Body:
       bonus bAspdRate,15;
   - Combos:
       - Combo:
-          - Bone_Wand
-          - Skull_Cap
+          - Bone_Wand    # 1662
+          - Skull_Cap    # 18539
       - Combo:
-          - Thorn_Staff
-          - Skull_Cap
+          - Thorn_Staff   # 1636
+          - Skull_Cap    # 18539
     Script: |
-      bonus bMatk,10*getequiprefinerycnt(EQI_HAND_R);
-      bonus bVariableCastrate,-10;
+      .@r = getequiprefinerycnt(EQI_HAND_R);
+      bonus bMatk,10*.@r;
+      if (.@r>=10)
+         bonus bVariableCastrate,-10;
   - Combos:
       - Combo:
           - Staff_Of_Wing
@@ -2690,7 +2692,7 @@ Body:
       bonus2 bVariableCastrate,"PR_MAGNUS",-25;
       bonus bHealPower,10;
       bonus bAddItemHealRate,10;
-      autobonus2 "{ bonus bIgnoreMDefRace,RC_All; }",getequiprefinerycnt(EQI_HAND_R)*20,2000,BF_SHORT|BF_NORMAL;
+      autobonus2 "{ bonus2 bIgnoreMdefRaceRate,RC_All,100; }",getequiprefinerycnt(EQI_HAND_R)*20,2000,BF_SHORT|BF_NORMAL;
       /* Confirm: Success rate and duration */
   - Combos:
       - Combo:
@@ -11739,7 +11741,7 @@ Body:
           - S2_Spirit_M_E_Weapon
     Script: |
       if (getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L) >= 25) {
-         bonus bIgnoreMDefRace,RC_DemiHuman;
+         bonus2 bIgnoreMdefRaceRate,RC_DemiHuman,100;
       }
   - Combos:
       - Combo:
@@ -11749,7 +11751,7 @@ Body:
     Script: |
       bonus bMatk,5;
       if (getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L) >= 25)
-         bonus bIgnoreMDefRace,RC_DemiHuman;
+         bonus2 bIgnoreMdefRaceRate,RC_DemiHuman,100;
   - Combos:
       - Combo:
           - S_Tempest_Earring
@@ -11758,7 +11760,7 @@ Body:
     Script: |
       bonus bMatk,5;
       if (getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L) >= 25)
-         bonus bIgnoreMDefRace,RC_Demon;
+         bonus2 bIgnoreMdefRaceRate,RC_Demon,100;
   - Combos:
       - Combo:
           - S_Tempest_Earring
@@ -11767,8 +11769,8 @@ Body:
     Script: |
       bonus bMatk,5;
       if (getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L) >= 25) {
-         bonus bIgnoreMDefRace,RC_Brute;
-         bonus bIgnoreMDefRace,RC_Player_Doram;
+         bonus2 bIgnoreMdefRaceRate,RC_Brute,100;
+         bonus2 bIgnoreMdefRaceRate,RC_Player_Doram,100;
       }
   - Combos:
       - Combo:
@@ -11778,7 +11780,7 @@ Body:
     Script: |
       bonus bMatk,5;
       if (getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L) >= 25)
-         bonus bIgnoreMDefRace,RC_Insect;
+         bonus2 bIgnoreMdefRaceRate,RC_Insect,100;
   - Combos:
       - Combo:
           - S_Tempest_Earring
@@ -11787,7 +11789,7 @@ Body:
     Script: |
       bonus bMatk,5;
       if (getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L) >= 25)
-         bonus bIgnoreMDefRace,RC_Fish;
+         bonus2 bIgnoreMdefRaceRate,RC_Fish,100;
   - Combos:
       - Combo:
           - S_Tempest_Earring
@@ -11796,7 +11798,7 @@ Body:
     Script: |
       bonus bMatk,5;
       if (getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L) >= 25)
-         bonus bIgnoreMDefRace,RC_Dragon;
+         bonus2 bIgnoreMdefRaceRate,RC_Dragon,100;
   - Combos:
       - Combo:
           - S_Tempest_Earring
@@ -11805,7 +11807,7 @@ Body:
     Script: |
       bonus bMatk,5;
       if (getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L) >= 25)
-         bonus bIgnoreMDefRace,RC_Angel;
+         bonus2 bIgnoreMdefRaceRate,RC_Angel,100;
   - Combos:
       - Combo:
           - S_Tempest_Earring
@@ -11814,7 +11816,7 @@ Body:
     Script: |
       bonus bMatk,5;
       if (getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L) >= 25)
-         bonus bIgnoreMDefRace,RC_Formless;
+         bonus2 bIgnoreMdefRaceRate,RC_Formless,100;
   - Combos:
       - Combo:
           - S_Tempest_Earring
@@ -11823,7 +11825,7 @@ Body:
     Script: |
       bonus bMatk,5;
       if (getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L) >= 25)
-         bonus bIgnoreMDefRace,RC_Undead;
+         bonus2 bIgnoreMdefRaceRate,RC_Undead,100;
   - Combos:
       - Combo:
           - S_Tempest_Earring
@@ -11832,7 +11834,7 @@ Body:
     Script: |
       bonus bMatk,5;
       if (getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L) >= 25)
-         bonus bIgnoreMDefRace,RC_Plant;
+         bonus2 bIgnoreMdefRaceRate,RC_Plant,100;
   - Combos:
       - Combo:
           - S_Tempest_Earring
@@ -12260,8 +12262,8 @@ Body:
       .@r = getequiprefinerycnt(EQI_SHADOW_SHIELD) + getequiprefinerycnt(EQI_SHADOW_SHOES) + getequiprefinerycnt(EQI_SHADOW_ARMOR);
       bonus bMdef,5;
       if (.@r >= 25) {
-         bonus bIgnoreMDefRace,RC_DemiHuman;
-         bonus bIgnoreMDefRace,RC_Undead;
+         bonus2 bIgnoreMdefRaceRate,RC_DemiHuman,100;
+         bonus2 bIgnoreMdefRaceRate,RC_Undead,100;
       }
   - Combos:
       - Combo:
@@ -12272,8 +12274,8 @@ Body:
       .@r = getequiprefinerycnt(EQI_SHADOW_SHIELD) + getequiprefinerycnt(EQI_SHADOW_SHOES) + getequiprefinerycnt(EQI_SHADOW_ARMOR);
       bonus bMdef,5;
       if (.@r >= 25) {
-         bonus bIgnoreMDefRace,RC_Demon;
-         bonus bIgnoreMDefRace,RC_Angel;
+         bonus2 bIgnoreMdefRaceRate,RC_Demon,100;
+         bonus2 bIgnoreMdefRaceRate,RC_Angel,100;
       }
   - Combos:
       - Combo:
@@ -12284,8 +12286,8 @@ Body:
       .@r = getequiprefinerycnt(EQI_SHADOW_SHIELD) + getequiprefinerycnt(EQI_SHADOW_SHOES) + getequiprefinerycnt(EQI_SHADOW_ARMOR);
       bonus bMdef,5;
       if (.@r >= 25) {
-         bonus bIgnoreMDefRace,RC_Formless;
-         bonus bIgnoreMDefRace,RC_Dragon;
+         bonus2 bIgnoreMdefRaceRate,RC_Formless,100;
+         bonus2 bIgnoreMdefRaceRate,RC_Dragon,100;
       }
   - Combos:
       - Combo:
@@ -12296,8 +12298,8 @@ Body:
       .@r = getequiprefinerycnt(EQI_SHADOW_SHIELD) + getequiprefinerycnt(EQI_SHADOW_SHOES) + getequiprefinerycnt(EQI_SHADOW_ARMOR);
       bonus bMdef,5;
       if (.@r >= 25) {
-         bonus bIgnoreMDefRace,RC_Plant;
-         bonus bIgnoreMDefRace,RC_Brute;
+         bonus2 bIgnoreMdefRaceRate,RC_Plant,100;
+         bonus2 bIgnoreMdefRaceRate,RC_Brute,100;
       }
   - Combos:
       - Combo:
@@ -12308,8 +12310,8 @@ Body:
       .@r = getequiprefinerycnt(EQI_SHADOW_SHIELD) + getequiprefinerycnt(EQI_SHADOW_SHOES) + getequiprefinerycnt(EQI_SHADOW_ARMOR);
       bonus bMdef,5;
       if (.@r >= 25) {
-         bonus bIgnoreMDefRace,RC_Fish;
-         bonus bIgnoreMDefRace,RC_Insect;
+         bonus2 bIgnoreMdefRaceRate,RC_Fish,100;
+         bonus2 bIgnoreMdefRaceRate,RC_Insect,100;
       }
   - Combos:
       - Combo:
@@ -12551,8 +12553,8 @@ Body:
       bonus bMatk,5;
       .@r = getequiprefinerycnt(EQI_SHADOW_WEAPON) + getequiprefinerycnt(EQI_SHADOW_ACC_R) + getequiprefinerycnt(EQI_SHADOW_ACC_L);
       if (.@r >= 25) {
-         bonus bIgnoreMDefRace,RC_Demon;
-         bonus bIgnoreMDefRace,RC_Angel;
+         bonus2 bIgnoreMdefRaceRate,RC_Demon,100;
+         bonus2 bIgnoreMdefRaceRate,RC_Angel,100;
       }
   - Combos:
       - Combo:
@@ -12563,8 +12565,8 @@ Body:
       bonus bMatk,5;
       .@r = getequiprefinerycnt(EQI_SHADOW_WEAPON) + getequiprefinerycnt(EQI_SHADOW_ACC_R) + getequiprefinerycnt(EQI_SHADOW_ACC_L);
       if (.@r >= 25) {
-         bonus bIgnoreMDefRace,RC_Formless;
-         bonus bIgnoreMDefRace,RC_Dragon;
+         bonus2 bIgnoreMdefRaceRate,RC_Formless,100;
+         bonus2 bIgnoreMdefRaceRate,RC_Dragon,100;
       }
   - Combos:
       - Combo:
@@ -12575,8 +12577,8 @@ Body:
       bonus bMatk,5;
       .@r = getequiprefinerycnt(EQI_SHADOW_WEAPON) + getequiprefinerycnt(EQI_SHADOW_ACC_R) + getequiprefinerycnt(EQI_SHADOW_ACC_L);
       if (.@r >= 25) {
-         bonus bIgnoreMDefRace,RC_Brute;
-         bonus bIgnoreMDefRace,RC_Plant;
+         bonus2 bIgnoreMdefRaceRate,RC_Brute,100;
+         bonus2 bIgnoreMdefRaceRate,RC_Plant,100;
       }
   - Combos:
       - Combo:
@@ -12587,8 +12589,8 @@ Body:
       bonus bMatk,5;
       .@r = getequiprefinerycnt(EQI_SHADOW_WEAPON) + getequiprefinerycnt(EQI_SHADOW_ACC_R) + getequiprefinerycnt(EQI_SHADOW_ACC_L);
       if (.@r >= 25) {
-         bonus bIgnoreMDefRace,RC_Fish;
-         bonus bIgnoreMDefRace,RC_Insect;
+         bonus2 bIgnoreMdefRaceRate,RC_Fish,100;
+         bonus2 bIgnoreMdefRaceRate,RC_Insect,100;
       }
   - Combos:
       - Combo:
@@ -12599,8 +12601,8 @@ Body:
       bonus bMatk,5;
       .@r = getequiprefinerycnt(EQI_SHADOW_WEAPON) + getequiprefinerycnt(EQI_SHADOW_ACC_R) + getequiprefinerycnt(EQI_SHADOW_ACC_L);
       if (.@r >= 25) {
-         bonus bIgnoreMDefRace,RC_DemiHuman;
-         bonus bIgnoreMDefRace,RC_Undead;
+         bonus2 bIgnoreMdefRaceRate,RC_DemiHuman,100;
+         bonus2 bIgnoreMdefRaceRate,RC_Undead,100;
       }
   - Combos:
       - Combo:
@@ -18420,8 +18422,11 @@ Body:
       bonus2 bSubRace,RC_DemiHuman,10+.@r_armor;
   - Combos:
       - Combo:
-          - Elemental_BootsK
-          - Elemental_Sword
+          - Elemental_Sword    # 13414
+          - Elemental_BootsK    # 470033
+      - Combo:
+          - Elemental_Sword    # 13414
+          - aegis_470282    # 470282
     Script: |
       bonus bMatk,70;
       bonus bAspd,2;
@@ -19245,7 +19250,7 @@ Body:
       .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
       bonus bMatkRate,2;
       if (.@sum >= 18) {
-         bonus bIgnoreMDefRace,RC_All;
+         bonus2 bIgnoreMdefRaceRate,RC_All,100;
          bonus2 bIgnoreMdefRaceRate,RC_Player_Human,-100;
          bonus2 bIgnoreMdefRaceRate,RC_Player_Doram,-100;
       }
@@ -19257,7 +19262,7 @@ Body:
       .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHOES);
       bonus bMatkRate,2;
       if (.@sum >= 18) {
-         bonus bIgnoreMDefRace,RC_All;
+         bonus2 bIgnoreMdefRaceRate,RC_All,100;
          bonus2 bIgnoreMdefRaceRate,RC_Player_Human,-100;
          bonus2 bIgnoreMdefRaceRate,RC_Player_Doram,-100;
       }
@@ -20662,10 +20667,10 @@ Body:
       bonus bMaxHPrate,3*(.@r/2);
   - Combos:
       - Combo:
-          - Astraea_Armor
-          - B_Magaleta_Card
+          - B_Magaleta_Card    # 4363
+          - Astraea_Armor    # 15367
     Script: |
-      .@r = getrefine();
+      .@r = getequiprefinerycnt(EQI_ARMOR);
       if (.@r >= 10) {
          .@r = min(14,.@r)-5;
          bonus bMaxHPrate,pow(.@r,2);
@@ -20854,8 +20859,11 @@ Body:
       }
   - Combos:
       - Combo:
-          - Astraea_Ring
-          - B_Magaleta_Card
+          - B_Magaleta_Card    # 4363
+          - Astraea_Ring    # 32219
+      - Combo:
+          - B_Magaleta_Card    # 4363
+          - Astraea_Ring_LT    # 490595
     Script: |
       bonus bDefEle,Ele_Ghost;
       bonus5 bAutoSpellWhenHit,"HP_ASSUMPTIO",5,-50,BF_WEAPON|BF_MAGIC,0;
@@ -20863,8 +20871,8 @@ Body:
       bonus2 bMagicAddClass,Class_Boss,20;
   - Combos:
       - Combo:
-          - Astraea_Ring
-          - Astraea_Helm_TW
+          - Astraea_Ring    # 32219
+          - Astraea_Helm_TW    # 400075
     Script: |
       bonus bAllStats,3;
       bonus bDelayrate,-7;
@@ -21587,7 +21595,7 @@ Body:
           - Release_Of_Magic
     Script: |
       if (eaclass()&EAJL_THIRD && BaseJob == Job_Sage) {
-         bonus bIgnoreMDefRace,RC_All;
+         bonus2 bIgnoreMdefRaceRate,RC_All,100;
       }
   - Combos:
       - Combo:
@@ -21618,7 +21626,7 @@ Body:
           - Release_Of_Magic
     Script: |
       if (eaclass()&EAJL_THIRD && BaseJob == Job_Wizard) {
-         bonus bIgnoreMDefRace,RC_All;
+         bonus2 bIgnoreMdefRaceRate,RC_All,100;
       }
   - Combos:
       - Combo:
@@ -21634,7 +21642,7 @@ Body:
     Script: |
       if (eaclass()&EAJL_THIRD && BaseJob == Job_Soul_Linker) {
          skill "MG_FIREWALL",10;
-         bonus bIgnoreMDefRace,RC_All;
+         bonus2 bIgnoreMdefRaceRate,RC_All,100;
       }
   - Combos:
       - Combo:
@@ -21649,7 +21657,7 @@ Body:
           - Release_Of_Magic
     Script: |
       if (eaclass()&EAJL_THIRD && BaseJob == Job_Priest) {
-         bonus bIgnoreMDefRace,RC_All;
+         bonus2 bIgnoreMdefRaceRate,RC_All,100;
       }
   - Combos:
       - Combo:
@@ -25157,8 +25165,15 @@ Body:
           - Ring_Of_TheAbyssKing_A     # 490139
     Script: |
       bonus bBaseAtk,BaseLevel;
-      bonus2 bHPDrainRate,100,2;
-      /*Unknow Rate*/
+      bonus2 bHPDrainRate,1000,2;
+  - Combos:
+      - Combo:
+          - Abyss_AncientKing_Card     # 27128
+          - aegis_312305     # 312305
+          - Ring_Of_TheAbyssKing_A     # 490139
+    Script: |
+      bonus bBaseAtk,-BaseLevel;
+      bonus2 bHPDrainRate,-1000,-2;
   - Combos:
       - Combo:
           - Pyuriel_Card     # 4578
@@ -25426,7 +25441,7 @@ Body:
     Script: |
       bonus bAtkRate,5;
       bonus bMatkRate,5;
-      autobonus "{ bonus bIgnoreDefClass,Class_All; bonus bIgnoreMdefRace,RC_All; }",30,7000,BF_WEAPON|BF_MAGIC,"{ active_transform 3658,7000; }";
+      autobonus "{ bonus bIgnoreDefClass,Class_All; bonus2 bIgnoreMdefRaceRate,RC_All,100; }",30,7000,BF_WEAPON|BF_MAGIC,"{ active_transform 3658,7000; }";
   - Combos:
       - Combo:
           - Ring_Of_Hunter     # 490096
@@ -25478,6 +25493,9 @@ Body:
       - Combo:
           - aegis_410136     # 410136
           - Subject_CapeRange_TH     # 480161
+      - Combo:
+          - aegis_410137     # 410137
+          - Subject_CapeRange_TH     # 480161
     Script: |
       .@r = getequiprefinerycnt(EQI_GARMENT);
       bonus bLongAtkRate,7;
@@ -25487,6 +25505,9 @@ Body:
       - Combo:
           - aegis_410136     # 410136
           - Subject_CapeMagic_TH     # 480166
+      - Combo:
+          - aegis_410137     # 410137
+          - Subject_CapeMagic_TH     # 480166
     Script: |
       .@r = getequiprefinerycnt(EQI_GARMENT);
       bonus bMatk,50;
@@ -25496,6 +25517,9 @@ Body:
       - Combo:
           - aegis_410136     # 410136
           - Subject_CapeMelee_TH     # 480172
+      - Combo:
+          - aegis_410137     # 410137
+          - Subject_CapeMelee_TH     # 480172
     Script: |
       .@r = getequiprefinerycnt(EQI_GARMENT);
       bonus bBaseAtk,50;
@@ -27938,19 +27962,19 @@ Body:
       bonus bFixedCast,-500;
   - Combos:
       - Combo:
-          - aegis_311466   # 311466
+          - Reaper_Top3   # 311466
           - Soulreaper_Robe   # 29654
     Script: |
       bonus2 bSkillUseSPrate,"SP_SPA",15;
   - Combos:
       - Combo:
-          - aegis_311467   # 311467
+          - Reaper_Middle3   # 311467
           - Soulreaper_Robe   # 29654
     Script: |
       bonus2 bSkillAtk,"SP_SWHOO",15;
   - Combos:
       - Combo:
-          - aegis_311468   # 311468
+          - Reaper_Bottom3   # 311468
           - Soulreaper_Robe   # 29654
     Script: |
       bonus bFixedCast,-500;
@@ -30284,7 +30308,7 @@ Body:
     Script: |
       bonus bAllStats,(getequiprefinerycnt(EQI_ARMOR)+getequiprefinerycnt(EQI_SHOES));
       bonus bIgnoreDefRace,RC_All;
-      bonus bIgnoreMDefRace,RC_All;
+      bonus2 bIgnoreMdefRaceRate,RC_All,100;
   - Combos:
       - Combo:
           - Garm_Card   # 4324
@@ -30363,7 +30387,7 @@ Body:
       bonus bMatk,80;
       bonus2 bSkillAtk,"CD_FRAMEN",5*(.@r/2);
       bonus2 bSkillAtk,"AB_ADORAMUS",10*(.@r/3);
-      bonus2 bSkillAtk,"2038 AB_JUDEX",10*(.@r/3);
+      bonus2 bSkillAtk,"AB_JUDEX",10*(.@r/3);
   - Combos:
       - Combo:
           - LightOfCardinal   # 490269
@@ -35963,7 +35987,7 @@ Body:
           - aegis_300387    # 300387
           - Inteligence10    # 4719
     Script: |
-      bonus bIgnoreMDefRace,RC_All;
+      bonus2 bIgnoreMdefRaceRate,RC_All,100;
   - Combos:
       - Combo:
           - aegis_300386    # 300386
@@ -43333,6 +43357,7 @@ Body:
     Script: |
       bonus2 bMagicAddEle,Ele_All,20;
       bonus bDelayrate,-5;
+      bonus2 bSkillAtk,"CD_ARBITRIUM",40;
       bonus2 bSkillAtk,"CD_ARBITRIUM_ATK",40;
       bonus2 bSkillAtk,"CD_FRAMEN",20;
   - Combos:
@@ -47248,7 +47273,7 @@ Body:
          .@sum = getequiprefinerycnt(EQI_HAND_R)+getequiprefinerycnt(EQI_HEAD_TOP);
          bonus2 bSkillAtk,"SN_SHARPSHOOTING",2*.@sum;
          if (getskilllv("SN_SHARPSHOOTING") > 0) {
-            bonus4 bAutoSpellOnSkill,"WH_CRESCIVE_BOLT","SN_SHARPSHOOTING",getskilllv("SN_SHARPSHOOTING"),500;
+            bonus4 bAutoSpellOnSkill,"WH_CRESCIVE_BOLT","SN_SHARPSHOOTING",getskilllv("SN_SHARPSHOOTING"),1000;
          }
       }
   - Combos:
@@ -48723,6 +48748,8 @@ Body:
           - FuriousBoots   # 470265
     Script: |
       bonus2 bSkillAtk,"DK_HACKANDSLASHER",15;
+      if (getskilllv("DK_HACKANDSLASHER") > 4)
+         bonus3 bAutoSpell,"DK_HACKANDSLASHER",5,50;
   - Combos:
       - Combo:
           - Trident_Furious   # 630045
@@ -49290,7 +49317,7 @@ Body:
           - aegis_490459    # 490459
           - aegis_490461    # 490461
     Script: |
-      bonus bIgnoreMDefRace,RC_All;
+      bonus2 bIgnoreMdefRaceRate,RC_All,100;
   - Combos:
       - Combo:
           - Wild_Beast    # 400409
@@ -49548,18 +49575,26 @@ Body:
           - aegis_300519   # 300519
           - aegis_300506   # 300506
     Script: |
+      bonus2 bAddSize,Size_All,15;
       if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_WEAPONLEVEL)==5) {
-         bonus2 bAddSize,Size_All,25+15;
-         bonus bPAtk,5;
+         .@i = getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW);
+         if (.@i == W_2HSWORD || .@i == W_2HSPEAR || .@i == W_2HSTAFF || .@i == W_2HAXE || .@i == W_KATAR || .@i == W_BOW || .@i == W_HUUMA || .@i == W_REVOLVER || .@i == W_RIFLE || .@i == W_GATLING || .@i == W_SHOTGUN || .@i == W_GRENADE) {
+            bonus2 bAddSize,Size_All,25;
+            bonus bPAtk,5;
+         }
       }
   - Combos:
       - Combo:
           - aegis_300520   # 300520
           - aegis_300507   # 300507
     Script: |
+      bonus2 bMagicAddSize,Size_All,15;
       if (getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_WEAPONLEVEL)==5) {
-         bonus2 bMagicAddSize,Size_All,25+15;
-         bonus bSMatk,5;
+         .@i = getiteminfo(getequipid(EQI_HAND_R), ITEMINFO_VIEW);
+         if (.@i == W_2HSWORD || .@i == W_2HSPEAR || .@i == W_2HSTAFF || .@i == W_2HAXE || .@i == W_KATAR || .@i == W_BOW || .@i == W_HUUMA || .@i == W_REVOLVER || .@i == W_RIFLE || .@i == W_GATLING || .@i == W_SHOTGUN || .@i == W_GRENADE) {
+            bonus2 bMagicAddSize,Size_All,25;
+            bonus bSMatk,5;
+         }
       }
   - Combos:
       - Combo:
@@ -51414,7 +51449,7 @@ Body:
       bonus2 bMagicAtkEle,Ele_All,8;
       if ((getequiprefinerycnt(EQI_ARMOR) + getequiprefinerycnt(EQI_GARMENT) + getequiprefinerycnt(EQI_SHOES)) >= 39) {
          bonus bIgnoreDefRace,RC_All;
-         bonus bIgnoreMDefRace,RC_All;
+         bonus2 bIgnoreMdefRaceRate,RC_All,100;
       }
   - Combos:
       - Combo:
@@ -51760,16 +51795,16 @@ Body:
       bonus2 bMagicAddRace,RC_All,2*getequiprefinerycnt(EQI_HAND_R);
   - Combos:
       - Combo:
-          - aegis_420342    # 420342
-          - aegis_480451    # 480451
+          - WL_Security_Drone_TH    # 420342
+          - Auto_E_WingC_TH    # 480451
     Script: |
       bonus2 bExpAddRace,RC_All,4+(getequiprefinerycnt(EQI_GARMENT)/2);
   - Combos:
       - Combo:
-          - aegis_420342    # 420342
+          - WL_Security_Drone_TH    # 420342
           - Auto_Armor_A    # 450127
       - Combo:
-          - aegis_420342    # 420342
+          - WL_Security_Drone_TH    # 420342
           - Auto_Armor_B    # 450128
     Script: |
       bonus2 bAddRace,RC_All,8;
@@ -51778,10 +51813,10 @@ Body:
   - Combos:
       - Combo:
           - Auto_Armor_A    # 450127
-          - aegis_480451    # 480451
+          - Auto_E_WingC_TH    # 480451
       - Combo:
           - Auto_Armor_B    # 450128
-          - aegis_480451    # 480451
+          - Auto_E_WingC_TH    # 480451
     Script: |
       if ((getequiprefinerycnt(EQI_ARMOR)+getequiprefinerycnt(EQI_GARMENT)) >= 21) {
          bonus2 bIgnoreDefRaceRate,RC_Dragon,30;
@@ -52207,3 +52242,3660 @@ Body:
       bonus bShortAtkRate,7;
       bonus bLongAtkRate,7;
       bonus2 bMagicAtkEle,Ele_All,7;
+  - Combos:
+      - Combo:
+          - S_SHC_EC_Earring   # 24906
+          - S_Master_Weapon   # 24792
+          - S_SHC_EC_Pendant   # 24907
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus bCRate,1;
+      bonus bCritical,3;
+      if (.@sum>=27) {
+         bonus2 bIgnoreResRaceRate,RC_All,10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_SHC_EC_Earring   # 24906
+          - S_SHC_EC_Pendant   # 24907
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus bPAtk,2;
+      bonus bAtkRate,2;
+      if (.@sum>=15) {
+         bonus2 bAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreDefRaceRate,RC_All,50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_SHC_SI_Armor   # 24908
+          - S_Master_Shield   # 24793
+          - S_SHC_SI_Shoes   # 24909
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bCRate,1;
+      bonus bCritical,3;
+      if (.@sum>=27) {
+         bonus2 bIgnoreResRaceRate,RC_All,10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_SHC_SI_Armor   # 24908
+          - S_SHC_SI_Shoes   # 24909
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bPAtk,2;
+      bonus bAtkRate,2;
+      if (.@sum>=15) {
+         bonus2 bAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreDefRaceRate,RC_All,50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_WH_GS_Earring   # 24910
+          - S_Master_Weapon   # 24792
+          - S_WH_GS_Pendant   # 24911
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus2 bAddEle,Ele_All,3;
+      bonus bPAtk,2;
+      if (.@sum>=27) {
+         bonus2 bIgnoreResRaceRate,RC_All,10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_WH_GS_Earring   # 24910
+          - S_WH_GS_Pendant   # 24911
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus bPAtk,2;
+      bonus bAtkRate,2;
+      if (.@sum>=15) {
+         bonus2 bAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreDefRaceRate,RC_All,50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_WH_CB_Armor   # 24912
+          - S_Master_Shield   # 24793
+          - S_WH_CB_Shoes   # 24913
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bCRate,1;
+      bonus bCritical,3;
+      if (.@sum>=27) {
+         bonus2 bIgnoreResRaceRate,RC_All,10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_WH_CB_Armor   # 24912
+          - S_WH_CB_Shoes   # 24913
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bPAtk,2;
+      bonus bAtkRate,2;
+      if (.@sum>=15) {
+         bonus2 bAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreDefRaceRate,RC_All,50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_SS_SR_Earring   # 24914
+          - S_Master_Weapon   # 24792
+          - S_SS_SR_Pendant   # 24915
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus2 bMagicAddEle,Ele_All,3;
+      bonus bSMatk,2;
+      if (.@sum>=27) {
+         bonus2 bIgnoreMResRaceRate,RC_All,10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_SS_SR_Earring   # 24914
+          - S_SS_SR_Pendant   # 24915
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus bSMatk,2;
+      bonus bMatkRate,2;
+      if (.@sum>=15) {
+         bonus2 bMagicAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreMdefRaceRate,RC_All,50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_SS_KR_Armor   # 24916
+          - S_Master_Shield   # 24793
+          - S_SS_KR_Shoes   # 24917
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus2 bMagicAddEle,Ele_All,3;
+      bonus bSMatk,2;
+      if (.@sum>=27) {
+         bonus2 bIgnoreMResRaceRate,RC_All,10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_SS_KR_Armor   # 24916
+          - S_SS_KR_Shoes   # 24917
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bSMatk,2;
+      bonus bMatkRate,2;
+      if (.@sum>=15) {
+         bonus2 bMagicAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreMdefRaceRate,RC_All,50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_DK_SS_Earring   # 24918
+          - S_Master_Weapon   # 24792
+          - S_DK_SS_Pendant   # 24919
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus bCRate,1;
+      bonus bCritical,3;
+      if (.@sum>=27) {
+         bonus2 bIgnoreResRaceRate,RC_All,10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_DK_SS_Earring   # 24918
+          - S_DK_SS_Pendant   # 24919
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus bPAtk,2;
+      bonus bAtkRate,2;
+      if (.@sum>=15) {
+         bonus2 bAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreDefRaceRate,RC_All,50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_DK_HS_Armor   # 24920
+          - S_Master_Shield   # 24793
+          - S_DK_HS_Shoes   # 24921
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bCRate,1;
+      bonus bCritical,3;
+      if (.@sum>=27) {
+         bonus2 bIgnoreResRaceRate,RC_All,10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_DK_HS_Armor   # 24920
+          - S_DK_HS_Shoes   # 24921
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bPAtk,2;
+      bonus bAtkRate,2;
+      if (.@sum>=15) {
+         bonus2 bAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreDefRaceRate,RC_All,50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_TR_RW_Earring   # 24922
+          - S_Master_Weapon   # 24792
+          - S_TR_RW_Pendant   # 24923
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus2 bMagicAddEle,Ele_All,3;
+      bonus bSMatk,2;
+      if (.@sum>=27) {
+         bonus2 bIgnoreMResRaceRate,RC_All,10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_TR_RW_Earring   # 24922
+          - S_TR_RW_Pendant   # 24923
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus bSMatk,2;
+      bonus bMatkRate,2;
+      if (.@sum>=15) {
+         bonus2 bMagicAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreMdefRaceRate,RC_All,50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_TR_MF_Armor   # 24924
+          - S_Master_Shield   # 24793
+          - S_TR_MF_Shoes   # 24925
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus2 bMagicAddEle,Ele_All,3;
+      bonus bSMatk,2;
+      if (.@sum>=27) {
+         bonus2 bIgnoreMResRaceRate,RC_All,10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_TR_MF_Armor   # 24924
+          - S_TR_MF_Shoes   # 24925
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bSMatk,2;
+      bonus bMatkRate,2;
+      if (.@sum>=15) {
+         bonus2 bMagicAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreMdefRaceRate,RC_All,50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_NW_SO_Earring   # 24926
+          - S_Master_Weapon   # 24792
+          - S_NW_SO_Pendant   # 24927
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus bCRate,1;
+      bonus bCritical,3;
+      if (.@sum>=27) {
+         bonus2 bIgnoreResRaceRate,RC_All,10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_NW_SO_Earring   # 24926
+          - S_NW_SO_Pendant   # 24927
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus bPAtk,2;
+      bonus bAtkRate,2;
+      if (.@sum>=15) {
+         bonus2 bAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreDefRaceRate,RC_All,50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_NW_WB_Armor   # 24928
+          - S_Master_Shield   # 24793
+          - S_NW_WB_Shoes   # 24929
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bCRate,1;
+      bonus bCritical,3;
+      if (.@sum>=27) {
+         bonus2 bIgnoreResRaceRate,RC_All,10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_NW_WB_Armor   # 24928
+          - S_NW_WB_Shoes   # 24929
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bPAtk,2;
+      bonus bAtkRate,2;
+      if (.@sum>=15) {
+         bonus2 bAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreDefRaceRate,RC_All,50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - aegis_313359   # 313359
+          - Warlock_Top3   # 310884
+    Script: |
+      bonus2 bSkillAtk,"AG_SOUL_VC_STRIKE",10;
+  - Combos:
+      - Combo:
+          - aegis_313359   # 313359
+          - Warlock_Middle3   # 310885
+    Script: |
+      bonus2 bSkillAtk,"AG_MYSTERY_ILLUSION",10;
+  - Combos:
+      - Combo:
+          - aegis_313359   # 313359
+          - Warlock_Bottom3   # 310886
+    Script: |
+      bonus2 bMagicAddSize,Size_All,3*(getskilllv("AG_TWOHANDSTAFF")/2);
+  - Combos:
+      - Combo:
+          - aegis_313360   # 313360
+          - Ranger_Top3   # 311359
+    Script: |
+      bonus2 bAddEle,Ele_All,3*getskilllv("WH_WIND_SIGN");
+  - Combos:
+      - Combo:
+          - aegis_313360   # 313360
+          - Ranger_Middle3   # 311360
+    Script: |
+      bonus2 bSkillAtk,"WH_CRESCIVE_BOLT",15;
+  - Combos:
+      - Combo:
+          - aegis_313360   # 313360
+          - Ranger_Bottom3   # 311361
+    Script: |
+      bonus bPAtk,3;
+      bonus2 bSkillAtk,"WH_GALESTORM",10;
+  - Combos:
+      - Combo:
+          - aegis_313361   # 313361
+          - Reaper_Top3   # 311466
+    Script: |
+      bonus2 bSkillAtk,"SOA_TALISMAN_OF_BLUE_DRAGON",15;
+      bonus2 bSkillAtk,"SOA_TALISMAN_OF_RED_PHOENIX",15;
+  - Combos:
+      - Combo:
+          - aegis_313361   # 313361
+          - Reaper_Middle3   # 311467
+    Script: |
+      bonus2 bSkillAtk,"SOA_TALISMAN_OF_WHITE_TIGER",10;
+      bonus2 bSkillAtk,"SOA_TALISMAN_OF_BLACK_TORTOISE",10;
+  - Combos:
+      - Combo:
+          - aegis_313361   # 313361
+          - Reaper_Bottom3   # 311468
+    Script: |
+      bonus2 bSkillAtk,"SOA_TALISMAN_OF_FOUR_BEARING_GOD",10;
+  - Combos:
+      - Combo:
+          - aegis_450405   # 450405
+          - Cvt_Physical_Wing   # 480124
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_ARMOR)+getequiprefinerycnt(EQI_GARMENT);
+      bonus bDelayrate,-5;
+      if (.@sum>=18) {
+         bonus2 bAddEle,Ele_All,10;
+         if (.@sum>=23) {
+            bonus bShortAtkRate,.@sum;
+            bonus bLongAtkRate,.@sum;
+         }
+      }
+  - Combos:
+      - Combo:
+          - aegis_450406   # 450406
+          - Cvt_Magical_Wing   # 480125
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_ARMOR)+getequiprefinerycnt(EQI_GARMENT);
+      bonus bDelayrate,-5;
+      if (.@sum>=18) {
+         bonus2 bMagicAddEle,Ele_All,10;
+         if (.@sum>=23) {
+            bonus2 bMagicAtkEle,Ele_All,.@sum;
+         }
+      }
+  - Combos:
+      - Combo:
+          - aegis_450407   # 450407
+          - aegis_480197   # 480197
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_ARMOR)+getequiprefinerycnt(EQI_GARMENT);
+      bonus bDelayrate,-5;
+      if (.@sum>=18) {
+         bonus2 bAddEle,Ele_All,10;
+         if (.@sum>=23) {
+            bonus bCritAtkRate,.@sum;
+         }
+      }
+  - Combos:
+      - Combo:
+          - Time_Gap_Spear_IG   # 530060
+          - Time_DM_R_Crown_IG   # 400530
+    Script: |
+      bonus bLongAtkRate,20;
+      bonus2 bSkillAtk,"LG_CANNONSPEAR",45;
+      if (getenchantgrade(EQI_HAND_R)>=ENCHANTGRADE_A && getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A) {
+         .@sum = getequiprefinerycnt(EQI_HAND_R)+getequiprefinerycnt(EQI_HEAD_TOP);
+         bonus2 bSkillAtk,"LG_CANNONSPEAR",2*.@sum;
+         if (getskilllv("LG_CANNONSPEAR") > 0) {
+            bonus4 bAutoSpellOnSkill,"IG_RADIANT_SPEAR","LG_CANNONSPEAR",getskilllv("LG_CANNONSPEAR"),1000;
+         }
+      }
+  - Combos:
+      - Combo:
+          - Time_Gap_HN_Staff   # 550152
+          - Time_DM_R_Crown_HN   # 400545
+    Script: |
+      bonus2 bMagicAddEle,Ele_All,10;
+      bonus2 bSkillAtk,"HN_NAPALM_VULCAN_STRIKE",45;
+      if (getenchantgrade(EQI_HAND_R)>=ENCHANTGRADE_A && getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A) {
+         .@sum = getequiprefinerycnt(EQI_HAND_R)+getequiprefinerycnt(EQI_HEAD_TOP);
+         bonus2 bSkillAtk,"HN_NAPALM_VULCAN_STRIKE",.@sum;
+         bonus2 bSkillAtk,"HN_JACK_FROST_NOVA",.@sum;
+         bonus2 bSkillCooldown,"HN_JUPITEL_THUNDER_STORM",-300;
+      }
+  - Combos:
+      - Combo:
+          - Time_Gap_TR_Vilolin   # 570075
+          - Time_DM_R_Crown_TR   # 400540
+    Script: |
+      bonus2 bMagicAddEle,Ele_All,10;
+      bonus2 bSkillAtk,"TR_METALIC_FURY",15;
+      if (getenchantgrade(EQI_HAND_R)>=ENCHANTGRADE_A && getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A) {
+         .@sum = getequiprefinerycnt(EQI_HAND_R)+getequiprefinerycnt(EQI_HEAD_TOP);
+         bonus bDelayrate,-10;
+         bonus2 bSkillAtk,"TR_METALIC_FURY",.@sum;
+      }
+  - Combos:
+      - Combo:
+          - Time_Gap_TR_Ribbon   # 580075
+          - Time_DM_R_Crown_TR   # 400540
+    Script: |
+      bonus2 bMagicAddEle,Ele_All,10;
+      bonus2 bSkillAtk,"TR_METALIC_FURY",15;
+      if (getenchantgrade(EQI_HAND_R)>=ENCHANTGRADE_A && getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A) {
+         .@sum = getequiprefinerycnt(EQI_HAND_R)+getequiprefinerycnt(EQI_HEAD_TOP);
+         bonus bDelayrate,-10;
+         bonus2 bSkillAtk,"TR_METALIC_FURY",.@sum;
+      }
+  - Combos:
+      - Combo:
+          - Time_Gap_MT_Axe   # 620043
+          - Time_DM_R_Crown_MT   # 400531
+    Script: |
+      bonus2 bSubEle,Ele_All,15;
+      bonus2 bSkillAtk,"MT_RUSH_STRIKE",40;
+      if (getenchantgrade(EQI_HAND_R)>=ENCHANTGRADE_A && getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A) {
+         .@sum = getequiprefinerycnt(EQI_HAND_R)+getequiprefinerycnt(EQI_HEAD_TOP);
+         bonus2 bAddEle,Ele_All,15;
+         bonus2 bSkillAtk,"MT_MIGHTY_SMASH",.@sum;
+      }
+  - Combos:
+      - Combo:
+          - Time_Gap_Staff_AG   # 640054
+          - Time_DM_R_Crown_AG   # 400535
+    Script: |
+      bonus2 bSkillAtk,"AG_MYSTERY_ILLUSION",45;
+      bonus2 bMagicAtkEle,Ele_Dark,20;
+      bonus2 bMagicAtkEle,Ele_Ghost,15;
+      if (getenchantgrade(EQI_HAND_R)>=ENCHANTGRADE_A && getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A) {
+         .@sum = getequiprefinerycnt(EQI_HAND_R)+getequiprefinerycnt(EQI_HEAD_TOP);
+         bonus2 bSkillAtk,"AG_MYSTERY_ILLUSION",.@sum;
+         bonus2 bSkillCooldown,"AG_SOUL_VC_STRIKE",-200;
+      }
+  - Combos:
+      - Combo:
+          - Time_Gap_Revolver_NW   # 800042
+          - Time_DM_R_Crown_NW   # 400542
+    Script: |
+      bonus bLongAtkRate,15;
+      bonus2 bSkillAtk,"NW_MAGAZINE_FOR_ONE",25;
+      if (getenchantgrade(EQI_HAND_R)>=ENCHANTGRADE_A && getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A) {
+         .@sum = getequiprefinerycnt(EQI_HAND_R)+getequiprefinerycnt(EQI_HEAD_TOP);
+         bonus2 bSkillAtk,"NW_MAGAZINE_FOR_ONE",.@sum;
+         bonus2 bSkillCooldown,"NW_WILD_SHOT",-200;
+      }
+  - Combos:
+      - Combo:
+          - S_MT_MS_Earring   # 24936
+          - S_Master_Weapon   # 24792
+          - S_MT_MS_Pendant   # 24937
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus2 bAddEle,Ele_All,3;
+      bonus bPAtk,2;
+      if (.@sum>=27) {
+         bonus2 bIgnoreResRaceRate,RC_All,10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_MT_MS_Earring   # 24936
+          - S_MT_MS_Pendant   # 24937
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus bPAtk,2;
+      bonus bAtkRate,2;
+      if (.@sum>=15) {
+         bonus2 bAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreDefRaceRate,RC_All,50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_MT_PR_Armor   # 24938
+          - S_Master_Shield   # 24793
+          - S_MT_PR_Shoes   # 24939
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus2 bAddEle,Ele_All,3;
+      bonus bPAtk,2;
+      if (.@sum>=27) {
+         bonus2 bIgnoreResRaceRate,RC_All,10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_MT_PR_Armor   # 24938
+          - S_MT_PR_Shoes   # 24939
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bPAtk,2;
+      bonus bAtkRate,2;
+      if (.@sum>=15) {
+         bonus2 bAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreDefRaceRate,RC_All,50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_BO_EP_Earring   # 24940
+          - S_Master_Weapon   # 24792
+          - S_BO_EP_Pendant   # 24941
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus2 bAddEle,Ele_All,3;
+      bonus bPAtk,2;
+      if (.@sum>=27) {
+         bonus2 bIgnoreResRaceRate,RC_All,10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_BO_EP_Earring   # 24940
+          - S_BO_EP_Pendant   # 24941
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus bPAtk,2;
+      bonus bAtkRate,2;
+      if (.@sum>=15) {
+         bonus2 bAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreDefRaceRate,RC_All,50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_BO_MD_Armor   # 24942
+          - S_Master_Shield   # 24793
+          - S_BO_MD_Shoes   # 24943
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus2 bAddEle,Ele_All,3;
+      bonus bPAtk,2;
+      if (.@sum>=27) {
+         bonus2 bIgnoreResRaceRate,RC_All,10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_BO_MD_Armor   # 24942
+          - S_BO_MD_Shoes   # 24943
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bPAtk,2;
+      bonus bAtkRate,2;
+      if (.@sum>=15) {
+         bonus2 bAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreDefRaceRate,RC_All,50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_HN_VJ_Earring   # 24944
+          - S_Master_Weapon   # 24792
+          - S_HN_VJ_Pendant   # 24945
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus2 bMagicAddEle,Ele_All,3;
+      bonus bSMatk,2;
+      if (.@sum>=27) {
+         bonus2 bIgnoreMResRaceRate,RC_All,10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_HN_VJ_Earring   # 24944
+          - S_HN_VJ_Pendant   # 24945
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus bSMatk,2;
+      bonus bMatkRate,2;
+      if (.@sum>=15) {
+         bonus2 bMagicAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreMdefRaceRate,RC_All,50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_HN_TB_Armor   # 24946
+          - S_Master_Shield   # 24793
+          - S_HN_TB_Shoes   # 24947
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus2 bMagicAddEle,Ele_All,3;
+      bonus bSMatk,2;
+      if (.@sum>=27) {
+         bonus2 bIgnoreMResRaceRate,RC_All,10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_HN_TB_Armor   # 24946
+          - S_HN_TB_Shoes   # 24947
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bSMatk,2;
+      bonus bMatkRate,2;
+      if (.@sum>=15) {
+         bonus2 bMagicAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreMdefRaceRate,RC_All,50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - aegis_300585   # 300585
+          - Yorscalp_P_Circlet   # 400723
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      if (getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A && .@r>=10) {
+         bonus2 bSkillAtk,"DK_HACKANDSLASHER",(.@r-10)*12;
+         bonus2 bSkillAtk,"DK_STORMSLASH",(.@r-10)*12;
+      }
+  - Combos:
+      - Combo:
+          - aegis_300586   # 300586
+          - Yorscalp_P_Circlet   # 400723
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      if (getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A && .@r>=10) {
+         bonus2 bSkillAtk,"IG_IMPERIAL_CROSS",(.@r-10)*12;
+         bonus2 bSkillAtk,"IG_OVERSLASH",(.@r-10)*12;
+      }
+  - Combos:
+      - Combo:
+          - aegis_300587   # 300587
+          - Yorscalp_P_Circlet   # 400723
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      if (getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A && .@r>=10) {
+         bonus2 bSkillAtk,"IQ_EXPOSION_BLASTER",(.@r-10)*12;
+         bonus2 bSkillAtk,"IQ_BLAZING_FLAME_BLAST",(.@r-10)*12;
+      }
+  - Combos:
+      - Combo:
+          - aegis_300588   # 300588
+          - Yorscalp_M_Circlet   # 400724
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      if (getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A && .@r>=10) {
+         bonus2 bSkillAtk,"CD_ARBITRIUM",(.@r-10)*12;
+         bonus2 bSkillAtk,"CD_ARBITRIUM_ATK",(.@r-10)*12;
+         bonus2 bSkillAtk,"CD_DIVINUS_FLOS",(.@r-10)*12;
+      }
+  - Combos:
+      - Combo:
+          - aegis_300589   # 300589
+          - Yorscalp_P_Circlet   # 400723
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      if (getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A && .@r>=10) {
+         bonus2 bSkillAtk,"MT_ENERGY_CANNONADE",(.@r-10)*12;
+         bonus2 bSkillAtk,"MT_SPARK_BLASTER",(.@r-10)*12;
+      }
+  - Combos:
+      - Combo:
+          - aegis_300590   # 300590
+          - Yorscalp_P_Circlet   # 400723
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      if (getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A && .@r>=10) {
+         bonus2 bSkillAtk,"BO_DUST_EXPLOSION",(.@r-10)*12;
+         bonus2 bSkillAtk,"BO_MYSTERY_POWDER",(.@r-10)*12;
+      }
+  - Combos:
+      - Combo:
+          - aegis_300591   # 300591
+          - Yorscalp_P_Circlet   # 400723
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      if (getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A && .@r>=10) {
+         bonus2 bSkillAtk,"SHC_ETERNAL_SLASH",(.@r-10)*12;
+         bonus2 bSkillAtk,"SHC_CROSS_SLASH",(.@r-10)*12;
+      }
+  - Combos:
+      - Combo:
+          - aegis_300592   # 300592
+          - Yorscalp_M_Circlet   # 400724
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      if (getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A && .@r>=10) {
+         bonus2 bSkillAtk,"ABC_ABYSS_SQUARE",(.@r-10)*12;
+         bonus2 bSkillAtk,"ABC_ABYSS_FLAME",(.@r-10)*12;
+         bonus2 bSkillAtk,"ABC_ABYSS_FLAME_ATK",(.@r-10)*12;
+      }
+  - Combos:
+      - Combo:
+          - aegis_300593   # 300593
+          - Yorscalp_M_Circlet   # 400724
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      if (getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A && .@r>=10) {
+         bonus2 bSkillAtk,"AG_ALL_BLOOM",(.@r-10)*12;
+         bonus2 bSkillAtk,"AG_ALL_BLOOM_ATK",(.@r-10)*12;
+         bonus2 bSkillAtk,"AG_ALL_BLOOM_ATK2",(.@r-10)*12;
+         bonus2 bSkillAtk,"AG_DESTRUCTIVE_HURRICANE",(.@r-10)*12;
+      }
+  - Combos:
+      - Combo:
+          - aegis_300594   # 300594
+          - Yorscalp_M_Circlet   # 400724
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      if (getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A && .@r>=10) {
+         bonus2 bSkillAtk,"EM_LIGHTNING_LAND",(.@r-10)*12;
+         bonus2 bSkillAtk,"EM_TERRA_DRIVE",(.@r-10)*12;
+      }
+  - Combos:
+      - Combo:
+          - aegis_300595   # 300595
+          - Yorscalp_P_Circlet   # 400723
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      if (getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A && .@r>=10) {
+         bonus2 bSkillAtk,"WH_CRESCIVE_BOLT",(.@r-10)*12;
+         bonus2 bSkillAtk,"WH_WILD_WALK",(.@r-10)*12;
+      }
+  - Combos:
+      - Combo:
+          - aegis_300596   # 300596
+          - Yorscalp_P_Circlet   # 400723
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      if (getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A && .@r>=10) {
+         bonus2 bSkillAtk,"TR_RHYTHMSHOOTING",(.@r-10)*12;
+         bonus2 bSkillAtk,"TR_ROSEBLOSSOM",(.@r-10)*12;
+         bonus2 bSkillAtk,"TR_ROSEBLOSSOM_ATK",(.@r-10)*12;
+      }
+  - Combos:
+      - Combo:
+          - aegis_300597   # 300597
+          - Yorscalp_P_Circlet   # 400723
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      if (getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A && .@r>=10) {
+         bonus2 bSkillAtk,"SKE_NOON_BLAST",(.@r-10)*12;
+         bonus2 bSkillAtk,"SKE_ALL_IN_THE_SKY",(.@r-10)*12;
+      }
+  - Combos:
+      - Combo:
+          - aegis_300598   # 300598
+          - Yorscalp_P_Circlet   # 400723
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      if (getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A && .@r>=10) {
+         bonus2 bSkillAtk,"NW_MAGAZINE_FOR_ONE",(.@r-10)*12;
+         bonus2 bSkillAtk,"NW_WILD_SHOT",(.@r-10)*12;
+      }
+  - Combos:
+      - Combo:
+          - aegis_300599   # 300599
+          - Yorscalp_M_Circlet   # 400724
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      if (getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A && .@r>=10) {
+         bonus2 bSkillAtk,"SS_ANKOKURYUUAKUMU",(.@r-10)*12;
+         bonus2 bSkillAtk,"SS_ANTENPOU",(.@r-10)*12;
+      }
+  - Combos:
+      - Combo:
+          - aegis_300600   # 300600
+          - Yorscalp_M_Circlet   # 400724
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      if (getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A && .@r>=10) {
+         bonus2 bSkillAtk,"SOA_TALISMAN_OF_FOUR_BEARING_GOD",(.@r-10)*12;
+         bonus2 bSkillAtk,"SOA_TALISMAN_OF_RED_PHOENIX",(.@r-10)*12;
+      }
+  - Combos:
+      - Combo:
+          - aegis_300601   # 300601
+          - Yorscalp_M_Circlet   # 400724
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      if (getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A && .@r>=10) {
+         bonus2 bSkillAtk,"HN_JUPITEL_THUNDER_STORM",(.@r-10)*12;
+         bonus2 bSkillAtk,"HN_JACK_FROST_NOVA",(.@r-10)*12;
+      }
+  - Combos:
+      - Combo:
+          - aegis_300602   # 300602
+          - Yorscalp_M_Circlet   # 400724
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      if (getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A && .@r>=10) {
+         bonus2 bSkillAtk,"SH_HYUN_ROK_SPIRIT_POWER",(.@r-10)*12;
+         bonus2 bSkillAtk,"SH_HYUN_ROK_CANNON",(.@r-10)*12;
+      }
+  - Combos:
+      - Combo:
+          - Yorscalp_P_Circlet   # 400723
+          - Yorscalp_Armor   # 450412
+    Script: |
+      bonus bMaxHPrate,10;
+  - Combos:
+      - Combo:
+          - Yorscalp_P_Circlet   # 400723
+          - Yorscalp_Boots   # 470303
+    Script: |
+      bonus bLongAtkRate,10;
+      bonus bShortAtkRate,10;
+  - Combos:
+      - Combo:
+          - Yorscalp_P_Circlet   # 400723
+          - Yorscalp_Manteau   # 480495
+    Script: |
+      bonus bDelayrate,-10;
+  - Combos:
+      - Combo:
+          - Yorscalp_P_Circlet   # 400723
+          - Yorscalp_Ring   # 490620
+    Script: |
+      bonus bPAtk,10;
+  - Combos:
+      - Combo:
+          - Yorscalp_P_Circlet   # 400723
+          - Yorscalp_Glove   # 490621
+    Script: |
+      bonus bAtkRate,10;
+  - Combos:
+      - Combo:
+          - Yorscalp_M_Circlet   # 400724
+          - Yorscalp_Robe   # 450413
+    Script: |
+      bonus bMaxHPrate,10;
+  - Combos:
+      - Combo:
+          - Yorscalp_M_Circlet   # 400724
+          - Yorscalp_Shoes   # 470304
+    Script: |
+      bonus2 bMagicAtkEle,Ele_All,10;
+  - Combos:
+      - Combo:
+          - Yorscalp_M_Circlet   # 400724
+          - Yorscalp_Muffler   # 480496
+    Script: |
+      bonus bDelayrate,-10;
+  - Combos:
+      - Combo:
+          - Yorscalp_M_Circlet   # 400724
+          - Yorscalp_Earring   # 490622
+    Script: |
+      bonus bSMatk,10;
+  - Combos:
+      - Combo:
+          - Yorscalp_M_Circlet   # 400724
+          - Yorscalp_Necklace   # 490623
+    Script: |
+      bonus bMatkRate,10;
+  - Combos:
+      - Combo:
+          - Yorscalp_Armor   # 450412
+          - Yorscalp_Boots   # 470303
+          - Yorscalp_Manteau   # 480495
+    Script: |
+      bonus2 bAddRace,RC_All,15;
+      bonus2 bAddRace,RC_Player_Human,-15;
+      bonus2 bAddRace,RC_Player_Doram,-15;
+  - Combos:
+      - Combo:
+          - Yorscalp_Armor   # 450412
+          - Yorscalp_Manteau   # 480495
+    Script: |
+      bonus2 bAddEle,Ele_All,15;
+  - Combos:
+      - Combo:
+          - Yorscalp_Robe   # 450413
+          - Yorscalp_Shoes   # 470304
+          - Yorscalp_Muffler   # 480496
+    Script: |
+      bonus2 bMagicAddRace,RC_All,15;
+      bonus2 bMagicAddRace,RC_Player_Human,-15;
+      bonus2 bMagicAddRace,RC_Player_Doram,-15;
+  - Combos:
+      - Combo:
+          - Yorscalp_Robe   # 450413
+          - Yorscalp_Muffler   # 480496
+    Script: |
+      bonus2 bMagicAddEle,Ele_All,15;
+  - Combos:
+      - Combo:
+          - Yorscalp_Boots   # 470303
+          - Yorscalp_Armor   # 450412
+    Script: |
+      bonus2 bAddEle,Ele_All,15;
+  - Combos:
+      - Combo:
+          - Yorscalp_Shoes   # 470304
+          - Yorscalp_Robe   # 450413
+    Script: |
+      bonus2 bMagicAddEle,Ele_All,15;
+  - Combos:
+      - Combo:
+          - Yorscalp_Manteau   # 480495
+          - Yorscalp_Boots   # 470303
+    Script: |
+      bonus2 bAddRace,RC_All,15;
+      bonus2 bAddRace,RC_Player_Human,-15;
+      bonus2 bAddRace,RC_Player_Doram,-15;
+  - Combos:
+      - Combo:
+          - Yorscalp_Muffler   # 480496
+          - Yorscalp_Shoes   # 470304
+    Script: |
+      bonus2 bMagicAddRace,RC_All,15;
+      bonus2 bMagicAddRace,RC_Player_Human,-15;
+      bonus2 bMagicAddRace,RC_Player_Doram,-15;
+  - Combos:
+      - Combo:
+          - Yorscalp_Ring   # 490620
+          - Yorscalp_Glove   # 490621
+    Script: |
+      bonus bDelayrate,-10;
+      bonus bVariableCastrate,-10;
+  - Combos:
+      - Combo:
+          - Yorscalp_Earring   # 490622
+          - Yorscalp_Necklace   # 490623
+    Script: |
+      bonus bDelayrate,-10;
+      bonus bVariableCastrate,-10;
+  - Combos:
+      - Combo:
+          - Time_Gap_BO_Blade   # 500107
+          - Time_DM_R_Crown_BO   # 400532
+    Script: |
+      bonus bShortAtkRate,10;
+      bonus2 bSkillAtk,"BO_EXPLOSIVE_POWDER",25;
+      if (getenchantgrade(EQI_HAND_R)>=ENCHANTGRADE_A && getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A) {
+         .@sum = getequiprefinerycnt(EQI_HAND_R)+getequiprefinerycnt(EQI_HEAD_TOP);
+         bonus2 bSkillAtk,"BO_DUST_EXPLOSION",15;
+         bonus2 bSkillAtk,"BO_EXPLOSIVE_POWDER",.@sum;
+      }
+  - Combos:
+      - Combo:
+          - Time_Gap_SHC_Dagger1   # 510165
+          - Time_DM_R_Crown_SHC   # 400533
+          - Time_Gap_SHC_Dagger2   # 510166
+    Script: |
+      if (getequipid(EQI_HAND_L) == 510166) {
+         bonus bShortAtkRate,15;
+         bonus2 bSkillAtk,"SHC_ETERNAL_SLASH",25;
+         if (getenchantgrade(EQI_HAND_R)>=ENCHANTGRADE_A && getenchantgrade(EQI_HAND_L)>=ENCHANTGRADE_A && getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A) {
+            .@sum = getequiprefinerycnt(EQI_HAND_R)+getequiprefinerycnt(EQI_HAND_L)+getequiprefinerycnt(EQI_HEAD_TOP);
+            bonus2 bSkillAtk,"SHC_ETERNAL_SLASH",.@sum;
+            bonus bCritical,15;
+         }
+      }
+  - Combos:
+      - Combo:
+          - Time_Gap_SHC_Dagger1   # 510165
+          - Time_Gap_SHC_Dagger2   # 510166
+    Script: |
+      if (getequipid(EQI_HAND_L) == 510166) {
+         .@sum = getequiprefinerycnt(EQI_HAND_R)+getequiprefinerycnt(EQI_HAND_L);
+         bonus bAtkRate,.@sum;
+         bonus bBaseAtk,25*.@sum;
+         bonus2 bSkillAtk,"SHC_CROSS_SLASH",5*(.@sum/4);
+         if (.@sum>=14) {
+            bonus bCritAtkRate,20;
+            if (.@sum>=17) {
+               bonus bCRate,5;
+               bonus bCritical,15;
+               if (.@sum>=21) {
+                  bonus2 bSkillAtk,"SHC_CROSS_SLASH",15;
+               }
+            }
+         }
+      }
+  - Combos:
+      - Combo:
+          - Time_Gap_SOA_Rod   # 550155
+          - Time_DM_R_Crown_SOA   # 400544
+    Script: |
+      bonus2 bMagicAtkEle,Ele_All,10;
+      bonus2 bSkillAtk,"SOA_EXORCISM_OF_MALICIOUS_SOUL",20;
+      if (getenchantgrade(EQI_HAND_R)>=ENCHANTGRADE_A && getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A) {
+         bonus2 bSkillCooldown,"SOA_EXORCISM_OF_MALICIOUS_SOUL",-300;
+         bonus2 bSkillCooldown,"SOA_SOUL_GATHERING",-300;
+      }
+  - Combos:
+      - Combo:
+          - aegis_313327    # 313327
+          - aegis_410322    # 410322
+      - Combo:
+          - aegis_313327    # 313327
+          - aegis_410323    # 410323
+      - Combo:
+          - aegis_313327    # 313327
+          - aegis_410340    # 410340
+      - Combo:
+          - aegis_313327    # 313327
+          - aegis_410341    # 410341
+    Script: |
+      bonus2 bSubRace,RC_Player_Doram,5;
+      bonus2 bSubRace,RC_Player_Human,5;
+      bonus2 bSubEle,Ele_Holy,5;
+      bonus2 bSubEle,Ele_Poison,5;
+  - Combos:
+      - Combo:
+          - S_Circlet_Of_Time_WL    # 19482
+          - aegis_313327    # 313327
+    Script: |
+      skill "AL_BLESSING",10;
+      bonus bDelayrate,-20;
+      bonus2 bSkillAtk,"AG_CRIMSON_ARROW",BaseLevel/10;
+      bonus2 bSkillAtk,"AG_FROZEN_SLASH",BaseLevel/10;
+      bonus2 bSkillAtk,"AG_STORM_CANNON",BaseLevel/10;
+      bonus2 bSkillAtk,"AG_ROCK_DOWN",BaseLevel/10;
+  - Combos:
+      - Combo:
+          - S_Circlet_Of_Time_SC    # 19479
+          - aegis_313327    # 313327
+    Script: |
+      skill "AL_BLESSING",10;
+      bonus bDelayrate,-20;
+      bonus2 bSkillAtk,"ABC_CHAIN_REACTION_SHOT",BaseLevel/10;
+      bonus2 bSkillAtk,"ABC_FRENZY_SHOT",BaseLevel/10;
+  - Combos:
+      - Combo:
+          - S_Circlet_Of_Time_SR    # 19481
+          - aegis_313327    # 313327
+    Script: |
+      skill "AL_BLESSING",10;
+      bonus bDelayrate,-20;
+      bonus2 bSkillAtk,"IQ_OLEUM_SANCTUM",BaseLevel/10;
+      bonus2 bSkillAtk,"IQ_EXPOSION_BLASTER",BaseLevel/10;
+      bonus2 bSkillAtk,"IQ_MASSIVE_F_BLASTER",BaseLevel/10;
+  - Combos:
+      - Combo:
+          - S_Circlet_Of_Time_LG    # 19475
+          - aegis_313327    # 313327
+    Script: |
+      skill "AL_BLESSING",10;
+      bonus bDelayrate,-20;
+      bonus2 bSkillAtk,"IG_OVERSLASH",BaseLevel/10;
+      bonus2 bSkillAtk,"IG_GRAND_JUDGEMENT",BaseLevel/10;
+      bonus2 bSkillAtk,"IG_SHIELD_SHOOTING",BaseLevel/10;
+  - Combos:
+      - Combo:
+          - S_Circlet_Of_Time_RA    # 19484
+          - aegis_313327    # 313327
+    Script: |
+      skill "AL_BLESSING",10;
+      bonus bDelayrate,-20;
+      bonus2 bSkillAtk,"WH_CRESCIVE_BOLT",BaseLevel/10;
+      bonus2 bSkillAtk,"WH_GALESTORM",BaseLevel/10;
+  - Combos:
+      - Combo:
+          - S_Circlet_Of_Time_SO    # 19483
+          - aegis_313327    # 313327
+    Script: |
+      skill "AL_BLESSING",10;
+      bonus bDelayrate,-20;
+      bonus2 bSkillAtk,"EM_CONFLAGRATION",BaseLevel/10;
+      bonus2 bSkillAtk,"EM_DIAMOND_STORM",BaseLevel/10;
+      bonus2 bSkillAtk,"EM_LIGHTNING_LAND",BaseLevel/10;
+      bonus2 bSkillAtk,"EM_TERRA_DRIVE",BaseLevel/10;
+      bonus2 bSkillAtk,"EM_VENOM_SWAMP",BaseLevel/10;
+      bonus2 bSkillAtk,"EM_ELEMENTAL_BUSTER",BaseLevel/10;
+  - Combos:
+      - Combo:
+          - S_Circlet_Of_Time_AB    # 19480
+          - aegis_313327    # 313327
+    Script: |
+      skill "AL_BLESSING",10;
+      bonus bDelayrate,-20;
+      bonus2 bSkillAtk,"CD_ARBITRIUM",BaseLevel/10;
+      bonus2 bSkillAtk,"CD_PNEUMATICUS_PROCELLA",BaseLevel/10;
+      bonus2 bSkillAtk,"CD_FRAMEN",BaseLevel/10;
+  - Combos:
+      - Combo:
+          - S_Circlet_Of_Time_GC    # 19478
+          - aegis_313327    # 313327
+    Script: |
+      skill "AL_BLESSING",10;
+      bonus bDelayrate,-20;
+      bonus2 bSkillAtk,"SHC_DANCING_KNIFE",BaseLevel/10;
+      bonus2 bSkillAtk,"SHC_SHADOW_STAB",BaseLevel/10;
+      bonus2 bSkillAtk,"SHC_ETERNAL_SLASH",BaseLevel/10;
+  - Combos:
+      - Combo:
+          - S_Circlet_Of_Time_RK    # 19474
+          - aegis_313327    # 313327
+    Script: |
+      skill "AL_BLESSING",10;
+      bonus bDelayrate,-20;
+      bonus2 bSkillAtk,"DK_HACKANDSLASHER",BaseLevel/10;
+      bonus2 bSkillAtk,"DK_MADNESS_CRUSHER",BaseLevel/10;
+      bonus2 bSkillAtk,"DK_DRAGONIC_AURA",BaseLevel/10;
+  - Combos:
+      - Combo:
+          - S_Circlet_Of_Time_WM    # 19485
+          - aegis_313327    # 313327
+    Script: |
+      skill "AL_BLESSING",10;
+      bonus bDelayrate,-20;
+      bonus2 bSkillAtk,"TR_RHYTHMSHOOTING",BaseLevel/10;
+      bonus2 bSkillAtk,"TR_ROSEBLOSSOM",BaseLevel/10;
+  - Combos:
+      - Combo:
+          - S_Circlet_Of_Time_RL    # 19488
+          - aegis_313327    # 313327
+    Script: |
+      skill "AL_BLESSING",10;
+      bonus bDelayrate,-20;
+      bonus2 bSkillAtk,"NW_ONLY_ONE_BULLET",BaseLevel/10;
+      bonus2 bSkillAtk,"NW_SPIRAL_SHOOTING",BaseLevel/10;
+      bonus2 bSkillAtk,"NW_WILD_FIRE",BaseLevel/10;
+  - Combos:
+      - Combo:
+          - S_Circlet_Of_Time_GN    # 19477
+          - aegis_313327    # 313327
+    Script: |
+      skill "AL_BLESSING",10;
+      bonus bDelayrate,-20;
+      bonus2 bSkillAtk,"BO_ACIDIFIED_ZONE_GROUND",BaseLevel/10;
+      bonus2 bSkillAtk,"BO_ACIDIFIED_ZONE_WATER",BaseLevel/10;
+      bonus2 bSkillAtk,"BO_ACIDIFIED_ZONE_FIRE",BaseLevel/10;
+      bonus2 bSkillAtk,"BO_ACIDIFIED_ZONE_WIND",BaseLevel/10;
+  - Combos:
+      - Combo:
+          - S_Circlet_Of_Time_NV    # 19491
+          - aegis_313327    # 313327
+    Script: |
+      skill "AL_BLESSING",10;
+      bonus bDelayrate,-20;
+      bonus2 bSkillAtk,"HN_JUPITEL_THUNDER_STORM",BaseLevel/10;
+      bonus2 bSkillAtk,"HN_HELLS_DRIVE",BaseLevel/10;
+      bonus2 bSkillAtk,"HN_NAPALM_VULCAN_STRIKE",BaseLevel/10;
+  - Combos:
+      - Combo:
+          - S_Circlet_Of_Time_NV    # 19476
+          - aegis_313327    # 313327
+    Script: |
+      skill "AL_BLESSING",10;
+      bonus bDelayrate,-20;
+      bonus2 bSkillAtk,"MT_SPARK_BLASTER",BaseLevel/10;
+      bonus2 bSkillAtk,"MT_TRIPLE_LASER",BaseLevel/10;
+  - Combos:
+      - Combo:
+          - C_Himel_Card    # 27381
+          - aegis_313327    # 313327
+    Script: |
+      bonus bMaxHPrate,50;
+      bonus2 bSubEle,Ele_Dark,50;
+  - Combos:
+      - Combo:
+          - Illusion_Box_Garden    # 311075
+          - aegis_420334    # 420334
+    Script: |
+      bonus2 bSubRace,RC_Player_Doram,3;
+      bonus2 bSubRace,RC_Player_Human,3;
+      bonus bNoCastCancel;
+  - Combos:
+      - Combo:
+          - aegis_311909    # 311909
+          - aegis_450372    # 450372
+    Script: |
+      bonus2 bAddSize,Size_All,30;
+      bonus2 bMagicAddSize,Size_All,30;
+      bonus2 bSubEle,Ele_Holy,15;
+  - Combos:
+      - Combo:
+          - aegis_470278    # 470278
+          - Signet_Of_Star    # 490131
+      - Combo:
+          - aegis_470278    # 470278
+          - Signet_Of_Pow_Star    # 490132
+      - Combo:
+          - aegis_470278    # 470278
+          - Signet_Of_Sta_Star    # 490133
+      - Combo:
+          - aegis_470278    # 470278
+          - Signet_Of_Con_Star    # 490134
+      - Combo:
+          - aegis_470278    # 470278
+          - Signet_Of_Crt_Star    # 490135
+      - Combo:
+          - aegis_470278    # 470278
+          - Signet_Of_Spl_Star    # 490136
+      - Combo:
+          - aegis_470278    # 470278
+          - Signet_Of_Wis_Star    # 490137
+    Script: |
+      bonus bAllStats,30;
+      bonus2 bAddClass,Class_All,30;
+      bonus bMatkRate,30;
+      autobonus "{}",30,20000,BF_WEAPON|BF_MAGIC,"{ sc_start SC_REFRESH,20000,1; specialeffect2 EF_ENHANCE; }";
+  - Combos:
+      - Combo:
+          - Arcana    # 29585
+          - aegis_480442    # 480442
+      - Combo:
+          - Enchant_Groza    # 310321
+          - aegis_480442    # 480442
+    Script: |
+      bonus2 bResEff,Eff_Stone,5000;
+  - Combos:
+      - Combo:
+          - Kings_Magic    # 311284
+          - aegis_480442    # 480442
+    Script: |
+      autobonus "{ bonus2 bRegenPercentSP,10,1000; }",10,10000,BF_WEAPON|BF_MAGIC;
+  - Combos:
+      - Combo:
+          - B_Seyren_Card    # 4357
+          - Injured_Eyepatch_JP    # 19445
+      - Combo:
+          - B_Seyren_Card    # 4357
+          - Injured_Eyepatch_JP_    # 19446
+    Script: |
+      bonus bSpeedRate,25;
+      autobonus3 "{ bonus bBaseAtk,1000; }",200,5000,"LK_BERSERK";
+      /*Todo : Should be When using the Berserk skill while in this state, when attacking physically, there is a 20% chance to gain ATK + 1000 for 5 seconds. (don't know to wrtite this script)*/
+  - Combos:
+      - Combo:
+          - Release_Of_Magic    # 29371
+          - aegis_312645    # 312645
+    Script: |
+      bonus2 bSkillFixedCast,"CD_ARBITRIUM",-1000;
+  - Combos:
+      - Combo:
+          - Hero    # 29509
+          - aegis_312646    # 312646
+    Script: |
+      autobonus3 "{}",50,100,"WH_HAWKBOOMERANG","{ sc_start SC_UNLIMIT,20000,5; }";
+      autobonus3 "{}",50,100,"WH_HAWKRUSH","{ sc_start SC_UNLIMIT,20000,5; }";
+    UnEquipScript: |
+      sc_end SC_UNLIMIT;
+  - Combos:
+      - Combo:
+          - Release_Of_Magic    # 29371
+          - aegis_312397    # 312397
+    Script: |
+      bonus2 bSkillFixedCast,"ABC_ABYSS_SQUARE",-1500;
+  - Combos:
+      - Combo:
+          - aegis_300580    # 300580
+          - Goddess_of_Abundance    # 311073
+    Script: |
+      bonus bMaxHPrate,15;
+      bonus2 bSubEle,Ele_Holy,10;
+  - Combos:
+      - Combo:
+          - aegis_300580    # 300580
+          - aegis_312418    # 312418
+    Script: |
+      bonus2 bRegenPercentHP,1,1000;
+      bonus2 bIgnoreMdefRaceRate,RC_All,50;
+  - Combos:
+      - Combo:
+          - Release_Of_Magic    # 29371
+          - aegis_312928    # 312928
+    Script: |
+      bonus2 bSkillCooldown,"AG_CRIMSON_ARROW",-200;
+      bonus2 bSkillCooldown,"AG_STORM_CANNON",-200;
+  - Combos:
+      - Combo:
+          - Hero    # 29509
+          - aegis_312930    # 312930
+    Script: |
+      bonus2 bSkillCooldown,"ABC_CHAIN_REACTION_SHOT",-200;
+  - Combos:
+      - Combo:
+          - Hero    # 29509
+          - aegis_312931    # 312931
+    Script: |
+      bonus2 bSkillCooldown,"ABC_FRENZY_SHOT",-200;
+  - Combos:
+      - Combo:
+          - Hero    # 29509
+          - aegis_312933    # 312933
+    Script: |
+      bonus2 bSkillCooldown,"IQ_EXPOSION_BLASTER",-100;
+  - Combos:
+      - Combo:
+          - Hero    # 29509
+          - aegis_312936    # 312936
+    Script: |
+      bonus2 bSkillCooldown,"IG_SHIELD_SHOOTING",-200;
+  - Combos:
+      - Combo:
+          - Release_Of_Magic    # 29371
+          - aegis_312937    # 312937
+    Script: |
+      bonus2 bSkillCooldown,"IG_JUDGEMENT_CROSS",-200;
+  - Combos:
+      - Combo:
+          - Hero    # 29509
+          - aegis_312939    # 312939
+    Script: |
+      bonus2 bSkillCooldown,"WH_CRESCIVE_BOLT",-100;
+  - Combos:
+      - Combo:
+          - Release_Of_Magic    # 29371
+          - aegis_312942    # 312942
+    Script: |
+      bonus2 bSkillCooldown,"EM_CONFLAGRATION",-500;
+      bonus2 bSkillCooldown,"EM_LIGHTNING_LAND",-500;
+  - Combos:
+      - Combo:
+          - Hero    # 29509
+          - aegis_312945    # 312945
+    Script: |
+      bonus2 bSkillCooldown,"CD_EFFLIGO",-200;
+  - Combos:
+      - Combo:
+          - Hero    # 29509
+          - aegis_312947    # 312947
+    Script: |
+      bonus2 bSkillCooldown,"SHC_SHADOW_STAB",-500;
+  - Combos:
+      - Combo:
+          - Hero    # 29509
+          - aegis_312948    # 312948
+    Script: |
+      bonus2 bSkillCooldown,"SHC_IMPACT_CRATER",-200;
+  - Combos:
+      - Combo:
+          - Hero    # 29509
+          - aegis_312949    # 312949
+    Script: |
+      bonus2 bSkillCooldown,"DK_DRAGONIC_AURA",-300;
+  - Combos:
+      - Combo:
+          - Hero    # 29509
+          - aegis_312952    # 312952
+    Script: |
+      bonus2 bSkillCooldown,"TR_RHYTHMSHOOTING",-100;
+  - Combos:
+      - Combo:
+          - Release_Of_Magic    # 29371
+          - aegis_312962    # 312962
+    Script: |
+      bonus2 bSkillCooldown,"HN_JUPITEL_THUNDER_STORM",-300;
+  - Combos:
+      - Combo:
+          - Hero    # 29509
+          - aegis_312969    # 312969
+    Script: |
+      autobonus "{ bonus2 bSkillUseSP,\"NW_ONLY_ONE_BULLET\",99; bonus2 bSkillUseSP,\"NW_SPIRAL_SHOOTING\",179; }",30,20000,BF_WEAPON;
+  - Combos:
+      - Combo:
+          - Hero    # 29509
+          - aegis_312970    # 312970
+    Script: |
+      bonus2 bSkillCooldown,"NW_SPIRAL_SHOOTING",-300;
+  - Combos:
+      - Combo:
+          - Hero    # 29509
+          - aegis_312978    # 312978
+    Script: |
+      bonus2 bSkillCooldown,"MT_MIGHTY_SMASH",-200;
+  - Combos:
+      - Combo:
+          - aegis_312022    # 312022
+          - aegis_313328    # 313328
+      - Combo:
+          - aegis_312045    # 312045
+          - aegis_313328    # 313328
+      - Combo:
+          - aegis_312046    # 312046
+          - aegis_313328    # 313328
+      - Combo:
+          - aegis_312047    # 312047
+          - aegis_313328    # 313328
+      - Combo:
+          - aegis_312048    # 312048
+          - aegis_313328    # 313328
+      - Combo:
+          - aegis_312049    # 312049
+          - aegis_313328    # 313328
+    Script: |
+      autobonus "{ bonus bAllStats,BaseLevel/10; bonus bMaxHPrate,BaseLevel/10; bonus bFlee,10*(BaseLevel/10); bonus bBaseAtk,10*(BaseLevel/10); bonus bMatk,10*(BaseLevel/10); }",20,10000,BF_WEAPON|BF_MAGIC;
+  - Combos:
+      - Combo:
+          - Supplement_Part_Str_J    # 15148
+          - Supplement_Part_Con_J    # 20776
+          - Supplement_Part_Agi_J    # 22073
+          - Supplement_Part_Dex_J    # 28368
+    Script: |
+      bonus2 bSkillAtk,"NC_COLDSLOWER",50;
+      bonus2 bSkillAtk,"NC_FLAMELAUNCHER",50;
+      bonus2 bSkillAtk,"NC_ARMSCANNON",50;
+      autobonus2 "{ bonus bDelayrate,-30; }",20,7000,BF_WEAPON|BF_MAGIC;
+      if (getequiprefinerycnt(EQI_ARMOR) >= 7 && getequiprefinerycnt(EQI_GARMENT) >= 7 && getequiprefinerycnt(EQI_SHOES) >= 7) {
+         bonus2 bSkillAtk,"NC_COLDSLOWER",50;
+         bonus2 bSkillAtk,"NC_FLAMELAUNCHER",50;
+         bonus2 bSkillAtk,"NC_ARMSCANNON",50;
+         bonus bNoMadoFuel;
+      }
+  - Combos:
+      - Combo:
+          - Guardian_Processor    # 19170
+          - Upgrade_Part_Gun_B_J    # 28369
+    Script: |
+      bonus bAllStats,1;
+      bonus2 bSubRace,RC_DemiHuman,2;
+  - Combos:
+      - Combo:
+          - Upgrade_Part_Plate_J    # 15149
+          - Guardian_Processor    # 19170
+    Script: |
+      .@r = getequiprefinerycnt(EQI_ARMOR);
+      bonus2 bSubRace,RC_DemiHuman,3;
+      if (.@r>=7) {
+         bonus bMaxHPrate,10;
+         bonus2 bSubRace,RC_DemiHuman,2;
+         if (.@r>=9) {
+             bonus bMaxHPrate,10;
+             bonus2 bSubRace,RC_DemiHuman,2;
+         }
+      }
+  - Combos:
+      - Combo:
+          - Guardian_Processor    # 19170
+          - Upgrade_Part_Engine_J    # 20777
+    Script: |
+      .@r = getequiprefinerycnt(EQI_GARMENT);
+      bonus2 bSubRace,RC_DemiHuman,3;
+      if (.@r>=7) {
+         bonus2 bSubEle,Ele_Holy,15;
+         bonus2 bSubEle,Ele_Dark,15;
+         bonus2 bSubRace,RC_DemiHuman,1;
+         if (.@r>=9) {
+             bonus2 bSubEle,Ele_Holy,15;
+             bonus2 bSubEle,Ele_Dark,15;
+             bonus2 bSubRace,RC_DemiHuman,1;
+         }
+      }
+  - Combos:
+      - Combo:
+          - Guardian_Processor    # 19170
+          - Upgrade_Part_Booster_J    # 22074
+    Script: |
+      .@r = getequiprefinerycnt(EQI_SHOES);
+      bonus2 bSubRace,RC_DemiHuman,3;
+      if (.@r>=7) {
+         bonus bAspdRate,5;
+         bonus2 bSubRace,RC_DemiHuman,1;
+         if (.@r>=9) {
+             bonus bAspdRate,5;
+             bonus2 bSubRace,RC_DemiHuman,1;
+         }
+      }
+  - Combos:
+      - Combo:
+          - Upgrade_Part_Plate_J    # 15149
+          - Upgrade_Part_Engine_J    # 20777
+          - Upgrade_Part_Booster_J    # 22074
+          - Upgrade_Part_Gun_B_J    # 28369
+    Script: |
+      bonus2 bVariableCastrate,"NC_VULCANARM",-100;
+      bonus2 bVariableCastrate,"NC_BOOSTKNUCKLE",-100;
+      bonus2 bResEff,Eff_Freeze,10000;
+      if (getequiprefinerycnt(EQI_ARMOR) >= 7 && getequiprefinerycnt(EQI_GARMENT) >= 7 && getequiprefinerycnt(EQI_SHOES) >= 7) {
+         bonus2 bSubEle,Ele_Holy,10;
+         bonus2 bSkillAtk,"NC_VULCANARM",50;
+         bonus2 bSkillAtk,"NC_BOOSTKNUCKLE",50;
+         bonus4 bAutoSpellOnSkill,"NC_PILEBUNKER","SA_DISPELL",5,1000;
+         bonus2 bSkillCooldown,"NC_PILEBUNKER",3000;
+      }
+  - Combos:
+      - Combo:
+          - SingingPere_Card    # 27108
+          - aegis_570070    # 570070
+    Script: |
+      bonus bMatkRate,7;
+      bonus2 bSkillCooldown,"WM_METALICSOUND",-2000;
+      bonus2 bMagicAtkEle,Ele_Neutral,20;
+  - Combos:
+      - Combo:
+          - PlayingPere_Card    # 27107
+          - aegis_570070    # 570070
+    Script: |
+      bonus2 bAddClass,Class_All,7;
+      bonus bLongAtkRate,20;
+      bonus2 bSkillCooldown,"WM_SEVERE_RAINSTORM",-2000;
+  - Combos:
+      - Combo:
+          - JitterbugCard    # 27109
+          - aegis_570070    # 570070
+    Script: |
+      bonus bNoCastCancel;
+      bonus5 bAutoSpell,"NPC_WIDESLEEP",2,50,BF_MAGIC,1;
+      bonus5 bAutoSpell,"RA_UNLIMIT",3,50,BF_WEAPON,0;
+    UnEquipScript: |
+      sc_end SC_UNLIMIT;
+  - Combos:
+      - Combo:
+          - Grand_Pere_Card    # 27106
+          - aegis_570070    # 570070
+    Script: |
+      bonus2 bResEff,Eff_Sleep,10000;
+      bonus bUnbreakableArmor;
+      bonus bUnbreakableWeapon;
+      bonus2 bSkillCooldown,"WM_LULLABY_DEEPSLEEP",-1000*getequiprefinerycnt(EQI_ARMOR);
+  - Combos:
+      - Combo:
+          - Cap_IL    # 19223
+          - aegis_410306    # 410306
+    Script: |
+      bonus bAspdRate,10;
+      bonus bShortAtkRate,15;
+      autobonus "{ bonus bAspd,5; bonus3 bAutoSpell,\"TF_DOUBLE\",10,1000; }",50,7000,BF_WEAPON;
+  - Combos:
+      - Combo:
+          - Goibne_Helmet_IL    # 19366
+          - aegis_410306    # 410306
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      autobonus "{ bonus bSPDrainValue,3; }",50,7000,BF_WEAPON;
+      bonus bMaxSPrate,2*.@r;
+      bonus bSPrecovRate,10*.@r;
+  - Combos:
+      - Combo:
+          - Nurse_Cap_IL    # 19209
+          - aegis_410306    # 410306
+    Script: |
+      bonus bHealPower2,20;
+      autobonus "{ bonus bDef,80*getequiprefinerycnt(EQI_HEAD_TOP); }",15,7000,BF_WEAPON;
+      bonus bMaxHPrate,2*getequiprefinerycnt(EQI_HEAD_TOP);
+  - Combos:
+      - Combo:
+          - Fancy_Flower_IL    # 19247
+          - aegis_410306    # 410306
+    Script: |
+      bonus2 bSkillAtk,"MG_LIGHTNINGBOLT",100;
+      bonus2 bSkillAtk,"WZ_EARTHSPIKE",100;
+      bonus2 bSkillAtk,"MG_FIREBOLT",100;
+      bonus2 bSkillAtk,"MG_COLDBOLT",100;
+      bonus3 bAutoSpell,"PF_DOUBLECASTING",max(getskilllv("PF_DOUBLECASTING"),1),70;
+      bonus3 bAutoSpell,"MG_LIGHTNINGBOLT",max(getskilllv("MG_LIGHTNINGBOLT"),1),150;
+      bonus3 bAutoSpell,"WZ_EARTHSPIKE",max(getskilllv("WZ_EARTHSPIKE"),1),150;
+      bonus3 bAutoSpell,"MG_FIREBOLT",max(getskilllv("MG_FIREBOLT"),1),150;
+      bonus3 bAutoSpell,"MG_COLDBOLT",max(getskilllv("MG_COLDBOLT"),1),150;
+  - Combos:
+      - Combo:
+          - Angry_Mouth    # 5113
+          - aegis_400622    # 400622
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      bonus bCritical,10;
+      if (.@r>=7)
+         bonus bCritAtkRate,10;
+      if (.@r>=9)
+         bonus bAspd,1;
+  - Combos:
+      - Combo:
+          - Crecendo_Eclipse_Bless    # 313144
+          - Lunar_E_Armor_LT    # 450263
+    Script: |
+      .@r = getequiprefinerycnt(EQI_ARMOR);
+      if ((eaclass()&EAJL_FOURTH) && (BaseJob == Job_Wizard || BaseJob == Job_Sage || BaseJob == Job_Priest)) {
+         bonus2 bMagicAtkEle,Ele_All,20;
+         if (.@r>=14) {
+             bonus bNearAtkDef,7;
+         }
+      }
+      if ((eaclass()&EAJL_FOURTH) && (BaseJob == Job_Hunter || BaseJob == Job_Bard || BaseJob == Job_Dancer)) {
+         bonus bLongAtkRate,20;
+         if (.@r>=14) {
+             bonus2 bSubSize,Size_Medium,8;
+             bonus2 bSubSize,Size_Large,8;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_Circlet_Of_Time_SO    # 19483
+          - aegis_490590    # 490590
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      bonus bDelayrate,-5;
+      bonus2 bMagicAddSize,Size_All,4*(.@r/3);
+      if (.@r>=11)
+         autobonus "{ bonus bMatkRate,20; bonus bInt,100; }",30,10000,BF_MAGIC;
+  - Combos:
+      - Combo:
+          - aegis_15981    # 15981
+          - aegis_490590    # 490590
+      - Combo:
+          - aegis_15981    # 15981
+          - aegis_490591    # 490591
+    Script: |
+      bonus bDelayrate,-5;
+      bonus2 bMagicAddRace,RC_All,10;
+  - Combos:
+      - Combo:
+          - Time_Jewely_Int_3    # 29683
+          - aegis_490590    # 490590
+      - Combo:
+          - Time_Jewely_Int_3    # 29683
+          - aegis_490591    # 490591
+    Script: |
+      bonus2 bSkillCooldown,"SO_PSYCHIC_WAVE",-1000;
+      bonus2 bSkillAtk,"SO_PSYCHIC_WAVE",20*(getequiprefinerycnt(EQI_HEAD_TOP)/2);
+  - Combos:
+      - Combo:
+          - Time_Jewely_Agi_3    # 29677
+          - aegis_490590    # 490590
+      - Combo:
+          - Time_Jewely_Agi_3    # 29677
+          - aegis_490591    # 490591
+    Script: |
+      bonus2 bSkillCooldown,"SO_DIAMONDDUST",-1000;
+      bonus2 bSkillAtk,"SO_DIAMONDDUST",20*(getequiprefinerycnt(EQI_HEAD_TOP)/2);
+  - Combos:
+      - Combo:
+          - Time_Jewely_Vit_3    # 29680
+          - aegis_490590    # 490590
+      - Combo:
+          - Time_Jewely_Vit_3    # 29680
+          - aegis_490591    # 490591
+    Script: |
+      bonus3 bAutoSpell,"MG_COLDBOLT",10,150;
+      bonus2 bMagicAddRace,RC_All,8*(getequiprefinerycnt(EQI_HEAD_TOP)/2);
+  - Combos:
+      - Combo:
+          - aegis_313354    # 313354
+          - aegis_490590    # 490590
+      - Combo:
+          - aegis_313354    # 313354
+          - aegis_490591    # 490591
+    Script: |
+      bonus2 bSkillCooldown,"SO_PSYCHIC_WAVE",-350;
+      bonus2 bSkillAtk,"SO_PSYCHIC_WAVE",70;
+  - Combos:
+      - Combo:
+          - aegis_313350    # 313350
+          - aegis_490590    # 490590
+      - Combo:
+          - aegis_313350    # 313350
+          - aegis_490591    # 490591
+    Script: |
+      bonus2 bMagicAddSize,Size_All,10;
+      bonus2 bSkillAtk,"SO_DIAMONDDUST",70;
+  - Combos:
+      - Combo:
+          - aegis_313352    # 313352
+          - aegis_490590    # 490590
+      - Combo:
+          - aegis_313352    # 313352
+          - aegis_490591    # 490591
+    Script: |
+      bonus3 bAutoSpell,"GC_DARKCROW",5,80;
+      bonus2 bSkillAtk,"MG_FIREBOLT",280;
+      bonus2 bSkillAtk,"MG_COLDBOLT",280;
+      bonus2 bSkillAtk,"MG_LIGHTNINGBOLT",280;
+  - Combos:
+      - Combo:
+          - S_Circlet_Of_Time_RA    # 19484
+          - Black_Eagle_Ring_TH    # 490586
+      - Combo:
+          - S_Circlet_Of_Time_RA    # 19484
+          - aegis_490587    # 490587
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      bonus bDelayrate,-5;
+      bonus2 bAddSize,Size_All,4*(.@r/3);
+      if (.@r>=11) {
+         bonus2 bVariableCastrate,"RA_AIMEDBOLT",-100;
+         bonus2 bVariableCastrate,"RA_ARROWSTORM",-100;
+         bonus2 bVariableCastrate,"SN_SHARPSHOOTING",-100;
+      }
+  - Combos:
+      - Combo:
+          - aegis_15982    # 15982
+          - Black_Eagle_Ring_TH    # 490586
+      - Combo:
+          - aegis_15982    # 15982
+          - aegis_490587    # 490587
+    Script: |
+      bonus bDelayrate,-5;
+      bonus2 bAddRace,RC_All,10;
+  - Combos:
+      - Combo:
+          - Time_Jewely_Str_3    # 29674
+          - Black_Eagle_Ring_TH    # 490586
+      - Combo:
+          - Time_Jewely_Str_3    # 29674
+          - aegis_490587    # 490587
+    Script: |
+      bonus bFixedCast,-500;
+      bonus2 bSkillAtk,"RA_AIMEDBOLT",20*(getequiprefinerycnt(EQI_HEAD_TOP)/2);
+  - Combos:
+      - Combo:
+          - Time_Jewely_Dex_3    # 29686
+          - Black_Eagle_Ring_TH    # 490586
+      - Combo:
+          - Time_Jewely_Dex_3    # 29686
+          - aegis_490587    # 490587
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      bonus bDelayrate,-8;
+      bonus2 bSkillCooldown,"RA_ARROWSTORM",-300*(.@r/2);
+      bonus2 bSkillAtk,"RA_ARROWSTORM",20*(.@r/2);
+  - Combos:
+      - Combo:
+          - Time_Jewely_Luk_3    # 29689
+          - Black_Eagle_Ring_TH    # 490586
+      - Combo:
+          - Time_Jewely_Luk_3    # 29689
+          - aegis_490587    # 490587
+    Script: |
+      bonus bCritAtkRate,15;
+      bonus2 bSkillAtk,"SN_SHARPSHOOTING",20*(getequiprefinerycnt(EQI_HEAD_TOP)/2);
+  - Combos:
+      - Combo:
+          - ATW_Ring_TW    # 490389
+          - Quick_Ring    # 490588
+    Script: |
+      bonus2 bAddRace,RC_All,15;
+      bonus2 bMagicAddRace,RC_All,15;
+  - Combos:
+      - Combo:
+          - Time_Jewely_Str_3    # 29674
+          - Black_Eagle_Ring_TH    # 490586
+          - aegis_490592    # 490592
+      - Combo:
+          - Time_Jewely_Str_3    # 29674
+          - aegis_490587    # 490587
+          - aegis_490592    # 490592
+      - Combo:
+          - Time_Jewely_Str_3    # 29674
+          - Black_Eagle_Ring_TH    # 490586
+          - aegis_490593    # 490593
+      - Combo:
+          - Time_Jewely_Str_3    # 29674
+          - aegis_490587    # 490587
+          - aegis_490593    # 490593
+    Script: |
+      bonus2 bAddSize,Size_All,20;
+      bonus2 bSkillAtk,"RA_AIMEDBOLT",10*(getequiprefinerycnt(EQI_HEAD_TOP)/2);
+  - Combos:
+      - Combo:
+          - Time_Jewely_Dex_3    # 29686
+          - Black_Eagle_Ring_TH    # 490586
+          - aegis_490592    # 490592
+      - Combo:
+          - Time_Jewely_Dex_3    # 29686
+          - aegis_490587    # 490587
+          - aegis_490592    # 490592
+      - Combo:
+          - Time_Jewely_Dex_3    # 29686
+          - Black_Eagle_Ring_TH    # 490586
+          - aegis_490593    # 490593
+      - Combo:
+          - Time_Jewely_Dex_3    # 29686
+          - aegis_490587    # 490587
+          - aegis_490593    # 490593
+    Script: |
+      bonus2 bAddRace,RC_All,15;
+      bonus2 bSkillAtk,"RA_ARROWSTORM",10*(getequiprefinerycnt(EQI_HEAD_TOP)/2);
+  - Combos:
+      - Combo:
+          - Time_Jewely_Luk_3    # 29689
+          - Black_Eagle_Ring_TH    # 490586
+          - aegis_490592    # 490592
+      - Combo:
+          - Time_Jewely_Luk_3    # 29689
+          - aegis_490587    # 490587
+          - aegis_490592    # 490592
+      - Combo:
+          - Time_Jewely_Luk_3    # 29689
+          - Black_Eagle_Ring_TH    # 490586
+          - aegis_490593    # 490593
+      - Combo:
+          - Time_Jewely_Luk_3    # 29689
+          - aegis_490587    # 490587
+          - aegis_490593    # 490593
+    Script: |
+      bonus bBaseAtk,80;
+      bonus bCritAtkRate,15;
+      bonus2 bSkillAtk,"SN_SHARPSHOOTING",10*(getequiprefinerycnt(EQI_HEAD_TOP)/2);
+  - Combos:
+      - Combo:
+          - Time_Jewely_Str_2    # 29673
+          - aegis_490583    # 490583
+      - Combo:
+          - aegis_313347    # 313347
+          - aegis_490583    # 490583
+    Script: |
+      bonus2 bAddSize,Size_All,15;
+  - Combos:
+      - Combo:
+          - Time_Jewely_Agi_2    # 29676
+          - aegis_490583    # 490583
+      - Combo:
+          - aegis_313349    # 313349
+          - aegis_490583    # 490583
+    Script: |
+      bonus bDelayrate,-8;
+      bonus2 bMagicAddRace,RC_All,8;
+  - Combos:
+      - Combo:
+          - Time_Jewely_Vit_2    # 29679
+          - aegis_490583    # 490583
+      - Combo:
+          - aegis_313351    # 313351
+          - aegis_490583    # 490583
+    Script: |
+      bonus bMaxHPrate,8;
+  - Combos:
+      - Combo:
+          - Time_Jewely_Int_2    # 29682
+          - aegis_490583    # 490583
+      - Combo:
+          - aegis_313353    # 313353
+          - aegis_490583    # 490583
+    Script: |
+      bonus2 bMagicAddSize,Size_All,15;
+  - Combos:
+      - Combo:
+          - Time_Jewely_Dex_2    # 29685
+          - aegis_490583    # 490583
+      - Combo:
+          - aegis_313355    # 313355
+          - aegis_490583    # 490583
+    Script: |
+      bonus2 bAddRace,RC_All,8;
+  - Combos:
+      - Combo:
+          - Time_Jewely_Luk_2    # 29688
+          - aegis_490583    # 490583
+      - Combo:
+          - aegis_313357    # 313357
+          - aegis_490583    # 490583
+    Script: |
+      bonus bBaseAtk,40;
+  - Combos:
+      - Combo:
+          - Time_Jewely_Str_3    # 29674
+          - aegis_490584    # 490584
+      - Combo:
+          - aegis_313348    # 313348
+          - aegis_490584    # 490584
+    Script: |
+      bonus2 bAddSize,Size_All,20;
+  - Combos:
+      - Combo:
+          - Time_Jewely_Agi_3    # 29677
+          - aegis_490583    # 490583
+      - Combo:
+          - aegis_313350    # 313350
+          - aegis_490584    # 490584
+    Script: |
+      bonus bDelayrate,-12;
+      bonus2 bMagicAddRace,RC_All,12;
+  - Combos:
+      - Combo:
+          - Time_Jewely_Vit_3    # 29680
+          - aegis_490584    # 490584
+      - Combo:
+          - aegis_313352    # 313352
+          - aegis_490584    # 490584
+    Script: |
+      bonus bMaxHPrate,12;
+  - Combos:
+      - Combo:
+          - Time_Jewely_Int_3    # 29683
+          - aegis_490584    # 490584
+      - Combo:
+          - aegis_313354    # 313354
+          - aegis_490584    # 490584
+    Script: |
+      bonus2 bMagicAddSize,Size_All,20;
+  - Combos:
+      - Combo:
+          - Time_Jewely_Dex_3    # 29686
+          - aegis_490584    # 490584
+      - Combo:
+          - aegis_313356    # 313356
+          - aegis_490584    # 490584
+    Script: |
+      bonus2 bAddRace,RC_All,15;
+  - Combos:
+      - Combo:
+          - Time_Jewely_Luk_3    # 29689
+          - aegis_490584    # 490584
+      - Combo:
+          - aegis_313358    # 313358
+          - aegis_490584    # 490584
+    Script: |
+      bonus bBaseAtk,80;
+  - Combos:
+      - Combo:
+          - Snowflower_Pendant    # 490176
+          - Ice_Pendant    # 490594
+    Script: |
+      bonus bAllTraitStats,3;
+      bonus2 bSPDrainRate,30,1;
+      bonus2 bAddClass,Class_Boss,20;
+  - Combos:
+      - Combo:
+          - Snowflower_Ring    # 490177
+          - Ice_Pendant    # 490594
+    Script: |
+      bonus bAllTraitStats,3;
+      bonus bCritical,15;
+      bonus bHit,15;
+      bonus bShortAtkRate,20;
+      bonus bLongAtkRate,20;
+  - Combos:
+      - Combo:
+          - Snowflower_Earring    # 490179
+          - Ice_Pendant    # 490594
+    Script: |
+      bonus bAllTraitStats,3;
+      bonus bDelayrate,-8;
+      bonus2 bMagicAddClass,Class_Boss,20;
+  - Combos:
+      - Combo:
+          - Snowflower_Necklace    # 490178
+          - Ice_Pendant    # 490594
+    Script: |
+      bonus bAllTraitStats,3;
+      bonus2 bMagicAtkEle,Ele_All,20;
+      bonus bFixedCast,-400;
+  - Combos:
+      - Combo:
+          - B_Seyren_Card    # 4357
+          - RingOfThought_LT    # 490596
+    Script: |
+      bonus bMaxHPrate,50;
+      bonus bBaseAtk,120;
+      bonus bLongAtkDef,5;
+      bonus bIgnoreDefRace,RC_All;
+  - Combos:
+      - Combo:
+          - B_Katrinn_Card    # 4365
+          - RingOfThought_LT    # 490596
+    Script: |
+      bonus bMatk,120;
+      bonus bNearAtkDef,5;
+      bonus2 bMagicAtkEle,Ele_All,40;
+  - Combos:
+      - Combo:
+          - B_Magaleta_Card    # 4363
+          - RingOfThought_LT    # 490596
+    Script: |
+      bonus bDef,200;
+      bonus bMdef,80;
+      bonus bMaxHPrate,40;
+      bonus2 bSubEle,Ele_All,15;
+  - Combos:
+      - Combo:
+          - B_Eremes_Card    # 4359
+          - RingOfThought_LT    # 490596
+    Script: |
+      bonus bCritical,30;
+      bonus bCritAtkRate,50;
+  - Combos:
+      - Combo:
+          - B_Shecil_Card    # 4367
+          - RingOfThought_LT    # 490596
+    Script: |
+      bonus2 bSPDrainRate,20,1;
+      bonus bLongAtkRate,40;
+  - Combos:
+      - Combo:
+          - B_Harword_Card    # 4361
+          - RingOfThought_LT    # 490596
+    Script: |
+      bonus bIgnoreDefRace,RC_All;
+      bonus bShortAtkRate,40;
+  - Combos:
+      - Combo:
+          - Real_Seyren_Card    # 4689
+          - RingOfThought_LT    # 490596
+    Script: |
+      bonus2 bAddSize,Size_All,25;
+      bonus2 bSkillCooldown,"RK_IGNITIONBREAK",-1000;
+    UnEquipScript: |
+      heal 0,-2000;
+  - Combos:
+      - Combo:
+          - Real_Katrinn_Card    # 4686
+          - RingOfThought_LT    # 490596
+    Script: |
+      bonus2 bMagicAddSize,Size_All,25;
+      bonus2 bSkillCooldown,"WL_CRIMSONROCK",-1500;
+    UnEquipScript: |
+      heal 0,-2000;
+  - Combos:
+      - Combo:
+          - Real_Magaleta_Card    # 4685
+          - RingOfThought_LT    # 490596
+    Script: |
+      bonus2 bMagicAddSize,Size_All,25;
+      bonus2 bSkillCooldown,"AB_ADORAMUS",-1000;
+    UnEquipScript: |
+      heal 0,-2000;
+  - Combos:
+      - Combo:
+          - Real_Eremes_Card    # 4684
+          - RingOfThought_LT    # 490596
+    Script: |
+      bonus2 bAddSize,Size_All,25;
+      bonus2 bSkillCooldown,"GC_DARKCROW",-10000;
+    UnEquipScript: |
+      heal 0,-2000;
+  - Combos:
+      - Combo:
+          - Real_Shecil_Card    # 4687
+          - RingOfThought_LT    # 490596
+    Script: |
+      bonus2 bAddSize,Size_All,25;
+      bonus2 bSkillCooldown,"RA_ARROWSTORM",-1500;
+    UnEquipScript: |
+      heal 0,-2000;
+  - Combos:
+      - Combo:
+          - Real_Harword_Card    # 4688
+          - RingOfThought_LT    # 490596
+    Script: |
+      bonus2 bAddSize,Size_All,25;
+      bonus2 bSkillCooldown,"NC_AXETORNADO",-2000;
+    UnEquipScript: |
+      heal 0,-2000;
+  - Combos:
+      - Combo:
+          - aegis_410136    # 410136
+          - aegis_420368    # 420368
+      - Combo:
+          - aegis_410137    # 410137
+          - aegis_420368    # 420368
+    Script: |
+      .@a = (readparam(bStr)/15);
+      .@b = (readparam(bAgi)/15);
+      .@c = (readparam(bVit)/15);
+      .@d = (readparam(bInt)/15);
+      .@e = (readparam(bDex)/15);
+      .@f = (readparam(bLuk)/15);
+      .@g = (readparam(bStr)+readparam(bAgi)+readparam(bVit)+readparam(bInt)+readparam(bDex)+readparam(bLuk))/600;
+      bonus bShortAtkRate,.@a;
+      bonus bDelayrate,-.@b;
+      bonus bMaxHPrate,.@c;
+      bonus bAspdRate,.@c;
+      bonus2 bMagicAddSize,Size_All,.@d;
+      bonus bLongAtkRate,.@e;
+      bonus bBaseAtk,6*.@f;
+      bonus bMatk,6*.@f;
+      bonus2 bAddRace,RC_All,.@g;
+      bonus2 bMagicAddRace,RC_All,.@g;
+  - Combos:
+      - Combo:
+          - Old_Rune_Circlet    # 18971
+          - aegis_490605    # 490605
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      bonus2 bSkillCooldown,"RK_IGNITIONBREAK",-1500;
+      bonus2 bAddRace,RC_All,4*(.@r/2);
+      bonus2 bSkillAtk,"RK_IGNITIONBREAK",10*(.@r/2);
+  - Combos:
+      - Combo:
+          - Old_Protect_Of_Crown    # 18983
+          - aegis_490605    # 490605
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      bonus2 bSkillCooldown,"LG_EARTHDRIVE",-2500;
+      bonus2 bAddRace,RC_All,4*(.@r/2);
+      bonus2 bSkillAtk,"LG_EARTHDRIVE",30*(.@r/2);
+  - Combos:
+      - Combo:
+          - Old_Circlet_Of_Bone    # 18982
+          - aegis_490606    # 490606
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      bonus2 bSkillCooldown,"GC_DARKCROW",-10000;
+      bonus2 bAddRace,RC_All,4*(.@r/2);
+      bonus2 bSkillAtk,"GC_CROSSIMPACT",10*(.@r/2);
+  - Combos:
+      - Combo:
+          - Old_Shadow_Handicraft    # 18975
+          - aegis_490606    # 490606
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      skill "RA_UNLIMIT",1;
+      bonus2 bSkillCooldown,"RA_UNLIMIT",180000;
+      bonus2 bSubEle,Ele_All,30;
+      bonus2 bAddRace,RC_All,4*(.@r/2);
+      bonus2 bSkillAtk,"SC_TRIANGLESHOT",10*(.@r/2);
+    UnEquipScript: |
+      sc_end SC_UNLIMIT;
+  - Combos:
+      - Combo:
+          - Old_Driver_Band_R    # 18973
+          - aegis_490607    # 490607
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      bonus2 bSkillCooldown,"NC_AXETORNADO",-1000;
+      bonus2 bAddRace,RC_All,4*(.@r/2);
+      bonus2 bSkillAtk,"NC_AXETORNADO",10*(.@r/2);
+  - Combos:
+      - Combo:
+          - Old_Driver_Band_Y    # 18974
+          - aegis_490607    # 490607
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      bonus2 bVariableCastrate,"NC_ARMSCANNON",-100;
+      bonus2 bSkillCooldown,"NC_ARMSCANNON",-500;
+      bonus2 bAddRace,RC_All,4*(.@r/2);
+      bonus2 bSkillAtk,"NC_ARMSCANNON",10*(.@r/2);
+  - Combos:
+      - Combo:
+          - Old_Midas_Whisper    # 18977
+          - aegis_490607    # 490607
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      bonus2 bAddMonsterDropItem,6212,50;
+      bonus2 bAddRace,RC_All,4*(.@r/2);
+      bonus2 bSkillAtk,"GN_CARTCANNON",10*(.@r/2);
+  - Combos:
+      - Combo:
+          - Old_Magic_Stone_Hat    # 18978
+          - aegis_490608    # 490608
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      bonus bDelayrate,-15;
+      bonus2 bMagicAddRace,RC_All,4*(.@r/2);
+      bonus2 bSkillAtk,"WL_COMET",12*(.@r/2);
+  - Combos:
+      - Combo:
+          - Old_Wind_Whisper    # 18980
+          - aegis_490608    # 490608
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      bonus bDelayrate,-15;
+      bonus2 bMagicAddRace,RC_All,4*(.@r/2);
+      bonus2 bSkillAtk,"SO_VARETYR_SPEAR",15*(.@r/2);
+  - Combos:
+      - Combo:
+          - Old_Camo_RabbitHood    # 18984
+          - aegis_490609    # 490609
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      bonus bDelayrate,-15;
+      bonus2 bAddRace,RC_All,4*(.@r/2);
+      bonus2 bSkillAtk,"SN_SHARPSHOOTING",15*(.@r/2);
+  - Combos:
+      - Combo:
+          - Old_Minstrel_Song_Hat    # 18976
+          - aegis_490609    # 490609
+      - Combo:
+          - Old_Dying_Swan    # 18981
+          - aegis_490609    # 490609
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      bonus2 bSkillUseSP,"WM_SEVERE_RAINSTORM",60;
+      bonus2 bAddRace,RC_All,4*(.@r/2);
+      bonus2 bSkillAtk,"WM_SEVERE_RAINSTORM",10*(.@r/2);
+  - Combos:
+      - Combo:
+          - Old_Mitra    # 18972
+          - aegis_490610    # 490610
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      bonus bDelayrate,-15;
+      bonus2 bMagicAddRace,RC_All,4*(.@r/2);
+      bonus2 bSkillAtk,"AB_JUDEX",40*(.@r/2);
+  - Combos:
+      - Combo:
+          - Old_Blazing_Soul    # 18979
+          - aegis_490610    # 490610
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      bonus4 bAutoSpellOnSkill,"SR_RAMPAGEBLASTER","CH_SOULCOLLECT",1,1000;
+      bonus2 bAddRace,RC_All,4*(.@r/2);
+      bonus2 bSkillAtk,"SR_RAMPAGEBLASTER",10*(.@r/2);
+  - Combos:
+      - Combo:
+          - S_Circlet_Of_Time_SR    # 19481
+          - aegis_490611    # 490611
+      - Combo:
+          - S_Circlet_Of_Time_SR    # 19481
+          - aegis_490612    # 490612
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      bonus bShortAtkRate,10;
+      bonus bLongAtkRate,10;
+      bonus2 bSkillAtk,"SR_KNUCKLEARROW",15*(.@r/2);
+      bonus2 bSkillAtk,"SR_TIGERCANNON",15*(.@r/2);
+      bonus2 bAddSize,Size_All,4*(.@r/3);
+      if (.@r>=11)
+         autobonus "{ bonus bVit,100; bonus2 bAddClass,Class_All,20; }",30,10000,BF_WEAPON;
+  - Combos:
+      - Combo:
+          - aegis_15982    # 15982
+          - aegis_490611    # 490611
+      - Combo:
+          - aegis_15983    # 15983
+          - aegis_490611    # 490611
+      - Combo:
+          - aegis_15982    # 15982
+          - aegis_490612    # 490612
+      - Combo:
+          - aegis_15983    # 15983
+          - aegis_490612    # 490612
+    Script: |
+      bonus bDelayrate,-5;
+      bonus2 bAddRace,RC_All,10;
+  - Combos:
+      - Combo:
+          - Time_Jewely_Str_3    # 29674
+          - aegis_490611    # 490611
+      - Combo:
+          - Time_Jewely_Str_3    # 29674
+          - aegis_490612    # 490612
+    Script: |
+      bonus bLongAtkRate,20;
+      bonus2 bAddRace,RC_All,7*(getequiprefinerycnt(EQI_HEAD_TOP)/2);
+  - Combos:
+      - Combo:
+          - Time_Jewely_Vit_3    # 29680
+          - aegis_490611    # 490611
+      - Combo:
+          - Time_Jewely_Vit_3    # 29680
+          - aegis_490612    # 490612
+    Script: |
+      bonus2 bSkillCooldown,"SR_TIGERCANNON",-500;
+      bonus2 bSkillAtk,"SR_TIGERCANNON",5*(getequiprefinerycnt(EQI_HEAD_TOP)/2);
+  - Combos:
+      - Combo:
+          - aegis_313348    # 313348
+          - aegis_490611    # 490611
+      - Combo:
+          - aegis_313348    # 313348
+          - aegis_490612    # 490612
+    Script: |
+      bonus4 bAutoSpellOnSkill,"SR_KNUCKLEARROW","SR_KNUCKLEARROW",10,350;
+      bonus2 bSkillAtk,"SR_KNUCKLEARROW",105;
+  - Combos:
+      - Combo:
+          - aegis_313352    # 313352
+          - aegis_490611    # 490611
+      - Combo:
+          - aegis_313352    # 313352
+          - aegis_490612    # 490612
+    Script: |
+      bonus bShortAtkRate,20;
+      bonus2 bSkillAtk,"SR_TIGERCANNON",105;
+  - Combos:
+      - Combo:
+          - Real_Seyren_Card    # 4689
+          - aegis_300567    # 300567
+    Script: |
+      autobonus "{ bonus bBaseAtk,200; }",60,12000,BF_WEAPON,"{ active_transform 3225,12000; }";
+  - Combos:
+      - Combo:
+          - Real_Randel_Card    # 4690
+          - aegis_300568    # 300568
+    Script: |
+      autobonus "{ bonus bBaseAtk,200; }",60,12000,BF_WEAPON,"{ active_transform 3240,12000; }";
+  - Combos:
+      - Combo:
+          - Real_Magaleta_Card    # 4685
+          - aegis_300569    # 300569
+    Script: |
+      autobonus "{ bonus bMatk,200; }",60,12000,BF_MAGIC,"{ active_transform 3221,12000; }";
+  - Combos:
+      - Combo:
+          - Real_Chen_Card    # 4693
+          - aegis_300570    # 300570
+    Script: |
+      autobonus "{ bonus bBaseAtk,200; }",60,12000,BF_WEAPON,"{ active_transform 3243,12000; }";
+  - Combos:
+      - Combo:
+          - Real_Katrinn_Card    # 4686
+          - aegis_300571    # 300571
+    Script: |
+      autobonus "{ bonus bMatk,200; }",60,12000,BF_MAGIC,"{ active_transform 3224,12000; }";
+  - Combos:
+      - Combo:
+          - Real_Ceila_Card    # 4692
+          - aegis_300572    # 300572
+    Script: |
+      autobonus "{ bonus bMatk,200; }",60,12000,BF_MAGIC,"{ active_transform 3242,12000; }";
+  - Combos:
+      - Combo:
+          - Real_Harword_Card    # 4688
+          - aegis_300573    # 300573
+    Script: |
+      autobonus "{ bonus bBaseAtk,200; }",60,12000,BF_WEAPON,"{ active_transform 3223,12000; }";
+  - Combos:
+      - Combo:
+          - Real_Flamel_Card    # 4691
+          - aegis_300574    # 300574
+    Script: |
+      autobonus "{ bonus bBaseAtk,200; }",60,12000,BF_WEAPON,"{ active_transform 3241,12000; }";
+  - Combos:
+      - Combo:
+          - Real_Eremes_Card    # 4684
+          - aegis_300575    # 300575
+    Script: |
+      autobonus "{ bonus bBaseAtk,200; }",60,12000,BF_WEAPON,"{ active_transform 3220,12000; }";
+  - Combos:
+      - Combo:
+          - Real_Gertie_Card    # 4694
+          - aegis_300576    # 300576
+    Script: |
+      autobonus "{ bonus bBaseAtk,200; }",60,12000,BF_WEAPON,"{ active_transform 3244,12000; }";
+  - Combos:
+      - Combo:
+          - Real_Shecil_Card    # 4687
+          - aegis_300577    # 300577
+    Script: |
+      autobonus "{ bonus bBaseAtk,200; }",60,12000,BF_WEAPON,"{ active_transform 3222,12000; }";
+  - Combos:
+      - Combo:
+          - Real_Alphoccio_Card    # 4696
+          - aegis_300578    # 300578
+    Script: |
+      autobonus "{ bonus bBaseMatk,200; }",60,12000,BF_WEAPON,"{ active_transform 3245,12000; }";
+  - Combos:
+      - Combo:
+          - Real_Trentini_Card    # 4695
+          - aegis_300579    # 300579
+    Script: |
+      autobonus "{ bonus bBaseAtk,200; }",60,12000,BF_WEAPON,"{ active_transform 3246,12000; }";
+  - Combos:
+      - Combo:
+          - Seyren_Memory    # 29594
+          - aegis_300534    # 300534
+          - aegis_480425    # 480425
+      - Combo:
+          - Seyren_Memory    # 29594
+          - aegis_300534    # 300534
+          - aegis_480426    # 480426
+      - Combo:
+          - Seyren_Memory    # 29594
+          - aegis_300534    # 300534
+          - aegis_480427    # 480427
+    Script: |
+      .@r = getequiprefinerycnt(EQI_GARMENT)/3;
+      autobonus "{ bonus bLongAtkRate,100; }",10+(20*.@r),5000,BF_WEAPON;
+      bonus2 bSkillAtk,"RK_IGNITIONBREAK",5*.@r;
+      bonus2 bSkillAtk,"RK_SONICWAVE",5*.@r;
+      bonus2 bSkillAtk,"RK_HUNDREDSPEAR",5*.@r;
+  - Combos:
+      - Combo:
+          - Harword_Memory    # 29595
+          - aegis_300535    # 300535
+          - aegis_480425    # 480425
+      - Combo:
+          - Harword_Memory    # 29595
+          - aegis_300535    # 300535
+          - aegis_480426    # 480426
+      - Combo:
+          - Harword_Memory    # 29595
+          - aegis_300535    # 300535
+          - aegis_480427    # 480427
+    Script: |
+      .@r = getequiprefinerycnt(EQI_GARMENT)/3;
+      bonus2 bSkillCooldown,"NC_ARMSCANNON",-100*.@r;
+      bonus2 bSkillAtk,"NC_POWERSWING",5*.@r;
+      bonus2 bSkillAtk,"NC_ARMSCANNON",5*.@r;
+      bonus2 bSkillAtk,"NC_AXETORNADO",5*.@r;
+  - Combos:
+      - Combo:
+          - Eremes_Memory    # 29596
+          - aegis_300536    # 300536
+          - aegis_480425    # 480425
+      - Combo:
+          - Eremes_Memory    # 29596
+          - aegis_300536    # 300536
+          - aegis_480426    # 480426
+      - Combo:
+          - Eremes_Memory    # 29596
+          - aegis_300536    # 300536
+          - aegis_480427    # 480427
+    Script: |
+      .@r = getequiprefinerycnt(EQI_GARMENT)/3;
+      bonus bCritical,7*.@r;
+      bonus bDelayrate,-3*.@r;
+      bonus2 bSkillAtk,"GC_CROSSIMPACT",5*.@r;
+      bonus2 bSkillAtk,"ASC_BREAKER",5*.@r;
+      bonus2 bSkillAtk,"GC_ROLLINGCUTTER",5*.@r;
+  - Combos:
+      - Combo:
+          - Katrinn_Memory    # 29598
+          - aegis_300537    # 300537
+          - aegis_480425    # 480425
+      - Combo:
+          - Katrinn_Memory    # 29598
+          - aegis_300537    # 300537
+          - aegis_480426    # 480426
+      - Combo:
+          - Katrinn_Memory    # 29598
+          - aegis_300537    # 300537
+          - aegis_480427    # 480427
+    Script: |
+      .@r = getequiprefinerycnt(EQI_GARMENT)/3;
+      bonus bVariableCastrate,-5*.@r;
+      bonus bDelayrate,-3*.@r;
+      bonus2 bSkillAtk,"WL_CRIMSONROCK",5*.@r;
+      bonus2 bSkillAtk,"WL_SOULEXPANSION",5*.@r;
+      bonus2 bSkillAtk,"WL_COMET",5*.@r;
+  - Combos:
+      - Combo:
+          - Magaleta_Memory    # 29599
+          - aegis_300538    # 300538
+          - aegis_480425    # 480425
+      - Combo:
+          - Magaleta_Memory    # 29599
+          - aegis_300538    # 300538
+          - aegis_480426    # 480426
+      - Combo:
+          - Magaleta_Memory    # 29599
+          - aegis_300538    # 300538
+          - aegis_480427    # 480427
+    Script: |
+      .@r = getequiprefinerycnt(EQI_GARMENT)/3;
+      bonus2 bSkillCooldown,"AB_ADORAMUS",-50*.@r;
+      bonus2 bSkillAtk,"AB_JUDEX",5*.@r;
+      bonus2 bSkillAtk,"AB_ADORAMUS",5*.@r;
+      bonus2 bSkillAtk,"AB_DUPLELIGHT_MAGIC",5*.@r;
+      bonus2 bSkillAtk,"AB_DUPLELIGHT_MELEE",5*.@r;
+  - Combos:
+      - Combo:
+          - Shecil_Memory    # 29600
+          - aegis_300539    # 300539
+          - aegis_480425    # 480425
+      - Combo:
+          - Shecil_Memory    # 29600
+          - aegis_300539    # 300539
+          - aegis_480426    # 480426
+      - Combo:
+          - Shecil_Memory    # 29600
+          - aegis_300539    # 300539
+          - aegis_480427    # 480427
+    Script: |
+      .@r = getequiprefinerycnt(EQI_GARMENT)/3;
+      bonus bDelayrate,-3*.@r;
+      bonus bCritAtkRate,5*.@r;
+      bonus2 bSkillAtk,"SN_SHARPSHOOTING",5*.@r;
+      bonus2 bSkillAtk,"RA_ARROWSTORM",5*.@r;
+      bonus2 bSkillAtk,"RA_AIMEDBOLT",5*.@r;
+  - Combos:
+      - Combo:
+          - Randel_Memory    # 29601
+          - aegis_300540    # 300540
+          - aegis_480425    # 480425
+      - Combo:
+          - Randel_Memory    # 29601
+          - aegis_300540    # 300540
+          - aegis_480426    # 480426
+      - Combo:
+          - Randel_Memory    # 29601
+          - aegis_300540    # 300540
+          - aegis_480427    # 480427
+    Script: |
+      .@r = getequiprefinerycnt(EQI_GARMENT)/3;
+      bonus bCritical,5*.@r;
+      bonus bLongAtkRate,5*.@r;
+      bonus2 bSkillAtk,"LG_RAYOFGENESIS",5*.@r;
+      bonus2 bSkillAtk,"LG_SHIELDPRESS",5*.@r;
+      bonus2 bSkillAtk,"LG_CANNONSPEAR",5*.@r;
+  - Combos:
+      - Combo:
+          - Flamel_Memory    # 29602
+          - aegis_300541    # 300541
+          - aegis_480425    # 480425
+      - Combo:
+          - Flamel_Memory    # 29602
+          - aegis_300541    # 300541
+          - aegis_480426    # 480426
+      - Combo:
+          - Flamel_Memory    # 29602
+          - aegis_300541    # 300541
+          - aegis_480427    # 480427
+    Script: |
+      .@r = getequiprefinerycnt(EQI_GARMENT)/3;
+      bonus bVariableCastrate,-10*.@r;
+      bonus bLongAtkRate,5*.@r;
+      bonus2 bSkillAtk,"GN_SPORE_EXPLOSION",5*.@r;
+      bonus2 bSkillAtk,"GN_CARTCANNON",5*.@r;
+      bonus2 bSkillAtk,"GN_CRAZYWEED",5*.@r;
+  - Combos:
+      - Combo:
+          - Gertie_Memory    # 29603
+          - aegis_300542    # 300542
+          - aegis_480425    # 480425
+      - Combo:
+          - Gertie_Memory    # 29603
+          - aegis_300542    # 300542
+          - aegis_480426    # 480426
+      - Combo:
+          - Gertie_Memory    # 29603
+          - aegis_300542    # 300542
+          - aegis_480427    # 480427
+    Script: |
+      .@r = getequiprefinerycnt(EQI_GARMENT)/3;
+      bonus3 bAutoSpell,"SO_PSYCHIC_WAVE",5,10+(60*.@r);
+      bonus2 bMagicAtkEle,Ele_Neutral,5*.@r;
+      bonus2 bSkillAtk,"SC_FATALMENACE",5*.@r;
+      bonus2 bSkillAtk,"SO_PSYCHIC_WAVE",5*.@r;
+      bonus2 bSkillAtk,"SC_TRIANGLESHOT",5*.@r;
+  - Combos:
+      - Combo:
+          - Celia_Memory    # 29604
+          - aegis_300543    # 300543
+          - aegis_480425    # 480425
+      - Combo:
+          - Celia_Memory    # 29604
+          - aegis_300543    # 300543
+          - aegis_480426    # 480426
+      - Combo:
+          - Celia_Memory    # 29604
+          - aegis_300543    # 300543
+          - aegis_480427    # 480427
+    Script: |
+      .@r = getequiprefinerycnt(EQI_GARMENT)/3;
+      bonus2 bSkillCooldown,"SO_PSYCHIC_WAVE",-70*.@r;
+      bonus2 bMagicAtkEle,Ele_Neutral,5*.@r;
+      bonus2 bSkillAtk,"WZ_HEAVENDRIVE",5*.@r;
+      bonus2 bSkillAtk,"SO_PSYCHIC_WAVE",5*.@r;
+      bonus2 bSkillAtk,"SO_EARTHGRAVE",5*.@r;
+  - Combos:
+      - Combo:
+          - Chen_Memory    # 29605
+          - aegis_300544    # 300544
+          - aegis_480425    # 480425
+      - Combo:
+          - Chen_Memory    # 29605
+          - aegis_300544    # 300544
+          - aegis_480426    # 480426
+      - Combo:
+          - Chen_Memory    # 29605
+          - aegis_300544    # 300544
+          - aegis_480427    # 480427
+    Script: |
+      .@r = getequiprefinerycnt(EQI_GARMENT)/3;
+      bonus bPerfectHitAddRate,20*.@r;
+      bonus bLongAtkRate,5*.@r;
+      bonus2 bSkillAtk,"MO_CHAINCOMBO",5*.@r;
+      bonus2 bSkillAtk,"SR_KNUCKLEARROW",5*.@r;
+      bonus2 bSkillAtk,"SR_RIDEINLIGHTNING",5*.@r;
+  - Combos:
+      - Combo:
+          - Tren_Memory    # 29606
+          - aegis_300545    # 300545
+          - aegis_480425    # 480425
+      - Combo:
+          - Tren_Memory    # 29606
+          - aegis_300545    # 300545
+          - aegis_480426    # 480426
+      - Combo:
+          - Tren_Memory    # 29606
+          - aegis_300545    # 300545
+          - aegis_480427    # 480427
+      - Combo:
+          - Alpho_Memory    # 29607
+          - aegis_300546    # 300546
+          - aegis_480425    # 480425
+      - Combo:
+          - Alpho_Memory    # 29607
+          - aegis_300546    # 300546
+          - aegis_480426    # 480426
+      - Combo:
+          - Alpho_Memory    # 29607
+          - aegis_300546    # 300546
+          - aegis_480427    # 480427
+    Script: |
+      .@r = getequiprefinerycnt(EQI_GARMENT)/3;
+      bonus bVariableCastrate,-10*.@r;
+      bonus2 bMagicAtkEle,Ele_Neutral,5*.@r;
+      bonus2 bSkillAtk,"WM_SEVERE_RAINSTORM",5*.@r;
+      bonus2 bSkillAtk,"WM_METALICSOUND",5*.@r;
+      bonus2 bSkillAtk,"WM_REVERBERATION",5*.@r;
+  - Combos:
+      - Combo:
+          - S_Circlet_Of_Time_SC    # 19479
+          - aegis_490598    # 490598
+      - Combo:
+          - S_Circlet_Of_Time_SC    # 19479
+          - aegis_490599    # 490599
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      bonus bDelayrate,-5;
+      bonus2 bSkillAtk,"SC_FATALMENACE",15*(.@r/2);
+      bonus2 bSkillAtk,"SC_TRIANGLESHOT",15*(.@r/2);
+      bonus2 bAddSize,Size_All,4*(.@r/3);
+      if (.@r>=11)
+         autobonus "{ bonus2 bAddClass,Class_All,20; bonus bAgi,100; }",30,10000,BF_WEAPON;
+  - Combos:
+      - Combo:
+          - aegis_15982    # 15982
+          - aegis_490598    # 490598
+      - Combo:
+          - aegis_15983    # 15983
+          - aegis_490598    # 490598
+      - Combo:
+          - aegis_15982    # 15982
+          - aegis_490599    # 490599
+      - Combo:
+          - aegis_15983    # 15983
+          - aegis_490599    # 490599
+    Script: |
+      bonus bDelayrate,-5;
+      bonus2 bAddRace,RC_All,10;
+  - Combos:
+      - Combo:
+          - Time_Jewely_Str_3    # 29674
+          - aegis_490598    # 490598
+      - Combo:
+          - Time_Jewely_Str_3    # 29674
+          - aegis_490598    # 490599
+    Script: |
+      bonus bShortAtkRate,15;
+      bonus2 bSkillAtk,"SC_FATALMENACE",5*(getequiprefinerycnt(EQI_HEAD_TOP)/2);
+  - Combos:
+      - Combo:
+          - Time_Jewely_Dex_3    # 29686
+          - aegis_490598    # 490598
+      - Combo:
+          - Time_Jewely_Dex_3    # 29686
+          - aegis_490599    # 490599
+    Script: |
+      bonus2 bSkillCooldown,"SC_FEINTBOMB",-1800;
+      bonus2 bSkillAtk,"SC_TRIANGLESHOT",10*(getequiprefinerycnt(EQI_HEAD_TOP)/2);
+  - Combos:
+      - Combo:
+          - aegis_313348    # 313348
+          - aegis_490598    # 490598
+      - Combo:
+          - aegis_313348    # 313348
+          - aegis_490599    # 490599
+    Script: |
+      bonus2 bHPDrainRate,30,3;
+      bonus2 bHPDrainRate,10,2;
+      bonus2 bSkillAtk,"SC_FATALMENACE",70;
+  - Combos:
+      - Combo:
+          - aegis_313356    # 313356
+          - aegis_490598    # 490598
+      - Combo:
+          - aegis_313356    # 313356
+          - aegis_490599    # 490599
+    Script: |
+      bonus bLongAtkRate,30;
+      bonus2 bSkillAtk,"SC_TRIANGLESHOT",105;
+  - Combos:
+      - Combo:
+          - S_Circlet_Of_Time_LG    # 19475
+          - aegis_490600    # 490600
+      - Combo:
+          - S_Circlet_Of_Time_LG    # 19475
+          - aegis_490601    # 490601
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      bonus bShortAtkRate,10;
+      bonus bLongAtkRate,10;
+      bonus2 bSkillAtk,"LG_OVERBRAND",15*(.@r/2);
+      bonus2 bSkillAtk,"LG_CANNONSPEAR",15*(.@r/2);
+      bonus2 bAddSize,Size_All,4*(.@r/3);
+      if (.@r>=11)
+         autobonus "{ bonus2 bAddClass,Class_All,20; bonus bStr,100; }",30,10000,BF_WEAPON;
+  - Combos:
+      - Combo:
+          - aegis_15982    # 15982
+          - aegis_490600    # 490600
+      - Combo:
+          - aegis_15983    # 15983
+          - aegis_490600    # 490600
+      - Combo:
+          - aegis_15982    # 15982
+          - aegis_490601    # 490601
+      - Combo:
+          - aegis_15983    # 15983
+          - aegis_490601    # 490601
+    Script: |
+      bonus bStr,20;
+      bonus2 bAddRace,RC_All,10;
+  - Combos:
+      - Combo:
+          - Time_Jewely_Str_3    # 29674
+          - aegis_490600    # 490600
+      - Combo:
+          - Time_Jewely_Str_3    # 29674
+          - aegis_490601    # 490601
+    Script: |
+      bonus bDelayrate,-15;
+      bonus2 bSkillAtk,"LG_OVERBRAND",10*(getequiprefinerycnt(EQI_HEAD_TOP)/2);
+  - Combos:
+      - Combo:
+          - Time_Jewely_Luk_3    # 29689
+          - aegis_490600    # 490600
+      - Combo:
+          - Time_Jewely_Luk_3    # 29689
+          - aegis_490601    # 490601
+    Script: |
+      bonus bCritical,20;
+      bonus bCritAtkRate,20;
+      bonus2 bSkillAtk,"LG_CANNONSPEAR",5*(getequiprefinerycnt(EQI_HEAD_TOP)/2);
+  - Combos:
+      - Combo:
+          - aegis_313348    # 313348
+          - aegis_490600    # 490600
+      - Combo:
+          - aegis_313348    # 313348
+          - aegis_490601    # 490601
+    Script: |
+      bonus bDelayrate,-5;
+      bonus2 bSkillCooldown,"LG_OVERBRAND",-100;
+      bonus2 bSkillAtk,"LG_OVERBRAND",105;
+  - Combos:
+      - Combo:
+          - aegis_313358    # 313358
+          - aegis_490600    # 490600
+      - Combo:
+          - aegis_313358    # 313358
+          - aegis_490601    # 490601
+    Script: |
+      bonus bLongAtkRate,20;
+      bonus bStr,56;
+      bonus2 bSkillAtk,"LG_CANNONSPEAR",70;
+  - Combos:
+      - Combo:
+          - S_Circlet_Of_Time_WL    # 19482
+          - aegis_490603    # 490603
+      - Combo:
+          - S_Circlet_Of_Time_WL    # 19482
+          - aegis_490604    # 490604
+    Script: |
+      .@r = getequiprefinerycnt(EQI_HEAD_TOP);
+      bonus bDelayrate,-5;
+      bonus2 bSkillAtk,"WL_JACKFROST",10*(.@r/2);
+      bonus2 bSkillAtk,"WL_CHAINLIGHTNING",10*(.@r/2);
+      bonus2 bMagicAddSize,Size_All,4*(.@r/3);
+      if (.@r>=11) {
+         bonus2 bSkillCooldown,"WL_JACKFROST",-2500;
+         bonus bVariableCastrate,-30;
+      }
+  - Combos:
+      - Combo:
+          - aegis_15981    # 15981
+          - aegis_490603    # 490603
+      - Combo:
+          - aegis_15981    # 15981
+          - aegis_490604    # 490604
+    Script: |
+      bonus bDelayrate,-5;
+      bonus2 bMagicAddRace,RC_All,10;
+  - Combos:
+      - Combo:
+          - Time_Jewely_Int_3    # 29683
+          - aegis_490603    # 490603
+      - Combo:
+          - Time_Jewely_Int_3    # 29683
+          - aegis_490604    # 490604
+    Script: |
+      bonus2 bSkillCooldown,"WL_FROSTMISTY",-3000;
+      bonus2 bSkillAtk,"WL_JACKFROST",10*(getequiprefinerycnt(EQI_HEAD_TOP)/2);
+  - Combos:
+      - Combo:
+          - Time_Jewely_Agi_3    # 29677
+          - aegis_490603    # 490603
+      - Combo:
+          - Time_Jewely_Agi_3    # 29677
+          - aegis_490604    # 490604
+    Script: |
+      bonus bDelayrate,-10;
+      bonus bAspdRate,10;
+      bonus2 bSkillAtk,"WL_CHAINLIGHTNING",10*(getequiprefinerycnt(EQI_HEAD_TOP)/2);
+  - Combos:
+      - Combo:
+          - aegis_313354    # 313354
+          - aegis_490603    # 490603
+      - Combo:
+          - aegis_313354    # 313354
+          - aegis_490604    # 490604
+    Script: |
+      bonus2 bSkillCooldown,"WL_JACKFROST",-500;
+      bonus bAspdRate,15;
+      bonus2 bSkillAtk,"WL_JACKFROST",70;
+  - Combos:
+      - Combo:
+          - aegis_313350    # 313350
+          - aegis_490603    # 490603
+      - Combo:
+          - aegis_313350    # 313350
+          - aegis_490604    # 490604
+    Script: |
+      bonus4 bAutoSpellOnSkill,"WL_CHAINLIGHTNING","WL_CHAINLIGHTNING",5,350;
+      bonus2 bSkillAtk,"WL_CHAINLIGHTNING",70;
+  - Combos:
+      - Combo:
+          - Old_Rune_Circlet    # 18971
+          - aegis_490613    # 490613
+    Script: |
+      bonus2 bSkillAtk,"RK_IGNITIONBREAK",60;
+  - Combos:
+      - Combo:
+          - Old_Protect_Of_Crown    # 18983
+          - aegis_490613    # 490613
+    Script: |
+      bonus2 bSkillAtk,"LG_EARTHDRIVE",60;
+  - Combos:
+      - Combo:
+          - Old_Driver_Band_R    # 18973
+          - aegis_490613    # 490613
+    Script: |
+      bonus2 bSkillAtk,"NC_AXETORNADO",60;
+  - Combos:
+      - Combo:
+          - Old_Driver_Band_Y    # 18974
+          - aegis_490613    # 490613
+    Script: |
+      bonus2 bSkillAtk,"NC_ARMSCANNON",60;
+  - Combos:
+      - Combo:
+          - Old_Midas_Whisper    # 18977
+          - aegis_490613    # 490613
+    Script: |
+      bonus2 bSkillAtk,"GN_CARTCANNON",60;
+  - Combos:
+      - Combo:
+          - Old_Magic_Stone_Hat    # 18978
+          - aegis_490613    # 490613
+    Script: |
+      bonus2 bSkillAtk,"WL_COMET",60;
+  - Combos:
+      - Combo:
+          - Old_Wind_Whisper    # 18980
+          - aegis_490613    # 490613
+    Script: |
+      bonus2 bSkillAtk,"SO_VARETYR_SPEAR",60;
+  - Combos:
+      - Combo:
+          - Old_Circlet_Of_Bone    # 18982
+          - aegis_490613    # 490613
+    Script: |
+      bonus2 bSkillAtk,"GC_CROSSIMPACT",60;
+  - Combos:
+      - Combo:
+          - Old_Shadow_Handicraft    # 18975
+          - aegis_490613    # 490613
+    Script: |
+      bonus2 bSkillAtk,"SC_TRIANGLESHOT",60;
+  - Combos:
+      - Combo:
+          - Old_Mitra    # 18972
+          - aegis_490613    # 490613
+    Script: |
+      bonus2 bSkillAtk,"AB_JUDEX",60;
+  - Combos:
+      - Combo:
+          - Old_Blazing_Soul    # 18979
+          - aegis_490613    # 490613
+    Script: |
+      bonus2 bSkillAtk,"SR_RAMPAGEBLASTER",60;
+  - Combos:
+      - Combo:
+          - Old_Camo_RabbitHood    # 18984
+          - aegis_490613    # 490613
+    Script: |
+      bonus2 bSkillAtk,"SN_SHARPSHOOTING",60;
+  - Combos:
+      - Combo:
+          - Old_Minstrel_Song_Hat    # 18976
+          - aegis_490613    # 490613
+      - Combo:
+          - Old_Dying_Swan    # 18981
+          - aegis_490613    # 490613
+    Script: |
+      bonus2 bSkillAtk,"WM_SEVERE_RAINSTORM",60;
+  - Combos:
+      - Combo:
+          - Astraea_Helm_LT    # 400699
+          - Astraea_Shoes_LT    # 470205
+    Script: |
+      bonus bMaxHP,7000;
+      bonus bFixedCast,-500;
+      bonus bFlee2,12;
+  - Combos:
+      - Combo:
+          - Astraea_Helm_LT    # 400699
+          - Astraea_Cape_LT    # 480338
+    Script: |
+      bonus bShortAtkRate,15;
+      bonus bLongAtkRate,15;
+      bonus2 bMagicAtkEle,Ele_All,15;
+      bonus bLongAtkDef,15;
+      bonus2 bSubEle,Ele_All,5;
+  - Combos:
+      - Combo:
+          - Astraea_Helm_LT    # 400699
+          - Astraea_Armor_LT    # 450385
+    Script: |
+      bonus bHealPower,20;
+      bonus bAddItemHealRate,20;
+      autobonus2 "{ bonus bVit,200; }",30,10000,BF_WEAPON;
+      if (eaclass()&EAJL_THIRD && (BaseJob == Job_Priest))
+         skill "MG_ENERGYCOAT",1;
+  - Combos:
+      - Combo:
+          - Star_Cluster_Of_Sta3    # 310679
+          - Astraea_Helm_LT    # 400699
+    Script: |
+      bonus2 bSubSize,Size_Medium,15;
+      if (readparam(bSta)>=90) {
+         bonus bLongAtkDef,10;
+         bonus bNearAtkDef,-10;
+      }
+  - Combos:
+      - Combo:
+          - Star_Cluster_Of_Wis3    # 310691
+          - Astraea_Helm_LT    # 400699
+    Script: |
+      bonus2 bMagicSubSize,Size_All,15;
+      if (readparam(bWis)>=90) {
+         bonus bLongAtkDef,-10;
+         bonus bNearAtkDef,10;
+      }
+  - Combos:
+      - Combo:
+          - Astraea_Shoes_LT    # 470205
+          - Astraea_Ring_LT    # 490595
+    Script: |
+      bonus bShortAtkRate,10;
+      bonus bLongAtkRate,10;
+      bonus2 bMagicAtkEle,Ele_All,10;
+      bonus bDelayrate,-8;
+      bonus bMaxHPrate,8;
+      bonus bMaxSPrate,8;
+      if (getequiprefinerycnt(EQI_SHOES)>=13) {
+         bonus2 bSubSize,Size_All,5;
+         bonus2 bMagicSubSize,Size_All,5;
+         bonus2 bSubRace,RC_DemiHuman,3;
+         bonus2 bSubRace,RC_Player_Doram,3;
+         bonus2 bSubRace,RC_Player_Human,3;
+      }
+  - Combos:
+      - Combo:
+          - Astraea_Helm_LT    # 400699
+          - Astraea_Ring_LT    # 490595
+    Script: |
+      bonus bAllStats,5;
+      bonus bDelayrate,-7;
+  - Combos:
+      - Combo:
+          - Evil_Druid_Card    # 4141
+          - Astraea_Armor_LT    # 450385
+    Script: |
+      bonus2 bAddClass,Class_All,15;
+      bonus2 bMagicAddClass,Class_All,15;
+      bonus bMaxHPrate,8*(min(14,getequiprefinerycnt(EQI_ARMOR))/2);
+  - Combos:
+      - Combo:
+          - B_Magaleta_Card    # 4363
+          - Astraea_Armor_LT    # 450385
+    Script: |
+      .@r = getequiprefinerycnt(EQI_ARMOR);
+      bonus2 bAddClass,Class_All,25;
+      bonus2 bMagicAddClass,Class_All,25;
+      if (.@r>=10)
+         bonus bMaxHPrate,pow(min(14,.@r)-4,2);
+  - Combos:
+      - Combo:
+          - Astraea_Armor_LT    # 450385
+          - Astraea_Shoes_LT    # 470205
+          - Astraea_Cape_LT    # 480338
+    Script: |
+      bonus bAllStats,3;
+      bonus bMaxHPrate,15;
+      bonus2 bSubSize,Size_All,10;
+      if (getenchantgrade(EQI_GARMENT)>=ENCHANTGRADE_A && getenchantgrade(EQI_SHOES)>=ENCHANTGRADE_A) {
+         bonus2 bResEff,Eff_Freeze,10000;
+         bonus2 bResEff,Eff_Stone,10000;
+         bonus2 bResEff,Eff_Stun,10000;
+         bonus2 bResEff,Eff_Sleep,10000;
+         bonus2 bResEff,Eff_Curse,10000;
+      }
+  - Combos:
+      - Combo:
+          - Pure_Heart_LT_TW    # 490492
+          - Infinity_Chip_EX    # 490572
+    Script: |
+      if (BaseJob == Job_Merchant) {
+         bonus bPow,5;
+         bonus bCrt,5;
+         bonus bPAtk,5;
+         bonus bFixedCast,-500;
+         autobonus3 "{ bonus2 bSkillAtk,\"NC_ARMSCANNON\",30; bonus2 bSkillAtk,\"MT_SPARK_BLASTER\",20; bonus2 bSkillAtk,\"MT_AXE_STOMP\",30; bonus2 bSkillAtk,\"MT_MIGHTY_SMASH\",20; }",1000,120000,"MT_D_MACHINE";
+      }
+  - Combos:
+      - Combo:
+          - S_IG_OC_Earring   # 24948
+          - S_Master_Weapon   # 24792
+          - S_IG_OC_Pendant   # 24949
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus2 bAddEle,Ele_All,3;
+      bonus bPAtk,2;
+      if (.@sum>=27) {
+         bonus2 bIgnoreResRaceRate,RC_All,10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_IG_OC_Earring   # 24948
+          - S_IG_OC_Pendant   # 24949
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus bPAtk,2;
+      bonus bAtkRate,2;
+      if (.@sum>=15) {
+         bonus2 bAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreDefRaceRate,RC_All,50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_IG_RF_Armor   # 24950
+          - S_Master_Shield   # 24793
+          - S_IG_RF_Shoes   # 24951
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus2 bMagicAddEle,Ele_All,3;
+      bonus bSMatk,2;
+      if (.@sum>=27) {
+         bonus2 bIgnoreMResRaceRate,RC_All,10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_IG_RF_Armor   # 24950
+          - S_IG_RF_Shoes   # 24951
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bSMatk,2;
+      bonus bMatkRate,2;
+      if (.@sum>=15) {
+         bonus2 bMagicAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreMdefRaceRate,RC_All,50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_IQ_EB_Earring   # 24952
+          - S_Master_Weapon   # 24792
+          - S_IQ_EB_Pendant   # 24953
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus bCRate,1;
+      bonus bCritical,3;
+      if (.@sum>=27) {
+         bonus2 bIgnoreResRaceRate,RC_All,10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_IQ_EB_Earring   # 24952
+          - S_IQ_EB_Pendant   # 24953
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus bPAtk,2;
+      bonus bAtkRate,2;
+      if (.@sum>=15) {
+         bonus2 bAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreDefRaceRate,RC_All,50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_IQ_BFB_Armor   # 24954
+          - S_Master_Shield   # 24793
+          - S_IQ_BFB_Shoes   # 24955
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bCRate,1;
+      bonus bCritical,3;
+      if (.@sum>=27) {
+         bonus2 bIgnoreResRaceRate,RC_All,10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_IQ_BFB_Armor   # 24954
+          - S_IQ_BFB_Shoes   # 24955
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bPAtk,2;
+      bonus bAtkRate,2;
+      if (.@sum>=15) {
+         bonus2 bAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreDefRaceRate,RC_All,50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_SU_CS_Earring   # 24956
+          - S_Master_Weapon   # 24792
+          - S_SU_CS_Pendant   # 24957
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus bCRate,1;
+      bonus bCritical,3;
+      if (.@sum>=27) {
+         bonus2 bIgnoreResRaceRate,RC_All,10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_SU_CS_Earring   # 24956
+          - S_SU_CS_Pendant   # 24957
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus bPAtk,2;
+      bonus bAtkRate,2;
+      if (.@sum>=15) {
+         bonus2 bAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreDefRaceRate,RC_All,50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_SU_HB_Armor   # 24958
+          - S_Master_Shield   # 24793
+          - S_SU_HB_Shoes   # 24959
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bCRate,1;
+      bonus bCritical,3;
+      if (.@sum>=27) {
+         bonus2 bIgnoreResRaceRate,RC_All,10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_SU_HB_Armor   # 24958
+          - S_SU_HB_Shoes   # 24959
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bPAtk,2;
+      bonus bAtkRate,2;
+      if (.@sum>=15) {
+         bonus2 bAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreDefRaceRate,RC_All,50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_CD_AR_Earring   # 24967
+          - S_Master_Weapon   # 24792
+          - S_CD_AR_Pendant   # 24968
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus2 bMagicAddEle,Ele_All,3;
+      bonus bSMatk,2;
+      if (.@sum>=27) {
+         bonus2 bIgnoreMResRaceRate,RC_All,10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_CD_AR_Earring   # 24967
+          - S_CD_AR_Pendant   # 24968
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus bSMatk,2;
+      bonus bMatkRate,2;
+      if (.@sum>=15) {
+         bonus2 bMagicAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreMdefRaceRate,RC_All,50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_CD_DF_Armor   # 24969
+          - S_Master_Shield   # 24793
+          - S_CD_DF_Shoes   # 24970
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus2 bMagicAddEle,Ele_All,3;
+      bonus bSMatk,2;
+      if (.@sum>=27) {
+         bonus2 bIgnoreMResRaceRate,RC_All,10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_CD_DF_Armor   # 24969
+          - S_CD_DF_Shoes   # 24970
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bSMatk,2;
+      bonus bMatkRate,2;
+      if (.@sum>=15) {
+         bonus2 bMagicAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreMdefRaceRate,RC_All,50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_AG_FB_Earring   # 24971
+          - S_Master_Weapon   # 24792
+          - S_AG_FB_Pendant   # 24972
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus2 bMagicAddEle,Ele_All,3;
+      bonus bSMatk,2;
+      if (.@sum>=27) {
+         bonus2 bIgnoreMResRaceRate,RC_All,10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_AG_FB_Earring   # 24971
+          - S_AG_FB_Pendant   # 24972
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus bSMatk,2;
+      bonus bMatkRate,2;
+      if (.@sum>=15) {
+         bonus2 bMagicAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreMdefRaceRate,RC_All,50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_AG_SH_Armor   # 24973
+          - S_Master_Shield   # 24793
+          - S_AG_SH_Shoes   # 24974
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus2 bMagicAddEle,Ele_All,3;
+      bonus bSMatk,2;
+      if (.@sum>=27) {
+         bonus2 bIgnoreMResRaceRate,RC_All,10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreMResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_AG_SH_Armor   # 24973
+          - S_AG_SH_Shoes   # 24974
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bSMatk,2;
+      bonus bMatkRate,2;
+      if (.@sum>=15) {
+         bonus2 bMagicAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreMdefRaceRate,RC_All,50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreMdefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_SKE_NS_Earring   # 24975
+          - S_Master_Weapon   # 24792
+          - S_SKE_NS_Pendant   # 24976
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus bCRate,1;
+      bonus bCritical,3;
+      if (.@sum>=27) {
+         bonus2 bIgnoreResRaceRate,RC_All,10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_SKE_NS_Earring   # 24975
+          - S_SKE_NS_Pendant   # 24976
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L);
+      bonus bPAtk,2;
+      bonus bAtkRate,2;
+      if (.@sum>=15) {
+         bonus2 bAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreDefRaceRate,RC_All,50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - S_SKE_SB_Armor   # 24977
+          - S_Master_Shield   # 24793
+          - S_SKE_SB_Shoes   # 24978
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bCRate,1;
+      bonus bCritical,3;
+      if (.@sum>=27) {
+         bonus2 bIgnoreResRaceRate,RC_All,10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Human,-10;
+         bonus2 bIgnoreResRaceRate,RC_Player_Doram,-10;
+      }
+  - Combos:
+      - Combo:
+          - S_SKE_SB_Armor   # 24977
+          - S_SKE_SB_Shoes   # 24978
+    Script: |
+      .@sum = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_SHOES);
+      bonus bPAtk,2;
+      bonus bAtkRate,2;
+      if (.@sum>=15) {
+         bonus2 bAddSize,Size_All,7;
+         if (.@sum>=18) {
+            bonus2 bIgnoreDefRaceRate,RC_All,50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Human,-50;
+            bonus2 bIgnoreDefRaceRate,RC_Player_Doram,-50;
+         }
+      }
+  - Combos:
+      - Combo:
+          - Time_Gap_ABC_Dagger   # 28785
+          - Time_DM_R_Crown_ABC   # 400534
+    Script: |
+      bonus2 bMagicAddSize,Size_All,15;
+      bonus2 bSkillAtk,"ABC_ABYSS_SQUARE",25;
+      if (getenchantgrade()>=ENCHANTGRADE_A) {
+         bonus2 bMagicAddEle,Ele_All,15;
+         bonus bMatkRate,7;
+         bonus2 bSkillAtk,"ABC_ABYSS_FLAME",15;
+         bonus2 bSkillAtk,"ABC_ABYSS_FLAME_ATK",15;
+      }
+  - Combos:
+      - Combo:
+          - aegis_300606   # 300606
+          - aegis_300495   # 300495
+    Script: |
+      bonus2 bMagicAddSize,Size_Medium,10;
+  - Combos:
+      - Combo:
+          - aegis_300606   # 300606
+          - aegis_300495   # 300495
+          - aegis_300497   # 300497
+    Script: |
+      bonus2 bMagicAddSize,Size_Medium,20;
+      bonus2 bMagicAddRace,RC_Dragon,15;
+  - Combos:
+      - Combo:
+          - aegis_300606   # 300606
+          - aegis_300497   # 300497
+    Script: |
+      bonus2 bMagicAddRace,RC_Brute,15;
+      bonus2 bMagicAddRace,RC_Player_Doram,15;
+  - Combos:
+      - Combo:
+          - aegis_300607   # 300607
+          - aegis_300491   # 300491
+    Script: |
+      bonus2 bAddSize,Size_Medium,10;
+  - Combos:
+      - Combo:
+          - aegis_300607   # 300607
+          - aegis_300491   # 300491
+          - aegis_300493   # 300493
+    Script: |
+      bonus2 bAddRace,RC_Dragon,15;
+      bonus2 bAddSize,Size_Medium,20;
+  - Combos:
+      - Combo:
+          - aegis_300607   # 300607
+          - aegis_300493   # 300493
+    Script: |
+      bonus2 bAddRace,RC_Brute,15;
+      bonus2 bAddRace,RC_Player_Doram,15;
+  - Combos:
+      - Combo:
+          - aegis_300608   # 300608
+          - aegis_300487   # 300487
+    Script: |
+      bonus2 bAddSize,Size_Medium,10;
+  - Combos:
+      - Combo:
+          - aegis_300608   # 300608
+          - aegis_300487   # 300487
+          - aegis_300489   # 300489
+    Script: |
+      bonus2 bAddRace,RC_Dragon,15;
+      bonus2 bAddSize,Size_Medium,20;
+  - Combos:
+      - Combo:
+          - aegis_300608   # 300608
+          - aegis_300489   # 300489
+    Script: |
+      bonus2 bAddRace,RC_Brute,15;
+      bonus2 bAddRace,RC_Player_Doram,15;
+  - Combos:
+      - Combo:
+          - Royal_H_Mail_A   # 450421
+          - Royal_H_Manteau_A   # 480510
+    Script: |
+      bonus bDelayrate,-10;
+      bonus bBaseAtk,50;
+  - Combos:
+      - Combo:
+          - Royal_H_Mail_B   # 450422
+          - Royal_H_Manteau_B   # 480511
+    Script: |
+      bonus bAspdRate,10;
+      bonus bMatk,50;
+  - Combos:
+      - Combo:
+          - Royal_H_Boots_A   # 470313
+          - Royal_H_Mail_A   # 450421
+    Script: |
+      bonus bAtkRate,5;
+      bonus bMaxHPrate,5;
+  - Combos:
+      - Combo:
+          - Royal_H_Boots_B   # 470314
+          - Royal_H_Mail_B   # 450422
+    Script: |
+      bonus bMatkRate,5;
+      bonus bMaxSPrate,5;
+  - Combos:
+      - Combo:
+          - Royal_H_Manteau_A   # 480510
+          - Royal_H_Boots_A   # 470313
+    Script: |
+      bonus bShortAtkRate,10;
+      bonus bLongAtkRate,10;
+      bonus bVariableCastrate,-10;
+  - Combos:
+      - Combo:
+          - Royal_H_Manteau_B   # 480511
+          - Royal_H_Boots_B   # 470314
+    Script: |
+      bonus2 bMagicAtkEle,Ele_All,10;
+      bonus bDelayrate,-10;
+  - Combos:
+      - Combo:
+          - Time_Gap_SKE_Book   # 540094
+          - Time_DM_R_Crown_SKE   # 400543
+    Script: |
+      bonus bShortAtkRate,10;
+      bonus2 bSkillAtk,"SKE_SKY_SUN",30;
+      bonus2 bSkillAtk,"SKE_SKY_MOON",30;
+      if (getenchantgrade(EQI_HAND_R)>=ENCHANTGRADE_A && getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A) {
+         .@sum = getequiprefinerycnt(EQI_HAND_R)+getequiprefinerycnt(EQI_HEAD_TOP);
+         bonus2 bSkillAtk,"SKE_STAR_LIGHT_KICK",15;
+         bonus2 bSkillAtk,"SKE_SKY_SUN",.@sum;
+         bonus2 bSkillAtk,"SKE_SKY_MOON",.@sum;
+      }
+  - Combos:
+      - Combo:
+          - Time_Gap_CD_Staff   # 550156
+          - Time_DM_R_Crown_CD   # 400537
+    Script: |
+      bonus2 bSkillAtk,"CD_PNEUMATICUS_PROCELLA",15;
+      bonus2 bSkillAtk,"CD_ARBITRIUM",20;
+      bonus2 bSkillAtk,"CD_ARBITRIUM_ATK",20;
+      if (getenchantgrade(EQI_HAND_R)>=ENCHANTGRADE_A && getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A) {
+         .@sum = getequiprefinerycnt(EQI_HAND_R)+getequiprefinerycnt(EQI_HEAD_TOP);
+         bonus2 bSkillAtk,"CD_PNEUMATICUS_PROCELLA",.@sum;
+         bonus2 bSkillAtk,"CD_ARBITRIUM",.@sum;
+         bonus2 bSkillAtk,"CD_ARBITRIUM_ATK",.@sum;
+      }
+  - Combos:
+      - Combo:
+          - Time_Gap_SH_Foxtail   # 550159
+          - Time_DM_R_Crown_SH   # 400546
+    Script: |
+      bonus bLongAtkRate,15;
+      bonus2 bSkillAtk,"SH_CHUL_HO_SONIC_CLAW",45;
+      if (getenchantgrade(EQI_HAND_R)>=ENCHANTGRADE_A && getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A) {
+         .@sum = getequiprefinerycnt(EQI_HAND_R)+getequiprefinerycnt(EQI_HEAD_TOP);
+         bonus2 bSkillAtk,"SH_CHUL_HO_BATTERING",.@sum;
+         bonus2 bSkillCooldown,"SH_CHUL_HO_SONIC_CLAW",150;
+         if (getskilllv("SH_CHUL_HO_BATTERING") > 0) {
+            bonus4 bAutoSpellOnSkill,"SH_CHUL_HO_SONIC_CLAW","SH_CHUL_HO_BATTERING",getskilllv("SH_CHUL_HO_BATTERING"),1000;
+         }
+      }
+  - Combos:
+      - Combo:
+          - Time_Gap_IQ_Knuckle   # 560072
+          - Time_DM_R_Crown_IQ   # 400538
+    Script: |
+      bonus bLongAtkRate,15;
+      bonus2 bSkillAtk,"IQ_EXPOSION_BLASTER",25;
+      if (getenchantgrade(EQI_HAND_R)>=ENCHANTGRADE_A && getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A) {
+         .@sum = getequiprefinerycnt(EQI_HAND_R)+getequiprefinerycnt(EQI_HEAD_TOP);
+         bonus2 bSkillCooldown,"IQ_EXPOSION_BLASTER",-300;
+         bonus2 bSkillCooldown,"IQ_BLAZING_FLAME_BLAST",-300;
+         bonus2 bSkillAtk,"IQ_EXPOSION_BLASTER",.@sum;
+         bonus2 bSkillAtk,"IQ_BLAZING_FLAME_BLAST",.@sum;
+      }
+  - Combos:
+      - Combo:
+          - Time_Gap_DK_Spear   # 630049
+          - Time_DM_R_Crown_DK   # 400529
+    Script: |
+      bonus bLongAtkRate,15;
+      bonus2 bSkillAtk,"DK_HACKANDSLASHER",20;
+      if (getenchantgrade(EQI_HAND_R)>=ENCHANTGRADE_A && getenchantgrade(EQI_HEAD_TOP)>=ENCHANTGRADE_A) {
+         .@sum = getequiprefinerycnt(EQI_HAND_R)+getequiprefinerycnt(EQI_HEAD_TOP);
+         bonus2 bSkillAtk,"DK_HACKANDSLASHER",.@sum;
+         bonus2 bSkillAtk,"DK_DRAGONIC_PIERCE",15;
+         bonus bCritical,10;
+      }

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 241 - 94
db/re/item_db_equip.yml


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 3022 - 1402
db/re/item_db_etc.yml


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 209 - 123
db/re/item_db_usable.yml


+ 1653 - 0
db/re/item_enchant.yml

@@ -22318,6 +22318,10 @@ Body:
             Materials:
               - Material: S_Enchant_Essence
                 Amount: 5
+          - Item: DK_Soul_DP
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
   - Id: 72
     TargetItems:
       S_IG_Armor: true
@@ -22382,6 +22386,18 @@ Body:
             Materials:
               - Material: S_Enchant_Essence
                 Amount: 5
+          - Item: IG_Soul_IC
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
+          - Item: IG_Soul_RS
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
+          - Item: IG_Soul_IP
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
   - Id: 73
     TargetItems:
       S_SHC_Armor: true
@@ -22450,6 +22466,10 @@ Body:
             Materials:
               - Material: S_Enchant_Essence
                 Amount: 5
+          - Item: SHC_Soul_CS
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
   - Id: 74
     TargetItems:
       S_ABC_Armor: true
@@ -22526,6 +22546,22 @@ Body:
             Materials:
               - Material: S_Enchant_Essence
                 Amount: 5
+          - Item: ABC_Soul_HAS
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
+          - Item: ABC_Soul_CB
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
+          - Item: ABC_Soul_CS
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
+          - Item: ABC_Soul_AF
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
   - Id: 75
     TargetItems:
       S_CD_Armor: true
@@ -22590,6 +22626,10 @@ Body:
             Materials:
               - Material: S_Enchant_Essence
                 Amount: 5
+          - Item: CD_Soul_DF
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
   - Id: 76
     TargetItems:
       S_IQ_Armor: true
@@ -22658,6 +22698,10 @@ Body:
             Materials:
               - Material: S_Enchant_Essence
                 Amount: 5
+          - Item: IQ_Soul_BFB
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
   - Id: 77
     TargetItems:
       S_MT_Armor: true
@@ -22726,6 +22770,18 @@ Body:
             Materials:
               - Material: S_Enchant_Essence
                 Amount: 5
+          - Item: MT_Soul_RS
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
+          - Item: MT_Soul_PS
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
+          - Item: MT_Soul_EC
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
   - Id: 78
     TargetItems:
       S_BO_Armor: true
@@ -22790,6 +22846,14 @@ Body:
             Materials:
               - Material: S_Enchant_Essence
                 Amount: 5
+          - Item: BO_Soul_MP
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
+          - Item: BO_Soul_DE
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
   - Id: 79
     TargetItems:
       S_WH_Armor: true
@@ -22934,6 +22998,10 @@ Body:
             Materials:
               - Material: S_Enchant_Essence
                 Amount: 5
+          - Item: TR_Soul_RW
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
   - Id: 81
     TargetItems:
       S_AG_Armor: true
@@ -23174,6 +23242,14 @@ Body:
             Materials:
               - Material: S_Enchant_Essence
                 Amount: 5
+          - Item: NW_Soul_WS
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
+          - Item: NW_Soul_MF
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
   - Id: 84
     TargetItems:
       S_SH_Armor: true
@@ -23242,6 +23318,14 @@ Body:
             Materials:
               - Material: S_Enchant_Essence
                 Amount: 5
+          - Item: SH_Soul_CHB
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
+          - Item: SH_Soul_HRSP
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
   - Id: 85
     TargetItems:
       S_SS_Armor: true
@@ -23414,6 +23498,18 @@ Body:
             Materials:
               - Material: S_Enchant_Essence
                 Amount: 5
+          - Item: SKE_Soul_SS
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
+          - Item: SKE_Soul_SM
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
+          - Item: SKE_Soul_SLK
+            Materials:
+              - Material: S_Enchant_Essence
+                Amount: 5
   - Id: 87
     TargetItems:
       S_SOA_Armor: true
@@ -32780,3 +32876,1560 @@ Body:
                 Amount: 30
               - Material: EP19_N_P_Crystal
                 Amount: 30
+  - Id: 150
+    TargetItems:
+      Time_Gap_Spear_IG: true
+      Time_Gap_Staff_AG: true
+      Time_Gap_Revolver_NW: true
+      Time_Gap_MT_Axe: true
+      Time_Gap_TR_Ribbon: true
+      Time_Gap_TR_Vilolin: true
+      Time_Gap_HN_Staff: true
+      Time_Gap_BO_Blade: true
+      Time_Gap_SHC_Dagger1: true
+      Time_Gap_SOA_Rod: true
+      Time_Gap_DK_Spear: true
+      Time_Gap_CD_Staff: true
+      Time_Gap_SKE_Book: true
+      Time_Gap_ABC_Dagger: true
+      Time_Gap_SH_Foxtail: true
+      Time_Gap_IQ_Knuckle: true
+    Reset:
+      Chance: 100000
+      Price: 5000000
+      Materials:
+        - Material: Zelunium
+          Amount: 50
+        - Material: Shadowdecon
+          Amount: 50
+        - Material: Etel_Dust
+          Amount: 100
+    Order:
+      - Slot: 3
+      - Slot: 2
+    Slots:
+      - Slot: 3
+        PerfectEnchants:
+          - Item: Bio_Jam_Df2
+            Materials:
+              - Material: Bar_D_St_Rune
+                Amount: 15
+              - Material: Bar_D_Ic_Rune
+                Amount: 15
+              - Material: Time_D_Ma_Rune
+                Amount: 10
+          - Item: Bio_Jam_Es2
+            Materials:
+              - Material: Bar_D_Co_Rune
+                Amount: 15
+              - Material: Bar_D_Po_Rune
+                Amount: 15
+              - Material: Time_D_Ma_Rune
+                Amount: 10
+          - Item: Bio_Jam_Vl2
+            Materials:
+              - Material: Bar_D_Pu_Rune
+                Amount: 15
+              - Material: Bar_D_So_Rune
+                Amount: 15
+              - Material: Time_D_Ma_Rune
+                Amount: 10
+          - Item: Bio_Jam_Eq2
+            Materials:
+              - Material: Bar_D_Fl_Rune
+                Amount: 15
+              - Material: Bar_D_Po_Rune
+                Amount: 15
+              - Material: Time_D_Ma_Rune
+                Amount: 10
+          - Item: Bio_Jam_Hd2
+            Materials:
+              - Material: Bar_D_Ea_Rune
+                Amount: 15
+              - Material: Bar_D_So_Rune
+                Amount: 15
+              - Material: Time_D_Ma_Rune
+                Amount: 10
+      - Slot: 2
+        PerfectEnchants:
+          - Item: Barmund_Flame3
+            Materials:
+              - Material: Energy_Of_Elemental
+                Amount: 10
+              - Material: Time_D_Ma_Rune
+                Amount: 15
+          - Item: Barmund_Ice3
+            Materials:
+              - Material: Energy_Of_Elemental
+                Amount: 10
+              - Material: Time_D_Ma_Rune
+                Amount: 15
+          - Item: Barmund_Plain3
+            Materials:
+              - Material: Energy_Of_Elemental
+                Amount: 10
+              - Material: Time_D_Ma_Rune
+                Amount: 15
+          - Item: Barmund_Death3
+            Materials:
+              - Material: Energy_Of_Elemental
+                Amount: 10
+              - Material: Time_D_Ma_Rune
+                Amount: 15
+          - Item: Barmund_Poison3
+            Materials:
+              - Material: Energy_Of_Elemental
+                Amount: 10
+              - Material: Time_D_Ma_Rune
+                Amount: 15
+  - Id: 151
+    TargetItems:
+      Rising_Circlet: true
+    Reset:
+      Chance: 100000
+      Price: 300000
+    Order:
+      - Slot: 3
+      - Slot: 2
+    Slots:
+      - Slot: 3
+        PerfectEnchants:
+          - Item: Rising_Swordman
+            Materials:
+              - Material: Symposium_Card_RD
+                Amount: 7
+              - Material: Symposium_Card_SB
+                Amount: 7
+          - Item: Rising_Thief
+            Materials:
+              - Material: Symposium_Card_RD
+                Amount: 7
+              - Material: Symposium_Card_SB
+                Amount: 7
+          - Item: Rising_Merchant
+            Materials:
+              - Material: Symposium_Card_RD
+                Amount: 7
+              - Material: Symposium_Card_SB
+                Amount: 7
+          - Item: Rising_Magician
+            Materials:
+              - Material: Symposium_Card_OR
+                Amount: 7
+              - Material: Symposium_Card_BU
+                Amount: 7
+          - Item: Rising_Archer
+            Materials:
+              - Material: Symposium_Card_OR
+                Amount: 7
+              - Material: Symposium_Card_BU
+                Amount: 7
+          - Item: Rising_Acolyte
+            Materials:
+              - Material: Symposium_Card_OR
+                Amount: 7
+              - Material: Symposium_Card_BU
+                Amount: 7
+          - Item: Rising_Ninja
+            Materials:
+              - Material: Symposium_Card_YL
+                Amount: 7
+              - Material: Symposium_Card_PP
+                Amount: 7
+          - Item: Rising_Gunner
+            Materials:
+              - Material: Symposium_Card_YL
+                Amount: 7
+              - Material: Symposium_Card_PP
+                Amount: 7
+          - Item: Rising_TK_Star
+            Materials:
+              - Material: Symposium_Card_YL
+                Amount: 7
+              - Material: Symposium_Card_PP
+                Amount: 7
+          - Item: Rising_TK_Soul
+            Materials:
+              - Material: Symposium_Card_GR
+                Amount: 7
+              - Material: Symposium_Card_BL
+                Amount: 7
+          - Item: Rising_Summoner
+            Materials:
+              - Material: Symposium_Card_GR
+                Amount: 7
+              - Material: Symposium_Card_BL
+                Amount: 7
+          - Item: Rinsing_Novice
+            Materials:
+              - Material: Symposium_Card_GR
+                Amount: 7
+              - Material: Symposium_Card_BL
+                Amount: 7
+      - Slot: 2
+        PerfectEnchants:
+          - Item: Expert_Fighter3
+            Materials:
+              - Material: Symposium_Coin
+                Amount: 5
+          - Item: Expert_Magician3
+            Materials:
+              - Material: Symposium_Coin
+                Amount: 5
+          - Item: Attack_Delay_5
+            Materials:
+              - Material: Symposium_Coin
+                Amount: 5
+          - Item: Hit_Plus5
+            Materials:
+              - Material: Symposium_Coin
+                Amount: 5
+          - Item: Caster5
+            Materials:
+              - Material: Symposium_Coin
+                Amount: 5
+          - Item: Expert_Archer3
+            Materials:
+              - Material: Symposium_Coin
+                Amount: 5
+  - Id: 152
+    TargetItems:
+      Yorscalp_Armor: true
+      Yorscalp_Robe: true
+    Order:
+      - Slot: 3
+      - Slot: 2
+      - Slot: 1
+    Slots:
+      - Slot: 3
+        PerfectEnchants:
+          - Item: Ep21_4_Def
+            Price: 1000000
+            Materials:
+              - Material: Ep21_Armor_E_Stone1
+                Amount: 50
+              - Material: EP19_S_F_1_Extract
+                Amount: 20
+              - Material: EP19_S_F_2_Extract
+                Amount: 20
+              - Material: EP19_Gla_Extract
+                Amount: 20
+              - Material: EP19_S_F_3_Extract
+                Amount: 10
+              - Material: EP20_D_P_Extract
+                Amount: 10
+          - Item: Ep21_4_Mdef
+            Price: 1000000
+            Materials:
+              - Material: Ep21_Armor_E_Stone1
+                Amount: 50
+              - Material: EP19_S_F_1_Extract
+                Amount: 20
+              - Material: EP19_S_F_2_Extract
+                Amount: 20
+              - Material: EP19_Gla_Extract
+                Amount: 20
+              - Material: EP19_S_F_3_Extract
+                Amount: 10
+              - Material: EP20_D_P_Extract
+                Amount: 10
+          - Item: Ep21_4_Warrior
+            Price: 1000000
+            Materials:
+              - Material: Ep21_Armor_E_Stone1
+                Amount: 50
+              - Material: EP19_S_F_1_Extract
+                Amount: 20
+              - Material: EP19_S_F_2_Extract
+                Amount: 20
+              - Material: EP19_Gla_Extract
+                Amount: 20
+              - Material: EP19_S_F_3_Extract
+                Amount: 10
+              - Material: EP20_D_P_Extract
+                Amount: 10
+          - Item: Ep21_4_Archer
+            Price: 1000000
+            Materials:
+              - Material: Ep21_Armor_E_Stone1
+                Amount: 50
+              - Material: EP19_S_F_1_Extract
+                Amount: 20
+              - Material: EP19_S_F_2_Extract
+                Amount: 20
+              - Material: EP19_Gla_Extract
+                Amount: 20
+              - Material: EP19_S_F_3_Extract
+                Amount: 10
+              - Material: EP20_D_P_Extract
+                Amount: 10
+          - Item: Ep21_4_Assassin
+            Price: 1000000
+            Materials:
+              - Material: Ep21_Armor_E_Stone1
+                Amount: 50
+              - Material: EP19_S_F_1_Extract
+                Amount: 20
+              - Material: EP19_S_F_2_Extract
+                Amount: 20
+              - Material: EP19_Gla_Extract
+                Amount: 20
+              - Material: EP19_S_F_3_Extract
+                Amount: 10
+              - Material: EP20_D_P_Extract
+                Amount: 10
+          - Item: Ep21_4_Magician
+            Price: 1000000
+            Materials:
+              - Material: Ep21_Armor_E_Stone1
+                Amount: 50
+              - Material: EP19_S_F_1_Extract
+                Amount: 20
+              - Material: EP19_S_F_2_Extract
+                Amount: 20
+              - Material: EP19_Gla_Extract
+                Amount: 20
+              - Material: EP19_S_F_3_Extract
+                Amount: 10
+              - Material: EP20_D_P_Extract
+                Amount: 10
+      - Slot: 2
+        PerfectEnchants:
+          - Item: Ep21_3_Berserker
+            Price: 2000000
+            Materials:
+              - Material: Ep21_Armor_E_Stone2
+                Amount: 25
+              - Material: EP19_S_F_1_Extract
+                Amount: 30
+              - Material: EP19_S_F_2_Extract
+                Amount: 30
+              - Material: EP19_Gla_Extract
+                Amount: 30
+              - Material: EP19_S_F_3_Extract
+                Amount: 15
+              - Material: EP20_D_P_Extract
+                Amount: 15
+          - Item: Ep21_3_Marksman
+            Price: 2000000
+            Materials:
+              - Material: Ep21_Armor_E_Stone2
+                Amount: 25
+              - Material: EP19_S_F_1_Extract
+                Amount: 30
+              - Material: EP19_S_F_2_Extract
+                Amount: 30
+              - Material: EP19_Gla_Extract
+                Amount: 30
+              - Material: EP19_S_F_3_Extract
+                Amount: 15
+              - Material: EP20_D_P_Extract
+                Amount: 15
+          - Item: Ep21_3_Executioner
+            Price: 2000000
+            Materials:
+              - Material: Ep21_Armor_E_Stone2
+                Amount: 25
+              - Material: EP19_S_F_1_Extract
+                Amount: 30
+              - Material: EP19_S_F_2_Extract
+                Amount: 30
+              - Material: EP19_Gla_Extract
+                Amount: 30
+              - Material: EP19_S_F_3_Extract
+                Amount: 15
+              - Material: EP20_D_P_Extract
+                Amount: 15
+          - Item: Ep21_3_Wizard
+            Price: 2000000
+            Materials:
+              - Material: Ep21_Armor_E_Stone2
+                Amount: 25
+              - Material: EP19_S_F_1_Extract
+                Amount: 30
+              - Material: EP19_S_F_2_Extract
+                Amount: 30
+              - Material: EP19_Gla_Extract
+                Amount: 30
+              - Material: EP19_S_F_3_Extract
+                Amount: 15
+              - Material: EP20_D_P_Extract
+                Amount: 15
+      - Slot: 1
+        PerfectEnchants:
+          - Item: Ep21_2_P_Force
+            Price: 3000000
+            Materials:
+              - Material: Ep21_Armor_E_Stone3
+                Amount: 15
+              - Material: EP19_S_F_1_Extract
+                Amount: 40
+              - Material: EP19_S_F_2_Extract
+                Amount: 40
+              - Material: EP19_Gla_Extract
+                Amount: 40
+              - Material: EP19_S_F_3_Extract
+                Amount: 20
+              - Material: EP20_D_P_Extract
+                Amount: 20
+          - Item: Ep21_2_M_Force
+            Price: 3000000
+            Materials:
+              - Material: Ep21_Armor_E_Stone3
+                Amount: 15
+              - Material: EP19_S_F_1_Extract
+                Amount: 40
+              - Material: EP19_S_F_2_Extract
+                Amount: 40
+              - Material: EP19_Gla_Extract
+                Amount: 40
+              - Material: EP19_S_F_3_Extract
+                Amount: 20
+              - Material: EP20_D_P_Extract
+                Amount: 20
+          - Item: Ep21_2_G_Cooldown
+            Price: 3000000
+            Materials:
+              - Material: Ep21_Armor_E_Stone3
+                Amount: 15
+              - Material: EP19_S_F_1_Extract
+                Amount: 40
+              - Material: EP19_S_F_2_Extract
+                Amount: 40
+              - Material: EP19_Gla_Extract
+                Amount: 40
+              - Material: EP19_S_F_3_Extract
+                Amount: 20
+              - Material: EP20_D_P_Extract
+                Amount: 20
+  - Id: 153
+    TargetItems:
+      Yorscalp_Manteau: true
+      Yorscalp_Muffler: true
+    Order:
+      - Slot: 3
+      - Slot: 2
+      - Slot: 1
+    Slots:
+      - Slot: 3
+        PerfectEnchants:
+          - Item: Ep21_4_Def
+            Price: 1000000
+            Materials:
+              - Material: Ep21_Robe_E_Stone1
+                Amount: 50
+              - Material: EP19_S_F_1_Extract
+                Amount: 20
+              - Material: EP19_S_F_2_Extract
+                Amount: 20
+              - Material: EP19_Gla_Extract
+                Amount: 20
+              - Material: EP19_S_F_3_Extract
+                Amount: 10
+              - Material: EP20_D_P_Extract
+                Amount: 10
+          - Item: Ep21_4_Mdef
+            Price: 1000000
+            Materials:
+              - Material: Ep21_Robe_E_Stone1
+                Amount: 50
+              - Material: EP19_S_F_1_Extract
+                Amount: 20
+              - Material: EP19_S_F_2_Extract
+                Amount: 20
+              - Material: EP19_Gla_Extract
+                Amount: 20
+              - Material: EP19_S_F_3_Extract
+                Amount: 10
+              - Material: EP20_D_P_Extract
+                Amount: 10
+      - Slot: 2
+        PerfectEnchants:
+          - Item: Ep21_3_Speed
+            Price: 2000000
+            Materials:
+              - Material: Ep21_Robe_E_Stone2
+                Amount: 25
+              - Material: EP19_S_F_1_Extract
+                Amount: 30
+              - Material: EP19_S_F_2_Extract
+                Amount: 30
+              - Material: EP19_Gla_Extract
+                Amount: 30
+              - Material: EP19_S_F_3_Extract
+                Amount: 15
+              - Material: EP20_D_P_Extract
+                Amount: 15
+          - Item: Ep21_3_Caster
+            Price: 2000000
+            Materials:
+              - Material: Ep21_Robe_E_Stone2
+                Amount: 25
+              - Material: EP19_S_F_1_Extract
+                Amount: 30
+              - Material: EP19_S_F_2_Extract
+                Amount: 30
+              - Material: EP19_Gla_Extract
+                Amount: 30
+              - Material: EP19_S_F_3_Extract
+                Amount: 15
+              - Material: EP20_D_P_Extract
+                Amount: 15
+      - Slot: 1
+        PerfectEnchants:
+          - Item: Ep21_2_Melee
+            Price: 3000000
+            Materials:
+              - Material: Ep21_Robe_E_Stone3
+                Amount: 15
+              - Material: EP19_S_F_1_Extract
+                Amount: 40
+              - Material: EP19_S_F_2_Extract
+                Amount: 40
+              - Material: EP19_Gla_Extract
+                Amount: 40
+              - Material: EP19_S_F_3_Extract
+                Amount: 20
+              - Material: EP20_D_P_Extract
+                Amount: 20
+          - Item: Ep21_2_Range
+            Price: 3000000
+            Materials:
+              - Material: Ep21_Robe_E_Stone3
+                Amount: 15
+              - Material: EP19_S_F_1_Extract
+                Amount: 40
+              - Material: EP19_S_F_2_Extract
+                Amount: 40
+              - Material: EP19_Gla_Extract
+                Amount: 40
+              - Material: EP19_S_F_3_Extract
+                Amount: 20
+              - Material: EP20_D_P_Extract
+                Amount: 20
+          - Item: Ep21_2_Critical
+            Price: 3000000
+            Materials:
+              - Material: Ep21_Robe_E_Stone3
+                Amount: 15
+              - Material: EP19_S_F_1_Extract
+                Amount: 40
+              - Material: EP19_S_F_2_Extract
+                Amount: 40
+              - Material: EP19_Gla_Extract
+                Amount: 40
+              - Material: EP19_S_F_3_Extract
+                Amount: 20
+              - Material: EP20_D_P_Extract
+                Amount: 20
+          - Item: Ep21_2_Spell
+            Price: 3000000
+            Materials:
+              - Material: Ep21_Robe_E_Stone3
+                Amount: 15
+              - Material: EP19_S_F_1_Extract
+                Amount: 40
+              - Material: EP19_S_F_2_Extract
+                Amount: 40
+              - Material: EP19_Gla_Extract
+                Amount: 40
+              - Material: EP19_S_F_3_Extract
+                Amount: 20
+              - Material: EP20_D_P_Extract
+                Amount: 20
+          - Item: Ep21_2_Ab_All
+            Price: 3000000
+            Materials:
+              - Material: Ep21_Robe_E_Stone3
+                Amount: 15
+              - Material: EP19_S_F_1_Extract
+                Amount: 40
+              - Material: EP19_S_F_2_Extract
+                Amount: 40
+              - Material: EP19_Gla_Extract
+                Amount: 40
+              - Material: EP19_S_F_3_Extract
+                Amount: 20
+              - Material: EP20_D_P_Extract
+                Amount: 20
+  - Id: 154
+    TargetItems:
+      Yorscalp_Boots: true
+      Yorscalp_Shoes: true
+    Order:
+      - Slot: 3
+      - Slot: 2
+      - Slot: 1
+    Slots:
+      - Slot: 3
+        PerfectEnchants:
+          - Item: Ep21_4_Hp
+            Price: 1000000
+            Materials:
+              - Material: Ep21_Shoes_E_Stone1
+                Amount: 50
+              - Material: EP19_S_F_1_Extract
+                Amount: 20
+              - Material: EP19_S_F_2_Extract
+                Amount: 20
+              - Material: EP19_Gla_Extract
+                Amount: 20
+              - Material: EP19_S_F_3_Extract
+                Amount: 10
+              - Material: EP20_D_P_Extract
+                Amount: 10
+          - Item: Ep21_4_Sp
+            Price: 1000000
+            Materials:
+              - Material: Ep21_Shoes_E_Stone1
+                Amount: 50
+              - Material: EP19_S_F_1_Extract
+                Amount: 20
+              - Material: EP19_S_F_2_Extract
+                Amount: 20
+              - Material: EP19_Gla_Extract
+                Amount: 20
+              - Material: EP19_S_F_3_Extract
+                Amount: 10
+              - Material: EP20_D_P_Extract
+                Amount: 10
+          - Item: Ep21_4_Phy_Force
+            Price: 1000000
+            Materials:
+              - Material: Ep21_Shoes_E_Stone1
+                Amount: 50
+              - Material: EP19_S_F_1_Extract
+                Amount: 20
+              - Material: EP19_S_F_2_Extract
+                Amount: 20
+              - Material: EP19_Gla_Extract
+                Amount: 20
+              - Material: EP19_S_F_3_Extract
+                Amount: 10
+              - Material: EP20_D_P_Extract
+                Amount: 10
+          - Item: Ep21_4_Mag_Force
+            Price: 1000000
+            Materials:
+              - Material: Ep21_Shoes_E_Stone1
+                Amount: 50
+              - Material: EP19_S_F_1_Extract
+                Amount: 20
+              - Material: EP19_S_F_2_Extract
+                Amount: 20
+              - Material: EP19_Gla_Extract
+                Amount: 20
+              - Material: EP19_S_F_3_Extract
+                Amount: 10
+              - Material: EP20_D_P_Extract
+                Amount: 10
+      - Slot: 2
+        PerfectEnchants:
+          - Item: Ep21_3_Size_Atk
+            Price: 2000000
+            Materials:
+              - Material: Ep21_Shoes_E_Stone2
+                Amount: 25
+              - Material: EP19_S_F_1_Extract
+                Amount: 30
+              - Material: EP19_S_F_2_Extract
+                Amount: 30
+              - Material: EP19_Gla_Extract
+                Amount: 30
+              - Material: EP19_S_F_3_Extract
+                Amount: 15
+              - Material: EP20_D_P_Extract
+                Amount: 15
+          - Item: Ep21_3_Size_Matk
+            Price: 2000000
+            Materials:
+              - Material: Ep21_Shoes_E_Stone2
+                Amount: 25
+              - Material: EP19_S_F_1_Extract
+                Amount: 30
+              - Material: EP19_S_F_2_Extract
+                Amount: 30
+              - Material: EP19_Gla_Extract
+                Amount: 30
+              - Material: EP19_S_F_3_Extract
+                Amount: 15
+              - Material: EP20_D_P_Extract
+                Amount: 15
+      - Slot: 1
+        PerfectEnchants:
+          - Item: Ep21_2_Ov_Power
+            Price: 3000000
+            Materials:
+              - Material: Ep21_Shoes_E_Stone3
+                Amount: 15
+              - Material: EP19_S_F_1_Extract
+                Amount: 40
+              - Material: EP19_S_F_2_Extract
+                Amount: 40
+              - Material: EP19_Gla_Extract
+                Amount: 40
+              - Material: EP19_S_F_3_Extract
+                Amount: 20
+              - Material: EP20_D_P_Extract
+                Amount: 20
+          - Item: Ep21_2_Fi_Shot
+            Price: 3000000
+            Materials:
+              - Material: Ep21_Shoes_E_Stone3
+                Amount: 15
+              - Material: EP19_S_F_1_Extract
+                Amount: 40
+              - Material: EP19_S_F_2_Extract
+                Amount: 40
+              - Material: EP19_Gla_Extract
+                Amount: 40
+              - Material: EP19_S_F_3_Extract
+                Amount: 20
+              - Material: EP20_D_P_Extract
+                Amount: 20
+          - Item: Ep21_2_Luk_Strike
+            Price: 3000000
+            Materials:
+              - Material: Ep21_Shoes_E_Stone3
+                Amount: 15
+              - Material: EP19_S_F_1_Extract
+                Amount: 40
+              - Material: EP19_S_F_2_Extract
+                Amount: 40
+              - Material: EP19_Gla_Extract
+                Amount: 40
+              - Material: EP19_S_F_3_Extract
+                Amount: 20
+              - Material: EP20_D_P_Extract
+                Amount: 20
+          - Item: Ep21_2_Spl_Buster
+            Price: 3000000
+            Materials:
+              - Material: Ep21_Shoes_E_Stone3
+                Amount: 15
+              - Material: EP19_S_F_1_Extract
+                Amount: 40
+              - Material: EP19_S_F_2_Extract
+                Amount: 40
+              - Material: EP19_Gla_Extract
+                Amount: 40
+              - Material: EP19_S_F_3_Extract
+                Amount: 20
+              - Material: EP20_D_P_Extract
+                Amount: 20
+  - Id: 155
+    TargetItems:
+      Yorscalp_Ring: true
+      Yorscalp_Glove: true
+      Yorscalp_Earring: true
+      Yorscalp_Necklace: true
+    Order:
+      - Slot: 3
+      - Slot: 2
+      - Slot: 1
+    Slots:
+      - Slot: 3
+        PerfectEnchants:
+          - Item: Ep21_4_F_Spirit
+            Price: 1500000
+            Materials:
+              - Material: Ep21_Acc_E_Stone1
+                Amount: 70
+              - Material: EP19_S_F_1_Extract
+                Amount: 35
+              - Material: EP19_S_F_2_Extract
+                Amount: 35
+              - Material: EP19_Gla_Extract
+                Amount: 35
+              - Material: EP19_S_F_3_Extract
+                Amount: 15
+              - Material: EP20_D_P_Extract
+                Amount: 15
+          - Item: Ep21_4_E_Archer
+            Price: 1500000
+            Materials:
+              - Material: Ep21_Acc_E_Stone1
+                Amount: 70
+              - Material: EP19_S_F_1_Extract
+                Amount: 35
+              - Material: EP19_S_F_2_Extract
+                Amount: 35
+              - Material: EP19_Gla_Extract
+                Amount: 35
+              - Material: EP19_S_F_3_Extract
+                Amount: 15
+              - Material: EP20_D_P_Extract
+                Amount: 15
+          - Item: Ep21_4_Fatal
+            Price: 1500000
+            Materials:
+              - Material: Ep21_Acc_E_Stone1
+                Amount: 70
+              - Material: EP19_S_F_1_Extract
+                Amount: 35
+              - Material: EP19_S_F_2_Extract
+                Amount: 35
+              - Material: EP19_Gla_Extract
+                Amount: 35
+              - Material: EP19_S_F_3_Extract
+                Amount: 15
+              - Material: EP20_D_P_Extract
+                Amount: 15
+          - Item: Ep21_4_Sp_Power
+            Price: 1500000
+            Materials:
+              - Material: Ep21_Acc_E_Stone1
+                Amount: 70
+              - Material: EP19_S_F_1_Extract
+                Amount: 35
+              - Material: EP19_S_F_2_Extract
+                Amount: 35
+              - Material: EP19_Gla_Extract
+                Amount: 35
+              - Material: EP19_S_F_3_Extract
+                Amount: 15
+              - Material: EP20_D_P_Extract
+                Amount: 15
+      - Slot: 2
+        PerfectEnchants:
+          - Item: Ep21_3_Tenacity
+            Price: 3000000
+            Materials:
+              - Material: Ep21_Acc_E_Stone2
+                Amount: 35
+              - Material: EP19_S_F_1_Extract
+                Amount: 45
+              - Material: EP19_S_F_2_Extract
+                Amount: 45
+              - Material: EP19_Gla_Extract
+                Amount: 45
+              - Material: EP19_S_F_3_Extract
+                Amount: 25
+              - Material: EP20_D_P_Extract
+                Amount: 25
+          - Item: Ep21_3_M_Archer
+            Price: 3000000
+            Materials:
+              - Material: Ep21_Acc_E_Stone2
+                Amount: 35
+              - Material: EP19_S_F_1_Extract
+                Amount: 45
+              - Material: EP19_S_F_2_Extract
+                Amount: 45
+              - Material: EP19_Gla_Extract
+                Amount: 45
+              - Material: EP19_S_F_3_Extract
+                Amount: 25
+              - Material: EP20_D_P_Extract
+                Amount: 25
+          - Item: Ep21_3_Acute
+            Price: 3000000
+            Materials:
+              - Material: Ep21_Acc_E_Stone2
+                Amount: 35
+              - Material: EP19_S_F_1_Extract
+                Amount: 45
+              - Material: EP19_S_F_2_Extract
+                Amount: 45
+              - Material: EP19_Gla_Extract
+                Amount: 45
+              - Material: EP19_S_F_3_Extract
+                Amount: 25
+              - Material: EP20_D_P_Extract
+                Amount: 25
+          - Item: Ep21_3_M_Eessence
+            Price: 3000000
+            Materials:
+              - Material: Ep21_Acc_E_Stone2
+                Amount: 35
+              - Material: EP19_S_F_1_Extract
+                Amount: 45
+              - Material: EP19_S_F_2_Extract
+                Amount: 45
+              - Material: EP19_Gla_Extract
+                Amount: 45
+              - Material: EP19_S_F_3_Extract
+                Amount: 25
+              - Material: EP20_D_P_Extract
+                Amount: 25
+      - Slot: 1
+        PerfectEnchants:
+          - Item: Ep21_2_Phy_Power
+            Price: 4500000
+            Materials:
+              - Material: Ep21_Acc_E_Stone3
+                Amount: 20
+              - Material: EP19_S_F_1_Extract
+                Amount: 65
+              - Material: EP19_S_F_2_Extract
+                Amount: 65
+              - Material: EP19_Gla_Extract
+                Amount: 65
+              - Material: EP19_S_F_3_Extract
+                Amount: 35
+              - Material: EP20_D_P_Extract
+                Amount: 35
+          - Item: Ep21_2_Mag_Power
+            Price: 4500000
+            Materials:
+              - Material: Ep21_Acc_E_Stone3
+                Amount: 20
+              - Material: EP19_S_F_1_Extract
+                Amount: 65
+              - Material: EP19_S_F_2_Extract
+                Amount: 65
+              - Material: EP19_Gla_Extract
+                Amount: 65
+              - Material: EP19_S_F_3_Extract
+                Amount: 35
+              - Material: EP20_D_P_Extract
+                Amount: 35
+  - Id: 156
+    TargetItems:
+      Yorscalp_P_Circlet: true
+      Yorscalp_M_Circlet: true
+    Reset:
+      Chance: 100000
+      Materials:
+        - Material: Zelunium
+          Amount: 20
+        - Material: Shadowdecon
+          Amount: 20
+        - Material: Yorscalp_Spirit
+          Amount: 20
+    Order:
+      - Slot: 3
+      - Slot: 2
+      - Slot: 1
+    Slots:
+      - Slot: 3
+        Price: 300000
+        Materials:
+          - Material: Yorscalp_Serpent
+          - Material: Yorscalp_Symbol
+            Amount: 5
+          - Material: Yorscalp_Spirit
+            Amount: 10
+        Enchants:
+          - Enchantgrade: 0
+            Items:
+              - Item: Strength1
+                Chance: 11500
+              - Item: Strength2
+                Chance: 8000
+              - Item: Strength3
+                Chance: 3500
+              - Item: Strength4
+                Chance: 1500
+              - Item: Strength5
+                Chance: 500
+              - Item: Inteligence1
+                Chance: 11500
+              - Item: Inteligence2
+                Chance: 8000
+              - Item: Inteligence3
+                Chance: 3500
+              - Item: Inteligence4
+                Chance: 1500
+              - Item: Inteligence5
+                Chance: 500
+              - Item: Vitality1
+                Chance: 11500
+              - Item: Vitality2
+                Chance: 8000
+              - Item: Vitality3
+                Chance: 3500
+              - Item: Vitality4
+                Chance: 1500
+              - Item: Vitality5
+                Chance: 500
+              - Item: Luck1
+                Chance: 11500
+              - Item: Luck2
+                Chance: 8000
+              - Item: Luck3
+                Chance: 3500
+              - Item: Luck4
+                Chance: 1500
+              - Item: Luck5
+                Chance: 500
+          - Enchantgrade: 1
+            Items:
+              - Item: Strength1
+                Chance: 11500
+              - Item: Strength2
+                Chance: 8000
+              - Item: Strength3
+                Chance: 3500
+              - Item: Strength4
+                Chance: 1500
+              - Item: Strength5
+                Chance: 500
+              - Item: Inteligence1
+                Chance: 11500
+              - Item: Inteligence2
+                Chance: 8000
+              - Item: Inteligence3
+                Chance: 3500
+              - Item: Inteligence4
+                Chance: 1500
+              - Item: Inteligence5
+                Chance: 500
+              - Item: Vitality1
+                Chance: 11500
+              - Item: Vitality2
+                Chance: 8000
+              - Item: Vitality3
+                Chance: 3500
+              - Item: Vitality4
+                Chance: 1500
+              - Item: Vitality5
+                Chance: 500
+              - Item: Luck1
+                Chance: 11500
+              - Item: Luck2
+                Chance: 8000
+              - Item: Luck3
+                Chance: 3500
+              - Item: Luck4
+                Chance: 1500
+              - Item: Luck5
+                Chance: 500
+          - Enchantgrade: 2
+            Items:
+              - Item: Strength1
+                Chance: 11500
+              - Item: Strength2
+                Chance: 8000
+              - Item: Strength3
+                Chance: 3500
+              - Item: Strength4
+                Chance: 1500
+              - Item: Strength5
+                Chance: 500
+              - Item: Inteligence1
+                Chance: 11500
+              - Item: Inteligence2
+                Chance: 8000
+              - Item: Inteligence3
+                Chance: 3500
+              - Item: Inteligence4
+                Chance: 1500
+              - Item: Inteligence5
+                Chance: 500
+              - Item: Vitality1
+                Chance: 11500
+              - Item: Vitality2
+                Chance: 8000
+              - Item: Vitality3
+                Chance: 3500
+              - Item: Vitality4
+                Chance: 1500
+              - Item: Vitality5
+                Chance: 500
+              - Item: Luck1
+                Chance: 11500
+              - Item: Luck2
+                Chance: 8000
+              - Item: Luck3
+                Chance: 3500
+              - Item: Luck4
+                Chance: 1500
+              - Item: Luck5
+                Chance: 500
+          - Enchantgrade: 3
+            Items:
+              - Item: Strength1
+                Chance: 11500
+              - Item: Strength2
+                Chance: 8000
+              - Item: Strength3
+                Chance: 3500
+              - Item: Strength4
+                Chance: 1500
+              - Item: Strength5
+                Chance: 500
+              - Item: Inteligence1
+                Chance: 11500
+              - Item: Inteligence2
+                Chance: 8000
+              - Item: Inteligence3
+                Chance: 3500
+              - Item: Inteligence4
+                Chance: 1500
+              - Item: Inteligence5
+                Chance: 500
+              - Item: Vitality1
+                Chance: 11500
+              - Item: Vitality2
+                Chance: 8000
+              - Item: Vitality3
+                Chance: 3500
+              - Item: Vitality4
+                Chance: 1500
+              - Item: Vitality5
+                Chance: 500
+              - Item: Luck1
+                Chance: 11500
+              - Item: Luck2
+                Chance: 8000
+              - Item: Luck3
+                Chance: 3500
+              - Item: Luck4
+                Chance: 1500
+              - Item: Luck5
+                Chance: 500
+          - Enchantgrade: 4
+            Items:
+              - Item: Strength1
+                Chance: 11500
+              - Item: Strength2
+                Chance: 8000
+              - Item: Strength3
+                Chance: 3500
+              - Item: Strength4
+                Chance: 1500
+              - Item: Strength5
+                Chance: 500
+              - Item: Inteligence1
+                Chance: 11500
+              - Item: Inteligence2
+                Chance: 8000
+              - Item: Inteligence3
+                Chance: 3500
+              - Item: Inteligence4
+                Chance: 1500
+              - Item: Inteligence5
+                Chance: 500
+              - Item: Vitality1
+                Chance: 11500
+              - Item: Vitality2
+                Chance: 8000
+              - Item: Vitality3
+                Chance: 3500
+              - Item: Vitality4
+                Chance: 1500
+              - Item: Vitality5
+                Chance: 500
+              - Item: Luck1
+                Chance: 11500
+              - Item: Luck2
+                Chance: 8000
+              - Item: Luck3
+                Chance: 3500
+              - Item: Luck4
+                Chance: 1500
+              - Item: Luck5
+                Chance: 500
+      - Slot: 2
+        Price: 300000
+        Materials:
+          - Material: Yorscalp_Serpent
+            Amount: 2
+          - Material: Yorscalp_Symbol
+            Amount: 10
+          - Material: Yorscalp_Spirit
+            Amount: 20
+        Enchants:
+          - Enchantgrade: 0
+            Items:
+              - Item: Yorscalp_Str1
+                Chance: 11400
+              - Item: Yorscalp_Str2
+                Chance: 6000
+              - Item: Yorscalp_Str3
+                Chance: 2500
+              - Item: Yorscalp_Str4
+                Chance: 100
+              - Item: Yorscalp_Int1
+                Chance: 11400
+              - Item: Yorscalp_Int2
+                Chance: 6000
+              - Item: Yorscalp_Int3
+                Chance: 2500
+              - Item: Yorscalp_Int4
+                Chance: 100
+              - Item: Yorscalp_Smart1
+                Chance: 11400
+              - Item: Yorscalp_Smart2
+                Chance: 6000
+              - Item: Yorscalp_Smart3
+                Chance: 2500
+              - Item: Yorscalp_Smart4
+                Chance: 100
+              - Item: Yorscalp_Speed1
+                Chance: 11400
+              - Item: Yorscalp_Speed2
+                Chance: 6000
+              - Item: Yorscalp_Speed3
+                Chance: 2500
+              - Item: Yorscalp_Speed4
+                Chance: 100
+              - Item: Yorscalp_Def1
+                Chance: 11400
+              - Item: Yorscalp_Def2
+                Chance: 6000
+              - Item: Yorscalp_Def3
+                Chance: 2500
+              - Item: Yorscalp_Def4
+                Chance: 100
+          - Enchantgrade: 1
+            Items:
+              - Item: Yorscalp_Str1
+                Chance: 11400
+              - Item: Yorscalp_Str2
+                Chance: 6000
+              - Item: Yorscalp_Str3
+                Chance: 2500
+              - Item: Yorscalp_Str4
+                Chance: 100
+              - Item: Yorscalp_Int1
+                Chance: 11400
+              - Item: Yorscalp_Int2
+                Chance: 6000
+              - Item: Yorscalp_Int3
+                Chance: 2500
+              - Item: Yorscalp_Int4
+                Chance: 100
+              - Item: Yorscalp_Smart1
+                Chance: 11400
+              - Item: Yorscalp_Smart2
+                Chance: 6000
+              - Item: Yorscalp_Smart3
+                Chance: 2500
+              - Item: Yorscalp_Smart4
+                Chance: 100
+              - Item: Yorscalp_Speed1
+                Chance: 11400
+              - Item: Yorscalp_Speed2
+                Chance: 6000
+              - Item: Yorscalp_Speed3
+                Chance: 2500
+              - Item: Yorscalp_Speed4
+                Chance: 100
+              - Item: Yorscalp_Def1
+                Chance: 11400
+              - Item: Yorscalp_Def2
+                Chance: 6000
+              - Item: Yorscalp_Def3
+                Chance: 2500
+              - Item: Yorscalp_Def4
+                Chance: 100
+          - Enchantgrade: 2
+            Items:
+              - Item: Yorscalp_Str1
+                Chance: 11400
+              - Item: Yorscalp_Str2
+                Chance: 6000
+              - Item: Yorscalp_Str3
+                Chance: 2500
+              - Item: Yorscalp_Str4
+                Chance: 100
+              - Item: Yorscalp_Int1
+                Chance: 11400
+              - Item: Yorscalp_Int2
+                Chance: 6000
+              - Item: Yorscalp_Int3
+                Chance: 2500
+              - Item: Yorscalp_Int4
+                Chance: 100
+              - Item: Yorscalp_Smart1
+                Chance: 11400
+              - Item: Yorscalp_Smart2
+                Chance: 6000
+              - Item: Yorscalp_Smart3
+                Chance: 2500
+              - Item: Yorscalp_Smart4
+                Chance: 100
+              - Item: Yorscalp_Speed1
+                Chance: 11400
+              - Item: Yorscalp_Speed2
+                Chance: 6000
+              - Item: Yorscalp_Speed3
+                Chance: 2500
+              - Item: Yorscalp_Speed4
+                Chance: 100
+              - Item: Yorscalp_Def1
+                Chance: 11400
+              - Item: Yorscalp_Def2
+                Chance: 6000
+              - Item: Yorscalp_Def3
+                Chance: 2500
+              - Item: Yorscalp_Def4
+                Chance: 100
+          - Enchantgrade: 3
+            Items:
+              - Item: Yorscalp_Str1
+                Chance: 11400
+              - Item: Yorscalp_Str2
+                Chance: 6000
+              - Item: Yorscalp_Str3
+                Chance: 2500
+              - Item: Yorscalp_Str4
+                Chance: 100
+              - Item: Yorscalp_Int1
+                Chance: 11400
+              - Item: Yorscalp_Int2
+                Chance: 6000
+              - Item: Yorscalp_Int3
+                Chance: 2500
+              - Item: Yorscalp_Int4
+                Chance: 100
+              - Item: Yorscalp_Smart1
+                Chance: 11400
+              - Item: Yorscalp_Smart2
+                Chance: 6000
+              - Item: Yorscalp_Smart3
+                Chance: 2500
+              - Item: Yorscalp_Smart4
+                Chance: 100
+              - Item: Yorscalp_Speed1
+                Chance: 11400
+              - Item: Yorscalp_Speed2
+                Chance: 6000
+              - Item: Yorscalp_Speed3
+                Chance: 2500
+              - Item: Yorscalp_Speed4
+                Chance: 100
+              - Item: Yorscalp_Def1
+                Chance: 11400
+              - Item: Yorscalp_Def2
+                Chance: 6000
+              - Item: Yorscalp_Def3
+                Chance: 2500
+              - Item: Yorscalp_Def4
+                Chance: 100
+          - Enchantgrade: 4
+            Items:
+              - Item: Yorscalp_Str1
+                Chance: 11400
+              - Item: Yorscalp_Str2
+                Chance: 6000
+              - Item: Yorscalp_Str3
+                Chance: 2500
+              - Item: Yorscalp_Str4
+                Chance: 100
+              - Item: Yorscalp_Int1
+                Chance: 11400
+              - Item: Yorscalp_Int2
+                Chance: 6000
+              - Item: Yorscalp_Int3
+                Chance: 2500
+              - Item: Yorscalp_Int4
+                Chance: 100
+              - Item: Yorscalp_Smart1
+                Chance: 11400
+              - Item: Yorscalp_Smart2
+                Chance: 6000
+              - Item: Yorscalp_Smart3
+                Chance: 2500
+              - Item: Yorscalp_Smart4
+                Chance: 100
+              - Item: Yorscalp_Speed1
+                Chance: 11400
+              - Item: Yorscalp_Speed2
+                Chance: 6000
+              - Item: Yorscalp_Speed3
+                Chance: 2500
+              - Item: Yorscalp_Speed4
+                Chance: 100
+              - Item: Yorscalp_Def1
+                Chance: 11400
+              - Item: Yorscalp_Def2
+                Chance: 6000
+              - Item: Yorscalp_Def3
+                Chance: 2500
+              - Item: Yorscalp_Def4
+                Chance: 100
+      - Slot: 1
+        PerfectEnchants:
+          - Item: Arbiter_Warrant
+            Price: 5000000
+            Materials:
+              - Material: Yorscalp_Serpent
+                Amount: 20
+              - Material: Yorscalp_Symbol
+                Amount: 100
+              - Material: Yorscalp_Spirit
+                Amount: 200
+          - Item: Bailiff_Warrant
+            Price: 5000000
+            Materials:
+              - Material: Yorscalp_Serpent
+                Amount: 20
+              - Material: Yorscalp_Symbol
+                Amount: 100
+              - Material: Yorscalp_Spirit
+                Amount: 200
+  - Id: 157
+    TargetItems:
+      Royal_H_Mail_A: true
+      Royal_H_Mail_B: true
+    Order:
+      - Slot: 3
+      - Slot: 2
+      - Slot: 1
+    Slots:
+      - Slot: 3
+        PerfectEnchants:
+          - Item: Hunt_Ev_State
+            Price: 100000
+            Materials:
+              - Material: E_Hunter_Bdg
+                Amount: 10
+              - Material: E_Hunting_Tag
+                Amount: 30
+      - Slot: 2
+        PerfectEnchants:
+          - Item: Hunt_Ev_Atk
+            Price: 150000
+            Materials:
+              - Material: E_Hunter_Bdg
+                Amount: 15
+              - Material: E_Hunting_Tag
+                Amount: 45
+          - Item: Hunt_Ev_Matk
+            Price: 150000
+            Materials:
+              - Material: E_Hunter_Bdg
+                Amount: 15
+              - Material: E_Hunting_Tag
+                Amount: 45
+      - Slot: 1
+        PerfectEnchants:
+          - Item: Hunt_Ev_Warrior
+            Price: 300000
+            Materials:
+              - Material: E_Hunter_Bdg
+                Amount: 30
+              - Material: E_Hunting_Tag
+                Amount: 90
+          - Item: Hunt_Ev_Archer
+            Price: 300000
+            Materials:
+              - Material: E_Hunter_Bdg
+                Amount: 30
+              - Material: E_Hunting_Tag
+                Amount: 90
+          - Item: Hunt_Ev_Assassin
+            Price: 300000
+            Materials:
+              - Material: E_Hunter_Bdg
+                Amount: 30
+              - Material: E_Hunting_Tag
+                Amount: 90
+          - Item: Hunt_Ev_Magician
+            Price: 300000
+            Materials:
+              - Material: E_Hunter_Bdg
+                Amount: 30
+              - Material: E_Hunting_Tag
+                Amount: 90
+  - Id: 158
+    TargetItems:
+      Royal_H_Manteau_A: true
+      Royal_H_Manteau_B: true
+    Order:
+      - Slot: 3
+      - Slot: 2
+    Slots:
+      - Slot: 3
+        PerfectEnchants:
+          - Item: Hunt_Ev_Speed
+            Price: 150000
+            Materials:
+              - Material: E_Hunter_Bdg
+                Amount: 15
+              - Material: E_Hunting_Tag
+                Amount: 45
+          - Item: Hunt_Ev_Caster
+            Price: 150000
+            Materials:
+              - Material: E_Hunter_Bdg
+                Amount: 15
+              - Material: E_Hunting_Tag
+                Amount: 45
+      - Slot: 2
+        PerfectEnchants:
+          - Item: Hunt_Ev_Melee
+            Price: 300000
+            Materials:
+              - Material: E_Hunter_Bdg
+                Amount: 30
+              - Material: E_Hunting_Tag
+                Amount: 90
+          - Item: Hunt_Ev_Range
+            Price: 300000
+            Materials:
+              - Material: E_Hunter_Bdg
+                Amount: 30
+              - Material: E_Hunting_Tag
+                Amount: 90
+          - Item: Hunt_Ev_Critical
+            Price: 300000
+            Materials:
+              - Material: E_Hunter_Bdg
+                Amount: 30
+              - Material: E_Hunting_Tag
+                Amount: 90
+          - Item: Hunt_Ev_Spell
+            Price: 300000
+            Materials:
+              - Material: E_Hunter_Bdg
+                Amount: 30
+              - Material: E_Hunting_Tag
+                Amount: 90
+  - Id: 159
+    TargetItems:
+      Royal_H_Boots_A: true
+      Royal_H_Boots_B: true
+    Order:
+      - Slot: 3
+      - Slot: 2
+    Slots:
+      - Slot: 3
+        PerfectEnchants:
+          - Item: Hunt_Ev_Hp
+            Price: 150000
+            Materials:
+              - Material: E_Hunter_Bdg
+                Amount: 15
+              - Material: E_Hunting_Tag
+                Amount: 45
+          - Item: Hunt_Ev_Sp
+            Price: 150000
+            Materials:
+              - Material: E_Hunter_Bdg
+                Amount: 15
+              - Material: E_Hunting_Tag
+                Amount: 45
+      - Slot: 2
+        PerfectEnchants:
+          - Item: Hunt_Ev_P_Force
+            Price: 300000
+            Materials:
+              - Material: E_Hunter_Bdg
+                Amount: 30
+              - Material: E_Hunting_Tag
+                Amount: 90
+          - Item: Hunt_Ev_M_Force
+            Price: 300000
+            Materials:
+              - Material: E_Hunter_Bdg
+                Amount: 30
+              - Material: E_Hunting_Tag
+                Amount: 90
+          - Item: Hunt_Ev_Robust
+            Price: 300000
+            Materials:
+              - Material: E_Hunter_Bdg
+                Amount: 30
+              - Material: E_Hunting_Tag
+                Amount: 90
+          - Item: Hunt_Ev_F_Cast
+            Price: 300000
+            Materials:
+              - Material: E_Hunter_Bdg
+                Amount: 30
+              - Material: E_Hunting_Tag
+                Amount: 90

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 308 - 281
db/re/item_group_db.yml


+ 79 - 0
db/re/item_packages.yml

@@ -980,3 +980,82 @@ Body:
       - Group: 1
         Items:
           - Item: C_Chaos_Emerald
+  - Item: Summer_Select_Box1
+    Groups:
+      - Group: 0
+        Items:
+          - Item: C_Gold_Paeonia
+      - Group: 1
+        Items:
+          - Item: C_Red_Paeonia
+  - Item: Summer_Select_Box2
+    Groups:
+      - Group: 0
+        Items:
+          - Item: C_Buoyant_Parasol_B
+      - Group: 1
+        Items:
+          - Item: C_Buoyant_Parasol_R
+  - Item: Summer_Select_Box3
+    Groups:
+      - Group: 0
+        Items:
+          - Item: C_Blue_Sunbed
+      - Group: 1
+        Items:
+          - Item: C_Green_Sunbed
+  - Item: Summer_Select_Box4
+    Groups:
+      - Group: 0
+        Items:
+          - Item: PurpleStar_Foot_Robe
+          - Item: C_Summer_Beach
+      - Group: 1
+        Items:
+          - Item: YellowStar_Foot_Robe
+          - Item: C_Summer_Beach
+  - Item: CLB_SS_Box
+    Groups:
+      - Group: 0
+        Items:
+          - Item: C_CLB_SS_DF
+      - Group: 1
+        Items:
+          - Item: C_CLB_SS_EA
+      - Group: 2
+        Items:
+          - Item: C_CLB_SS_LL
+      - Group: 3
+        Items:
+          - Item: C_CLB_SS_LT
+  - Item: Enriched_Refine_Box
+    Groups:
+      - Group: 0
+        Items:
+          - Item: Enriched_Elunium
+            Amount: 100
+      - Group: 1
+        Items:
+          - Item: Enriched_Oridecon
+            Amount: 100
+  - Item: Henriched_Refine_Box
+    Groups:
+      - Group: 0
+        Items:
+          - Item: HD_Elunium
+            Amount: 26
+      - Group: 1
+        Items:
+          - Item: HD_Oridecon
+            Amount: 26
+#  - Item: Calender_Costume_Box
+#    Groups:
+#      - Group: 0
+#        Items:
+#          - Item: C_berry_Prince_Crown
+#      - Group: 1
+#        Items:
+#          - Item: C_Loki_Nidhogg_Hat
+#      - Group: 2
+#        Items:
+#          - Item: C_Firinto_Scarf

+ 3420 - 6
db/re/item_reform.yml

@@ -9390,12 +9390,12 @@ Body:
         RandomOptionGroup: Group_0
         ClearSlots: true
         RemoveEnchantgrade: true
-      - BaseItem: Card_Coin
-        MaximumRefine: 0
-        ResultItem: R_Recycle_Card
-        RandomOptionGroup: Group_0
-        ClearSlots: true
-        RemoveEnchantgrade: true
+#     - BaseItem: Card_Coin   # mistake ?
+#       MaximumRefine: 0
+#       ResultItem: R_Recycle_Card
+#       RandomOptionGroup: Group_0
+#       ClearSlots: true
+#       RemoveEnchantgrade: true
       - BaseItem: Adulter_F_A_Bow
         Materials:
           - Material: Imperfect_Rune
@@ -11719,3 +11719,3417 @@ Body:
             Amount: 5
         ResultItem: Gaebolg_Shoes
         ChangeRefine: 1
+  - Item: Reform_4th_Skill_Shadow
+    BaseItems:
+      - BaseItem: S_SHC_EC_Earring
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_SHC_EC_Earring
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_SHC_EC_Pendant
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_SHC_EC_Pendant
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_SHC_SI_Armor
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_SHC_SI_Armor
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_SHC_SI_Shoes
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_SHC_SI_Shoes
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_WH_GS_Earring
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_WH_GS_Earring
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_WH_GS_Pendant
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_WH_GS_Pendant
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_WH_CB_Armor
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_WH_CB_Armor
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_WH_CB_Shoes
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_WH_CB_Shoes
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_SS_SR_Earring
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_SS_SR_Earring
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_SS_SR_Pendant
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_SS_SR_Pendant
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_SS_KR_Armor
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_SS_KR_Armor
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_SS_KR_Shoes
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_SS_KR_Shoes
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_DK_SS_Earring
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_DK_SS_Earring
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_DK_SS_Pendant
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_DK_SS_Pendant
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_DK_HS_Armor
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_DK_HS_Armor
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_DK_HS_Shoes
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_DK_HS_Shoes
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_TR_RW_Earring
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_TR_RW_Earring
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_TR_RW_Pendant
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_TR_RW_Pendant
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_TR_MF_Armor
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_TR_MF_Armor
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_TR_MF_Shoes
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_TR_MF_Shoes
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_NW_SO_Earring
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_NW_SO_Earring
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_NW_SO_Pendant
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_NW_SO_Pendant
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_NW_WB_Armor
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_NW_WB_Armor
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_NW_WB_Shoes
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_NW_WB_Shoes
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_MT_MS_Earring
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_MT_MS_Earring
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_MT_MS_Pendant
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_MT_MS_Pendant
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_MT_PR_Armor
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_MT_PR_Armor
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_MT_PR_Shoes
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_MT_PR_Shoes
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_BO_EP_Earring
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_BO_EP_Earring
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_BO_EP_Pendant
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_BO_EP_Pendant
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_BO_MD_Armor
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_BO_MD_Armor
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_BO_MD_Shoes
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_BO_MD_Shoes
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_HN_VJ_Earring
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_HN_VJ_Earring
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_HN_VJ_Pendant
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_HN_VJ_Pendant
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_HN_TB_Armor
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_HN_TB_Armor
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_HN_TB_Shoes
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_HN_TB_Shoes
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_IG_OC_Earring
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_IG_OC_Earring
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_IG_OC_Pendant
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_IG_OC_Pendant
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_IG_RF_Armor
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_IG_RF_Armor
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_IG_RF_Shoes
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_IG_RF_Shoes
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_IQ_EB_Earring
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_IQ_EB_Earring
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_IQ_EB_Pendant
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_IQ_EB_Pendant
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_IQ_BFB_Armor
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_IQ_BFB_Armor
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_IQ_BFB_Shoes
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_IQ_BFB_Shoes
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_SU_CS_Earring
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_SU_CS_Earring
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_SU_CS_Pendant
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_SU_CS_Pendant
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_SU_HB_Armor
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_SU_HB_Armor
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_SU_HB_Shoes
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_SU_HB_Shoes
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_CD_AR_Earring
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_CD_AR_Earring
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_CD_AR_Pendant
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_CD_AR_Pendant
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_CD_DF_Armor
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_CD_DF_Armor
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_CD_DF_Shoes
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_CD_DF_Shoes
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_AG_FB_Earring
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_AG_FB_Earring
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_AG_FB_Pendant
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_AG_FB_Pendant
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_AG_SH_Armor
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_AG_SH_Armor
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_AG_SH_Shoes
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_AG_SH_Shoes
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_SKE_NS_Earring
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_SKE_NS_Earring
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_SKE_NS_Pendant
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_SKE_NS_Pendant
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_SKE_SB_Armor
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_SKE_SB_Armor
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+      - BaseItem: S_SKE_SB_Shoes
+        MaximumRefine: 10
+        Materials:
+          - Material: S_Enchant_Essence
+            Amount: 2
+        ResultItem: S_SKE_SB_Shoes
+        #RandomOptionGroup: NSU # TODO: translate to our group names
+  - Item: Time_Gap_Refine_Hammer
+    BaseItems:
+      - BaseItem: Time_Gap_Spear_IG
+        MinimumRefine: 9
+        MaximumRefine: 11
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 12
+          - Material: Time_D_Ma_Rune
+            Amount: 2
+        ResultItem: Time_Gap_Spear_IG
+        ChangeRefine: 1
+      - BaseItem: Time_Gap_Staff_AG
+        MinimumRefine: 9
+        MaximumRefine: 11
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 12
+          - Material: Time_D_Ma_Rune
+            Amount: 2
+        ResultItem: Time_Gap_Staff_AG
+        ChangeRefine: 1
+      - BaseItem: Time_Gap_Revolver_NW
+        MinimumRefine: 9
+        MaximumRefine: 11
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 12
+          - Material: Time_D_Ma_Rune
+            Amount: 2
+        ResultItem: Time_Gap_Revolver_NW
+        ChangeRefine: 1
+      - BaseItem: Time_Gap_MT_Axe
+        MinimumRefine: 9
+        MaximumRefine: 11
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 12
+          - Material: Time_D_Ma_Rune
+            Amount: 2
+        ResultItem: Time_Gap_MT_Axe
+        ChangeRefine: 1
+      - BaseItem: Time_Gap_TR_Ribbon
+        MinimumRefine: 9
+        MaximumRefine: 11
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 12
+          - Material: Time_D_Ma_Rune
+            Amount: 2
+        ResultItem: Time_Gap_TR_Ribbon
+        ChangeRefine: 1
+      - BaseItem: Time_Gap_TR_Vilolin
+        MinimumRefine: 9
+        MaximumRefine: 11
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 12
+          - Material: Time_D_Ma_Rune
+            Amount: 2
+        ResultItem: Time_Gap_TR_Vilolin
+        ChangeRefine: 1
+      - BaseItem: Time_Gap_HN_Staff
+        MinimumRefine: 9
+        MaximumRefine: 11
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 12
+          - Material: Time_D_Ma_Rune
+            Amount: 2
+        ResultItem: Time_Gap_HN_Staff
+        ChangeRefine: 1
+      - BaseItem: Time_Gap_BO_Blade
+        MinimumRefine: 9
+        MaximumRefine: 11
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 12
+          - Material: Time_D_Ma_Rune
+            Amount: 2
+        ResultItem: Time_Gap_BO_Blade
+        ChangeRefine: 1
+      - BaseItem: Time_Gap_SHC_Dagger1
+        MinimumRefine: 9
+        MaximumRefine: 11
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 12
+          - Material: Time_D_Ma_Rune
+            Amount: 2
+        ResultItem: Time_Gap_SHC_Dagger1
+        ChangeRefine: 1
+      - BaseItem: Time_Gap_SHC_Dagger2
+        MinimumRefine: 9
+        MaximumRefine: 11
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 12
+          - Material: Time_D_Ma_Rune
+            Amount: 2
+        ResultItem: Time_Gap_SHC_Dagger2
+        ChangeRefine: 1
+      - BaseItem: Time_Gap_SOA_Rod
+        MinimumRefine: 9
+        MaximumRefine: 11
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 12
+          - Material: Time_D_Ma_Rune
+            Amount: 2
+        ResultItem: Time_Gap_SOA_Rod
+        ChangeRefine: 1
+      - BaseItem: Time_Gap_DK_Spear
+        MinimumRefine: 9
+        MaximumRefine: 11
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 12
+          - Material: Time_D_Ma_Rune
+            Amount: 2
+        ResultItem: Time_Gap_DK_Spear
+        ChangeRefine: 1
+      - BaseItem: Time_Gap_CD_Staff
+        MinimumRefine: 9
+        MaximumRefine: 11
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 12
+          - Material: Time_D_Ma_Rune
+            Amount: 2
+        ResultItem: Time_Gap_CD_Staff
+        ChangeRefine: 1
+      - BaseItem: Time_Gap_SKE_Book
+        MinimumRefine: 9
+        MaximumRefine: 11
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 12
+          - Material: Time_D_Ma_Rune
+            Amount: 2
+        ResultItem: Time_Gap_SKE_Book
+        ChangeRefine: 1
+      - BaseItem: Time_Gap_ABC_Dagger
+        MinimumRefine: 9
+        MaximumRefine: 11
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 12
+          - Material: Time_D_Ma_Rune
+            Amount: 2
+        ResultItem: Time_Gap_ABC_Dagger
+        ChangeRefine: 1
+      - BaseItem: Time_Gap_IQ_Knuckle
+        MinimumRefine: 9
+        MaximumRefine: 11
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 12
+          - Material: Time_D_Ma_Rune
+            Amount: 2
+        ResultItem: Time_Gap_IQ_Knuckle
+        ChangeRefine: 1
+      - BaseItem: Time_Gap_SH_Foxtail
+        MinimumRefine: 9
+        MaximumRefine: 11
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 12
+          - Material: Time_D_Ma_Rune
+            Amount: 2
+        ResultItem: Time_Gap_SH_Foxtail
+        ChangeRefine: 1
+  - Item: Yorscalp_Refin_Hammer
+    BaseItems:
+      - BaseItem: Yorscalp_Armor
+        MinimumRefine: 10
+        MaximumRefine: 10
+        Materials:
+          - Material: Zelunium
+            Amount: 200
+          - Material: Yorscalp_Serpent
+            Amount: 10
+          - Material: Yorscalp_Symbol
+            Amount: 50
+          - Material: Yorscalp_Spirit
+            Amount: 100
+        ResultItem: Yorscalp_Armor
+        ChangeRefine: 1
+      - BaseItem: Yorscalp_Robe
+        MinimumRefine: 10
+        MaximumRefine: 10
+        Materials:
+          - Material: Zelunium
+            Amount: 200
+          - Material: Yorscalp_Serpent
+            Amount: 10
+          - Material: Yorscalp_Symbol
+            Amount: 50
+          - Material: Yorscalp_Spirit
+            Amount: 100
+        ResultItem: Yorscalp_Robe
+        ChangeRefine: 1
+      - BaseItem: Yorscalp_Manteau
+        MinimumRefine: 10
+        MaximumRefine: 10
+        Materials:
+          - Material: Zelunium
+            Amount: 200
+          - Material: Yorscalp_Serpent
+            Amount: 10
+          - Material: Yorscalp_Symbol
+            Amount: 50
+          - Material: Yorscalp_Spirit
+            Amount: 100
+        ResultItem: Yorscalp_Manteau
+        ChangeRefine: 1
+      - BaseItem: Yorscalp_Muffler
+        MinimumRefine: 10
+        MaximumRefine: 10
+        Materials:
+          - Material: Zelunium
+            Amount: 200
+          - Material: Yorscalp_Serpent
+            Amount: 10
+          - Material: Yorscalp_Symbol
+            Amount: 50
+          - Material: Yorscalp_Spirit
+            Amount: 100
+        ResultItem: Yorscalp_Muffler
+        ChangeRefine: 1
+      - BaseItem: Yorscalp_Boots
+        MinimumRefine: 10
+        MaximumRefine: 10
+        Materials:
+          - Material: Zelunium
+            Amount: 200
+          - Material: Yorscalp_Serpent
+            Amount: 10
+          - Material: Yorscalp_Symbol
+            Amount: 50
+          - Material: Yorscalp_Spirit
+            Amount: 100
+        ResultItem: Yorscalp_Boots
+        ChangeRefine: 1
+      - BaseItem: Yorscalp_Shoes
+        MinimumRefine: 10
+        MaximumRefine: 10
+        Materials:
+          - Material: Zelunium
+            Amount: 200
+          - Material: Yorscalp_Serpent
+            Amount: 10
+          - Material: Yorscalp_Symbol
+            Amount: 50
+          - Material: Yorscalp_Spirit
+            Amount: 100
+        ResultItem: Yorscalp_Shoes
+        ChangeRefine: 1
+      - BaseItem: Yorscalp_P_Circlet
+        MinimumRefine: 10
+        MaximumRefine: 10
+        Materials:
+          - Material: Zelunium
+            Amount: 200
+          - Material: Yorscalp_Serpent
+            Amount: 10
+          - Material: Yorscalp_Symbol
+            Amount: 50
+          - Material: Yorscalp_Spirit
+            Amount: 100
+        ResultItem: Yorscalp_P_Circlet
+        ChangeRefine: 1
+      - BaseItem: Yorscalp_M_Circlet
+        MinimumRefine: 10
+        MaximumRefine: 10
+        Materials:
+          - Material: Zelunium
+            Amount: 200
+          - Material: Yorscalp_Serpent
+            Amount: 10
+          - Material: Yorscalp_Symbol
+            Amount: 50
+          - Material: Yorscalp_Spirit
+            Amount: 100
+        ResultItem: Yorscalp_M_Circlet
+        ChangeRefine: 1
+  - Item: Yorscalp_Scroll_A
+    BaseItems:
+      - BaseItem: Gaebolg_Armor
+        Materials:
+          - Material: Ep21_Wigner_Ticket
+            Amount: 200
+          - Material: Yorscalp_Serpent
+            Amount: 10
+          - Material: Yorscalp_Symbol
+            Amount: 50
+          - Material: Yorscalp_Spirit
+            Amount: 200
+        ResultItem: Yorscalp_Armor
+      - BaseItem: Gaebolg_Robe
+        Materials:
+          - Material: Ep21_Wigner_Ticket
+            Amount: 200
+          - Material: Yorscalp_Serpent
+            Amount: 10
+          - Material: Yorscalp_Symbol
+            Amount: 50
+          - Material: Yorscalp_Spirit
+            Amount: 200
+        ResultItem: Yorscalp_Robe
+      - BaseItem: Gaebolg_Manteau
+        Materials:
+          - Material: Ep21_Wigner_Ticket
+            Amount: 200
+          - Material: Yorscalp_Serpent
+            Amount: 10
+          - Material: Yorscalp_Symbol
+            Amount: 50
+          - Material: Yorscalp_Spirit
+            Amount: 200
+        ResultItem: Yorscalp_Manteau
+      - BaseItem: Gaebolg_Muffler
+        Materials:
+          - Material: Ep21_Wigner_Ticket
+            Amount: 200
+          - Material: Yorscalp_Serpent
+            Amount: 10
+          - Material: Yorscalp_Symbol
+            Amount: 50
+          - Material: Yorscalp_Spirit
+            Amount: 200
+        ResultItem: Yorscalp_Muffler
+      - BaseItem: Gaebolg_Boots
+        Materials:
+          - Material: Ep21_Wigner_Ticket
+            Amount: 200
+          - Material: Yorscalp_Serpent
+            Amount: 10
+          - Material: Yorscalp_Symbol
+            Amount: 50
+          - Material: Yorscalp_Spirit
+            Amount: 200
+        ResultItem: Yorscalp_Boots
+      - BaseItem: Gaebolg_Shoes
+        Materials:
+          - Material: Ep21_Wigner_Ticket
+            Amount: 200
+          - Material: Yorscalp_Serpent
+            Amount: 10
+          - Material: Yorscalp_Symbol
+            Amount: 50
+          - Material: Yorscalp_Spirit
+            Amount: 200
+        ResultItem: Yorscalp_Shoes
+      - BaseItem: Gaebolg_Earring
+        Materials:
+          - Material: Ep21_Wigner_Ticket
+            Amount: 200
+          - Material: Yorscalp_Serpent
+            Amount: 10
+          - Material: Yorscalp_Symbol
+            Amount: 50
+          - Material: Yorscalp_Spirit
+            Amount: 200
+        ResultItem: Yorscalp_Earring
+      - BaseItem: Gaebolg_Glove
+        Materials:
+          - Material: Ep21_Wigner_Ticket
+            Amount: 200
+          - Material: Yorscalp_Serpent
+            Amount: 10
+          - Material: Yorscalp_Symbol
+            Amount: 50
+          - Material: Yorscalp_Spirit
+            Amount: 200
+        ResultItem: Yorscalp_Glove
+      - BaseItem: Gaebolg_Ring
+        Materials:
+          - Material: Ep21_Wigner_Ticket
+            Amount: 200
+          - Material: Yorscalp_Serpent
+            Amount: 10
+          - Material: Yorscalp_Symbol
+            Amount: 50
+          - Material: Yorscalp_Spirit
+            Amount: 200
+        ResultItem: Yorscalp_Ring
+      - BaseItem: Gaebolg_Necklace
+        Materials:
+          - Material: Ep21_Wigner_Ticket
+            Amount: 200
+          - Material: Yorscalp_Serpent
+            Amount: 10
+          - Material: Yorscalp_Symbol
+            Amount: 50
+          - Material: Yorscalp_Spirit
+            Amount: 200
+        ResultItem: Yorscalp_Necklace
+  - Item: Plus7_Refine_NPC
+    BaseItems:
+      - BaseItem: F_Ein_1HGUN
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: F_Ein_Weapon_Hammer
+        ResultItem: F_Ein_1HGUN
+        ChangeRefine: 7
+      - BaseItem: F_Ein_BHBOW
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: F_Ein_Weapon_Hammer
+        ResultItem: F_Ein_BHBOW
+        ChangeRefine: 7
+      - BaseItem: F_Ein_BHHuuma
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: F_Ein_Weapon_Hammer
+        ResultItem: F_Ein_BHHuuma
+        ChangeRefine: 7
+      - BaseItem: F_Ein_BHSTAFF
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: F_Ein_Weapon_Hammer
+        ResultItem: F_Ein_BHSTAFF
+        ChangeRefine: 7
+      - BaseItem: F_Ein_BHAXE
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: F_Ein_Weapon_Hammer
+        ResultItem: F_Ein_BHAXE
+        ChangeRefine: 7
+      - BaseItem: F_Ein_BHKATAR
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: F_Ein_Weapon_Hammer
+        ResultItem: F_Ein_BHKATAR
+        ChangeRefine: 7
+      - BaseItem: F_Ein_BHSWORD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: F_Ein_Weapon_Hammer
+        ResultItem: F_Ein_BHSWORD
+        ChangeRefine: 7
+      - BaseItem: F_Ein_1HHAMMER
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: F_Ein_Weapon_Hammer
+        ResultItem: F_Ein_1HHAMMER
+        ChangeRefine: 7
+      - BaseItem: F_Ein_1HWHIP
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: F_Ein_Weapon_Hammer
+        ResultItem: F_Ein_1HWHIP
+        ChangeRefine: 7
+      - BaseItem: F_Ein_1HLUTE
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: F_Ein_Weapon_Hammer
+        ResultItem: F_Ein_1HLUTE
+        ChangeRefine: 7
+      - BaseItem: F_Ein_1HKNUCK
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: F_Ein_Weapon_Hammer
+        ResultItem: F_Ein_1HKNUCK
+        ChangeRefine: 7
+      - BaseItem: F_Ein_1HWAND
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: F_Ein_Weapon_Hammer
+        ResultItem: F_Ein_1HWAND
+        ChangeRefine: 7
+      - BaseItem: F_Ein_1H_Foxtail
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: F_Ein_Weapon_Hammer
+        ResultItem: F_Ein_1H_Foxtail
+        ChangeRefine: 7
+      - BaseItem: F_Ein_1HBOOK
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: F_Ein_Weapon_Hammer
+        ResultItem: F_Ein_1HBOOK
+        ChangeRefine: 7
+      - BaseItem: F_Ein_1HSPEAR
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: F_Ein_Weapon_Hammer
+        ResultItem: F_Ein_1HSPEAR
+        ChangeRefine: 7
+      - BaseItem: F_Ein_1HDAGGER2
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: F_Ein_Weapon_Hammer
+        ResultItem: F_Ein_1HDAGGER2
+        ChangeRefine: 7
+      - BaseItem: F_Ein_1HDAGGER
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: F_Ein_Weapon_Hammer
+        ResultItem: F_Ein_1HDAGGER
+        ChangeRefine: 7
+      - BaseItem: F_Ein_1HMAGGER
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: F_Ein_Weapon_Hammer
+        ResultItem: F_Ein_1HMAGGER
+        ChangeRefine: 7
+      - BaseItem: F_Ein_1HSWORD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: F_Ein_Weapon_Hammer
+        ResultItem: F_Ein_1HSWORD
+        ChangeRefine: 7
+      - BaseItem: Thanos_Sword_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Thanos_Refine_Hammer
+        ResultItem: Thanos_Sword_AD
+        ChangeRefine: 7
+      - BaseItem: Thanos_Dagger_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Thanos_Refine_Hammer
+        ResultItem: Thanos_Dagger_AD
+        ChangeRefine: 7
+      - BaseItem: Thanos_Spear_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Thanos_Refine_Hammer
+        ResultItem: Thanos_Spear_AD
+        ChangeRefine: 7
+      - BaseItem: Thanos_Staff_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Thanos_Refine_Hammer
+        ResultItem: Thanos_Staff_AD
+        ChangeRefine: 7
+      - BaseItem: Thanos_Knuckle_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Thanos_Refine_Hammer
+        ResultItem: Thanos_Knuckle_AD
+        ChangeRefine: 7
+      - BaseItem: Thanos_Violin_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Thanos_Refine_Hammer
+        ResultItem: Thanos_Violin_AD
+        ChangeRefine: 7
+      - BaseItem: Thanos_Whip_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Thanos_Refine_Hammer
+        ResultItem: Thanos_Whip_AD
+        ChangeRefine: 7
+      - BaseItem: Thanos_Hammer_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Thanos_Refine_Hammer
+        ResultItem: Thanos_Hammer_AD
+        ChangeRefine: 7
+      - BaseItem: Thanos_TSword_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Thanos_Refine_Hammer
+        ResultItem: Thanos_TSword_AD
+        ChangeRefine: 7
+      - BaseItem: Thanos_Katar_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Thanos_Refine_Hammer
+        ResultItem: Thanos_Katar_AD
+        ChangeRefine: 7
+      - BaseItem: Thanos_Axe_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Thanos_Refine_Hammer
+        ResultItem: Thanos_Axe_AD
+        ChangeRefine: 7
+      - BaseItem: Thanos_Rod_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Thanos_Refine_Hammer
+        ResultItem: Thanos_Rod_AD
+        ChangeRefine: 7
+      - BaseItem: Thanos_Bow_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Thanos_Refine_Hammer
+        ResultItem: Thanos_Bow_AD
+        ChangeRefine: 7
+      - BaseItem: Thanos_Helm_1
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Thanos_Refine_Hammer
+        ResultItem: Thanos_Helm_1
+        ChangeRefine: 7
+      - BaseItem: Thanos_Helm1_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Thanos_Refine_Hammer
+        ResultItem: Thanos_Helm1_LT
+        ChangeRefine: 7
+      - BaseItem: Thanos_Helm_2
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Thanos_Refine_Hammer
+        ResultItem: Thanos_Helm_2
+        ChangeRefine: 7
+      - BaseItem: Thanos_Helm2_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Thanos_Refine_Hammer
+        ResultItem: Thanos_Helm2_LT
+        ChangeRefine: 7
+      - BaseItem: Thanos_Helm_3
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Thanos_Refine_Hammer
+        ResultItem: Thanos_Helm_3
+        ChangeRefine: 7
+      - BaseItem: Thanos_Helm3_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Thanos_Refine_Hammer
+        ResultItem: Thanos_Helm3_LT
+        ChangeRefine: 7
+      - BaseItem: Thanos_Helm_4
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Thanos_Refine_Hammer
+        ResultItem: Thanos_Helm_4
+        ChangeRefine: 7
+      - BaseItem: Thanos_Helm4_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Thanos_Refine_Hammer
+        ResultItem: Thanos_Helm4_LT
+        ChangeRefine: 7
+      - BaseItem: Sagittarius_DiademK_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Helm_Hammer
+        ResultItem: Sagittarius_DiademK_LT
+        ChangeRefine: 7
+      - BaseItem: Scorpio_Diadem_K_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Helm_Hammer
+        ResultItem: Scorpio_Diadem_K_LT
+        ChangeRefine: 7
+      - BaseItem: Large_Sorcerer_Crown_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Helm_Hammer
+        ResultItem: Large_Sorcerer_Crown_LT
+        ChangeRefine: 7
+      - BaseItem: Stripe_Hat_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Helm_Hammer
+        ResultItem: Stripe_Hat_LT
+        ChangeRefine: 7
+      - BaseItem: Phantom_Cap_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Helm_Hammer
+        ResultItem: Phantom_Cap_LT
+        ChangeRefine: 7
+      - BaseItem: Ignis_CapK_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Helm_Hammer
+        ResultItem: Ignis_CapK_LT
+        ChangeRefine: 7
+      - BaseItem: Clock_Casket_RD_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Helm_Hammer
+        ResultItem: Clock_Casket_RD_LT
+        ChangeRefine: 7
+      - BaseItem: Beam_Claymore_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Weapon_Hammer
+        ResultItem: Beam_Claymore_AD
+        ChangeRefine: 7
+      - BaseItem: Meuchler_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Weapon_Hammer
+        ResultItem: Meuchler_AD
+        ChangeRefine: 7
+      - BaseItem: Blasti_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Weapon_Hammer
+        ResultItem: Blasti_AD
+        ChangeRefine: 7
+      - BaseItem: Virtual_Bow_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Weapon_Hammer
+        ResultItem: Virtual_Bow_AD
+        ChangeRefine: 7
+      - BaseItem: MH_P89_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Weapon_Hammer
+        ResultItem: MH_P89_AD
+        ChangeRefine: 7
+      - BaseItem: AC_B44_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Weapon_Hammer
+        ResultItem: AC_B44_AD
+        ChangeRefine: 7
+      - BaseItem: HR_S55_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Weapon_Hammer
+        ResultItem: HR_S55_AD
+        ChangeRefine: 7
+      - BaseItem: Burning_Knuckle_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Weapon_Hammer
+        ResultItem: Burning_Knuckle_AD
+        ChangeRefine: 7
+      - BaseItem: Cannon_Rapier_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Weapon_Hammer
+        ResultItem: Cannon_Rapier_AD
+        ChangeRefine: 7
+      - BaseItem: Saphir_Hall_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Weapon_Hammer
+        ResultItem: Saphir_Hall_AD
+        ChangeRefine: 7
+      - BaseItem: Ultio_Spes_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Weapon_Hammer
+        ResultItem: Ultio_Spes_AD
+        ChangeRefine: 7
+      - BaseItem: Rutilus_Stick_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Weapon_Hammer
+        ResultItem: Rutilus_Stick_AD
+        ChangeRefine: 7
+      - BaseItem: ElectricFox_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Weapon_Hammer
+        ResultItem: ElectricFox_AD
+        ChangeRefine: 7
+      - BaseItem: Circuit_Board_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Weapon_Hammer
+        ResultItem: Circuit_Board_AD
+        ChangeRefine: 7
+      - BaseItem: Kuroiro_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Weapon_Hammer
+        ResultItem: Kuroiro_AD
+        ChangeRefine: 7
+      - BaseItem: Boost_Lance_AD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: OS_Weapon_Hammer
+        ResultItem: Boost_Lance_AD
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Gladius
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Gladius
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Ligula
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Ligula
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Orbis
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Orbis
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Mucro
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Mucro
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Sol
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Sol
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Jana
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Jana
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Hasta
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Hasta
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Codex
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Codex
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Liber
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Liber
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Radius
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Radius
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Scipio
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Scipio
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Crystallum
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Crystallum
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Ramus
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Ramus
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Planta
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Planta
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Ferrum
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Ferrum
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Caestus
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Caestus
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Ungula
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Ungula
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Chorda
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Chorda
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Flagellum
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Flagellum
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Clava
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Clava
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Pendulus
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Pendulus
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Ensis
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Ensis
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Manus
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Manus
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Ascia
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Ascia
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Catapulta
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Catapulta
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Termes
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Termes
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Virga
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Virga
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Tenon
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Tenon
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Nervus
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Nervus
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Foramen
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Foramen
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Penet
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Penet
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Veloci
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Veloci
+        ChangeRefine: 7
+      - BaseItem: Poenitentia_Ruina
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenitentia_Ruina
+        ChangeRefine: 7
+      - BaseItem: Poenetentia_Vatia
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenetentia_Vatia
+        ChangeRefine: 7
+      - BaseItem: Poenetentia_Attendo
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenetentia_Attendo
+        ChangeRefine: 7
+      - BaseItem: Poenetentia_Dilacero
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Poenitentia_Hammer
+        ResultItem: Poenetentia_Dilacero
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_M_Book
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_M_Book
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_P_Book
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_P_Book
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Bible
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Bible
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Ribbon
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Ribbon
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Harp
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Harp
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Claw
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Claw
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_C_Rope
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_C_Rope
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Violin
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Violin
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_A_Bow
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_A_Bow
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Ballista
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Ballista
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Knuckle
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Knuckle
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Wand
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Wand
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Rod
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Rod
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_T_Staff
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_T_Staff
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_C_Bow
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_C_Bow
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Cakram
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Cakram
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Hall
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Hall
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Dagger
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Dagger
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Katar
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Katar
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Lapier
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Lapier
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Mace
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Mace
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_G_Sword
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_G_Sword
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Axe
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Axe
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_G_Spear
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_G_Spear
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Lance
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Lance
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_T_Sword
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_T_Sword
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Humma
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Humma
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_C_Humma
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_C_Humma
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Revolver
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Revolver
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Rifle
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Rifle
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Gatling
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Gatling
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Launcher
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Launcher
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Moon_B
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Moon_B
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Star_B
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Star_B
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_S_Stick
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_S_Stick
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_D_Wand
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_D_Wand
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_F_Wand
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_F_Wand
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_Shotgun
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_Shotgun
+        ChangeRefine: 7
+      - BaseItem: Vivatus_F_F_model
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Vivatus_Weapon_Hammer
+        ResultItem: Vivatus_F_F_model
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_WL1
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_WL1
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_WL2
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_WL2
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_SR1
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_SR1
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_SR2
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_SR2
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_AB1
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_AB1
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_AB2
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_AB2
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_SC1
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_SC1
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_SC2
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_SC2
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_RA1
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_RA1
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_RA2
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_RA2
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_LG1
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_LG1
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_LG2
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_LG2
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_GC1
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_GC1
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_GC2
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_GC2
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_SO1
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_SO1
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_SO2
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_SO2
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_RK1
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_RK1
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_RK2
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_RK2
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_WM1
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_WM1
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_WM2
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_WM2
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_NC1
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_NC1
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_NC2
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_NC2
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_GN1
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_GN1
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_GN2
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_GN2
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_KO1
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_KO1
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_KO2
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_KO2
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_RL1
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_RL1
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_RL2
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_RL2
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_SP1
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_SP1
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_SP2
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_SP2
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_SJ1
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_SJ1
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_SJ2
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_SJ2
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_SU1
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_SU1
+        ChangeRefine: 7
+      - BaseItem: Viva_Adul_Hat_SU2
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Helm_Of_Faith_Hammer
+        ResultItem: Viva_Adul_Hat_SU2
+        ChangeRefine: 7
+      - BaseItem: Precision_Bow
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Precision_Bow
+        ChangeRefine: 7
+      - BaseItem: Precision_Fist
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Precision_Fist
+        ChangeRefine: 7
+      - BaseItem: Precision_Fuuma
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Precision_Fuuma
+        ChangeRefine: 7
+      - BaseItem: Precision_Gatling
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Precision_Gatling
+        ChangeRefine: 7
+      - BaseItem: Precision_Grenade
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Precision_Grenade
+        ChangeRefine: 7
+      - BaseItem: Precision_Lute
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Precision_Lute
+        ChangeRefine: 7
+      - BaseItem: Precision_Pistol
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Precision_Pistol
+        ChangeRefine: 7
+      - BaseItem: Precision_Rifle
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Precision_Rifle
+        ChangeRefine: 7
+      - BaseItem: Precision_Shotgun
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Precision_Shotgun
+        ChangeRefine: 7
+      - BaseItem: Precision_Whip
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Precision_Whip
+        ChangeRefine: 7
+      - BaseItem: Solid_Claymore
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Solid_Claymore
+        ChangeRefine: 7
+      - BaseItem: Solid_Dagger
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Solid_Dagger
+        ChangeRefine: 7
+      - BaseItem: Solid_Edge
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Solid_Edge
+        ChangeRefine: 7
+      - BaseItem: Solid_Manual
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Solid_Manual
+        ChangeRefine: 7
+      - BaseItem: Solid_Rod
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Solid_Rod
+        ChangeRefine: 7
+      - BaseItem: Solid_Spear
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Solid_Spear
+        ChangeRefine: 7
+      - BaseItem: Solid_Staff
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Solid_Staff
+        ChangeRefine: 7
+      - BaseItem: Solid_Wand
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Solid_Wand
+        ChangeRefine: 7
+      - BaseItem: Wicked_Axe
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Wicked_Axe
+        ChangeRefine: 7
+      - BaseItem: Wicked_Blade
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Wicked_Blade
+        ChangeRefine: 7
+      - BaseItem: Wicked_Book
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Wicked_Book
+        ChangeRefine: 7
+      - BaseItem: Wicked_Cross
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Wicked_Cross
+        ChangeRefine: 7
+      - BaseItem: Wicked_Dagger
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Wicked_Dagger
+        ChangeRefine: 7
+      - BaseItem: Wicked_Edge
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Wicked_Edge
+        ChangeRefine: 7
+      - BaseItem: Wicked_Katar
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Wicked_Katar
+        ChangeRefine: 7
+      - BaseItem: Wicked_Plant
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Clock_Tower_W_Hammer
+        ResultItem: Wicked_Plant
+        ChangeRefine: 7
+      - BaseItem: Glacier_Helm_1
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Isgard_Crown_Hammer
+        ResultItem: Glacier_Helm_1
+        ChangeRefine: 7
+      - BaseItem: Glacier_Helm_2
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Isgard_Crown_Hammer
+        ResultItem: Glacier_Helm_2
+        ChangeRefine: 7
+      - BaseItem: Glacier_Helm_3
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Isgard_Crown_Hammer
+        ResultItem: Glacier_Helm_3
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_DK
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_DK
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_IG
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_IG
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_AG
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_AG
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_EM
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_EM
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_CD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_CD
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_IQ
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_IQ
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_MT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_MT
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_BO
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_BO
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_SHC
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_SHC
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_ABC
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_ABC
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_WH
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_WH
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_TR
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_TR
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_SS
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_SS
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_SKE
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_SKE
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_SOA
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_SOA
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_HN
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_HN
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_SH
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_SH
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_NW
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_NW
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_NW2
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_NW2
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_NW3
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_NW3
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_NW4
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_NW4
+        ChangeRefine: 7
+      - BaseItem: GoodnEvil_Circlet_NW5
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: GoodnEvil_Helm_Hammer
+        ResultItem: GoodnEvil_Circlet_NW5
+        ChangeRefine: 7
+      - BaseItem: Punish_Hall
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Punish_Hall
+        ChangeRefine: 7
+      - BaseItem: Saint_Bringer
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Saint_Bringer
+        ChangeRefine: 7
+      - BaseItem: Humma_Brilliance
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Humma_Brilliance
+        ChangeRefine: 7
+      - BaseItem: Luppiter_Spear
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Luppiter_Spear
+        ChangeRefine: 7
+      - BaseItem: Holy_Raise_Spear
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Holy_Raise_Spear
+        ChangeRefine: 7
+      - BaseItem: Lightforce_Foxtail_Wand
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Lightforce_Foxtail_Wand
+        ChangeRefine: 7
+      - BaseItem: Shining_Light_Katar
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Shining_Light_Katar
+        ChangeRefine: 7
+      - BaseItem: Angel_Wing_Bow
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Angel_Wing_Bow
+        ChangeRefine: 7
+      - BaseItem: Guardian_Saber
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Guardian_Saber
+        ChangeRefine: 7
+      - BaseItem: Holy_Light_Dagger
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Holy_Light_Dagger
+        ChangeRefine: 7
+      - BaseItem: Light_Power_Harp
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Light_Power_Harp
+        ChangeRefine: 7
+      - BaseItem: Light_Power_Spark
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Light_Power_Spark
+        ChangeRefine: 7
+      - BaseItem: Lighting_Splatter
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Lighting_Splatter
+        ChangeRefine: 7
+      - BaseItem: Justice_Bomber
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Justice_Bomber
+        ChangeRefine: 7
+      - BaseItem: Last_Dawn
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Last_Dawn
+        ChangeRefine: 7
+      - BaseItem: Devil_Hunter
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Devil_Hunter
+        ChangeRefine: 7
+      - BaseItem: Road_Of_Glory
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Road_Of_Glory
+        ChangeRefine: 7
+      - BaseItem: Victory_Sword
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Victory_Sword
+        ChangeRefine: 7
+      - BaseItem: Divine_Buster
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Divine_Buster
+        ChangeRefine: 7
+      - BaseItem: Orign_Of_Life
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Orign_Of_Life
+        ChangeRefine: 7
+      - BaseItem: Destiny_Staff
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Destiny_Staff
+        ChangeRefine: 7
+      - BaseItem: Blessed_Bible
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Blessed_Bible
+        ChangeRefine: 7
+      - BaseItem: Soul_Liberator
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Justice_Weapon_Hammer
+        ResultItem: Soul_Liberator
+        ChangeRefine: 7
+      - BaseItem: Demonic_Claw
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: Demonic_Claw
+        ChangeRefine: 7
+      - BaseItem: Sealed_Bible
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: Sealed_Bible
+        ChangeRefine: 7
+      - BaseItem: Darkness_Tablet
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: Darkness_Tablet
+        ChangeRefine: 7
+      - BaseItem: Devil_Wing_Staff
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: Devil_Wing_Staff
+        ChangeRefine: 7
+      - BaseItem: Doom_Bible
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: Doom_Bible
+        ChangeRefine: 7
+      - BaseItem: Soul_Harvest
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: Soul_Harvest
+        ChangeRefine: 7
+      - BaseItem: The_Reaper
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: The_Reaper
+        ChangeRefine: 7
+      - BaseItem: Underworld_Knife
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: Underworld_Knife
+        ChangeRefine: 7
+      - BaseItem: Devil_Cursed_Sword
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: Devil_Cursed_Sword
+        ChangeRefine: 7
+      - BaseItem: Dark_Angel_Ray_Bow
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: Dark_Angel_Ray_Bow
+        ChangeRefine: 7
+      - BaseItem: Crime_Violine
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: Crime_Violine
+        ChangeRefine: 7
+      - BaseItem: Crime_Whip
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: Crime_Whip
+        ChangeRefine: 7
+      - BaseItem: RG_5649
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: RG_5649
+        ChangeRefine: 7
+      - BaseItem: Devil_L_Launcher
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: Devil_L_Launcher
+        ChangeRefine: 7
+      - BaseItem: Screaming_Rifle
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: Screaming_Rifle
+        ChangeRefine: 7
+      - BaseItem: Devils_Bullet
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: Devils_Bullet
+        ChangeRefine: 7
+      - BaseItem: Outlaw_Cursed_Shotgun
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: Outlaw_Cursed_Shotgun
+        ChangeRefine: 7
+      - BaseItem: Blood_Rapier
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: Blood_Rapier
+        ChangeRefine: 7
+      - BaseItem: Destruction_Axe
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: Destruction_Axe
+        ChangeRefine: 7
+      - BaseItem: Devil_Claw
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: Devil_Claw
+        ChangeRefine: 7
+      - BaseItem: Execution_Great_Sword
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: Execution_Great_Sword
+        ChangeRefine: 7
+      - BaseItem: Devil_Guardian_Sword
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: Devil_Guardian_Sword
+        ChangeRefine: 7
+      - BaseItem: Darkness_Foxtail_Model
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Injustice_Weapon_Hammer
+        ResultItem: Darkness_Foxtail_Model
+        ChangeRefine: 7
+      - BaseItem: FateSin_Boots_CD
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: FateSin_Boots_Hammer
+        ResultItem: FateSin_Boots_CD
+        ChangeRefine: 7
+      - BaseItem: FateSin_Boots_IQ
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: FateSin_Boots_Hammer
+        ResultItem: FateSin_Boots_IQ
+        ChangeRefine: 7
+      - BaseItem: FateSin_Boots_SOA
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: FateSin_Boots_Hammer
+        ResultItem: FateSin_Boots_SOA
+        ChangeRefine: 7
+      - BaseItem: FateSin_Boots_BO
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: FateSin_Boots_Hammer
+        ResultItem: FateSin_Boots_BO
+        ChangeRefine: 7
+      - BaseItem: FateSin_Boots_DK
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: FateSin_Boots_Hammer
+        ResultItem: FateSin_Boots_DK
+        ChangeRefine: 7
+      - BaseItem: FateSin_Boots_SH
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: FateSin_Boots_Hammer
+        ResultItem: FateSin_Boots_SH
+        ChangeRefine: 7
+      - BaseItem: FateSin_Boots_EM
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: FateSin_Boots_Hammer
+        ResultItem: FateSin_Boots_EM
+        ChangeRefine: 7
+      - BaseItem: FateSin_Boots_WH
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: FateSin_Boots_Hammer
+        ResultItem: FateSin_Boots_WH
+        ChangeRefine: 7
+      - BaseItem: FateSin_Boots_SKE
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: FateSin_Boots_Hammer
+        ResultItem: FateSin_Boots_SKE
+        ChangeRefine: 7
+      - BaseItem: FateSin_Boots_MT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: FateSin_Boots_Hammer
+        ResultItem: FateSin_Boots_MT
+        ChangeRefine: 7
+      - BaseItem: FateSin_Boots_SHC
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: FateSin_Boots_Hammer
+        ResultItem: FateSin_Boots_SHC
+        ChangeRefine: 7
+      - BaseItem: FateSin_Boots_SS
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: FateSin_Boots_Hammer
+        ResultItem: FateSin_Boots_SS
+        ChangeRefine: 7
+      - BaseItem: FateSin_Boots_ABC
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: FateSin_Boots_Hammer
+        ResultItem: FateSin_Boots_ABC
+        ChangeRefine: 7
+      - BaseItem: FateSin_Boots_TR
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: FateSin_Boots_Hammer
+        ResultItem: FateSin_Boots_TR
+        ChangeRefine: 7
+      - BaseItem: FateSin_Boots_HN
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: FateSin_Boots_Hammer
+        ResultItem: FateSin_Boots_HN
+        ChangeRefine: 7
+      - BaseItem: FateSin_Boots_IG
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: FateSin_Boots_Hammer
+        ResultItem: FateSin_Boots_IG
+        ChangeRefine: 7
+      - BaseItem: FateSin_Boots_AG
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: FateSin_Boots_Hammer
+        ResultItem: FateSin_Boots_AG
+        ChangeRefine: 7
+      - BaseItem: FateSin_Boots_NW
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: FateSin_Boots_Hammer
+        ResultItem: FateSin_Boots_NW
+        ChangeRefine: 7
+      - BaseItem: Saint_Hall_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_1
+        ResultItem: Saint_Hall_LT
+        ChangeRefine: 7
+      - BaseItem: Undine_Spear_K_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_1
+        ResultItem: Undine_Spear_K_LT
+        ChangeRefine: 7
+      - BaseItem: Demon_Hunting_Bible_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_1
+        ResultItem: Demon_Hunting_Bible_LT
+        ChangeRefine: 7
+      - BaseItem: Light_Blade_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_1
+        ResultItem: Light_Blade_LT
+        ChangeRefine: 7
+      - BaseItem: Magic_Sword_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_1
+        ResultItem: Magic_Sword_LT
+        ChangeRefine: 7
+      - BaseItem: Fatalist_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_1
+        ResultItem: Fatalist_LT
+        ChangeRefine: 7
+      - BaseItem: Iron_Staff_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_2
+        ResultItem: Iron_Staff_LT
+        ChangeRefine: 7
+      - BaseItem: Blue_Crystal_Staff_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_2
+        ResultItem: Blue_Crystal_Staff_LT
+        ChangeRefine: 7
+      - BaseItem: Shadow_Staff_K_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_2
+        ResultItem: Shadow_Staff_K_LT
+        ChangeRefine: 7
+      - BaseItem: Freezing_Rod_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_2
+        ResultItem: Freezing_Rod_LT
+        ChangeRefine: 7
+      - BaseItem: Iron_Nail_K_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_2
+        ResultItem: Iron_Nail_K_LT
+        ChangeRefine: 7
+      - BaseItem: Ray_Knuckle_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_2
+        ResultItem: Ray_Knuckle_LT
+        ChangeRefine: 7
+      - BaseItem: Sword_Of_Bluefire_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_3
+        ResultItem: Sword_Of_Bluefire_LT
+        ChangeRefine: 7
+      - BaseItem: Slate_Sword_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_3
+        ResultItem: Slate_Sword_LT
+        ChangeRefine: 7
+      - BaseItem: Royal_Bow_K_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_3
+        ResultItem: Royal_Bow_K_LT
+        ChangeRefine: 7
+      - BaseItem: Scalet_Dragon_L_Bow_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_3
+        ResultItem: Scalet_Dragon_L_Bow_LT
+        ChangeRefine: 7
+      - BaseItem: Trumpet_Shell_K_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_4
+        ResultItem: Trumpet_Shell_K_LT
+        ChangeRefine: 7
+      - BaseItem: Barb_Wire_K_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_4
+        ResultItem: Barb_Wire_K_LT
+        ChangeRefine: 7
+      - BaseItem: Narcis_Bow_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_4
+        ResultItem: Narcis_Bow_LT
+        ChangeRefine: 7
+      - BaseItem: Avenger_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_4
+        ResultItem: Avenger_LT
+        ChangeRefine: 7
+      - BaseItem: Meteor_Striker_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_4
+        ResultItem: Meteor_Striker_LT
+        ChangeRefine: 7
+      - BaseItem: Blade_Katar_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_5
+        ResultItem: Blade_Katar_LT
+        ChangeRefine: 7
+      - BaseItem: Shiver_Katar_K_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_5
+        ResultItem: Shiver_Katar_K_LT
+        ChangeRefine: 7
+      - BaseItem: Dragonic_Slayer_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_5
+        ResultItem: Dragonic_Slayer_LT
+        ChangeRefine: 7
+      - BaseItem: Oriental_Sword_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_5
+        ResultItem: Oriental_Sword_LT
+        ChangeRefine: 7
+      - BaseItem: Humma_Clear_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_6
+        ResultItem: Humma_Clear_LT
+        ChangeRefine: 7
+      - BaseItem: Fog_Dew_Sword_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_6
+        ResultItem: Fog_Dew_Sword_LT
+        ChangeRefine: 7
+      - BaseItem: Crimson_Rose_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_6
+        ResultItem: Crimson_Rose_LT
+        ChangeRefine: 7
+      - BaseItem: Master_Soul_Rifle_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_6
+        ResultItem: Master_Soul_Rifle_LT
+        ChangeRefine: 7
+      - BaseItem: Demon_S_Shot_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_6
+        ResultItem: Demon_S_Shot_LT
+        ChangeRefine: 7
+      - BaseItem: The_Black_Gatling_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_6
+        ResultItem: The_Black_Gatling_LT
+        ChangeRefine: 7
+      - BaseItem: Golden_L_Launcher_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_6
+        ResultItem: Golden_L_Launcher_LT
+        ChangeRefine: 7
+      - BaseItem: MeawFoxtail_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_6
+        ResultItem: MeawFoxtail_LT
+        ChangeRefine: 7
+      - BaseItem: OneSkyOneSun_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_6
+        ResultItem: OneSkyOneSun_LT
+        ChangeRefine: 7
+      - BaseItem: SoulWeight_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_6
+        ResultItem: SoulWeight_LT
+        ChangeRefine: 7
+      - BaseItem: Freedom_Stick_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_6
+        ResultItem: Freedom_Stick_LT
+        ChangeRefine: 7
+      - BaseItem: Blessed_Knife_LT
+        MaximumRefine: 4
+        Materials:
+          - Material: Blacksmith_Blessing
+            Amount: 5
+          - Material: Hero_Weapon_Hammer_6
+        ResultItem: Blessed_Knife_LT
+        ChangeRefine: 7

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 811 - 1
db/re/job_basepoints.yml


+ 43 - 3
db/re/job_exp.yml

@@ -3365,7 +3365,7 @@ Body:
       Night_Watch: true
       Hyper_Novice: true
       Spirit_Handler: true
-    MaxBaseLevel: 260
+    MaxBaseLevel: 275
     BaseExp:
       - Level: 1
         Exp: 658
@@ -3886,6 +3886,36 @@ Body:
       - Level: 259
         Exp: 270217017679
       - Level: 260
+        Exp: 283727868563
+      - Level: 261
+        Exp: 297914261991
+      - Level: 262
+        Exp: 312809975091
+      - Level: 263
+        Exp: 328450473845
+      - Level: 264
+        Exp: 344872997537
+      - Level: 265
+        Exp: 353494822476
+      - Level: 266
+        Exp: 362332193038
+      - Level: 267
+        Exp: 371390497864
+      - Level: 268
+        Exp: 380675260310
+      - Level: 269
+        Exp: 390192141818
+      - Level: 270
+        Exp: 397995984654
+      - Level: 271
+        Exp: 405955904348
+      - Level: 272
+        Exp: 414075022434
+      - Level: 273
+        Exp: 422356522883
+      - Level: 274
+        Exp: 430803653341
+      - Level: 275
         Exp: 999999999999
   - Jobs:
       Dragon_Knight: true
@@ -3912,7 +3942,7 @@ Body:
       Night_Watch: true
       Hyper_Novice: true
       Spirit_Handler: true
-    MaxJobLevel: 55
+    MaxJobLevel: 60
     JobExp:
       - Level: 1
         Exp: 4700000
@@ -4023,4 +4053,14 @@ Body:
       - Level: 54
         Exp: 6559840847
       - Level: 55
-        Exp: 9999999999
+        Exp: 7543816974
+      - Level: 56
+        Exp: 8675389520
+      - Level: 57
+        Exp: 9976697948
+      - Level: 58
+        Exp: 11473202640
+      - Level: 59
+        Exp: 13194183036
+      - Level: 60
+        Exp: 99999999999

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 551 - 391
db/re/job_stats.yml


+ 365 - 0
db/re/map_drops.yml

@@ -2063,3 +2063,368 @@ Body:
           - Index: 13
             Item: S_Twins_Box_IL
             Rate: 150
+  - Map: for_dun01
+    SpecificDrops:
+      - Monster: SPIRIT_G_LAND_M
+        Drops:
+          - Index: 0
+            Item: Etel_Stone
+            Rate: 25
+      - Monster: SPIRIT_G_LAND_L
+        Drops:
+          - Index: 0
+            Item: Etel_Skyblue_Jewel
+            Rate: 15
+          - Index: 1
+            Item: Etel_Stone
+            Rate: 35
+      - Monster: SPIRIT_G_LAND_SL
+        Drops:
+          - Index: 0
+            Item: Etel_Skyblue_Jewel
+            Rate: 20
+          - Index: 1
+            Item: Etel_Stone
+            Rate: 45
+          - Index: 2
+            Item: Etel_Topaz
+            Rate: 10
+      - Monster: SPIRIT_B_FLAME_M
+        Drops:
+          - Index: 0
+            Item: Etel_Stone
+            Rate: 25
+      - Monster: SPIRIT_B_FLAME_L
+        Drops:
+          - Index: 0
+            Item: Etel_Skyblue_Jewel
+            Rate: 15
+          - Index: 1
+            Item: Etel_Stone
+            Rate: 35
+      - Monster: SPIRIT_B_FLAME_SL
+        Drops:
+          - Index: 0
+            Item: Etel_Skyblue_Jewel
+            Rate: 20
+          - Index: 1
+            Item: Etel_Stone
+            Rate: 45
+          - Index: 2
+            Item: Etel_Topaz
+            Rate: 10
+      - Monster: SPIRIT_S_WIND_M
+        Drops:
+          - Index: 0
+            Item: Etel_Stone
+            Rate: 25
+      - Monster: SPIRIT_S_WIND_L
+        Drops:
+          - Index: 0
+            Item: Etel_Skyblue_Jewel
+            Rate: 15
+          - Index: 1
+            Item: Etel_Stone
+            Rate: 35
+      - Monster: SPIRIT_S_WIND_SL
+        Drops:
+          - Index: 0
+            Item: Etel_Skyblue_Jewel
+            Rate: 20
+          - Index: 1
+            Item: Etel_Stone
+            Rate: 45
+          - Index: 2
+            Item: Etel_Topaz
+            Rate: 10
+      - Monster: SPIRIT_I_WATER_M
+        Drops:
+          - Index: 0
+            Item: Etel_Stone
+            Rate: 25
+      - Monster: SPIRIT_I_WATER_L
+        Drops:
+          - Index: 0
+            Item: Etel_Skyblue_Jewel
+            Rate: 15
+          - Index: 1
+            Item: Etel_Stone
+            Rate: 35
+      - Monster: SPIRIT_I_WATER_SL
+        Drops:
+          - Index: 0
+            Item: Etel_Skyblue_Jewel
+            Rate: 20
+          - Index: 1
+            Item: Etel_Stone
+            Rate: 45
+          - Index: 2
+            Item: Etel_Topaz
+            Rate: 10
+      - Monster: SPIRIT_C_LAND_S
+        Drops:
+          - Index: 0
+            Item: MD_Hol_Fragment
+            Rate: 300
+          - Index: 1
+            Item: Etel_Skyblue_Jewel
+            Rate: 15
+          - Index: 2
+            Item: Etel_Stone
+            Rate: 30
+      - Monster: SPIRIT_C_LAND_M
+        Drops:
+          - Index: 0
+            Item: MD_Hol_Fragment
+            Rate: 350
+          - Index: 1
+            Item: Etel_Skyblue_Jewel
+            Rate: 25
+          - Index: 2
+            Item: Etel_Stone
+            Rate: 40
+          - Index: 3
+            Item: Etel_Topaz
+            Rate: 10
+      - Monster: SPIRIT_C_LAND_L
+        Drops:
+          - Index: 0
+            Item: MD_Hol_Fragment
+            Rate: 400
+          - Index: 1
+            Item: Etel_Violet_Jewel
+            Rate: 10
+          - Index: 2
+            Item: Etel_Skyblue_Jewel
+            Rate: 35
+          - Index: 3
+            Item: Etel_Stone
+            Rate: 50
+          - Index: 4
+            Item: Etel_Topaz
+            Rate: 20
+      - Monster: SPIRIT_C_LAND_SL
+        Drops:
+          - Index: 0
+            Item: MD_Hol_Fragment
+            Rate: 450
+          - Index: 1
+            Item: Etel_Amber
+            Rate: 7
+          - Index: 2
+            Item: Etel_Violet_Jewel
+            Rate: 15
+          - Index: 3
+            Item: Etel_Skyblue_Jewel
+            Rate: 45
+          - Index: 4
+            Item: Etel_Stone
+            Rate: 60
+          - Index: 5
+            Item: Etel_Topaz
+            Rate: 30
+      - Monster: SPIRIT_C_FLAME_S
+        Drops:
+          - Index: 0
+            Item: MD_Hol_Fragment
+            Rate: 300
+          - Index: 1
+            Item: Etel_Skyblue_Jewel
+            Rate: 15
+          - Index: 2
+            Item: Etel_Stone
+            Rate: 30
+      - Monster: SPIRIT_C_FLAME_M
+        Drops:
+          - Index: 0
+            Item: MD_Hol_Fragment
+            Rate: 350
+          - Index: 1
+            Item: Etel_Skyblue_Jewel
+            Rate: 25
+          - Index: 2
+            Item: Etel_Stone
+            Rate: 40
+          - Index: 3
+            Item: Etel_Topaz
+            Rate: 10
+      - Monster: SPIRIT_C_FLAME_L
+        Drops:
+          - Index: 0
+            Item: MD_Hol_Fragment
+            Rate: 400
+          - Index: 1
+            Item: Etel_Violet_Jewel
+            Rate: 10
+          - Index: 2
+            Item: Etel_Skyblue_Jewel
+            Rate: 35
+          - Index: 3
+            Item: Etel_Stone
+            Rate: 50
+          - Index: 4
+            Item: Etel_Topaz
+            Rate: 20
+      - Monster: SPIRIT_C_FLAME_SL
+        Drops:
+          - Index: 0
+            Item: MD_Hol_Fragment
+            Rate: 450
+          - Index: 1
+            Item: Etel_Amber
+            Rate: 7
+          - Index: 2
+            Item: Etel_Violet_Jewel
+            Rate: 15
+          - Index: 3
+            Item: Etel_Skyblue_Jewel
+            Rate: 45
+          - Index: 4
+            Item: Etel_Stone
+            Rate: 60
+          - Index: 5
+            Item: Etel_Topaz
+            Rate: 30
+  - Map: 1@xm_d
+    SpecificDrops:
+      - Monster: XM_MARIONETTE
+        Drops:
+          - Index: 0
+            Item: Bloody_Coin
+            Rate: 5000
+          - Index: 1
+            Item: Bloody_Coin
+            Rate: 2500
+          - Index: 2
+            Item: Bloody_Coin
+            Rate: 500
+          - Index: 3
+            Item: Shadow_Walk_
+            Rate: 25
+      - Monster: XM_LUDE
+        Drops:
+          - Index: 0
+            Item: Bloody_Coin
+            Rate: 5000
+          - Index: 1
+            Item: Bloody_Coin
+            Rate: 2500
+          - Index: 2
+            Item: Bloody_Coin
+            Rate: 500
+          - Index: 3
+            Item: Red_Lantern
+            Rate: 25
+      - Monster: XM_TREE
+        Drops:
+          - Index: 0
+            Item: Bloody_Coin
+            Rate: 5000
+          - Index: 1
+            Item: Bloody_Coin
+            Rate: 2500
+          - Index: 2
+            Item: Bloody_Coin
+            Rate: 500
+          - Index: 3
+            Item: Lush_Rose
+            Rate: 25
+      - Monster: XM_HYLOZOIST
+        Drops:
+          - Index: 0
+            Item: Bloody_Coin
+            Rate: 5000
+          - Index: 1
+            Item: Bloody_Coin
+            Rate: 2500
+          - Index: 2
+            Item: Bloody_Coin
+            Rate: 500
+          - Index: 3
+            Item: Old_Parasol
+            Rate: 25
+      - Monster: XM_TEDDY_BEAR
+        Drops:
+          - Index: 0
+            Item: Bloody_Coin
+            Rate: 5000
+          - Index: 1
+            Item: Bloody_Coin
+            Rate: 2500
+          - Index: 2
+            Item: Bloody_Coin
+            Rate: 500
+          - Index: 3
+            Item: KindHeart
+            Rate: 25
+      - Monster: XM_COOKIE
+        Drops:
+          - Index: 0
+            Item: Bloody_Coin
+            Rate: 5000
+          - Index: 1
+            Item: Bloody_Coin
+            Rate: 2500
+          - Index: 2
+            Item: Bloody_Coin
+            Rate: 500
+          - Index: 3
+            Item: Hurt_Mind
+            Rate: 25
+      - Monster: XM_MYSTCASE
+        Drops:
+          - Index: 0
+            Item: Bloody_Coin
+            Rate: 5000
+          - Index: 1
+            Item: Bloody_Coin
+            Rate: 2500
+          - Index: 2
+            Item: Bloody_Coin
+            Rate: 500
+          - Index: 3
+            Item: Noble_Cross
+            Rate: 25
+      - Monster: XM_ANTONIO
+        Drops:
+          - Index: 0
+            Item: Bloody_Coin
+            Rate: 15000
+          - Index: 1
+            Item: Bloody_Coin
+            Rate: 1000
+          - Index: 2
+            Item: Bloody_Coin
+            Rate: 5000
+          - Index: 3
+            Item: Chrismas_Tree
+            Rate: 1000
+      - Monster: XM_CELINE_KIMI
+        Drops:
+          - Index: 0
+            Item: Bloody_Coin
+            Rate: 15000
+          - Index: 1
+            Item: Bloody_Coin
+            Rate: 12500
+          - Index: 2
+            Item: Bloody_Coin
+            Rate: 10000
+          - Index: 3
+            Item: Bloody_Coin
+            Rate: 5000
+          - Index: 4
+            Item: Bloody_Coin
+            Rate: 2500
+          - Index: 5
+            Item: Celine_Brooch_K
+            Rate: 150
+          - Index: 6
+            Item: Celine_Dress
+            Rate: 150
+          - Index: 7
+            Item: Celines_Ribbon
+            Rate: 50
+          - Index: 8
+            Item: Evilspirit_Gloves
+            Rate: 50

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 2466 - 117
db/re/mob_db.yml


+ 2 - 0
db/re/mob_skill_db.txt

@@ -14803,3 +14803,5 @@
 21361,EP18_MD_DEMI_FREYJA_L@NPC_DEADLYCURSE2,attack,779,5,5000,1000,30000,no,self,always,0,,,,,,55,
 21361,EP18_MD_DEMI_FREYJA_L@NPC_CANE_OF_EVIL_EYE,chase,780,3,8000,300,30000,no,target,always,0,,,,,,,
 21361,EP18_MD_DEMI_FREYJA_L@NPC_CANE_OF_EVIL_EYE,attack,780,5,7000,300,30000,yes,target,always,0,,,,,,,
+
+// Garden of Time (placeholder). Ids [22177-22180], [22192-22239]

+ 254 - 97
db/re/pet_db.yml

@@ -65,7 +65,7 @@ Body:
     CaptureRate: 2000
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bCritical,1;
          bonus bLuk,3;
@@ -91,7 +91,7 @@ Body:
     CaptureRate: 1500
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bBaseAtk,5;
          bonus bHit,5;
@@ -131,7 +131,7 @@ Body:
     CaptureRate: 1000
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bSubEle,Ele_Poison,15;
          bonus bLuk,3;
@@ -151,7 +151,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bCritical,3;
          bonus bBaseAtk,3;
@@ -181,7 +181,7 @@ Body:
     CaptureRate: 2000
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bBaseAtk,8;
          bonus bStr,2;
@@ -200,7 +200,7 @@ Body:
     CaptureRate: 1500
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bAgi,2;
          bonus bFlee,3;
@@ -219,7 +219,7 @@ Body:
     CaptureRate: 1000
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bFlee,9;
       }
@@ -236,7 +236,7 @@ Body:
     CaptureRate: 500
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bFlee2,2;
          bonus bHit,1;
@@ -255,7 +255,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bVit,2;
          bonus bMaxHP,75;
@@ -286,7 +286,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bInt,2;
          bonus bMaxSP,75;
@@ -317,7 +317,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bHPrecovRate,8;
          bonus bMaxHP,38;
@@ -348,7 +348,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bHit,8;
       }
@@ -366,7 +366,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bStr,2;
          bonus bInt,2;
@@ -385,7 +385,7 @@ Body:
     CaptureRate: 1000
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bMaxHP,200;
       }
@@ -415,7 +415,7 @@ Body:
     CaptureRate: 1000
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bFlee2,1;
          bonus bAgi,2;
@@ -434,7 +434,7 @@ Body:
     CaptureRate: 1000
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bCritical,5;
       }
@@ -462,7 +462,7 @@ Body:
     CaptureRate: 500
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bBaseAtk,15;
       }
@@ -493,7 +493,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bDef,2;
          bonus bInt,2;
@@ -513,7 +513,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bMatkRate,2;
       }
@@ -542,7 +542,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bStr,2;
          bonus bDex,2;
@@ -562,7 +562,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bAddClass,Class_All,2;
       }
@@ -591,7 +591,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bAspdRate,1;
          bonus bAgi,1;
@@ -621,7 +621,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bAddClass,Class_All,1;
          bonus bMatkRate,1;
@@ -654,7 +654,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bResEff,Eff_Stun,200;
          bonus bMdef,2;
@@ -686,7 +686,7 @@ Body:
     CaptureRate: 500
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bResEff,Eff_Stun,200;
          bonus bVit,2;
@@ -716,7 +716,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bAddRace,RC_DemiHuman,3;
          bonus2 bMagicAddRace,RC_DemiHuman,3;
@@ -739,7 +739,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bSubRace,RC_DemiHuman,2;
          bonus2 bSubRace,RC_Player_Human,2;
@@ -769,7 +769,7 @@ Body:
     CaptureRate: 2000
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bSubEle,Ele_Neutral,2;
       }
@@ -786,7 +786,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bSubEle,Ele_Water,2;
          bonus bMaxHP,45;
@@ -795,6 +795,27 @@ Body:
          bonus2 bSubEle,Ele_Water,1;
          bonus bMaxHP,30;
       }
+  - Mob: CHUNG_E
+    TameItem: Tantanmen
+    EggItem: Chung_E_Egg
+    FoodItem: Bun_
+    Fullness: 3
+    IntimacyFed: 50
+    CaptureRate: 2000
+    SpecialPerformance: false
+    Script: >
+      .@i = getpetinfo(PETINFO_INTIMATE);
+
+      if (.@i >= PET_INTIMATE_LOYAL) {
+         bonus2 bSubRace,RC_DemiHuman,2;
+         bonus2 bSubRace,RC_Player_Human,2;
+         bonus bDef,2;
+      }
+      else if (.@i >= PET_INTIMATE_CORDIAL) {
+         bonus2 bSubRace,RC_DemiHuman,1;
+         bonus2 bSubRace,RC_Player_Human,1;
+         bonus bDef,1;
+      }
   - Mob: CHUNG_E_
     TameItem: Tantanmen
     EggItem: Chung_E_Egg
@@ -805,7 +826,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bSubRace,RC_DemiHuman,2;
          bonus2 bSubRace,RC_Player_Human,2;
@@ -873,7 +894,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bAgi,4;
       }
@@ -909,7 +930,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bMaxHP,150;
       }
@@ -955,7 +976,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bResEff,Eff_Stone,800;
          bonus bVit,2;
@@ -993,7 +1014,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bAddRace,RC_DemiHuman,5;
          bonus2 bAddRace,RC_Player_Human,5;
@@ -1013,7 +1034,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bHPDrainRate,30,5;
          bonus bMaxHPrate,1;
@@ -1050,7 +1071,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bInt,1;
       }
@@ -1079,7 +1100,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bAgi,3;
       }
@@ -1097,7 +1118,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bVariableCastrate,-5;
          bonus bInt,2;
@@ -1117,7 +1138,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bSPrecovRate,8;
          bonus bMaxSP,45;
@@ -1148,7 +1169,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bSubEle,Ele_Fire,5;
       }
@@ -1166,7 +1187,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bCritAtkRate,8;
       }
@@ -1184,7 +1205,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus3 bAutoSpellWhenHit,"AL_HEAL",2,10;
          bonus bMaxHPrate,3;
@@ -1215,7 +1236,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bMaxSP,15;
       }
@@ -1233,7 +1254,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bSubRace,RC_Brute,5;
          bonus2 bSubRace,RC_Player_Doram,5;
@@ -1273,7 +1294,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bAddEle,Ele_Fire,2;
          bonus2 bSubEle,Ele_Fire,3;
@@ -1376,7 +1397,7 @@ Body:
     SpecialPerformance: false
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bHPrecovRate,75;
       }
@@ -1392,7 +1413,7 @@ Body:
     CaptureRate: 2000
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bCritical,3;
          bonus bHit,3;
@@ -1421,7 +1442,7 @@ Body:
     CaptureRate: 2000
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bHit,1;
          bonus bDex,2;
@@ -1450,7 +1471,7 @@ Body:
     CaptureRate: 2000
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bHit,5;
       }
@@ -1477,7 +1498,7 @@ Body:
     CaptureRate: 2000
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bMaxSP,100;
       }
@@ -1526,7 +1547,7 @@ Body:
     AllowAutoFeed: true
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bCritical,3;
          bonus bLuk,3;
@@ -1565,7 +1586,7 @@ Body:
     AllowAutoFeed: true
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bAddRace,RC_Plant,6;
          bonus2 bMagicAddRace,RC_Plant,6;
@@ -1597,7 +1618,7 @@ Body:
     AllowAutoFeed: true
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bMaxHPrate,2;
          bonus bHealPower,8;
@@ -1653,7 +1674,7 @@ Body:
     AllowAutoFeed: true
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bVit,2;
          bonus bMaxHP,200;
@@ -1681,7 +1702,7 @@ Body:
     AllowAutoFeed: true
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bBaseAtk,25;
       }
@@ -1716,7 +1737,7 @@ Body:
     AllowAutoFeed: true
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bLongAtkRate,3;
          bonus bCritical,9;
@@ -1743,7 +1764,7 @@ Body:
     AllowAutoFeed: true
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bAddRace,RC_Dragon,6;
          bonus2 bMagicAddRace,RC_Dragon,6;
@@ -1771,7 +1792,7 @@ Body:
     AllowAutoFeed: true
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bMatkRate,4;
       }
@@ -1833,7 +1854,7 @@ Body:
     AllowAutoFeed: true
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bMaxHP,400;
       }
@@ -1884,7 +1905,7 @@ Body:
     AllowAutoFeed: true
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bCritAtkRate,9;
          bonus bHit,2;
@@ -1948,7 +1969,7 @@ Body:
     AllowAutoFeed: true
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bBaseAtk,9;
          bonus bHit,9;
@@ -1976,7 +1997,7 @@ Body:
     AllowAutoFeed: true
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bAddRace,RC_Formless,6;
          bonus2 bMagicAddRace,RC_Formless,6;
@@ -2008,7 +2029,7 @@ Body:
     AllowAutoFeed: true
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bAddClass,Class_All,4;
       }
@@ -2066,7 +2087,7 @@ Body:
     AllowAutoFeed: true
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bAspdRate,3;
          bonus bAgi,3;
@@ -2108,7 +2129,7 @@ Body:
     AllowAutoFeed: true
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bResEff,Eff_Sleep,10000;
          bonus bMaxSPrate,3;
@@ -2136,7 +2157,7 @@ Body:
     AllowAutoFeed: true
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bCritAtkRate,7;
          bonus bCritical,3;
@@ -2165,7 +2186,7 @@ Body:
     AllowAutoFeed: true
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bAspdRate,5;
          bonus bHit,12;
@@ -2203,7 +2224,7 @@ Body:
     AllowAutoFeed: true
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bMagicAtkEle,Ele_Neutral,5;
          bonus bVariableCastrate,-5;
@@ -2229,7 +2250,7 @@ Body:
     AllowAutoFeed: true
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bMdef,7;
          bonus bHealPower,6;
@@ -2255,7 +2276,7 @@ Body:
 #    AllowAutoFeed: true
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus bDelayrate,-3;
 #         bonus bMaxSPrate,5;
@@ -2283,7 +2304,7 @@ Body:
 #    AllowAutoFeed: true
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus bCritAtkRate,3;
 #         bonus bAtkRate,7;
@@ -2310,7 +2331,7 @@ Body:
 #    AllowAutoFeed: true
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus bHit,18;
 #         bonus bPerfectHitRate,15;
@@ -2413,7 +2434,7 @@ Body:
     SpecialPerformance: false   # unknown
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus bInt,3;
       }
@@ -2430,7 +2451,7 @@ Body:
     SpecialPerformance: false   # unknown
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bMagicAtkEle,Ele_Wind,3;
       }
@@ -2464,7 +2485,7 @@ Body:
 #    AllowAutoFeed: true
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus2 bMagicAtkEle,Ele_Fire,7;
 #         bonus2 bMagicAtkEle,Ele_Ghost,7;
@@ -2494,7 +2515,7 @@ Body:
 #    SpecialPerformance: false   # unknown
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus bPerfectHitRate,10;
 #      }
@@ -2513,7 +2534,7 @@ Body:
 #    AllowAutoFeed: true
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus bShortAtkRate,5;
 #         bonus bAspdRate,7;
@@ -2544,7 +2565,7 @@ Body:
     SpecialPerformance: false   # unknown
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bMagicAddEle,Ele_Holy,5;
          bonus bInt,2;
@@ -2575,7 +2596,7 @@ Body:
     AllowAutoFeed: true
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bMagicAtkEle,Ele_Earth,5;
          bonus bInt,4;
@@ -2605,7 +2626,7 @@ Body:
 #    AllowAutoFeed: true
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus bMaxSPrate,3;
 #         bonus bFlee,15;
@@ -2642,7 +2663,7 @@ Body:
     AllowAutoFeed: true
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bMagicAtkEle,Ele_Fire,5;
          bonus bMaxHP,500;
@@ -2668,7 +2689,7 @@ Body:
 #    AllowAutoFeed: true
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus2 bAddClass,Class_Boss,5;
 #         bonus bPAtk,2;
@@ -2696,7 +2717,7 @@ Body:
 #    SpecialPerformance: false   # unknown
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus bMatkRate,2;
 #         bonus bAtkRate,2;
@@ -2738,7 +2759,7 @@ Body:
 #    AllowAutoFeed: true
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus2 bMagicAddClass,Class_Boss,5;
 #         bonus bSMatk,2;
@@ -2767,7 +2788,7 @@ Body:
 #    AllowAutoFeed: true
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus bLongAtkRate,5;
 #         bonus bMaxSPrate,7;
@@ -2799,7 +2820,7 @@ Body:
     SpecialPerformance: false   # unknown
     Script: >
       .@i = getpetinfo(PETINFO_INTIMATE);
-      
+
       if (.@i >= PET_INTIMATE_LOYAL) {
          bonus2 bResEff,Eff_Curse,2000;
          bonus bInt,5;
@@ -2819,7 +2840,7 @@ Body:
 #    AllowAutoFeed: true
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus2 bMagicAtkEle,Ele_Dark,5;
 #         bonus bVariableCastrate,-5;
@@ -2857,7 +2878,7 @@ Body:
 #    AllowAutoFeed: true
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus bMaxHPrate,5;
 #         bonus bVit,4;
@@ -2886,7 +2907,7 @@ Body:
 #    AllowAutoFeed: true
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus bAspdRate,5;
 #         bonus bCritical,7;
@@ -2924,7 +2945,7 @@ Body:
 #    AllowAutoFeed: true
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus bCRate,3;
 #         bonus bCritical,8;
@@ -2950,7 +2971,7 @@ Body:
 #    SpecialPerformance: false   # unknown
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus bCritical,5;
 #         bonus bHit,10;
@@ -2971,7 +2992,7 @@ Body:
 #    SpecialPerformance: false   # unknown
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus bMatkRate,2;
 #         bonus bAtkRate,2;
@@ -3013,7 +3034,7 @@ Body:
 #    AllowAutoFeed: true
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus bAtkRate,3;
 #         bonus bPow,2;
@@ -3040,7 +3061,7 @@ Body:
 #    AllowAutoFeed: true
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus bMatkRate,3;
 #         bonus bSpl,2;
@@ -3067,7 +3088,7 @@ Body:
 #    AllowAutoFeed: true
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus2 bMagicAtkEle,Ele_Dark,7;
 #         bonus bSpeedRate,25;
@@ -3092,7 +3113,7 @@ Body:
 #    SpecialPerformance: false   # unknown
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus bMaxHP,300;
 #         bonus bMaxSP,30;
@@ -3113,7 +3134,7 @@ Body:
 #    SpecialPerformance: false   # unknown
 #    Script: >
 #      .@i = getpetinfo(PETINFO_INTIMATE);
-#      
+#
 #      if (.@i >= PET_INTIMATE_LOYAL) {
 #         bonus bMRes,10;
 #         bonus bRes,10;
@@ -3122,4 +3143,140 @@ Body:
 #         bonus bMRes,5;
 #         bonus bRes,5;
 #      }
+#
+  - Mob: HORNET
+    EggItem: aegis_9155
+    FoodItem: Apple_Pudding
+    Fullness: 2   # unknown
+    HungryDelay: 120   # unknown
+    IntimacyFed: 15   # unknown
+    CaptureRate: 0   # unknown
+    SpecialPerformance: false   # unknown
+    Script: >
+      .@i = getpetinfo(PETINFO_INTIMATE);
+
+      if (.@i >= PET_INTIMATE_LOYAL) {
+         bonus2 bMagicAtkEle,Ele_Wind,2;
+         bonus bVariableCastrate,-2;
+      }
+      else if (.@i >= PET_INTIMATE_CORDIAL) {
+         bonus2 bMagicAtkEle,Ele_Wind,1;
+         bonus bVariableCastrate,-1;
+      }
+#    Evolution:
+#      - Target: GIANT_HONET2
+#        ItemRequirements:
+#          - Item: Honey
+#            Amount: 80
+#          - Item: Royal_Jelly
+#            Amount: 50
+#          - Item: Honey_Jar
+#            Amount: 200
+#          - Item: Sharp_Feeler
+#            Amount: 300
+#          - Item: Hornet_Card
+#            Amount: 10
+#  - Mob: CLB_SS_FC
+#    EggItem: CLB_SS_Egg01
+#    FoodItem: Pet_Food
+#    Fullness: 2   # unknown
+#    HungryDelay: 120   # unknown
+#    IntimacyFed: 15   # unknown
+#    CaptureRate: 0   # unknown
+#    SpecialPerformance: false   # unknown
+#    Script: >
+#      .@i = getpetinfo(PETINFO_INTIMATE);
+#
+#      if (.@i >= PET_INTIMATE_LOYAL) {
+#         bonus bBaseAtk,25;
+#         bonus bLuk,3;
+#      }
+#      else if (.@i >= PET_INTIMATE_CORDIAL) {
+#         bonus bBaseAtk,15;
+#         bonus bLuk,1;
+#      }
+#
+#  - Mob: CLB_SS_TZ
+#    EggItem: CLB_SS_Egg02
+#    FoodItem: Pet_Food
+#    Fullness: 2   # unknown
+#    HungryDelay: 120   # unknown
+#    IntimacyFed: 15   # unknown
+#    CaptureRate: 0   # unknown
+#    SpecialPerformance: false   # unknown
+#    Script: >
+#      .@i = getpetinfo(PETINFO_INTIMATE);
+#
+#      if (.@i >= PET_INTIMATE_LOYAL) {
+#         bonus bMatk,25;
+#         bonus bInt,3;
+#      }
+#      else if (.@i >= PET_INTIMATE_CORDIAL) {
+#         bonus bMatk,15;
+#         bonus bInt,1;
+#      }
+#
+#  - Mob: GIANT_HONET2
+#    EggItem: aegis_9192
+#    FoodItem: Pet_Food
+#    Fullness: 2   # unknown
+#    HungryDelay: 120   # unknown
+#    IntimacyFed: 15   # unknown
+#    CaptureRate: 0   # unknown
+#    SpecialPerformance: false   # unknown
+#    AllowAutoFeed: true
+#    Script: >
+#      .@i = getpetinfo(PETINFO_INTIMATE);
+#
+#      if (.@i >= PET_INTIMATE_LOYAL) {
+#         bonus2 bMagicAtkEle,Ele_Wind,5;
+#         bonus bVariableCastrate,-5;
+#      }
+#      else if (.@i >= PET_INTIMATE_CORDIAL) {
+#         bonus2 bMagicAtkEle,Ele_Wind,3;
+#         bonus bVariableCastrate,-4;
+#      }
+#      else if (.@i >= PET_INTIMATE_NEUTRAL) {
+#         bonus bVariableCastrate,-3;
+#      }
+#      else if (.@i >= PET_INTIMATE_AWKWARD || .@i >= PET_INTIMATE_SHY) {
+#         bonus bVariableCastrate,-2;
+#      }
+#
+#    Evolution:
+#      - Target: MISTRESS3
+#        ItemRequirements:
+#          - Item: Driller_Card
+#            Amount: 10
+#          - Item: Mantis_Card
+#            Amount: 10
+#          - Item: Side_Winder_Card
+#            Amount: 10
+#          - Item: Mightysoul_Essence
+#            Amount: 30
+#  - Mob: MISTRESS3
+#    EggItem: aegis_9193
+#    FoodItem: High_Class_Pet_food
+#    Fullness: 2   # unknown
+#    HungryDelay: 120   # unknown
+#    IntimacyFed: 15   # unknown
+#    CaptureRate: 0   # unknown
+#    SpecialPerformance: false   # unknown
+#    AllowAutoFeed: true
+#    Script: >
+#      .@i = getpetinfo(PETINFO_INTIMATE);
+#
+#      if (.@i >= PET_INTIMATE_LOYAL) {
+#         bonus2 bAddClass,Class_Normal,7;
+#         bonus bNoSizeFix;
+#      }
+#      else if (.@i >= PET_INTIMATE_CORDIAL) {
+#         bonus2 bAddClass,Class_Normal,5;
+#      }
+#      else if (.@i >= PET_INTIMATE_NEUTRAL) {
+#         bonus2 bAddClass,Class_Normal,3;
+#      }
+#      else if (.@i >= PET_INTIMATE_AWKWARD || .@i >= PET_INTIMATE_SHY) {
+#         bonus2 bAddClass,Class_Normal,1;
+#      }
 #

+ 249 - 0
db/re/quest_db.yml

@@ -9829,6 +9829,255 @@ Body:
     Targets:
       - Mob: EP19_MD_AQUILA
         Count: 1
+  - Id: 12592
+    Title: Garden of Time
+  - Id: 12593
+    Title: Helping Leticia
+  - Id: 12594
+    Title: Watching Rigel
+  - Id: 12595
+    Title: Western Barrier
+  - Id: 12596
+    Title: Eastern Barrier
+  - Id: 12597
+    Title: Access list registration
+  - Id: 12598
+    Title: Atmospheric state - Water
+    TimeLimit: 4h
+  - Id: 12599
+    Title: Standby - Earth
+    TimeLimit: 4h
+  - Id: 12600
+    Title: Standby - Poison
+    TimeLimit: 4h
+  - Id: 12601
+    Title: Atmospheric state - Wind
+    TimeLimit: 4h
+  - Id: 12602
+    Title: Standby - Flame
+    TimeLimit: 4h
+  - Id: 12610
+    Title: Cleaning complete!
+    TimeLimit: 4h
+  - Id: 12611
+    Title: Interview completed
+    TimeLimit: 4h
+  - Id: 12612
+    Title: Rewarded
+    TimeLimit: Monday 4h
+  - Id: 12613
+    Title: Divine Beast of Spring
+    Targets:
+      - Mob: MD_PRI_DRAGON_1
+        Count: 1
+  - Id: 12614
+    Title: The Divine Beast of Summer
+    Targets:
+      - Mob: MD_PRI_DRAGON_2
+        Count: 1
+  - Id: 12615
+    Title: Divine Beast of Autumn
+    Targets:
+      - Mob: MD_PRI_DRAGON_3
+        Count: 1
+  - Id: 12616
+    Title: The Divine Beast of Winter
+    Targets:
+      - Mob: MD_PRI_DRAGON_4
+        Count: 1
+  - Id: 12617
+    Title: Dimensional Criminal Correction
+  - Id: 12618
+    Title: Face to face with Oscar
+  - Id: 12619
+    Title: Take a break
+    TimeLimit: +1h
+  - Id: 12620
+    Title: Meeting with the Spirit
+  - Id: 12621
+    Title: Teremotus's Request 1
+    Targets:
+      - Mob: SPIRIT_G_LAND_S
+        Count: 50
+      - Mob: SPIRIT_G_LAND_SL
+        Count: 50
+  - Id: 12622
+    Title: Teremotus's Request 2
+    Targets:
+      - Mob: SPIRIT_G_LAND_M
+        Count: 50
+      - Mob: SPIRIT_G_LAND_L
+        Count: 50
+  - Id: 12623
+    Title: Teremotus's Request 3
+    Targets:
+      - Mob: SPIRIT_F_LAND_S
+        Count: 50
+      - Mob: SPIRIT_F_LAND_SL
+        Count: 50
+  - Id: 12624
+    Title: Teremotus's Request 4
+    Targets:
+      - Mob: SPIRIT_F_LAND_M
+        Count: 50
+      - Mob: SPIRIT_F_LAND_L
+        Count: 50
+  - Id: 12625
+    Title: Ardor's Request 1
+    Targets:
+      - Mob: SPIRIT_B_FLAME_S
+        Count: 50
+      - Mob: SPIRIT_B_FLAME_SL
+        Count: 50
+  - Id: 12626
+    Title: Ardor's Request 2
+    Targets:
+      - Mob: SPIRIT_B_FLAME_M
+        Count: 50
+      - Mob: SPIRIT_B_FLAME_L
+        Count: 50
+  - Id: 12627
+    Title: Ardor's Request 3
+    Targets:
+      - Mob: SPIRIT_R_FLAME_S
+        Count: 50
+      - Mob: SPIRIT_R_FLAME_SL
+        Count: 50
+  - Id: 12628
+    Title: Ardor's Request 4
+    Targets:
+      - Mob: SPIRIT_R_FLAME_M
+        Count: 50
+      - Mob: SPIRIT_R_FLAME_L
+        Count: 50
+  - Id: 12629
+    Title: Procella's Request 1
+    Targets:
+      - Mob: SPIRIT_S_WIND_S
+        Count: 50
+      - Mob: SPIRIT_S_WIND_SL
+        Count: 50
+  - Id: 12630
+    Title: Procella's Request 2
+    Targets:
+      - Mob: SPIRIT_S_WIND_M
+        Count: 50
+      - Mob: SPIRIT_S_WIND_L
+        Count: 50
+  - Id: 12631
+    Title: Procella's Request 3
+    Targets:
+      - Mob: SPIRIT_D_WIND_S
+        Count: 50
+      - Mob: SPIRIT_D_WIND_SL
+        Count: 50
+  - Id: 12632
+    Title: Procella's Request 4
+    Targets:
+      - Mob: SPIRIT_D_WIND_M
+        Count: 50
+      - Mob: SPIRIT_D_WIND_L
+        Count: 50
+  - Id: 12633
+    Title: Diluvio's Request 1
+    Targets:
+      - Mob: SPIRIT_I_WATER_S
+        Count: 50
+      - Mob: SPIRIT_I_WATER_SL
+        Count: 50
+  - Id: 12634
+    Title: Diluvio's Request 2
+    Targets:
+      - Mob: SPIRIT_I_WATER_M
+        Count: 50
+      - Mob: SPIRIT_I_WATER_L
+        Count: 50
+  - Id: 12635
+    Title: Diluvio's Request 3
+    Targets:
+      - Mob: SPIRIT_H_WATER_S
+        Count: 50
+      - Mob: SPIRIT_H_WATER_SL
+        Count: 50
+  - Id: 12636
+    Title: Diluvio's Request 4
+    Targets:
+      - Mob: SPIRIT_H_WATER_M
+        Count: 50
+      - Mob: SPIRIT_H_WATER_L
+        Count: 50
+  - Id: 12637
+    Title: Serpens's Request 1
+    Targets:
+      - Id: 1
+        Count: 150
+        Location: for_dun01
+        MapMobTargets:
+          SPIRIT_G_LAND_S: true
+          SPIRIT_G_LAND_M: true
+          SPIRIT_G_LAND_L: true
+          SPIRIT_B_FLAME_S: true
+          SPIRIT_B_FLAME_M: true
+          SPIRIT_B_FLAME_L: true
+          SPIRIT_S_WIND_S: true
+          SPIRIT_S_WIND_M: true
+          SPIRIT_S_WIND_L: true
+          SPIRIT_I_WATER_S: true
+          SPIRIT_I_WATER_M: true
+          SPIRIT_I_WATER_L: true
+          SPIRIT_G_LAND_SL: true
+          SPIRIT_B_FLAME_SL: true
+          SPIRIT_S_WIND_SL: true
+          SPIRIT_I_WATER_SL: true
+          SPIRIT_C_LAND_L: true
+          SPIRIT_C_LAND_M: true
+          SPIRIT_C_LAND_S: true
+          SPIRIT_C_LAND_SL: true
+          SPIRIT_C_FLAME_L: true
+          SPIRIT_C_FLAME_M: true
+          SPIRIT_C_FLAME_S: true
+          SPIRIT_C_FLAME_SL: true
+  - Id: 12638
+    Title: Serpens's Request 2
+    Targets:
+      - Id: 1
+        Count: 150
+        Location: for_dun02
+        MapMobTargets:
+          SPIRIT_H_WATER_S: true
+          SPIRIT_H_WATER_M: true
+          SPIRIT_H_WATER_L: true
+          SPIRIT_D_WIND_S: true
+          SPIRIT_D_WIND_M: true
+          SPIRIT_D_WIND_L: true
+          SPIRIT_R_FLAME_S: true
+          SPIRIT_R_FLAME_M: true
+          SPIRIT_R_FLAME_L: true
+          SPIRIT_F_LAND_S: true
+          SPIRIT_F_LAND_M: true
+          SPIRIT_F_LAND_L: true
+          SPIRIT_H_WATER_SL: true
+          SPIRIT_D_WIND_SL: true
+          SPIRIT_R_FLAME_SL: true
+          SPIRIT_F_LAND_SL: true
+          SPIRIT_C_WATER_L: true
+          SPIRIT_C_WATER_M: true
+          SPIRIT_C_WATER_S: true
+          SPIRIT_C_WATER_SL: true
+          SPIRIT_C_WIND_L: true
+          SPIRIT_C_WIND_M: true
+          SPIRIT_C_WIND_S: true
+          SPIRIT_C_WIND_SL: true
+  - Id: 12639
+    Title: Serpens's Request 3
+  - Id: 12640
+    Title: Serpens's Request 4
+  - Id: 12641
+    Title: Serpens's Request 5
+  - Id: 12642
+    Title: Serpens's Request 6
+  - Id: 12643
+    Title: Serpens's Request 7
   - Id: 13000
     Title: RWC2011Card Gathering
   - Id: 13001

+ 2 - 0
db/re/size_fix.yml

@@ -35,3 +35,5 @@ Header:
 Body:
   - Weapon: Knuckle
     Large: 75
+  - Weapon: Whip
+    Large: 75

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1261 - 14
db/re/skill_db.yml


+ 259 - 0
db/re/skill_tree.yml

@@ -6807,6 +6807,21 @@ Body:
             Level: 4
           - Name: MT_SUMMON_ABR_MOTHER_NET
             Level: 4
+      - Name: MT_RUSH_STRIKE
+        MaxLevel: 5
+        Requires:
+          - Name: MT_RUSH_QUAKE
+            Level: 5
+      - Name: MT_POWERFUL_SWING
+        MaxLevel: 5
+        Requires:
+          - Name: MT_RUSH_STRIKE
+            Level: 3
+      - Name: MT_ENERGY_CANNONADE
+        MaxLevel: 5
+        Requires:
+          - Name: MT_TRIPLE_LASER
+            Level: 3
   - Job: Shadow_Cross
     Inherit:
       Novice: true
@@ -6891,6 +6906,13 @@ Body:
             Level: 5
           - Name: SHC_SHADOW_STAB
             Level: 5
+      - Name: SHC_CROSS_SLASH
+        MaxLevel: 5
+        Requires:
+          - Name: GC_WEAPONBLOCKING
+            Level: 3
+          - Name: SHC_DANCING_KNIFE
+            Level: 3
   - Job: Arch_Mage
     Inherit:
       Novice: true
@@ -7257,6 +7279,18 @@ Body:
         Requires:
           - Name: IG_SHIELD_MASTERY
             Level: 1
+      - Name: IG_IMPERIAL_CROSS
+        MaxLevel: 5
+        Requires:
+          - Name: IG_OVERSLASH
+            Level: 5
+      - Name: IG_RADIANT_SPEAR
+        MaxLevel: 10
+        Requires:
+          - Name: IG_OVERSLASH
+            Level: 3
+          - Name: IG_SHIELD_SHOOTING
+            Level: 3
   - Job: Biolo
     Inherit:
       Novice: true
@@ -7348,6 +7382,16 @@ Body:
             Level: 5
           - Name: BO_EXPLOSIVE_POWDER
             Level: 3
+      - Name: BO_MYSTERY_POWDER
+        MaxLevel: 5
+        Requires:
+          - Name: BO_EXPLOSIVE_POWDER
+            Level: 5
+      - Name: BO_DUST_EXPLOSION
+        MaxLevel: 5
+        Requires:
+          - Name: BO_MYSTERY_POWDER
+            Level: 3
   - Job: Abyss_Chaser
     Inherit:
       Novice: true
@@ -7864,6 +7908,116 @@ Body:
       Royal_Guard: true
       Royal_Guard_T: true
       Imperial_Guard: true
+  - Job: Soul_Ascetic
+    Inherit:
+      Novice: true
+      Taekwon: true
+      Soul_Linker: true
+      Soul_Reaper: true
+    Tree:
+      - Name: SOA_SOUL_MASTERY
+        MaxLevel: 10
+      - Name: SOA_TALISMAN_MASTERY
+        MaxLevel: 10
+      - Name: SOA_SOUL_GATHERING
+        MaxLevel: 5
+        Requires:
+          - Name: SP_SOULENERGY
+            Level: 5
+          - Name: SOA_SOUL_MASTERY
+            Level: 3
+      - Name: SOA_TALISMAN_OF_PROTECTION
+        MaxLevel: 5
+        Requires:
+          - Name: SOA_TALISMAN_MASTERY
+            Level: 1
+      - Name: SOA_TALISMAN_OF_WARRIOR
+        MaxLevel: 5
+        Requires:
+          - Name: SOA_TALISMAN_MASTERY
+            Level: 1
+      - Name: SOA_TALISMAN_OF_MAGICIAN
+        MaxLevel: 5
+        Requires:
+          - Name: SOA_TALISMAN_MASTERY
+            Level: 1
+      - Name: SOA_EXORCISM_OF_MALICIOUS_SOUL
+        MaxLevel: 5
+        Requires:
+          - Name: SOA_SOUL_GATHERING
+            Level: 1
+          - Name: SP_SOULCURSE
+            Level: 5
+      - Name: SOA_TALISMAN_OF_SOUL_STEALING
+        MaxLevel: 5
+        Requires:
+          - Name: SOA_TALISMAN_MASTERY
+            Level: 1
+          - Name: SOA_SOUL_MASTERY
+            Level: 1
+      - Name: SOA_TOTEM_OF_TUTELARY
+        MaxLevel: 5
+        Requires:
+          - Name: SOA_TALISMAN_MASTERY
+            Level: 3
+          - Name: SOA_SOUL_MASTERY
+            Level: 3
+      - Name: SOA_TALISMAN_OF_FIVE_ELEMENTS
+        MaxLevel: 5
+        Requires:
+          - Name: SOA_TALISMAN_MASTERY
+            Level: 1
+      - Name: SOA_TALISMAN_OF_BLUE_DRAGON
+        MaxLevel: 5
+        Requires:
+          - Name: SOA_TALISMAN_OF_SOUL_STEALING
+            Level: 1
+      - Name: SOA_TALISMAN_OF_WHITE_TIGER
+        MaxLevel: 5
+        Requires:
+          - Name: SOA_TALISMAN_OF_BLUE_DRAGON
+            Level: 1
+      - Name: SOA_TALISMAN_OF_RED_PHOENIX
+        MaxLevel: 5
+        Requires:
+          - Name: SOA_TALISMAN_OF_WHITE_TIGER
+            Level: 1
+      - Name: SOA_TALISMAN_OF_BLACK_TORTOISE
+        MaxLevel: 5
+        Requires:
+          - Name: SOA_TALISMAN_OF_RED_PHOENIX
+            Level: 1
+      - Name: SOA_TALISMAN_OF_FOUR_BEARING_GOD
+        MaxLevel: 5
+        Requires:
+          - Name: SOA_TALISMAN_OF_BLUE_DRAGON
+            Level: 1
+          - Name: SOA_TALISMAN_OF_WHITE_TIGER
+            Level: 1
+          - Name: SOA_TALISMAN_OF_RED_PHOENIX
+            Level: 1
+          - Name: SOA_TALISMAN_OF_BLACK_TORTOISE
+            Level: 1
+      - Name: SOA_CIRCLE_OF_DIRECTIONS_AND_ELEMENTALS
+        MaxLevel: 5
+        Requires:
+          - Name: SOA_SOUL_MASTERY
+            Level: 3
+          - Name: SOA_TALISMAN_OF_FIVE_ELEMENTS
+            Level: 1
+          - Name: SOA_TALISMAN_OF_FOUR_BEARING_GOD
+            Level: 1
+      - Name: SOA_SOUL_OF_HEAVEN_AND_EARTH
+        MaxLevel: 10
+        Requires:
+          - Name: SOA_TALISMAN_OF_PROTECTION
+            Level: 5
+          - Name: SOA_TALISMAN_OF_WARRIOR
+            Level: 5
+          - Name: SOA_TALISMAN_OF_MAGICIAN
+            Level: 5
+          - Name: SOA_TALISMAN_OF_FIVE_ELEMENTS
+            Level: 5
   - Job: Night_Watch
     Inherit:
       Novice: true
@@ -8039,3 +8193,108 @@ Body:
             Level: 5
           - Name: HN_NAPALM_VULCAN_STRIKE
             Level: 5
+  - Job: Spirit_Handler
+    Inherit:
+      Summoner: true
+    Tree:
+      - Name: SH_MYSTICAL_CREATURE_MASTERY
+        MaxLevel: 10
+      - Name: SH_CHUL_HO_SONIC_CLAW
+        MaxLevel: 7
+        Requires:
+          - Name: SH_MYSTICAL_CREATURE_MASTERY
+            Level: 1
+      - Name: SH_KI_SUL_WATER_SPRAYING
+        MaxLevel: 7
+        Requires:
+          - Name: SH_MYSTICAL_CREATURE_MASTERY
+            Level: 1
+      - Name: SH_COLORS_OF_HYUN_ROK
+        MaxLevel: 7
+        Requires:
+          - Name: SH_MYSTICAL_CREATURE_MASTERY
+            Level: 1
+      - Name: SH_HOWLING_OF_CHUL_HO
+        MaxLevel: 7
+        Requires:
+          - Name: SH_MYSTICAL_CREATURE_MASTERY
+            Level: 3
+          - Name: SH_CHUL_HO_SONIC_CLAW
+            Level: 3
+      - Name: SH_MARINE_FESTIVAL_OF_KI_SUL
+        MaxLevel: 5
+        Requires:
+          - Name: SH_MYSTICAL_CREATURE_MASTERY
+            Level: 3
+          - Name: SH_KI_SUL_WATER_SPRAYING
+            Level: 3
+      - Name: SH_SANDY_FESTIVAL_OF_KI_SUL
+        MaxLevel: 5
+        Requires:
+          - Name: SH_MYSTICAL_CREATURE_MASTERY
+            Level: 3
+          - Name: SH_KI_SUL_WATER_SPRAYING
+            Level: 3
+      - Name: SH_HYUN_ROKS_BREEZE
+        MaxLevel: 7
+        Requires:
+          - Name: SH_MYSTICAL_CREATURE_MASTERY
+            Level: 3
+          - Name: SH_COLORS_OF_HYUN_ROK
+            Level: 3
+      - Name: SH_HOGOGONG_STRIKE
+        MaxLevel: 7
+        Requires:
+          - Name: SH_MYSTICAL_CREATURE_MASTERY
+            Level: 5
+          - Name: SH_CHUL_HO_SONIC_CLAW
+            Level: 3
+      - Name: SH_KI_SUL_RAMPAGE
+        MaxLevel: 7
+        Requires:
+          - Name: SH_MYSTICAL_CREATURE_MASTERY
+            Level: 5
+          - Name: SH_MARINE_FESTIVAL_OF_KI_SUL
+            Level: 2
+          - Name: SH_SANDY_FESTIVAL_OF_KI_SUL
+            Level: 2
+      - Name: SH_HYUN_ROK_CANNON
+        MaxLevel: 7
+        Requires:
+          - Name: SH_MYSTICAL_CREATURE_MASTERY
+            Level: 5
+          - Name: SH_HYUN_ROKS_BREEZE
+            Level: 3
+      - Name: SH_COMMUNE_WITH_CHUL_HO
+        MaxLevel: 1
+        Requires:
+          - Name: SH_MYSTICAL_CREATURE_MASTERY
+            Level: 7
+          - Name: SH_HOGOGONG_STRIKE
+            Level: 3
+      - Name: SH_COMMUNE_WITH_KI_SUL
+        MaxLevel: 1
+        Requires:
+          - Name: SH_MYSTICAL_CREATURE_MASTERY
+            Level: 7
+          - Name: SH_KI_SUL_RAMPAGE
+            Level: 3
+      - Name: SH_COMMUNE_WITH_HYUN_ROK
+        MaxLevel: 1
+        Requires:
+          - Name: SH_MYSTICAL_CREATURE_MASTERY
+            Level: 7
+          - Name: SH_HYUN_ROK_CANNON
+            Level: 3
+      - Name: SH_TEMPORARY_COMMUNION
+        MaxLevel: 5
+        Requires:
+          - Name: SH_MYSTICAL_CREATURE_MASTERY
+            Level: 10
+      - Name: SH_BLESSING_OF_MYSTICAL_CREATURES
+        MaxLevel: 5
+        Requires:
+          - Name: SH_COMMUNE_WITH_KI_SUL
+            Level: 1
+          - Name: SH_MYSTICAL_CREATURE_MASTERY
+            Level: 10

+ 45 - 0
db/re/statpoint.yml

@@ -612,3 +612,48 @@ Body:
   - Level: 260
     Points: 4099
     TraitPoints: 228
+  - Level: 261
+    Points: 4099
+    TraitPoints: 231
+  - Level: 262
+    Points: 4099
+    TraitPoints: 234
+  - Level: 263
+    Points: 4099
+    TraitPoints: 237
+  - Level: 264
+    Points: 4099
+    TraitPoints: 240
+  - Level: 265
+    Points: 4099
+    TraitPoints: 247
+  - Level: 266
+    Points: 4099
+    TraitPoints: 250
+  - Level: 267
+    Points: 4099
+    TraitPoints: 253
+  - Level: 268
+    Points: 4099
+    TraitPoints: 256
+  - Level: 269
+    Points: 4099
+    TraitPoints: 259
+  - Level: 270
+    Points: 4099
+    TraitPoints: 266
+  - Level: 271
+    Points: 4099
+    TraitPoints: 269
+  - Level: 272
+    Points: 4099
+    TraitPoints: 272
+  - Level: 273
+    Points: 4099
+    TraitPoints: 275
+  - Level: 274
+    Points: 4099
+    TraitPoints: 278
+  - Level: 275
+    Points: 4099
+    TraitPoints: 285

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 199 - 143
db/re/status.yml


+ 0 - 1
db/size_fix.yml

@@ -66,7 +66,6 @@ Body:
     Large: 75
   - Weapon: Whip
     Small: 75
-    Large: 50
   - Weapon: Book
     Large: 50
   - Weapon: Katar

+ 2 - 1
db/status.yml

@@ -38,11 +38,12 @@
 #   EndOnStart:               List of Status Changes that will end when the status activates. (Optional)
 #   EndReturn:                List of Status Changes that will end when the status activates and won't give its effect. (Optional)
 #   EndOnEnd:                 List of Status Changes that will end when the status becomes inactive. (Optional)
+#   Script:                   Script to execute, when starting the status change. (Optional)
 ###########################################################################
 
 Header:
   Type: STATUS_DB
-  Version: 3
+  Version: 4
 
 Footer:
   Imports:

+ 5 - 0
doc/atcommands.txt

@@ -1250,6 +1250,11 @@ Adds a card or enchant to the specific slot of the equipment.
 
 ---------------------------------------
 
+@resetcooltime
+/resetcooltime
+
+Resets the cooldown of all skills of the player and if active also of the homunculus or the mercenary.
+
 ==============================
 | 5. Administrative Commands |
 ==============================

+ 6 - 2
doc/item_bonus.txt

@@ -31,7 +31,8 @@ This list contains all available constants referenced in the 'bonus' commands.
 	RC2_Bio5_Swordman_Thief, RC2_Bio5_Acolyte_Merchant, RC2_Bio5_Mage_Archer, RC2_Bio5_MVP,
 	RC2_Clocktower, RC2_Thanatos, RC2_Faceworm, RC2_Hearthunter, RC2_Rockridge, RC2_Werner_Lab,
 	RC2_Temple_Demon, RC2_Illusion_Vampire, RC2_Malangdo, RC2_EP172ALPHA, RC2_EP172BETA, RC2_EP172BATH,
-	RC2_Illusion_Turtle, RC2_Rachel_Sanctuary, RC2_Illusion_Luanda, RC2_Illusion_Frozen, RC2_Illusion_Moonlight
+	RC2_Illusion_Turtle, RC2_Rachel_Sanctuary, RC2_Illusion_Luanda, RC2_Illusion_Frozen, RC2_Illusion_Moonlight,
+	RC2_Ep16_def, RC2_Edda_Arunafeltz
 
 * Class (c)
 	Class_Normal, Class_Boss, Class_Guardian, Class_All
@@ -480,7 +481,10 @@ bonus3 bAddMonsterDropItemGroup,ig,r,n;	Adds a n/100% chance to get an item of g
 bonus3 bAddClassDropItemGroup,ig,c,n;	Adds a n/100% chance to get an item of group type ig when killing a monster of class c
                                      	NOTE: If 'x' is negative value, then it's a part of formula:
                                      	      chance = -n*(killed_mob_level/10)+1
-                                     	LIMIT: Only 10 of these bonuses can be set. Those which exceed 10 are ignored.
+                                     	NOTE: Officially, the drop bonus for groups always activates to 100% so n should be 10000 for all
+                                              official items. The actual drop rate of each item is defined in the item_group_db instead.
+                                              Please note that each time only one random item in the group is checked for its drop rate.
+                                              That means that the chance is divided by the number of items in the group.
 
 bonus2 bGetZenyNum,x,n;   		Adds a n% chance of gaining 1~x zeny when killing a monster (only the highest among all is applied)
 bonus2 bAddGetZenyNum,x,n;		Adds a n% chance of gaining 1~x zeny when killing a monster

+ 1 - 0
doc/item_db.txt

@@ -101,6 +101,7 @@ Attack: Weapon's attack.
 ---------------------------------------
 
 MagicAttack: Weapon's magic attack. (Renewal only)
+             Unlike matk bonus from equipment, MagicAttack is taken into account in weapon variance calculation on Renewal.
 
 ---------------------------------------
 

+ 76 - 2
doc/item_group.txt

@@ -75,19 +75,39 @@ Amount: Amount of item that will be obtained.
 
 ---------------------------------------
 
-SubGroup: Setting this to '0' makes the item always obtainable ("must" item).
-		  SubGroup value will allocate where the item will be stored at random group.
+SubGroup: Unique number to create a list of item.
 
+---------------------------------------
+
+Algorithm: Type of algorithm associated with SubGroup.
+
+Random            - A random item is picked from the sub group using rate as chance for an item being picked.
+                    The chance remains the same every time.
+All               - All items in this sub group shall be picked.
+                    If you use a command that is supposed to return only one item with such a sub group, then a random item is returned instead, with each
+                    item having the same chance to be picked.
+                    When using this algorithm, the rate must remain unspecified (0).
+SharedPool        - Rate is the amount of items of this item ID in the sub group. A random item is picked from all the items in the group and then removed
+                    from the sub group. That means each time an item is returned from the sub group, it will have a lower chance to be returned again and if
+                    no more items of this item ID remain in the sub group, it cannot be returned at all anymore. This also means that if the server requests
+                    an item from this sub group as often as there are total items in this sub group, it will get exactly the amounts specified under "rate".
+                    Only when the group is completely empty or the server restarts, the group refills.
+
+Default: SharedPool
+
+Example:
 	Item Group:
       - Group: MyItemGroup
         SubGroups:
           - SubGroup: 0
+            Algorithm: All
             List:
               - Index: 0
                 Item: Knife       # "must" item(s)
               - Index: 1
                 Item: Dagger      # "must" item(s)
           - SubGroup: 1
+            Algorithm: Random
             List:
               - Index: 0
                 Item: Stiletto    # random at SubGroup 1
@@ -96,6 +116,7 @@ SubGroup: Setting this to '0' makes the item always obtainable ("must" item).
                 Item: Stiletto_   # random at SubGroup 1
                 Rate: 2
           - SubGroup: 2
+            Algorithm: Random
             List:
               - Index: 0
                 Item: Stiletto    # random at SubGroup 2
@@ -151,6 +172,59 @@ SubGroup: Setting this to '0' makes the item always obtainable ("must" item).
 		- Returns Item ID of Dagger by chance 2/7 from 'must' SubGroup
 		- 'SubGroup 1' and 'SubGroup 2' are ignored
 
+Example #2:
+
+	Item Group:
+	  - Group: MyItemGroup2
+	    SubGroups:
+	      - SubGroup: 1
+	        Algorithm: SharedPool
+	        List:
+	          - Index: 0
+	            Item: Milk
+	            Rate: 10
+	            Amount: 3
+	          - Index: 1
+	            Item: Well_Baked_Cookie
+	            Rate: 5
+	            Amount: 2
+	          - Index: 2
+	            Item: Gift_Box
+	            Rate: 1
+
+(Note: Specifying the "SharedPool" algorithm is optional, as it defaults to SharedPool if not specified.)
+
+You can interpret this as within MyItemGroup2 there are 10 packs of 3x Milk, 5 packs of 2x Well_Baked_Cookie and 1 Gift_Box; 16 packs in total.
+
+Usages:
+'getgroupitem(IG_MyItemGroup2);'
+'getrandgroupitem(IG_MyItemGroup2);'
+
+The first time one of the two commands above are called:
+	- Player has chance to get 3x Milk by chance 10/16
+	- Player has chance to get 2x Well_Baked_Cookie by chance 5/16
+	- Player has chance to get 1x Gift_Box by chance 1/16
+
+Let's say a pack of Well_Baked_Cookie was received from the group. That means only 4 packs of Well_Baked_Cookie remain in the group.
+
+The second time one of the two commands above are called:
+	- Player has chance to get 3x Milk by chance 10/15
+	- Player has chance to get 2x Well_Baked_Cookie by chance 4/15
+	- Player has chance to get 1x Gift_Box by chance 1/15
+
+Now a Gift_Box is received from the group. That means no more Gift_Box are remaining in the group.
+
+The third time one of the two commands above are called:
+	- Player has chance to get 3x Milk by chance 10/14
+	- Player has chance to get 2x Well_Baked_Cookie by chance 4/14
+
+After the two commands were called 16 times, the server will always have given out exactly:
+	- 30 Milk (10 packs of 3x Milk)
+	- 10 Well_Baked_Cookie (5 packs of 2x Well_Baked_Cookie)
+	- 1 Gift_Box
+
+Now the group is refilled and the next time the command is called, it will behave similar to the first time.
+
 ---------------------------------------
 
 Announced: If player obtained this item, it will be broadcast to the server.

+ 34 - 24
doc/script_commands.txt

@@ -1,4 +1,4 @@
-//===== rAthena Documentation================================
+//===== rAthena Documentation================================
 //= rAthena Script Commands
 //===== By:==================================================
 //= rAthena Dev Team
@@ -5389,7 +5389,11 @@ example, for a random pet lure:
 getitem groupranditem(IG_Taming),1;
 
 'sub_group' is used to get the available random items of item group from specified random
-group. 0 for 'must' item group, and random item group is 1 until 5 (MAX_ITEMGROUP_RANDGROUP+1).
+group. If 'sub_group' is not defined the value will be 1. Make sure the group has defined a
+sub group with the given value.
+The algorithm specified in the sub group determines how the item is picked.
+If the sub group algorithm is "All", then a random item in the group will be returned with
+each item having the same chance of being picked.
 
 More info, see doc/item_group.txt.
 
@@ -5397,14 +5401,13 @@ More info, see doc/item_group.txt.
 
 *getrandgroupitem <group_id>{,<quantity>{,<sub_group>{,<identify>{,<char_id>}}}};
 
-Similar to the above example, this command allows players to obtain the specified
+Similar to "groupranditem", this command allows players to obtain the specified
 quantity of a random item from the group "<group id>". The different groups and
 their group number are specified in db/(pre-)re/item_group_db.yml
 
 If 'quantity' is not defined or 0, it will uses defined amount from Item Group list.
 
-If 'sub_group' is not defined the value will be 1 (since random group is 1 ~ 5, and 0 is
-'must' item group).
+Sub groups and their algorithm work the same way as explained for "groupranditem".
 
 For item with type IT_WEAPON, IT_ARMOR, IT_PETARMOR, and IT_SHADOWGEAR will be given
 as unidentified item (as defined by itemdb_isidentified in src/map/itemdb.cpp) except
@@ -5424,6 +5427,9 @@ For item with type IT_WEAPON, IT_ARMOR, IT_PETARMOR, and IT_SHADOWGEAR will be g
 as unidentified item (as defined by itemdb_isidentified in src/map/itemdb.cpp) except
 if 'identify' is defined with value 1.
 
+For each sub group defined for the item group, items will be given out according to
+their corresponding algorithm.
+
 More info, see doc/item_group.txt.
 
 ---------------------------------------
@@ -5756,7 +5762,7 @@ window, to avoid any disruption when both windows overlap.
 
 ---------------------------------------
 
-*openstorage2 <storage_id>,<mode>{,<account_id>};
+*openstorage2 <storage_id>{,<mode>{,<account_id>}};
 
 Just like the 'openstorage' command, except this command can open additional storages
 by the specified <storage_id>. For <storage_id>, please read the conf/inter_server.yml
@@ -5766,13 +5772,14 @@ Values for <mode> are:
 	STOR_MODE_NONE : Player only can read the storage entries.
 	STOR_MODE_GET  : Player can get items from the storage.
 	STOR_MODE_PUT  : Player can put items in the storage.
+	STOR_MODE_ALL  : Player can get and put items in the storage. (default)
 
 Example:
 	if (vip_status(VIP_STATUS_ACTIVE)) {
 		mes "I will open your Premium storage.";
 		mes "Thank you for using our service.";
 		close2;
-		openstorage2 1,STOR_MODE_GET|STOR_MODE_PUT;
+		openstorage2 1;
 	} else {
 		mes "Sorry, your Premium status is expired.";
 		mes "Storage will be opened but you can't put any item into it.";
@@ -10428,19 +10435,25 @@ This is still usable outside item scripts.
 
 ---------------------------------------
 
-*pet <pet id>;
-*catchpet <pet id>;
+*pet {<item_id>{,flag}};
+*catchpet {<item_id>{,flag}};
+
+This command is used in all the item scripts for taming items.
+Running this command will make the pet catching cursor appear on the client of the invoking character
+and the player can then attempt to catch a monster.
+
+If the item ID is not specified, the command will use the item ID from the invoking item script.
+It will also work outside of an item script, if the item ID is provided.
+
+The following constants can be used as <flag> parameter:
+
+	PET_CATCH_NORMAL:				Will attempt to catch the targeted monster as long as it is in the pet database and
+									the taming item corresponds with the required taming item in the pet database.
+									This is the default if <flag> is not specified.
+	PET_CATCH_UNIVERSAL_NO_BOSS:	Will attempt to catch the targeted monster as long as it is in the pet database and
+									does not have the MD_STATUS_IMMUNE monster mode.
+	PET_CATCH_UNIVERSAL_ALL:		Will attempt to catch the targeted monster as long as it is in the pet database.
 
-This command is used in all the item scripts for taming items. Running this
-command will make the pet catching cursor appear on the client connected to the
-invoking character, usable on the monsters with the specified pet ID number. It
-will still work outside an item script.
-If the <pet id> is PET_CATCH_UNIVERSAL the item will attempt to catch the targeted
-monster as long as it is in the pet database and does not have the MD_STATUS_IMMUNE
-monster mode.
-If the <pet id> is PET_CATCH_UNIVERSAL_ITEM the item will attempt to catch the targeted
-monster as long as it is in the pet database and the targeted monster requires the lure
-item used.
 See 'doc/mob_db_mode_list.txt' for more information about monster modes.
 
 A full list of pet IDs can be found inside 'db/(pre-)re/pet_db.yml'.
@@ -11018,18 +11031,15 @@ The command returns 1 upon success, and these values upon failure:
 
 ---------------------------------------
 
-*opendressroom(<flag>{,<char_id>});
+*opendressroom({<char_id>});
 
 This will open the Dress Room window on the client connected to the invoking character.
 
 	mes "Close this window to open the Dress Room window.";
 	close2;
-	opendressroom(1);
+	opendressroom();
 	end;
 
-Valid flag are:
- 1 - Open the Dress Room window
-
 ---------------------------------------
 
 *navigateto("<map>"{,<x>,<y>,<flag>,<hide_window>,<monster_id>,<char_id>});

+ 6 - 1
doc/status.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //= rAthena Dev Team
 //===== Last Updated: ========================================
-//= 20221216
+//= 20241109
 //===== Description: =========================================
 //= Explanation of the status.yml file and structure.
 //============================================================
@@ -285,6 +285,11 @@ EndOnEnd: List of status that will end when the status becomes inactive.
 
 ---------------------------------------
 
+Script:	Script to execute, when starting the status change. When this is set all battle relevant status will be recalculated, after
+		executing the script. Scripted status changes can only be started on players.
+
+---------------------------------------
+
 Notes:
 
 By default, statuses are 'Buff' (those that aren't explicitely given the 'Debuff' flag) which are removable by 'map_quit' in combination with 'battle_config.debuff_on_logout'.

+ 78 - 8
doc/status_change.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //= rAthena Dev Team
 //===== Last Updated: ========================================
-//= 20171207
+//= 20241024
 //===== Description: =========================================
 //= List of all Status Changes and theirs val1, val2, val3, and
 //= val4 usage in source. Providing easier guide to use
@@ -1012,9 +1012,12 @@ SC_CHANGE	(EFST_HLIF_CHANGE)
 	val2: VIT increase (20 * val1)
 	val3: INT increase (30 * val1)
 
-SC_BLOODLUST	()
-	desc:
-	val1:
+SC_BLOODLUST	(EFST_HAMI_BLOODLUST)
+	desc: Increase the homunculus ATK and has a chance to leech HP from the target
+	val1: Skill Level
+	val2: ATK increase (20 + (10 * val1))
+	val3: Chance to leech HP (9 * val1)%
+	val4: Leeched HP percentage 20%
 
 SC_FLEET	()
 	desc:
@@ -1024,10 +1027,10 @@ SC_SPEED	()
 	desc:
 	val1:
 
-SC_DEFENCE	()
-	desc: Increase Defense, HAMI_DEFENCE effect
-	val1: (none)
-	val2: + Def(Pre-renewal) or VIT (Renewal)
+SC_DEFENCE	(EFST_HAMI_DEFENCE)
+	desc: Increase VIT and as result VIT-based DEF of the Player and plain VIT of the Homunculus
+	val1: Skill Level
+	val2: VIT increase for players, DEF increase for homunculus (5 + (5 * val1)) [Renewal], (2 * val1) [Pre-Renewal]
 
 SC_INCASPDRATE	()
 	desc: Increase ASPD
@@ -2845,3 +2848,70 @@ SC_AGIUP
 	desc: Increase Speed and Flee.
 	val1: +% Walkspeed
 	val2: +% Flee
+
+SC_BATH_FOAM_A	(EFST_BATH_FOAM_A)
+	desc: Increases physical and magical damage against Meditathio Dungeon Monsters.
+	val1: +% damage
+
+SC_BATH_FOAM_B	(EFST_BATH_FOAM_B)
+	desc: Increases physical and magical damage against Meditathio Dungeon Monsters.
+	val1: +% damage
+
+SC_BATH_FOAM_C	(EFST_BATH_FOAM_C)
+	desc: Increases physical and magical damage against Meditathio Dungeon Monsters.
+	val1: +% damage
+
+SC_BUCHEDENOEL (EFST_BUCHEDENOEL)
+	desc: Increases HP & SP restoration by 3%, Hit +3, and Critical +7.
+
+SC_EP16_DEF	(EFST_EP16_DEF)
+	desc: Decrease physical and magical damage against monsters in the Room of Consciousness and Prontera Invasion Dungeon. Restores 1000 HP. Cures Curse, Poison and Silence.
+	val1: +% reduction
+
+SC_STR_SCROLL	(EFST_STR_SCROLL)
+	desc: Increases STR.
+	val1: + STR
+
+SC_INT_SCROLL	(EFST_INT_SCROLL)
+	desc: Increases INT.
+	val1: + INT
+
+SC_CONTENTS_1	(EFST_CONTENTS_1)
+	desc: Increase physical and magical damage to all element enemies
+	val1: +% damage
+	
+SC_CONTENTS_2	(EFST_CONTENTS_2)
+	desc: Increase melee physical damage, range physical damage, and all elemental magic damage.
+	val1: +% damage
+	
+SC_CONTENTS_3	(EFST_CONTENTS_3)
+	desc: Increase ATK and MATK
+	val1: +% damage
+	
+SC_CONTENTS_4	(EFST_CONTENTS_4)
+	desc: Increase ATK and MATK
+	val1: +% damage
+	
+SC_CONTENTS_5	(EFST_CONTENTS_5)
+	desc: Increase ASPD and reduce variable casttime
+	val1: +% increase ASPD, -% reduce variable casttime
+	
+SC_CONTENTS_6	(EFST_CONTENTS_6)
+	desc: Increase physical and magical damage to Dragon and Plant race.
+	val1: +% damage
+	
+SC_CONTENTS_7	(EFST_CONTENTS_7)
+	desc: Increase physical and magical damage to Demon and Undead race.
+	val1: +% damage
+	
+SC_CONTENTS_8	(EFST_CONTENTS_8)
+	desc: Increase physical and magical damage to Formless and Fish race.
+	val1: +% damage
+	
+SC_CONTENTS_9	(EFST_CONTENTS_9)
+	desc: Increase physical and magical damage to Angel and Brute race.
+	val1: +% damage
+	
+SC_CONTENTS_10	(EFST_CONTENTS10)
+	desc: Increase physical and magical damage to Insect and Demihuman race.
+	val1: +% damage

+ 1 - 0
doc/yaml/db/item_group_db.yml

@@ -8,6 +8,7 @@
 # - Group                      Group name of the item.
 #   SubGroups:
 #     - SubGroup:              SubGroup number associated with the list of item. See doc/item_group.txt for more information.
+#       Algorithm:             Type of algorithm associated with SubGroup. (Default: SharedPool)
 #       List:                  List of item(s) for the SubGroup.
 #        - Index               Unique number that can be used to add the same Item with different data in the list.
 #          Item                AegisName of item that will be obtained from this item group.

+ 4 - 0
doc/yaml/sql/mob_db_re.sql

@@ -65,6 +65,10 @@ CREATE TABLE `mob_db_re` (
   `racegroup_illusion_turtle` tinyint(1) unsigned DEFAULT NULL,
   `racegroup_rachel_sanctuary` tinyint(1) unsigned DEFAULT NULL,
   `racegroup_illusion_luanda` tinyint(1) unsigned DEFAULT NULL,
+  `racegroup_illusion_frozen` tinyint(1) unsigned DEFAULT NULL,
+  `racegroup_illusion_moonlight` tinyint(1) unsigned DEFAULT NULL,
+  `racegroup_ep16_def` tinyint(1) unsigned DEFAULT NULL,
+  `racegroup_edda_arunafeltz` tinyint(1) unsigned DEFAULT NULL,
   `element` varchar(24) DEFAULT NULL,
   `element_level` tinyint(4) unsigned DEFAULT NULL,
   `walk_speed` smallint(6) unsigned DEFAULT NULL,

+ 1 - 1
npc/airports/airships.txt

@@ -1152,7 +1152,7 @@ airplane_01,32,61,4	script	Nils#ein	49,1,1,{
 		input .@save2$;
 		set .@end_time, gettimetick(1);
 		set .@total_time, .@total_time + (.@start_time - .@end_time);
-		set .@tasoo, (.@letters[.@wordtest] / .@total_time) * 6;
+		set .@tasoo, (.@letters[.@wordtest] / ( .@total_time > 0 ?  .@total_time : 1)) * 6;
 		if ((.@save1$ == .@word1$[.@wordtest]) && (.@save2$ == .@word2$[.@wordtest])) {
 			mes "[Nils]";
 			mes "Your record is ^ff0000" + .@total_time + " seconds^000000 and";

+ 1 - 1
npc/cities/amatsu.txt

@@ -138,7 +138,7 @@ amatsu,194,79,5	script	Sea Captain#ama2	709,{
 		mes "right? All aboard now.";
 		close2;
 		if (checkre(0))
-			warp "alberta",244,72;
+			warp "alberta",245,87;
 		else
 			warp "alberta",243,91;
 		end;

+ 2 - 2
npc/cities/ayothaya.txt

@@ -87,9 +87,9 @@ ayothaya,152,68,1	script	Aibakthing#ayo2	843,{
 		mes "You will be welcome to come back whenever you please. I hope that we will see each other again sometime soon. Thank you~";
 		close2;
 		if (checkre(0))
-			warp "alberta",235,45;
+			warp "alberta",245,87;
 		else
-			warp "alberta",238,22;
+			warp "alberta",235,45;
 		end;
 	}
 	mes "[Aibakthing]";

+ 1 - 1
npc/cities/brasilis.txt

@@ -60,7 +60,7 @@ brasilis,316,57,3	script	Crewman#bra1	100,{
 		mes "I sure do miss home.";
 		close2;
 		if (checkre(0))
-			warp "alberta",243,82;
+			warp "alberta",245,87;
 		else
 			warp "alberta",244,115;
 		end;

+ 0 - 69
npc/cities/einbroch.txt

@@ -783,75 +783,6 @@ ein_in01,43,252,3	script	Canphotii#ein	852,{
 	close;
 }
 
-ein_in01,206,224,3	script	Hotel Employee#ein	855,{
-	mes "[Hotel Employee]";
-	mes "Good day, welcome to the";
-	mes "Einbroch Hotel. The staff is";
-	mes "always striving to accommodate";
-	mes "our guests with the highest";
-	mes "standards in cleanliness,";
-	mes "service and convenience~";
-	next;
-	if (kain_ticket == 5) {
-		mes "[Hotel Employee]";
-		mes "Are you looking";
-		mes "for Mr. Defru Ark?";
-		mes "Oh right, he did mention";
-		mes "waiting for some package";
-		mes "from the Airport. Now let";
-		mes "me pull up that information...";
-		next;
-		mes "[Hotel Employee]";
-		mes "Ah, here we are.";
-		mes "Mr. Defru Ark is";
-		mes "staying in Room 201.";
-		next;
-	}
-	else {
-		switch(select("Save:Take Rest - 5,000 zeny:Cancel")) {
-		case 1:
-			mes "[Hotel Employee]";
-			mes "Your Respawn Point";
-			mes "has been saved here";
-			mes "in the Einbroch Hotel.";
-			mes "Thank you, and please";
-			mes "come again.";
-			close2;
-			savepoint "ein_in01",200,224,1,1;
-			end;
-		case 2:
-			if (Zeny > 4999) {
-				mes "[Hotel Employee]";
-				mes "Thank you.";
-				mes "Please enjoy";
-				mes "your rest~";
-				close2;
-				set Zeny, Zeny-5000;
-				percentheal 100,100;
-				warp "ein_in01",272,167;
-				end;
-			}
-			else {
-				mes "[Hotel Employee]";
-				mes "I'm sorry, but the";
-				mes "accommodation fee is";
-				mes "5,000 zeny. Next time,";
-				mes "please make sure that you";
-				mes "bring enough zeny, okay?";
-				close;
-			}
-		case 3:
-			mes "[Hotel Employee]";
-			mes "Thank you and";
-			mes "please come again~";
-			close;
-		}
-	}
-	mes "[Hotel Employee]";
-	mes "Have a good day.";
-	close;
-}
-
 einbroch,244,255,5	script	Bulletin Board#ein1	858,{
 	mes " ";
 	mes " Train Station ";

+ 1 - 1
npc/cities/gonryun.txt

@@ -145,7 +145,7 @@ gon_fild01,255,79,7	script	Kunlun Envoy#gon2	776,{
 		mes "back to Alberta.";
 		close2;
 		if (checkre(0))
-			warp "alberta",244,60;
+			warp "alberta",245,87;
 		else
 			warp "alberta",243,67;
 		end;

+ 1 - 1
npc/cities/louyang.txt

@@ -110,7 +110,7 @@ lou_fild01,190,100,7	script	Girl#1lou	815,{
 		mes "Bye bye!";
 		close2;
 		if (checkre(0))
-			warp "alberta",236,40;
+			warp "alberta",245,87;
 		else
 			warp "alberta",235,45;
 		end;

+ 1 - 1
npc/cities/moscovia.txt

@@ -110,7 +110,7 @@ moscovia,166,53,4	script	Moscovia P.R. Officer#2	960,{
 	mes "Ok then, Let's get going.";
 	close2;
 	if (checkre(0))
-		warp "alberta",244,52;
+		warp "alberta",244,86;
 	else
 		warp "alberta",243,67;
 	end;

+ 110 - 114
npc/jobs/2-1/assassin.txt

@@ -1,15 +1,9 @@
-//===== rAthena Script ======================================= 
+//===== rAthena Script =======================================
 //= Assassin Job Quest
-//===== By: ================================================== 
-//= kobra_k88
-//===== Current Version: ===================================== 
-//= 3.7
-//===== Compatible With: ===================================== 
-//= rAthena Project
-//===== Description: ========================================= 
+//===== Description: =========================================
 //= [Official Conversion]
 //= Job Change quest for Assassin class.
-//===== Additional Comments: ================================= 
+//===== Changelog: ===========================================
 //= 1.0 Used some dialogue from the aegis Assassin script translated By: Pgro Team (OwNaGe)
 //=     Also converted the booby traps from the aegis script.[kobra_k88]
 //= 1.1 Made adjustments to ontouch npcs to work with the new "ontouch" functionality.
@@ -28,7 +22,7 @@
 //= 2.0 Changed numbers to constants. [Vicious]
 //= 2.1 Removed Duplicates [Silent]
 //= 2.2 Merged back JFunc. Fixed missing dialogue [Lupus]
-//= 2.3 Fixed typo and change Nameless addtimer to 100 (with 700ms I 
+//= 2.3 Fixed typo and change Nameless addtimer to 100 (with 700ms I
 //=     was still able to bypass it) [Toms]
 //= 2.4 Fixed skipping of Nameless NPC [Lupus]
 //= 2.5 Fixed a Rogue exploit [Lupus]
@@ -50,8 +44,8 @@
 //= 3.5 Fixed the waitingroom where player can enter the Test Area without passing the written exam. Now player will not be warp inside the Test Area when did not passed the written exam instead the player will be warp back to the written exam entrance [JayPee]
 //= 3.6 Fixed broken event calls. [Euphy]
 //= 3.7 Fixed issue that the player can't progress in the quest if timed out at weapon reward step. This issue is fixed on iRO but not on kRO. [https://forums.warpportal.com/index.php?/topic/130060-didnt-receive-necklace-of-oblivion-when-changing-assassin/#entry1496042] [MrAntares]
-//= 3.8 Another 'unofficial fix'. Player can't change job if time out after the necklace is deleted.
-//============================================================ 
+//= 3.8 Another 'unofficial fix'. Player can't change job if time out after the necklace is deleted. [Atemo]
+//============================================================
 
 in_moc_16,19,33,1	script	Guildsman#asn	55,{
 	if (Upper == 1) {
@@ -86,7 +80,7 @@ in_moc_16,19,33,1	script	Guildsman#asn	55,{
 			mes "Well then,";
 			mes "go for it!";
 			close2;
-			set ASSIN_Q,0;
+			ASSIN_Q = 0;
 			warp "in_moc_16",19,76;
 			end;
 		}
@@ -96,9 +90,10 @@ in_moc_16,19,33,1	script	Guildsman#asn	55,{
 		mes "[Ferocious-looking guy]";
 		mes "You'll have to walk if you want to get back to town. Oh, and don't forget to save your spawn point, alright?";
 		close2;
-		set ASSIN_Q,0;
-		set ASSIN_Q2,0;
-		set ASSIN_Q3,0;
+		ASSIN_Q = 0;
+		ASSIN_Q2 = 0;
+		if (ASSIN_Q3 < 3)
+			ASSIN_Q3 = 0;
 		savepoint "in_moc_16",18,14,1,1;
 		warp "in_moc_16",18,14;
 		end;
@@ -257,7 +252,7 @@ in_moc_16,19,33,1	script	Guildsman#asn	55,{
 					mes "It's been a while since I've received a guest. I'm sending";
 					mes "you to the office.";
 					close2;
-					set ASSIN_Q,0;
+					ASSIN_Q = 0;
 					if (checkquest(8000) != -1) {
 						changequest 8000,8001;
 					} else {
@@ -553,8 +548,9 @@ OnTouch_:
 				mes "Alright then,";
 				mes "best of luck to you!";
 				close2;
-				set ASSIN_Q3,1;
-				set ASSIN_Q,1;
+				if (ASSIN_Q3 < 3)
+					ASSIN_Q3 = 1;
+				ASSIN_Q = 1;
 				changequest 8001,8002;
 				warp "in_moc_16",19,144;
 				end;
@@ -576,8 +572,9 @@ OnTouch_:
 				mes "to the Test Hall.";
 				mes "Best of luck~";
 				close2;
-				set ASSIN_Q3,2;
-				set ASSIN_Q,1;
+				if (ASSIN_Q3 < 3)
+					ASSIN_Q3 = 2;
+				ASSIN_Q = 1;
 				changequest 8001,8002;
 				warp "in_moc_16",19,144;
 				end;
@@ -602,9 +599,8 @@ OnTouch_:
 				mes "Eh, get outta here.";
 				mes "Stop wastin' my time...";
 				close2;
-				set ASSIN_Q,0;
-				set ASSIN_Q3,0;
-				set ASSIN_Q2,0;
+				ASSIN_Q = 0;
+				ASSIN_Q2 = 0;
 				erasequest 8001;
 				warp "moc_fild16",206,229;
 				end;
@@ -630,8 +626,9 @@ OnTouch_:
 				mes "[Assassin 'Khai']";
 				mes "Are you done filling out the form? Alright, give it to me so I can send you to the Test Hall. Good luck~";
 				next;
-				set ASSIN_Q3,1;
-				set ASSIN_Q,1;
+				if (ASSIN_Q3 < 3)
+					ASSIN_Q3 = 1;
+				ASSIN_Q = 1;
 				changequest 8001,8002;
 				warp "in_moc_16",19,144;
 				end;
@@ -644,8 +641,9 @@ OnTouch_:
 				mes "Then give me the form so that I can send you to the Test Hall, alright?";
 				mes "Good luck...";
 				next;
-				set ASSIN_Q3,2;
-				set ASSIN_Q,1;
+				if (ASSIN_Q3 < 3)
+					ASSIN_Q3 = 2;
+				ASSIN_Q = 1;
 				changequest 8001,8002;
 				warp "in_moc_16",19,144;
 				end;
@@ -711,7 +709,7 @@ OnTouch_:
 			mes "Although I am heartless,";
 			mes "I am not necessarily cruel. Before we proceed, is there anything you wish to know?";
 			next;
-			set ASSIN_Q2,0;
+			ASSIN_Q2 = 0;
 			while(ASSIN_Q2 < 3) {
 				switch(select("...Skills?:...Stats?:Hmpf, I know it all.")) {
 				case 1:
@@ -774,7 +772,7 @@ OnTouch_:
 					mes "Now...";
 					mes "That's all I have to tell you";
 					mes "about Assassin skills.";
-					set ASSIN_Q2,1;
+					ASSIN_Q2 = 1;
 					next;
 					break;
 				case 2:
@@ -787,7 +785,7 @@ OnTouch_:
 					next;
 					mes "[The Anonymous One]";
 					mes "I cannot give you better advice than that in regards to Stats. You should research and see which stats suit you, and decide what kind of Assassin you want to be.";
-					set ASSIN_Q2,2;
+					ASSIN_Q2 = 2;
 					next;
 					break;
 				case 3:
@@ -797,7 +795,7 @@ OnTouch_:
 						mes "I'll be the judge of that!";
 						next;
 					}
-					set ASSIN_Q2,3;
+					ASSIN_Q2 = 3;
 					break;
 				}
 			}
@@ -847,53 +845,53 @@ OnTouch_:
 			mes "1. Choose skill that is not required to learn Grimtooth.";
 			next;
 			if (select("Cloaking level 2:Sonic Blow level 5:Katar Mastery level 4:Right hand Mastery level 2") == 4)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "2. What property does Enchant Poison possess?";
 			next;
 			if (select("Poison:Earth:Fire:Wind") == 1)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "3. How does Level 4 Right Hand Mastery work?";
 			next;
 			if (select("Recover 80% of damage decrease:Recover 90% of damage decrease:Increase 90% of damage:Increase 108% of damage") == 2)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "4. What is the item required for using Venom Dust?";
 			next;
 			if (select("Red Blood:Blue Gemstone:Yellow Gemstone:Red Gemstone") == 4)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "5. Which skill can you learn when you reach Level 5 Enchant Poison?";
 			next;
 			if (select("Envenom:Sonic Blow:Venom Splasher:Venom Dust") == 4)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "6. Among the following skills, which allows you to walk while invisible?";
 			next;
 			if (select("Hiding:Back Slide:Cloaking:Sand Attack") == 3)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "7. Choose the condition that is unrelated to Venom Splasher.";
 			next;
 			if (select("Poisoned target.:Red Gemstone.:Remaing HP of Target.") == 2)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "8. Which monster is weak to a weapon with Vadon card (adds 20% damage on Fire property monster)?";
 			next;
 			if (select("Steel Chonchon:Deviruchi:Elder Willow:Baphomet") == 3)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "9. How much SP does";
 			mes "Double Attack need?";
 			next;
 			if (select("15:It's a passive skill, so SP use is 0.:It's passive skill, so SP use is 10.:54") == 2)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "10. What is the best elemental Main Gauche weapon for hunting in Izlude dungeon?";
 			next;
 			if (select("Wind Main Gauche:Ice Main Gauche:Earth Main Gauche:Fire Main Gauche") == 1)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			break;
 		case 2:
 			mes "[The Anonymous One]";
@@ -901,104 +899,104 @@ OnTouch_:
 			mes "drops a slotted Katar?";
 			next;
 			if (select("Thief Bug:Peco Peco:Desert Wolf:Hammer Cobolt") == 3)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "2. Which monster";
 			mes "drops a slotted Jur?";
 			next;
 			if (select("Martin:Desert Wolf:Marionette:Myst") == 1)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "3. Which class is allowed to craft elemental weapons?";
 			next;
 			if (select("Merchant:Blacksmith:Thief:Priest") == 2)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "4. Choose the weapon which is not in the Katar class.";
 			next;
 			if (select("Jamadhar:Jur:Katar:Gladius") == 4)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "5. What property do Izlude dungeon monsters posses?";
 			next;
 			if (select("Water:Fire:Wind:Earth") == 1)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "6. Which monster";
 			mes "cannot be a Cute Pet?";
 			next;
 			if (select("Poporing:Roda Frog:Smokie:Poison Spore") == 2)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "7. Choose a monster that Fire property Daggers work the best on.";
 			next;
 			if (select("Dagger Goblin:Mace Goblin:Morning Star Goblin:Hammer Goblin") == 4)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "8. Choose the non-elemental Katar from the following:";
 			next;
 			if (select("Katar of Raging Blaze:Katar of Dusty Thornbush:Sharpened Legbone of Ghoul:Infiltrator") == 4)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "9. Which is the uncommon monster?";
 			next;
 			if (select("Poring:Mastering:Ghostring:Spore") == 3)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "10. Choose the monster";
 			mes "that is not Undead.";
 			next;
 			if (select("Drake:Megalodon:Spore:Khalitzburg") == 3)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			break;
 		case 3:
 			mes "[The Anonymous One]";
 			mes "1. Choose the correct amount of the maximum dodge rate increase from the 'Increase Dodge' skill when at level 10.";
 			next;
 			if (select("30:40:160:20") == 1)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "2. Choose a monster which detects hiding/cloaking Thieves and Assassins.";
 			next;
 			if (select("Worm Tail:Andre:Mummy:Soldier Skeleton") == 2)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "3. Choose a group of weapons that cannot be used by an Assassin at once.";
 			next;
 			if (select("Main Gaughe + Gladius:Stiletto + Main Gauche:Katar + Maingauche:Hammer + Stiletto") == 3)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "4. Choose the town where Thieves can change their jobs.";
 			next;
 			if (select("Prontera:Lutie:Alberta:Morocc") == 4)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "5. Choose a card that does not affect the AGI stat.";
 			next;
 			if (select("Baphomet Jr. card:Whisper Card:Female Thiefbug card:Male Thiefbug card") == 2)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "6. Choose the correct specialty of the Assassin class.";
 			next;
 			if (select("Excellent singing talent:Excellent reading talent:Excellent dancing talent:Excellent dodge ability") == 4)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "7. Choose the maximum AGI bonus an Assassin can get at job level 50.";
 			next;
-			if (select("7:8:9:10") == 4) 
-				set .@assassin_t,.@assassin_t+10;
+			if (select("7:8:9:10") == 4)
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "8. Choose the item that an Assassin cannot equip.";
 			next;
-			if (select("Dagger:Helm:Boots:Brooch") == 2) 
-				set .@assassin_t,.@assassin_t+10;
+			if (select("Dagger:Helm:Boots:Brooch") == 2)
+				.@assassin_t += 10;
 			mes "[The Anonymous One]";
 			mes "9. Choose the job change item for Thief.";
 			next;
 			switch(select("Orange Gooey Mushroom:Red Gooey Mushroom:Orange Net Mushroom:Orange Hair Mushroom")) {
 			case 1:
 			case 3:
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 				break;
 			default:
 				break;
@@ -1007,7 +1005,7 @@ OnTouch_:
 			mes "10. Choose a card that would typically benefit an Assassin the least.";
 			next;
 			if (select("Whisper card:Elder Willow card:Soldier Skeleton card:Cobold card") == 2)
-				set .@assassin_t,.@assassin_t+10;
+				.@assassin_t += 10;
 			break;
 		}
 		if (ASSIN_Q2 == 3) {
@@ -1023,7 +1021,7 @@ OnTouch_:
 			mes "You scored";
 			mes "" + .@assassin_t + " percent...";
 			if (.@assassin_t > 80) {
-				set ASSIN_Q2,5;
+				ASSIN_Q2 = 5;
 				changequest 8002,8003;
 				mes "Well done.";
 				mes "You pass.";
@@ -1033,7 +1031,7 @@ OnTouch_:
 				close;
 			}
 			else {
-				set ASSIN_Q2,4;
+				ASSIN_Q2 = 4;
 				mes "That means you fail!";
 				next;
 				mes "[The Anonymous One]";
@@ -1060,7 +1058,7 @@ OnTouch_:
 			mes "You scored";
 			mes "" + .@assassin_t + " points...";
 			if (.@assassin_t > 80) {
-				set ASSIN_Q2,5;
+				ASSIN_Q2 = 5;
 				changequest 8002,8003;
 				next;
 				mes "[The Anonymous One]";
@@ -1068,7 +1066,7 @@ OnTouch_:
 				close;
 			}
 			else {
-				set ASSIN_Q2,4;
+				ASSIN_Q2 = 4;
 				mes "You failed!";
 				next;
 				mes "[The Anonymous One]";
@@ -1194,9 +1192,8 @@ OnTouch_:
 		mes "I guess you";
 		mes "could use a break...";
 		close2;
-		set ASSIN_Q,0;
-		set ASSIN_Q3,0;
-		set ASSIN_Q2,0;
+		ASSIN_Q = 0;
+		ASSIN_Q2 = 0;
 		changequest 8003,8000;
 		warp "in_moc_16",19,13;
 		end;
@@ -1207,7 +1204,7 @@ in_moc_16,1,1,0	script	Beholder#ASNTEST	-1,{
 	end;
 
 OnEnable:
-	set .MyMobs,6;
+	.MyMobs = 6;
 	// Target mobs
 	monster "in_moc_16",62,161,"Job change target",1002,1,"Beholder#ASNTEST::OnMyMobDead";
 	monster "in_moc_16",85,169,"Job change target",1063,1,"Beholder#ASNTEST::OnMyMobDead";
@@ -1267,15 +1264,15 @@ OnResetmob:
 	end;
 
 OnMyMobDead:
-	set .MyMobs,.MyMobs-1;
+	.MyMobs--;
 	if (.MyMobs < 1) {
 		mapannounce "in_moc_16","You seem to be doing quite well. Keep it up!",bc_map;
-		set ASSIN_Q,3;
+		ASSIN_Q = 3;
 		changequest 8003,8004;
 		donpcevent "timestopper#1::OnEnable";
 		donpcevent "Keeper of the Door#ASN::OnEnable";
 		donpcevent "Beholder#ASNTEST::OnResetmob";
-		set .DisableTraps,1;
+		.DisableTraps = 1;
 		stopnpctimer;
 	}
 	else {
@@ -1285,7 +1282,7 @@ OnMyMobDead:
 
 OnMyMobDead2:
 	mapannounce "in_moc_16",strcharinfo(0) + "! You made a mistake! I'm bringing you back!",bc_map;
-	set ASSIN_Q,2;
+	ASSIN_Q = 2;
 	warp "in_moc_16",19,161;
 	donpcevent "Beholder#ASNTEST::OnReset";
 	end;
@@ -1341,7 +1338,7 @@ OnTimer184000:
 OnTimer185000:
 	mapannounce "in_moc_16","Time's up!",bc_map;
 	mapannounce "in_moc_16","Well, good job... If you wanted to waste your time. You'll have to try again!",bc_map;
-	//set ASSIN_Q,2;
+	//ASSIN_Q = 2;
 	end;
 
 OnTimer186000:
@@ -1357,7 +1354,7 @@ in_moc_16,68,158,0	script	01_1::SinTrap	-1,0,0,{
 OnTouch_:
 	if (getvariableofnpc(.DisableTraps,"Beholder#ASNTEST")  < 1) {
 		mapannounce "in_moc_16",strcharinfo(0) + ", you're trapped. You will be sent back.",bc_map;
-		set ASSIN_Q,2;
+		ASSIN_Q = 2;
 		warp "in_moc_16",19,161;
 		donpcevent "Beholder#ASNTEST::OnResetmob";
 		donpcevent "Standby Room#ASNTEST::OnStart";
@@ -1457,9 +1454,9 @@ OnInit:
 OnTouch_:
 	donpcevent "Thomas#ASNTEST::OnDisable";
 	if (ASSIN_Q == 3)
-		set ASSIN_Q,3;
+		ASSIN_Q = 3;
 	else
-		set ASSIN_Q,4;
+		ASSIN_Q = 4;
 	warp "in_moc_16",87,102;
 	savepoint "in_moc_16",16,13,1,1;
 	end;
@@ -1487,13 +1484,13 @@ OnTimer187000:
 OnDisable:
 	stopnpctimer;
 	end;
-	
+
 OnMyMobDead:
 	mapannounce "in_moc_16","Hey, what the hell was that?! I told you: No killing monsters!",bc_map;
 	mapannounce "in_moc_16","I'm bringing you back... *Sigh...*",bc_map;
-	set ASSIN_Q,3;
+	ASSIN_Q = 3;
 	warp "in_moc_16",87,102;
-	killmonsterall "in_moc_16";
+	killmonster "in_moc_16","timestopper#1::OnMyMobDead";
 	end;
 }
 
@@ -1525,9 +1522,8 @@ OnTouch_:
 			mes "Oh hey, don't forget to save your respawn point in town.";
 			close2;
 			mapannounce "in_moc_16",strcharinfo(0) + " got scared and quit the test...Who's Next?!",bc_map;
-			set ASSIN_Q,0;
-			set ASSIN_Q2,0;
-			set ASSIN_Q3,0;
+			ASSIN_Q = 0;
+			ASSIN_Q2 = 0;
 			changequest 8004,8000;
 			savepoint "in_moc_16",18,14,1,1;
 			warp "in_moc_16",18,14;
@@ -1548,7 +1544,7 @@ OnTouch_:
 	mes "[Thomas]";
 	mes "If you run away, get a nose bleed and pass out or something like that, I'll fail ya'. Enough talk. Let's see what you got.";
 	close2;
-	set ASSIN_Q,4;
+	ASSIN_Q = 4;
 
 	monster "in_moc_16",81,77,"Mummy",1041,1,"timestopper#1::OnMyMobDead";
 	monster "in_moc_16",82,77,"Mummy",1041,1,"timestopper#1::OnMyMobDead";
@@ -1583,7 +1579,7 @@ OnTouch_:
 
 OnDisable:
 	donpcevent "Standby Room#ASNTEST::OnStart";
-	killmonsterall "in_moc_16";
+	killmonster "in_moc_16","timestopper#1::OnMyMobDead";
 	end;
 }
 
@@ -1596,7 +1592,7 @@ OnTouch_:
 	mes "Oh! Congratulations!";
 	mes "You may now proceed to our Guildmaster's room. Good luck!!";
 	close2;
-	set ASSIN_Q,5;
+	ASSIN_Q = 5;
 	changequest 8004,8005;
 	warp "in_moc_16",181,183;
 	end;
@@ -1606,7 +1602,7 @@ in_moc_16,182,169,0	script	Maze Assistant	45,1,1,{
 OnTouch_:
 	if (ASSIN_Q == 5 || ASSIN_Q == 6) {
 		warp "in_moc_16",181,183;
-		set ASSIN_Q,ASSIN_Q+1;
+		ASSIN_Q++;
 		if (!isbegin_quest(8006))
 			changequest 8005,8006;
 	}
@@ -1648,7 +1644,7 @@ OnTouch_:
 	else
 		savepoint "moc_ruins",79,99,1,1;
 	if (ASSIN_Q == 7 && BaseJob == Job_Thief) {
-		set ASSIN_Q,8;
+		ASSIN_Q = 8;
 		mes "[Guildmaster]";
 		mes "Welcome.";
 		mes "I apologize for";
@@ -1682,7 +1678,6 @@ OnTouch_:
 			next;
 			switch(select("Revenge...!:Money~:I want to travel.")) {
 			case 1:
-				set ASSIN_Q,8;
 				mes "[Guildmaster]";
 				mes "Revenge...?";
 				mes "Yes, I understand. All of us hold grudges against someone else eventually.";
@@ -1696,7 +1691,7 @@ OnTouch_:
 				next;
 				break;
 			case 2:
-				set ASSIN_Q,9;
+				ASSIN_Q = 9;
 				mes "[Guildmaster]";
 				mes "Financial reasons...? I won't deny that we all need money to live. But being Assassin means living for a higher purpose.";
 				next;
@@ -1707,7 +1702,7 @@ OnTouch_:
 				next;
 				break;
 			case 3:
-				set ASSIN_Q,10;
+				ASSIN_Q = 10;
 				mes "[Guildmaster]";
 				mes "Good idea. Traveling around the world will allow you to broaden your experiences.";
 				next;
@@ -1736,7 +1731,7 @@ OnTouch_:
 			next;
 			switch(select("I like the solitude.:Making money being an Assassin.:They just look interesting.")) {
 			case 1:
-				set ASSIN_Q,11;
+				ASSIN_Q = 11;
 				mes "[Guildmaster]";
 				mes "You got the point...";
 				mes "We are lonely. We will always be alone, even amongst each other...";
@@ -1751,13 +1746,13 @@ OnTouch_:
 				next;
 				break;
 			case 2:
-				set ASSIN_Q,12;
+				ASSIN_Q = 12;
 				mes "[Guildmaster]";
 				mes "Well, I can't deny it, we do need money to make a living. But don't you think we should pursue something even more important than money?";
 				next;
 				break;
 			case 3:
-				set ASSIN_Q,13;
+				ASSIN_Q = 13;
 				mes "[Guildmaster]";
 				mes "Style and appearance is only superficial. It is sad that many people think this way...";
 				next;
@@ -1782,7 +1777,7 @@ OnTouch_:
 			next;
 			switch(select("To broaden my skills.:It's a goal of mine.:For spiritual improvement.")) {
 			case 1:
-				set ASSIN_Q,14;
+				ASSIN_Q = 14;
 				mes "[Guildmaster]";
 				mes "Learning skills comes naturally with the Assassin job. But don't think of skills as the best value of your training.";
 				next;
@@ -1791,7 +1786,7 @@ OnTouch_:
 				next;
 				break;
 			case 2:
-				set ASSIN_Q,15;
+				ASSIN_Q = 15;
 				mes "[Guildmaster]";
 				mes "It's a goal of yours, eh? Well, I guess you've got to have goals...";
 				next;
@@ -1805,7 +1800,7 @@ OnTouch_:
 				next;
 				break;
 			case 3:
-				set ASSIN_Q,16;
+				ASSIN_Q = 16;
 				mes "[Guildmaster]";
 				mes "Good idea...";
 				mes "That is a good way to improve yourself. I've seen many people who know how to be strong physically but not in their mental state.";
@@ -1837,14 +1832,14 @@ OnTouch_:
 			next;
 			switch(select("I would level up fast.:I want to explore my Assassin skills.:I will go where I couldn't go as a Thief.")) {
 			case 1:
-				set .@assassin_sangdam,.@assassin_sangdam+10;
+				.@assassin_sangdam += 10;
 				mes "[Guildmaster]";
 				mes "Don't act recklessly...";
 				mes "Being an Assassin never makes you a different person. And don't rely on chance.";
 				next;
 				break;
 			case 2:
-				set .@assassin_sangdam,.@assassin_sangdam+5;
+				.@assassin_sangdam += 5;
 				mes "[Guildmaster]";
 				mes "It is good for one to examine oneself. I can understand that you will be excited by the great change in your ability.";
 				next;
@@ -1871,14 +1866,14 @@ OnTouch_:
 			next;
 			switch(select("My friends.:My Guildsmen.:My lover.")) {
 			case 1:
-				set .@assassin_sangdam,.@assassin_sangdam+5;
+				.@assassin_sangdam += 5;
 				mes "[Guildmaster]";
 				mes "I see...";
 				mes "Appreciate them for caring about you, even when you're alone.";
 				next;
 				break;
 			case 2:
-				set .@assassin_sangdam,.@assassin_sangdam+5;
+				.@assassin_sangdam += 5;
 				mes "[Guildmaster]";
 				mes "Great...";
 				mes "Comrades for whom you would die for...";
@@ -1909,7 +1904,7 @@ OnTouch_:
 			next;
 			switch(select("Places where Assassins can level up...:Main goals as an Assassin.:Financial consulting.")) {
 			case 1:
-				set .@assassin_sangdam,.@assassin_sangdam+5;
+				.@assassin_sangdam += 5;
 				mes "[Guildmaster]";
 				mes "It all depends on your mind. Any place could be the best to level up according to your mind state.";
 				next;
@@ -1927,7 +1922,7 @@ OnTouch_:
 				next;
 				break;
 			case 3:
-				set .@assassin_sangdam,.@assassin_sangdam+10;
+				.@assassin_sangdam += 10;
 				mes "[Guildmaster]";
 				mes "Oh my lord...";
 				mes "Are you planning to become an Assassin in order to make money?";
@@ -1979,7 +1974,7 @@ OnTouch_:
 		mes "supports you. How";
 		mes "about you, Huey?";
 		next;
-		if (ASSIN_Q3 == 1) {
+		if (ASSIN_Q3 == 1) { // player Job Level was above 48
 			mes "[Huey]";
 			mes "A rarity.";
 			mes "You can tell";
@@ -1989,7 +1984,7 @@ OnTouch_:
 			mes "I agree with";
 			mes "the Anonymous One.";
 		}
-		else {
+		else { // player Job Level was below 48
 			mes "[Huey]";
 			mes "Although "+ strcharinfo(0) +" looks too mellow and gentle, kind of like a pussycat, "+ strcharinfo(0) +" has the stuff.";
 			next;
@@ -2064,7 +2059,8 @@ OnTouch_:
 			mes "I believe you stand out amongst them...";
 			next;
 		}
-		if (ASSIN_Q3 == 1 && BaseJob == Job_Thief && ASSIN_Q > 6 && ASSIN_Q < 17) {
+		switch(ASSIN_Q3) {
+		case 1: // player Job Level was above 48
 			mes "[Guildmaster]";
 			mes "Well, I've said too much. Please choose a weapon as a present.";
 			next;
@@ -2098,10 +2094,10 @@ OnTouch_:
 				mes "It used to rule over the Assassin weapon market. Please take care of my gladius.";
 				getitem 1220,1; //Gladius_
 			}
-			ASSIN_Q3 = 2;
+			ASSIN_Q3 = 3;
 			next;
-		}
-		else if (ASSIN_Q3 != 2) {
+			break;
+		case 2: // player Job Level was below 48
 			mes "[Guildmaster]";
 			mes "Well, I talked too much.";
 			mes "Please take this first.";
@@ -2122,7 +2118,7 @@ OnTouch_:
 			case 5:
 				getitem 1252,1; //Katar
 			}
-			ASSIN_Q3 = 2;
+			ASSIN_Q3 = 3;
 		}
 		mes "[Guildmaster]";
 		mes "Well, I am giving you a token. Please return to the Assassin expert, the Ferocious-Looking Huey, at the entrance.";
@@ -2165,7 +2161,7 @@ OnTouch_:
 		end;
 	}
 	else if (ASSIN_Q > 7 && ASSIN_Q < 17) {
-		set ASSIN_Q,7;
+		ASSIN_Q = 7;
 		mes "[Guildmaster]";
 		mes "What the hell? You pressed 'Cancel' during the process. Do you want to change your job or what?";
 		next;

+ 1 - 1
npc/jobs/2-2/monk.txt

@@ -385,7 +385,7 @@ monk_in,99,58,1	script	Sensei Moohae#mk	60,{
 		case 3: setarray .@items[0], 905,30, 909,5, 955,10, 5; changequest 3016,3019; break;
 		case 4: setarray .@items[0], 943,5, 935,20, 912,5, 6; changequest 3016,3020; break;
 		case 5: setarray .@items[0], 7053,5, 509,10, 508,10, 7; changequest 3016,3021; break;
-		case 6: setarray .@items[0], 913,10, 948,4, 7033,20, 8; changequest 3016,3022; break;
+		case 6: setarray .@items[0], 913,10, 948,5, 7033,20, 8; changequest 3016,3022; break;
 		case 7: setarray .@items[0], 1027,5, 1025,20, 1042,10, 9; changequest 3016,3023; break;
 		}
 		mes "[Sensei Moohae]";

+ 70 - 0
npc/merchants/inn.txt

@@ -244,6 +244,76 @@ bra_in01,27,24,3	script	Hotel Keeper#bra1	478,{
 	}
 }
 
+//======================== Einbroch =================================
+ein_in01,206,224,3	script	Hotel Employee#ein	855,{
+	mes "[Hotel Employee]";
+	mes "Good day, welcome to the";
+	mes "Einbroch Hotel. The staff is";
+	mes "always striving to accommodate";
+	mes "our guests with the highest";
+	mes "standards in cleanliness,";
+	mes "service and convenience~";
+	next;
+	if (kain_ticket == 5) {
+		mes "[Hotel Employee]";
+		mes "Are you looking";
+		mes "for Mr. Defru Ark?";
+		mes "Oh right, he did mention";
+		mes "waiting for some package";
+		mes "from the Airport. Now let";
+		mes "me pull up that information...";
+		next;
+		mes "[Hotel Employee]";
+		mes "Ah, here we are.";
+		mes "Mr. Defru Ark is";
+		mes "staying in Room 201.";
+		next;
+	}
+	else {
+		switch(select("Save:Take Rest - 5,000 zeny:Cancel")) {
+		case 1:
+			mes "[Hotel Employee]";
+			mes "Your Respawn Point";
+			mes "has been saved here";
+			mes "in the Einbroch Hotel.";
+			mes "Thank you, and please";
+			mes "come again.";
+			close2;
+			savepoint "ein_in01",200,224,1,1;
+			end;
+		case 2:
+			if (Zeny > 4999) {
+				mes "[Hotel Employee]";
+				mes "Thank you.";
+				mes "Please enjoy";
+				mes "your rest~";
+				close2;
+				set Zeny, Zeny-5000;
+				percentheal 100,100;
+				warp "ein_in01",272,167;
+				end;
+			}
+			else {
+				mes "[Hotel Employee]";
+				mes "I'm sorry, but the";
+				mes "accommodation fee is";
+				mes "5,000 zeny. Next time,";
+				mes "please make sure that you";
+				mes "bring enough zeny, okay?";
+				close;
+			}
+		case 3:
+			mes "[Hotel Employee]";
+			mes "Thank you and";
+			mes "please come again~";
+			close;
+		}
+	}
+	mes "[Hotel Employee]";
+	mes "Have a good day.";
+	close;
+}
+
 //======================= Inn Function ==============================
 function	script	F_InnMaid	{
 	.@npc_name$ = getarg(0);

+ 1 - 1
npc/quests/gunslinger_quests.txt

@@ -1018,7 +1018,7 @@ que_ng,149,178,4	script	Lab Director	744,{
 		}
 	}
 	else if(gun_na == 10){
-		if (countitem(999) > 69 && countitem(985) > 4 && countitem(984) > 2 && countitem(1003) > 69 && countitem(7317) > 49 && Zeny > 50000){
+		if (countitem(999) > 69 && countitem(985) > 4 && countitem(984) > 2 && countitem(1003) > 69 && countitem(7317) > 49 && Zeny >= 50000){
 			delitem 999,70;
 			delitem 985,5;
 			delitem 984,3;

+ 8 - 2
npc/quests/quests_amatsu.txt

@@ -1926,18 +1926,24 @@ ama_in01,22,111,0	script	Grandma#ama2	761,{
 		mes "it won't harm me!! Yelp!^000000";
 		next;
 		select("Taaaah!!");
-		if ((BaseJob == Job_Priest || BaseJob != Job_Acolyte && BaseJob != Job_Monk) || (countitem(523) < 1 || countitem(948) < 1 || countitem(1029) < 1)) {
+		if (BaseJob == Job_Priest) {
 			if (rand(1,4) == 1)
 				set .@fox_kill,0;
 			else
 				set .@fox_kill,1;
 		}
-		else {
+		else if (BaseJob == Job_Acolyte || BaseJob == Job_Monk || countitem(523) > 0 || countitem(948) > 0 || countitem(1029) > 0) {
 			if (rand(1,2) == 1)
 				set .@fox_kill,0;
 			else
 				set .@fox_kill,1;
 		}
+		else {
+			if (rand(1,4) == 1)
+				set .@fox_kill,1;
+			else
+				set .@fox_kill,0;
+		}
 		if (.@fox_kill == 1) {
 			mes "[....]";
 			mes "^FF6060Yelp! Yelp! Yelp! Human!";

+ 2 - 2
npc/quests/quests_yuno.txt

@@ -433,7 +433,7 @@ yuno_in01,103,157,3	script	Bain#juno	98,{
 		mes "- after you lose some weight. -";
 		close;
 	}
-	if (countitem(974) > 0 && countitem(612) > 4 && countitem(1003) > 4 && countitem(7068) > 4 && countitem(7043) > 4 && countitem(757) > 2 && countitem(756) > 2 && Zeny > 2000) {
+	if (countitem(974) > 0 && countitem(612) > 4 && countitem(1003) > 4 && countitem(7068) > 4 && countitem(7043) > 4 && countitem(757) > 2 && countitem(756) > 2 && Zeny >= 2000) {
 		if (ALCH_Q == 23) set ALCH_Q,24;
 		set .@kyulkwa,rand(1,10);
 		mes "[Bain]";
@@ -565,7 +565,7 @@ yuno_in01,100,153,7	script	Bajin	47,0,0,{
 		mes "- after you lose some weight. -";
 		close;
 	}
-	if (countitem(974) > 0 && countitem(612) > 4 && countitem(1003) > 4 && countitem(7068) > 4 && countitem(7043) > 4 && countitem(757) > 2 && countitem(756) > 2 && Zeny > 2000) {
+	if (countitem(974) > 0 && countitem(612) > 4 && countitem(1003) > 4 && countitem(7068) > 4 && countitem(7043) > 4 && countitem(757) > 2 && countitem(756) > 2 && Zeny >= 2000) {
 		if (ALCH_Q == 23) set ALCH_Q,24;
 		set .@kyulkwa,rand(1,10);
 		mes "[Bajin]";

+ 1 - 1
npc/re/cities/dewata.txt

@@ -66,7 +66,7 @@ dewata,229,49,6	script	Alberta Sailor#dewata	536,{
 		mes "your trip to ^8B4513Dewata^000000 Island.";
 		mes "Please come again!";
 		close2;
-		warp "alberta",210,198;
+		warp "alberta",192,215;
 		end;
 	case 2:
 		mes "[Alberta Sailor]";

+ 1 - 1
npc/re/cities/malaya.txt

@@ -81,7 +81,7 @@ malaya,276,55,4	script	Optamara Crew#malaya	100,{
 		mes "[Optamara Crew]";
 		mes "Great! Let's leave now for Alberta!!";
 		close2;
-		warp "alberta",239,68;
+		warp "alberta",192,217;
 		end;
 	case 2:
 		mes "[Optamara Crew]";

+ 2 - 2
npc/re/instances/CorOperation.txt

@@ -444,7 +444,7 @@ OnTimer17000:
 		setd("'rf_" + strnpcinfo(2),1);
 		specialeffect2 EF_ENHANCE;
 		specialeffect2 EF_LIGHTSPHERE_STAR;
-		sc_start SC_GLASTHEIM_STATE,30000,1,10000,SCSTART_NOTICKDEF;
+		sc_start SC_GLASTHEIM_STATE,30000,20,10000,SCSTART_NOTICKDEF;
 		npctalk "Power, Overwhelming power!";
 		unittalk getcharid(3),strcharinfo(0) + " : My whole body is full of power!",bc_self;
 		sleep 1500;
@@ -890,7 +890,7 @@ OnTouch:
 		setd("'rf_" + strnpcinfo(2),1);
 		specialeffect2 EF_ENHANCE;
 		specialeffect2 EF_LIGHTSPHERE_STAR;
-		sc_start SC_GLASTHEIM_STATE,30000,1,10000,SCSTART_NOTICKDEF;
+		sc_start SC_GLASTHEIM_STATE,30000,20,10000,SCSTART_NOTICKDEF;
 		npctalk "Power, Overwhelming power!";
 		unittalk getcharid(3),strcharinfo(0) + " : My whole body is full of power!",bc_self;
 		sleep 1500;

+ 6 - 6
npc/re/instances/OldGlastHeim.txt

@@ -1979,16 +1979,16 @@ OnTouch:
 	specialeffect2 EF_ENHANCE;
 	.@num = atoi( replacestr(strnpcinfo(2), "Buff", "") );
 	if (.@num == 1)
-		sc_start SC_GLASTHEIM_HIDDEN,30000,1,10000,SCSTART_NOTICKDEF;
+		sc_start SC_GLASTHEIM_HIDDEN,30000,90,10000,SCSTART_NOTICKDEF;
 	else if (.@num == 2)
-		sc_start SC_GLASTHEIM_STATE,30000,1,10000,SCSTART_NOTICKDEF;
+		sc_start SC_GLASTHEIM_STATE,30000,20,10000,SCSTART_NOTICKDEF;
 	else if (.@num == 3) {
-		sc_start SC_GLASTHEIM_HEAL,30000,1,10000,SCSTART_NOTICKDEF;
-		sc_start SC_GLASTHEIM_HPSP,30000,1,10000,SCSTART_NOTICKDEF;
+		sc_start2 SC_GLASTHEIM_HEAL,30000,100,50,10000,SCSTART_NOTICKDEF;
+		sc_start2 SC_GLASTHEIM_HPSP,30000,10000,1000,10000,SCSTART_NOTICKDEF;
 	}
 	else {
-		sc_start SC_GLASTHEIM_DEF,30000,1,10000,SCSTART_NOTICKDEF;
-		sc_start SC_GLASTHEIM_ITEMDEF,30000,1,10000,SCSTART_NOTICKDEF;
+		sc_start SC_GLASTHEIM_DEF,30000,100,10000,SCSTART_NOTICKDEF;
+		sc_start2 SC_GLASTHEIM_ITEMDEF,30000,200,50,10000,SCSTART_NOTICKDEF;
 	}
 	end;
 OnEvent:

+ 10 - 0
npc/re/mapflag/noteleport.txt

@@ -457,3 +457,13 @@ que_thr	mapflag	noteleport
 //============================================================
 itemmall	mapflag	noteleport
 itemmall	mapflag	monster_noteleport
+
+//============================================================
+// Forgotten Area 1
+//============================================================
+for_dun01	mapflag	noteleport
+
+//============================================================
+// Forgotten Area 2
+//============================================================
+for_dun02	mapflag	noteleport

+ 8 - 6
npc/re/merchants/barters.yml

@@ -47,18 +47,20 @@ Header:
 
 Footer:
   Imports:
+  - Path: npc/re/merchants/barters/cashmall.yml
+  - Path: npc/re/merchants/barters/enchan_illusion_dungeons.yml
+  - Path: npc/re/merchants/barters/enchantgrade.yml
   - Path: npc/re/merchants/barters/Extended_Ammunition.yml
+  - Path: npc/re/merchants/barters/garden_of_time.yml
   - Path: npc/re/merchants/barters/Gemstone_Bagger.yml
+  - Path: npc/re/merchants/barters/mysterious_cookie_shop.yml
   - Path: npc/re/merchants/barters/quests_16_1.yml
   - Path: npc/re/merchants/barters/quests_16_2.yml
   - Path: npc/re/merchants/barters/quests_17_1.yml
   - Path: npc/re/merchants/barters/quests_17_2.yml
+  - Path: npc/re/merchants/barters/quests_18.yml
+  - Path: npc/re/merchants/barters/quests_exp_175.yml
   - Path: npc/re/merchants/barters/refine.yml
-  - Path: npc/re/merchants/barters/enchantgrade.yml
-  - Path: npc/re/merchants/barters/cashmall.yml
   - Path: npc/re/merchants/barters/rgsr_in.yml
-  - Path: npc/re/merchants/barters/enchan_illusion_dungeons.yml
-  - Path: npc/re/merchants/barters/quests_exp_175.yml
-  - Path: npc/re/merchants/barters/mysterious_cookie_shop.yml
-  - Path: npc/re/merchants/barters/quests_18.yml
   - Path: npc/re/merchants/barters/quests_19.yml
+

+ 355 - 0
npc/re/merchants/barters/garden_of_time.yml

@@ -0,0 +1,355 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2024 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Barter Database
+###########################################################################
+#
+# Barter Settings
+#
+###########################################################################
+#  - Name               NPC name.
+#    Map                Map name. (Default: not on a map)
+#    X                  Map x coordinate. (Default: 0)
+#    Y                  Map y coordinate. (Default: 0)
+#    Direction          Direction the NPC is looking. (Default: North)
+#    Sprite             Sprite name of the NPC. (Default: FakeNpc)
+#    Items:             List of sold items.
+#      - Index          Index of the item inside the shop. (0-...)
+#                       Maximum index depends on client.
+#        Item           Aegis name of the item.
+#        Stock          Amount of item in stock. 0 means unlimited. (Default: 0)
+#        Zeny           Cost of them item in Zeny. (Default: 0)
+#        RequiredItems: List of required items (Optional)
+#          - Index      Index of the required item. (0-4)
+#            Item       Aegis name of required item.
+#            Amount     Amount of required item. (Default: 1)
+#            Refine     Refine level of required item. (Default: 0)
+###########################################################################
+
+Header:
+  Type: BARTER_DB
+  Version: 1
+
+Body:
+  - Name: barter_t_garden_1
+    Items:
+      - Index: 0
+        Item: Energy_Of_Flame
+        Zeny: 10000
+        RequiredItems:
+          - Index: 0
+            Item: Contored_Agn_Wrath
+            Amount: 10
+          - Index: 1
+            Item: Coagulated_Spell
+            Amount: 5
+          - Index: 2
+            Item: Polluted_Spell
+      - Index: 1
+        Item: Energy_Of_Water
+        Zeny: 10000
+        RequiredItems:
+          - Index: 0
+            Item: Contored_Aqu_Wrath
+            Amount: 10
+          - Index: 1
+            Item: Coagulated_Spell
+            Amount: 5
+          - Index: 2
+            Item: Polluted_Spell
+      - Index: 2
+        Item: Energy_Of_Wind
+        Zeny: 10000
+        RequiredItems:
+          - Index: 0
+            Item: Contored_Ven_Wrath
+            Amount: 10
+          - Index: 1
+            Item: Coagulated_Spell
+            Amount: 5
+          - Index: 2
+            Item: Polluted_Spell
+      - Index: 3
+        Item: Energy_Of_Ground
+        Zeny: 10000
+        RequiredItems:
+          - Index: 0
+            Item: Contored_Ter_Wrath
+            Amount: 10
+          - Index: 1
+            Item: Coagulated_Spell
+            Amount: 5
+          - Index: 2
+            Item: Polluted_Spell
+      - Index: 4
+        Item: Grace_Of_Spirit
+        Zeny: 30000
+        RequiredItems:
+          - Index: 0
+            Item: Contored_Spi_Wrath
+            Amount: 10
+          - Index: 1
+            Item: Spell_Of_Time
+            Amount: 3
+          - Index: 2
+            Item: Jewel_Of_Time_Ore
+            Amount: 3
+          - Index: 3
+            Item: GH_Cursed_Crystal
+            Amount: 3
+      - Index: 5
+        Item: Energy_Of_Elemental
+        RequiredItems:
+          - Index: 0
+            Item: Contored_Agn_Wrath
+            Amount: 10
+          - Index: 1
+            Item: Contored_Aqu_Wrath
+            Amount: 10
+          - Index: 2
+            Item: Contored_Ven_Wrath
+            Amount: 10
+          - Index: 3
+            Item: Contored_Ter_Wrath
+            Amount: 10
+          - Index: 4
+            Item: Polluted_Spell
+            Amount: 5
+  - Name: barter_t_garden_2
+    Items:
+      - Index: 0
+        Item: Energy_Of_Spring
+        Zeny: 50000
+        RequiredItems:
+          - Index: 0
+            Item: Energy_Of_Summer
+          - Index: 1
+            Item: Energy_Of_Autumn
+          - Index: 2
+            Item: Energy_Of_Winter
+          - Index: 3
+            Item: Temporal_Crystal
+            Amount: 50
+      - Index: 1
+        Item: Energy_Of_Summer
+        Zeny: 50000
+        RequiredItems:
+          - Index: 0
+            Item: Energy_Of_Spring
+          - Index: 1
+            Item: Energy_Of_Autumn
+          - Index: 2
+            Item: Energy_Of_Winter
+          - Index: 3
+            Item: Temporal_Crystal
+            Amount: 50
+      - Index: 2
+        Item: Energy_Of_Autumn
+        Zeny: 50000
+        RequiredItems:
+          - Index: 0
+            Item: Energy_Of_Spring
+          - Index: 1
+            Item: Energy_Of_Summer
+          - Index: 2
+            Item: Energy_Of_Winter
+          - Index: 3
+            Item: Temporal_Crystal
+            Amount: 50
+      - Index: 3
+        Item: Energy_Of_Winter
+        Zeny: 50000
+        RequiredItems:
+          - Index: 0
+            Item: Energy_Of_Spring
+          - Index: 1
+            Item: Energy_Of_Summer
+          - Index: 2
+            Item: Energy_Of_Autumn
+          - Index: 3
+            Item: Temporal_Crystal
+            Amount: 50
+  - Name: barter_t_garden_3
+    Items:
+      - Index: 0
+        Item: Unsealing_Scroll
+        Zeny: 5000
+        RequiredItems:
+          - Index: 0
+            Item: MD_Hol_Fragment
+          - Index: 1
+            Item: Etel_Dust
+            Amount: 10
+      - Index: 1
+        Item: Warm_Shield_Scroll
+        Zeny: 5000
+        RequiredItems:
+          - Index: 0
+            Item: MD_Hol_Fragment
+          - Index: 1
+            Item: Etel_Dust
+            Amount: 10
+      - Index: 2
+        Item: MD_Hol_Key
+        Zeny: 300000
+        RequiredItems:
+          - Index: 0
+            Item: MD_Hol_Fragment
+            Amount: 100
+          - Index: 1
+            Item: Etel_Dust
+            Amount: 150
+      - Index: 3
+        Item: Forgotten_Crystal_1
+        Zeny: 1500
+      - Index: 4
+        Item: Forgotten_Crystal_2
+        Zeny: 1500
+  - Name: barter_t_garden_4
+    Items:
+      - Index: 0
+        Item: Signet_Of_Spring
+        Zeny: 5000000
+        RequiredItems:
+          - Index: 0
+            Item: Spring_Material_1
+            Amount: 3
+          - Index: 1
+            Item: Spring_Material_2
+            Amount: 3
+          - Index: 2
+            Item: Spring_Material_3
+            Amount: 3
+          - Index: 3
+            Item: Fruit_Of_Birth
+            Amount: 25
+          - Index: 4
+            Item: Fruit_Of_Extinction
+            Amount: 25
+      - Index: 1
+        Item: Signet_Of_Summer
+        Zeny: 5000000
+        RequiredItems:
+          - Index: 0
+            Item: Summer_Material_1
+            Amount: 3
+          - Index: 1
+            Item: Summer_Material_2
+            Amount: 3
+          - Index: 2
+            Item: Summer_Material_3
+            Amount: 3
+          - Index: 3
+            Item: Fruit_Of_Birth
+            Amount: 25
+          - Index: 4
+            Item: Fruit_Of_Extinction
+            Amount: 25
+      - Index: 2
+        Item: Signet_Of_Autumn
+        Zeny: 5000000
+        RequiredItems:
+          - Index: 0
+            Item: Autumn_Material_1
+            Amount: 3
+          - Index: 1
+            Item: Autumn_Material_2
+            Amount: 3
+          - Index: 2
+            Item: Autumn_Material_3
+            Amount: 3
+          - Index: 3
+            Item: Fruit_Of_Birth
+            Amount: 25
+          - Index: 4
+            Item: Fruit_Of_Extinction
+            Amount: 25
+      - Index: 3
+        Item: Signet_Of_Winter
+        Zeny: 5000000
+        RequiredItems:
+          - Index: 0
+            Item: Winter_Material_1
+            Amount: 3
+          - Index: 1
+            Item: Winter_Material_2
+            Amount: 3
+          - Index: 2
+            Item: Winter_Material_3
+            Amount: 3
+          - Index: 3
+            Item: Fruit_Of_Birth
+            Amount: 25
+          - Index: 4
+            Item: Fruit_Of_Extinction
+            Amount: 25
+  - Name: barter_t_garden_5
+    Items:
+      - Index: 0
+        Item: Season_Hood_Spring
+        Zeny: 5000000
+        RequiredItems:
+          - Index: 0
+            Item: Spring_Material_1
+            Amount: 3
+          - Index: 1
+            Item: Spring_Material_2
+            Amount: 3
+          - Index: 2
+            Item: Spring_Material_3
+            Amount: 3
+      - Index: 1
+        Item: Season_Hood_Summer
+        Zeny: 5000000
+        RequiredItems:
+          - Index: 0
+            Item: Summer_Material_1
+            Amount: 3
+          - Index: 1
+            Item: Summer_Material_2
+            Amount: 3
+          - Index: 2
+            Item: Summer_Material_3
+            Amount: 3
+      - Index: 2
+        Item: Season_Hood_Autumn
+        Zeny: 5000000
+        RequiredItems:
+          - Index: 0
+            Item: Autumn_Material_1
+            Amount: 3
+          - Index: 1
+            Item: Autumn_Material_2
+            Amount: 3
+          - Index: 2
+            Item: Autumn_Material_3
+            Amount: 3
+      - Index: 3
+        Item: Season_Hood_Winter
+        Zeny: 5000000
+        RequiredItems:
+          - Index: 0
+            Item: Winter_Material_1
+            Amount: 3
+          - Index: 1
+            Item: Winter_Material_2
+            Amount: 3
+          - Index: 2
+            Item: Winter_Material_3
+            Amount: 3
+

+ 3 - 3
npc/re/merchants/barters/quests_18.yml

@@ -91,19 +91,19 @@ Body:
             Item: Ep18_Amethyst_Fragment
             Amount: 350
       - Index: 7
-        Item: Gray_W_Robe
+        Item: Gray_W_Ring
         RequiredItems:
           - Index: 0
             Item: Ep18_Amethyst_Fragment
             Amount: 350
       - Index: 8
-        Item: Gray_W_Ring
+        Item: Gray_W_Earing
         RequiredItems:
           - Index: 0
             Item: Ep18_Amethyst_Fragment
             Amount: 350
       - Index: 9
-        Item: Gray_W_Earing
+        Item: Gray_W_Necklace
         RequiredItems:
           - Index: 0
             Item: Ep18_Amethyst_Fragment

+ 117 - 0
npc/re/mobs/dungeons/for_dun.txt

@@ -0,0 +1,117 @@
+//===== rAthena Script =======================================
+//= Hall of Life
+//===== Description: =========================================
+//= Hall of Life Monster Spawn Script.
+//===== Additional Comments: =================================
+//= 1.0 First version. [Atemo]
+//============================================================
+
+for_dun01	monster	--ja--	22192,12	// SPIRIT_G_LAND_S
+for_dun01	monster	--ja--	22193,16	// SPIRIT_G_LAND_M
+for_dun01	monster	--ja--	22194,18	// SPIRIT_G_LAND_L
+for_dun01	monster	--ja--	22196,12	// SPIRIT_B_FLAME_S
+for_dun01	monster	--ja--	22197,16	// SPIRIT_B_FLAME_M
+for_dun01	monster	--ja--	22198,18	// SPIRIT_B_FLAME_L
+for_dun01	monster	--ja--	22200,12	// SPIRIT_S_WIND_S
+for_dun01	monster	--ja--	22201,16	// SPIRIT_S_WIND_M
+for_dun01	monster	--ja--	22202,18	// SPIRIT_S_WIND_L
+for_dun01	monster	--ja--	22204,12	// SPIRIT_I_WATER_S
+for_dun01	monster	--ja--	22205,16	// SPIRIT_I_WATER_M
+for_dun01	monster	--ja--	22206,18	// SPIRIT_I_WATER_L
+for_dun01	monster	--ja--	22195,4	// SPIRIT_G_LAND_SL
+for_dun01	monster	--ja--	22199,4	// SPIRIT_B_FLAME_SL
+for_dun01	monster	--ja--	22203,4	// SPIRIT_S_WIND_SL
+for_dun01	monster	--ja--	22207,4	// SPIRIT_I_WATER_SL
+
+for_dun02	monster	--ja--	22216,24	// SPIRIT_H_WATER_S
+for_dun02	monster	--ja--	22217,28	// SPIRIT_H_WATER_M
+for_dun02	monster	--ja--	22218,32	// SPIRIT_H_WATER_L
+for_dun02	monster	--ja--	22220,24	// SPIRIT_D_WIND_S
+for_dun02	monster	--ja--	22221,28	// SPIRIT_D_WIND_M
+for_dun02	monster	--ja--	22222,32	// SPIRIT_D_WIND_L
+for_dun02	monster	--ja--	22224,24	// SPIRIT_R_FLAME_S
+for_dun02	monster	--ja--	22225,28	// SPIRIT_R_FLAME_M
+for_dun02	monster	--ja--	22226,32	// SPIRIT_R_FLAME_L
+for_dun02	monster	--ja--	22228,24	// SPIRIT_F_LAND_S
+for_dun02	monster	--ja--	22229,28	// SPIRIT_F_LAND_M
+for_dun02	monster	--ja--	22230,32	// SPIRIT_F_LAND_L
+for_dun02	monster	--ja--	22219,7	// SPIRIT_H_WATER_SL
+for_dun02	monster	--ja--	22223,7	// SPIRIT_D_WIND_SL
+for_dun02	monster	--ja--	22227,7	// SPIRIT_R_FLAME_SL
+for_dun02	monster	--ja--	22231,7	// SPIRIT_F_LAND_SL
+
+t_garden,1,1,0	script	control_t_garden	HIDDEN_WARP_NPC,{
+	end;
+OnInit:
+OnMinute59:
+	.zone = !.zone;
+
+	if (.zone == 0) {	// Zone 2 (for_dun01) -> Zone 1 (for_dun02)
+		mapannounce "t_garden", "In approximately 1 minute, the dimensional contamination in Area 2 will subside and a large-scale dimensional contamination will occur in Area 1.", bc_map, 0xCCFF00;
+		mapannounce "for_dun02", "Large-scale dimensional contamination event will occur in this dungeon in approximately 1 minute.", bc_map, 0xFFDD;
+		mapannounce "for_dun01", "The dimensional contamination phenomenon in this dungeon is expected to subside in about 1 minute.", bc_map, 0xFFDD;
+	}
+	else {	// Zone 1 (for_dun02) -> Zone 2 (for_dun01)
+		mapannounce "t_garden", "In approximately 1 minute, the dimensional contamination in Area 1 will subside and a large-scale dimensional contamination will occur in Area 2.", bc_map, 0xCCFF00;
+		mapannounce "for_dun02", "The dimensional contamination phenomenon in this dungeon is expected to subside in about 1 minute.", bc_map, 0xFFDD;
+		mapannounce "for_dun01", "Large-scale dimensional contamination event will occur in this dungeon in approximately 1 minute.", bc_map, 0xFFDD;
+	}
+	initnpctimer;
+	end;
+
+OnTimer60000:
+	stopnpctimer;
+
+	for ( .@i = 22208; .@i <= 22215; ++.@i )
+		killmonster "for_dun01", "control_t_garden::OnMob" + .@i;
+	for ( .@i = 22232; .@i <= 22239; ++.@i )
+		killmonster "for_dun02", "control_t_garden::OnMob" + .@i;
+
+	if (.zone == 0) {	// Zone 2 (for_dun01) -> Zone 1 (for_dun02)
+		mapannounce "t_garden", "Forgotten Memories : The dimensional contamination phenomenon in Area 2 has calmed down, and a large-scale dimensional contamination phenomenon has occurred in Area 1.", bc_map, 0xFFDD;
+		mapannounce "for_dun02", "Large-scale dimensional contamination is occurring in this dungeon...", bc_map, 0xFFDD;
+		mapannounce "for_dun01", "All dimensional contamination that occurred in this dungeon has been calmed down.", bc_map, 0xFFDD;
+
+		callsub( S_Spawn, "for_dun02", 22232, 22239, 12 );
+	}
+	else {	// Zone 1 (for_dun02) -> Zone 2 (for_dun01)
+		mapannounce "t_garden", "Forgotten Memories : The dimensional contamination phenomenon in Area 1 has calmed down, and a large-scale dimensional contamination phenomenon has occurred in Area 2.", bc_map, 0xFFDD;
+		mapannounce "for_dun02", "All dimensional contamination that occurred in this dungeon has been calmed down.", bc_map, 0xFFDD;
+		mapannounce "for_dun01", "Large-scale dimensional contamination is occurring in this dungeon...", bc_map, 0xFFDD;
+		
+		callsub( S_Spawn, "for_dun01", 22208, 22215, 6 );
+	}
+	end;
+
+S_Spawn:
+	.@map$ = getarg(0);
+	.@id_min = getarg(1);
+	.@id_max = getarg(2);
+	.@amount = getarg(3);
+
+	for ( .@i = .@id_min; .@i <= .@id_max; ++.@i )
+		monster .@map$,0,0,"--ja--",.@i,.@amount, "control_t_garden::OnMob" + .@i;
+	return;
+
+OnMob22210: callsub( S_Mob, "for_dun01", 22210 );
+OnMob22209: callsub( S_Mob, "for_dun01", 22209 );
+OnMob22208: callsub( S_Mob, "for_dun01", 22208 );
+OnMob22211: callsub( S_Mob, "for_dun01", 22211 );
+OnMob22214: callsub( S_Mob, "for_dun01", 22214 );
+OnMob22213: callsub( S_Mob, "for_dun01", 22213 );
+OnMob22212: callsub( S_Mob, "for_dun01", 22212 );
+OnMob22215: callsub( S_Mob, "for_dun01", 22215 );
+
+OnMob22234: callsub( S_Mob, "for_dun02", 22234 );
+OnMob22233: callsub( S_Mob, "for_dun02", 22233 );
+OnMob22232: callsub( S_Mob, "for_dun02", 22232 );
+OnMob22235: callsub( S_Mob, "for_dun02", 22235 );
+OnMob22238: callsub( S_Mob, "for_dun02", 22238 );
+OnMob22237: callsub( S_Mob, "for_dun02", 22237 );
+OnMob22236: callsub( S_Mob, "for_dun02", 22236 );
+OnMob22239: callsub( S_Mob, "for_dun02", 22239 );
+
+S_Mob:
+	monster getarg(0),0,0,"--ja--",getarg(1),1, "control_t_garden::OnMob" + getarg(1);
+	end;
+}

+ 2 - 2
npc/re/mobs/dungeons/slabw01.txt

@@ -5,9 +5,9 @@
 //===== Additional Comments: =================================
 //= 1.0 First version.
 //      Venomous Chimera spawn timer is custom. [Capuche]
+//= 1.1 Updated Venomous Chimera spawn timer. [Capuche]
 //============================================================
 
 slabw01	monster	Human Chimera	3631,45
 slabw01	monster	Material Chimera	3632,45
-// unknown timer
-slabw01	monster	Venomous Chimera	3633,1,18000000,600000,0
+slabw01	boss_monster	Venomous Chimera	3633,1,3600000,600000,0

+ 1595 - 0
npc/re/quests/garden_of_time.txt

@@ -0,0 +1,1595 @@
+//===== rAthena Script =======================================
+//= Hall of Life
+//===== Description: =========================================
+//= [Walkthrough Conversion]
+//= Quest NPCs - Hall of Life
+//===== Changelog: ===========================================
+//= 1.0 Initial release [Atemo]
+//============================================================
+
+function	script	F_mesnavi	{
+	return "<NAVI>[" + getarg(0) + "]<INFO>" + getarg(1) + "," + getarg(2) + "," + getarg(3) + ",0,101,0</INFO></NAVI>";
+}
+
+// Warps
+xmas_fild01,158,246,2	script	Dimensional barrier#got1	GATE_SKYBLUE,2,2,{
+	// Fallthrough
+OnTouch:
+	warp "t_garden",116,47;
+	end;
+
+OnInit:
+	questinfo( QTYPE_QUEST, QMARK_YELLOW, "BaseLevel >= 250 && isbegin_quest(12592) == 0" );
+	end;
+}
+
+t_garden,111,36,2	script	Dimensional Barrier#got2	GATE_SKYBLUE,2,2,{
+	// Fallthrough
+OnTouch:
+	warp "xmas_fild01",150,240;
+	end;
+}
+
+// t_garden,118,66,0	script	#wp01	HIDDEN_WARP_NPC,3,1,{	// (NPC name is not unique)
+t_garden,118,66,0	script	#wp01_t_garden	HIDDEN_WARP_NPC,3,1,{
+	end;
+OnTouch:
+	specialeffect2 EF_FLOWERCAST;
+	setpcblock PCBLOCK_NPC, true;
+	sleep2 500;
+	setpcblock PCBLOCK_NPC, false;
+	if (BaseLevel < 250)
+		warp "xmas_fild01",150,240;
+	else
+		warp "t_garden",118,79;
+	end;
+}
+
+// t_garden,118,72,0	script	#wp02	HIDDEN_WARP_NPC,3,1,{	// (NPC name is not unique)
+t_garden,118,72,0	script	#wp02_t_garden	HIDDEN_WARP_NPC,3,1,{
+	end;
+OnTouch:
+	specialeffect2 EF_FLOWERCAST;
+	setpcblock PCBLOCK_NPC, true;
+	sleep2 500;
+	setpcblock PCBLOCK_NPC, false;
+	if (BaseLevel < 250)
+		warp "xmas_fild01",150,240;
+	else
+		warp "t_garden",118,61;
+	end;
+}
+
+
+// Quest starter
+t_garden,116,47,0	script	#life_wp11	HIDDEN_WARP_NPC,2,2,{
+	end;
+OnTouch:
+	if (BaseLevel < 250)
+		end;
+	if (isbegin_quest(12592) == 0) {
+		removespecialeffect 1145, AREA, "Oscar#life";
+		cloakoffnpcself( "Oscar#life" );
+		cloakoffnpcself( "Leticia#life" );
+		cloakoffnpcself( "Rigel#life" );
+		specialeffect 1145, AREA, "Oscar#life";
+		end;
+	}
+	end;
+}
+	
+t_garden,114,49,6	script(CLOAKED)	Leticia#life	4_4JOB_LETICIA,{
+	mes "^0000ffShe is not paying attention to you because she is explaining something to Oscar.^000007";
+	close;
+}
+
+t_garden,118,49,3	script(CLOAKED)	Rigel#life	4_CS_RIGEL,{
+	mes "^0000ffIt seems like they are focusing on the story of Oscar and Leticia.^000007";
+	close;
+}
+
+t_garden,119,46,2	script(CLOAKED)	Oscar#life	4_ED_OSCAR,{
+	if (BaseLevel < 250)
+		end;
+	if (isbegin_quest(12592) == 0) {
+		emotion ET_THROB;
+		mes "^0000ffOscar appears to be talking to someone.^000000";
+		next;
+		if (select( "Quit and step away", "Eavesdrop from the side." ) == 1) {
+			mes "^0000ffOf course, eavesdropping is a bit like that.^000000";
+			close;
+		}
+		cutin "OSCAR03.bmp",2;
+		mes "[Oscar]";
+		mes "So, is your claim that I happened to find a crack near Lutie and came in and found this garden?";
+		next;
+		cutin "4job_leticia_01.png",2;
+		mes "[Leticia]";
+		mes "That's right!";
+		next;
+		cutin "OSCAR03.bmp",2;
+		mes "[Oscar]";
+		mes "Why did you do that, Leticia?";
+		next;
+		cutin "4job_leticia_04.png",2;
+		mes "[Leticia]";
+		mes "Why! Doesn't this place look really useful? A nice garden and an unidentifiable mansion! This is perfect, Oscar!";
+		next;
+		cutin "OSCAR03.bmp",2;
+		mes "[Oscar]";
+		mes "You don't understand, Leticia. You found a crack, but I'm asking why you called me here without extinguishing it.";
+		next;
+		cutin "4job_leticia_05.png",2;
+		mes "[Leticia]";
+		mes "Well... that's right, it would be a waste to destroy it.";
+		next;
+		cutin "OSCAR03.bmp",2;
+		mes "[Oscar]";
+		mes "You didn't destroy it because it was a waste~ and what?";
+		next;
+		cutin "4job_leticia_02.png",2;
+		mes "[Leticia]";
+		mes "Oscar, you've been wandering around without a proper place to live. No matter how good a person you are, you shouldn't just volunteer like this!";
+		next;
+		cutin "OSCAR09.bmp",2;
+		mes "[Oscar]";
+		mes "Huh?";
+		next;
+		cutin "rigel_halfeyes02.png",2;
+		mes "[Rigel]";
+		mes "Leticia is begging you to stop acting like a homeless person, buy a decent house, and live like a constellation. It's not good to keep ignoring what others say.";
+		next;
+		cutin "OSCAR07.bmp",2;
+		mes "[Oscar]";
+		mes "Homeless..., am I not that bad? Are you looking at me like that, Leticia?";
+		next;
+		cutin "4job_leticia_02.png",2;
+		mes "[Leticia]";
+		mes "Even Betelgeuse, who came to this continent a long time ago, already has a decent home of his own! I think it's unreasonable for Oscar to wander around like this without a place to live!";
+		next;
+		cutin "OSCAR04.bmp",2;
+		mes "[Oscar]";
+		mes "Okay, I understand your intentions. I still have to think about how to handle this in the right way...";
+		next;
+		cutin "rigel05.png",2;
+		mes "[Rigel]";
+		mes "From what I've looked at, there are a few unstable dimensional passages, but they don't seem to be very dangerous. Leticia has a point.";
+		next;
+		cutin "rigel_halfeyes02.png",2;
+		mes "[Rigel]";
+		mes "I think I and Leticia could find an appropriate use for the unstable dimensional passages. What do you think, Leticia?";
+		next;
+		cutin "4job_leticia_05.png",2;
+		mes "[Leticia]";
+		mes "I agree, Rigel! I think the unstable area near the center of the garden can be stabilized by imposing restrictions in the form of a dungeon. I'll take care of that!";
+		next;
+		cutin "rigel_halfeyes02.png",2;
+		mes "[Rigel]";
+		mes "The flower garden to the north of the garden is unstable and connected to another dimension. I'll do some work there.";
+		next;
+		cutin "OSCAR05.bmp",2;
+		mes "[Oscar]";
+		mes "Wow, I didn't know these two would get along so well. It's not like they planned it in advance or anything, right?";
+		next;
+		cutin "rigel_halfeyes01.png",2;
+		mes "[Rigel]";
+		mes "That's not important, Oscar. Do you feel anything about the central mansion?";
+		next;
+		cutin "OSCAR01.bmp",2;
+		mes "[Oscar]";
+		mes "Oh, you mean 'that'? I feel it very well.";
+		next;
+		cutin "rigel_halfeyes02.png",2;
+		mes "[Rigel]";
+		mes "It seems like it's an issue involving ^0000fftime^000000, so I don't think Leticia or me can do anything about it. Oscar, you can do it, right?";
+		next;
+		cutin "OSCAR07.bmp",2;
+		mes "[Oscar]";
+		mes "Ugh... that's my responsibility, so it's right for me to go regardless of whether it works or not.";
+		next;
+		cutin "4job_leticia_05.png",2;
+		mes "[Leticia]";
+		mes "Then, let's go do some garden maintenance first. There's an adventurer who's eavesdropping nearby, so it would be perfect if we go together!";
+		next;
+		select( "Yes? Me too?" );
+		cutin "4job_leticia_04.png",2;
+		mes "[Leticia]";
+		mes "You're saying the obvious. If you've heard the story up to this point, you probably already know what's going on. Don't talk nonsense and just follow me into the garden.";
+		setquest 12592;
+		completequest 12592;
+		setquest 12593;
+		setquest 12594;
+		setquest 12618;
+		close2;
+		cutin "",255;
+		cloakonnpcself( "Oscar#life" );
+		cloakonnpcself( "Leticia#life" );
+		cloakonnpcself( "Rigel#life" );
+		end;
+	}
+	end;
+
+OnInit:
+	questinfo( QTYPE_QUEST, QMARK_YELLOW, "BaseLevel >= 250 && isbegin_quest(12592) == 0" );
+	end;
+}
+
+
+// A. Quests to access dungeons
+// t_garden,118,91,0	script	#wp01	HIDDEN_WARP_NPC,2,2,{	// (NPC name is not unique)
+t_garden,118,91,0	script	#wp01_t_garden_1	HIDDEN_WARP_NPC,2,2,{
+	end;
+OnTouch:
+	if (isbegin_quest(12592) == 2) {
+		cloakoffnpcself( "Leticia#life2" );	// note: always uncloaked at this point
+		end;
+	}
+	end;
+}
+
+t_garden,118,91,6	script(CLOAKED)	Leticia#life2	4_4JOB_LETICIA,{
+	if (isbegin_quest(12593) == 1) {
+		cutin "4job_leticia_02.png",2;
+		mes "[Leticia]";
+		mes "The flow of time inside that mansion is different from our current time. So, we don't know when Oscar will fully restore the mansion.";
+		next;
+		cutin "4job_leticia_01.png",2;
+		mes "[Leticia]";
+		mes "But we can't just bite our fingers. Moreover, from what the spirits who came here say, it seems like there is something else we need to do.";
+		next;
+		cutin "4job_leticia_05.png",2;
+		mes "[Leticia]";
+		mes "And I heard that the spirits that originally guarded this space were driven out by their compatriots who became fierce for some reason.";
+		next;
+		cutin "4job_leticia_04.png",2;
+		mes "[Leticia]";
+		mes "Perhaps due to the unstable energy flow, the attributes of nature were twisted and transformed and the spirits became fierce. They were told to rest for a while in the northwest of the garden.";
+		next;
+		cutin "4job_leticia_04.png",2;
+		mes "[Leticia]";
+		mes "According to their words, it seems that the cause is foreign spirits from the dimension connected to this place, so it would be better to reduce the number of those foreign things.";
+		next;
+		cutin "4job_leticia_01.png",2;
+		mes "[Leticia]";
+		mes "I'm going to need your help here. I need to gather energy flows to the east and west to create a gate, so let's move.";
+		completequest 12593;
+		setquest 12595;
+		setquest 12596;
+		close3;
+	}
+	if (isbegin_quest(12595) == 1 || isbegin_quest(12596) == 1) {
+		cutin "4job_leticia_01.png",2;
+		mes "[Leticia]";
+		mes "Not all exits are activated. Activate both the east and west exits and then come find me.";
+		close3;
+	}
+	if (isbegin_quest(12620) == 0) {
+		cutin "4job_leticia_01.png",2;
+		setpcblock PCBLOCK_NPC, true;
+		sleep2 500;
+		setpcblock PCBLOCK_NPC, false;
+		cutin "4job_leticia_05.png",2;
+		mes "[Leticia]";
+		mes "We gathered all the spirits that were asking for help around here and concentrated them in the northwest of the central square. They are really noisy.";
+		next;
+		cutin "4job_leticia_03.png",2;
+		mes "[Leticia]";
+		mes "They're probably just waiting for you to arrive. It's up to you whether you help them or not, but it wouldn't be a loss to help the spirits. I recommend going at least once.";
+		setquest 12620;
+		close3;
+	}
+	cutin "4job_leticia_01.png",2;
+	mes "[Leticia]";
+	mes "Have you tried talking to the spirits? There won't be any harm in becoming friends with them.";
+	close3;
+
+OnInit:
+	questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(12593) == 1" );
+	questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(12620) == 0 && isbegin_quest(12595) == 2 && isbegin_quest(12596) == 2" );
+	end;
+}
+
+t_garden,82,92,0	script	#life_wp2	HIDDEN_WARP_NPC,3,3,{
+	end;
+OnTouch:
+	switch( isbegin_quest(12595) ) {
+	case 0:
+		end;
+	case 1:
+		cutin "4job_leticia_01.png",2;
+		mes "[Leticia]";
+		mes "Okay, that's enough. It will open a passage to the place where the unholy energy is on the time seal seen there.";
+		next;
+		cutin "4job_leticia_02.png",2;
+		mes "[Leticia]";
+		mes "Are you ready? Then extend your hand forward and keep your eyes on the seal as if you are focusing the power I'm giving you onto the seal.";
+		// close2;
+		next;
+		select( "Reach out hand and watch the seal" );
+		setpcblock PCBLOCK_NPC, true;
+		cutin "",255;
+		specialeffect2 EF_BEGINSPELL_N3;
+		sleep2 2500;
+		specialeffect EF_LORD, AREA, "Passage of Time#1";
+		sleep2 1500;
+		specialeffect EF_BAKU, AREA, "Passage of Time#1";
+		sleep2 1000;
+		specialeffect EF_THUNDERSTORM2, AREA, "Passage of Time#1";
+		cloakoffnpcself( "Passage of Time#1" );
+		sleep2 1000;
+		setpcblock PCBLOCK_NPC, false;
+		if (isbegin_quest(12596) == 1) {
+			cutin "4job_leticia_04.png",2;
+			mes "[Leticia]";
+			mes "Now then, let's open the other one as well. Move to the site opposite this gate.";
+			completequest 12595;
+			close3;
+		}
+		cutin "4job_leticia_04.png",2;
+		mes "[Leticia]";
+		mes "It's simpler than you think, isn't it?. With this, we'll be able to stop strange guys from flooding the garden until Oscar completes the mansion, so it's a relief.";
+		next;
+		cutin "4job_leticia_01.png",2;
+		mes "[Leticia]";
+		mes "And since you've already helped me, from now on you'll have to work with me every day. It's no big deal. Reduce the number of unholy things in the dungeon under the passage created here.";
+		next;
+		select( "I think I've heard this before" );
+		cutin "4job_leticia_03.png",2;
+		mes "[Leticia]";
+		mes "Why are you muttering? Do you have any complaints?";
+		next;
+		select( "No." );
+		cutin "4job_leticia_05.png",2;
+		mes "[Leticia]";
+		mes "I think it's finished. Let's come to the central square for a moment and talk about the next thing.";
+		completequest 12595;
+		close3;
+	case 2:
+		cloakoffnpcself( "Passage of Time#1" );
+		end;
+	}
+	end;
+
+OnInit:
+	questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(12595) == 1" );
+	end;
+}
+
+// t_garden,78,92,2	script(CLOAKED)	Passage of Time#1	GATE_SKYBLUE,2,2,{	// unknown OnTouch effect (NPC unreachable)
+t_garden,78,92,2	script(CLOAKED)	Passage of Time#1	GATE_SKYBLUE,{
+	if (isbegin_quest(12595) != 2)
+		end;
+	if (isbegin_quest(12596) != 2) {
+		cutin "4job_leticia_01.png",2;
+		mes "[Leticia]";
+		mes "Not all exits are activated. Activate both the east and west exits and then come find me.";
+		close3;
+	}
+	switch( select( "Forgotten memories, Zone 1, 6 o'clock", "Forgotten memories, Zone 1, Center", "Forgotten memories, Zone 1, 10 o'clock" ) ) {
+	case 1:
+		warp "for_dun01",159,35;
+		break;
+	case 2:
+		warp "for_dun01",101,136;
+		break;
+	case 3:
+		warp "for_dun01",62,266;
+		break;
+	}
+	end;
+}
+
+t_garden,151,92,0	script	#life_wp3	HIDDEN_WARP_NPC,3,3,{
+	end;
+OnTouch:
+	switch( isbegin_quest(12596) ) {
+	case 0:
+		end;
+	case 1:
+		cutin "4job_leticia_01.png",2;
+		mes "[Leticia]";
+		mes "Okay, that's enough. It will open a passage to the place where the unholy energy is on the time seal seen there.";
+		next;
+		cutin "4job_leticia_02.png",2;
+		mes "[Leticia]";
+		mes "Are you ready? Then extend your hand forward and keep your eyes on the seal as if you are focusing the power I'm giving you onto the seal.";
+		// close2;
+		next;
+		select( "Reach out hand and watch the seal" );
+		setpcblock PCBLOCK_NPC, true;
+		cutin "",255;
+		specialeffect2 EF_BEGINSPELL_N3;
+		sleep2 2000;
+		specialeffect EF_LORD, AREA, "Passage of Time#2";
+		sleep2 2000;
+		specialeffect EF_BAKU, AREA, "Passage of Time#2";
+		sleep2 1000;
+		specialeffect EF_THUNDERSTORM2, AREA, "Passage of Time#2";
+		cloakoffnpcself( "Passage of Time#2" );
+		sleep2 1000;
+		setpcblock PCBLOCK_NPC, false;
+		if (isbegin_quest(12595) == 1) {
+			cutin "4job_leticia_04.png",2;
+			mes "[Leticia]";
+			mes "Now then, let's open the other one as well. Move to the site opposite this gate.";
+			completequest 12596;
+			close3;
+		}
+		cutin "4job_leticia_04.png",2;
+		mes "[Leticia]";
+		mes "It's simpler than you think, isn't it?. With this, we'll be able to stop strange guys from flooding the garden until Oscar completes the mansion, so it's a relief.";
+		next;
+		cutin "4job_leticia_01.png",2;
+		mes "[Leticia]";
+		mes "And since you've already helped me, from now on you'll have to work with me every day. It's no big deal. Reduce the number of unholy things in the dungeon under the passage created here.";
+		next;
+		select( "I think I've heard this before" );
+		cutin "4job_leticia_03.png",2;
+		mes "[Leticia]";
+		mes "Why are you muttering? Do you have any complaints?";
+		next;
+		select( "No." );
+		cutin "4job_leticia_05.png",2;
+		mes "[Leticia]";
+		mes "I think it's finished. Let's come to the central square for a moment and talk about the next thing.";
+		completequest 12596;
+		close3;
+	case 2:
+		cloakoffnpcself( "Passage of Time#2" );
+		end;
+	}
+	end;
+
+OnInit:
+	questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(12596) == 1" );
+	end;
+}
+
+// t_garden,157,92,2	script(CLOAKED)	Passage of Time#2	GATE_SKYBLUE,2,2,{	// unknown OnTouch effect (NPC unreachable)
+t_garden,157,92,2	script(CLOAKED)	Passage of Time#2	GATE_SKYBLUE,{
+	if (isbegin_quest(12596) != 2)
+		end;
+	if (isbegin_quest(12595) != 2) {
+		cutin "4job_leticia_01.png",2;
+		mes "[Leticia]";
+		mes "Not all exits are activated. Activate both the east and west exits and then come find me.";
+		close3;
+	}
+	switch( select( "Forgotten Memories, Zone 2, 7 o'clock", "Forgotten Memories, Zone 2, 1 o'clock", "Forgotten Memories, Zone 2, 5 o'clock" ) ) {
+	case 1:
+		warp "for_dun02",33,55;
+		break;
+	case 2:
+		warp "for_dun02",211,269;
+		break;
+	case 3:
+		warp "for_dun02",271,38;
+		break;
+	}
+	end;
+}
+
+
+for_dun01,100,146,2	script	Spatial coordinate probe#1	4_SYSTEM_BOX,{
+	mes "Would you like to go back to the Garden of Time?";
+	next;
+	if (select( "Cancel", "Return" ) == 1)
+		end;
+	warp "t_garden",83,92;
+	end;
+
+OnInit:
+	questinfo( QTYPE_CLICKME, QMARK_YELLOW, "isbegin_quest(12595) == 2" );
+	end;
+}
+for_dun01,128,282,2	duplicate(Spatial coordinate probe#1)	Spatial coordinate probe#2	4_SYSTEM_BOX
+for_dun01,55,142,2	duplicate(Spatial coordinate probe#1)	Spatial coordinate probe#3	4_SYSTEM_BOX
+for_dun01,262,167,2	duplicate(Spatial coordinate probe#1)	Spatial coordinate probe#4	4_SYSTEM_BOX
+for_dun01,204,67,2	duplicate(Spatial coordinate probe#1)	Spatial coordinate probe#5	4_SYSTEM_BOX
+for_dun01,57,270,2	duplicate(Spatial coordinate probe#1)	Spatial coordinate probe#6	4_SYSTEM_BOX
+for_dun01,65,34,2	duplicate(Spatial coordinate probe#1)	Spatial coordinate probe#7	4_SYSTEM_BOX
+for_dun01,146,27,2	duplicate(Spatial coordinate probe#1)	Spatial coordinate probe#8	4_SYSTEM_BOX
+for_dun01,154,139,2	duplicate(Spatial coordinate probe#1)	Spatial coordinate probe#9	4_SYSTEM_BOX
+for_dun01,124,203,2	duplicate(Spatial coordinate probe#1)	Spatial coordinate probe#10	4_SYSTEM_BOX
+for_dun01,267,265,2	duplicate(Spatial coordinate probe#1)	Spatial coordinate probe#11	4_SYSTEM_BOX
+
+
+for_dun02,190,147,2	script	Spatial coordinate probe#12	4_SYSTEM_BOX,{
+	mes "Would you like to go back to the Garden of Time?";
+	next;
+	if (select( "Cancel", "Return" ) == 1)
+		end;
+	warp "t_garden",152,92;
+	end;
+
+OnInit:
+	questinfo( QTYPE_CLICKME, QMARK_YELLOW, "isbegin_quest(12596) == 2" );
+	end;
+}
+for_dun02,143,149,2	duplicate(Spatial coordinate probe#12)	Spatial coordinate probe#13	4_SYSTEM_BOX
+for_dun02,276,29,2	duplicate(Spatial coordinate probe#12)	Spatial coordinate probe#14	4_SYSTEM_BOX
+for_dun02,106,34,2	duplicate(Spatial coordinate probe#12)	Spatial coordinate probe#15	4_SYSTEM_BOX
+for_dun02,216,271,2	duplicate(Spatial coordinate probe#12)	Spatial coordinate probe#16	4_SYSTEM_BOX
+for_dun02,64,268,2	duplicate(Spatial coordinate probe#12)	Spatial coordinate probe#17	4_SYSTEM_BOX
+for_dun02,18,170,2	duplicate(Spatial coordinate probe#12)	Spatial coordinate probe#18	4_SYSTEM_BOX
+for_dun02,16,92,2	duplicate(Spatial coordinate probe#12)	Spatial coordinate probe#19	4_SYSTEM_BOX
+for_dun02,29,52,2	duplicate(Spatial coordinate probe#12)	Spatial coordinate probe#20	4_SYSTEM_BOX
+for_dun02,276,255,2	duplicate(Spatial coordinate probe#12)	Spatial coordinate probe#21	4_SYSTEM_BOX
+for_dun02,283,197,2	duplicate(Spatial coordinate probe#12)	Spatial coordinate probe#22	4_SYSTEM_BOX
+
+
+// B. Event with Oscar
+t_garden,118,141,0	script	#life_wp4	HIDDEN_WARP_NPC,3,3,{
+	end;
+OnTouch:
+	if (isbegin_quest(12618) == 1) {
+		cloakoffnpcself( "Oscar#life2" );
+		end;
+	}
+	end;
+}
+
+// t_garden,118,142,3	script(CLOAKED)	Oscar#life2	4_ED_OSCAR,2,2,{	// unknown OnTouch effect
+t_garden,118,142,3	script(CLOAKED)	Oscar#life2	4_ED_OSCAR,{
+	if (isbegin_quest(12618) == 1) {
+		cutin "OSCAR01.bmp",2;
+		mes "[Oscar]";
+		mes "Ah " + strcharinfo(0) + ".";
+		next;
+		cutin "OSCAR09.bmp",2;
+		mes "[Oscar]";
+		mes "This is true. I'm really sorry for unintentionally getting you involved in our work.";
+		next;
+		select( "Are you going into the mansion?" );
+		cutin "OSCAR01.bmp",2;
+		mes "[Oscar]";
+		mes "I guess that's the way it is. This mansion is a space where multiple timelines are intricately intertwined, so I don't think anyone else can touch it.";
+		next;
+		select( "Is there anything I can do to help in the mansion?" );
+		cutin "OSCAR05.bmp",2;
+		mes "[Oscar]";
+		mes "" + strcharinfo(0) + " I've worked with you many times, so I'd like to ask you to come with me, but I don't think I can do that this time.";
+		next;
+		cutin "OSCAR09.bmp",2;
+		mes "[Oscar]";
+		mes "It seems like the speed of time inside this mansion is very different from the outside world. My guess is about... 1/1000? Maybe even more.";
+		next;
+		select( "That means..." );
+		cutin "OSCAR07.bmp",2;
+		mes "[Oscar]";
+		mes "This means that even if you only spend a few days inside the mansion, years or even decades may pass by in the outside world. It will probably be difficult for a human like " + strcharinfo(0) + " to endure it";
+		next;
+		cutin "OSCAR01.bmp",2;
+		mes "[Oscar]";
+		mes "There is a high probability that quite a long time will pass by the time the interior of the mansion is cleaned up. It must end quickly...";
+		next;
+		cloakoffnpcself( "Leticia#life3" );
+		cutin "4job_leticia_01.png",2;
+		mes "[Leticia]";
+		mes "Oh, are you going in now?";
+		next;
+		cutin "OSCAR01.bmp",2;
+		mes "[Oscar]";
+		mes "Yes, I have to go in. Leticia, I hope you don't cause any trouble and take good care of the garden until I come out after cleaning up the mansion.";
+		next;
+		cutin "4job_leticia_05.png",2;
+		mes "[Leticia]";
+		mes "Oh, don't worry about that. I'll make sure you're isolated from the real world.";
+		next;
+		cutin "OSCAR01.bmp",2;
+		mes "[Oscar]";
+		mes "Okay. Then, please take care of me. Oh, and " + strcharinfo(0) + ", if you have the time, I would appreciate it if you could help Leticia. She's so lazy...";
+		next;
+		cutin "4job_leticia_04.png",2;
+		mes "[Leticia]";
+		mes "I'll take care of the adventurer here, so let's leave it at that and go in.";
+		next;
+		cutin "OSCAR03.bmp",2;
+		mes "[Oscar]";
+		mes "Okay, I'll finish the work and come out as soon as possible. See you then.";
+		close2;
+		cutin "",255;
+		specialeffect EF_BEGINSPELL_N4;
+		setpcblock PCBLOCK_NPC, true;
+		sleep2 2000;
+		cloakonnpcself( "Oscar#life2" );
+		setpcblock PCBLOCK_NPC, false;
+		cutin "4job_leticia_02.png",2;
+		mes "[Leticia]";
+		mes "Well, I'm sure Oscar will take care of it... Don't just stand there and help out with Rigel and my work.";
+		close2;
+		cutin "",255;
+		cloakonnpcself( "Leticia#life3" );
+		completequest 12618;
+		end;
+	}
+	end;
+
+OnInit:
+	questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(12618) == 1" );
+	end;
+}
+
+t_garden,115,139,7	duplicate(dummy_cloaked_npc)	Leticia#life3	4_4JOB_LETICIA
+
+
+// C. Instances
+// t_garden,166,217,0	script	#wp11	HIDDEN_WARP_NPC,2,2,{	// (NPC name is not unique)
+t_garden,166,217,0	script	#wp11_t_garden	HIDDEN_WARP_NPC,2,2,{
+	end;
+OnTouch:
+	if (isbegin_quest(12594) == 1) {
+		cloakoffnpcself( "Rigel#life2" );
+		end;
+	}
+	end;
+}
+
+t_garden,166,217,3	script(CLOAKED)	Rigel#life2	4_CS_RIGEL,{
+	if (isbegin_quest(12594) == 1) {
+		cutin "rigel01.png",2;
+		mes "[Rigel]";
+		mes "You're here " + strcharinfo(0) + ".";
+		mes "It would be very appropriate to be this far away from the mansion without disturbing Oscar, right?";
+		next;
+		select( "What are you going to do here?" );
+		cutin "rigel02.png",2;
+		mes "[Rigel]";
+		mes "From now on, we will build a prison. A prison to hold very dangerous and unstable prisoners.";
+		next;
+		select( "You're making a prison in the flower garden?" );
+		cutin "rigel01.png",2;
+		mes "[Rigel]";
+		mes "Anyway, this place will only serve as a passage, and the prison itself is connected to another dimension. I will leave them. I have no intention of ruining the flower garden.";
+		next;
+		mes "[Rigel]";
+		mes "We have created a prison access list a little further north. Only those registered on the list can enter the prison, so let's go and register first.";
+		close2;
+		completequest 12594;
+		setquest 12597;
+		cutin "",255;
+		end;
+	}
+	cutin "rigel01.png",2;
+	mes "[Rigel]";
+	mes "Let's start by looking for the sealing spirit stone I installed a little further north.";
+	close3;
+
+OnInit:
+	questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(12594) == 1" );
+	end;
+}
+
+
+// t_garden,162,222,5	script	#lank_board	4_4JOB_PHANTOMBOOK1,{
+	// mes "--- Strategy ranking ---";
+	// mes "1st place - none";
+	// mes "2nd place - none";
+	// mes "3rd place - none";
+	// mes "4th place - none";
+	// mes "5th place - none";
+	// mes "-----------------";
+	// mes "¡Ø The strategy record is updated every 5 minutes.";
+	// mes "If recording does not occur immediately, please wait for a while and check.";
+	// close;
+// }
+
+// t_garden,166,235,0	script	#wp12	HIDDEN_WARP_NPC,3,3,{	// (NPC name is not unique)
+t_garden,166,235,0	script	#wp12_t_garden	HIDDEN_WARP_NPC,3,3,{
+	end;
+OnTouch:
+	switch( isbegin_quest(12597) ) {
+	case 0:
+		end;
+	case 1:
+		cloakoffnpcself( "Sealing Spirit Stone#life2" );
+		end;
+	case 2:
+		cloakoffnpcself( "Sealing Spirit Stone#life2" );
+		cloakoffnpcself( "Dimensional Prison#1" );
+		cloakoffnpcself( "Dimensional Prison#2" );
+		end;
+	}
+	end;
+}
+
+t_garden,166,235,3	script(CLOAKED)	Sealing Spirit Stone#life2	HEROS_OUT_ORB,{
+	switch( isbegin_quest(12597) ) {
+	case 0:
+		end;
+	case 1:
+		mes "[Sealing Spirit Stone]";
+		mes "^ff0000Unauthenticated user.^000000";
+		next;
+		cutin "rigel_halfeyes01.png",2;
+		mes "[Rigel]";
+		mes "Don't just stare blankly, extend your hand.";
+		mes "Focus your mind by placing your thumb on the bottom right of the unfolded spirit stone and the rest of your fingers on top. ";
+		next;
+		select( "Put your hand on the guide." );
+		setpcblock PCBLOCK_NPC, true;
+		cutin "",255;
+		specialeffect2 EF_BEGINSPELL_N5;
+		sleep2 2000;
+		specialeffect EF_LORD, AREA, "Dimension Prison#1";
+		sleep2 500;
+		specialeffect EF_LORD, AREA, "Dimension Prison#2";
+		sleep2 1500;
+		specialeffect EF_BAKU, AREA, "Dimension Prison#1";
+		sleep2 500;
+		specialeffect EF_BAKU, AREA, "Dimension Prison#2";
+		sleep2 500;
+		specialeffect EF_THUNDERSTORM2, AREA, "Dimension Prison#1";
+		sleep2 500;
+		setpcblock PCBLOCK_NPC, false;
+		specialeffect EF_THUNDERSTORM2, AREA, "Dimension Prison#2";
+		cloakoffnpcself( "Dimension Prison#1" );
+		cloakoffnpcself( "Dimension Prison#2" );
+		sleep2 1500;
+		cutin "rigel_halfeyes01.png",2;
+		mes "[Rigel]";
+		mes "It looks like it's registered well. Now you've completed the basic preparations to recognize the prison and enter and exit it. For any further questions, please refer to this guide.";
+		next;
+		select( "Who are you going to put in that prison?" );
+		cutin "rigel_annoying01.png",2;
+		mes "[Rigel]";
+		mes "^bb0000Doppelganger.^000000";
+		next;
+		cutin "rigel_halfeyes01.png",2;
+		mes "[Rigel]";
+		mes "Well, you might think it's just a doppelganger and a fuss, but the one you'll be imprisoning here is on a different level than the doppelganger you think of.";
+		next;
+		mes "[Rigel]";
+		mes "It's the worst kind of being that doesn't just mimic abilities or appearances, but devours the soul of the target being and turns into that being itself.";
+		next;
+		select( "Whose image do it take on now?" );
+		cutin "rigel_annoying01.png",2;
+		mes "[Rigel]";
+		mes "It's me.";
+		next;
+		select( "What does that mean?" );
+		cutin "rigel_halfeyes01.png",2;
+		mes "[Rigel]";
+		mes "This prisoner swallowed me, Rigel, from the 326th dimension and became a being that called itself the Constellation of Life.";
+		next;
+		mes "[Rigel]";
+		mes "When I ran to save myself there, it was already too late. I knew as soon as I saw the unconscious person who looked exactly like me. This wasn't me.";
+		next;
+		cutin "rigel_annoying01.png",2;
+		mes "[Rigel]";
+		mes "Although we succeeded in sealing the guy who couldn't use it power properly. It might succeed in breaking the seal someday.";
+		next;
+		select( "Why don't you take down the criminal yourself?" );
+		cutin "rigel01.png",2;
+		mes "[Rigel]";
+		mes "I don't know what the error is, but the world recognizes it as another constellation of life. If a constellation attacks the same constellation, it violates the rules of the dimension and immediately loses it powers.";
+		next;
+		mes "[Rigel]";
+		mes "And, if by any chance it takes over my existence, then it will be in an irreversible situation.";
+		next;
+		select( "Is there any possibility that the prisoner will take over our bodies?" );
+		cutin "rigel_close02.png",2;
+		mes "[Rigel]";
+		mes "This is truly one of the funniest jokes I've heard in hundreds of years.";
+		next;
+		cutin "rigel_halfeyes02.png",2;
+		mes "[Rigel]";
+		mes "Would you ever abandon the immortal body you worked so hard to occupy and return to your mortal body?";
+		next;
+		select( "Maybe if your life is threatened." );
+		cutin "rigel_halfeyes01.png",2;
+		mes "[Rigel]";
+		mes "Well, I don't agree with that opinion at all, but I'll ease your worries. It's surrounded by layers of seals I've placed on it.";
+		next;
+		mes "[Rigel]";
+		mes "Even if it wanted to take over your and it friends' bodies, it wouldn't be able to exert that kind of power.";
+		next;
+		cutin "rigel_close01.png",2;
+		mes "[Rigel]";
+		mes "It's a long story. Prison information will be posted separately at the prison entrance, so check it regularly.";
+		next;
+		mes "[Rigel]";
+		mes "I look forward to seeing you and your colleagues do a great job here.";
+		close2;
+		cutin "",255;
+		completequest 12597;
+		cloakonnpcself( "Rigel#life2" );
+		end;
+	case 2:
+		break;
+	}
+	mes "[Sealing Spirit Stone]";
+	mes "Guidelines for correct prison management. What would you like to see?";
+	next;
+	while(1) {
+		switch( select( "Stop viewing", "Reissue of the Constellation's protection", "Information on imprisoned prisoners", "Information on prison entry", "Information on barriers", "Information on traps", "Information on sanctuaries ", "Information on the underworld", "Information on dangerous omens", "Information on the resilience of prisoners" ) ) {
+		case 1:
+			end;
+		case 2:
+			if (countitem(420231) - isequippedcnt(420231) < 1) {
+				mes "[Sealing Spirit Stone]";
+				mes "Please check again whether it is registered in ^ff0000equipment set setting^000000 and whether it is already installed.";
+				mes " ";
+				mes "Even if you have two or more blessings, the record engraved in the adventurer's ^ff0000soul takes priority^000000, so we recommend that you dispose of any excess blessings at the store.";
+				next;
+				if (select( "Cancel", "Reissue" ) == 1)
+					continue;
+				mes "[Sealing Spirit Stone]";
+				mes "Based on the records engraved in the adventurer's soul";
+				mes "We have reissued a protection engraved with a barrier ^0000fflevel 1^000000.";
+				getitem2 420231,1,1,0,0,0,0,0,312453;	// MD_Hol_Protection
+				close;
+			}
+			mes "[Sealing Spirit Stone]";
+			mes "You have the protection issued in your inventory. Re-issuing it is only possible if you do not have the constellation's protection in your inventory.";
+			close;
+		case 3:
+			mes "[Prisoner Information Guide]";
+			mes "Based on this book, on the left is a lava lake where the guards who managed dimensional criminals are imprisoned. On the right is the Hall of Life where dimensional managers are imprisoned.";
+			mes " ";
+			mes "The guards were originally meant to monitor dimensional criminals, but at some point, they showed an intention to protect the dimensional criminals.";
+			next;
+			mes "[Prisoner Information Guide]";
+			mes "Accordingly, the Constellation of Life imprisoned the 4 divine prisoners, who were guards, in a dimension completely separate from the dimensional criminals.";
+			mes " ";
+			mes "The main prisoner, a dimensional criminal, is a doppelganger-type monster who stole the appearance and abilities of the 326th dimension's constellation of life. Currently, its level of danger has never been measured, so it is not recorded.";
+			next;
+			mes "[Prisoner Information Guide]";
+			mes "One thing is certain: the dimensional criminals have hijacked the bodies and powers of the dimensional life constellations.";
+			mes " ";
+			mes "Due to this series of events, not only the Constellation of Life but also the 4 Divine Beasts are vacant in the 326th dimension. Therefore, the user must manage this prison with two main goals.";
+			next;
+			mes "-First-";
+			mes "You must attack dimension criminals periodically to prevent them from hoarding power.";
+			mes " ";
+			mes "Even now, it is accumulating vast amounts of life energy, which could pose a serious danger to the dimensional world.";
+			next;
+			mes "-Second-";
+			mes "The level of power that dimensional criminals exert must be measured and recorded.";
+			mes " ";
+			mes "Relatedly, when entering a prison, you can equip yourself with the protection touched by the constellation and measure and record the level of risk based on the level of the barrier attached to it.";
+			next;
+			mes "-Third-";
+			mes "It may be of lesser importance, but it is necessary to visit the jailers' prisons periodically to weaken their power.";
+			mes " ";
+			mes "The currently imprisoned guards are a dangerous force potentially sympathizing with the escape of dimensional criminals. Periodically suppress them by force and confiscate the prison keys they are managing/producing.";
+			next;
+			mes "[Prisoner Information Guide]";
+			mes "This is information about prisoners held in prison. Do you need any additional information?";
+			break;
+		case 4:
+			mes "[Access information information]";
+			mes "The prison is divided into an area where the guards are confined and an area where the dimension criminals are confined.";
+			mes " ";
+			mes "First, you can enter the lava lake where the guards are imprisoned once a day. There is no additional seal, so as long as you stick to the once a day time, there will be no particular restrictions on entry.";
+			next;
+			mes "[Access information information]";
+			mes "The Hall of Life where dimensional criminals are imprisoned";
+			mes "Only accessible while holding " + mesitemlink(1001415) + ".";
+			mes " ";
+			mes "Remember that, with the exception of the one-hour dungeon time limit, you can enter as many times as you want as long as you have the key.";
+			next;
+			mes "[Access information information]";
+			mes "However, if you receive the reward once, you will not be able to receive the reward again in the Hall of Life for ^ff0000one week.^000000 Of course, even in that case, entry is free.";
+			mes " ";
+			mes "Do you need any additional information?";
+			break;
+		case 5:
+			mes "[Barrier information information]";
+			mes "The power of dimensional criminals is sealed by a barrier tightly bound by Rigel, the constellation of life.";
+			mes " ";
+			mes "Therefore, when you enter to manage the prison, the first dimensional criminal you encounter is the barrier adjusted so that only the lowest level of strength is exerted.";
+			next;
+			mes "[Barrier information information]";
+			mes "However, if you apply appropriate corrections to the dimensional criminal and make him submit, you will either receive appropriate ^ff0000compensation,^000000, or delay the reward and get a chance to unlock the next ^ff0000barrier ^000000level.";
+			next;
+			mes "[Barrier information information]";
+			mes "If you want a higher reward level, remember that it is advantageous to level up quickly by clearing barriers rather than selecting rewards.";
+			next;
+			mes "[Barrier information information]";
+			mes "However, it is not advantageous to simply raise the level of the barrier.";
+			mes " ";
+			mes "If you fail to correct a dimensional criminal, the level of barrier you can handle will be lowered by 1 level the next time you enter prison.^000000";
+			next;
+			mes "[Barrier information information]";
+			mes "I recommend that you do not pay undue attention to barriers that you cannot handle and that you strive for stable correction.";
+			mes " ";
+			mes "Do you need any additional information?";
+			break;
+		case 6:
+			mes "[Trap Information Guide]";
+			mes "The dimensional criminal used his power to cause time-moving traps to appear in his space to prevent outside intruders.";
+			mes " ";
+			mes "The danger of this trap varies depending on the level of the barrier, and its destructive power becomes more powerful the further away you are from the center of the prison.";
+			next;
+			mes "[Trap Information Guide]";
+			mes "Additionally, ^ff0000each time you or an ally is damaged by a trap, the Warp Criminal's attack power will become more powerful.^000000";
+			next;
+			mes "[Trap Information Guide]";
+			mes "If the prison is full of traps, you can reset the traps using the other side of the world. Please refer to the information on the other side of the world for this part.";
+			mes " ";
+			mes "Do you need any additional information?";
+			break;
+		case 7:
+			mes "[Sanctuary Information Guide]";
+			mes "Dimensional criminals can periodically establish a sanctuary around themselves that makes them immune to physical and magical attacks.";
+			mes " ";
+			mes "This appears to be a duplicate of an ability available to high-ranking constellations and cannot be disarmed by any means.";
+			next;
+			mes "[Sanctuary Information Guide]";
+			mes "However, if you pull a dimensional criminal who has declared sanctuary out of the sanctuary, the sanctuary will be canceled. If the dimensional criminal uses the sanctuary to go on a rampage, pull him out of the sanctuary.";
+			mes " ";
+			mes "Do you need any additional information?";
+			break;
+		case 8:
+			mes "[Information Guide to the Secret World]";
+			mes "When the number of traps in the prison exceeds a certain number, a portal to the other world will be created on the north side of the prison.";
+			mes " ";
+			mes "In the underworld, there are imperfect illusions of dimensional criminals, and those illusions are imperfectly connected to the dimensional criminals.";
+			next;
+			mes "[Information Guide to the Secret World]";
+			mes "The moment all the illusions of the other world are defeated, the dimensional criminals of the original world will receive a strong blow and fall into a groggy state for a certain period of time.";
+			mes " ";
+			mes "At this moment, traps within the prison are reset, all attack power built up by the warp criminal is returned to its original state, and all defenses of the warp criminal are drastically lowered for a brief period of time.";
+			next;
+			mes "[Information Guide to the Secret World]";
+			mes "However, the portal to the underworld should not be used by too many people.";
+			mes " ";
+			mes "This is because each time a person passes through the portal, the dimensional criminal's recovery per second increases by a certain amount, and if this number overlaps, he or she can recover health in an instant.";
+			next;
+			mes "[Information Guide to the Secret World]";
+			mes "Remember that in order to kill the illusions of the other world, it is advisable to have a small number of party members with strong attack power and mobility.";
+			mes " ";
+			mes "Do you need any additional information?";
+			break;
+		case 9:
+			mes "[Guide to dangerous omens]";
+			mes "If you see any unusual effects on the ground while correcting dimensional criminals, quickly leave the area.";
+			mes " ";
+			mes "This effect is a precursor to the dimensional offender's widespread and powerful influence.";
+			next;
+			mes "[Guide to dangerous omens]";
+			mes "The influence of a dimensional criminal can result in confinement effects, serious lacerations and frostbite, and sometimes even death.";
+			mes " ";
+			mes "Do not take your eyes off the ground even for a moment and be alert in all directions.";
+			mes " ";
+			mes "Do you need any additional information?";
+			break;
+		case 10:
+			mes "[Recovery information information]";
+			mes "Dimensional criminals have the ability to regenerate health in real time. Therefore, normal correction may not be possible unless a blow exceeds this recovery ability.";
+			mes " ";
+			mes "The moment the inner world is purified, the recovery rate decreases sharply during the time the dimensional criminal is in a groggy state.";
+			next;
+			mes "[Recovery information information]";
+			mes "However, do not forget that ^ff0000recovery also increases in proportion to the number of people who use the portal^000000 to purify the Underworld.";
+			mes "If too many portal users occur, normal correction may fail due to a rapid increase in resilience.";
+			mes " ";
+			mes "Do you need any additional information?";
+			break;
+		}
+		next;
+	}
+	end;
+
+OnInit:
+	questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(12597) == 1" );
+	end;
+}
+
+
+// t_garden,158,235,2	script(CLOAKED)	Dimension Prison#1	GATE_SKYBLUE,2,2,{	// unknown OnTouch effect
+t_garden,158,235,2	script(CLOAKED)	Dimension Prison#1	GATE_SKYBLUE,{
+	if (isbegin_quest(12597) != 2)
+		end;
+	if (checkweight(1201,1) == 0) {
+		mes "^ff0000It seems that there are too many types and weights of items. Please organize your inventory.^000000";
+		close;
+	}
+	if (getcharid(1) < 1) {
+		mes "^0000ffPlease organize a party of at least one person and proceed.^000000";
+		close;
+	}
+	// ...
+			end;
+	}
+
+// t_garden,173,235,2	script(CLOAKED)	Dimension Prison#2	GATE_SKYBLUE,2,2,{	// unknown OnTouch effect
+t_garden,173,235,2	script(CLOAKED)	Dimension Prison#2	GATE_SKYBLUE,{
+	if (isbegin_quest(12597) != 2)
+		end;
+	if (checkweight(1201,1) == 0) {
+		mes "^ff0000It seems that there are too many types and weights of items. Please organize your inventory.^000000";
+		close;
+	}
+	// ...
+	end;
+}
+
+
+
+// Daily Quests
+// t_garden,105,118,0	script	#wp01	HIDDEN_WARP_NPC,6,5,{	// (NPC name is not unique)
+t_garden,105,118,0	script	#wp01_t_garden_2	HIDDEN_WARP_NPC,6,5,{
+	end;
+OnTouch:
+	.@state = isbegin_quest(12620);
+	if (.@state == 0)
+		end;
+	cloakoffnpcself( "Ardor#life2" );
+	cloakoffnpcself( "Diluvio#life2" );
+	cloakoffnpcself( "Procella#life2" );
+	cloakoffnpcself( "Terremotus#life2" );
+	cloakoffnpcself( "Serpens#life2" );
+
+	if (.@state == 1) {
+		mes "[Terremotus]";
+		mes "^777700Oh, the adventurer Leticia sent has finally arrived.";
+		next;
+		mes "[Ardor]";
+		mes "^aa0000Adventurer! Are you willing to fight? We don't need a weakling!";
+		next;
+		mes "[Diluvio]";
+		mes "^0000ffArdor! Have you forgotten what Leticia told you to be at least polite?";
+		next;
+		mes "[Procella]";
+		mes "^00cc00Diluvio is right. It would be good to show some courtesy to the humans who come to help us.";
+		next;
+		select( "I'm fine, please tell me what to do" );
+		mes "[Serpens]";
+		mes "^aa00aaWe are ancient spirits from a world connected to this garden. It is an instinct engraved in our spirit bodies to help each natural element remain harmonious.";
+		next;
+		mes "[Serpens]";
+		mes "^aa00aaHowever, after being swept away by a strange dimensional storm, the elements of the world connected to this garden began to run wild, and eventually began to turn into spirits.";
+		next;
+		mes "[Terremotus]";
+		mes "^777700If the elements continue to become elementals, eventually the material world that makes up this world will collapse. That must be prevented.";
+		next;
+		mes "[Diluvio]";
+		mes "^0000ffAdventurer, you must no longer allow the elements to turn into spirits. Use your power to send them back to nature.";
+		next;
+		mes "[Terremotus]";
+		mes "^777700This is not an act of destroying nature. It is a matter of returning the disappearing elements that have been transformed into spirits back to their original positions. Will you listen to our request?";
+		next;
+		select( "I will." );
+		mes "[Ardor]";
+		mes "^aa0000You're a good communicator! Okay then, I'll tell you what to do every day!^000000";
+		next;
+		mes "[Ardor]";
+		mes "^aa0000Let's place the sacred items prepared by the constellations across from us. In human language, it's called a vending machine.^000000";
+		next;
+		mes "[Ardor]";
+		mes "^aa0000The reward for helping us and the constellations' work here will be received through that sacred item.^000000";
+		next;
+		completequest 12620;
+		navigateto("t_garden",126,117);
+		end;
+	}
+	end;
+}
+
+t_garden,97,114,5	script(CLOAKED)	Diluvio#life2	4_EM_DILUVIO,{
+	if (isbegin_quest(12620) != 2)
+		end;
+	if (checkweight(1201,1) == 0) {	// Useless check ?
+		mes "I am unable to communicate with spirits because I have too many items or weights.";
+		close;
+	}
+	switch( checkquest(12598,PLAYTIME) ) {
+	case -1:
+		break;
+	case 0:
+	case 1:
+		mes "^ff0000Today's request has already been received. You can't receive any more.^000000";
+		close;
+	case 2:
+		erasequest 12598;
+		break;
+	}
+	if (F_queststatus( HAVEQUEST,12633,12634,12635,12636 ) == -1) {
+		mes "^0000ffThere are still uncompleted quests. You cannot receive additional requests or reset until all requests are completed at the " + F_mesnavi("Spirit Vending Machine", "t_garden",128,122) + ".^000000";
+		close;
+	}
+	mes "[Diluvio]";
+	mes "My goal is to return the water spirits, who are gradually materializing within forgotten memories, back to their elements. I would like your help.";
+	next;
+	if (select( "I will help you next time.", "I will help you" ) == 1)
+		end;
+	mes "[Diluvio]";
+	mes "This is a list of requests for you. Thank you very much.";
+	close2;
+	.@quest_id[0] = rand(12633,12634);
+	.@quest_id[1] = rand(12635,12636);
+	setquest .@quest_id[0];
+	setquest .@quest_id[1];
+	setquest 12598;
+	open_quest_ui(.@quest_id[0]);
+	end;
+
+OnInit:
+	questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "isbegin_quest(12620) == 2 && (checkquest(12598,PLAYTIME) == -1 || checkquest(12598,PLAYTIME) == 2) && F_queststatus( HAVEQUEST,12633,12634,12635,12636 ) == 0" );
+	end;
+}
+
+t_garden,100,117,5	script(CLOAKED)	Terremotus#life2	4_EM_TERREMOTUS,{
+	if (isbegin_quest(12620) != 2)
+		end;
+	if (checkweight(1201,1) == 0) {
+		mes "I am unable to communicate with spirits because I have too many items or weights.";
+		close;
+	}
+	switch( checkquest(12599,PLAYTIME) ) {
+	case -1:
+		break;
+	case 0:
+	case 1:
+		mes "^ff0000Today's request has already been received. You can't receive any more.^000000";
+		close;
+	case 2:
+		erasequest 12599;
+		break;
+	}
+	if (F_queststatus( HAVEQUEST,12621,12622,12623,12624 ) == -1) {
+		mes "^0000ffThere are still uncompleted quests. You cannot receive additional requests or reset until all requests are completed at the " + F_mesnavi("Spirit Vending Machine", "t_garden",128,122) + ".^000000";
+		close;
+	}
+	mes "[Terremotus]";
+	mes "The elements of the earth must remain in their elemental state. If they continue to become elementals, eventually there will not be a single ounce of dirt left. Will you help me?";
+	next;
+	if (select( "I will help you next time.", "I will help you" ) == 1)
+		end;
+	mes "[Terremotus]";
+	mes "That's all I ask of you today. Take your time and take a look.";
+	close2;
+	.@quest_id[0] = rand(12621,12622);
+	.@quest_id[1] = rand(12623,12624);
+	setquest .@quest_id[0];
+	setquest .@quest_id[1];
+	setquest 12599;
+	open_quest_ui(.@quest_id[0]);
+	end;
+
+OnInit:
+	questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "isbegin_quest(12620) == 2 && (checkquest(12599,PLAYTIME) == -1 || checkquest(12599,PLAYTIME) == 2) && F_queststatus( HAVEQUEST,12621,12622,12623,12624 ) == 0" );
+	end;
+}
+
+t_garden,103,120,5	script(CLOAKED)	Serpens#life2	4_EM_SERPENS,{
+	if (isbegin_quest(12620) != 2)
+		end;
+	if (checkweight(1201,1) == 0) {
+		mes "I am unable to communicate with spirits because I have too many items or weights.";
+		close;
+	}
+	switch( checkquest(12600,PLAYTIME) ) {
+	case -1:
+		break;
+	case 0:
+	case 1:
+		mes "^ff0000Today's request has already been received. You can't receive any more.^000000";
+		close;
+	case 2:
+		erasequest 12600;
+		break;
+	}
+	if (F_queststatus( HAVEQUEST,12637,12638,12639,12640,12641,12642,12643 ) == -1) {
+		mes "^0000ffThere are still uncompleted quests. You cannot receive additional requests or reset until all requests are completed at the " + F_mesnavi("Spirit Vending Machine", "t_garden",128,122) + ".^000000";
+		close;
+	}
+	mes "[Serpens]";
+	mes "I can't stand to see healthy elements becoming corrupted as I can't turn them into spirits. I need your power to prevent them from falling into anger and becoming polluted.";
+	next;
+	if (select( "I will help you next time.", "I will help you" ) == 1)
+		end;
+	mes "[Serpens]";
+	mes "I'm sorry to ask you this kind of favor again today. Thank you very much.";
+	close2;
+	.@quest_id[0] = rand(12637,12638);
+	.@quest_id[1] = rand(12639,12643);
+	setquest .@quest_id[0];
+	setquest .@quest_id[1];
+	setquest 12600;
+	open_quest_ui(.@quest_id[0]);
+	end;
+
+OnInit:
+	questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "isbegin_quest(12620) == 2 && (checkquest(12600,PLAYTIME) == -1 || checkquest(12600,PLAYTIME) == 2) && F_queststatus( HAVEQUEST,12637,12638,12639,12640,12641,12642,12643 ) == 0" );
+	end;
+}
+
+t_garden,106,123,5	script(CLOAKED)	Procella#life2	4_EM_PROCELLA,{
+	if (isbegin_quest(12620) != 2)
+		end;
+	if (checkweight(1201,1) == 0) {
+		mes "I am unable to communicate with spirits because I have too many items or weights.";
+		close;
+	}
+	switch( checkquest(12601,PLAYTIME) ) {
+	case -1:
+		break;
+	case 0:
+	case 1:
+		mes "^ff0000Today's request has already been received. You can't receive any more.^000000";
+		close;
+	case 2:
+		erasequest 12601;
+		break;
+	}
+	if (F_queststatus( HAVEQUEST,12629,12630,12631,12632 ) == -1) {
+		mes "^0000ffThere are still uncompleted quests. You cannot receive additional requests or reset until all requests are completed at the " + F_mesnavi("Spirit Vending Machine", "t_garden",128,122) + ".^000000";
+		close;
+	}
+	mes "[Procella]";
+	mes "Wind means the source of life, the atmosphere. If the elements of wind continue to turn into spirits, all living things in this dimension will eventually die. I need someone's help.";
+	next;
+	if (select( "I will help you next time.", "I will help you" ) == 1)
+		end;
+	mes "[Procella]";
+	mes "I'm glad there is someone who can solve this problem. Please solve my request well.";
+	close2;
+	.@quest_id[0] = rand(12629,12630);
+	.@quest_id[1] = rand(12631,12632);
+	setquest .@quest_id[0];
+	setquest .@quest_id[1];
+	setquest 12601;
+	open_quest_ui(.@quest_id[0]);
+	end;
+
+OnInit:
+	questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "isbegin_quest(12620) == 2 && (checkquest(12601,PLAYTIME) == -1 || checkquest(12601,PLAYTIME) == 2) && F_queststatus( HAVEQUEST,12629,12630,12631,12632 ) == 0" );
+	end;
+}
+
+t_garden,109,126,5	script(CLOAKED)	Ardor#life2	4_EM_ARDOR,{
+	if (isbegin_quest(12620) != 2)
+		end;
+	if (checkweight(1201,1) == 0) {
+		mes "I am unable to communicate with spirits because I have too many items or weights.";
+		close;
+	}
+	switch( checkquest(12602,PLAYTIME) ) {
+	case -1:
+		break;
+	case 0:
+	case 1:
+		mes "^ff0000Today's request has already been received. You can't receive any more.^000000";
+		close;
+	case 2:
+		erasequest 12602;
+		break;
+	}
+	if (F_queststatus( HAVEQUEST,12625,12626,12627,12628 ) == -1) {
+		mes "^0000ffThere are still uncompleted quests. You cannot receive additional requests or reset until all requests are completed at the " + F_mesnavi("Spirit Vending Machine", "t_garden",128,122) + ".^000000";
+		close;
+	}
+	mes "[Ardor]";
+	mes "Flame that has become a spirit and moves and thinks on its own is dangerous in itself. Don't you think it's too dangerous to just sit there like this? I don't ask you any favors. Follow my instructions.";
+	next;
+	if (select( "I will help you next time.", "I will help you" ) == 1)
+		end;
+	mes "[Ardor]";
+	mes "It's something you have to do. You'd better do it as quickly as possible.";
+	close2;
+	.@quest_id[0] = rand(12625,12626);
+	.@quest_id[1] = rand(12627,12628);
+	setquest .@quest_id[0];
+	setquest .@quest_id[1];
+	setquest 12602;
+	open_quest_ui(.@quest_id[0]);
+	end;
+
+OnInit:
+	questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "isbegin_quest(12620) == 2 && (checkquest(12602,PLAYTIME) == -1 || checkquest(12602,PLAYTIME) == 2) && F_queststatus( HAVEQUEST,12625,12626,12627,12628 ) == 0" );
+	end;
+}
+
+
+// Uncloak quest NPC rewards and exchange/enchants NPCs
+t_garden,126,123,0	script	#v_wp01	HIDDEN_WARP_NPC,3,3,{
+	end;
+OnTouch:
+	if (isbegin_quest(12620) != 2)
+		end;
+	cloakoffnpcself( "Subspace vending machine#1" );
+	cloakoffnpcself( "Subspace vending machine#2" );
+	cloakoffnpcself( "Subspace vending machine#3" );
+	cloakoffnpcself( "Spirit Complaint Terminal#1" );
+	end;
+}
+t_garden,130,119,0	duplicate(#v_wp01)	#v_wp02	HIDDEN_WARP_NPC,3,3
+t_garden,134,115,0	duplicate(#v_wp01)	#v_wp03	HIDDEN_WARP_NPC,4,4
+
+
+// Quest rewards
+t_garden,126,126,2	script(CLOAKED)	Spirit Complaint Terminal#1	4_VENDING_MACHINE2,{
+	if (isbegin_quest(12620) != 2)
+		end;
+	if (checkweight(1201,1) == 0) {
+		mes "I cannot communicate with the barrier because I have too many types or weights of items.";
+		close;
+	}
+	mes "[Spirit Complaint Terminal]";
+	mes "Conversation between spirits and humans. Seamless communication. We will listen to the voices of our customers. This is Kiosk 5000, a comprehensive information terminal that processes spirit complaints and compensation at the same time. How can we help you?";
+	next;
+	if (select( "Exit menu", "Spirit complaint processing" ) == 1) {
+		mes "[Spirit Complaint Terminal]";
+		mes "Goodbye.";
+		close;
+	}
+	mes "[Spirit Complaint Terminal]";
+	mes "We will automatically process all completed spirit requests that you have.";
+	next;
+	mes "[Spirit Complaint Terminal]";
+
+	.@count += callsub( S_Hunt,
+		12621,				// Quest ID
+		"Terremotus' Request 1",	// Quest name
+		1001464,			// Reward item ID
+		13890900,			// Base exp
+		0					// Job exp (unknown)
+	);
+	.@count += callsub( S_Hunt, 12622, "Terremotus' Request 2", 1001464, 13890900,0 );	// Energy_Of_Ground
+	.@count += callsub( S_Hunt, 12623, "Terremotus' Request 3", 1001464, 13890900,0 );
+	.@count += callsub( S_Hunt, 12624, "Terremotus' Request 4", 1001464, 13890900,0 );
+
+	.@count += callsub( S_Hunt, 12625, "Ardor's Request 1", 1001461, 13890900,0 );	// Energy_Of_Flame
+	.@count += callsub( S_Hunt, 12626, "Ardor's Request 2", 1001461, 13890900,0 );
+	.@count += callsub( S_Hunt, 12627, "Ardor's Request 3", 1001461, 13890900,0 );
+	.@count += callsub( S_Hunt, 12628, "Ardor's Request 4", 1001461, 13890900,0 );
+
+	.@count += callsub( S_Hunt, 12629, "Procella's Request 1", 1001463, 13890900,0 );	// Energy_Of_Wind
+	.@count += callsub( S_Hunt, 12630, "Procella's Request 2", 1001463, 13890900,0 );
+	.@count += callsub( S_Hunt, 12631, "Procella's Request 3", 1001463, 13890900,0 );
+	.@count += callsub( S_Hunt, 12632, "Procella's Request 4", 1001463, 13890900,0 );
+
+	.@count += callsub( S_Hunt, 12633, "Diluvio's Request 1", 1001462, 13890900,0 );	// Energy_Of_Water
+	.@count += callsub( S_Hunt, 12634, "Diluvio's Request 2", 1001462, 13890900,0 );
+	.@count += callsub( S_Hunt, 12635, "Diluvio's Request 3", 1001462, 13890900,0 );
+	.@count += callsub( S_Hunt, 12636, "Diluvio's Request 4", 1001462, 13890900,0 );
+
+	.@count += callsub( S_Hunt, 12637, "Serpens's Request 1", 1001465, 27176580,0 );	// Grace_Of_Spirit
+	.@count += callsub( S_Hunt, 12638, "Serpens's Request 2", 1001465, 27176580,0 );
+
+	.@count += callsub( S_Gathering,
+		12639,				// Quest ID
+		"Serpens's Request 3",	// Quest name
+		1001433,			// Required item ID
+		10,					// Required amount
+		1001461,			// Reward item ID
+		27176580,			// Base exp
+		0					// Job exp (unknown)
+	);
+	.@count += callsub( S_Gathering, 12640, "Serpens's Request 4", 1001434,10, 1001462, 27176580,0 );
+	.@count += callsub( S_Gathering, 12641, "Serpens's Request 5", 1001435,10, 1001463, 27176580,0 );
+	.@count += callsub( S_Gathering, 12642, "Serpens's Request 6", 1001436,10, 1001464, 27176580,0 );
+	.@count += callsub( S_Gathering, 12643, "Serpens's Request 7", 1001432,20, 1001465, 27176580,0 );
+
+	if (.@count == 0) {
+		mes "It appears that no special complaints have been handled. If you have handled a complaint related to spirits, please come back at any time. Thank you.";
+		close;
+	}
+	mes "------------";
+	mes "The above " + .@count + " complaints have been processed.";
+	close;
+
+S_Hunt:
+	if (checkquest(getarg(0),HUNTING) == 2) {
+		mes "^0000ff" + getarg(1) + " Completed^000000 - Compensation paid.";
+		erasequest getarg(0);
+		getitem getarg(2),1;
+		for ( .@i = 0; .@i < 10; ++.@i )
+			getexp getarg(3), getarg(4);
+		return 1;
+	}
+	return 0;
+	
+S_Gathering:
+	if (countitem(getarg(2)) >= getarg(3)) {
+		mes "^0000ff" + getarg(1) + " Completed^000000 - Compensation paid.";
+		erasequest getarg(0);
+		delitem getarg(2),getarg(3);
+		getitem getarg(4),1;
+		for ( .@i = 0; .@i < 10; ++.@i )
+			getexp getarg(5), getarg(6);
+		return 1;
+	}
+	return 0;
+
+OnInit:
+	setunittitle( getnpcid(0), "<Elemental Latest Model>" );
+
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12621,HUNTING) == 2" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12622,HUNTING) == 2" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12623,HUNTING) == 2" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12624,HUNTING) == 2" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12625,HUNTING) == 2" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12626,HUNTING) == 2" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12627,HUNTING) == 2" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12628,HUNTING) == 2" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12629,HUNTING) == 2" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12630,HUNTING) == 2" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12631,HUNTING) == 2" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12632,HUNTING) == 2" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12633,HUNTING) == 2" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12634,HUNTING) == 2" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12635,HUNTING) == 2" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12636,HUNTING) == 2" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12637,HUNTING) == 2" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(12638,HUNTING) == 2" );
+
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "isbegin_quest(12639) == 1 && countitem(1001433) >= 10" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "isbegin_quest(12640) == 1 && countitem(1001434) >= 10" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "isbegin_quest(12641) == 1 && countitem(1001435) >= 10" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "isbegin_quest(12642) == 1 && countitem(1001436) >= 10" );
+	questinfo( QTYPE_QUEST2, QMARK_YELLOW, "isbegin_quest(12643) == 1 && countitem(1001432) >= 20" );
+	end;
+}
+
+
+// Exchange and enchants
+t_garden,129,123,2	script(CLOAKED)	Subspace vending machine#1	HEROS_IN_ORB_1,{
+	if (isbegin_quest(12620) != 2)
+		end;
+	if (checkweight(1201,1) == 0) {
+		mes "I cannot communicate with the barrier because I have too many types or weights of objects.";
+		close;
+	}
+	npctalk "Everything you want is here. What deal do you want?", "", bc_self;
+	switch( select( "Cancel", "Energy transaction by attribute", "Energy transaction by season", "Various consumable transaction" ) ) {
+	case 1:
+		end;
+	case 2:
+		callshop( "barter_t_garden_1" );
+		break;
+	case 3:
+		callshop( "barter_t_garden_2" );
+		break;
+	case 4:
+		callshop( "barter_t_garden_3" );
+		break;
+	}
+	end;
+
+OnInit:
+	setunittitle( getnpcid(0), "<Welcome to various goods trading>" );
+	end;
+}
+
+t_garden,132,120,2	script(CLOAKED)	Subspace vending machine#2	HEROS_IN_ORB_2,{
+	if (isbegin_quest(12620) != 2)
+		end;
+	if (checkweight(1201,1) == 0) {
+		mes "I cannot communicate with the barrier because I have too many types or weights of objects.";
+		close;
+	}
+	npctalk "This place specializes in equipment. What kind of deal do you want?", "", bc_self;
+	switch( select( "Cancel", "Purchase Circulation of Life Accessories", "Purchase Divine Beast's Cloak", "Upgrade Divine Beast's Cloak" ) ) {
+	case 1:
+		end;
+	case 2:
+		callshop( "barter_t_garden_4" );
+		end;
+	case 3:
+		callshop( "barter_t_garden_5" );
+		end;
+	case 4:
+		item_reform("Season_H_Upgrade");
+		end;
+	}
+	end;
+
+OnInit:
+	setunittitle( getnpcid(0), "<Clothing Upgrade Specialist>" );
+	end;
+}
+
+t_garden,135,117,2	script(CLOAKED)	Subspace vending machine#3	HEROS_IN_ORB_3,{
+	if (isbegin_quest(12620) != 2)
+		end;
+	if (checkweight(1201,1) == 0) {
+		mes "I cannot communicate with the barrier because I have too many types or weights of objects.";
+		close;
+	}
+	npctalk "We carefully enchant the equipment obtained from the Lake of Fire. Is there a menu you would like?", "", bc_self;
+	switch( select( "Divine Beast's Cloak - Spring", "Divine Beast's Cloak - Summer", "Divine Beast's Cloak - Fall", "Divine Beast's Cloak - Winter" ) ) {
+	case 1:
+		item_enchant(117);
+		break;
+	case 2:
+		item_enchant(119);
+		break;
+	case 3:
+		item_enchant(121);
+		break;
+	case 4:
+		item_enchant(123);
+		break;
+	}
+	end;
+
+OnInit:
+	setunittitle( getnpcid(0), "<Divine Cloak Enchantment>" );
+	end;
+}
+
+t_garden,138,114,2	script(CLOAKED)	Subspace vending machine#4	HEROS_IN_ORB_4,{
+	if (isbegin_quest(12620) != 2)
+		end;
+	if (checkweight(1201,1) == 0) {
+		mes "I cannot communicate with the barrier because I have too many types or weights of objects.";
+		close;
+	}
+	npctalk "We put great effort into enchanting circulating equipment. Is there a menu you would like?", "", bc_self;
+	switch( select( "Circle of Life Accessories", "Circle of Life-Spring", "Circle of Life-Summer", "Circle of Life-Autumn", "Circle of Life-Winter" ) ) {
+	case 1:
+		item_enchant(142);
+		break;
+	case 2:
+		item_enchant(118);
+		break;
+	case 3:
+		item_enchant(120);
+		break;
+	case 4:
+		item_enchant(122);
+		break;
+	case 5:
+		item_enchant(124);
+		break;
+	}
+	end;
+
+OnInit:
+	setunittitle( getnpcid(0), "<Circle of Life Ingent>" );
+	end;
+}
+
+
+// Storages
+-	shop	t_garden_shop	-1,501:-1
+
+t_garden,156,222,2	script	Functional Vending Machine#1	4_VENDING_MACHINE2,{
+	// switch( select( "Tool Dealer", "Storage 1 (100z)", "Storage 2 (100z)", "Storage 3 (100z)", "Use savepoint service" ) ) {
+	switch( select( "Tool Dealer", "Storage 1 (100z)", "", "", "Use savepoint service" ) ) {
+	case 1:
+		callshop( "t_garden_shop", 2 );
+		end;
+	case 2:
+		.@storage_num = 1;
+		break;
+	case 3:
+		.@storage_num = 2;
+		break;
+	case 4:
+		.@storage_num = 3;
+		break;
+	case 5:
+		npctalk "" + strcharinfo(0) + " your location has been safely saved.", "", bc_self;
+
+		.@num = atoi( strnpcinfo(2) );
+		if (.@num == 1)
+			savepoint "t_garden",156,220;
+		else if (.@num == 2)
+			savepoint "t_garden",97,135;
+		else if (.@num == 3)
+			savepoint "t_garden",90,115;
+		else if (.@num == 4)
+			savepoint "t_garden",137,106;
+		break;
+	}
+	if (Zeny < 100) {
+		npctalk "To use the Storage, please insert 100 zeny.", "", bc_self;
+		end;
+	}
+	Zeny -= 100;
+	npctalk "I will open storage number " + .@storage_num + ". Thank you for using it.", "", bc_self;
+	openstorage;
+	end;
+
+OnInit:
+	questinfo( QTYPE_CLICKME, QMARK_YELLOW, "isbegin_quest(12592) == 2" );
+	end;
+}
+t_garden,97,138,6	duplicate(Functional Vending Machine#1)	Functional Vending Machine#2	4_VENDING_MACHINE2
+t_garden,91,116,2	duplicate(Functional Vending Machine#1)	Functional Vending Machine#3	4_VENDING_MACHINE2
+t_garden,144,116,2	duplicate(Functional Vending Machine#1)	Functional Vending Machine#4	4_VENDING_MACHINE2

+ 14 - 8
npc/re/quests/quests_18.txt

@@ -12253,18 +12253,24 @@ rachel,70,135,4	script(CLOAKED)	Mejai#E18_7	4_M_DST_CHILD,{
 		mes "Grand opening over! Shall we now put our hearts into our work?";
 		next;
 	}
-	setpcblock PCBLOCK_NPC, true;
-	if (checkquest(5937,PLAYTIME) != 2)
-		npctalk "Mejai: Hello. Let's do our best today too.", "Mejai#E18_7", bc_self;
-	else {
+	switch( checkquest(5937,PLAYTIME) ) {
+	case -1:
+		break;
+	case 0:
+	case 1:
+		setpcblock PCBLOCK_NPC, true;
 		npctalk "Mejai: Come on! Today's work is done.", "Mejai#E18_7", bc_self;
 		sleep2 1000;
 		setpcblock PCBLOCK_NPC, false;
 		npctalk "Mejai: Go home and be faithful to your family. It's not like this is the only thing you have to do.", "Mejai#E18_7", bc_self;
 		end;
+	case 2:
+		setpcblock PCBLOCK_NPC, true;
+		npctalk "Mejai: Hello. Let's do our best today too.", "Mejai#E18_7", bc_self;
+		sleep2 1000;
+		setpcblock PCBLOCK_NPC, false;
+		break;
 	}
-	sleep2 1000;
-	setpcblock PCBLOCK_NPC, false;
 	switch( select( "I'm currently busy..", "Harvesting Half Flowers", "Delivering Half Flowers" ) ) {
 	case 1:
 		npctalk "Mejai: It seems you're busy with something? Please come see me when you're free.", "Mejai#E18_7", bc_self;
@@ -13012,7 +13018,7 @@ wolfvill,164,137,3	script	Emmet#emet	4_EP18_GW_WOMAN01,{
 		mes "I mean, the Amethyst Fragment.";
 		mes "Please select the part you want to enchant.";
 		next;
-		switch( select( "Armor", "Coat", "Shoes", "Right(R) Accessory", "Left(L) Accessory" ) ) {
+		switch( select( "Armor", "Garment", "Shoes", "Right(R) Accessory", "Left(L) Accessory" ) ) {
 		case 1:
 			mes "[Emmet]";
 			mes "You're enchanting the armor, I see.";
@@ -13021,7 +13027,7 @@ wolfvill,164,137,3	script	Emmet#emet	4_EP18_GW_WOMAN01,{
 			end;
 		case 2:
 			mes "[Emmet]";
-			mes "You're enchanting the footwear, I see.";
+			mes "You're enchanting the garment, I see.";
 			close2;
 			item_enchant(2);
 			end;

+ 1 - 0
npc/re/scripts_athena.conf

@@ -227,6 +227,7 @@ npc: npc/re/quests/seals/megingard_seal.txt
 // --------------------------------------------------------------
 npc: npc/re/quests/cooking_quest.txt
 //npc: npc/re/quests/cupet.txt
+npc: npc/re/quests/garden_of_time.txt
 npc: npc/re/quests/HelpMeShorty.txt
 npc: npc/re/quests/homun_s.txt
 npc: npc/re/quests/illusion_investigation.txt

+ 1 - 0
npc/re/scripts_monsters.conf

@@ -30,6 +30,7 @@ npc: npc/re/mobs/dungeons/dew_dun.txt
 npc: npc/re/mobs/dungeons/dic_dun.txt
 npc: npc/re/mobs/dungeons/ecl_tdun.txt
 npc: npc/re/mobs/dungeons/ein_dun.txt
+npc: npc/re/mobs/dungeons/for_dun.txt
 npc: npc/re/mobs/dungeons/gef_dun.txt
 npc: npc/re/mobs/dungeons/gefenia.txt
 npc: npc/re/mobs/dungeons/glastheim.txt

+ 5 - 0
npc/test/ci/8886.txt

@@ -0,0 +1,5 @@
+-	script	8886#ci	-1,{
+OnInit:
+	atcommand "@broadcast Test";
+	end;
+}

+ 27 - 0
rAthena.slnLaunch

@@ -0,0 +1,27 @@
+[
+  {
+    "Name": "All Servers",
+    "Projects": [
+      {
+        "Path": "src\\login\\login-server.vcxproj",
+        "Action": "Start",
+        "DebugTarget": "Local Windows Debugger"
+      },
+      {
+        "Path": "src\\char\\char-server.vcxproj",
+        "Action": "Start",
+        "DebugTarget": "Local Windows Debugger"
+      },
+      {
+        "Path": "src\\map\\map-server.vcxproj",
+        "Action": "Start",
+        "DebugTarget": "Local Windows Debugger"
+      },
+      {
+        "Path": "src\\web\\web-server.vcxproj",
+        "Action": "Start",
+        "DebugTarget": "Local Windows Debugger"
+      }
+    ]
+  }
+]

+ 1 - 1
sql-files/item_db_etc.sql

@@ -1916,7 +1916,7 @@ REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`weight`) VALUES
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`weight`) VALUES (7770,'Sweet_Rice','Sweet Rice','Etc',10);
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`weight`) VALUES (7771,'Lotus_Leaf','Lotus Leaf','Etc',10);
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`weight`) VALUES (7772,'String','String','Etc',10);
-REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nocart`,`trade_nostorage`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`) VALUES (7773,'War_Badge','Wat Badge','Etc',100,true,true,true,true,true,true,true);
+REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nocart`,`trade_nostorage`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`) VALUES (7773,'War_Badge','War Badge','Etc',100,true,true,true,true,true,true,true);
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`weight`) VALUES (7774,'Chung_E_Ticket','Green Maiden Ticket','Etc',10);
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`weight`) VALUES (7775,'Spring_Rabbit_Ticket','Spring Rabbit Ticket','Etc',10);
 REPLACE INTO `item_db` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nosell`,`trade_nocart`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`) VALUES (7776,'Max_Weight_Up_Scroll','Gym Pass','Etc',10,100,true,true,true,true,true,true,true);

+ 1 - 1
sql-files/item_db_re_etc.sql

@@ -2909,7 +2909,7 @@ REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`) VAL
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`) VALUES (7770,'Sweet_Rice','Sweet Rice','Etc',10);
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`) VALUES (7771,'Lotus_Leaf','Lotus Leaf','Etc',10);
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`) VALUES (7772,'String','String','Etc',10);
-REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nocart`,`trade_nostorage`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`) VALUES (7773,'War_Badge','Wat Badge','Etc',100,true,true,true,true,true,true,true);
+REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nocart`,`trade_nostorage`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`) VALUES (7773,'War_Badge','War Badge','Etc',100,true,true,true,true,true,true,true);
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`) VALUES (7774,'Chung_E_Ticket','Green Maiden Ticket','Etc',10);
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nosell`,`trade_nocart`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`) VALUES (7775,'Spring_Rabbit_Ticket','Spring Rabbit Ticket','Etc',10,100,true,true,true,true,true,true,true);
 REPLACE INTO `item_db_re` (`id`,`name_aegis`,`name_english`,`type`,`weight`,`trade_override`,`trade_nodrop`,`trade_notrade`,`trade_nosell`,`trade_nocart`,`trade_noguildstorage`,`trade_nomail`,`trade_noauction`) VALUES (7776,'Max_Weight_Up_Scroll','Gym Pass','Etc',10,100,true,true,true,true,true,true,true);

+ 25 - 2
sql-files/main.sql

@@ -527,6 +527,7 @@ CREATE TABLE IF NOT EXISTS `guild_expulsion` (
   `account_id` int(11) unsigned NOT NULL default '0',
   `name` varchar(24) NOT NULL default '',
   `mes` varchar(40) NOT NULL default '',
+  `char_id` int(11) unsigned NOT NULL default '0',
   PRIMARY KEY  (`guild_id`,`name`)
 ) ENGINE=MyISAM;
 
@@ -671,8 +672,8 @@ CREATE TABLE IF NOT EXISTS `homunculus` (
   `luk` smallint(4) unsigned NOT NULL default '0',
   `hp` int(11) unsigned NOT NULL default '0',
   `max_hp` int(11) unsigned NOT NULL default '0',
-  `sp` int(11) NOT NULL default '0',
-  `max_sp` int(11) NOT NULL default '0',
+  `sp` int(11) unsigned NOT NULL default '0',
+  `max_sp` int(11) unsigned NOT NULL default '0',
   `skill_point` smallint(4) unsigned NOT NULL default '0',
   `alive` tinyint(2) NOT NULL default '1',
   `rename_flag` tinyint(2) NOT NULL default '0',
@@ -1054,6 +1055,28 @@ CREATE TABLE IF NOT EXISTS `skill_homunculus` (
   PRIMARY KEY  (`homun_id`,`id`)
 ) ENGINE=MyISAM;
 
+--
+-- Table structure for table `skillcooldown_homunculus`
+--
+
+CREATE TABLE IF NOT EXISTS `skillcooldown_homunculus` (
+  `homun_id` int(11) NOT NULL,
+  `skill` smallint(11) unsigned NOT NULL DEFAULT '0',
+  `tick` bigint(20) NOT NULL,
+  PRIMARY KEY (`homun_id`)
+) ENGINE=MyISAM;
+
+--
+-- Table structure for table `skillcooldown_mercenary`
+--
+
+CREATE TABLE IF NOT EXISTS `skillcooldown_mercenary` (
+  `mer_id` int(11) NOT NULL,
+  `skill` smallint(11) unsigned NOT NULL DEFAULT '0',
+  `tick` bigint(20) NOT NULL,
+  PRIMARY KEY (`mer_id`)
+) ENGINE=MyISAM;
+
 --
 -- Table structure for table `storage`
 --

+ 2 - 0
sql-files/mob_db.sql

@@ -65,6 +65,8 @@ CREATE TABLE `mob_db` (
   `racegroup_illusion_luanda` tinyint(1) unsigned DEFAULT NULL,
   `racegroup_illusion_frozen` tinyint(1) unsigned DEFAULT NULL,
   `racegroup_illusion_moonlight` tinyint(1) unsigned DEFAULT NULL,
+  `racegroup_ep16_def` tinyint(1) unsigned DEFAULT NULL,
+  `racegroup_edda_arunafeltz` tinyint(1) unsigned DEFAULT NULL,
   `element` varchar(24) DEFAULT NULL,
   `element_level` tinyint(4) unsigned DEFAULT NULL,
   `walk_speed` smallint(6) unsigned DEFAULT NULL,

+ 2 - 0
sql-files/mob_db2.sql

@@ -65,6 +65,8 @@ CREATE TABLE `mob_db2` (
   `racegroup_illusion_luanda` tinyint(1) unsigned DEFAULT NULL,
   `racegroup_illusion_frozen` tinyint(1) unsigned DEFAULT NULL,
   `racegroup_illusion_moonlight` tinyint(1) unsigned DEFAULT NULL,
+  `racegroup_ep16_def` tinyint(1) unsigned DEFAULT NULL,
+  `racegroup_edda_arunafeltz` tinyint(1) unsigned DEFAULT NULL,
   `element` varchar(24) DEFAULT NULL,
   `element_level` tinyint(4) unsigned DEFAULT NULL,
   `walk_speed` smallint(6) unsigned DEFAULT NULL,

+ 2 - 0
sql-files/mob_db2_re.sql

@@ -67,6 +67,8 @@ CREATE TABLE `mob_db2_re` (
   `racegroup_illusion_luanda` tinyint(1) unsigned DEFAULT NULL,
   `racegroup_illusion_frozen` tinyint(1) unsigned DEFAULT NULL,
   `racegroup_illusion_moonlight` tinyint(1) unsigned DEFAULT NULL,
+  `racegroup_ep16_def` tinyint(1) unsigned DEFAULT NULL,
+  `racegroup_edda_arunafeltz` tinyint(1) unsigned DEFAULT NULL,
   `element` varchar(24) DEFAULT NULL,
   `element_level` tinyint(4) unsigned DEFAULT NULL,
   `walk_speed` smallint(6) unsigned DEFAULT NULL,

+ 2 - 0
sql-files/mob_db_re.sql

@@ -67,6 +67,8 @@ CREATE TABLE `mob_db_re` (
   `racegroup_illusion_luanda` tinyint(1) unsigned DEFAULT NULL,
   `racegroup_illusion_frozen` tinyint(1) unsigned DEFAULT NULL,
   `racegroup_illusion_moonlight` tinyint(1) unsigned DEFAULT NULL,
+  `racegroup_ep16_def` tinyint(1) unsigned DEFAULT NULL,
+  `racegroup_edda_arunafeltz` tinyint(1) unsigned DEFAULT NULL,
   `element` varchar(24) DEFAULT NULL,
   `element_level` tinyint(4) unsigned DEFAULT NULL,
   `walk_speed` smallint(6) unsigned DEFAULT NULL,

+ 1 - 1
sql-files/upgrades/upgrade_20220222_logs.sql

@@ -1,5 +1,5 @@
 ALTER TABLE `picklog`
-	MODIFY `type` enum('M','P','L','T','V','S','N','C','A','R','G','E','B','O','I','X','D','U','$','F','Y','Z','Q','H','J') NOT NULL default 'P'
+	MODIFY `type` enum('M','P','L','T','V','S','N','C','A','R','G','E','B','O','I','X','D','U','$','F','Y','Z','Q','H','J', 'W') NOT NULL default 'P'
 ;
 
 ALTER TABLE `zenylog`

+ 1 - 0
sql-files/upgrades/upgrade_20240914.sql

@@ -0,0 +1 @@
+ALTER TABLE `guild_expulsion` ADD COLUMN `char_id` int(11) unsigned NOT NULL default '0';

+ 3 - 0
sql-files/upgrades/upgrade_20241005.sql

@@ -0,0 +1,3 @@
+ALTER TABLE `homunculus`
+	CHANGE COLUMN `sp` `sp` INT(11) UNSIGNED NOT NULL DEFAULT '0',
+	CHANGE COLUMN `max_sp` `max_sp` INT(11) UNSIGNED NOT NULL DEFAULT '0';

+ 8 - 0
sql-files/upgrades/upgrade_20241026.sql

@@ -0,0 +1,8 @@
+ALTER TABLE `mob_db`
+	ADD COLUMN `racegroup_edda_arunafeltz` tinyint(1) unsigned DEFAULT NULL;
+ALTER TABLE `mob_db2`
+	ADD COLUMN `racegroup_edda_arunafeltz` tinyint(1) unsigned DEFAULT NULL;
+ALTER TABLE `mob_db_re`
+	ADD COLUMN `racegroup_edda_arunafeltz` tinyint(1) unsigned DEFAULT NULL;
+ALTER TABLE `mob_db2_re`
+	ADD COLUMN `racegroup_edda_arunafeltz` tinyint(1) unsigned DEFAULT NULL;

+ 13 - 0
sql-files/upgrades/upgrade_20241216.sql

@@ -0,0 +1,13 @@
+CREATE TABLE IF NOT EXISTS `skillcooldown_homunculus` (
+  `homun_id` int(11) NOT NULL,
+  `skill` smallint(11) unsigned NOT NULL DEFAULT '0',
+  `tick` bigint(20) NOT NULL,
+  PRIMARY KEY (`homun_id`)
+) ENGINE=MyISAM;
+
+CREATE TABLE IF NOT EXISTS `skillcooldown_mercenary` (
+  `mer_id` int(11) NOT NULL,
+  `skill` smallint(11) unsigned NOT NULL DEFAULT '0',
+  `tick` bigint(20) NOT NULL,
+  PRIMARY KEY (`mer_id`)
+) ENGINE=MyISAM;

+ 2 - 2
src/char/CMakeLists.txt

@@ -14,8 +14,8 @@ file(GLOB CHAR_SOURCES_CXX ${CHAR_SOURCE_DIR}/*.cpp)
 set(CHAR_SOURCES ${CHAR_SOURCES_C} ${CHAR_SOURCES_CXX})
 #message( STATUS "CHAR_SOURCES="${CHAR_SOURCES})
 set( DEPENDENCIES common )
-set( LIBRARIES ${GLOBAL_LIBRARIES} )
-set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ${COMMON_BASE_INCLUDE_DIRS} ${RA_INCLUDE_DIRS} )
+set( LIBRARIES ${GLOBAL_LIBRARIES} ${MYSQL_LIBRARIES} )
+set( INCLUDE_DIRS ${GLOBAL_INCLUDE_DIRS} ${COMMON_BASE_INCLUDE_DIRS} ${RA_INCLUDE_DIRS} ${MYSQL_INCLUDE_DIRS} )
 set( DEFINITIONS "${GLOBAL_DEFINITIONS} ${COMMON_BASE_DEFINITIONS}" )
 set( SOURCE_FILES ${COMMON_BASE_HEADERS} ${COMMON_HEADERS} ${CHAR_HEADERS} ${CHAR_SOURCES} )
 source_group( common FILES ${COMMON_BASE_HEADERS} ${COMMON_HEADERS} )

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio