浏览代码

Merge branch 'master' into feature/store_taxes

Aleos 6 年之前
父节点
当前提交
27e1c40818
共有 100 个文件被更改,包括 1633 次插入283 次删除
  1. 24 0
      .editorconfig
  2. 4 0
      conf/battle/feature.conf
  3. 4 1
      conf/msg_conf/map_msg.conf
  4. 1 1
      db/pre-re/item_db.txt
  5. 11 7
      db/pre-re/skill_db.txt
  6. 1 1
      db/pre-re/skill_require_db.txt
  7. 0 3
      db/pre-re/skill_tree.txt
  8. 52 2
      db/re/item_combo_db.txt
  9. 135 11
      db/re/item_db.txt
  10. 3 0
      db/re/item_misc.txt
  11. 1 0
      db/re/item_trade.txt
  12. 56 17
      db/re/mob_db.txt
  13. 4 0
      db/re/skill_cast_db.txt
  14. 11 11
      db/re/skill_db.txt
  15. 2 2
      db/re/skill_require_db.txt
  16. 6 3
      db/re/skill_tree.txt
  17. 29 6
      doc/script_commands.txt
  18. 7 1
      npc/battleground/bg_common.txt
  19. 4 2
      npc/battleground/tierra/tierra01.txt
  20. 4 2
      npc/battleground/tierra/tierra02.txt
  21. 2 1
      npc/custom/battleground/unofficial/bg_tierra_01.txt
  22. 2 1
      npc/custom/battleground/unofficial/bg_tierra_02.txt
  23. 3 1
      npc/guild2/agit_main_se.txt
  24. 2 2
      npc/jobs/2-1/blacksmith.txt
  25. 2 9
      npc/merchants/shops.txt
  26. 0 1
      npc/merchants/socket_enchant2.txt
  27. 19 1
      npc/pre-re/merchants/shops.txt
  28. 18 0
      npc/pre-re/merchants/socket_enchant2.txt
  29. 14 0
      npc/pre-re/quests/quests_morocc.txt
  30. 1 0
      npc/pre-re/scripts_athena.conf
  31. 3 3
      npc/quests/quests_morocc.txt
  32. 29 0
      npc/re/battleground/bg_common.txt
  33. 4 4
      npc/re/cities/dewata.txt
  34. 1 1
      npc/re/cities/malangdo.txt
  35. 1 1
      npc/re/custom/lasagna/lasagna_npcs.txt
  36. 3 3
      npc/re/instances/RoomOfConsciousness.txt
  37. 2 2
      npc/re/instances/WolfchevLaboratory.txt
  38. 9 0
      npc/re/kafras/kafras.txt
  39. 710 0
      npc/re/mapflag/privateairship.txt
  40. 1 1
      npc/re/merchants/3rd_trader.txt
  41. 30 1
      npc/re/merchants/shops.txt
  42. 18 0
      npc/re/merchants/socket_enchant2.txt
  43. 2 2
      npc/re/other/dimensional_gap.txt
  44. 3 0
      npc/re/quests/mrsmile.txt
  45. 2 2
      npc/re/quests/quests_15_1.txt
  46. 15 4
      npc/re/quests/quests_16_1.txt
  47. 1 1
      npc/re/quests/quests_malangdo.txt
  48. 10 0
      npc/re/quests/quests_morocc.txt
  49. 4 0
      npc/re/scripts_athena.conf
  50. 1 0
      npc/re/scripts_mapflags.conf
  51. 1 1
      sql-files/item_db.sql
  52. 135 11
      sql-files/item_db_re.sql
  53. 2 1
      sql-files/logs.sql
  54. 56 17
      sql-files/mob_db_re.sql
  55. 2 0
      sql-files/upgrades/upgrade_20180729_logs.sql
  56. 3 0
      sql-files/upgrades/upgrade_20180830.sql
  57. 2 4
      src/char/char.cpp
  58. 3 3
      src/char/char.hpp
  59. 3 4
      src/char/char_clif.hpp
  60. 3 4
      src/char/char_cnslif.hpp
  61. 3 4
      src/char/char_logif.hpp
  62. 3 4
      src/char/char_mapif.hpp
  63. 3 3
      src/char/int_achievement.hpp
  64. 3 3
      src/char/int_auction.hpp
  65. 3 3
      src/char/int_clan.hpp
  66. 3 3
      src/char/int_elemental.hpp
  67. 3 3
      src/char/int_guild.hpp
  68. 3 3
      src/char/int_homun.hpp
  69. 3 6
      src/char/int_mail.hpp
  70. 3 3
      src/char/int_mercenary.hpp
  71. 3 3
      src/char/int_party.hpp
  72. 3 3
      src/char/int_pet.hpp
  73. 3 4
      src/char/int_quest.hpp
  74. 3 3
      src/char/int_storage.hpp
  75. 3 3
      src/char/inter.hpp
  76. 3 3
      src/common/cbasetypes.hpp
  77. 3 4
      src/common/cli.hpp
  78. 3 3
      src/common/conf.hpp
  79. 3 3
      src/common/core.hpp
  80. 3 3
      src/common/db.hpp
  81. 3 3
      src/common/des.hpp
  82. 3 3
      src/common/ers.hpp
  83. 3 3
      src/common/grfio.hpp
  84. 3 3
      src/common/malloc.hpp
  85. 3 3
      src/common/mapindex.hpp
  86. 3 3
      src/common/md5calc.hpp
  87. 4 3
      src/common/mmo.hpp
  88. 0 1
      src/common/msg_conf.hpp
  89. 3 3
      src/common/nullpo.hpp
  90. 3 3
      src/common/random.hpp
  91. 3 3
      src/common/showmsg.hpp
  92. 3 3
      src/common/socket.hpp
  93. 3 3
      src/common/sql.hpp
  94. 3 3
      src/common/strlib.hpp
  95. 3 3
      src/common/timer.hpp
  96. 37 5
      src/common/utilities.hpp
  97. 3 3
      src/common/utils.hpp
  98. 3 3
      src/common/winapi.hpp
  99. 3 3
      src/config/classes/general.hpp
  100. 3 3
      src/config/const.hpp

+ 24 - 0
.editorconfig

@@ -0,0 +1,24 @@
+# rAthena EditorConfig file
+# EditorConfig is awesome: https://EditorConfig.org
+# This file should be encoded in UTF-8 with CRLF or LF line endings.
+
+root = true
+
+# Add a blank newline to the end of every file after saving
+# Trim trailing whitespace
+[*]
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+# YAML does not support hard tabs.
+[*.{yml,yaml}]
+indent_style = space
+indent_size = 4
+
+# Use tabs in Makefiles
+[Makefile*]
+indent_style = tab
+
+# Scripts should use hard tabs to prevent script header goofs.
+[npc/**.txt]
+indent_style = tab

+ 4 - 0
conf/battle/feature.conf

@@ -74,3 +74,7 @@ feature.homunculus_autofeed: off
 // Attendance System (Note 1)
 // Requires: 2018-03-07bRagexeRE or later
 feature.attendance: off
+
+// Private Airship System (Note 1)
+// Requires: 2018-03-21aRagexeRE or later
+feature.privateairship: off

+ 4 - 1
conf/msg_conf/map_msg.conf

@@ -858,7 +858,10 @@
 790: <MSG>3456,%d</MSG>
 791: You are not allowed to use the attendance system.
 
-//792-899 free
+// Private Airship
+792: The private airship system is disabled.
+
+//793-899 free
 
 //------------------------------------
 // More atcommands message

+ 1 - 1
db/pre-re/item_db.txt

@@ -754,7 +754,7 @@
 1480,Gae_Bolg_,Gae Bolg,5,20,,2000,160,,3,2,0x00004082,7,2,34,4,60,1,5,{ bonus bIgnoreDefRace,RC_Dragon; bonus2 bAddClass,Class_Boss,10; },{},{}
 1481,Zephyrus_,Zephyrus,5,20,,2000,170,,3,3,0x00004082,7,2,34,4,48,1,5,{ bonus bAtkEle,Ele_Wind; bonus2 bAddEff,Eff_Silence,200; bonus3 bAutoSpell,"MG_THUNDERSTORM",3,100; },{},{}
 1482,BF_Lance1,Assaulter Lance,5,,,0,160,,3,0,0x00004082,7,2,34,3,80,1,5,{ bonus bStr,2; bonus2 bAddRace,RC_DemiHuman,25; bonus2 bAddRace,RC_Player,25; bonus bIgnoreDefRace,RC_DemiHuman; bonus bIgnoreDefRace,RC_Player; bonus bUnbreakableWeapon; },{},{}
-1483,Ivory_Lance,Ivory Lance,5,20,,1000,160,,3,1,0x00004082,2,2,34,3,50,1,5,{ bonus bAgi,2; bonus bAspdRate,3; bonus2 bAddEff,Eff_Bleeding,300; bonus3 bAutoSpell,"LK_JOINTBEAT",1,100; skill "KN_SPEARSTAB",5; },{},{}
+1483,Ivory_Lance,Ivory Lance,5,20,,1000,160,,3,1,0x00004082,2,2,34,3,50,1,5,{ bonus bAgi,2; bonus bAspdRate,3; bonus2 bAddEff,Eff_Bleeding,300; bonus3 bAutoSpell,"NPC_CRITICALWOUND",1,30; skill "KN_SPEARSTAB",5; },{},{}
 1484,Cardo,Cardo,5,20,,5600,150,,3,1,0x00000080,2,2,34,4,70,1,5,{ bonus bAspdRate,-10; bonus bDef,getrefine()/2; },{},{}
 1485,Battle_Fork,Battle Fork,5,20,,700,112,,3,4,0x00004082,2,2,34,2,50,1,5,{},{},{}
 1486,Krieger_Twohand_Spear1,Glorious Lance,5,20,,0,220,,3,0,0x00004082,7,2,34,4,80,1,5,{ bonus2 bAddRace,RC_DemiHuman,70; bonus2 bAddRace,RC_Player,70; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,25; bonus2 bIgnoreDefRaceRate,RC_Player,25; bonus bUnbreakableWeapon; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bAddRace,RC_Player,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRaceRate,RC_DemiHuman,5; bonus2 bIgnoreDefRaceRate,RC_Player,5; } if(getrefine()>8) { if(BaseJob==Job_Knight) bonus4 bAutoSpellOnSkill,"KN_PIERCE","NPC_CRITICALWOUND",2,200; else if(BaseJob==Job_Crusader) bonus3 bAutoSpell,"PA_PRESSURE",5,200; } },{},{}

+ 11 - 7
db/pre-re/skill_db.txt

@@ -999,7 +999,7 @@
 // AB Arch Bishop
 2038,11,8,1,6,0x2,1,5,-3,yes,0,0,0,magic,0,0x0,	AB_JUDEX,Judex
 2039,0,6,4,0,0x1,0,1,1,yes,0,0,0,magic,0,0x0,	AB_ANCILLA,Ancilla
-2040,11,8,1,6,0,0,10,-10,yes,0,0,0,magic,0,0x0,	AB_ADORAMUS,Adoramus
+2040,11,8,1,6,0x2,1:1:1:1:1:1:2:2:2:2,10,-10,yes,0,0,0,magic,0,0x0,	AB_ADORAMUS,Adoramus
 2041,0,6,4,0,0x3,3:7:15,3,1,yes,0,0,0,magic,0,0x0,	AB_CLEMENTIA,Crementia
 2042,0,6,4,0,0x3,3:7:15,3,1,yes,0,0,0,magic,0,0x0,	AB_CANTO,Canto Candidus
 2043,0,6,4,6,0x3,3:7:15,3,1,yes,0,0,0,magic,0,0x0,	AB_CHEAL,Coluceo Heal
@@ -1008,15 +1008,15 @@
 2046,0,6,4,6,0x3,15,10,1,yes,0,0,0,magic,0,0x0,	AB_ORATIO,Oratio
 2047,0,6,4,6,0x3,15,4,1,yes,0,0,0,magic,0,0x0,	AB_LAUDAAGNUS,Lauda Agnus
 2048,0,6,4,6,0x3,15,4,1,yes,0,0,0,magic,0,0x0,	AB_LAUDARAMUS,Lauda Ramus
-2049,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0,		AB_EUCHARISTICA,Eucharistica
-2050,11,6,16,6,0x1,0,1,1,yes,0,0,0,magic,0,0x0,	AB_RENOVATIO,Renovatio
-2051,11,6,16,6,0x21,0,5,1,yes,0,0,0,magic,0,0x0,	AB_HIGHNESSHEAL,Highness Heal //CHECK Info shows this has magic attack.
+2049,0,0,0,0,0,0,0,0,no,0,0,0,none,0,0x0,		AB_EUCHARISTICA,Eucharistica // Removed on kRO
+2050,11,6,4,6,0x1,15,1,1,yes,0,0,0,magic,0,0x0,	AB_RENOVATIO,Renovatio
+2051,11,6,16,6,0x21,0,5,1,yes,0,0,0,magic,0,0x0,	AB_HIGHNESSHEAL,Highness Heal
 2052,11,6,1,0,0x1,0,5,1,yes,0,0x400,0,magic,0,0x10020,	AB_CLEARANCE,Clearance
-2053,11,6,16,0,0x1,0,5,1,yes,0,0,0,magic,0,0x0,	AB_EXPIATIO,Expiatio //CHECK Does this also give the buff to party members?
-2054,0,6,4,6,0x1,0,10,1,yes,0,0,0,none,0,0x0,	AB_DUPLELIGHT,Duple Light //CHECK Had issues adding a skill level check to make the % go higher with the skills level. Will do later.
+2053,11,6,16,0,0x1,0,5,1,yes,0,0,0,magic,0,0x0,	AB_EXPIATIO,Expiatio
+2054,0,6,4,6,0x1,0,10,1,yes,0,0,0,none,0,0x0,	AB_DUPLELIGHT,Duple Light
 2055,-1,6,1,-1,0,0,10,1,no,0,0,0,weapon,0,0x0,	AB_DUPLELIGHT_MELEE,Duple Light Melee
 2056,-1,6,1,0,0,0,10,1,no,0,0,0,magic,0,0x0,	AB_DUPLELIGHT_MAGIC,Duple Light Magic
-2057,0,6,4,6,0x3,4:5:6:7:8,5,1,yes,0,0,0,magic,0,0x0,	AB_SILENTIUM,Silentium //CHECk Marked magic attack as well. Hmmmm....
+2057,0,6,4,6,0x3,4:5:6:7:8,5,1,yes,0,0,0,magic,0,0x0,	AB_SILENTIUM,Silentium
 
 2515,11,6,16,0,0x1,0,5,1,yes,0,0,0,magic,0,0x0,	AB_SECRAMENT,Secrament
 
@@ -1402,6 +1402,10 @@
 5064,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0,	WE_ONEFOREVER,One Forever
 5065,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0,	WE_CHEERUP,Cheer Up
 
+// New Arch Bishop Skills
+5072,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0,		AB_VITUPERATUM,Vituperatum
+5073,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0,		AB_CONVENIO,Convenio
+
 //****
 // Homunculus S
 8001,9,6,4,0,0x1,0,5,1,no,0,0,0,magic,0,0x0,	HLIF_HEAL,Healing Touch

+ 1 - 1
db/pre-re/skill_require_db.txt

@@ -630,7 +630,7 @@
 //****
 // AB Arch Bishop
 2038,0,0,20:23:26:29:32,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0					//AB_JUDEX
-2039,0,0,30,0,-30,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0							//AB_ANCILLA
+2039,0,0,30,0,-10,0,99,0,0,none,0,0,717,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0							//AB_ANCILLA
 2040,0,0,22:28:34:40:46:52:58:64:70:76,0,0,0,99,0,0,none,0,0,717,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//AB_ADORAMUS
 2041,0,0,280:320:360,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0					//AB_CLEMENTIA
 2042,0,0,200:220:240,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0					//AB_CANTO

+ 0 - 3
db/pre-re/skill_tree.txt

@@ -2577,7 +2577,6 @@
 4057,2046,10,2045,5,0,0,0,0,0,0,0,0 //AB_ORATIO#Oratio#
 4057,2047,4,72,1,0,0,0,0,0,0,0,0 //AB_LAUDAAGNUS#Lauda Agnus#
 4057,2048,4,2047,2,0,0,0,0,0,0,0,0 //AB_LAUDARAMUS#Lauda Ramus#
-4057,2049,10,2044,1,2053,1,0,0,0,0,0,0 //AB_EUCHARISTICA#Eucharistica#
 4057,2050,1,2043,3,0,0,0,0,0,0,0,0 //AB_RENOVATIO#Renovatio#
 4057,2051,5,2050,1,0,0,0,0,0,0,0,0 //AB_HIGHNESSHEAL#Highness Heal#
 4057,2052,5,2048,2,0,0,0,0,0,0,0,0 //AB_CLEARANCE#Clearance#
@@ -2924,7 +2923,6 @@
 4063,2046,10,2045,5,0,0,0,0,0,0,0,0 //AB_ORATIO#Oratio#
 4063,2047,4,72,1,0,0,0,0,0,0,0,0 //AB_LAUDAAGNUS#Lauda Agnus#
 4063,2048,4,2047,2,0,0,0,0,0,0,0,0 //AB_LAUDARAMUS#Lauda Ramus#
-4063,2049,10,2044,1,2053,1,0,0,0,0,0,0 //AB_EUCHARISTICA#Eucharistica#
 4063,2050,1,2043,3,0,0,0,0,0,0,0,0 //AB_RENOVATIO#Renovatio#
 4063,2051,5,2050,1,0,0,0,0,0,0,0,0 //AB_HIGHNESSHEAL#Highness Heal#
 4063,2052,5,2048,2,0,0,0,0,0,0,0,0 //AB_CLEARANCE#Clearance#
@@ -4580,7 +4578,6 @@
 4099,2046,10,2045,5,0,0,0,0,0,0,0,0 //AB_ORATIO#Oratio#
 4099,2047,4,72,1,0,0,0,0,0,0,0,0 //AB_LAUDAAGNUS#Lauda Agnus#
 4099,2048,4,2047,2,0,0,0,0,0,0,0,0 //AB_LAUDARAMUS#Lauda Ramus#
-4099,2049,10,2044,1,2053,1,0,0,0,0,0,0 //AB_EUCHARISTICA#Eucharistica#
 4099,2050,1,2043,3,0,0,0,0,0,0,0,0 //AB_RENOVATIO#Renovatio#
 4099,2051,5,2050,1,0,0,0,0,0,0,0,0 //AB_HIGHNESSHEAL#Highness Heal#
 4099,2052,5,2048,2,0,0,0,0,0,0,0,0 //AB_CLEARANCE#Clearance#

+ 52 - 2
db/re/item_combo_db.txt

@@ -14,6 +14,7 @@
 1284:2892,{ bonus2 bSkillAtk,"AS_SONICBLOW",50; bonus bBaseAtk,50; bonus bFlee,-30; }
 1285:2892,{ bonus bCritical,4; bonus bCritAtkRate,40; bonus bMaxHPRate,-10; }
 1287:15123,{ if (getequiprefinerycnt(EQI_HAND_R) >= 7) { autobonus "{ bonus bIgnoreDefClass,Class_Normal; }",1000,3000,BF_SHORT,BF_NORMAL; } /* Confirm: Success rate */ }
+1326:22133,{ bonus bBaseAtk,40; .@eq = getequiprefinerycnt(EQI_SHOES); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { bonus2 bSkillAtk,"NC_AXEBOOMERANG",15; } if ((.@eq + .@weapon) >= 18) { bonus2 bAddClass,Class_All,10; if ((.@eq + .@weapon) >= 22) { bonus bLongAtkRate,10; } } }
 1387:19021,{ bonus2 bSkillAtk,"WS_CARTTERMINATION",15+(getequiprefinerycnt(EQI_HAND_R))*5; }
 1407:5782,{ bonus2 bAddClass,Class_All,3; }
 1408:5782,{ bonus2 bAddClass,Class_All,3; }
@@ -37,11 +38,12 @@
 1479:2700,{ bonus2 bResEff,Eff_Confusion,9500; }
 1480:2527,{ bonus2 bAddRace,RC_Dragon,5; }
 1480:2527:5467,{ bonus2 bAddRace,RC_Dragon,25; }
-1490:19021,{ bonus2 bSkillAtk,"LK_SPIRALPIERCE",getequiprefinerycnt(EQI_HAND_R)*5; bonus4 bAutoSpellOnSkill,"LK_JOINTBEAT","LK_SPIRALPIERCE",max(getskilllv("LK_SPIRALPIERCE"),1),50+(getskilllv("LK_JOINTBEAT")*10); /* Confirm: Success rate */ }
+1490:19021,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus2 bSkillAtk,"LK_SPIRALPIERCE",.@r*5; bonus4 bAutoSpellOnSkill,"LK_JOINTBEAT","LK_SPIRALPIERCE",max(getskilllv("LK_SPIRALPIERCE"),1),50+.@r*5; /* Confirm: Success rate */ }
 15141:19033,{ bonus bMaxSP,100; bonus bNoCastCancel; }
 15141:20779:22075,{ .@r = getequiprefinerycnt(EQI_ARMOR)+getequiprefinerycnt(EQI_GARMENT)+getequiprefinerycnt(EQI_SHOES); bonus bMaxHP,1000; bonus bHealPower,min(5+.@r,30); bonus bHealPower2,min(5+.@r,30); }
 15186:19168,{ bonus2 bExpAddClass,Class_All,5; bonus2 bDropAddClass,Class_All,5; }
 1535:4361,{ bonus bBreakArmorRate,900; bonus bBreakWeaponRate,900; }
+1558:27085,{ bonus bBaseAtk,100; bonus bMatk,100; }
 1559:5467,{ bonus bAspd,1; bonus bFlee2,3; }
 1564:2186,{ bonus bAspdRate,getequiprefinerycnt(EQI_HAND_R); }
 1572:2716:2717,{ bonus bInt,5; bonus bMaxHP,700; bonus bAspdRate,5; }
@@ -55,6 +57,7 @@
 1618:2509,{ bonus bMaxHP,300; bonus bMatkRate,min(5, getequiprefinerycnt(EQI_HAND_R)-5); bonus2 bSubEle,Ele_Neutral,min(30, getequiprefinerycnt(EQI_GARMENT)*3); }
 1618:2535,{ bonus bMatkRate,5; bonus2 bSubEle,Ele_Neutral,25; }
 1618:19020,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus bMatk,.@r; if (.@r >= 10) { autobonus "{ bonus bVariableCastrate,-50; }",100,5000,BF_MAGIC; /* Confirm: Success rate? */ } }
+1618:20847,{ .@weapon = getequiprefinerycnt(EQI_HAND_R); .@eq = getequiprefinerycnt(EQI_GARMENT); .@weapon = min(.@weapon,10); bonus bMaxHP,1000; bonus bMatk,(-50+(20*.@weapon)); bonus bDelayrate,-(3*(.@weapon/3)); bonus2 bSubEle,Ele_Neutral,(min(.@eq,10)/2); }
 1619:19020,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus bMatk,.@r; if (.@r >= 10) { autobonus "{ bonus bVariableCastrate,-50; }",100,5000,BF_MAGIC; /* Confirm: Success rate? */ } }
 1620:2509,{ bonus bMaxHP,300; bonus bMatkRate,getequiprefinerycnt(EQI_HAND_R)-5; if(getequiprefinerycnt(EQI_GARMENT) > 10) { bonus2 bSubEle,Ele_Neutral,30; } else { bonus2 bSubEle,Ele_Neutral,getequiprefinerycnt(EQI_GARMENT)*3; } }
 1620:2535,{ bonus bMatkRate,5; bonus2 bSubEle,Ele_Neutral,25; }
@@ -68,7 +71,7 @@
 1657:2471:2569:15029,{ bonus bHealPower,25; bonus2 bSkillUseSP,"AL_HEAL",-20; bonus2 bSkillCooldown,"AB_SECRAMENT",-2000; bonus2 bSkillCooldown,"AB_LAUDAAGNUS",-2000; bonus2 bSkillCooldown,"AB_LAUDARAMUS",-2000; }
 1659:5920,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus2 bSkillUseSP,"AL_HEAL",6*.@r; bonus2 bSkillUseSP,"AB_CHEAL",10*.@r; bonus2 bSkillUseSP,"AB_HIGHNESSHEAL",14*.@r; }
 1660:2471:2569:15029,{ bonus bHealPower,45; bonus2 bSkillUseSP,"AL_HEAL",-50; bonus3 bAutoSpellWhenHit,"AB_SILENTIUM",1,100; bonus2 bSkillCooldown,"AB_CLEARANCE",-3000; bonus2 bSkillCooldown,"AB_LAUDAAGNUS",-3000; bonus2 bSkillCooldown,"AB_LAUDARAMUS",-3000; }
-1668:15089,{ bonus bDelayrate,-10; }
+1668:15089,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus bDelayrate,-10-min(.@r,10); }
 1670:2968,{ bonus bMatkRate,getequiprefinerycnt(EQI_HAND_R)*5; }
 1670:2968:2969,{ bonus bMatkRate,-(getequiprefinerycnt(EQI_HAND_R)*5); }
 1670:2969,{ bonus bMatkRate,getequiprefinerycnt(EQI_HAND_R)*5; }
@@ -91,8 +94,10 @@
 1734:1753,{ bonus bLongAtkRate,50; }
 1741:2748,{ bonus bBaseAtk,25; bonus3 bAddEff,Eff_Curse,200,ATF_WEAPON|ATF_LONG|ATF_TARGET; }
 1746:1773,{ bonus bLongAtkRate,50; }
+1774:18174,{ bonus bLongAtkRate,50; }
 1775:18114,{ bonus bLongAtkRate,70; }
 1776:18114,{ bonus bLongAtkRate,40; }
+1846:20838,{ bonus bBaseAtk,40; .@eq = getequiprefinerycnt(EQI_GARMENT); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { .@val = 20; } if ((.@eq + .@weapon) >= 18) { bonus2 bSkillCooldown,"SR_FLASHCOMBO",-1000; if ((.@eq + .@weapon) >= 22) { .@val += 15; } } if (.@val) { bonus2 bSkillAtk,"SR_TIGERCANNON",.@val; } }
 1935:2988,{ bonus2 bSkillAtk,"CG_ARROWVULCAN",200; bonus2 bSkillUseSP,"CG_ARROWVULCAN",50; }
 1990:2989,{ bonus2 bSkillAtk,"CG_ARROWVULCAN",200; }
 2001:2677,{ bonus bMatkRate,10; bonus bDex,2; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; }
@@ -105,6 +110,8 @@
 2012:2468:2860:15026,{ bonus2 bMagicAtkEle,Ele_Water,60; bonus2 bMagicAtkEle,Ele_Wind,-60; bonus2 bSubEle,Ele_Wind,-50; }
 2013:2469:2861:15027,{ bonus2 bMagicAtkEle,Ele_Fire,60; bonus2 bMagicAtkEle,Ele_Water,-60; bonus2 bSubEle,Ele_Water,-50; }
 2014:2470:2862:15028,{ bonus2 bMagicAtkEle,Ele_Earth,60; bonus2 bMagicAtkEle,Ele_Fire,-60; bonus2 bSubEle,Ele_Fire,-50; }
+2039:20847,{ .@weapon = getequiprefinerycnt(EQI_HAND_R); .@eq = getequiprefinerycnt(EQI_GARMENT); bonus2 bSkillAtk,"WL_CRIMSONROCK",10; if (.@eq >= 7 && .@weapon >= 7) { bonus2 bSkillAtk,"WL_HELLINFERNO",40; } if ((.@eq + .@weapon) >= 18) { bonus2 bMagicAtkEle,Ele_Wind,10; bonus2 bMagicAtkEle,Ele_Dark,10; if ((.@eq + .@weapon) >= 22) { bonus2 bMagicAtkEle,Ele_Fire,10; } } }
+2051:20847,{ bonus bMatk,50; .@eq = getequiprefinerycnt(EQI_GARMENT); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { bonus2 bMagicAtkEle,Ele_Water,10; bonus2 bMagicAtkEle,Ele_Wind,10; bonus2 bMagicAtkEle,Ele_Earth,10; bonus2 bMagicAtkEle,Ele_Fire,10; } if ((.@eq + .@weapon) >= 18) { bonus2 bMagicAddEle,Ele_Water,15; bonus2 bMagicAddEle,Ele_Wind,15; bonus2 bMagicAddEle,Ele_Earth,15; bonus2 bMagicAddEle,Ele_Fire,15; if ((.@eq + .@weapon) >= 22) { bonus bDelayrate,-15; } } }
 2109:2239:2717,{ bonus bHPrecovRate,15; bonus bSPrecovRate,15; bonus bMatkRate,7; }
 2109:2971:5135,{ bonus bHPrecovRate,15; bonus bSPrecovRate,15; bonus bMatkRate,7; }
 2109:2971:18874,{ bonus bHPrecovRate,15; bonus bSPrecovRate,15; bonus bMatkRate,7; }
@@ -154,6 +161,8 @@
 2337:2654,{ bonus bUseSPrate,-20; bonus bMaxHP,300; }
 2339:2522,{ bonus bAgi,5; bonus bFlee,10; }
 2339:2523,{ bonus bAgi,5; bonus bFlee,10; }
+2346:27113,{ bonus3 bAutoSpellWhenHit,"WZ_WATERBALL",5,50; }
+2347:27113,{ bonus3 bAutoSpellWhenHit,"WZ_WATERBALL",5,50; }
 2353:2417:2516,{ bonus bAgi,3; bonus bMaxHPrate,5; bonus bMaxSPrate,5; }
 2353:2418:2517,{ bonus bVit,5; bonus bHPrecovRate,10; bonus bSPrecovRate,10; }
 2353:5123,{ if(readparam(bDex)>69) bonus bUseSPrate,-10; }
@@ -218,6 +227,7 @@
 2527:5467:13030,{ bonus2 bAddRace,RC_Dragon,25; }
 2527:13001,{ bonus2 bAddRace,RC_Dragon,5; }
 2527:13030,{ bonus2 bAddRace,RC_Dragon,5; }
+2584:5579,{ .@r = getequiprefinerycnt(EQI_GARMENT); if(.@r>=5) { skill "TF_DOUBLE",1; bonus bDoubleRate,25; } else if(.@r>=7) { .@bonus = max(getskilllv("TF_DOUBLE"),5); skill "TF_DOUBLE",.@bonus; bonus bDoubleRate,.@bonus*5; } }
 2597:28342,{ bonus bCritAtkRate,5; bonus bCritical,10; .@r = getequiprefinerycnt(EQI_GARMENT); if (.@r > 7) bonus bCritAtkRate,4; else if (.@r > 5) bonus bCritAtkRate,3; }
 //2598:Ramor Shield,{ .@r = getequiprefinerycnt(EQI_GARMENT); bonus2 bSubRace,RC_Undead,.@r; bonus2 bSubRace,RC_DemiHuman,.@r; }
 2607:2677,{ bonus2 bSkillAtk,"AL_HEAL",50; bonus2 bSkillAtk,"PR_MAGNUS",30; bonus bSPrecovRate,9; }
@@ -335,12 +345,18 @@
 4072:21013,{ bonus2 bSubSize,Size_All,15; }
 4074:4162,{ bonus2 bAddEffWhenHit,Eff_Blind,600; }
 4090:4212:4328,{ bonus bAllStats,1; }
+4090:27085,{ autobonus "{ bonus2 bAddEff,Eff_Stun,5000; }",2,5000,BF_SHORT; }
+4093:27120,{ bonus bMaxSP,50; }
+4094:27086,{ autobonus "{ bonus bAspd,1; }",20,5000,BF_WEAPON; }
+4100:27084,{ autobonus "{ bonus bSPrecovRate,100; }",20,5000,BF_MAGIC; }
 4106:4248,{ bonus bPerfectHitAddRate,20; }
 4127:4166,{ bonus2 bAddEffWhenHit,Eff_Curse,600; }
+4131:27081,{ autobonus "{ bonus bFlee2,10; }",70,5000,BF_SHORT; }
 4139:18619,{ bonus3 bAutoSpell,"RG_SNATCHER",5,20; bonus bDex,2; bonus bAgi,1; bonus bInt,-1; }
 4152:5967,{ bonus2 bAddItemGroupHealRate,IG_Juice,1000; }
 4153:4247:4273,{ bonus3 bAddMonsterDropItem,544,RC_Fish,3000; bonus2 bAddEle,Ele_Water,30; }
 4153:18554,{ bonus2 bAddEle,Ele_Water,10; }
+4159:27082,{ autobonus "{ bonus bFlee,10; }",20,5000,BF_SHORT; }
 4163:5967,{ bonus bAspdRate,3; bonus bAspd,1; bonus2 bAddClass,Class_All,-5; if (getequiprefinerycnt(EQI_HAND_R) >= 10 && getiteminfo(getequipid(EQI_HAND_R),11) == 11) bonus bAspd,1; }
 4168:4169,{ bonus bMaxHPrate,20; bonus bMaxSPrate,20; bonus bVariableCastrate,-10; }
 4169:4488,{ if(getequiprefinerycnt(EQI_SHOES) >= 15) { bonus bMaxHPrate,15; bonus bMaxSPrate,15; } else { bonus bMaxHPrate,10; bonus bMaxSPrate,10; } }
@@ -355,6 +371,7 @@
 4193:4294,{ bonus bMaxHP,300; bonus bMaxSP,60; }
 4207:18865,{ bonus2 bAddSize,Size_All,5; bonus2 bMagicAddSize,Size_All,5; }
 4208:4258:4325:4327:4382,{ bonus bInt,3; bonus2 bSkillAtk,"WZ_HEAVENDRIVE",10; bonus2 bSkillAtk,"MG_THUNDERSTORM",10; if(BaseJob==Job_Sage) { bonus bMagicDamageReturn,20; bonus2 bAddMonsterDropItem,716,100; bonus2 bAddMonsterDropItem,715,100; bonus bVariableCastrate,-20; } }
+4212:27083,{ autobonus2 "{ bonus2 bAddDefMonster,1026,-100; }",20,5000,BF_SHORT; }
 4218:4269,{ bonus bHPrecovRate,30; bonus bSPrecovRate,30; bonus bVit,4; bonus bInt,4; }
 4220:4246:4311:4319:4331,{ bonus bStr,10; bonus bMaxHPrate,20; bonus bHPrecovRate,50; bonus3 bAutoSpell,"BS_WEAPONPERFECT",1,3; bonus2 bAddMonsterDropItem,501,500; if(BaseClass==Job_Swordman) bonus2 bAddItemGroupHealRate,IG_Potion,50; }
 4229:4244:4299:4313,{ bonus bDef,3; bonus bMdef,3; }
@@ -364,6 +381,7 @@
 4254:18865,{ bonus2 bAddSize,Size_All,5; bonus2 bMagicAddSize,Size_All,5; }
 4268:4277,{ bonus bBaseAtk,20; bonus bLuk,3; }
 4273:18554,{ bonus2 bAddEle,Ele_Water,10; }
+4305:27119,{ bonus2 bSubSize,Size_All,5; bonus bHit,25; bonus2 bAddSize,Size_All,20; }
 4311:4319:4331:4371,{ bonus bInt,1; bonus bStr,1; bonus bDef,2; bonus bSPrecovRate,10; bonus2 bSkillAtk,"PA_SHIELDCHAIN",10; bonus2 bSkillAtk,"PA_SACRIFICE",10; bonus bVariableCastrate,-10; if(BaseJob==Job_Crusader) bonus bDefEle,Ele_Holy; }
 4323:4324,{ bonus3 bAutoSpell,"MG_FROSTDIVER",3,250; }
 4435:4436,{ bonus2 bSPGainRace,RC_DemiHuman,2; bonus2 bSPGainRace,RC_Player,2; }
@@ -454,6 +472,9 @@
 //9024:18832,{ bonus3 bAutoSpell,"BS_ADRENALINE",2,(GetPetRelationship >= 3)?15:10; }
 13027:15044,{ .@r = max(getequiprefinerycnt(EQI_ARMOR),1); bonus3 bAddMonsterDropItem,929,RC_DemiHuman,70*.@r; bonus3 bAddMonsterDropItem,970,RC_DemiHuman,50*.@r; bonus3 bAddMonsterDropItem,929,RC_Brute,70*.@r; bonus3 bAddMonsterDropItem,970,RC_Brute,50*.@r; }
 13034:13035,{ bonus bMaxSP,20; bonus bMaxHPRate,5; bonus bHit,10; bonus2 bAddSize,Size_Large,30; autobonus "{ bonus bAspdRate,100; }",1,7000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; }
+13337:19210,{ bonus bVariableCastrate,-15; .@eq = getequiprefinerycnt(EQI_HEAD_TOP); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { .@val = 25; } if ((.@eq + .@weapon) >= 18) { .@val += 25; if ((.@eq + .@weapon) >= 22) { bonus2 bSkillCooldown,"KO_HUUMARANKA",-1000; } } if (.@val) { bonus2 bSkillAtk,"KO_HUUMARANKA",.@val; } }
+13338:19210,{ bonus bBaseAtk,50;  .@eq = getequiprefinerycnt(EQI_HEAD_TOP); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { .@val = 30; } if ((.@eq + .@weapon) >= 18) { bonus bLongAtkRate,10; if ((.@eq + .@weapon) >= 22) { .@val += 20; } } if (.@val) { bonus2 bSkillAtk,"KO_HAPPOKUNAI",.@val; } }
+13469:20840,{ .@weapon = getequiprefinerycnt(EQI_HAND_R); .@eq = getequiprefinerycnt(EQI_GARMENT); .@val = 100; if (.@weapon >= 7 && .@eq >= 7) { .@val += 50; } bonus bMatk,.@val; if ((.@weapon + .@eq) >= 18) { bonus3 bAutoSpell,"MG_COLDBOLT",3,50; bonus3 bAutoSpell,"MG_FIREBOLT",3,50; bonus3 bAutoSpell,"MG_LIGHTNINGBOLT",3,50; /* fix me: unknown skill lvl/rates */ } if ((.@weapon + .@eq) >= 22) { autobonus "{ bonus2 bSkillAtk,\"WZ_STORMGUST\",30; bonus2 bSkillAtk,\"WZ_METEOR\",30; bonus2 bSkillAtk,\"WZ_VERMILION\",30; bonus2 bSkillAtk,\"WZ_HEAVENDRIVE\",30; }",20,10000; /* fix me: unknown rate/specialeffect (if any) */ } }
 15041:18659,{ bonus bInt,3; bonus bStr,3; bonus bMdef,10; bonus bDefEle,Ele_Fire; bonus2 bAddEle,Ele_Earth,10; }
 15068:20710,{ bonus bAgi,5; bonus bFlee,10; }
 15088:18816:18818,{ bonus bMatk,BaseLevel/3; bonus2 bExpAddClass,Class_All,5; }
@@ -494,6 +515,10 @@
 15183:28467:28468,{ bonus bAtk,40; bonus2 bSubEle,Ele_All,4; bonus2 bSubEle,Ele_Neutral,-4; bonus2 bExpAddClass,Class_All,2; }
 15184:28469:28470,{ bonus bAtk,50; bonus2 bSubEle,Ele_All,5; bonus2 bSubEle,Ele_Neutral,-5; bonus2 bExpAddClass,Class_All,2; }
 15185:28471:28472,{ bonus bAtk,50; bonus2 bSubEle,Ele_All,5; bonus2 bSubEle,Ele_Neutral,-5; bonus2 bExpAddClass,Class_All,2; bonus bNoCastCancel; }
+15195:16063,{ .@matk = 100; .@recovery = 20; .@weapon = getequiprefinerycnt(EQI_HAND_R); .@eq = getequiprefinerycnt(EQI_ARMOR); if (.@weapon >= 7 && .@eq >= 7) { .@matk += 50; } if ((.@weapon + .@eq) >= 18) { .@recovery += 15; if ((.@weapon + .@eq) >= 22) { bonus bDelayrate,-15; } } bonus bMatk,.@matk; bonus bHealPower2,.@recovery; }
+15195:19209,{ bonus bSpeedRate,25; /* unknown speed value */ bonus bHealPower,10; }
+15348:19366:20923:22192,{ bonus bVit,5; bonus bMaxSPrate,5; bonus bDef,5; bonus bMdef,15; bonus2 bSubEle,Ele_Water,10; bonus2 bSubEle,Ele_Earth,10; bonus2 bSubEle,Ele_Fire,10; bonus2 bSubEle,Ele_Wind,10; .@hp = 15; .@r[0] = getequiprefinerycnt(EQI_ARMOR); .@r[1] = getequiprefinerycnt(EQI_HEAD_TOP); .@r[2] = getequiprefinerycnt(EQI_GARMENT); .@r[3] = getequiprefinerycnt(EQI_SHOES); .@sum = .@r[0]+.@r[1]+.@r[2]+.@r[3]; if (.@r[0] >= 7 && .@r[1] >= 7 && .@r[2] >= 7 && .@r[3] >= 7) { .@hp += 10; } bonus bMaxHPrate,.@hp; if (.@sum >= 36) { bonus bFixedCast,-700; if (.@sum >= 40) { bonus bDelayrate,-20; } } }
+16065:20838,{ bonus bAspdRate,10; .@eq = getequiprefinerycnt(EQI_GARMENT); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { bonus2 bSkillAtk,"AB_DUPLELIGHT_MELEE",25; bonus2 bSkillAtk,"AB_DUPLELIGHT_MAGIC",25; } if ((.@eq + .@weapon) >= 18) { bonus bCritical,15; if ((.@eq + .@weapon) >= 22) { bonus bCritAtkRate,20; } } }
 18137:1752,{ bonus bLongAtkRate,25; }
 18137:1752:19048,{ bonus bLongAtkRate,20; bonus2 bSubEle,Ele_Fire,-10; if (getequiprefinerycnt(EQI_HAND_R) >= 10) bonus bAspd,1; }
 18137:19019,{ bonus bLongAtkRate,45; }
@@ -506,6 +531,8 @@
 18140:1755,{ bonus bLongAtkRate,25; bonus3 bAutoSpell,"NJ_HUUJIN",5,(readparam(bInt)>39) ? 300 : 100; }
 18140:1755:19048,{ bonus bLongAtkRate,20; bonus3 bAutoSpell,"NJ_HUUJIN",5,(readparam(bInt)>39) ? -300 : -100;; if (getequiprefinerycnt(EQI_HAND_R) >= 10)  bonus bAspd,1; }
 18140:19019,{ bonus bLongAtkRate,45; }
+18149:19210,{ .@weapon = getequiprefinerycnt(EQI_HAND_R); .@eq = getequiprefinerycnt(EQI_HEAD_TOP); bonus bLongAtkRate,5; if (.@weapon >= 7 && .@eq >= 7) { .@val = 20; } if ((.@weapon + .@eq) >= 18) { bonus2 bAddClass,Class_All,10; } if ((.@weapon + .@eq) >= 22) { .@val += 30; } if (.@val) { bonus2 bSkillAtk,"RA_ARROWSTORM",.@val; } }
+18174:22190,{ .@weapon = getequiprefinerycnt(EQI_HAND_R); .@eq = getequiprefinerycnt(EQI_SHOES); bonus2 bAddClass,Class_All,10; if (.@weapon >= 7 && .@eq >= 7) { bonus bAspd,2; } if ((.@weapon + .@eq) >= 18) { bonus bCritAtkRate,10; } if ((.@weapon + .@eq) >= 22) { autobonus "{ bonus bBaseAtk,100; bonus bCritAtkRate,15; bonus2 bAddRace,RC_Insect,50; bonus2 bAddRace,RC_Brute,50; }",20,10000,BF_LONG|BF_WEAPON|BF_NORMAL; /* fix me: unknown rates */ } }
 18507:18539,{ bonus bUseSPrate,-3; }
 18559:18560,{ bonus bCritAtkRate,5; }
 18563:18564,{ bonus bFixedCastrate,-10; }
@@ -528,6 +555,7 @@
 19038:19039,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP)+getequiprefinerycnt(EQI_HEAD_MID); if((.@r==7)||(.@r==8)){ bonus bCritical,12; bonus bHit,12; } if(.@r>=9){ bonus bMaxHP,1200; bonus bMaxSP,120; } }
 19117:22101,{ bonus2 bDropAddRace,RC_All,5; bonus2 bExpAddRace,RC_All,5; if(getequiprefinerycnt(EQI_SHOES) >= 12) { bonus bFixedCast,-400; } }
 19118:22101,{ bonus2 bDropAddRace,RC_All,4; bonus2 bExpAddRace,RC_All,4; if(getequiprefinerycnt(EQI_SHOES) >= 12) { bonus bFixedCast,-400; } }
+19344:28244,{ .@weapon = getequiprefinerycnt(EQI_HAND_R); .@eq = getequiprefinerycnt(EQI_HEAD_TOP); bonus2 bAddClass,Class_All,10; if (.@weapon >= 7 && .@eq >= 7) { bonus bAspd,2; } if ((.@weapon + .@eq) >= 18) { bonus bLongAtkRate,10; if ((.@weapon + .@eq) >= 22) { bonus2 bSkillAtk,"GS_SPREADATTACK",30; } } }
 20135:20136,{ bonus bAllStats,12; }
 20717:22000,{ bonus bMaxHPRate,15; bonus bMaxSPRate,5; }
 20717:22001,{ bonus bMaxHPRate,15; bonus bMaxSPRate,5; }
@@ -579,6 +607,9 @@
 20718:22118,{ bonus bMaxHPRate,15; bonus bMaxSPRate,5; }
 20797:2339,{ bonus bInt,15; bonus bMaxHPrate,5; bonus bMaxSPrate,5; if (getequiprefinerycnt(EQI_ARMOR) > 6) bonus bNoCastCancel; }
 20797:4174,{ bonus2 bSubEle,Ele_All,50; bonus2 bSubEle,Ele_Neutral,-50; }
+20838:26109,{ bonus2 bSkillAtk,"SO_PSYCHIC_WAVE",10; .@eq = getequiprefinerycnt(EQI_GARMENT); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { bonus2 bSkillAtk,"SO_EARTHGRAVE",40; } if ((.@eq + .@weapon) >= 18) { bonus2 bMagicAtkEle,Ele_Neutral,10; bonus2 bMagicAtkEle,Ele_Earth,10; if ((.@eq + .@weapon) >= 22) { bonus2 bMagicAtkEle,Ele_Water,10; } } }
+20840:28725,{ .@weapon = getequiprefinerycnt(EQI_HAND_R); .@eq = getequiprefinerycnt(EQI_GARMENT); .@val = 80; if (.@weapon >= 7 && .@eq >= 7) { .@val += 80; } if ((.@weapon + .@eq) >= 18) { .@val += 40; } if ((.@weapon + .@eq) >= 22) { bonus2 bMagicAtkEle,Ele_Fire,15; } bonus bMatk,.@val; }
+20847:28745,{ .@weapon = getequiprefinerycnt(EQI_HAND_R); .@eq = getequiprefinerycnt(EQI_GARMENT); .@val = 10; if (.@weapon >= 7 && .@eq >= 7) { bonus bCritAtkRate,15; } if ((.@weapon + .@eq) >= 18) { .@val += 15; if ((.@weapon + .@eq) >= 22) { skill "TF_DOUBLE",4; bonus bDoubleRate,20; } } bonus bAspdRate,.@val; }
 22069:2195,{ bonus2 bSubEle,Ele_Neutral,5; bonus2 bAddEle,Ele_Neutral,getequiprefinerycnt(EQI_HAND_L); }
 22069:20753,{ bonus2 bAddEle,Ele_Neutral,5; .@r = getequiprefinerycnt(EQI_GARMENT); bonus bMaxHPrate,.@r; bonus bMaxSPrate,.@r; }
 22101:29148,{ bonus bMaxHPRate,5; bonus bMaxSPRate,5; .@r = getequiprefinerycnt(EQI_SHOES); if(.@r >= 7) { bonus2 bAddClass,Class_All,2; } if(.@r >= 9) { bonus2 bAddClass,Class_All,3; } if(.@r >= 12) { bonus bDelayrate,-5; } }
@@ -603,6 +634,8 @@
 22124:28467:28468,{ bonus bAspdRate,8; bonus bHit,8; bonus2 bExpAddClass,Class_All,2; }
 22125:28469:28470,{ bonus bAspdRate,10; bonus bHit,10; bonus2 bExpAddClass,Class_All,2; }
 22126:28471:28472,{ bonus bAspdRate,10; bonus bHit,10; bonus2 bExpAddClass,Class_All,2; bonus bSpeedAddRate,25; }
+22133:26007,{ bonus bAspdRate,8; .@eq = getequiprefinerycnt(EQI_SHOES); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { .@val = 20; } if ((.@eq + .@weapon) >= 18) { bonus bLongAtkRate,10; if ((.@eq + .@weapon) >= 22) { .@val += 30; } } if (.@val) { bonus2 bSkillAtk,"LG_BANISHINGPOINT",.@val; } }
+22133:32005,{ bonus bBaseAtk,40; .@eq = getequiprefinerycnt(EQI_SHOES); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { .@val = 20; } if ((.@eq + .@weapon) >= 18) { bonus2 bAddClass,Class_All,10; if ((.@eq + .@weapon) >= 22) { .@val += 20; } } if (.@val) { bonus2 bSkillAtk,"RK_HUNDREDSPEAR",.@val; } }
 24012:24013:24014:24015:24016:24017,{ bonus bAllStats,3; }
 24018:24019:24020,{ if(getequiprefinerycnt(EQI_SHADOW_ACC_R) + getequiprefinerycnt(EQI_SHADOW_ACC_L) + getequiprefinerycnt(EQI_SHADOW_WEAPON) >= 23) { bonus2 bAddClass,Class_All,1; } }
 24021:24022:24023,{ if(getequiprefinerycnt(EQI_SHADOW_ACC_R) + getequiprefinerycnt(EQI_SHADOW_ACC_L) + getequiprefinerycnt(EQI_SHADOW_WEAPON) >= 23) { bonus bMatkRate,1; } }
@@ -700,15 +733,32 @@
 24249:24254,{ bonus2 bMagicAddRace,RC_All,1; bonus bMaxSPrate,1; if (getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L)>=10) { bonus2 bMagicAddRace,RC_All,2; bonus bMaxSPrate,2; } }
 24253:28391,{ bonus2 bAddRace,RC_All,1; bonus bMaxHPrate,1; if (getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L)>=10) { bonus2 bAddRace,RC_All,2; bonus bMaxHPrate,2; } }
 24255:28392,{ bonus2 bAddRace,RC_All,1; bonus bMaxHPrate,1; if (getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L)>=10) { bonus2 bAddRace,RC_All,2; bonus bMaxHPrate,2; } }
+27101:28510,{ bonus bMatkRate,(getrefine()/3); }
+27102:28510,{ bonus bFlee2,5; }
+27103:28510,{ bonus2 bAddClass,Class_All,(getrefine()/3); }
+27104:28510,{ bonus2 bHPRegenRate,30,3000; bonus2 bSPRegenRate,1,3000; }
+27104:27105,{ if (getequiprefinerycnt(EQI_GARMENT) >= 9) { bonus bMaxHP,2000; bonus bMaxSP,100; } else { bonus bMaxHP,1000; bonus bMaxSP,50; } }
+27105:28510,{ bonus bMatk,30; }
+27107:27108,{ bonus2 bSkillAtk,"WM_METALICSOUND",50; bonus2 bSkillAtk,"WM_REVERBERATION",50; }
+// 27107:27108:27109,{ autobonus "{ heal 2000,0; bonus2 bAddEle,Ele_Neutral,200; bonus2 bMagicAddEle,Ele_Neutral,200; }",20,6000,BF_WEAPON|BF_MAGIC,"{ active_transform 3073,6000; }"; /* fix me: mob 3073 not implemented */ }
+27110:27111,{ bonus2 bSubSize,Size_Small,20; }
+27111:27112,{ bonus2 bSubSize,Size_Medium,20; }
+27114:27115,{ bonus bMaxHPrate,(getequiprefinerycnt(EQI_ARMOR)/3); bonus bMaxSP,(5*(getequiprefinerycnt(EQI_HEAD_TOP)/2)); }
+27116:27117,{ bonus bCritical,2; bonus bCritAtkRate,2; }
 27147:27148,{ bonus bDelayrate,-3; }
 27163:27165,{ bonus bDelayrate,-3; bonus bVit,2; bonus bInt,2; bonus bAgi,2; bonus bDex,2; }
 27166:27167,{ bonus2 bSubEle,Ele_Neutral,5; bonus2 bMagicAddSize,Size_All,10; }
+27196:27199,{ bonus2 bMagicAddSize,Size_Small,5; bonus2 bMagicAddRace,RC_Brute,5; }
+27197:27198,{ bonus2 bAddSize,Size_Small,5; bonus2 bAddRace,RC_Brute,5; }
+28022:28509,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus bAspdRate,10; if (.@r >= 9) { bonus bCritAtkRate,10; if (.@r >= 11) { bonus2 bAddRace,RC_Brute,25; } } }
 28315:28317,{ bonus2 bAddClass,Class_All,4; bonus bMatkRate,4; }
 28316:28318,{ bonus2 bAddClass,Class_All,4; bonus bMatkRate,4; }
 28321:28322,{ bonus bUseSPrate,-(getskilllv("HT_BEASTBANE") * 2); }
 28326:28327,{ bonus bInt,8; bonus bStr,8; }
 28358:18521,{ skill "AS_CLOAKING",1; }
 28499:28920,{ bonus bFlee2,10; }
+28508:28612,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus bAspdRate,8; bonus bCritAtkRate,(5*(.@r/2)); if (.@r >= 9) { bonus bCritical,15; bonus2 bResEff,Eff_Curse,10000; if (.@r >= 11) { bonus bBaseAtk,100; } } }
+28509:28626,{ .@r = getequiprefinerycnt(EQI_HAND_R); bonus bAspdRate,8; bonus bCritAtkRate,(5*(.@r/2)); if (.@r >= 9) { bonus bCritical,15; if (.@r >= 11) { bonus bBaseAtk,100; } } }
 28906:2998,{ bonus bLongAtkRate,10; }
 28907:2998,{ bonus bSpeedRate,25; }
 28908:2998,{ bonus bDelayrate,-10; }

+ 135 - 11
db/re/item_db.txt

@@ -655,7 +655,7 @@
 1292,Upg_Katar,Upg Katar,5,20,,1000,80,,1,1,0x00001000,63,2,34,3,1,1,16,{ .@r = getrefine(); bonus bBaseAtk,(.@r*10); bonus bCritAtkRate,(.@r*2); if(BaseLevel>70) bonus bBaseAtk,(((BaseLevel-70)/10)*10); },{},{}
 1293,Velum_Jamadhar,Vellum Jamadhar,5,20,,1200,170,,1,0,0x00001000,63,2,34,4,95,1,16,{ bonus4 bSetDefRace,RC_Player,10000,5000,1; bonus4 bSetMDefRace,RC_Player,10000,5000,1; bonus bAspdRate,getrefine(); },{},{}
 1294,Velum_Scare,Vellum Scale,5,20,,1200,50,,1,0,0x00001000,63,2,34,4,95,1,16,{ bonus3 bSPVanishRaceRate,RC_Player,10000,10; },{},{}
-1295,Blood_Tears_,Blood Tears,5,20,,1700,120,,1,3,0x00001000,18,2,34,4,55,1,16,{},{},{}
+1295,Blood_Tears_,Blood Tears,5,20,,1700,120,,1,3,0x00001000,18,2,34,4,55,1,16,{ bonus3 bAutoSpell,"NPC_WIDEBLEEDING",(getrefine()>=9?2:1),30; },{},{}
 1296,Metal_Katar,Metal Katar,5,20,,0,75,,1,1,0x00001000,63,2,34,3,1,1,16,{ .@r = getrefine(); bonus bBaseAtk,(.@r*5); bonus bCritAtkRate,.@r; .@i = min(BaseLevel/10,12); if(.@i>2) bonus bBaseAtk,((.@i-2)*5); },{},{}
 1297,Inverse_Scale_,Inverse Scale,5,20,,1500,140,,1,2,0x00001000,18,2,34,4,55,1,16,{ bonus bAtkEle,Ele_Holy; bonus3 bAutoSpell,"NPC_DRAGONFEAR",1,30; },{},{}
 1298,Shiver_Katar,Katar Of Horror,5,60000,,2700,110,,1,2,0x00001000,63,2,34,4,105,1,16,{},{},{}
@@ -686,6 +686,7 @@
 1322,Ru_Blue_Axe,Blue Axe,5,10,,1800,180,,1,1,0xFFFFFFFF,63,2,2,1,1,1,6,{ bonus bStr,5; bonus bVit,5; },{},{}
 1323,Ru_Gold_Axe,Ru Gold Axe,5,0,,1800,180,,1,2,0x00040000,56,2,2,3,120,1,6,{ bonus bStr,8; bonus bInt,8; },{},{}
 1324,War_Axe_,War Axe,5,20,,4200,140,,1,3,0x00040400,63,2,2,3,76,1,6,{ bonus bDex,2; bonus bLuk,2; },{},{}
+1326,Illusion_War_Axe,Illusion War Axe,5,0,,4200,180,,1,2,0x00040420,63,2,2,4,120,1,6,{ bonus bStr,2; bonus bDex,2; bonus bLuk,2; .@r = getrefine(); if (.@r >= 9) { .@val = 40; } else if (.@r >= 7) { .@val = 20; } bonus2 bSkillAtk,"NC_AXETORNADO",(100+.@val); bonus2 bSkillAtk,"NC_AXEBOOMERANG",(100+.@val); bonus2 bSkillAtk,"GN_CART_TORNADO",(75+.@val); },{},{}
 //===================================================================
 // 2-Handed Axes
 //===================================================================
@@ -822,9 +823,9 @@
 1474,Gae_Bolg,Gae Bolg,5,20,,2000,160,,3,0,0x00004082,63,2,34,4,60,1,5,{ bonus bIgnoreDefRace,RC_Dragon; bonus2 bAddClass,Class_Boss,10; },{},{}
 1475,Horseback_Lance,Equestrian's Spear,5,20,,3700,200,,4,0,0x00004082,63,2,34,4,75,1,5,{},{},{}
 1476,Crescent_Scythe_,Crescent Scythe,5,20,,2500,180,,3,1,0x00004082,63,2,34,4,48,1,5,{ bonus bCritical,30; bonus bHit,10; },{},{}
-1477,Spectral_Spear,Spectral Spear,5,20,,2000,170,,3,0,0x00004082,63,2,34,4,75,1,5,{ bonus2 bAddEle,Ele_Dark,20; bonus2 bAddRace,RC_Demon,20; bonus2 bAddRace,RC_Undead,20; bonus2 bSubEle,Ele_Dark,10; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; bonus2 bAddEff2,Eff_Confusion,1000; bonus bHPGainValue,50; },{},{}
+1477,Spectral_Spear,Spectral Spear,5,20,,2000,170,,3,0,0x00004082,63,2,34,4,75,1,5,{ bonus2 bAddEle,Ele_Dark,20; bonus2 bAddRace,RC_Demon,20; bonus2 bAddRace,RC_Undead,20; bonus2 bSubEle,Ele_Dark,10; bonus2 bSubEle,Ele_Undead,10; bonus2 bSubRace,RC_Demon,10; bonus2 bAddEff2,Eff_Confusion,1000; bonus bHPGainValue,50; },{},{}
 1478,Ahlspiess,Ahlspiess,5,20,,1000,120,,3,0,0x00004080,63,2,34,4,65,1,5,{ bonus bIgnoreDefClass,Class_Normal; bonus bIgnoreDefClass,Class_Boss; bonus2 bAddRace,RC_DemiHuman,10; bonus2 bAddRace,RC_Player,10; bonus3 bAutoSpell,"KN_PIERCE",5,30; },{},{}
-1479,Spectral_Spear_,Spectral Spear,5,20,,2000,170,,3,1,0x00004082,63,2,34,4,75,1,5,{ bonus2 bAddEle,Ele_Dark,20; bonus2 bAddRace,RC_Demon,20; bonus2 bAddRace,RC_Undead,20; bonus2 bSubEle,Ele_Dark,10; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; bonus2 bAddEff2,Eff_Confusion,1000; bonus bHPGainValue,50; },{},{}
+1479,Spectral_Spear_,Spectral Spear,5,20,,2000,170,,3,1,0x00004082,63,2,34,4,75,1,5,{ bonus2 bAddEle,Ele_Dark,20; bonus2 bAddRace,RC_Demon,20; bonus2 bAddRace,RC_Undead,20; bonus2 bSubEle,Ele_Dark,10; bonus2 bSubEle,Ele_Undead,10; bonus2 bSubRace,RC_Demon,10; bonus2 bAddEff2,Eff_Confusion,1000; bonus bHPGainValue,50; },{},{}
 1480,Gae_Bolg_,Gae Bolg,5,20,,2000,160,,3,2,0x00004082,63,2,34,4,60,1,5,{ bonus bIgnoreDefRace,RC_Dragon; bonus2 bAddClass,Class_Boss,10; },{},{}
 1481,Zephyrus_,Zephyrus,5,20,,2000,170,,3,3,0x00004082,63,2,34,4,48,1,5,{ bonus bAtkEle,Ele_Wind; bonus2 bAddEff,Eff_Silence,200; bonus3 bAutoSpell,"MG_THUNDERSTORM",3,100; },{},{}
 1482,BF_Lance1,Assaulter Lance,5,20,,0,160,,3,0,0x00004082,63,2,34,3,80,1,5,{ bonus bStr,2; bonus2 bAddRace,RC_DemiHuman,25; bonus2 bAddRace,RC_Player,25; bonus bIgnoreDefRace,RC_DemiHuman; bonus bIgnoreDefRace,RC_Player; bonus bUnbreakableWeapon; },{},{}
@@ -1172,6 +1173,7 @@
 1839,Crimson_Knuckles,Crimson Knuckles,5,20,,1000,100,,1,2,0x00008100,63,2,2,3,70,1,12,{ .@r = getrefine(); bonus bBaseAtk,((BaseLevel/10)*5)+(.@r<=15?pow(.@r,2):225); bonus bUnbreakableWeapon; },{},{}
 1840,Requiem_Knuckle,Requiem Knuckle,5,20,,500,150:100,,1,0,0x00008100,63,2,2,4,100,1,12,{ .@r = getrefine(); .@b = 40; if(.@r>=5){ .@b += (.@r-5)*15+20; } bonus2 bAddRace2,RC2_BioLab,.@b; },{},{}
 1841,Claw_Of_Flash_,Claw of Flash,5,60000,,400,140,,1,3,0x00008100,63,2,2,4,105,1,12,{ bonus bAspd,1; bonus bAspdRate,getrefine(); bonus2 bAddSize,Size_Medium,getrefine(); },{},{}
+1846,Illusion Combo Battle Glove,Illusion Combo Battle Glove,5,0,,500,250,,1,2,0x00008000,56,2,2,4,120,1,12,{ .@r = getrefine(); bonus2 bSkillAtk,"SR_SKYNETBLOW",(10+5*(.@r/2)); bonus2 bSkillAtk,"SR_DRAGONCOMBO",(10+5*(.@r/2)); bonus2 bSkillAtk,"SR_TIGERCANNON",(5*(.@r/3)); },{},{}
 //===================================================================
 // Instruments
 //===================================================================
@@ -1291,7 +1293,7 @@
 2017,Divine_Cross_,Divine Cross,5,20,,1500,120:210,,1,1,0x00008100,63,2,34,4,70,1,23,{ bonus bUnbreakableWeapon; bonus bAtkEle,Ele_Holy; bonus bDex,4; bonus2 bSubRace,RC_Demon,15; bonus2 bSubRace,RC_Undead,15; },{},{}
 2018,Metal_Staff,Metal Staff,5,20,,0,50:70,,1,1,0x00818315,63,2,34,3,1,1,23,{ if(BaseJob==Job_Wizard) bonus bMatk,15; else if(BaseJob==Job_Sage) bonus bMatk,10; bonus bMatk,(getrefine()*5); .@i = min(BaseLevel/10,12); if(.@i>2) bonus bMatk,((.@i-2)*5); },{},{}
 2019,TE_Woe_Two_Hand_Staff,TE Woe Two Hand Staff,5,0,,0,50:130,,1,0,0x00818315,63,2,34,3,40,1,23,{ bonus2 bMagicAddRace,RC_Player,20; bonus3 bAddEff,Eff_Stun,1000,ATF_MAGIC; bonus bHPRecovRate,5; bonus bSPRecovRate,5; },{},{}
-2020,Jormungand,Jormungand,5,10,,3000,200:280,,,0,0x810200,63,2,34,4,1,0,23,{ bonus bInt,20; bonus bUnbreakableWeapon; },{},{}
+2020,Jormungand,Jormungand,5,10,,3000,200:280,,,0,0x810200,63,2,34,4,1,0,23,{ bonus bInt,20; bonus3 bAddEff,Eff_Poison,3000,ATF_MAGIC; bonus2 bAddEffWhenHit,Eff_DPoison,100; bonus bUnbreakableWeapon; },{},{}
 2021,Ganbantein,Ganbantein,5,0,,2000,100:320,,1,0,0x00000200,56,2,2,4,100,1,10,{ bonus bInt,25; bonus bDex,25; bonus3 bAddEff,Eff_Poison,1000,ATF_MAGIC; bonus3 bAutoSpell,"AB_SILENTIUM",1,100; bonus bUnbreakableWeapon; },{},{}
 2022,Staff_Of_Geffen,Staff of Geffen,5,20,,1000,100:300,,1,1,0x00000200,18,2,34,1,150,1,23,{ bonus bInt,20; },{},{}
 2023,Thanos_Rod,Thanatos Two-Handed Staff,5,10,,1400,120:250,,1,1,0x00018314,56,2,34,4,120,1,23,{ bonus bInt,6; bonus bVit,6; bonus bLuk,-6; bonus bHealPower,18; bonus bMagicHPGainValue,500; bonus bMagicSPGainValue,50; bonus2 bHPLossRate,100,10000; },{},{ heal -1000,0; }
@@ -1301,6 +1303,8 @@
 2027,Sunflower_Kid,Sunflower Kid,5,10,,1500,150:320,,,2,0x00000200,56,2,34,4,170,1,23,{ bonus bInt,5; .@r = getrefine(); bonus bMatkRate,(.@r/2); bonus bDelayrate,(.@r*-1); bonus bUnbreakableWeapon; },{},{}
 2030,Unity_Two-Handed_Staff,Unity Two-Handed Staff,5,20,,500,95:135,,1,1,0x800200,63,2,34,3,1,1,23,{ bonus bMatk,pow(getrefine(),2)*125/100; },{},{}
 2032,Requiem_Wizardry_Staff,Requiem Wizardry Staff,5,20,,500,100:230,,1,,0xFFFFFFFF,63,2,2,4,100,1,10,{ .@r = getrefine(); .@b = 40; .@c = 5; if(.@r>=5){ .@b += (.@r-5)*15+20; .@c += .@r-5; } bonus2 bMagicAddRace2,RC2_BioLab,.@b; bonus2 bSubRace2,RC2_BioLab,.@c; bonus2 bIgnoreMdefRace2Rate,RC2_BioLab,(.@r-5)*10; },{},{}
+2039,Illusion_Wizardry_Staff,Illusion Wizardry Staff,5,0,,2400,150:250,,1,2,0x00810204,58,2,34,4,100,1,23,{ .@val = min(getrefine(),10)/2; bonus bInt,(6+.@val); bonus bDex,(2+.@val); },{},{}
+2051,Illusion_Survivor's_Staff,Illusion Survivor's Staff,5,0,,1200,100:240,,1,2,0x00818314,63,2,34,4,120,1,23,{ .@r = getrefine(); bonus bDex,2; bonus bInt,2; bonus bMaxHP,600; bonus bUnbreakableWeapon; bonus bMatkRate,(.@r/2); if (.@r >= 7) { bonus2 bMagicAddSize,Size_Small,15; bonus2 bMagicAddSize,Size_Medium,15; if (.@r >= 9) { bonus2 bSubSize,Size_Small,15; bonus2 bSubSize,Size_Medium,15; if (.@r >= 11) { bonus2 bSubDefEle,Ele_Water,15; bonus2 bSubDefEle,Ele_Wind,15; bonus2 bSubDefEle,Ele_Earth,15; bonus2 bSubDefEle,Ele_Fire,15; } } } },{},{}
 //===================================================================
 // Shields
 //===================================================================
@@ -1774,14 +1778,14 @@
 2566,Half_Asprika,Half Asprika,4,20,,0,,20,,0,0xFFFFFFFF,63,2,4,,47,0,0,{ bonus bMdef,2; bonus3 bSubEle,Ele_Neutral,15,BF_SHORT; bonus3 bSubEle,Ele_Water,15,BF_SHORT; bonus3 bSubEle,Ele_Earth,15,BF_SHORT; bonus3 bSubEle,Ele_Fire,15,BF_SHORT; bonus3 bSubEle,Ele_Wind,15,BF_SHORT; bonus3 bSubEle,Ele_Poison,15,BF_SHORT; bonus3 bSubEle,Ele_Holy,15,BF_SHORT; bonus3 bSubEle,Ele_Dark,15,BF_SHORT; bonus3 bSubEle,Ele_Ghost,15,BF_SHORT; bonus3 bSubEle,Ele_Undead,15,BF_SHORT; bonus bFlee,15; skill "AL_TELEPORT",1; bonus bUnbreakableGarment; },{},{}
 2567,Academy_Manteau,Academy Manteau,4,0,,600,,3,,1,73,7,2,4,,0,1,0,{},{},{}
 2568,Muffler_Of_Roki,Loki's Muffler,4,20,,400,,10,,0,0xFFFFFFFF,63,2,4,,100,0,0,{ bonus bAgi,1; bonus2 bSkillAtk,"ASC_BREAKER",5; bonus2 bSkillAtk,"GC_CROSSIMPACT",5; },{},{}
-2569,Shawl_Of_Affection,Shawl Of Affection,4,20,,400,,12,,0,0x00000100,63,2,4,,100,1,0,{ bonus bFlee2,5; bonus5 bAutoSpellWhenHit,"AB_RENOVATIO",1,30,BF_WEAPON,0; bonus5 bAutoSpellWhenHit,"AB_RENOVATIO",1,40,BF_MAGIC,0; },{},{}
+2569,Shawl_Of_Affection,Shawl Of Affection,4,20,,400,,12,,0,0x00000100,63,2,4,,100,1,0,{ bonus bFlee2,5; autobonus2 "{ bonus2 bHPRegenRate,1000,5000; }",300,90000,BF_WEAPON; autobonus2 "{ bonus2 bHPRegenRate,1000,5000; }",400,90000,BF_MAGIC;  },{},{}
 2570,Shawl_Of_Judgement,Shawl Of Judgement,4,20,,400,,12,,0,0x00000100,63,2,4,,100,1,0,{ bonus bFlee,5; .@i = max(2,getskilllv("AB_ORATIO")); bonus5 bAutoSpellWhenHit,"AB_ORATIO",.@i,30,BF_WEAPON,0; bonus5 bAutoSpellWhenHit,"AB_ORATIO",.@i,40,BF_MAGIC,0; },{},{}
 2571,Para_Team_Manteau2,Eden Team Manteau II,4,0,,0,,18,,0,0xFFFFFFFF,63,2,4,,60,0,0,{ bonus bFlee,12; bonus2 bSubEle,Ele_Neutral,10; },{},{}
 2572,Katabart_Sholder,Katabart Sholder,4,20,,3000,,4,,1,0xFFFFFFFF,63,2,4,,70,1,0,{},{},{}
 2573,Archangel_Wing,Archangel Wings,4,0,,200,,18,,1,0xFFFFFFFF,63,2,4,,0,1,1,{},{},{}
 2574,Ur_Manteau,Ur's Manteau,4,20,,600,,20,,0,0x00000080,56,2,4,,100,1,0,{ bonus bMaxHPrate,2; bonus2 bSubEle,Ele_Neutral,10; },{},{}
 2575,Peuz_Manteau,Peuz's Manteau,4,20,,600,,16,,0,0x00000080,56,2,4,,100,1,0,{ bonus bFlee,10; bonus bCritical,10; },{},{}
-2576,Bravery_Bag,Adventurer's Backpack,4,0,,200,,20,,1,0xFFFFFFFF,63,2,4,,0,1,2,{ skill "BS_GREED",1; .@r = getrefine(); if(.@r>6) { if(readparam(bStr)>=90){ bonus bBaseAtk,20; } if(readparam(bInt)>=90){ bonus bMatk,30; } if(readparam(bVit)>=90){ bonus2 bSubEle,Ele_Neutral,10; } if(readparam(bAgi)>=90){ bonus bAspdRate,8; } if(readparam(bDex)>=90){ bonus bLongAtkRate,5; } if(readparam(bLuk)>=90){ bonus bCritAtkRate,10; } } if(.@r>8) { if(readparam(bStr)>=90){ bonus bBaseAtk,10; } if(readparam(bInt)>=90){ bonus bMatk,20; } if(readparam(bVit)>=90){ bonus2 bSubEle,Ele_Neutral,5; } if(readparam(bAgi)>=90){ bonus bAspd,1; } if(readparam(bDex)>=90){ bonus bLongAtkRate,5; } if(readparam(bLuk)>=90){ bonus bCritAtkRate,5; } } },{},{}
+2576,Bravery_Bag,Adventurer's Backpack,4,0,,200,,20,,1,0xFFFFFFFF,63,2,4,,0,1,2,{ skill "BS_GREED",1; .@r = getrefine(); if(.@r>=7) { if(readparam(bStr)>=90) { bonus bBaseAtk,(.@r>=9)?30:20; } if(readparam(bInt)>=90) { bonus bMatk,(.@r>=9)?50:30; } if(readparam(bVit)>=90) { bonus2 bSubEle,Ele_Neutral,(.@r>=9)?10:5; } if(readparam(bAgi)>=90) { bonus bAspdRate,8; if(.@r>=9) { bonus bAspd,1; } } if(readparam(bDex)>=90) { bonus bLongAtkRate,(.@r>=9)?10:5; } if(readparam(bLuk)>=90) { bonus bCritAtkRate,(.@r>=9)?15:10; } } },{},{}
 2577,Sabah_Hood,Sapha Hood,4,20,,100,,13,,0,0x00001000,63,2,4,,100,1,0,{ bonus bFlee,12; bonus bCritical,getrefine(); },{},{}
 2578,Nab_Hood,Nab Hood,4,20,,100,,13,,0,0x00001000,63,2,4,,100,1,0,{ .@r = getrefine(); bonus bFlee,.@r*2; bonus bBaseAtk,.@r*2; },{},{}
 2579,Magic_Stole,Magic Stole,4,20,,700,,8,,1,0xFFFFFFFF,63,2,4,,0,1,0,{ bonus bMdef,3; bonus bUseSPrate,-5; bonus bMaxSPrate,((getrefine()>=4)?6:3); },{},{}
@@ -2118,7 +2122,7 @@
 2911,Bangungot_Tattoo,Bangungot Agimat Tattoo,4,20,,100,,0,,0,0xFFFFFFFF,63,2,136,,1,0,0,{ bonus bHealPower,4; bonus bHealPower2,7; },{},{}
 2912,Xylitol_2011,Xylitol 2011,4,20,,300,,0,,1,0xFFFFFFFF,63,2,136,,0,0,0,{},{},{}
 2913,Thief_Handcuff,Thief Handcuff,4,20,,1400,,0,,1,0xFFFFFFFF,63,2,136,,10,0,0,{ bonus bBaseAtk,5; },{},{}
-2914,Wizard_Left_Eye,Wizard Left Eye,4,20,,100,,1,,1,0x00CFDF80,63,2,136,,0,0,0,{ bonus bInt,4; bonus bMdef,3; },{},{}
+2914,Wizard_Left_Eye,Wizard Left Eye,4,20,,100,,1,,1,0x00CFDF80,63,2,136,,0,0,0,{ bonus bInt,4; bonus bMdef,3; bonus bVariableCastrate,3; },{},{}
 2915,Ettlang_Keepsake,Ettlang Keepsake,4,20,,50,,0,,0,0xFFFFFFFF,63,2,136,,0,0,0,{ bonus bMdef,10; },{},{}
 2916,Fairy_Wing,Fairy Wing,4,0,,10,,0,,0,0xFFFFFFFF,63,2,136,,90,0,0,{ skill "ECLAGE_RECALL",1; },{},{}
 2917,Str_Glove,Str Glove,4,75000,,100,,0,,0,0xFFFFFFFF,63,2,136,,100,0,0,{ bonus bMaxHP,100; bonus bMaxSP,20; bonus bBaseAtk,(readparam(bStr)/10); if(readparam(bStr)>=110) bonus2 bAddClass,Class_All,1; },{},{}
@@ -2173,7 +2177,7 @@
 2987,Snake_Pendant,Snake Pendant,4,20,,100,,3,,1,0xFFFFFFFF,63,2,136,,0,0,0,{ bonus bAgi,3; bonus bLuk,2; bonus bMdef,3; },{},{}
 2988,Winged_Ring_Of_Newoz,Oz's New Wing Ring,4,20,,100,,0,,1,0x00080000,56,1,136,,130,,,{ bonus bVariableCastrate,-25; },{},{}
 2989,Floral_Bracelet_Of_Igu,Bloody Floral Decoration Bracelet,4,20,,100,,0,,1,0x00080000,56,0,136,,130,,,{ bonus bVariableCastrate,-25; },{},{}
-2990,Pendant_Of_Harmony,Pendant of Harmony,4,20,,100,,0,,0,0xFFFFFFFF,63,2,136,,130,,,{ bonus bMatkRate,6; bonus bHPrecovRate,50; bonus bSPrecovRate,50; bonus2 bSubEle,Ele_Holy,5; bonus5 bAutoSpell,"AB_RENOVATIO",1,100,BF_NORMAL,0; bonus4 bAutoSpellWhenHit,"PR_SANCTUARY",3,100,0; bonus bStr,-5; },{},{}
+2990,Pendant_Of_Harmony,Pendant of Harmony,4,20,,100,,0,,0,0xFFFFFFFF,63,2,136,,130,,,{ bonus bMatkRate,6; bonus bHPrecovRate,50; bonus bSPrecovRate,50; bonus2 bSubEle,Ele_Holy,5; autobonus "{ bonus2 bHPRegenRate,1000,5000; }",100,90000,BF_NORMAL; bonus4 bAutoSpellWhenHit,"PR_SANCTUARY",3,100,0; bonus bStr,-5; },{},{}
 2991,Pendant_Of_Chaos,Pendant of Chaos,4,20,,100,,0,,0,0xFFFFFFFF,63,2,136,,130,,,{ bonus2 bAddClass,Class_All,6; bonus2 bSubEle,Ele_Dark,5; bonus2 bResEff,Eff_Confusion,10000; bonus2 bAddEff,Eff_Confusion,500; bonus3 bAutoSpellWhenHit,"NPC_WIDECONFUSE",2,30; bonus bInt,-5; },{},{}
 2992,Pendant_Of_Maelstorm,Pendant of Maelstrom,4,20,,100,,0,,1,0xFFFFFFFF,63,2,136,,130,,,{ bonus2 bAddClass,Class_All,6; bonus bMatkRate,6; bonus bAllStats,1; bonus5 bAutoSpellWhenHit,"SC_MAELSTROM",1,100,BF_MAGIC,0; },{},{}
 2995,Supplement_Part_Dex,Supplement Part Dex,4,25000,,100,,0,,1,0x00000400,56,2,136,,100,0,0,{ bonus bUseSPrate,-10; bonus bDelayrate,-10; bonus bVariableCastrate,-10; bonus2 bSkillCooldown,"NC_AXEBOOMERANG",-2000; },{},{}
@@ -2724,7 +2728,7 @@
 4538,Sealed_Bacsojin_Card,Sealed White Lady Card,6,20,,10,,,,,,,,769,,,,,{ .@r = getrefine(); bonus bHealPower,(.@r>14?25:15); bonus bUseSPrate,(.@r>14?20:30); },{},{}
 4539,Sealed_F_Bishop_Card,Sealed Fallen Bishop Hibram Card,6,20,,10,,,,,,,,64,,,,,{ .@r = getrefine(); bonus bMatkRate,((.@r>14)?8:5); bonus bMaxSPrate,-50; .@rate = ((.@r>14)?33:25); bonus2 bMagicAddRace,RC_Angel,.@rate; bonus2 bMagicAddRace,RC_DemiHuman,.@rate; bonus2 bMagicAddRace,RC_Player,.@rate; },{},{}
 4540,SLD_Lord_Of_Death_Card,Sealed Lord of The Dead Card,6,20,,10,,,,,,,,2,,,,,{ .@rate = ((getrefine()>14)?350:250); bonus3 bAddEff,Eff_Stun,.@rate,ATF_SHORT; bonus3 bAddEff,Eff_Curse,.@rate,ATF_SHORT; bonus3 bAddEff,Eff_Silence,.@rate,ATF_SHORT; bonus3 bAddEff,Eff_Poison,.@rate,ATF_SHORT; bonus3 bAddEff,Eff_Bleeding,.@rate,ATF_SHORT; bonus2 bComaClass,Class_Normal,1; },{},{}
-4541,SLD_B_Katrinn_Card,Sealed High Wizard Card,6,20,,10,,,,,,,,769,,,,,{ bonus2 bIgnoreMdefClassRate,Class_Normal,100; if(getrefine()>14) { bonus bVariableCastrate,120; bonus bSPrecovRate,-120; } else { bonus bVariableCastrate,150; bonus bSPrecovRate,-150; } },{},{ heal 0,((getrefine()>14)?-2000:-3000); }
+4541,SLD_B_Katrinn_Card,Sealed High Wizard Card,6,20,,10,,,,,,,,769,,,,,{ bonus2 bIgnoreMdefClassRate,Class_Normal,100; .@rate = ((getrefine()>14)?120:150); bonus bVariableCastrate,.@rate; bonus bSPrecovRate,-.@rate; },{},{ heal 0,((getrefine()>14)?-2000:-3000); }
 4542,SLD_Detale_Card,Sealed Detale Card,6,20,,10,,,,,,,,16,,,,,{ bonus2 bResEff,Eff_Freeze,(getrefine()>=15?6000:4000); bonus5 bAutoSpell,"SA_LANDPROTECTOR",1,1,BF_MAGIC,1; bonus bMdef,-20; },{},{}
 4543,SLD_Garm_Card,Sealed Hatii Card,6,20,,10,,,,,,,,16,,,,,{ bonus2 bAddEffWhenHit,Eff_Freeze,((getrefine()>14)?4000:2500); },{},{}
 4544,SLD_Dark_Snake_Card,Sealed Evil Snake Lord Card,6,20,,10,,,,,,,,769,,,,,{ bonus bInt,3; .@i = (getrefine()>14?7500:5000); bonus2 bResEff,Eff_Blind,.@i; bonus2 bResEff,Eff_Curse,.@i; },{},{}
@@ -6553,7 +6557,7 @@
 12330,Recall_FemaleGM,Summon Female GameMaster Scroll,2,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ mercenary_create 2001,1800000; },{},{}
 12331,Ginseng,Ginseng,0,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ percentheal 6,0; },{},{}
 12332,Fruit_Juice,Fruit Juice,0,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ percentheal 0,6; },{},{}
-12333,Ansila,Ancilla,2,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ percentheal 0,15; },{},{}
+12333,Ansila,Ancilla,2,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ percentheal 0,15; sc_start SC_ANCILLA,60000,1; },{},{}
 12334,Cherish_Box,Treasure Edition Helm Box,2,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ getrandgroupitem(IG_Cherish_Box,1); },{},{}
 12335,Yummy_Skewered_Dish,Grilled Delicious Skewer,0,1000,,350,,,,,0xFFFFFFFF,63,2,,,,,,{ percentheal 60,60; },{},{}
 12336,Baked_Mushroom,Grilled Mushroom,0,500,,300,,,,,0xFFFFFFFF,63,2,,,,,,{ percentheal 30,30; },{},{}
@@ -7072,7 +7076,7 @@
 12846,Unripe_Apple2,Little Unripe Apple,2,10,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ pet 2398; },{},{}
 12847,Old_Equipment_Box,Old Equipment Box,2,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{}
 12848,Falcon_Flute,Falcon Flute,11,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ if(getskilllv("HT_FALCON")) { if(!checkoption(Option_Wug) && !checkoption(Option_Wugrider)) setfalcon (!checkfalcon()); } },{},{}
-12849,Combination_Kit,Combination Kit,2,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ cooking 30; },{},{}
+12849,Combination_Kit,Combination Kit,2,40,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ cooking 30; },{},{}
 12850,Heaven_Scroll,Heaven Scroll,2,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ getgroupitem(IG_Heaven_Scroll); },{},{}
 12851,Vocation_Scroll,Vocation Scroll,2,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ getgroupitem(IG_Vocation_Scroll); },{},{}
 12852,Wisdom_Scroll,Wisdom Scroll,2,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ getgroupitem(IG_Wisdom_Scroll); },{},{}
@@ -7501,6 +7505,8 @@
 13327,Crimson_Huuma_Shuriken,Crimson Huuma Shuriken,5,20,,1000,100,,1,2,0x22000000,63,2,34,3,70,1,22,{ .@r = getrefine(); bonus bBaseAtk,((BaseLevel/10)*5)+(.@r<=15?pow(.@r,2):225); bonus bMatk,(.@r<=15?(pow(.@r,2)/2):225); },{},{}
 13328,Huuma_Shuriken_of_Vicious_Mind,Huuma Shuriken of Vicious Mind,5,20,,1500,150:50,,1,1,0x22000000,63,2,34,4,160,1,22,{ bonus bAtk,pow(min(getrefine(),15),2); bonus bMatk,pow(min(getrefine(),15),2)/2; bonus bUnbreakableWeapon; },{},{}
 13329,Unity_Huuma_Shuriken,Unity Huuma Shuriken,5,20,,500,95,,1,1,0x22000000,63,2,34,3,1,1,22,{ bonus bBaseAtk,pow(getrefine(),2)*125/100; },{},{}
+13337,Illusion_Huuma_Fluttering_Snow,Illusion Huuma Fluttering Snow,5,0,,1500,250:50,,1,2,0x02000000,63,2,34,4,120,1,22,{ .@r = getrefine(); bonus bBaseAtk,(30*(.@r/3)); bonus bLongAtkRate,(3*.@r); },{},{}
+13338,Illusion_Wing_Shuriken,Illusion Wing Shuriken,5,0,,1500,300,,1,2,0x02000000,63,2,34,4,120,1,22,{ bonus bDex,2; bonus2 bSkillAtk,"KO_HAPPOKUNAI",(9*getrefine()); },{},{}
 //===================================================================
 // More 1-Handed Swords
 //===================================================================
@@ -7554,6 +7560,7 @@
 13455,Saber_of_Vicious_Mind,Saber of Vicious Mind,5,20,,1350,135,,1,1,0x000654E3,63,2,2,4,160,1,2,{ bonus bAtk,pow(min(getrefine(),15),2); },{},{}
 13456,Unity_Sword,Unity Sword,5,20,,420,80,,1,1,0x000654E3,56,2,2,3,1,1,2,{ bonus bBaseAtk,pow(getrefine(),2)*125/100; },{},{}
 13457,Unity_Dagger,Unity Dagger,5,20,,270,52,,1,1,0x028F5EEF,63,2,2,3,1,1,1,{ bonus bBaseAtk,pow(getrefine(),2)*125/100; },{},{}
+13469,Illusion_Immaterial_Sword,Illusion Immaterial Sword,5,0,,900,180,,1,2,0x000654E2,63,2,2,4,120,1,2,{ .@r = getrefine(); bonus bSPDrainValue,-1; bonus bUnbreakableWeapon; if (.@r >= 12) { .@val = 20; } bonus2 bSPVanishRate,(80+(20*.@r)),(30+.@val); },{},{}
 //===================================================================
 // More Cash Shop Items
 //===================================================================
@@ -8746,6 +8753,8 @@
 15185,Para_Team_Uniform160,Awakened Eden Group Uniform V,4,20,,0,,100,,0,0xFFFFFFFF,63,2,16,,160,,,{ bonus bAllStats,2; bonus bMaxHP,1500; bonus bMaxSP,150; bonus bMdef,15; bonus2 bSubEle,Ele_All,5; bonus2 bSubEle,Ele_Neutral,-5; },{},{}
 15186,Kafra_Uniform,Kafra Uniform,4,20,,500,,40,,1,0xFFFFFFFF,63,2,16,,1,1,,{ bonus2 bExpAddClass,Class_All,5; bonus2 bDropAddClass,Class_All,5; .@r = getrefine(); bonus bMaxHP,100*.@r; bonus bMaxSP,20*.@r; bonus bMaxHPrate,(3*(.@r>=7)+5*(.@r>=9)); bonus bMaxSPrate,(3*(.@r>=7)+5*(.@r>=9)); if(.@r>=12){ bonus bHPrecovRate,100; bonus bSPrecovRate,100; } },{},{}
 15189,Einherjar_Armor,Einherjar Armor,4,20,,800,,60,,1,0xFFFFFFFF,63,2,16,,90,1,,{ bonus bMdef,5; bonus bBaseAtk,10; .@r = getrefine(); if(.@r>=7){ bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; } if(.@r>=8){ bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; } if(.@r>=9){ bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; } },{},{}
+15195,Illusion_Puente_Robe,Illusion Puente Robe,4,20,,400,,52,,1,0xFFFFFFFF,63,2,16,,99,1,0,{ bonus bFixedCastrate,-3; .@r = getrefine(); bonus bHealPower2,(5+.@r); bonus bAddItemHealRate,(5+.@r); },{},{}
+15348,Illusion_Goibne_Armor,Illusion Goibne Armor,4,0,,3500,,158,,1,0xFFFFFFFE,63,2,16,,130,1,0,{ bonus bMaxHPrate,10; .@r = getrefine(); if (.@r >= 9) { bonus bDef,150; } else if (.@r >= 7) { bonus bDef,50; } },{},{}
 //===================================================================
 // More Maces
 //===================================================================
@@ -8794,6 +8803,8 @@
 16043,Meteor_Strike,Meteor Strike,5,0,,20000,1,,1,2,0x00000001,63,2,2,4,110,1,8,{ bonus bBaseAtk,10*getskilllv("BS_WEAPONRESEARCH"); bonus bBaseAtk,30*getskilllv("MO_IRONHAND"); .@s = getskilllv("AM_AXEMASTERY"); bonus bBaseAtk,7*.@s; bonus bHit,5*.@s; bonus bBaseAtk,10*getrefine(); if (getskilllv("MC_PUSHCART") > 9) skill "MC_CARTREVOLUTION",1; if (getskilllv("SM_SWORD") > 0) skill "KN_BOWLINGBASH",1; .@str = readparam(bStr); if (.@str > 119) bonus bUseSPrate,-30; else if (.@str > 107) bonus bUseSPrate,-20; },{},{}
 16048,Unity_Mace,Unity Mace,5,20,,400,76,,1,1,0x0004C5B3,63,2,2,3,1,1,8,{ bonus bBaseAtk,pow(getrefine(),2)*125/100; },{},{}
 16051,Valkyrie_Hammer,Valkyrie Hammer,5,0,,100,50,,1,4,0x0004C3B3,63,2,2,1,70,1,8,{ if ((eaclass()&EAJ_BASEMASK) == EAJ_NOVICE) { bonus bUseSPrate,-5; .@r = getrefine(); bonus bVit,.@r; bonus bMaxHP,200; bonus bFlee2,1; bonus bAspdRate,1; bonus bVariableCast,.@r/2; } else if ((eaclass()&EAJ_BASEMASK) == EAJ_SWORDMAN) { bonus bVit,getrefine(); bonus bMaxHP,500; bonus bMaxSP,100; } else if ((eaclass()&EAJL_2) == EAJ_PRIEST) { bonus bBaseAtk,50; bonus bMatk,100; bonus bAspdRate,getrefine(); } else if ((eaclass()&EAJL_2) == EAJ_MONK) { bonus bMaxSP,200; bonus bUseSPrate,-5; bonus bFlee2,getrefine(); } else if ((eaclass()&EAJ_BASEMASK) == EAJ_MERCHANT) { bonus bBaseAtk,100; bonus bHit,10; bonus bVariableCast,getrefine()/2; } },{},{}
+16063,Illusion_Long_Mace,Illusion Long Mace,5,20,,800,185,,3,2,0x00008110,63,2,2,4,99,1,8,{ bonus bLongAtkDef,(10+3*(getrefine()/2)); },{},{}
+16065,Illusion_Iron_Driver,Illusion Iron Driver,5,0,,2000,210,,2,2,0x00000100,56,2,2,4,120,1,8,{ .@r = getrefine(); bonus bAspd,(.@r/2); bonus2 bSkillAtk,"AB_DUPLELIGHT_MELEE",(3*.@r); bonus2 bSkillAtk,"AB_DUPLELIGHT_MAGIC",(3*.@r); },{},{}
 //===================================================================
 // More Rental Boxes
 //===================================================================
@@ -9527,6 +9538,8 @@
 18138,Frozen_Bow_,Frozen Bow,5,20,,1400,100,,5,2,0x000A0808,63,2,34,3,55,1,11,{ bonus2 bAddEff,Eff_Freeze,1000; },{},{}
 18139,Earth_Bow_,Earth Bow,5,20,,1400,105,,5,2,0x000A0808,63,2,34,3,55,1,11,{},{},{}
 18140,Gust_Bow_,Gust Bow,5,20,,1400,95,,5,2,0x000A0808,63,2,34,3,55,1,11,{},{},{}
+18149,Illusion_Ballista,Illusion Ballista,5,0,,3500,200,,5,2,0x00080800,58,2,34,4,100,1,11,{ bonus bLongAtkRate,getrefine(); },{},{}
+18174,Illusion_Hunter_Bow,Illusion Hunter Bow,5,0,,1500,165,,5,2,0x00000800,56,2,34,4,120,1,11,{ .@r = getrefine(); bonus bCritical,.@r; if (.@r >= 7) { bonus bAspdRate,10; if (.@r >= 9) { bonus bCritAtkRate,15; if (.@r >= 11) { bonus2 bAddRace,RC_Insect,30; bonus2 bAddRace,RC_Brute,30; } } } },{},{}
 //===================================================================
 // More Headgears
 //===================================================================
@@ -9995,8 +10008,15 @@
 19180,Anubis_Helm_,Anubis Helm,4,20,,0,,8,,1,0xFFFFFFFF,63,2,768,,65,0,485,{ bonus bMdef,5; bonus2 bSubClass,Class_Boss,10; bonus bHealpower2,10; bonus bAddItemHealRate,10; },{},{}
 19181,New_Wave_Sunglasses_,New Wave Sunglasses,4,20,,100,,1,,1,0xFFFFFFFF,63,2,512,,30,0,856,{ bonus bDelayRate,-5; },{},{}
 //
+19209,Illusion_Nurse_Cap,Illusion Nurse Cap,4,20,,200,,1,,1,0x00008110,63,2,256,,99,1,64,{ .@r = getrefine(); bonus bInt,(1+(.@r/2)); bonus bHealPower,(3*(.@r/2)); },{},{}
+19210,Illusion_Apple_of_Archer,Illusion Apple of Archer,4,20,,200,,1,,1,0xFFFFFFFE,63,2,256,,99,1,72,{ bonus bDex,(3+(getrefine()/2)); },{},{}
+19223,Illusion_Cap,Illusion Cap,4,0,,400,,15,,1,0x000654E3,63,2,256,,120,1,14,{ bonus2 bAddClass,Class_All,1; bonus bBaseAtk,(2*getrefine()); },{},{}
+19247,Illusion_Fancy_Flower,Illusion Fancy Flower,4,0,,100,,0,,1,0xFFFFFFFF,63,2,256,,120,0,4,{ bonus bMatkRate,1; bonus bMatk,(2*getrefine()); },{},{}
+//
 19246,Royal_Guard_Necklace,Royal Guard Necklace,4,20,,300,,0,,0,0xFFFFFFFF,63,2,1,,80,0,1629,{ bonus bAspd,1; },{},{}
 19306,Gambler_Card,Heart Card in Mouth,4,20,,300,,0,,0,0xFFFFFFFF,63,2,1,,80,0,1679,{ bonus bCritAtkRate,5; },{},{}
+19344,Illusion_Hot_blooded_Headband,Illusion Hot-blooded Headband,4,0,,100,,3,,1,0xFFFFFFFE,63,2,256,,120,1,154,{ .@r = getrefine(); bonus bStr,2; bonus bBaseAtk,(10*(.@r/2)); if (.@r >= 7) { bonus2 bAddEle,Ele_Water,10; bonus2 bAddEle,Ele_Wind,10; bonus2 bAddEle,Ele_Earth,10; bonus2 bAddEle,Ele_Neutral,10; if (.@r >= 9) { bonus2 bAddSize,Size_Small,15; bonus2 bAddSize,Size_Large,15; } } },{},{}
+19366,Illusion_Goibne_Helm,Illusion Goibne Helm,4,0,,1000,,25,,1,0xFFFFFFFE,63,2,256,,130,1,258,{ .@r = getrefine(); .@vit = 3; if (.@r >= 7) { .@vit += 5; if (.@r >= 9) { bonus bDelayrate,-12; } } bonus bVit,.@vit; bonus bMdef,3; },{},{}
 //===================================================================
 // Costume System
 //===================================================================
@@ -10896,6 +10916,10 @@
 20825,Para_Team_Manteau160,Awakened Eden Group Manteau III,4,0,,0,,30,,0,0xFFFFFFFF,63,2,4,,160,1,0,{ bonus2 bSubEle,Ele_All,10; bonus bFlee,12; bonus bMaxHP,1000; bonus bFlee2,2; .@r = getrefine(); if(.@r >= 7){ bonus2 bSubEle,Ele_Neutral,5; if(.@r >= 9){ skill "BS_GREED",1; } } },{},{}
 20826,Angel_Feather,Angel Feather,4,0,,200,,18,,1,0xFFFFFFFF,63,2,4,,1,1,18,{},{},{}
 20830,Wings_of_Seraph,Wings of Seraph,4,0,,200,,18,,1,0xFFFFFFFF,63,2,4,,1,1,8,{},{},{}
+20838,Illusion_Muffler,Illusion Muffler,4,20,,400,,8,,1,0xFFFFFFFE,63,2,4,,99,1,0,{ .@r = getrefine(); bonus bMaxHP,(100+(100*.@r)); bonus bMaxSP,(10+(5*.@r)); },{},{}
+20840,Illusion_Ancient_Cape,Illusion Ancient Cape,4,0,,600,,18,,1,0xFFFFFFFE,63,2,4,,100,1,0,{ .@val = min(getrefine(),10)/2; bonus bAgi,(2+.@val); },{},{}
+20847,Illusion_Survivor_Manteau,Illusion Survivor Manteau,4,0,,550,,30,,1,0x00810204,63,2,4,,130,1,0,{ bonus bVit,15; },{},{}
+20923,Illusion_Goibne_Spaulders,Illusion Goibne Spaulders,4,0,,1000,,47,,1,0xFFFFFFFE,63,2,4,,130,1,0,{ .@r = getrefine();  bonus bMdef,2; bonus bVit,1; if (.@r >= 7) { .@val = 5; if (.@r >= 9) { .@val += 10; } } if (.@val) { bonus2 bAddEle,Ele_Water,.@val; bonus2 bAddEle,Ele_Wind,.@val; bonus2 bAddEle,Ele_Earth,.@val; bonus2 bAddEle,Ele_Fire,.@val; } },{},{}
 //===================================================================
 // More 2-Handed Swords
 //===================================================================
@@ -10985,6 +11009,9 @@
 22124,Para_Team_Boots130,Awakened Eden Group Boots III,4,0,,0,,27,,0,0xFFFFFFFF,63,2,64,,130,1,,{ bonus bAllStats,2; bonus bHPrecovRate,36; bonus bSPrecovRate,18; },{},{}
 22125,Para_Team_Boots145,Awakened Eden Group Boots IV,4,0,,0,,30,,0,0xFFFFFFFF,63,2,64,,145,1,,{ bonus bAllStats,2; bonus bHPrecovRate,40; bonus bSPrecovRate,20; },{},{}
 22126,Para_Team_Boots160,Awakened Eden Group Boots V,4,0,,0,,30,,0,0xFFFFFFFF,63,2,64,,160,1,,{ bonus bAllStats,2; bonus bHPrecovRate,40; bonus bSPrecovRate,20; bonus bUseSPrate,-5; },{},{}
+22133,Illusion_Shoes,Illusion Shoes,4,20,,400,,10,,1,0xFFFFFFFE,63,2,64,,99,1,0,{ .@r = getrefine(); bonus bMaxHP,(100+(100*.@r)); bonus bMaxSP,(10+(5*.@r)); },{},{}
+22190,Illusion_Boots,Illusion Boots,4,0,,600,,16,,1,0x016E5CEA,63,2,64,,100,1,0,{ .@r = getrefine(); bonus bCritical,(5*(.@r/3)); bonus bAspdRate,.@r; },{},{}
+22192,Illusion_Goibne's_Greaves,Illusion Goibne's Greaves,4,0,,1200,,42,,1,0xFFFFFFFE,63,2,64,,130,1,0,{ .@r = getrefine(); bonus bMaxHPrate,5; bonus bMaxSPrate,5; if (.@r >= 7) { bonus bVariableCastrate,-5; if (.@r >= 9) { bonus bLongAtkRate,10; } } },{},{}
 //===================================================================
 // New Usable items
 //===================================================================
@@ -11235,7 +11262,11 @@
 23194,Sienna_Execrate_Scroll_1_5,Level 5 Sienna Execrate,11,10,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "WL_SIENNAEXECRATE",5,true; },{},{}
 23196,Agust_Lucky_Scroll,Shining Blue Lucky Egg,18,10,,10,,,,0,0xFFFFFFFF,63,2,,,1,,,{ getgroupitem(IG_Agust_Lucky_Scroll); },{},{}
 //
+23228,Hazy_Mooncake,Hazy Mooncake,0,768,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ /* unknown */ },{},{}
+//
 23277,Mado_Box,Emergency Magic Gear,2,10000,,3000,,,,,0x00000400,56,2,,,100,,,{ setmadogear 1; },{},{}
+23280,N_Fly_Wing_,Novice Fly Wing,11,10,,0,,,,,0xFFFFFFFF,63,2,,,1:98,,,{ itemskill "AL_TELEPORT",1; },{},{}
+23288,Compressed_Wing_Of_Fly,Compressed Fly Wing,11,1000,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "AL_TELEPORT",1; },{},{}
 //
 23307,S_Shining_Def_Scroll,[Sale] Shining Defense Scroll,2,,,10,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{}
 23340,S_Megaphone,[Sale] Megaphone,2,,,10,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{}
@@ -11523,11 +11554,23 @@
 25223,Para_Team_Coin,Eden Group Coin,3,0,,0,,,,,,,,,,,,,{},{},{}
 25238,New_Normal_Lubricant,New Normal Lubricant,3,0,,0,,,,,,,,,,,,,{},{},{}
 25239,New_Advanced_Lubricant,New Advanced Lubricant,3,0,,0,,,,,,,,,,,,,{},{},{}
+25256,Hazy_Dream_Fragment,Hazy Dream Fragment,3,0,,10,,,,,,,,,,,,,{},{},{}
+25257,Bloody_Love_Letter,Bloody Love Letter,3,780,,10,,,,,,,,,,,,,{},{},{}
+25258,Broken_Arrow,Broken Arrow,3,550,,10,,,,,,,,,,,,,{},{},{}
+25271,Illusion_Stone,Illusion Stone,3,10,,0,,,,,,,,,,,,,{},{},{}
+25272,Illusion_Gemstone,Illusion Gemstone,3,0,,10,,,,,,,,,,,,,{},{},{}
+//
+25464,World_Moving_Rights,World Moving Rights,3,20,,0,,,,,,,,,,,,,{},{},{}
+//===================================================================
+// New Spears
+//===================================================================
+26007,Illusion_Spectral_Spear,Illusion Spectral Spear,5,20,,2000,240,,3,1,0x00004082,63,2,34,4,99,1,5,{ .@r = getrefine(); .@val = 3*(.@r/2); bonus2 bAddEle,Ele_Dark,(20+.@val); bonus2 bAddRace,RC_Demon,(20+.@val); bonus2 bAddRace,RC_Undead,(20+.@val); bonus2 bSubRace,RC_Demon,(10+.@val); bonus2 bSubEle,Ele_Undead,(10+.@val); bonus2 bSubEle,Ele_Dark,(10+.@val); bonus bHPGainValue,50; bonus bSPGainValue,(.@r/2); bonus2 bAddEff2,Eff_Confusion,1000; },{},{}
 //===================================================================
 // New Staves
 //===================================================================
 26100,Paradise_Foxtail_Staff_II,Eden Group Foxtail Staff II,5,20,,0,135:165,,1,0,0x80000000,7,2,2,2,40,0,10,{ bonus bDex,4; bonus bInt,4; bonus bLongAtkRate,6; },{},{}
 26101,Paradise_Foxtail_Staff_III,Eden Group Foxtail Staff III,5,20,,0,150:195,,1,0,0x80000000,7,2,2,3,60,0,10,{ bonus bDex,5; bonus bInt,5; bonus bLongAtkRate,7; },{},{}
+26109,Illusion_Staff_of_Bordeaux,Illusion Staff of Bordeaux,5,20,,500,60:180,,1,2,0x00010200,58,2,2,4,99,1,10,{ bonus bInt,3; bonus bDex,2; if (getskilllv("SA_DRAGONOLOGY") == 5) { .@val = getrefine()/3; bonus bMatkRate,(5+.@val); bonus bUseSPrate,(-15-(5*.@val)); } },{},{}
 26110,CandyCaneRod,Candy Cane Rod,5,20,,500,10:140,,1,2,0x00818315,63,2,2,4,99,1,10,{ bonus bInt,2; bonus bFlee,2*getrefine(); if(getrefine()>= 10) { bonus bFlee2,10; } },{},{}
 //===================================================================
 // More Cards
@@ -11547,6 +11590,40 @@
 27028,Fire_Frilldora_Card,Fire Frilldora Card,6,20,,10,,,,,0xFFFFFFFF,63,2,2,,,,,{ .@r = getrefine(); bonus2 bMagicAddEle,Ele_Earth,3+((.@r>=7)*5)+((.@r>=9)*7); },{},{}
 27029,Fire_Golem_Card,Fire Golem Card,6,20,,10,,,,,0xFFFFFFFF,63,2,32,,,,,{ bonus2 bSubEle,Ele_Fire,20; bonus2 bAddEle,Ele_Fire,5; },{},{}
 27030,Fulbuk_Card,Fulbuk Card,6,20,,10,,,,,0xFFFFFFFF,63,2,769,,,,,{ bonus3 bAddEff,Eff_Burning,700,ATF_WEAPON|ATF_MAGIC; },{},{}
+27081,Angry_Moonlight_Flower_Card,Angry Moonlight Flower Card,6,20,,10,,,,,,,,16,,,,,{ skill "PA_PRESSURE",4; },{},{}
+27082,Angry_Nine_Tail_Card,Angry Nine Tail Card,6,20,,10,,,,,,,,16,,,,,{ .@val = 5; bonus bCritAtkRate,10; if (getrefine() >= 10) { .@val += 10; } bonus bCritical,.@val; },{},{}
+27083,Resentful_Bongun_Card,Resentful Bongun Card,6,20,,10,,,,,,,,16,,,,,{ bonus bBaseAtk,20; bonus bMatk,20; },{},{}
+27084,Resentful_Sohee_Card,Resentful Sohee Card,6,20,,10,,,,,,,,16,,,,,{ bonus bMatk,10; if (getrefine() >= 10) { bonus bMatkRate,2; } },{},{}
+27085,Resentful_Munak_Card,Resentful Munak Card,6,20,,10,,,,,,,,2,,,,,{ bonus bBaseAtk,15; bonus bMatk,15; },{},{}
+27086,Resentful_Soldier_Card,Resentful Soldier Card,6,20,,10,,,,,,,,2,,,,,{ if (getiteminfo(getequipid(EQI_COMPOUND_ON),11) == W_BOW) { bonus3 bAutoSpell,"TF_DOUBLE",5,30; if (getrefine() >= 10) { bonus2 bWeaponDamageRate,W_BOW,20; } } },{},{}
+27087,Truthful_Wizard_Card,Truthful Wizard Card,6,20,,10,,,,,,,,2,,,,,{ bonus bMatk,25; autobonus "{ bonus bNoCastCancel; }",5,5000,BF_MAGIC,"{ showscript \"This is the truth!\"; }"; },{},{}
+27088,Fury_Hero_Card,Fury Hero Card,6,20,,10,,,,,,,,769,,,,,{ bonus2 bAddClass,Class_All,2; bonus5 bAutoSpell,"SM_ENDURE",1,5,BF_SHORT,0; },{},{}
+27101,Sweet_Nightmare_Card,Sweet Nightmare Card,6,20,,10,,,,,,,,16,,,,,{ bonus bMatk,20; bonus bNoCastCancel; },{},{}
+27102,Matt_Drainliar_Card,Matt Drainliar Card,6,20,,10,,,,,,,,769,,,,,{ bonus2 bResEff,Eff_Burning,10000; },{},{}
+27103,Living_Dead_Card,Living Dead Card,6,20,,10,,,,,,,,16,,,,,{ bonus bBaseAtk,20; bonus bUnbreakableWeapon; bonus bUnbreakableArmor; },{},{}
+27104,Furious_Dracula_Card,Furious Dracula Card,6,20,,10,,,,,,,,4,,,,,{ skill "PF_HPCONVERSION",1; },{},{}
+27105,Bomi_Card,Bomi Card,6,20,,10,,,,,,,,8,,,,,{ skill "HW_NAPALMVULCAN",4; },{},{}
+27106,Awaken_Pere_Card,Awaken Pere Card,6,20,,10,,,,,,,,16,,,,,{ if (BaseJob == Job_Bard || BaseJob == Job_Dancer) { bonus bMatk,(15*getrefine()); } },{},{}
+27107,Playing_Pere_Card,Playing Pere Card,6,20,,10,,,,,,,,8,,,,,{ bonus2 bAddEle,Ele_Neutral,20; },{},{}
+27108,Singing_Pere_Card,Singing Pere Card,6,20,,10,,,,,,,,128,,,,,{ bonus2 bMagicAddEle,Ele_Neutral,20; },{},{}
+27109,Jitterbug_Card,Jitterbug Card,6,20,,10,,,,,,,,769,,,,,{ bonus2 bSubDefEle,Ele_Neutral,10; bonus bMaxHP,500; },{},{}
+27110,Furious_Gazeti_Card,Furious Gazeti Card,6,20,,10,,,,,,,,16,,,,,{ bonus bLongAtkDef,20; },{},{}
+27111,Furious_Snowier_Card,Furious Snowier Card,6,20,,10,,,,,,,,136,,,,,{ bonus2 bAddItemHealRate,11522,50; bonus2 bAddItemHealRate,11523,50; bonus2 bAddItemHealRate,11524,50; },{},{}
+27112,Furious_Ice Titan_Card,Furious Ice Titan Card,6,20,,10,,,,,,,,16,,,,,{ bonus bDef,(5*(1+getrefine())); },{},{}
+27113,Awaken_Ktullanux_Card,Awaken Ktullanux Card,6,20,,10,,,,,,,,16,,,,,{ bonus2 bMagicAtkEle,Ele_Water,(20+(3*getrefine())); },{},{}
+27114,Ominous_Solider_Card,Ominous Solider Card,6,20,,10,,,,,,,,16,,,,,{ bonus bMaxHPrate,(10+(getrefine()/3)); .@val = 50; if (BaseLevel >= 160) { .@val += 50; bonus bVit,3; } bonus bDef,.@val; },{},{}
+27115,Ominous_Permeter_Card,Ominous Permeter Card,6,20,,10,,,,,,,,769,,,,,{ .@r = getrefine(); bonus bInt,1; bonus bMaxSP,(80+10*(.@r/2)); if (.@r >= 7) { bonus bSPrecovRate,30; } },{},{}
+27116,Ominous_Heater_Card,Ominous Heater Card,6,20,,10,,,,,,,,136,,,,,{ bonus bCritical,3; bonus bCritAtkRate,5; },{},{}
+27117,Ominous_Assaulter_Card,Ominous Assaulter Card,6,20,,10,,,,,,,,2,,,,,{ .@type = getiteminfo(getequipid(EQI_COMPOUND_ON),11); if (.@type == W_WHIP || .@type == W_MUSICAL || .@type == W_BOOK || .@type == W_2HSWORD || .@type == W_2HSPEAR) { .@r = getrefine(); bonus bCritical,5; bonus bBaseAtk,(3*.@r); } bonus bCritAtkRate,(10+.@r); },{},{}
+27118,Ominous_Freezer_Card,Ominous Freezer Card,6,20,,10,,,,,,,,64,,,,,{ bonus bMaxHPrate,10; bonus bStr,2; if (BaseLevel >= 160) { .@val = 10; } if (getrefine() >= 9) { .@val += 10; } if (.@val) { bonus2 bSkillAtk,"RK_HUNDREDSPEAR",.@val; bonus2 bSkillAtk,"LG_OVERBRAND",.@val; } },{},{}
+27119,Ominous_Turtle_General_Card,Ominous Turtle General Card,6,20,,10,,,,,,,,32,,,,,{ bonus bDef,30; bonus bMdef,5; bonus2 bSubSize,Size_All,25; },{},{}
+27120,Iara_Card,Iara Card,6,20,,10,,,,,,,,136,,,,,{ skill "PR_STRECOVERY",1; },{},{}
+27121,Piranha_Card,Piranha Card,6,20,,10,,,,,,,,64,,,,,{ .@val = 10; if (getrefine() >= 9) { .@val += 5; } bonus2 bAddRace,RC_Fish,.@val; bonus2 bMagicAddRace,RC_Fish,.@val; },{},{}
+27122,Curupira_Card,Curupira Card,6,20,,10,,,,,,,,2,,,,,{ .@val = 3; .@r = getrefine(); if (.@r>=7) { .@val += 5; } if (.@r>=9) { .@val += 7; } bonus2 bMagicAddEle,Ele_Water,.@val; },{},{}
+27123,Tucan_Card,Toucan Card,6,20,,10,,,,,,,,769,,,,,{ .@val = 10; if (getrefine() >= 9) { .@val += 5; } bonus2 bMagicAddRace,RC_Insect,.@val; },{},{}
+27124,Jaguar_Card,Jaguar Card,6,20,,10,,,,,,,,769,,,,,{ .@val = 10; if (getrefine() >= 9) { .@val += 5; } bonus2 bMagicAddRace,RC_Brute,.@val; },{},{}
+27125,Headless_Mule_Card,Headless Mule Card,6,20,,10,,,,,,,,136,,,,,{ bonus2 bMagicAtkEle,Ele_Water,20; bonus2 bMagicAtkEle,Ele_Holy,20; },{},{}
+27126,Boitata_Card,Boitata Card,6,20,,10,,,,,,,,16,,,,,{ bonus2 bAddEle,Ele_Wind,40; bonus2 bAddEle,Ele_Earth,40; bonus2 bAddRace,RC_Brute,40; bonus2 bAddRace,RC_Insect,40; },{},{}
 27147,Humanoid_Chimera_Card,Humanoid Chimera Card,6,20,,10,,,,,,,,136,,,,,{ bonus bHit,(BaseLevel >= 90 ? 15 : 5); },{},{}
 27148,Material_Chimera_Card,Material Chimera Card,6,20,,10,,,,,,,,136,,,,,{ bonus bFlee,(BaseLevel >= 90 ? 20 : 10); },{},{}
 27149,Heart_Hunter_Card,Heart Hunter Card,6,20,,10,,,,,,,,2,,,,,{ .@type = getiteminfo(getequipid(EQI_COMPOUND_ON),11); .@r = getrefine(); if(.@type == 17 || .@type == 18 || .@type == 21){ bonus bLongAtkRate,5+.@r+(.@r >= 10 ? 5 : 0); } },{},{}
@@ -11570,6 +11647,10 @@
 27182,Captain_Felock_Card,Captain Felock Card,6,20,,10,,,,,,,,2,,,,,{ bonus bAtk,30; .@r = getrefine(); bonus2 bSkillAtk,"RL_AM_BLAST",.@r >= 10 ? 60 : 30; bonus2 bSkillAtk,"RL_HAMMER_OF_GOD",.@r >= 10 ? 60 : 30; },{},{}
 27183,Gigantes_Card,Gigantes Card,6,20,,10,,,,,,,,128,,,,,{ bonus bAtk,20; if(readparam(bStr) >= 120) { bonus bAtk,20; bonus bAspdRate,-3; } },{},{}
 27184,Knight_Sakray_Card,Knight Sakray Card,6,20,,10,,,,,,,,2,,,,,{ bonus bAtk,20; bonus2 bAddRace,RC_Demon,30; bonus2 bAddRace,RC_Undead,30; },{},{}
+27196,Nihil_M_Heine_Card,Nihil M. Heine Card,6,20,,10,,,,,,,,2,,,,,{ bonus2 bMagicAddSize,Size_Small,15; },{},{}
+27197,Agnes_Lugenburg_Card,Agnes Lugenburg Card,6,20,,10,,,,,,,,2,,,,,{ bonus2 bAddSize,Size_Small,15; },{},{}
+27198,Jurgen_Wigner_Card,Jurgen Wigner Card,6,20,,10,,,,,,,,2,,,,,{ bonus2 bAddRace,RC_Brute,15; },{},{}
+27199,Spica_Nerius_Card,Spica Nerius Card,6,20,,10,,,,,,,,2,,,,,{ bonus2 bMagicAddRace,RC_Brute,15; },{},{}
 27249,Arhi_Card,Arhi Card,6,20,,10,,,,,,,,64,,,,,{ bonus bAtk,15; bonus bMatk,15; bonus bMaxHP,500; bonus bHit,15; bonus bFlee,15; },{},{}
 27250,Dio_Anemos_Card,Dio Anemos Card,6,20,,10,,,,,,,,64,,,,,{ bonus bMatkRate,3; bonus2 bMagicAtkEle,Ele_Neutral,5; bonus2 bMagicAtkEle,Ele_Earth,5; },{},{}
 27251,Geffen_Gang_Member_Card,Geffen Gang Member Card,6,20,,10,,,,,,,,64,,,,,{ bonus bCritAtkRate,3; bonus bAspdRate,5; },{},{}
@@ -11587,6 +11668,36 @@
 27263,Fay_Kanavian_Card,Fay Kanavian Card,6,20,,10,,,,,,,,64,,,,,{ autobonus "{ bonus bDef,300; }",100,10000,BF_WEAPON|BF_SHORT,"{ active_transform 1040,10000; }"; },{},{}
 27264,Evil_Shadow_Card,Evil Shadow Card,6,20,,10,,,,,,,,32,,,,,{ bonus2 bSubEle,Ele_Dark,30; bonus2 bSubEle,Ele_Undead,30; bonus2 bSubEle,Ele_Holy,-30; bonus2 bSubEle,Ele_Fire,-30; },{},{}
 27265,Evil_Fanatics_Card,Evil Fanatics Card,6,20,,10,,,,,,,,2,,,,,{ bonus2 bAddEle,Ele_Dark,30; bonus2 bAddEle,Ele_Undead,30; bonus2 bMagicAddEle,Ele_Dark,30; bonus2 bMagicAddEle,Ele_Undead,30; bonus2 bAddEle,Ele_Holy,-30; bonus2 bAddEle,Ele_Fire,-30; bonus2 bMagicAddEle,Ele_Holy,-30; bonus2 bMagicAddEle,Ele_Fire,-30; },{},{}
+27286,Colorful_Teddy_Bear_Card,Colorful Teddy Bear Card,6,20,,10,,,,,,,,2,,,,,{ bonus bMatk,5; bonus2 bMagicAddSize,Size_Large,15; },{},{}
+27287,Shiny_Teddy_Bear_Card,Shiny Teddy Bear Card,6,20,,10,,,,,,,,64,,,,,{ bonus bUseSPrate,10; bonus2 bMagicAtkEle,Ele_Holy,(3*getrefine()); },{},{}
+27288,Hardworking_Pitman_Card,Hardworking Pitman Card,6,20,,10,,,,,,,,16,,,,,{ .@val = 10; bonus2 bAddClass,Class_All,5; if (getrefine() >= 10) { .@val += 5; } bonus bHit,.@val; },{},{}
+27289,Soul_Fragment_Card,Soul Fragment Card,6,20,,10,,,,,,,,2,,,,,{ bonus bMatk,5; bonus2 bMagicAddSize,Size_Medium,15; },{},{}
+27290,Haunted_Obsidian_Card,Haunted Obsidian Card,6,20,,10,,,,,,,,4,,,,,{ .@agi = readparam(bAgi); .@val = .@agi/10; if (.@val) { bonus bFlee,(3*.@val); bonus bAspdRate,.@val; if (.@agi >= 120) { bonus bAspd,1; } } },{},{}
+27291,Ancient_Tri_Joint_Card,Ancient Tri Joint Card,6,20,,10,,,,,,,,2,,,,,{ bonus bBaseAtk,30; bonus bMaxHPrate,-1; },{},{}
+27292,Ancient_Stalactic_Golem_Card,Ancient Stalactic Golem Card,6,20,,10,,,,,,,,4,,,,,{ .@vit = readparam(bVit); .@val = .@vit/10; if (.@val) { bonus bAspdRate,.@val; bonus bMaxHP,(150*.@val); if (.@vit >= 120) { bonus bDelayrate,-3; } } },{},{}
+27293,Ancient_Megalith_Card,Ancient Megalith Card,6,20,,10,,,,,,,,2,,,,,{ bonus bMatk,30; bonus bMaxSPrate,-1; },{},{}
+27294,Ancient Tao Gunka Card,Ancient Tao Gunka Card,6,20,,10,,,,,,,,769,,,,,{ .@val = 30; if (getrefine() >= 10) { .@val += 20; } bonus2 bIgnoreDefClassRate,Class_Boss,.@val; },{},{}
+27295,Ancient_Stone_Shooter_Card,Ancient Stone Shooter Card,6,20,,10,,,,,,,,4,,,,,{ .@luk = readparam(bLuk); .@aspd = .@crit = .@luk/10; if (.@luk >= 120) { .@crit += 5; } bonus bAspdRate,.@aspd; bonus bCritAtkRate,.@crit; },{},{}
+27296,Ancient_Wootan_Shooter_Card,Ancient Wootan Shooter Card,6,20,,10,,,,,,,,4,,,,,{ .@dex = readparam(bDex); .@val = .@dex/10; if (.@val) { bonus bAspdRate,.@val; bonus2 bWeaponDamageRate,W_BOW,.@val; if (.@dex >= 120) { bonus bBaseAtk,40; } } },{},{}
+27297,Ancient_Wootan_Fighter_Card,Ancient Wootan Fighter Card,6,20,,10,,,,,,,,2,,,,,{ bonus bCritical,5; bonus bCritAtkRate,10; },{},{}
+27298,Ancient_Wootan_Defender_Card,Ancient Wootan Defender Card,6,20,,10,,,,,,,,32,,,,,{ .@val = 30; if (getrefine() >= 10) { .@val += 20; } bonus2 bSubClass,Class_Boss,.@val; },{},{}
+27304,E_EA2S_Card,E EA2S Card,6,20,,10,,,,,,,,136,,,,,{ bonus bHPrecovRate,50; },{},{}
+27305,EL_A17T_Card,EL A17T Card,6,20,,10,,,,,,,,136,,,,,{ bonus5 bAutoSpell,"WL_HELLINFERNO",3,1,ATF_SHORT|ATF_WEAPON,1; /* fix me: unknown rate */ },{},{}
+27306,Bellare_Card,Bellare Card,6,20,,10,,,,,,,,2,,,,,{ if (getiteminfo(getequipid(EQI_COMPOUND_ON),11) == W_REVOLVER) { .@r = getrefine(); bonus bHit,20; bonus bLongAtkRate,(5+.@r); if (.@r >= 10) { bonus2 bSkillAtk,"RL_FIREDANCE",15; } } },{},{}
+27307,Greater_Bellare_Card,Greater Bellare Card,6,20,,10,,,,,,,,2,,,,,{ if (getiteminfo(getequipid(EQI_COMPOUND_ON),11) == W_GATLING) { .@r = getrefine(); bonus bHit,20; bonus bLongAtkRate,(5+.@r); if (.@r >= 10) { bonus2 bSkillAtk,"RL_R_TRIP",15; } } },{},{}
+27308,Sanare_Card,Sanare Card,6,20,,10,,,,,,,,2,,,,,{ .@r = getrefine(); .@val = 2; if (.@r >= 9) { .@val += 3; } if (.@r >= 11) { .@val += 5; } bonus bHealPower,.@val; },{},{}
+27309,Greater_Sanare_Card,Greater Sanare Card,6,20,,10,,,,,,,,769,,,,,{ bonus bMatk,10; .@val = 5; if (getrefine() >= 9) { .@val += 5; } bonus2 bMagicAtkEle,Ele_Holy,.@val; },{},{}
+27310,Plaga_Card,Plaga Card,6,20,,10,,,,,,,,769,,,,,{ bonus bMatk,10; .@val = 5; if (getrefine() >= 9) { .@val += 5; } bonus2 bMagicAtkEle,Ele_Neutral,.@val; },{},{}
+27311,Mutant_Plaga_Card,Mutant Plaga Card,6,20,,10,,,,,,,,2,,,,,{ if (getiteminfo(getequipid(EQI_COMPOUND_ON),11) == W_KNUCKLE) { .@r = getrefine(); bonus bHit,20; bonus bBaseAtk,15; if (.@r >= 10) { .@val = 15; } bonus2 bAddSize,Size_Large,(.@r+.@val); } },{},{}
+27312,Dolor_Card,Dolor Card,6,20,,10,,,,,,,,136,,,,,{ bonus2 bAddRace,RC_Demon,5; },{},{}
+27313,Mutant_Dolor_Card,Mutant Dolor Card,6,20,,10,,,,,,,,2,,,,,{ if (getiteminfo(getequipid(EQI_COMPOUND_ON),11) == W_KATAR) { .@r = getrefine(); bonus bCritical,7; bonus bBaseAtk,15; bonus bCritAtkRate,(2*.@r); if (.@r >= 10) { bonus2 bAddSize,Size_Large,15; } } },{},{}
+27314,Venenum_Card,Venenum Card,6,20,,10,,,,,,,,4,,,,,{ bonus2 bAddRace,RC_Brute,15; },{},{}
+27315,Mutant_Venenum_Card,Mutant Venenum Card,6,20,,10,,,,,,,,4,,,,,{ bonus2 bMagicAddRace,RC_Brute,15; },{},{}
+27316,Twin_Caput_Card,Twin Caput Card,6,20,,10,,,,,,,,16,,,,,{ bonus bDef,50; bonus2 bSubDefEle,Ele_Poison,10; },{},{}
+27317,Mutant_Twin_Caput_Card,Mutant Twin Caput Card,6,20,,10,,,,,,,,136,,,,,{ bonus2 bAddRace,RC_Formless,5; },{},{}
+27318,Miguel_Card,Miguel Card,6,20,,10,,,,,,,,64,,,,,{ bonus bCritAtkRate,20; bonus2 bSubRace,RC_All,-10; },{},{}
+27319,R48_85_BESTIA_Card,R48-85-BESTIA Card,6,20,,10,,,,,,,,16,,,,,{ bonus2 bAddEle,Ele_Poison,40; },{},{}
+27320,E_EA1L_card,E-EA1L card,6,20,,10,,,,,,,,2,,,,,{ .@r = getrefine(); .@val = 3; if (.@r >= 9) { .@val += 2; if (.@r >= 11) { .@val += 5; } } bonus2 bMagicAtkEle,Ele_Fire,.@val; },{},{}
 //===================================================================
 // New Katars
 //===================================================================
@@ -11599,6 +11710,8 @@
 28008,Katar_of_Vicious_Mind,Katar of Vicious Mind,5,20,,1800,180,,1,1,0x00001000,63,2,34,4,160,1,16,{ bonus bAtk,pow(min(getrefine(),15),2); },{},{}
 28010,Juliette_D._Rachel,Juliette D. Rachel,5,20,,2500,300,,1,2,0x00001000,56,2,34,4,170,1,16,{ .@r = getrefine(); bonus2 bAddClass,Class_All,(.@r/2); bonus bAspdRate,.@r; bonus bUnbreakableWeapon; },{},{}
 28011,Unity_Katar,Unity Katar,5,20,,650,123,,1,1,0x00001000,63,2,34,3,1,1,16,{ bonus bBaseAtk,pow(getrefine(),2)*125/100; },{},{}
+28022,Illusion_Infiltrator,Illusion Infiltrator,5,0,,1500,200,,1,2,0x00001000,58,2,34,4,100,1,16,{ bonus2 bAddRace,RC_DemiHuman,60; bonus2 bAddRace,RC_Player,60; bonus bDef,3; .@flee = 5; .@flee2 = 2; if (getrefine() >= 9) { .@flee += 5; .@flee2 += 2; bonus2 bAddClass,Class_All,5; } bonus bFlee,.@flee; bonus bFlee2,.@flee2; },{},{}
+28023,Illusion_Sharpened_Legbone_of_Ghoul,Illusion Sharpened Legbone of Ghoul,5,0,,1700,220,,1,2,0x00001000,58,2,34,3,100,1,16,{ autobonus "{ bonus bDefEle,Ele_Undead; sc_start SC_ENDURE,6000,1; }",40,6000,BF_WEAPON|BF_SHORT,"{ active_transform 1036,6000; }"; },{},{}
 //===================================================================
 // New Axes
 //===================================================================
@@ -11619,6 +11732,7 @@
 28202,Southern_Cross_R_,Southern Cross,5,2800000,,2000,480,,9,1,0x40000000,63,2,34,4,141,1,21,{ bonus3 bAutoSpell,"GC_CROSSIMPACT",1,50; },{},{}
 28203,Half_BF_Rifle1,Half BF Rifle1,5,0,,0,50,,9,0,0x41000000,63,2,34,3,80,1,18,{ bonus bDex,2; bonus bHit,8; bonus bCritical,8; bonus2 bAddRace,RC_DemiHuman,30; bonus2 bAddRace,RC_Player,30; bonus2 bVariableCastrate,"GS_TRACKING",-20; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,10; bonus2 bIgnoreDefRaceRate,RC_Player,10; bonus bUnbreakableWeapon; },{},{}
 28204,Half_BF_Shotgun1,Half BF Shotgun1,5,0,,0,100,,9,0,0x41000000,63,2,34,3,80,1,20,{ bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiHuman,30; bonus2 bAddRace,RC_Player,30; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,10; bonus2 bIgnoreDefRaceRate,RC_Player,10; autobonus "{ bonus bBaseAtk,80; bonus2 bHPLossRate,100,1000; }",30,6000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon; },{},{}
+28244,Illusion_Gate_Keeper_DD,Illusion Gate Keeper DD,5,0,,1300,240,,9,2,0x40000000,63,2,34,4,120,1,20,{ .@r = getrefine(); bonus bDex,1; bonus bSplashRange,1; .@val = 5*(.@r/2); if (.@r >= 7) { bonus bAspdRate,15; if (.@r >= 9) { .@val += 5; if (.@r >= 11) { bonus5 bAutoSpell,"GS_SPREADATTACK",max(6,getskilllv("GS_SPREADATTACK")),50,BF_LONG|BF_WEAPON,1; } } } bonus bLongAtkRate,.@val; },{},{}
 //===================================================================
 // New Accessories
 //===================================================================
@@ -11699,6 +11813,9 @@
 28472,Para_Team_Agi_Necklace160,Awakened Eden Group Necklace of Agility V,4,0,,0,,0,,0,0xFFFFFFFF,63,2,136,,160,,,{ bonus bDex,4; skill "AL_TELEPORT",1; },{},{}
 28483,Royal_Guardian_Ring,Royal Guardian Ring,4,0,,10,,1,,1,0xFFFFFFFF,63,2,136,,99,,,{ .@b = min(BaseLevel/25,7); bonus bMaxHPrate,.@b; bonus bMaxSPrate,.@b; },{},{}
 28499,Proof_of_Glory,Proof of Glory,4,0,,100,,0,,0,0xFFFFFFFF,63,2,136,,100,,,{ bonus bAllStats,1; bonus2 bAddRace,RC_All,2; bonus2 bMagicAddRace,RC_All,2; if(BaseLevel>=150) { bonus bAllStats,1; bonus2 bAddRace,RC_All,2; bonus2 bMagicAddRace,RC_All,2; } },{},{}
+28508,Illusion_Skull_Ring,Illusion Skull Ring,4,0,,100,,0,,1,0xFFFFFFFF,63,2,8,,100,0,0,{ bonus3 bAddEff,Eff_Curse,5000,ATF_SELF|ATF_TARGET|ATF_SHORT|ATF_WEAPON; },{},{}
+28509,Illusion_Ring,Illusion Ring,4,0,,200,,0,,1,0xFFFFFFFE,63,2,136,,100,0,0,{ bonus bStr,3; if (readparam(bStr) >= 100) { bonus bBaseAtk,30; } },{},{}
+28510,A_Vampire's_Servant,A Vampire's Servant,4,0,,100,,1,,1,0xFFFFFFFF,63,2,8,,100,0,,{ bonus2 bSPDrainRate,1000,1; },{},{}
 28551,Imperial_Glove,Imperial Glove,4,20,,400,,0,,1,0xFFFFFFFF,63,2,136,,100,0,0,{ bonus2 bAddClass,Class_All,5; bonus bVariableCastrate,-10; bonus bNoCastCancel; },{},{}
 //===================================================================
 // More books
@@ -11709,6 +11826,8 @@
 28604,Crimson_Bible,Crimson Bible,5,20,,450,45,,1,2,0x00410100,63,2,2,3,70,1,15,{ .@r = getrefine(); bonus bBaseAtk,((BaseLevel/10)*5)+(.@r<=15?pow(.@r,2):225); bonus bMatk,(.@r<=15?(pow(.@r,2)/2):225); },{},{}
 28605,Book_of_Vicious_Mind,Book of Vicious Mind,5,20,,950,95,,1,1,0x00010100,63,2,2,4,160,1,15,{ bonus bAtk,pow(min(getrefine(),15),2); bonus bMatk,pow(min(getrefine(),15),2); bonus bUnbreakableWeapon; },{},{}
 28606,Unity_Bible,Unity Bible,5,20,,220,42,,1,1,0x00410100,63,2,2,3,1,1,15,{ bonus bBaseAtk,pow(getrefine(),2)*125/100; },{},{}
+28612,Illusion_Apocalypse,Illusion Apocalypse,5,0,,800,170,,1,2,0x00410100,63,2,2,4,100,1,15,{ .@val = 10 + 10*(min(getrefine(),10)/3); bonus2 bAddEle,Ele_Water,.@val; bonus2 bAddEle,Ele_Earth,.@val; bonus2 bAddEle,Ele_Fire,.@val; bonus2 bAddEle,Ele_Wind,.@val; bonus2 bSubDefEle,Ele_Holy,-30; },{},{}
+28626,Illusion_Tablet,Illusion Tablet,5,0,,800,170,,1,2,0x00410100,63,2,2,4,100,1,15,{ .@val = 10 + 10*(min(getrefine(),10)/3); bonus2 bAddEle,Ele_Dark,.@val; bonus2 bAddEle,Ele_Undead,.@val; bonus2 bAddEle,Ele_Poison,.@val; bonus2 bAddEle,Ele_Ghost,.@val; bonus2 bSubDefEle,Ele_Dark,-30; },{},{}
 //===================================================================
 // More daggers
 //===================================================================
@@ -11718,6 +11837,8 @@
 28703,Infinity_Dagger,Infinity Dagger,5,10,,500,125:100,,1,1,0x028F5EEF,56,2,2,4,100,1,1,{},{},{}
 28705,Crimson_Dagger,Crimson Dagger,5,20,,550,55,,1,2,0x028F5EEF,63,2,2,3,70,1,1,{ .@r = getrefine(); bonus bBaseAtk,((BaseLevel/10)*5)+(.@r<=15?pow(.@r,2):225); bonus bMatk,(.@r<=15?(pow(.@r,2)/2):225); },{},{}
 28706,Dagger_of_Vicious_Mind,Dagger of Vicious Mind,5,20,,1050,105:50,,1,1,0x028F5EEF,63,2,2,4,160,1,1,{ bonus bAtk,pow(min(getrefine(),15),2); bonus bMatk,pow(min(getrefine(),15),2)/2; },{},{}
+28725,Illusion_Moonlight_Dagger,Illusion Moonlight Dagger,5,20,,700,150,,1,1,0x028F5EEE,63,2,2,4,99,1,1,{ bonus bMaxSPrate,10; .@val = 3; if (getrefine() >= 10) { .@val += 4; } bonus bSPDrainValue,.@val; },{},{}
+28745,Illusion_Counter_Dagger,Illusion Counter Dagger,5,0,,900,170,,1,2,0x00810204,63,2,2,4,120,0,1,{ .@r = getrefine(); bonus bCritical,90; bonus bCritAtkRate,(3*(.@r/2)); if (.@r >= 7) { bonus2 bAddClass,Class_All,5; if (.@r >= 9) { bonus2 bAddSize,Size_All,20; if (.@r >= 11) { bonus2 bAddEle,Ele_All,20; } } } },{},{}
 //===================================================================
 // More shields
 //===================================================================
@@ -11736,6 +11857,7 @@
 28915,Bunker_Shield,Bunker Shield,4,20,,3500,,90,,1,0xFFFFFFFF,63,2,32,,50,1,1,{ .@r = getrefine(); if(.@r >= 5) { .@dmg = .@r - 4; } bonus2 bAddClass,Class_All,(4+.@dmg); bonus bAspdRate,-5; },{},{}
 28916,Gaia_Shield,Gaia Shield,4,20,,2000,,150,,1,0xFFFFFFFF,63,2,32,,90,1,1,{ bonus bMdef,10; bonus2 bSubEle,Ele_Earth,10; bonus2 bAddEle,Ele_Earth,5; bonus2 bMagicAddEle,Ele_Earth,5; .@r = getrefine(); if(.@r>=6) { bonus2 bSubEle,Ele_Earth,15; bonus2 bAddEle,Ele_Earth,10; bonus2 bMagicAddEle,Ele_Earth,10; } if(.@r>=8) { if(readparam(bStr)>=90) { bonus bBaseAtk,50; } if(readparam(bAgi)>=90) { bonus bAspdRate,5; } if(readparam(bVit)>=90) { bonus bHealPower2,10; bonus bAddItemHealRate,10; } if(readparam(bInt)>=90) { bonus bMatk,30; } if(readparam(bDex)>=90) { bonus bVariableCastrate,-5; } if(readparam(bLuk)>=90) { bonus bCritAtkRate,5; } } },{},{}
 28920,Diamond_Shield,Diamond Shield,4,20,,1000,,50,,0,0xFFFFFFFF,63,2,32,,100,1,1,{ .@r = getrefine(); if(BaseLevel>=150) { bonus bDef,100+(20*(.@r/3)); } },{},{}
+28922,Illusion_Sacred_Mission,Illusion Sacred Mission,4,0,,1600,,190,,1,0x00004000,56,2,32,,120,1,4,{ bonus bVit,3; bonus bInt,2; bonus bMdef,3; bonus bUnbreakableShield; bonus2 bSkillAtk,"LG_EARTHDRIVE",(7*getrefine()); },{},{}
 //===================================================================
 // Enchantment stones
 //===================================================================
@@ -12216,3 +12338,5 @@
 31475,C_Black_Fox_Ear_Ribbon,C Black Fox Ears Ribbon,4,0,,0,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,1726,{},{},{}
 31476,C_Cherry_Blossom_Hat_YL,C Yellow Cherry Blossom Hat,4,0,,0,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,1727,{},{},{}
 31478,C_Eleanor_Wig_,C Eleanors Wig Lower,4,0,,0,,0,,0,0xFFFFFFFF,63,2,4096,,1,0,1502,{},{},{}
+//
+32005,Illusion_Pole_Axe,Illusion Pole Axe,5,0,,1500,190,,3,2,0x00004082,63,2,2,4,120,1,4,{ .@r = getrefine(); bonus bStr,3; bonus bInt,2; bonus bDex,2; if (.@r >= 13) { .@val = -2000; } else if (.@r >= 9) { .@val = -1000; } bonus2 bSkillCooldown,"RK_HUNDREDSPEAR",.@val; },{},{}

+ 3 - 0
db/re/item_misc.txt

@@ -1400,3 +1400,6 @@ IG_PrizeOfHero,15098,1		// Hero_Taget_Suits
 IG_PrizeOfHero,22035,2		// Vet_Nepen_Heel
 IG_PrizeOfHero,22036,2		// Vet_SliverFox_Boots
 IG_PrizeOfHero,22037,2		// Vet_Ungo_Boots
+// Private Airship items
+IG_PRIVATE_AIRSHIP,6909,1 // Actinidia_Cat_Fruit
+IG_PRIVATE_AIRSHIP,25464,1 // World_Moving_Rights

+ 1 - 0
db/re/item_trade.txt

@@ -3848,6 +3848,7 @@
 22873,475,100	// Sealed_Beelzebub_Scroll_II
 22874,475,100	// Sealed_Beelzebub_Card_Album
 22875,475,100	// Sealed_Beelzebub_Card
+23280,499,100	// N_Fly_Wing_
 22881,499,100	// Rope_Gallows
 22883,475,100	// September_Gift_Box
 22884,475,100	// October_Gift_Box

+ 56 - 17
db/re/mob_db.txt

@@ -1177,13 +1177,13 @@
 2067,E_ANOPHELES_,Anopheles,Anopheles,3,500,1,1,1,1,40,58,8,100,1,100,1,1,100,1,10,12,0,4,64,0x6200000,170,1084,2304,576,0,0,0,0,0,0,0,601,1000,702,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1
 
 // Brasilis
-2068,BOITATA,Boitata,Boitata,93,1283990,1,74288,77950,2,1060,2022,32,66,140,99,30,109,100,90,10,12,2,2,63,0x6283695,200,1152,1152,576,37144,617,5500,617,5000,616,2000,7444,5000,1377,100,1422,100,607,500,985,1000,984,1000,1471,100,0,0,0,0,0,0
-2069,IARA,Iara,Iara,79,5890,1,1070,890,1,171,270,0,76,69,14,41,60,69,20,10,12,1,5,61,0x91,200,384,672,288,0,0,0,0,0,0,0,995,5,950,9000,951,500,748,50,747,100,710,10,2334,1,0,0,0,0,0,0
-2070,PIRANHA,Piranha,Piranha,75,4522,1,899,1023,1,182,223,7,12,69,45,30,30,66,35,10,12,2,5,61,0x3885,200,768,480,864,0,0,0,0,0,0,0,956,600,995,5,963,9000,1053,500,1054,500,13027,1,1249,5,0,0,0,0,0,0
-2071,HEADLESS_MULE,Headless Mule,Headless Mule,80,6620,1,1011,1120,1,210,267,33,44,68,51,50,35,67,20,10,12,2,6,63,0x2003885,165,1216,816,432,0,0,0,0,0,0,0,7120,4000,2317,5,7097,1000,7122,1000,1269,1,2317,1,0,0,0,0,0,0,0,0
-2072,JAGUAR,Jaguar,Jaguar,71,3914,1,720,512,1,192,234,44,15,69,30,45,5,59,5,10,12,1,2,42,0x91,150,576,1248,480,0,0,0,0,0,0,0,7171,3000,7172,2000,919,1000,756,40,0,0,0,0,0,0,0,0,0,0,0,0
-2073,TOUCAN,Toucan,Toucan,70,3640,1,659,544,1,166,201,12,12,54,14,40,35,44,10,10,12,1,2,44,0x1089,155,960,1440,960,0,0,0,0,0,0,0,917,3000,7053,1000,510,50,508,100,2612,200,0,0,0,0,0,0,0,0,0,0
-2074,CURUPIRA,Curupira,Curupira,68,3096,1,622,450,1,140,175,42,12,32,23,38,20,45,10,10,12,1,7,22,0x108B,250,528,480,384,0,0,0,0,0,0,0,517,3000,757,250,1011,10,7267,500,1505,100,0,0,0,0,0,0,0,0,0,0
+2068,BOITATA,Boitata,Boitata,93,1283990,1,74288,77950,2,1060,2022,32,66,140,99,30,109,100,90,10,12,2,2,63,0x6283695,200,1152,1152,576,37144,617,5500,617,5000,616,2000,7444,5000,1377,100,1422,100,607,500,985,1000,984,1000,1471,100,0,0,0,0,27126,1
+2069,IARA,Iara,Iara,79,5890,1,1070,890,1,171,270,0,76,69,14,41,60,69,20,10,12,1,5,61,0x91,200,384,672,288,0,0,0,0,0,0,0,995,5,950,9000,951,500,748,50,747,100,710,10,2334,1,0,0,0,0,27120,1
+2070,PIRANHA,Piranha,Piranha,75,4522,1,899,1023,1,182,223,7,12,69,45,30,30,66,35,10,12,2,5,61,0x3885,200,768,480,864,0,0,0,0,0,0,0,956,600,995,5,963,9000,1053,500,1054,500,13027,1,1249,5,0,0,0,0,27121,1
+2071,HEADLESS_MULE,Headless Mule,Headless Mule,80,6620,1,1011,1120,1,210,267,33,44,68,51,50,35,67,20,10,12,2,6,63,0x2003885,165,1216,816,432,0,0,0,0,0,0,0,7120,4000,2317,5,7097,1000,7122,1000,1269,1,2317,1,0,0,0,0,0,0,27125,1
+2072,JAGUAR,Jaguar,Jaguar,71,3914,1,720,512,1,192,234,44,15,69,30,45,5,59,5,10,12,1,2,42,0x91,150,576,1248,480,0,0,0,0,0,0,0,7171,3000,7172,2000,919,1000,756,40,0,0,0,0,0,0,0,0,0,0,27124,1
+2073,TOUCAN,Toucan,Toucan,70,3640,1,659,544,1,166,201,12,12,54,14,40,35,44,10,10,12,1,2,44,0x1089,155,960,1440,960,0,0,0,0,0,0,0,917,3000,7053,1000,510,50,508,100,2612,200,0,0,0,0,0,0,0,0,27123,1
+2074,CURUPIRA,Curupira,Curupira,68,3096,1,622,450,1,140,175,42,12,32,23,38,20,45,10,10,12,1,7,22,0x108B,250,528,480,384,0,0,0,0,0,0,0,517,3000,757,250,1011,10,7267,500,1505,100,0,0,0,0,0,0,0,0,27122,1
 
 // Event MVP
 2075,E_VADON_X,Ragunta,Ragunta,150,25000000,0,9999999,9999999,1,7000,10000,500,500,100,100,100,100,100,100,10,12,2,5,88,0x6283695,150,1632,432,540,4999999,0,0,0,0,0,0,960,5000,7095,3000,7093,3000,984,1000,985,500,7444,50,617,10,0,0,0,0,6414,9000
@@ -1866,7 +1866,7 @@
 2706,C3_PLASMA_Y,Plasma Ringleader,Plasma Ringleader,119,103000,1,6860,25935,1,1086,1499,130,45,141,94,75,91,144,50,10,12,0,0,88,0x3885,150,1056,1056,336,0,0,0,0,0,0,0,911,100,644,10,731,2,715,100,969,1,7938,300,0,0,0,0,0,0,4389,1
 2707,C4_PLANKTON,Furious Plankton,Furious Plankton,40,6160,1,835,2805,1,135,171,28,28,23,68,25,55,35,14,10,12,0,3,61,0x81,400,2208,1008,324,0,0,0,0,0,0,0,1052,9000,910,300,938,700,970,4,601,1000,630,20,645,50,0,0,0,0,4024,1
 2708,C5_PITMAN,Elusive Pitman,Elusive Pitman,90,36040,1,3875,11895,1,360,456,104,48,78,56,45,35,60,30,10,12,2,1,42,0x91,180,960,336,300,0,0,0,0,0,0,0,7318,3000,7319,500,6244,900,999,500,1003,100,1041,1000,7327,80,0,0,0,0,4335,1
-2709,C1_PIRANHA,Swift Piranha,Swift Piranha,75,22610,1,2470,7665,1,336,432,7,12,69,45,30,30,79,35,10,12,2,5,61,0x3885,200,768,480,864,0,0,0,0,0,0,0,956,600,995,5,963,9000,1053,500,1054,500,13027,1,1249,5,0,0,0,0,0,0
+2709,C1_PIRANHA,Swift Piranha,Swift Piranha,75,22610,1,2470,7665,1,336,432,7,12,69,45,30,30,79,35,10,12,2,5,61,0x3885,200,768,480,864,0,0,0,0,0,0,0,956,600,995,5,963,9000,1053,500,1054,500,13027,1,1249,5,0,0,0,0,27121,1
 2710,C2_PINGUICULA_D,Solid Dark Pinguicula,Solid Dark Pinguicula,113,170020,1,6825,21750,1,634,851,59,35,89,55,55,95,92,12,10,12,1,3,45,0x308D,290,1426,600,360,0,0,0,0,0,0,0,7100,5000,7198,2000,7188,3000,972,10,6086,1000,7939,1500,2148,10,0,0,0,0,4468,1
 2711,C3_PINGUICULA,Pinguicula Ringleader,Pinguicula Ringleader,105,65290,1,7300,23955,1,696,958,46,77,67,60,64,107,77,34,10,12,1,3,62,0x308D,200,700,600,360,0,0,0,0,0,0,0,2745,1,1980,10,2270,10,7100,5000,7198,2000,7188,3000,7939,500,0,0,0,0,4476,1
 2712,C4_PICKY_,Furious Picky,Furious Picky,10,445,1,180,405,1,41,49,48,10,15,10,8,5,9,3,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,9000,949,700,5015,10,507,600,519,300,601,50,10012,10,0,0,0,0,4011,1
@@ -1952,7 +1952,7 @@
 2792,C4_INJUSTICE,Furious Injustice,Furious Injustice,95,39760,1,4720,14970,1,600,815,76,31,77,76,58,65,88,50,10,12,1,1,47,0x3695,400,770,720,336,0,0,0,0,0,0,0,999,300,7054,5335,7053,3500,2313,5,2316,2,660,2,0,0,0,0,0,0,4268,1
 2793,C5_INCREASE_SOIL,Elusive Mi Gao,Elusive Mi Gao,83,26675,1,3300,11460,1,500,675,112,39,67,23,41,49,94,30,10,12,1,0,62,0x91,445,106,1056,576,0,0,0,0,0,0,0,7264,4365,7004,2300,997,10,969,2,0,0,0,0,0,0,0,0,0,0,4231,1
 2794,C1_ICE_TITAN,Swift Ice Titan,Swift Ice Titan,110,104100,1,8170,23790,1,1287,1809,344,11,133,54,78,33,94,26,10,12,2,0,61,0x3885,250,861,660,144,0,0,0,0,0,0,0,7561,5000,7066,3000,749,100,984,10,13314,30,6253,500,995,100,0,0,0,0,4417,1
-2795,C2_IARA,Solid Iara,Solid Iara,79,58900,1,2940,6675,1,328,418,0,76,69,14,41,60,83,20,10,12,1,5,61,0x91,200,384,672,288,0,0,0,0,0,0,0,995,5,950,9000,951,500,748,50,747,100,710,10,2334,1,0,0,0,0,0,0
+2795,C2_IARA,Solid Iara,Solid Iara,79,58900,1,2940,6675,1,328,418,0,76,69,14,41,60,83,20,10,12,1,5,61,0x91,200,384,672,288,0,0,0,0,0,0,0,995,5,950,9000,951,500,748,50,747,100,710,10,2334,1,0,0,0,0,27120,1
 2796,C3_HYEGUN,Yao Jun Ringleader,Yao Jun Ringleader,87,34980,1,3525,10830,1,416,546,84,43,69,38,40,20,82,20,10,12,1,1,49,0x3885,180,890,1320,720,0,0,0,0,0,0,0,7054,3880,609,100,985,10,2406,1,7277,300,15013,10,0,0,0,0,0,0,4328,1
 2797,C4_HUNTER_FLY,Furious Hunter Fly,Furious Hunter Fly,63,10250,1,1585,5100,1,311,419,46,20,32,93,22,25,100,15,10,12,0,4,44,0x2003885,150,676,576,480,0,0,0,0,0,0,0,996,30,999,100,943,5335,912,1300,756,129,2259,1,1226,2,0,0,0,0,4115,1
 2798,C5_HORNET,Elusive Hornet,Elusive Hornet,11,450,1,200,450,1,35,41,7,1,12,24,4,5,6,5,10,12,0,4,24,0x2001081,150,1292,792,216,0,0,0,0,0,0,0,992,80,939,9000,909,3500,1208,15,511,350,518,150,0,0,0,0,0,0,4019,1
@@ -2282,7 +2282,7 @@
 //3122,CHARLESTON1
 //3123,CHARLESTON2
 //3124,CHARLESTON3
-3125,STEP,Step,Step,130,55403,0,3088,2392,1,871,1566,101,58,117,127,55,61,116,60,10,12,0,6,22,0x2000000,250,0,780,0,0,0,0,0,0,0,0,6751,1000,998,150,13213,400,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+3125,STEP,Step,Step,130,55403,0,3088,2392,1,871,1566,101,58,117,127,55,61,116,60,10,12,0,6,22,0x2000000,250,0,780,0,0,0,0,0,0,0,0,6751,1000,998,150,13213,400,0,0,0,0,0,0,0,0,0,0,0,0,4698,1
 //3126,ROCK_STEP
 //3127,KICK_STEP
 //3128,KICK_AND_KICK
@@ -2348,12 +2348,12 @@
 //3188,E2_FELOCK
 //3189,WOLF_MOON
 3190,MM_SARAH,Sarah,Sarah Irene,160,100000000,1,0,0,12,1090,2755,276,255,43,161,6,188,225,136,10,12,0,0,20,0x87700A4,2000,500,500,0,0,0,0,0,0,0,0,15121,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4610,1
-3191,MM_M_GIGAN1,Gigantes,Gigantes,160,6653400,1,0,1,2,4635,4755,64,112,156,151,30,62,265,21,10,12,1,6,47,0x62D3885,250,500,500,600,0,0,0,0,0,0,0,15121,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-3192,MM_M_GIGAN2,Gigantes,Gigantes,160,9870000,1,0,0,2,5128,5217,89,175,212,138,43,21,227,15,10,12,1,6,47,0x62A3885,250,500,500,600,0,0,0,0,0,0,0,15121,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-3193,MM_M_GIGAN3,Ancient Medium Gigantes,Ancient Medium Gigantes,160,1126300,1,0,0,2,3967,4132,113,155,121,125,45,35,271,15,10,12,1,6,47,0x6283885,300,500,500,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-3194,MM_L_GIGAN1,Large Gigantes,Large Gigantes,160,2482000,1,0,0,2,4172,4254,55,177,135,135,12,72,220,91,10,12,2,6,47,0x62D3885,200,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-3195,MM_L_GIGAN2,Large Gigantes,Large Gigantes,160,2784175,1,0,0,2,3641,3757,71,140,102,119,18,45,275,71,10,12,2,6,47,0x62A3885,200,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-3196,MM_L_GIGAN3,Ancient Gigantes,Ancient Gigantes,160,12063464,1,0,0,2,8957,9018,48,190,203,141,1,66,355,103,10,12,2,6,47,0x6283885,330,800,800,500,0,0,0,0,0,0,0,6803,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+3191,MM_M_GIGAN1,Gigantes,Gigantes,160,6653400,1,0,1,2,4635,4755,64,112,156,151,30,62,265,21,10,12,1,6,47,0x62D3885,250,500,500,600,0,0,0,0,0,0,0,15121,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27183,1
+3192,MM_M_GIGAN2,Gigantes,Gigantes,160,9870000,1,0,0,2,5128,5217,89,175,212,138,43,21,227,15,10,12,1,6,47,0x62A3885,250,500,500,600,0,0,0,0,0,0,0,15121,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27183,1
+3193,MM_M_GIGAN3,Ancient Medium Gigantes,Ancient Medium Gigantes,160,1126300,1,0,0,2,3967,4132,113,155,121,125,45,35,271,15,10,12,1,6,47,0x6283885,300,500,500,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27183,1
+3194,MM_L_GIGAN1,Large Gigantes,Large Gigantes,160,2482000,1,0,0,2,4172,4254,55,177,135,135,12,72,220,91,10,12,2,6,47,0x62D3885,200,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27183,1
+3195,MM_L_GIGAN2,Large Gigantes,Large Gigantes,160,2784175,1,0,0,2,3641,3757,71,140,102,119,18,45,275,71,10,12,2,6,47,0x62A3885,200,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27183,1
+3196,MM_L_GIGAN3,Ancient Gigantes,Ancient Gigantes,160,12063464,1,0,0,2,8957,9018,48,190,203,141,1,66,355,103,10,12,2,6,47,0x6283885,330,800,800,500,0,0,0,0,0,0,0,6803,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27183,1
 3197,MM_M_GARGOYLE,Gargoyle,Mutant Gargoyle,150,256780,1,0,0,9,712,801,124,43,147,110,66,57,191,70,10,12,1,6,64,0x2002085,200,1020,720,384,0,0,0,0,0,0,0,912,1940,1039,250,1746,3,0,0,2619,1,1769,1000,757,119,0,0,0,0,0,0
 3198,MM_M_GALION,Galion,Mutant Galion,150,293165,1,0,0,1,801,878,166,71,133,142,71,45,166,45,10,12,1,2,44,0x020108F,150,864,624,360,0,0,0,0,0,0,0,7564,1500,919,1500,996,5,2531,3,0,0,0,0,0,0,0,0,0,0,0,0
 3199,MM_M_MUTANT_DRAGON,Mutant Dragon,Wicked Mutant Dragon,150,324891,1,0,0,4,1176,1274,185,86,175,161,66,68,201,35,10,12,2,9,43,0x0203695,250,1280,1080,240,0,0,0,0,0,0,0,7054,2425,1035,250,1036,250,930,250,1559,50,7296,750,2527,25,0,0,0,0,0,0
@@ -3511,8 +3511,47 @@
 //20380,FLAME_GHOST_H
 //20381,EP17_1_R4885_BESTIA
 //20382,G_TWIN_CAPUT2
-
+//20383,E_WICKED_NYMPH
+//20384,E_WICKED_NYMPH_BOSS
+//20385,MD_GH_KING_SCHMIDT
+//20386,MD_GH_KING_SCHMIDT_N
+//20387,MD_GH_KING_SCHMIDT_H
+//20388,MD_GH_KHALITZBURG
+//20389,MD_GH_KHALITZBURG_H
+//20390,MD_GH_WHITEKNIGHT
+//20391,MD_GH_WHITEKNIGHT_H
+//20392,MD_GH_ALICE_G
+//20393,MD_GH_ROOT_G
+//20394,MD_GH_BLOODY_KNIGHT
+
+//20396,PORING_Z
+//20397,SAVAGE_BABE_Z
+//20398,CREAMY_Z
+//20399,POPORING_Z
+//20400,GOBLIN_Z
+//20401,FABRE_Z
+//20402,SPORE_Z
+//20403,STAINER_Z
+//20404,HORN_Z
+//20405,ELDER_WILOW_Z
+//20406,DROPS_Z
+//20407,DESERT_WOLF_B_Z
+//20408,PECOPECO_Z
+//20409,WOLF_Z
+//20410,PIERE_Z
+//20411,ALLIGATOR_Z
+//20412,GREEN_IGUANA_Z
+//20413,CHONCHON_Z
+//20414,THIEF_BUG_Z
+//20415,ORC_LADY_Z
+//20416,CARAMEL_Z
+//20417,YOYO_Z
+//20418,ARGOS_Z
 //20419,MUSPELLSKOLL_H
 //20420,WANDER_MAN_H
 //20421,BRINARANEA_H
 //20422,DARK_LORD_H
+//20423,BACSOJIN2
+//20424,MOONLIGHT2
+//20425,PHREEONI2
+//20426,MD_MANHOLE3

+ 4 - 0
db/re/skill_cast_db.txt

@@ -1201,6 +1201,10 @@
 2057,4000,0,0,20000:30000:40000:50000:60000,0,15000,-1
 //-- AB_OFFERTORIUM
 5011,5000:4000:3000:2000:1000,500,0,90000,0,0,-1
+//-- AB_VITUPERATUM
+5072,1000,1000,0,600000,0,5000,3000:2500:2000:1500:1000
+//-- AB_CONVENIO
+5073,2000,1000,0,0,0,5000,2000
 //==========================================
 
 //===== Warlock ============================

+ 11 - 11
db/re/skill_db.txt

@@ -230,8 +230,8 @@
 119,3,6,2,0,0x3,2,5,1,no,0,0x80,0,misc,0,0x3000,	HT_SANDMAN,Sandman
 120,3,6,2,0,0x3,1,5,1,no,0,0x80,0,misc,0,0x3000,	HT_FLASHER,Flasher
 121,3,6,2,1,0x42,1,5,1,no,0,0x80,0,weapon,0,0x3800,	HT_FREEZINGTRAP,Freezing Trap
-122,3,6,2,4,0xC2,1,5,1,no,0,0x80,0,misc,0,0x3800,	HT_BLASTMINE,Blast Mine
-123,3,6,2,3,0xC2,2,5,1,no,0,0x40080,0,misc,0,0x3800,	HT_CLAYMORETRAP,Claymore Trap
+122,3,6,2,4,0xC6,1,5,1,no,0,0x80,0,misc,0,0x3800,	HT_BLASTMINE,Blast Mine
+123,3,6,2,3,0xC6,2,5,1,no,0,0x40080,0,misc,0,0x3800,	HT_CLAYMORETRAP,Claymore Trap
 124,2,6,32,0,0x1,0,1,1,no,0,0x40000,0,misc,0,0x0,		HT_REMOVETRAP,Remove Trap
 125,3,6,2,0,0x1,0,1,1,no,0,0x80,0,misc,0,0x2000,		HT_TALKIEBOX,Talkie Box
 126,0,0,0,0,0,0,10,0,no,0,0,0,weapon,0,0x0,		HT_BEASTBANE,Beast Bane
@@ -1005,7 +1005,7 @@
 // AB Arch Bishop
 2038,11,8,1,6,0x2,1,5,-3,yes,0,0,0,magic,0,0x0,	AB_JUDEX,Judex
 2039,0,6,4,0,0x1,0,1,1,yes,0,0,0,magic,0,0x0,	AB_ANCILLA,Ancilla
-2040,11,8,1,6,0,0,10,-10,yes,0,0,0,magic,0,0x0,	AB_ADORAMUS,Adoramus
+2040,11,8,1,6,0x2,1:1:1:1:1:1:2:2:2:2,10,-10,yes,0,0,0,magic,0,0x0,	AB_ADORAMUS,Adoramus
 2041,0,6,4,0,0x3,3:7:15,3,1,yes,0,0,0,magic,0,0x0,	AB_CLEMENTIA,Crementia
 2042,0,6,4,0,0x3,3:7:15,3,1,yes,0,0,0,magic,0,0x0,	AB_CANTO,Canto Candidus
 2043,0,6,4,6,0x3,3:7:15,3,1,yes,0,0,0,magic,0,0x0,	AB_CHEAL,Coluceo Heal
@@ -1014,15 +1014,15 @@
 2046,0,6,4,6,0x3,15,10,1,yes,0,0,0,magic,0,0x0,	AB_ORATIO,Oratio
 2047,0,6,4,6,0x3,15,4,1,yes,0,0,0,magic,0,0x0,	AB_LAUDAAGNUS,Lauda Agnus
 2048,0,6,4,6,0x3,15,4,1,yes,0,0,0,magic,0,0x0,	AB_LAUDARAMUS,Lauda Ramus
-2049,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0,		AB_EUCHARISTICA,Eucharistica
-2050,11,6,16,6,0x1,0,1,1,yes,0,0,0,magic,0,0x0,	AB_RENOVATIO,Renovatio
-2051,11,6,16,6,0x21,0,5,1,yes,0,0,0,magic,0,0x0,	AB_HIGHNESSHEAL,Highness Heal //CHECK Info shows this has magic attack.
+2049,0,0,0,0,0,0,0,0,no,0,0,0,none,0,0x0,		AB_EUCHARISTICA,Eucharistica // Removed on kRO
+2050,11,6,4,6,0x1,15,1,1,yes,0,0,0,magic,0,0x0,	AB_RENOVATIO,Renovatio
+2051,11,6,16,6,0x21,0,5,1,yes,0,0,0,magic,0,0x0,	AB_HIGHNESSHEAL,Highness Heal
 2052,11,6,1,0,0x1,0,5,1,yes,0,0x400,0,magic,0,0x10020,	AB_CLEARANCE,Clearance
-2053,11,6,16,0,0x1,0,5,1,yes,0,0,0,magic,0,0x0,	AB_EXPIATIO,Expiatio //CHECK Does this also give the buff to party members?
-2054,0,6,4,6,0x1,0,10,1,yes,0,0,0,none,0,0x0,	AB_DUPLELIGHT,Duple Light //CHECK Had issues adding a skill level check to make the % go higher with the skills level. Will do later.
+2053,11,6,16,0,0x1,0,5,1,yes,0,0,0,magic,0,0x0,	AB_EXPIATIO,Expiatio
+2054,0,6,4,6,0x1,0,10,1,yes,0,0,0,none,0,0x0,	AB_DUPLELIGHT,Duple Light
 2055,-1,6,1,-1,0,0,10,1,no,0,0,0,weapon,0,0x0,	AB_DUPLELIGHT_MELEE,Duple Light Melee
 2056,-1,6,1,0,0,0,10,1,no,0,0,0,magic,0,0x0,	AB_DUPLELIGHT_MAGIC,Duple Light Magic
-2057,0,6,4,6,0x3,4:5:6:7:8,5,1,yes,0,0,0,magic,0,0x0,	AB_SILENTIUM,Silentium //CHECk Marked magic attack as well. Hmmmm....
+2057,0,6,4,6,0x3,4:5:6:7:8,5,1,yes,0,0,0,magic,0,0x0,	AB_SILENTIUM,Silentium
 
 2515,11,6,16,0,0x1,0,5,1,yes,0,0,0,magic,0,0x0,	AB_SECRAMENT,Secrament
 
@@ -1456,8 +1456,8 @@
 5065,1,6,4,0,0x3,3,1,1,yes,0,0x4,0,none,0,0,	WE_CHEERUP,Cheer Up
 
 // New Arch Bishop Skills
-5072,11,0,1,0,0,0,5,0,yes,0,0,0,none,0,0,		AB_VITUPERATUM,Vituperatum
-5073,0,0,4,0,0,0,1,0,yes,0,0,0,none,0,0,		AB_CONVENIO,Convenio
+5072,9,6,1,0,0x3,1:1:1:2:2,5,0,yes,0,0,0,magic,0,0x0,		AB_VITUPERATUM,Vituperatum
+5073,0,6,4,0,0x1,0,1,0,yes,0,0,0,none,0,0x0,		AB_CONVENIO,Convenio
 
 //****
 // Homunculus S

+ 2 - 2
db/re/skill_require_db.txt

@@ -629,7 +629,7 @@
 //****
 // AB Arch Bishop
 2038,0,0,20:23:26:29:32,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0					//AB_JUDEX
-2039,0,0,30,0,-30,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0							//AB_ANCILLA
+2039,0,0,30,0,-10,0,99,0,0,none,0,0,717,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0							//AB_ANCILLA
 2040,0,0,22:28:34:40:46:52:58:64:70:76,0,0,0,99,0,0,none,0,0,717,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//AB_ADORAMUS
 2041,0,0,280:320:360,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0					//AB_CLEMENTIA
 2042,0,0,200:220:240,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0					//AB_CANTO
@@ -1053,7 +1053,7 @@
 5065,0,0,50,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0								//WE_CHEERUP
 
 // New Arch Bishop Skills
-5072,0,0,144:120:106:92:78,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0				//AB_VITUPERATUM##
+5072,0,0,144:120:106:92:78,0,0,0,99,0,0,none,0,0,717,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0			//AB_VITUPERATUM##
 5073,0,0,70,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0								//AB_CONVENIO##
 
 8001,0,0,13:16:19:22:25,0,0,0,99,0,0,none,0,0,545,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0				//HLIF_HEAL

+ 6 - 3
db/re/skill_tree.txt

@@ -2602,7 +2602,6 @@
 4057,2046,10,2045,5,0,0,0,0,0,0,0,0 //AB_ORATIO#Oratio#
 4057,2047,4,72,1,0,0,0,0,0,0,0,0 //AB_LAUDAAGNUS#Lauda Agnus#
 4057,2048,4,2047,2,0,0,0,0,0,0,0,0 //AB_LAUDARAMUS#Lauda Ramus#
-4057,2049,10,2044,1,2053,1,0,0,0,0,0,0 //AB_EUCHARISTICA#Eucharistica#
 4057,2050,1,2043,3,0,0,0,0,0,0,0,0 //AB_RENOVATIO#Renovatio#
 4057,2051,5,2050,1,0,0,0,0,0,0,0,0 //AB_HIGHNESSHEAL#Highness Heal#
 4057,2052,5,2048,2,0,0,0,0,0,0,0,0 //AB_CLEARANCE#Clearance#
@@ -2612,6 +2611,8 @@
 4057,2515,5,2044,1,2053,1,0,0,0,0,0,0 //AB_SECRAMENT#Secrament#
 4057,5011,5,2051,2,0,0,0,0,0,0,0,0 //AB_OFFERTORIUM#Offertorium#
 4057,5014,5,0,0,0,0,0,0,0,0,0,0 //ALL_FULL_THROTTLE#Full Throttle#
+4057,5072,5,2044,1,2053,1,0,0,0,0,0,0 //AB_VITUPERATUM#Vituperatum#
+4057,5073,1,2039,1,2046,5,0,0,0,0,0,0 //AB_CONVENIO#Convenio#
 //Mechanic (Regular)
 4058,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill#
 4058,142,1,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#First Aid#
@@ -2949,7 +2950,6 @@
 4063,2046,10,2045,5,0,0,0,0,0,0,0,0 //AB_ORATIO#Oratio#
 4063,2047,4,72,1,0,0,0,0,0,0,0,0 //AB_LAUDAAGNUS#Lauda Agnus#
 4063,2048,4,2047,2,0,0,0,0,0,0,0,0 //AB_LAUDARAMUS#Lauda Ramus#
-4063,2049,10,2044,1,2053,1,0,0,0,0,0,0 //AB_EUCHARISTICA#Eucharistica#
 4063,2050,1,2043,3,0,0,0,0,0,0,0,0 //AB_RENOVATIO#Renovatio#
 4063,2051,5,2050,1,0,0,0,0,0,0,0,0 //AB_HIGHNESSHEAL#Highness Heal#
 4063,2052,5,2048,2,0,0,0,0,0,0,0,0 //AB_CLEARANCE#Clearance#
@@ -2959,6 +2959,8 @@
 4063,2515,5,2044,1,2053,1,0,0,0,0,0,0 //AB_SECRAMENT#Secrament#
 4063,5011,5,2051,2,0,0,0,0,0,0,0,0 //AB_OFFERTORIUM#Offertorium#
 4063,5014,5,0,0,0,0,0,0,0,0,0,0 //ALL_FULL_THROTTLE#Full Throttle#
+4063,5072,5,2044,1,2053,1,0,0,0,0,0,0 //AB_VITUPERATUM#Vituperatum#
+4063,5073,1,2039,1,2046,5,0,0,0,0,0,0 //AB_CONVENIO#Convenio#
 //Mechanic (Trans)
 4064,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill#
 4064,142,1,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#First Aid#
@@ -4608,7 +4610,6 @@
 4099,2046,10,2045,5,0,0,0,0,0,0,0,0 //AB_ORATIO#Oratio#
 4099,2047,4,72,1,0,0,0,0,0,0,0,0 //AB_LAUDAAGNUS#Lauda Agnus#
 4099,2048,4,2047,2,0,0,0,0,0,0,0,0 //AB_LAUDARAMUS#Lauda Ramus#
-4099,2049,10,2044,1,2053,1,0,0,0,0,0,0 //AB_EUCHARISTICA#Eucharistica#
 4099,2050,1,2043,3,0,0,0,0,0,0,0,0 //AB_RENOVATIO#Renovatio#
 4099,2051,5,2050,1,0,0,0,0,0,0,0,0 //AB_HIGHNESSHEAL#Highness Heal#
 4099,2052,5,2048,2,0,0,0,0,0,0,0,0 //AB_CLEARANCE#Clearance#
@@ -4619,6 +4620,8 @@
 4099,5011,5,2051,2,0,0,0,0,0,0,0,0 //AB_OFFERTORIUM#Offertorium#
 4099,5014,5,0,0,0,0,0,0,0,0,0,0 //ALL_FULL_THROTTLE#Full Throttle#
 4099,5065,1,0,0,0,0,0,0,0,0,0,0 //WE_CHEERUP#Cheer Up#
+4099,5072,5,2044,1,2053,1,0,0,0,0,0,0 //AB_VITUPERATUM#Vituperatum#
+4099,5073,1,2039,1,2046,5,0,0,0,0,0,0 //AB_CONVENIO#Convenio#
 //Baby Mechanic
 4100,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill#
 4100,142,1,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#First Aid#

+ 29 - 6
doc/script_commands.txt

@@ -943,8 +943,9 @@ This special label triggers when a player kills another player. The variable
 
 OnNPCKillEvent:
 
-This special label triggers when a player kills a monster without label. The variable
-'killedrid' is set to the Class (mob ID) of the monster killed.
+This special label triggers when a player kills a monster without label.
+The variable 'killedrid' is set to the Class (mob ID) of the monster killed.
+The variable 'killedgid' is set to the ID (unique mob game ID) of the monster killed.
 
 OnPCLoadMapEvent:
 
@@ -3031,6 +3032,14 @@ If no item ID/name given, all possible items in player's inventory will be merge
 Returns true if the item in <equipment slot> is tradable.
 Returns false otherwise.
 
+---------------------------------------
+
+*identifyall({<type>{,<account_id>}});
+
+Returns the count of unidentified items in the player inventory.
+If <type> is true the command will identify all the unidentified items as well (default).
+If <type> is false the command only returns the count of unidentified items.
+
 ---------------------------------------
 //
 2,1.- End of item-related commands.
@@ -6052,8 +6061,9 @@ The only very special thing about this command is an event label, which is an
 optional parameter. This label is written like '<NPC object name>::<label name>'
 and upon the monster being killed, it will execute the script inside of the
 specified NPC object starting from the label given. The RID of the player
-attached at this execution will be the RID of the killing character. The variable
-'killedrid' is set to the Class (mob ID) of the monster killed.
+attached at this execution will be the RID of the killing character.
+The variable 'killedrid' is set to the Class (mob ID) of the monster killed.
+The variable 'killedgid' is set to the ID (unique mob game ID) of the monster killed.
 
 <size> can be:
 	Size_Small	(0)		(default)
@@ -7038,6 +7048,8 @@ The optional parameter 'zone' is used to remove the zone from restricted mapflag
 This command checks the status of a given mapflag and returns the mapflag's state.
 0 means OFF, and 1 means ON. See 'setmapflag' for a list of mapflags.
 
+For MF_RESTRICTED, the zone value of the map is returned.
+
 The optional parameter 'type' is used in the 'skill_damage' mapflag:
  SKILLDMG_MAX: if mapflag is set (default)
  SKILLDMG_PC: damage against players
@@ -8658,6 +8670,12 @@ same as NPC sprite facing directions: 0=north, 1=northwest, 2=west, etc.
 
 ---------------------------------------
 
+*checkwall "<name>";
+
+This command will return true if the wall with the given name exists, false otherwise.
+
+---------------------------------------
+
 *readbook <book id>,<page>;
 
 This command will open a book item at the specified page.
@@ -8885,8 +8903,13 @@ No Icon			: QTYPE_NONE
 ? Job Icon		: QTYPE_JOB2
 ! Event Icon	: QTYPE_EVENT
 ? Event Icon	: QTYPE_EVENT2
-Warg			: QTYPE_WARG
-Warg Face		: QTYPE_WARG2 (Only for packetver >= 20120410)
+Warg			: QTYPE_WARG (Only for packetver < 20170315)
+Warg Face		: QTYPE_WARG2 (Only for packetver >= 20120410 and < 20170315)
+Click Me		: QTYPE_CLICKME (Only for packetver >= 20170315)
+Daily Quest		: QTYPE_DAILYQUEST (Only for packetver >= 20170315)
+! Event Icon	: QTYPE_EVENT3 (Only for packetver >= 20170315)
+Job Quest		: QTYPE_JOBQUEST (Only for packetver >= 20170315)
+Jumping Poring	: QTYPE_JUMPING_PORING (Only for packetver >= 20170315)
 
 Map Mark Color, when used, creates a mark in the user's mini map on the position of the NPC,
 the available color values are:

+ 7 - 1
npc/battleground/bg_common.txt

@@ -196,7 +196,7 @@ bat_room,148,150,5	script	Teleporter#Battlefield	124,{
 			setarray .@xy[0],116,72;
 			break;
 		case 2:
-			setarray .@mapname$[0],"Morroc","moc_ruins";
+			setarray .@mapname$[0],"Morocc Ruins.","moc_ruins";
 			setarray .@xy[0],152,48;
 			break;
 		case 3:
@@ -219,6 +219,10 @@ bat_room,148,150,5	script	Teleporter#Battlefield	124,{
 			setarray .@mapname$[0],"Rachel.","rachel";
 			setarray .@xy[0],115,124;
 			break;
+		case 8:
+			setarray .@mapname$[0],"Morocc.","morocc";
+			setarray .@xy[0],156,46;
+			break;
 		}
 		mes "You will be sent back to "+.@mapname$[0]+".";
 		close2;
@@ -261,6 +265,8 @@ bat_room,148,150,5	script	Teleporter#Battlefield	124,{
 			set bat_return,6;
 		else if (.@mapname$ == "rachel")
 			set bat_return,7;
+		else if (.@mapname$ == "morocc")
+			set bat_return,8;
 		else
 			set bat_return,1;
 		warp "bat_room",154,150;

+ 4 - 2
npc/battleground/tierra/tierra01.txt

@@ -208,7 +208,8 @@ OnEnable:
 
 OnKill:
 	killmonster "bat_a01","barricade#bat_a01_a::OnMyMobDead";
-	delwall "bat_a01_c1";
+	if (checkwall("bat_a01_c1") == true)
+		delwall "bat_a01_c1";
 	end;
 
 OnMyMobDead:
@@ -230,7 +231,8 @@ OnEnable:
 
 OnKill:
 	killmonster "bat_a01","barricade#bat_a01_b::OnMyMobDead";
-	delwall "bat_a01_g1";
+	if (checkwall("bat_a01_g1") == true)
+		delwall "bat_a01_g1";
 	end;
 
 OnMyMobDead:

+ 4 - 2
npc/battleground/tierra/tierra02.txt

@@ -207,7 +207,8 @@ OnEnable:
 
 OnKill:
 	killmonster "bat_a02","barricade#bat_a02_a::OnMyMobDead";
-	delwall "bat_a02_c1";
+	if (checkwall("bat_a02_c1") == true)
+		delwall "bat_a02_c1";
 	end;
 
 OnMyMobDead:
@@ -229,7 +230,8 @@ OnEnable:
 
 OnKill:
 	killmonster "bat_a02","barricade#bat_a02_b::OnMyMobDead";
-	delwall "bat_a02_g1";
+	if (checkwall("bat_a02_g1") == true)
+		delwall "bat_a02_g1";
 	end;
 
 OnMyMobDead:

+ 2 - 1
npc/custom/battleground/unofficial/bg_tierra_01.txt

@@ -275,7 +275,8 @@ OnBuild:
 
 OnDestroy:
 	killmonster "bat_a01","Guillaume_TV1B::OnWall";
-	delwall "bat_a01_g1";
+	if (checkwall("bat_a01_g1") == true)
+		delwall "bat_a01_g1";
 	set .MyMobCount,0;
 	end;
 

+ 2 - 1
npc/custom/battleground/unofficial/bg_tierra_02.txt

@@ -275,7 +275,8 @@ OnBuild:
 
 OnDestroy:
 	killmonster "bat_a02","Guillaume_TV2B::OnWall";
-	delwall "bat_a02_g1";
+	if (checkwall("bat_a02_g1") == true)
+		delwall "bat_a02_g1";
 	set .MyMobCount,0;
 	end;
 

+ 3 - 1
npc/guild2/agit_main_se.txt

@@ -1700,7 +1700,9 @@ OnBarrierDestroyed:
 	end;
 
 OnDisable:
-	delwall substr(strnpcinfo(2),0,1)+substr(strnpcinfo(2),8,9)+"_"+strnpcinfo(1);
+	.@wall_name$ = substr(strnpcinfo(2),0,1) + substr(strnpcinfo(2),8,9) + "_" + strnpcinfo(1);
+	if (checkwall(.@wall_name$) == true)
+		delwall .@wall_name$;
 	killmonster strnpcinfo(2),strnpcinfo(0)+"::OnBarrierDestroyed";
 	end;
 }

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

@@ -1100,11 +1100,11 @@ morocc,27,112,4	script	Wickebine#BLS	725,{
 		mes "[Wickebine]";
 		mes "...";
 		next;
-		mes "[Wickemine]";
+		mes "[Wickebine]";
 		mes "...";
 		mes "......";
 		next;
-		mes "[Wickmine]";
+		mes "[Wickebine]";
 		mes "They're late.";
 		mes "They're late,";
 		mes "they're late,";

+ 2 - 9
npc/merchants/shops.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= rAthena Dev Team
 //===== Current Version: ===================================== 
-//= 3.5
+//= 3.6
 //===== Compatible With: ===================================== 
 //= rAthena Project
 //===== Description: ========================================= 
@@ -39,6 +39,7 @@
 //= 3.3 Moved more shops to Renewal file. [Euphy]
 //= 3.4 Moved Izlude shops to pre-re/re paths. [Streusel]
 //= 3.5 Moved Ninja shops to Pre-RE/RE paths. [Euphy]
+//= 3.6 Moved Morocc shops to Pre-RE/RE paths. [zackdreaver]
 //============================================================ 
 
 //=======================================================
@@ -205,8 +206,6 @@ xmas_in,174,98,2	shop	Weapon Dealer#xmas	49,1201:-1,1204:-1,1207:-1,1210:-1,1213
 // Morroc - Post Ep. 12.1
 //=======================================================
 in_moc_16,22,20,7	shop	Sepulchral Merchant#moc	880,1771:-1
-moc_ruins,91,128,4	shop	Tool Dealer#moc1	93,1750:-1,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,645:-1,656:-1,601:-1,602:-1,1065:-1
-moc_ruins,114,63,6	shop	Tool Dealer#moc2	99,1750:-1,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,645:-1,656:-1,601:-1,602:-1,1065:-1,2242:-1
 moc_ruins,93,53,2	shop	Item Collector#moc1	85,911:-1,528:-1,919:-1,925:-1
 moc_ruins,81,113,0	shop	Item Collector#moc2	85,911:-1,528:-1,919:-1,925:-1
 moc_ruins,110,105,2	shop	Jeweler#moc1	102,721:-1,723:-1,726:-1,728:-1,729:-1
@@ -217,7 +216,6 @@ moc_ruins,71,139,5	shop	Trader#moc3	93,2612:-1
 moc_ruins,125,135,6	shop	Trader#moc4	89,2609:-1,1516:-1,1522:-1
 moc_ruins,87,109,0	shop	Butcher#moc	58,517:-1
 moc_ruins,90,149,6	shop	Trader#moc5	99,513:-1,513:-1,513:-1,513:-1,513:-1,513:-1
-moc_ruins,118,170,4	shop	Pet Groomer#moc	125,537:-1,643:-1,10013:-1,10014:-1,554:-1,6113:-1,6114:-1,6115:-1
 morocc_in,141,67,0	shop	Weapon Dealer#moc1	58,1750:-1,1751:-1,1701:-1,1601:-1,1201:-1,1204:-1,1207:-1,1210:-1,1213:-1,1216:-1,1219:-1,1222:-1,1250:-1,1252:-1,1254:-1
 morocc_in,141,60,0	shop	Armor Dealer#moc	58,2101:-1,2103:-1,2401:-1,2403:-1,2405:-1,2501:-1,2503:-1,2218:-1,2301:-1,2303:-1,2305:-1,2321:-1,2328:-1,2332:-1,2307:-1,2309:-1,2335:-1,2628:-1
 morocc_in,132,57,0	shop	Weapon Dealer#moc2	99,1146:-1,1245:-1
@@ -304,11 +302,6 @@ ve_in,252,313,0	shop	Magical Item Seller#ve	942,717:-1,1601:-1,1604:-1,1607:-1,1
 //=======================================================
 // Cooking Addition
 //=======================================================
-prontera,156,212,1	shop	Chef Assistant#prt	700,7454:-1,7456:-1,7482:-1,580:-1
-payon,206,119,5	shop	Chef Assistant#pay	89,7455:-1
-moc_ruins,115,123,5	shop	Chef Assistant#moc	86,7455:-1,7453:-1,7454:-1,7456:-1,7452:-1
-geffen,196,111,3	shop	Chef Assistant#gef	85,7482:-1
-alberta,167,135,5	shop	Chef Assistant#alb	712,579:-1
 aldebaran,165,107,2	shop	Chef Assistant#alde	97,7456:-1,7452:-1,580:-1
 comodo,225,164,3	shop	Chef Assistant#cmd	83,7455:-1,7453:-1,7454:-1,579:-1
 umbala,102,154,3	shop	Chef Assistant#um	83,7456:-1,577:-1

+ 0 - 1
npc/merchants/socket_enchant2.txt

@@ -383,7 +383,6 @@
 payon,236,199,3	duplicate(SocketEnchant2)	Leablem#pay	86
 lighthalzen,96,137,3	duplicate(SocketEnchant2)	Leablem#lhz	86
 prt_in,22,60,6	duplicate(SocketEnchant2)	Leablem#prt	86
-moc_ruins,154,86,3	duplicate(SocketEnchant2)	Leablem#moc	86
 
 function	script	Func_Socket2	{
 	.@item_id = getarg(0);

+ 19 - 1
npc/pre-re/merchants/shops.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= Daegaladh
 //===== Current Version: ===================================== 
-//= 1.2
+//= 1.3
 //===== Compatible With: ===================================== 
 //= rAthena Project
 //===== Description: ========================================= 
@@ -12,6 +12,7 @@
 //= 1.0 First version.
 //= 1.1 Moved Izlude shops to pre-re/re paths. [Streusel]
 //= 1.2 Moved Ninja shops to Pre-RE/RE paths. [Euphy]
+//= 1.3 Moved Morocc shops to Pre-RE/RE paths. [zackdreaver]
 //============================================================ 
 
 //=======================================================
@@ -24,8 +25,25 @@ izlude,164,138,4	shop	Pet Groomer#iz	124,537:-1,643:-1,10013:-1,10014:-1,554:-1,
 izlude_in,115,61,0	shop	Tool Dealer#iz	47,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,645:-1,656:-1,601:-1,602:-1,1065:-1,1750:-1
 izlude_in,121,64,3	shop	Trading Merchant#iz	900,13200:-1,13201:-1,13202:-1,13150:-1,13102:-1,13151:-1,13154:-1,13155:-1,13163:-1,13165:-1,13168:-1
 
+//=======================================================
+// Morroc - Post Ep. 12.1
+//=======================================================
+moc_ruins,118,170,4	shop	Pet Groomer#moc	125,537:-1,643:-1,10013:-1,10014:-1,554:-1,6113:-1,6114:-1,6115:-1
+moc_ruins,91,128,4	shop	Tool Dealer#moc1	93,1750:-1,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,645:-1,656:-1,601:-1,602:-1,1065:-1
+moc_ruins,114,63,6	shop	Tool Dealer#moc2	99,1750:-1,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,645:-1,656:-1,601:-1,602:-1,1065:-1,2242:-1
+
 //=======================================================
 // Ninja Shops
 //=======================================================
 que_ng,72,31,2	shop	Boonji#nin	83,13250:-1,13251:-1,13252:-1,13253:-1,13254:-1
 que_ng,73,26,5	shop	Boonray#nin	83,2117:-1,7521:-1,7522:-1,7523:-1,7524:-1
+
+//=======================================================
+// Cooking Addition
+//=======================================================
+prontera,156,212,1	shop	Chef Assistant#prt	700,7454:-1,7456:-1,7482:-1,580:-1
+moc_ruins,115,123,5	shop	Chef Assistant#moc	86,7455:-1,7453:-1,7454:-1,7456:-1,7452:-1
+geffen,196,111,3	shop	Chef Assistant#gef	85,7482:-1
+alberta,167,135,5	shop	Chef Assistant#alb	712,579:-1
+payon,206,119,5	shop	Chef Assistant#pay	89,7455:-1
+

+ 18 - 0
npc/pre-re/merchants/socket_enchant2.txt

@@ -0,0 +1,18 @@
+//===== rAthena Script ======================================= 
+//= Episode 12 Socket Enchant NPC
+//===== By: ================================================== 
+//= Gepard
+//===== Current Version: ===================================== 
+//= 1.1a
+//===== Compatible With: ===================================== 
+//= rAthena Project
+//===== Description: ========================================= 
+//= [Official Conversion]
+//= Adds slots to selected weapons and armor.
+//===== Additional Comments: ================================= 
+//= 1.0 First version.
+//= 1.1 Duplicates now spawn from floating NPCs. [L0ne_W0lf]
+//= 1.1a Added 'disable_items' command. [Euphy]
+//============================================================ 
+
+moc_ruins,154,86,3	duplicate(SocketEnchant2)	Leablem#moc	86

+ 14 - 0
npc/pre-re/quests/quests_morocc.txt

@@ -5,8 +5,22 @@
 //= Quest NPCs related to Morroc.
 //===== Changelogs: ==========================================
 //= 1.0 Succession of the Prince removed in ep16.1 [Capuche]
+//= 1.1 Moved renewal specific npcs [zackdreaver]
 //============================================================
 
+// Stop Post Quest
+// ============================================================
+moc_ruins,113,181,4	duplicate(William)	William#moc	89
+
+// Binoculars Quest
+// ============================================================
+moc_ruins,118,176,4	duplicate(Alchemist)	Alchemist#moc	64
+
+// Resurrection of Satan Morroc
+// ============================================================
+
+morocc,176,103,3	duplicate(Continental Official)	Continental Official#mor	754
+
 // Succession of the Prince
 // ============================================================
 prontera,153,353,4	script	Messenger#prince1	105,{

+ 1 - 0
npc/pre-re/scripts_athena.conf

@@ -42,6 +42,7 @@ npc: npc/pre-re/kafras/kafras.txt
 npc: npc/pre-re/merchants/ammo_boxes.txt
 npc: npc/pre-re/merchants/ammo_dealer.txt
 npc: npc/pre-re/merchants/shops.txt
+npc: npc/pre-re/merchants/socket_enchant2.txt
 
 // --------------------------- Others ---------------------------
 npc: npc/pre-re/other/bulletin_boards.txt

+ 3 - 3
npc/quests/quests_morocc.txt

@@ -51,7 +51,7 @@
 
 // Stop Post Quest
 // ============================================================
-moc_ruins,113,181,4	script	William	89,{
+-	script	William	89,{
 	mes "[William]";
 	mes "Welcome to";
 	mes "MacMillan's ^3355FFPost^000000 Workshop.";
@@ -96,7 +96,7 @@ moc_ruins,113,181,4	script	William	89,{
 
 // Binoculars Quest
 // ============================================================
-moc_ruins,118,176,4	script	Alchemist	64,{
+-	script	Alchemist	64,{
 	mes "[Marius]";
 	mes "Howdy, new customer!!";
 	mes "I know what you're gonna talk about. You want the Magic Glasses from me, riiiiight?";
@@ -1205,7 +1205,7 @@ payon,200,113,3	duplicate(ConMessenger)	Continental Messenger#03	997,3,3
 alberta,127,64,3	duplicate(ConMessenger)	Continental Messenger#04	998,3,3
 aldebaran,135,128,3	duplicate(ConMessenger)	Continental Messenger#05	998,3,3
 
-morocc,176,103,3	script	Continental Official	754,{
+-	script	Continental Official	-1,{
 	if (rebirth_moc_edq > 3) {
 		mes "[Continental Guard Official]";
 		mes "On behalf of the Continental Guard, I thank you for your efforts. Now, let me see if I've received any news from Headquarters that you should know...";

+ 29 - 0
npc/re/battleground/bg_common.txt

@@ -0,0 +1,29 @@
+//===== rAthena Script ======================================= 
+//= BattleGround System - Common NPCs
+//===== By: ================================================== 
+//= ????, L0ne_W0lf
+//===== Current Version: ===================================== 
+//= 1.5
+//===== Compatible With: ===================================== 
+//= rAthena Project
+//===== Description: ========================================= 
+//= [Official Conversion]
+//= Battleground NPCs:
+//= - Generals and Aides
+//= - Battleground Warper
+//= - Kafra and Repairman.
+//= - GM Management NPC
+//= - Badge Exchanger (Tierra and Flavius)
+//===== Additional Comments: ================================= 
+//= 1.0 First Version.
+//= 1.1 Updated several NPCs to Official.
+//= 1.2 Updated Repairman NPC
+//= 1.3 Optimized "Erundek" NPC. [Euphy]
+//= 1.4 Added GM management function. [Euphy]
+//= 1.5 Added VIP features and created a reward function. [Euphy]
+//============================================================
+
+// BattleGround Warper
+//============================================================
+
+morocc,145,82,3	duplicate(BatRecruit)	Maroll Battle Recruiter::BatRecruit8	728

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

@@ -674,13 +674,13 @@ OnTouch:
 	next;
 	mes "[Sweet Wife]";
 	mes "Really? I'm that beautiful? I love you, honey~";
-	emotion ET_CHUPCHUP, getnpcid(0, "Sweet Married Couple#dew2");
+	emotion ET_CHUPCHUP, getnpcid(0, "Sweet Married Couple#2");
 	next;
 	mes "[Sweet Married Couple]";
 	mes "Hahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaha";
 	mes "Hohohohohohohohohohohohohohohohohohohohohohohohohohohohohohohohohohohoho";
 	emotion ET_SMILE;
-	emotion ET_SMILE, getnpcid(0, "Sweet Married Couple#dew2");
+	emotion ET_SMILE, getnpcid(0, "Sweet Married Couple#2");
 	next;
 	mes "Come on now, I'm growing tired of this. Let's go.";
 	close;
@@ -701,7 +701,7 @@ OnTouch:
 	next;
 	mes "[Sweet Husband]";
 	mes "No matter how pretty the flower is, you are always more beautiful~";
-	emotion ET_CHUP, getnpcid(0, "Sweet Married Couple#dew1");
+	emotion ET_CHUP, getnpcid(0, "Sweet Married Couple#1");
 	next;
 	mes "[Sweet Wife]";
 	mes "Really? I'm that pretty? I love you, sweetie~";
@@ -710,7 +710,7 @@ OnTouch:
 	mes "[Sweet Married Couple]";
 	mes "Hahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaha";
 	mes "Hohohohohohohohohohohohohohohohohohohohohohohohohohohohohohohohohohohoho";
-	emotion ET_SMILE, getnpcid(0, "Sweet Married Couple#dew1");
+	emotion ET_SMILE, getnpcid(0, "Sweet Married Couple#1");
 	emotion ET_SMILE;
 	next;
 	mes "Come on now, this bores me. Let's move on.";

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

@@ -363,7 +363,7 @@ OnTouch:
 		break;
 	case 4: 
 		emotion ET_DELIGHT;
-		emotion ET_DELIGHT, getnpcid(0, "Wandering Minstrel#mal");
+		emotion ET_DELIGHT, getnpcid(0, "Minstrel#mal");
 		break;
 	}
 	end;

+ 1 - 1
npc/re/custom/lasagna/lasagna_npcs.txt

@@ -2411,7 +2411,7 @@ lasagna,140,250,3	script	The skittish fourth#wea	4_DR_F_01,{
 	close;
 }
 
-lasagna,140,245,3	script	The sensitive-minded el	4_CAT_SAILOR3,{
+lasagna,140,245,3	script	The sensitive-minded ela	4_CAT_SAILOR3,{
 	if (checkweight(1001,1) == 0) {
 		mes "- Hold on a second here!! -";
 		mes "- You have too many items. -";

+ 3 - 3
npc/re/instances/RoomOfConsciousness.txt

@@ -448,6 +448,9 @@ OnTimer1000:
 		initnpctimer;
 		end;
 	}
+	donpcevent instance_npcname("eq#mir4") + "::OnMobDead";
+	end;
+OnMobDead:
 	killmonster 'map_name$, instance_npcname("eq#mir4") + "::OnMobDead";
 	stopnpctimer;
 	enablenpc instance_npcname("Fenrir#5mir");
@@ -455,9 +458,6 @@ OnTimer1000:
 	enablenpc instance_npcname("Bijou#5mir");
 	disablenpc instance_npcname("eq#mir4");
 	end;
-OnMobDead:
-	// shouldn't happen
-	end;
 }
 
 1@mir,103,90,1	script	Fenrir#5mir	4_F_FENRIR,{

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

@@ -21,7 +21,7 @@ lighthalzen,303,303,6	script	Giacomo Girolamo#kiup2	4_M_KHMAN,3,3,{
 		mes "^FF0000 Check up your inventory. You got too many items to carry out the quest. ^000000";
 		close;
 	}
-	if (lhz_boss > 30) {
+	if (lhz_curse > 30) {
 		if (!lght_duk01) {
 			if (Sex == SEX_MALE) {
 				emotion ET_HNG;
@@ -309,7 +309,7 @@ OnTouch:
 			warp "que_lhz", 148, 215;
 		}
 	} else {
-		if (lhz_boss < 31) {
+		if (lhz_curse < 31) {
 			mes "- Whistling sound -";
 			mes "From below, there comes a gruesome sound mingling with the wind.";
 			close2;

+ 9 - 0
npc/re/kafras/kafras.txt

@@ -25,6 +25,7 @@
 //= 1.3a Moved Rune Knight Kafra from job file. [Euphy]
 //= 1.4 Added Izlude duplicates. [Euphy]
 //= 1.5 Added Glastheim Kafra [Ridley8819]
+//= 1.6 Added Lutie [Lemongrass]
 //============================================================ 
 
 // Brasilis
@@ -54,6 +55,14 @@ glast_01,200,275,0	script	Kafra Employee::kaf_glast	4_F_KAFRA3,{
 	callfunc "F_KafEnd",0,1,"in Glast Heim";
 }
 
+// Lutie
+//============================================================
+xmas,148,134,6	script	Kafra Employee::kaf_xmas	4_F_KAFRA3,{
+	cutin "kafra_03",2;
+	callfunc "F_Kafra",0,6,2,50,700;
+	callfunc "F_KafEnd",0,0,"in Lutie";
+}
+
 // Eden Group
 //============================================================
 moc_para01,10,185,4	script	Kafra Employee::kaf_eden	721,{

+ 710 - 0
npc/re/mapflag/privateairship.txt

@@ -0,0 +1,710 @@
+//===== rAthena Script =======================================
+//= Mapflags:
+//= privateairship_source, privateairship_destination
+//===== Description: =========================================
+//= Private Airship available sources and destinations
+//===== Changelogs: ==========================================
+//= 1.0 First Version. [Lemongrass]
+//============================================================
+
+//=======================================
+// Available source maps
+//=======================================
+abbey01	mapflag	privateairship_source
+abbey02	mapflag	privateairship_source
+abbey03	mapflag	privateairship_source
+abyss_01	mapflag	privateairship_source
+abyss_02	mapflag	privateairship_source
+abyss_03	mapflag	privateairship_source
+alb2trea	mapflag	privateairship_source
+alberta	mapflag	privateairship_source
+alde_dun01	mapflag	privateairship_source
+alde_dun02	mapflag	privateairship_source
+alde_dun03	mapflag	privateairship_source
+alde_dun04	mapflag	privateairship_source
+alde_gld	mapflag	privateairship_source
+aldebaran	mapflag	privateairship_source
+ama_dun01	mapflag	privateairship_source
+ama_dun02	mapflag	privateairship_source
+ama_dun03	mapflag	privateairship_source
+ama_fild01	mapflag	privateairship_source
+amatsu	mapflag	privateairship_source
+anthell01	mapflag	privateairship_source
+anthell02	mapflag	privateairship_source
+aru_gld	mapflag	privateairship_source
+ayo_dun01	mapflag	privateairship_source
+ayo_dun02	mapflag	privateairship_source
+ayo_fild01	mapflag	privateairship_source
+ayothaya	mapflag	privateairship_source
+beach_dun	mapflag	privateairship_source
+beach_dun2	mapflag	privateairship_source
+beach_dun3	mapflag	privateairship_source
+bif_fild01	mapflag	privateairship_source
+bif_fild02	mapflag	privateairship_source
+bra_dun01	mapflag	privateairship_source
+bra_dun02	mapflag	privateairship_source
+bra_fild01	mapflag	privateairship_source
+brasilis	mapflag	privateairship_source
+c_tower1	mapflag	privateairship_source
+c_tower2	mapflag	privateairship_source
+c_tower3	mapflag	privateairship_source
+c_tower4	mapflag	privateairship_source
+cmd_fild01	mapflag	privateairship_source
+cmd_fild02	mapflag	privateairship_source
+cmd_fild03	mapflag	privateairship_source
+cmd_fild04	mapflag	privateairship_source
+cmd_fild06	mapflag	privateairship_source
+cmd_fild07	mapflag	privateairship_source
+cmd_fild08	mapflag	privateairship_source
+cmd_fild09	mapflag	privateairship_source
+comodo	mapflag	privateairship_source
+dali	mapflag	privateairship_source
+dali02	mapflag	privateairship_source
+dew_dun01	mapflag	privateairship_source
+dew_dun02	mapflag	privateairship_source
+dew_fild01	mapflag	privateairship_source
+dewata	mapflag	privateairship_source
+dic_dun01	mapflag	privateairship_source
+dic_dun02	mapflag	privateairship_source
+dic_dun03	mapflag	privateairship_source
+dic_fild01	mapflag	privateairship_source
+dic_fild02	mapflag	privateairship_source
+dicastes01	mapflag	privateairship_source
+dicastes02	mapflag	privateairship_source
+ecl_fild01	mapflag	privateairship_source
+ecl_tdun01	mapflag	privateairship_source
+ecl_tdun02	mapflag	privateairship_source
+ecl_tdun03	mapflag	privateairship_source
+eclage	mapflag	privateairship_source
+ein_dun01	mapflag	privateairship_source
+ein_dun02	mapflag	privateairship_source
+ein_fild01	mapflag	privateairship_source
+ein_fild03	mapflag	privateairship_source
+ein_fild04	mapflag	privateairship_source
+ein_fild05	mapflag	privateairship_source
+ein_fild06	mapflag	privateairship_source
+ein_fild07	mapflag	privateairship_source
+ein_fild08	mapflag	privateairship_source
+ein_fild09	mapflag	privateairship_source
+einbech	mapflag	privateairship_source
+einbroch	mapflag	privateairship_source
+gef_dun00	mapflag	privateairship_source
+gef_dun01	mapflag	privateairship_source
+gef_dun02	mapflag	privateairship_source
+gef_fild00	mapflag	privateairship_source
+gef_fild01	mapflag	privateairship_source
+gef_fild02	mapflag	privateairship_source
+gef_fild03	mapflag	privateairship_source
+gef_fild04	mapflag	privateairship_source
+gef_fild05	mapflag	privateairship_source
+gef_fild06	mapflag	privateairship_source
+gef_fild07	mapflag	privateairship_source
+gef_fild08	mapflag	privateairship_source
+gef_fild09	mapflag	privateairship_source
+gef_fild10	mapflag	privateairship_source
+gef_fild11	mapflag	privateairship_source
+gef_fild12	mapflag	privateairship_source
+gef_fild13	mapflag	privateairship_source
+gef_fild14	mapflag	privateairship_source
+gefenia01	mapflag	privateairship_source
+gefenia02	mapflag	privateairship_source
+gefenia03	mapflag	privateairship_source
+gefenia04	mapflag	privateairship_source
+geffen	mapflag	privateairship_source
+gl_cas01	mapflag	privateairship_source
+gl_cas02	mapflag	privateairship_source
+gl_church	mapflag	privateairship_source
+gl_chyard	mapflag	privateairship_source
+gl_dun01	mapflag	privateairship_source
+gl_dun02	mapflag	privateairship_source
+gl_in01	mapflag	privateairship_source
+gl_knt01	mapflag	privateairship_source
+gl_knt02	mapflag	privateairship_source
+gl_prison	mapflag	privateairship_source
+gl_prison1	mapflag	privateairship_source
+gl_sew01	mapflag	privateairship_source
+gl_sew02	mapflag	privateairship_source
+gl_sew03	mapflag	privateairship_source
+gl_sew04	mapflag	privateairship_source
+gl_step	mapflag	privateairship_source
+glast_01	mapflag	privateairship_source
+gon_dun01	mapflag	privateairship_source
+gon_dun02	mapflag	privateairship_source
+gon_dun03	mapflag	privateairship_source
+gon_fild01	mapflag	privateairship_source
+gonryun	mapflag	privateairship_source
+hu_fild01	mapflag	privateairship_source
+hu_fild02	mapflag	privateairship_source
+hu_fild04	mapflag	privateairship_source
+hu_fild05	mapflag	privateairship_source
+hu_fild06	mapflag	privateairship_source
+hugel	mapflag	privateairship_source
+ice_dun01	mapflag	privateairship_source
+ice_dun02	mapflag	privateairship_source
+ice_dun03	mapflag	privateairship_source
+in_sphinx1	mapflag	privateairship_source
+in_sphinx2	mapflag	privateairship_source
+in_sphinx3	mapflag	privateairship_source
+in_sphinx4	mapflag	privateairship_source
+in_sphinx5	mapflag	privateairship_source
+iz_dun00	mapflag	privateairship_source
+iz_dun01	mapflag	privateairship_source
+iz_dun02	mapflag	privateairship_source
+iz_dun03	mapflag	privateairship_source
+iz_dun04	mapflag	privateairship_source
+iz_dun05	mapflag	privateairship_source
+izlu2dun	mapflag	privateairship_source
+izlude	mapflag	privateairship_source
+jupe_core	mapflag	privateairship_source
+juperos_01	mapflag	privateairship_source
+juperos_02	mapflag	privateairship_source
+kh_dun01	mapflag	privateairship_source
+kh_dun02	mapflag	privateairship_source
+lasa_dun01	mapflag	privateairship_source
+lasa_dun02	mapflag	privateairship_source
+lasa_dun03	mapflag	privateairship_source
+lasa_fild01	mapflag	privateairship_source
+lasa_fild02	mapflag	privateairship_source
+lasagna	mapflag	privateairship_source
+lhz_dun01	mapflag	privateairship_source
+lhz_dun02	mapflag	privateairship_source
+lhz_dun03	mapflag	privateairship_source
+lhz_fild01	mapflag	privateairship_source
+lhz_fild02	mapflag	privateairship_source
+lhz_fild03	mapflag	privateairship_source
+lighthalzen	mapflag	privateairship_source
+lou_dun01	mapflag	privateairship_source
+lou_dun02	mapflag	privateairship_source
+lou_dun03	mapflag	privateairship_source
+lou_fild01	mapflag	privateairship_source
+louyang	mapflag	privateairship_source
+ma_dun01	mapflag	privateairship_source
+ma_fild01	mapflag	privateairship_source
+ma_fild02	mapflag	privateairship_source
+ma_scene01	mapflag	privateairship_source
+mag_dun01	mapflag	privateairship_source
+mag_dun02	mapflag	privateairship_source
+mal_dun01	mapflag	privateairship_source
+malangdo	mapflag	privateairship_source
+malaya	mapflag	privateairship_source
+man_fild01	mapflag	privateairship_source
+man_fild02	mapflag	privateairship_source
+man_fild03	mapflag	privateairship_source
+manuk	mapflag	privateairship_source
+mid_camp	mapflag	privateairship_source
+mjo_dun01	mapflag	privateairship_source
+mjo_dun02	mapflag	privateairship_source
+mjo_dun03	mapflag	privateairship_source
+mjolnir_01	mapflag	privateairship_source
+mjolnir_02	mapflag	privateairship_source
+mjolnir_03	mapflag	privateairship_source
+mjolnir_04	mapflag	privateairship_source
+mjolnir_05	mapflag	privateairship_source
+mjolnir_06	mapflag	privateairship_source
+mjolnir_07	mapflag	privateairship_source
+mjolnir_08	mapflag	privateairship_source
+mjolnir_09	mapflag	privateairship_source
+mjolnir_10	mapflag	privateairship_source
+mjolnir_11	mapflag	privateairship_source
+mjolnir_12	mapflag	privateairship_source
+moc_fild01	mapflag	privateairship_source
+moc_fild02	mapflag	privateairship_source
+moc_fild03	mapflag	privateairship_source
+moc_fild04	mapflag	privateairship_source
+moc_fild05	mapflag	privateairship_source
+moc_fild06	mapflag	privateairship_source
+moc_fild07	mapflag	privateairship_source
+moc_fild08	mapflag	privateairship_source
+moc_fild09	mapflag	privateairship_source
+moc_fild10	mapflag	privateairship_source
+moc_fild11	mapflag	privateairship_source
+moc_fild12	mapflag	privateairship_source
+moc_fild13	mapflag	privateairship_source
+moc_fild14	mapflag	privateairship_source
+moc_fild15	mapflag	privateairship_source
+moc_fild16	mapflag	privateairship_source
+moc_fild17	mapflag	privateairship_source
+moc_fild18	mapflag	privateairship_source
+moc_fild19	mapflag	privateairship_source
+moc_pryd01	mapflag	privateairship_source
+moc_pryd02	mapflag	privateairship_source
+moc_pryd03	mapflag	privateairship_source
+moc_pryd04	mapflag	privateairship_source
+moc_pryd05	mapflag	privateairship_source
+moc_pryd06	mapflag	privateairship_source
+moc_ruins	mapflag	privateairship_source
+mora	mapflag	privateairship_source
+moro_cav	mapflag	privateairship_source
+moro_vol	mapflag	privateairship_source
+morocc	mapflag	privateairship_source
+moscovia	mapflag	privateairship_source
+mosk_dun01	mapflag	privateairship_source
+mosk_dun02	mapflag	privateairship_source
+mosk_dun03	mapflag	privateairship_source
+mosk_fild02	mapflag	privateairship_source
+nameless_n	mapflag	privateairship_source
+nif_fild01	mapflag	privateairship_source
+nif_fild02	mapflag	privateairship_source
+niflheim	mapflag	privateairship_source
+odin_tem01	mapflag	privateairship_source
+odin_tem02	mapflag	privateairship_source
+odin_tem03	mapflag	privateairship_source
+orcsdun01	mapflag	privateairship_source
+orcsdun02	mapflag	privateairship_source
+pay_arche	mapflag	privateairship_source
+pay_dun00	mapflag	privateairship_source
+pay_dun01	mapflag	privateairship_source
+pay_dun02	mapflag	privateairship_source
+pay_dun03	mapflag	privateairship_source
+pay_dun04	mapflag	privateairship_source
+pay_fild01	mapflag	privateairship_source
+pay_fild02	mapflag	privateairship_source
+pay_fild03	mapflag	privateairship_source
+pay_fild04	mapflag	privateairship_source
+pay_fild05	mapflag	privateairship_source
+pay_fild06	mapflag	privateairship_source
+pay_fild07	mapflag	privateairship_source
+pay_fild08	mapflag	privateairship_source
+pay_fild09	mapflag	privateairship_source
+pay_fild10	mapflag	privateairship_source
+pay_fild11	mapflag	privateairship_source
+payon	mapflag	privateairship_source
+prontera	mapflag	privateairship_source
+prt_fild00	mapflag	privateairship_source
+prt_fild01	mapflag	privateairship_source
+prt_fild02	mapflag	privateairship_source
+prt_fild03	mapflag	privateairship_source
+prt_fild04	mapflag	privateairship_source
+prt_fild05	mapflag	privateairship_source
+prt_fild06	mapflag	privateairship_source
+prt_fild07	mapflag	privateairship_source
+prt_fild08	mapflag	privateairship_source
+prt_fild09	mapflag	privateairship_source
+prt_fild10	mapflag	privateairship_source
+prt_fild11	mapflag	privateairship_source
+prt_maze01	mapflag	privateairship_source
+prt_maze02	mapflag	privateairship_source
+prt_maze03	mapflag	privateairship_source
+prt_monk	mapflag	privateairship_source
+prt_sewb1	mapflag	privateairship_source
+prt_sewb2	mapflag	privateairship_source
+prt_sewb3	mapflag	privateairship_source
+prt_sewb4	mapflag	privateairship_source
+ra_fild01	mapflag	privateairship_source
+ra_fild03	mapflag	privateairship_source
+ra_fild04	mapflag	privateairship_source
+ra_fild05	mapflag	privateairship_source
+ra_fild06	mapflag	privateairship_source
+ra_fild08	mapflag	privateairship_source
+ra_fild12	mapflag	privateairship_source
+ra_san01	mapflag	privateairship_source
+ra_san02	mapflag	privateairship_source
+ra_san03	mapflag	privateairship_source
+ra_san04	mapflag	privateairship_source
+ra_san05	mapflag	privateairship_source
+ra_temple	mapflag	privateairship_source
+rachel	mapflag	privateairship_source
+spl_fild01	mapflag	privateairship_source
+spl_fild02	mapflag	privateairship_source
+spl_fild03	mapflag	privateairship_source
+splendide	mapflag	privateairship_source
+tha_t01	mapflag	privateairship_source
+tha_t02	mapflag	privateairship_source
+tha_t03	mapflag	privateairship_source
+tha_t04	mapflag	privateairship_source
+tha_t05	mapflag	privateairship_source
+tha_t06	mapflag	privateairship_source
+tha_t07	mapflag	privateairship_source
+tha_t08	mapflag	privateairship_source
+tha_t09	mapflag	privateairship_source
+tha_t10	mapflag	privateairship_source
+tha_t11	mapflag	privateairship_source
+tha_t12	mapflag	privateairship_source
+thor_v01	mapflag	privateairship_source
+thor_v02	mapflag	privateairship_source
+thor_v03	mapflag	privateairship_source
+treasure01	mapflag	privateairship_source
+treasure02	mapflag	privateairship_source
+tur_dun01	mapflag	privateairship_source
+tur_dun02	mapflag	privateairship_source
+tur_dun03	mapflag	privateairship_source
+tur_dun04	mapflag	privateairship_source
+tur_dun05	mapflag	privateairship_source
+um_fild01	mapflag	privateairship_source
+um_fild02	mapflag	privateairship_source
+um_fild03	mapflag	privateairship_source
+um_fild04	mapflag	privateairship_source
+umbala	mapflag	privateairship_source
+ve_fild01	mapflag	privateairship_source
+ve_fild02	mapflag	privateairship_source
+ve_fild03	mapflag	privateairship_source
+ve_fild04	mapflag	privateairship_source
+ve_fild06	mapflag	privateairship_source
+ve_fild07	mapflag	privateairship_source
+veins	mapflag	privateairship_source
+ver_eju	mapflag	privateairship_source
+ver_tunn	mapflag	privateairship_source
+verus03	mapflag	privateairship_source
+verus04	mapflag	privateairship_source
+yuno	mapflag	privateairship_source
+yuno_fild01	mapflag	privateairship_source
+yuno_fild02	mapflag	privateairship_source
+yuno_fild03	mapflag	privateairship_source
+yuno_fild04	mapflag	privateairship_source
+yuno_fild06	mapflag	privateairship_source
+yuno_fild07	mapflag	privateairship_source
+yuno_fild08	mapflag	privateairship_source
+yuno_fild09	mapflag	privateairship_source
+yuno_fild11	mapflag	privateairship_source
+yuno_fild12	mapflag	privateairship_source
+
+//=======================================
+// Available destination maps
+//=======================================
+abbey01	mapflag	privateairship_destination
+abbey02	mapflag	privateairship_destination
+abbey03	mapflag	privateairship_destination
+abyss_01	mapflag	privateairship_destination
+abyss_02	mapflag	privateairship_destination
+abyss_03	mapflag	privateairship_destination
+alb2trea	mapflag	privateairship_destination
+alberta	mapflag	privateairship_destination
+alde_dun01	mapflag	privateairship_destination
+alde_dun02	mapflag	privateairship_destination
+alde_dun03	mapflag	privateairship_destination
+alde_dun04	mapflag	privateairship_destination
+alde_gld	mapflag	privateairship_destination
+aldebaran	mapflag	privateairship_destination
+ama_dun01	mapflag	privateairship_destination
+ama_dun02	mapflag	privateairship_destination
+ama_dun03	mapflag	privateairship_destination
+ama_fild01	mapflag	privateairship_destination
+amatsu	mapflag	privateairship_destination
+anthell01	mapflag	privateairship_destination
+anthell02	mapflag	privateairship_destination
+aru_gld	mapflag	privateairship_destination
+ayo_dun01	mapflag	privateairship_destination
+ayo_dun02	mapflag	privateairship_destination
+ayo_fild01	mapflag	privateairship_destination
+ayothaya	mapflag	privateairship_destination
+beach_dun	mapflag	privateairship_destination
+beach_dun2	mapflag	privateairship_destination
+beach_dun3	mapflag	privateairship_destination
+bif_fild01	mapflag	privateairship_destination
+bif_fild02	mapflag	privateairship_destination
+bra_dun01	mapflag	privateairship_destination
+bra_dun02	mapflag	privateairship_destination
+bra_fild01	mapflag	privateairship_destination
+brasilis	mapflag	privateairship_destination
+c_tower1	mapflag	privateairship_destination
+c_tower2	mapflag	privateairship_destination
+c_tower3	mapflag	privateairship_destination
+c_tower4	mapflag	privateairship_destination
+cmd_fild01	mapflag	privateairship_destination
+cmd_fild02	mapflag	privateairship_destination
+cmd_fild03	mapflag	privateairship_destination
+cmd_fild04	mapflag	privateairship_destination
+cmd_fild06	mapflag	privateairship_destination
+cmd_fild07	mapflag	privateairship_destination
+cmd_fild08	mapflag	privateairship_destination
+cmd_fild09	mapflag	privateairship_destination
+comodo	mapflag	privateairship_destination
+dali	mapflag	privateairship_destination
+dali02	mapflag	privateairship_destination
+dew_dun01	mapflag	privateairship_destination
+dew_dun02	mapflag	privateairship_destination
+dew_fild01	mapflag	privateairship_destination
+dewata	mapflag	privateairship_destination
+dic_dun01	mapflag	privateairship_destination
+dic_dun02	mapflag	privateairship_destination
+dic_dun03	mapflag	privateairship_destination
+dic_fild01	mapflag	privateairship_destination
+dic_fild02	mapflag	privateairship_destination
+dicastes01	mapflag	privateairship_destination
+dicastes02	mapflag	privateairship_destination
+ecl_fild01	mapflag	privateairship_destination
+ecl_tdun01	mapflag	privateairship_destination
+ecl_tdun02	mapflag	privateairship_destination
+ecl_tdun03	mapflag	privateairship_destination
+eclage	mapflag	privateairship_destination
+ein_dun01	mapflag	privateairship_destination
+ein_dun02	mapflag	privateairship_destination
+ein_fild01	mapflag	privateairship_destination
+ein_fild03	mapflag	privateairship_destination
+ein_fild04	mapflag	privateairship_destination
+ein_fild05	mapflag	privateairship_destination
+ein_fild06	mapflag	privateairship_destination
+ein_fild07	mapflag	privateairship_destination
+ein_fild08	mapflag	privateairship_destination
+ein_fild09	mapflag	privateairship_destination
+einbech	mapflag	privateairship_destination
+einbroch	mapflag	privateairship_destination
+gef_dun00	mapflag	privateairship_destination
+gef_dun01	mapflag	privateairship_destination
+gef_dun02	mapflag	privateairship_destination
+gef_fild00	mapflag	privateairship_destination
+gef_fild01	mapflag	privateairship_destination
+gef_fild02	mapflag	privateairship_destination
+gef_fild03	mapflag	privateairship_destination
+gef_fild04	mapflag	privateairship_destination
+gef_fild05	mapflag	privateairship_destination
+gef_fild06	mapflag	privateairship_destination
+gef_fild07	mapflag	privateairship_destination
+gef_fild08	mapflag	privateairship_destination
+gef_fild09	mapflag	privateairship_destination
+gef_fild10	mapflag	privateairship_destination
+gef_fild11	mapflag	privateairship_destination
+gef_fild12	mapflag	privateairship_destination
+gef_fild13	mapflag	privateairship_destination
+gef_fild14	mapflag	privateairship_destination
+gefenia01	mapflag	privateairship_destination
+gefenia02	mapflag	privateairship_destination
+gefenia03	mapflag	privateairship_destination
+gefenia04	mapflag	privateairship_destination
+geffen	mapflag	privateairship_destination
+gl_cas01	mapflag	privateairship_destination
+gl_cas02	mapflag	privateairship_destination
+gl_church	mapflag	privateairship_destination
+gl_chyard	mapflag	privateairship_destination
+gl_dun01	mapflag	privateairship_destination
+gl_dun02	mapflag	privateairship_destination
+gl_in01	mapflag	privateairship_destination
+gl_knt01	mapflag	privateairship_destination
+gl_knt02	mapflag	privateairship_destination
+gl_prison	mapflag	privateairship_destination
+gl_prison1	mapflag	privateairship_destination
+gl_sew01	mapflag	privateairship_destination
+gl_sew02	mapflag	privateairship_destination
+gl_sew03	mapflag	privateairship_destination
+gl_sew04	mapflag	privateairship_destination
+gl_step	mapflag	privateairship_destination
+glast_01	mapflag	privateairship_destination
+gon_dun01	mapflag	privateairship_destination
+gon_dun02	mapflag	privateairship_destination
+gon_dun03	mapflag	privateairship_destination
+gon_fild01	mapflag	privateairship_destination
+gonryun	mapflag	privateairship_destination
+hu_fild01	mapflag	privateairship_destination
+hu_fild02	mapflag	privateairship_destination
+hu_fild04	mapflag	privateairship_destination
+hu_fild05	mapflag	privateairship_destination
+hu_fild06	mapflag	privateairship_destination
+hugel	mapflag	privateairship_destination
+ice_dun01	mapflag	privateairship_destination
+ice_dun02	mapflag	privateairship_destination
+ice_dun03	mapflag	privateairship_destination
+in_sphinx1	mapflag	privateairship_destination
+in_sphinx2	mapflag	privateairship_destination
+in_sphinx3	mapflag	privateairship_destination
+in_sphinx4	mapflag	privateairship_destination
+in_sphinx5	mapflag	privateairship_destination
+iz_dun00	mapflag	privateairship_destination
+iz_dun01	mapflag	privateairship_destination
+iz_dun02	mapflag	privateairship_destination
+iz_dun03	mapflag	privateairship_destination
+iz_dun04	mapflag	privateairship_destination
+iz_dun05	mapflag	privateairship_destination
+izlu2dun	mapflag	privateairship_destination
+izlude	mapflag	privateairship_destination
+jupe_core	mapflag	privateairship_destination
+juperos_01	mapflag	privateairship_destination
+juperos_02	mapflag	privateairship_destination
+kh_dun01	mapflag	privateairship_destination
+kh_dun02	mapflag	privateairship_destination
+lasa_dun01	mapflag	privateairship_destination
+lasa_dun02	mapflag	privateairship_destination
+lasa_dun03	mapflag	privateairship_destination
+lasa_fild01	mapflag	privateairship_destination
+lasa_fild02	mapflag	privateairship_destination
+lasagna	mapflag	privateairship_destination
+lhz_dun01	mapflag	privateairship_destination
+lhz_dun02	mapflag	privateairship_destination
+lhz_dun03	mapflag	privateairship_destination
+lhz_fild01	mapflag	privateairship_destination
+lhz_fild02	mapflag	privateairship_destination
+lhz_fild03	mapflag	privateairship_destination
+lighthalzen	mapflag	privateairship_destination
+lou_dun01	mapflag	privateairship_destination
+lou_dun02	mapflag	privateairship_destination
+lou_dun03	mapflag	privateairship_destination
+lou_fild01	mapflag	privateairship_destination
+louyang	mapflag	privateairship_destination
+ma_dun01	mapflag	privateairship_destination
+ma_fild01	mapflag	privateairship_destination
+ma_fild02	mapflag	privateairship_destination
+ma_scene01	mapflag	privateairship_destination
+mag_dun01	mapflag	privateairship_destination
+mag_dun02	mapflag	privateairship_destination
+mal_dun01	mapflag	privateairship_destination
+malangdo	mapflag	privateairship_destination
+malaya	mapflag	privateairship_destination
+man_fild01	mapflag	privateairship_destination
+man_fild02	mapflag	privateairship_destination
+man_fild03	mapflag	privateairship_destination
+manuk	mapflag	privateairship_destination
+mid_camp	mapflag	privateairship_destination
+mjo_dun01	mapflag	privateairship_destination
+mjo_dun02	mapflag	privateairship_destination
+mjo_dun03	mapflag	privateairship_destination
+mjolnir_01	mapflag	privateairship_destination
+mjolnir_02	mapflag	privateairship_destination
+mjolnir_03	mapflag	privateairship_destination
+mjolnir_04	mapflag	privateairship_destination
+mjolnir_05	mapflag	privateairship_destination
+mjolnir_06	mapflag	privateairship_destination
+mjolnir_07	mapflag	privateairship_destination
+mjolnir_08	mapflag	privateairship_destination
+mjolnir_09	mapflag	privateairship_destination
+mjolnir_10	mapflag	privateairship_destination
+mjolnir_11	mapflag	privateairship_destination
+mjolnir_12	mapflag	privateairship_destination
+moc_fild01	mapflag	privateairship_destination
+moc_fild02	mapflag	privateairship_destination
+moc_fild03	mapflag	privateairship_destination
+moc_fild04	mapflag	privateairship_destination
+moc_fild05	mapflag	privateairship_destination
+moc_fild06	mapflag	privateairship_destination
+moc_fild07	mapflag	privateairship_destination
+moc_fild08	mapflag	privateairship_destination
+moc_fild09	mapflag	privateairship_destination
+moc_fild10	mapflag	privateairship_destination
+moc_fild11	mapflag	privateairship_destination
+moc_fild12	mapflag	privateairship_destination
+moc_fild13	mapflag	privateairship_destination
+moc_fild14	mapflag	privateairship_destination
+moc_fild15	mapflag	privateairship_destination
+moc_fild16	mapflag	privateairship_destination
+moc_fild17	mapflag	privateairship_destination
+moc_fild18	mapflag	privateairship_destination
+moc_fild19	mapflag	privateairship_destination
+moc_pryd01	mapflag	privateairship_destination
+moc_pryd02	mapflag	privateairship_destination
+moc_pryd03	mapflag	privateairship_destination
+moc_pryd04	mapflag	privateairship_destination
+moc_pryd05	mapflag	privateairship_destination
+moc_pryd06	mapflag	privateairship_destination
+moc_ruins	mapflag	privateairship_destination
+mora	mapflag	privateairship_destination
+moro_cav	mapflag	privateairship_destination
+moro_vol	mapflag	privateairship_destination
+morocc	mapflag	privateairship_destination
+moscovia	mapflag	privateairship_destination
+mosk_dun01	mapflag	privateairship_destination
+mosk_dun02	mapflag	privateairship_destination
+mosk_dun03	mapflag	privateairship_destination
+mosk_fild02	mapflag	privateairship_destination
+nameless_n	mapflag	privateairship_destination
+nif_fild01	mapflag	privateairship_destination
+nif_fild02	mapflag	privateairship_destination
+niflheim	mapflag	privateairship_destination
+odin_tem01	mapflag	privateairship_destination
+odin_tem02	mapflag	privateairship_destination
+odin_tem03	mapflag	privateairship_destination
+orcsdun01	mapflag	privateairship_destination
+orcsdun02	mapflag	privateairship_destination
+pay_arche	mapflag	privateairship_destination
+pay_dun00	mapflag	privateairship_destination
+pay_dun01	mapflag	privateairship_destination
+pay_dun02	mapflag	privateairship_destination
+pay_dun03	mapflag	privateairship_destination
+pay_dun04	mapflag	privateairship_destination
+pay_fild01	mapflag	privateairship_destination
+pay_fild02	mapflag	privateairship_destination
+pay_fild03	mapflag	privateairship_destination
+pay_fild04	mapflag	privateairship_destination
+pay_fild05	mapflag	privateairship_destination
+pay_fild06	mapflag	privateairship_destination
+pay_fild07	mapflag	privateairship_destination
+pay_fild08	mapflag	privateairship_destination
+pay_fild09	mapflag	privateairship_destination
+pay_fild10	mapflag	privateairship_destination
+pay_fild11	mapflag	privateairship_destination
+payon	mapflag	privateairship_destination
+prontera	mapflag	privateairship_destination
+prt_fild00	mapflag	privateairship_destination
+prt_fild01	mapflag	privateairship_destination
+prt_fild02	mapflag	privateairship_destination
+prt_fild03	mapflag	privateairship_destination
+prt_fild04	mapflag	privateairship_destination
+prt_fild05	mapflag	privateairship_destination
+prt_fild06	mapflag	privateairship_destination
+prt_fild07	mapflag	privateairship_destination
+prt_fild08	mapflag	privateairship_destination
+prt_fild09	mapflag	privateairship_destination
+prt_fild10	mapflag	privateairship_destination
+prt_fild11	mapflag	privateairship_destination
+prt_maze01	mapflag	privateairship_destination
+prt_maze02	mapflag	privateairship_destination
+prt_maze03	mapflag	privateairship_destination
+prt_monk	mapflag	privateairship_destination
+prt_sewb1	mapflag	privateairship_destination
+prt_sewb2	mapflag	privateairship_destination
+prt_sewb3	mapflag	privateairship_destination
+prt_sewb4	mapflag	privateairship_destination
+ra_fild01	mapflag	privateairship_destination
+ra_fild03	mapflag	privateairship_destination
+ra_fild04	mapflag	privateairship_destination
+ra_fild05	mapflag	privateairship_destination
+ra_fild06	mapflag	privateairship_destination
+ra_fild08	mapflag	privateairship_destination
+ra_fild12	mapflag	privateairship_destination
+ra_san01	mapflag	privateairship_destination
+ra_san02	mapflag	privateairship_destination
+ra_san03	mapflag	privateairship_destination
+ra_san04	mapflag	privateairship_destination
+ra_san05	mapflag	privateairship_destination
+ra_temple	mapflag	privateairship_destination
+rachel	mapflag	privateairship_destination
+spl_fild01	mapflag	privateairship_destination
+spl_fild02	mapflag	privateairship_destination
+spl_fild03	mapflag	privateairship_destination
+splendide	mapflag	privateairship_destination
+tha_t01	mapflag	privateairship_destination
+tha_t02	mapflag	privateairship_destination
+tha_t03	mapflag	privateairship_destination
+tha_t04	mapflag	privateairship_destination
+tha_t05	mapflag	privateairship_destination
+tha_t06	mapflag	privateairship_destination
+tha_t07	mapflag	privateairship_destination
+tha_t08	mapflag	privateairship_destination
+tha_t09	mapflag	privateairship_destination
+tha_t10	mapflag	privateairship_destination
+tha_t11	mapflag	privateairship_destination
+tha_t12	mapflag	privateairship_destination
+thor_v01	mapflag	privateairship_destination
+thor_v02	mapflag	privateairship_destination
+thor_v03	mapflag	privateairship_destination
+treasure01	mapflag	privateairship_destination
+treasure02	mapflag	privateairship_destination
+tur_dun01	mapflag	privateairship_destination
+tur_dun02	mapflag	privateairship_destination
+tur_dun03	mapflag	privateairship_destination
+tur_dun04	mapflag	privateairship_destination
+tur_dun05	mapflag	privateairship_destination
+um_fild01	mapflag	privateairship_destination
+um_fild02	mapflag	privateairship_destination
+um_fild03	mapflag	privateairship_destination
+um_fild04	mapflag	privateairship_destination
+umbala	mapflag	privateairship_destination
+ve_fild01	mapflag	privateairship_destination
+ve_fild02	mapflag	privateairship_destination
+ve_fild03	mapflag	privateairship_destination
+ve_fild04	mapflag	privateairship_destination
+ve_fild06	mapflag	privateairship_destination
+ve_fild07	mapflag	privateairship_destination
+veins	mapflag	privateairship_destination
+ver_eju	mapflag	privateairship_destination
+ver_tunn	mapflag	privateairship_destination
+verus03	mapflag	privateairship_destination
+verus04	mapflag	privateairship_destination
+yuno	mapflag	privateairship_destination
+yuno_fild01	mapflag	privateairship_destination
+yuno_fild02	mapflag	privateairship_destination
+yuno_fild03	mapflag	privateairship_destination
+yuno_fild04	mapflag	privateairship_destination
+yuno_fild06	mapflag	privateairship_destination
+yuno_fild07	mapflag	privateairship_destination
+yuno_fild08	mapflag	privateairship_destination
+yuno_fild09	mapflag	privateairship_destination
+yuno_fild11	mapflag	privateairship_destination
+yuno_fild12	mapflag	privateairship_destination

+ 1 - 1
npc/re/merchants/3rd_trader.txt

@@ -81,7 +81,7 @@
 	close;
 }
 job3_guil01,79,96,3	duplicate(phs)	Poison Herb Merchant	4_F_YUNYANG
-morocc,191,94,4	duplicate(phs)	Poison Herb Merchant#moc	4_F_YUNYANG	//Official: (190,96) -> in a wall
+morocc,193,100,4	duplicate(phs)	Poison Herb Merchant#moc	4_F_YUNYANG
 lhz_in02,16,205,4	duplicate(phs)	Poison Herb Merchant#lhz	4_F_YUNYANG
 
 // Rune Stone Merchants (Rune Knight) :: rune_3rd_trader

+ 30 - 1
npc/re/merchants/shops.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= rAthena Dev Team
 //===== Current Version: ===================================== 
-//= 1.9
+//= 2.0
 //===== Compatible With: ===================================== 
 //= rAthena Project
 //===== Description: ========================================= 
@@ -19,6 +19,7 @@
 //= 1.7 Added Izlude duplicates. [Euphy]
 //= 1.8 Added Rebellion Machines. [Rekiem]
 //= 1.9 Added Renewal Ninja shops. [Euphy]
+//= 2.0 Moved and updated Morocc merchants. [zackdreaver]
 //============================================================ 
 
 //=======================================================
@@ -91,6 +92,25 @@ malangdo,232,163,5	shop	Tool Dealer Myo	560,611:-1,1750:-1,645:-1,656:-1,601:-1,
 mora,100,118,4	shop	Tool Dealer#mora	517,11522:-1,11523:-1,11524:-1,602:-1,601:-1,611:-1,1773:-1,1774:-1
 mora,138,110,4	shop	Mora Chef	518,11519:-1
 
+//=======================================================
+// Morroc
+//=======================================================
+morocc,156,76,4	shop	Butcher#moc1	58,517:-1
+moc_ruins,91,128,4	shop	Tool Dealer#moc1	93,1750:-1,611:-1,501:-1,502:-1,503:-1,504:-1,645:-1,656:-1,713:-1,23280:-1,601:-1,602:-1,23288:-1,1065:-1
+moc_ruins,114,63,6	shop	Tool Dealer#moc2	99,1750:-1,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,645:-1,656:-1,23280:-1,601:-1,602:-1,23288:-1,1065:-1
+morocc,146,103,6	shop	Tool Dealer#moc3	99,1750:-1,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,645:-1,656:-1,23280:-1,601:-1,602:-1,23288:-1,1065:-1
+morocc,151,241,4	shop	Tool Dealer#moc4	93,1750:-1,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,645:-1,656:-1,23280:-1,601:-1,602:-1,23288:-1,1065:-1
+moc_ruins,118,170,4	shop	Pet Groomer#moc	125,537:-1,643:-1,10013:-1,10014:-1,554:-1,6114:-1,6113:-1,6110:-1,6115:-1,6100:-1,6098:-1,6112:-1,6104:-1,6108:-1,6111:-1,6095:-1,6099:-1,6096:-1,6097:-1,6094:-1
+morocc,203,87,4	shop	Pet Groomer#moc1	125,537:-1,643:-1,10013:-1,10014:-1,554:-1,6114:-1,6113:-1,6110:-1,6115:-1,6100:-1,6098:-1,6112:-1,6104:-1,6108:-1,6111:-1,6095:-1,6099:-1,6096:-1,6097:-1,6094:-1
+morocc,154,55,6	shop	Jeweler#moc3	99,730:-1,2613:-1
+morocc,171,103,4	shop	Item Collector#moc3	85,911:-1,528:-1,919:-1,925:-1
+morocc,205,247,2	shop	Item Collector#moc4	85,911:-1,528:-1,919:-1,925:-1
+morocc,140,90,6	shop	Trader#moc6	99,513:-1,513:-1,513:-1,513:-1,513:-1,513:-1
+morocc,166,54,2	shop	Jeweler#moc4	102,721:-1,723:-1,726:-1,728:-1,729:-1
+morocc,34,68,0	shop	Trader#moc7	93,748:-1
+morocc,269,193,4	shop	Trader#moc8	89,2609:-1,1516:-1,1522:-1
+morocc,256,191,5	shop	Trader#moc9	93,2612:-1
+
 //=======================================================
 // Mid Camp
 //=======================================================
@@ -134,3 +154,12 @@ prontera,92,209,4	shop	Rebellion Weapons	564,13120:-1,13122:-1,13189:-1,13190:-1
 ra_in01,263,281,4	shop	Trap Specialist#ra	66,7940:-1,12341:-1
 ra_in01,257,266,4	shop	Black Marketeer#ra	49,2139:-1,2800:-1,2801:-1,2802:-1,2803:-1,2804:-1,2805:-1,2806:-1,2807:-1,18000:-1,18001:-1,18002:-1,18003:-1,18004:-1,12392:-1,12393:-1,12394:-1,6145:-1,6146:-1,6147:-1,6186:-1,2808:-1
 s_atelier,137,60,3	shop	Part-Timer#sc_ra	70,6123:-1,6120:-1
+
+//=======================================================
+// Cooking Addition
+//=======================================================
+prontera,156,212,1	shop	Chef Assistant#prt	700,12849:-1,581:-1,7482:-1,580:-1;577:-1,7457:-1;7454:-1,7455:-1;7453:-1;7456:-1;7452:-1;579:-1;12125:-1;12126:-1,12127:-1,7472:-1,7473:-1,7474:-1,7475:-1,7476:-1
+moc_ruins,115,123,5	shop	Chef Assistant#moc	86,12849:-1,581:-1,7482:-1,580:-1;577:-1,7457:-1;7454:-1,7455:-1;7453:-1;7456:-1;7452:-1;579:-1;12125:-1;12126:-1,12127:-1
+geffen,196,111,3	shop	Chef Assistant#gef	85,12849:-1,581:-1,7482:-1,580:-1;577:-1,7457:-1;7454:-1,7455:-1;7453:-1;7456:-1;7452:-1;579:-1;12125:-1;12126:-1,12127:-1
+alberta,167,135,5	shop	Chef Assistant#alb	712,12849:-1,581:-1,7482:-1,580:-1;577:-1,7457:-1;7454:-1,7455:-1;7453:-1;7456:-1;7452:-1;579:-1;12125:-1;12126:-1,12127:-1
+payon,206,119,5	shop	Chef Assistant#pay	89,12849:-1,581:-1,7482:-1,580:-1;577:-1,7457:-1;7454:-1,7455:-1;7453:-1;7456:-1;7452:-1;579:-1;12125:-1;12126:-1,12127:-1

+ 18 - 0
npc/re/merchants/socket_enchant2.txt

@@ -0,0 +1,18 @@
+//===== rAthena Script ======================================= 
+//= Episode 12 Socket Enchant NPC
+//===== By: ================================================== 
+//= Gepard
+//===== Current Version: ===================================== 
+//= 1.1a
+//===== Compatible With: ===================================== 
+//= rAthena Project
+//===== Description: ========================================= 
+//= [Official Conversion]
+//= Adds slots to selected weapons and armor.
+//===== Additional Comments: ================================= 
+//= 1.0 First version.
+//= 1.1 Duplicates now spawn from floating NPCs. [L0ne_W0lf]
+//= 1.1a Added 'disable_items' command. [Euphy]
+//============================================================ 
+
+morocc,270,159,3	duplicate(SocketEnchant2)	Leablem#moc	86

+ 2 - 2
npc/re/other/dimensional_gap.txt

@@ -230,8 +230,8 @@ OnTimer39000:
 	npctalk "Right.. I should have entered with another group!", "Party Member#SHADOW";
 	end;
 OnTimer40500:
-	emotion ET_KIK, getnpcid(0, "Party Member#CRU::OnChat24");
-	npctalk "Hey. Are you pissed off?", "Party Member#CRU::OnChat24";
+	emotion ET_KIK, getnpcid(0, "Party Member#CRU");
+	npctalk "Hey. Are you pissed off?", "Party Member#CRU";
 	end;
 OnTimer42000:
 	npctalk "Not at all.", "Party Member#GUILL";

+ 3 - 0
npc/re/quests/mrsmile.txt

@@ -12,6 +12,7 @@
 //===== Additional Comments: ================================= 
 //= 1.0 Updated to match the new Izlude Map. [Masao]
 //= 1.1 Added Izlude duplicates. [Euphy]
+//= 1.2 Added Morocc [zackdreaver]
 //============================================================ 
 
 izlude,125,175,4	duplicate(SmileHelper)	Smile Assistance#iz	92
@@ -19,3 +20,5 @@ izlude_a,125,175,4	duplicate(SmileHelper)	Smile Assistance#iz_a	92
 izlude_b,125,175,4	duplicate(SmileHelper)	Smile Assistance#iz_b	92
 izlude_c,125,175,4	duplicate(SmileHelper)	Smile Assistance#iz_c	92
 izlude_d,125,175,4	duplicate(SmileHelper)	Smile Assistance#iz_d	92
+
+morocc,159,107,4	duplicate(SmileHelper)	Smile Assistance#moc2	92

+ 2 - 2
npc/re/quests/quests_15_1.txt

@@ -6439,7 +6439,7 @@ lhz_in01,275,251,3	script	Luke Lapez#ep152i01	4_M_EDEN_GUARDER,{
 	cutin "",255;
 	npctalk "So much for the damn escort...", "Luke Lapez#ep152i01";
 	sleep 400;
-	emotion ET_FRET, getnpcid(0, "Commander Arquien#ep152");
+	emotion ET_FRET, getnpcid(0, "Commander Arquien#ep152i");
 	sleep 200;
 	emotion ET_THINK, getnpcid(0, "Luke Lapez#ep152i01");
 	end;
@@ -6535,7 +6535,7 @@ lhz_in01,270,257,4	script	Rekenber Chairman#e152i	4_M_REKENBER,{
 		mes "The time, that accident or whatever you call it.";
 		mes "When I found a seemingly artificial obstacle during the juperos excavation..";
 		mes "Ian suddenly disappeared.";
-		emotion ET_SURPRISE, getnpcid(0, "Commander Arquien#ep152");
+		emotion ET_SURPRISE, getnpcid(0, "Commander Arquien#ep152i");
 		next;
 		cutin "verus_ian01.bmp",2;
 		mes "[Ian Atnad]";

+ 15 - 4
npc/re/quests/quests_16_1.txt

@@ -15254,7 +15254,13 @@ prt_pri00,61,136,3	script	Dylan#pa0829	4_CAT_SAILOR5,{
 				124, 4701,	// STR+2
 				126, 4731,	// AGI+2
 				128, 4751,	// LUK+2
-				129, 4741;	// VIT+2
+				129, 4741,	// VIT+2
+				130, 4752,	// LUK+3
+				131, 4702,	// STR+3
+				132, 4732,	// AGI+3
+				133, 4712,	// INT+3
+				134, 4722,	// DEX+3
+				135, 4742;	// VIT+3
 			.@card_index = 3;
 		}
 		else {
@@ -15269,9 +15275,14 @@ prt_pri00,61,136,3	script	Dylan#pa0829	4_CAT_SAILOR5,{
 				120, 4711,	// INT+2
 				122, 4721,	// DEX+2
 				124, 4741,	// VIT+2
-				126, 4742,	// VIT+3
-				128, 4701,	// STR+2
-				129, 4752;	// LUK+3
+				126, 4701,	// STR+2
+				128, 4731,	// AGI+2
+				129, 4742,	// VIT+3
+				130, 4752,	// LUK+3
+				131, 4702,	// STR+3
+				132, 4732,	// AGI+3
+				133, 4712,	// INT+3
+				134, 4722;	// DEX+3
 			.@card_index = 2;
 		}
 		.@size = getarraysize(.@enhance);

+ 1 - 1
npc/re/quests/quests_malangdo.txt

@@ -3491,7 +3491,7 @@ malangdo,125,147,3	script	Patrol Leader#ml	545,{
 	close;
 }
 
-malangdo,129,146,3	script	Crime Prevention Staff	545,{
+malangdo,129,146,3	script	Crime Prevention Staff#ml	545,{
 	if (malang_bad_guys > 11) {
 		mes "[Crime Prevention Staff]";
 		mes "A work to do means happy things!";

+ 10 - 0
npc/re/quests/quests_morocc.txt

@@ -15,6 +15,14 @@
 //= 1.1 Added new warpers for Satan Morroc maps. [Euphy]
 //============================================================
 
+// Stop Post Quest
+// ============================================================
+morocc,152,167,4	duplicate(William)	William#moc	89
+
+// Binoculars Quest
+// ============================================================
+morocc,169,168,4	duplicate(Alchemist)	Alchemist#moc	64
+
 // Resurrection of Satan Morroc
 // ============================================================
 -	script	Continental Guard#man	-1,{
@@ -49,6 +57,8 @@ moc_fild16,124,381,4	duplicate(Continental Guard#man)	Continental Guard#man7	852
 moc_fild16,333,380,4	duplicate(Continental Guard#man)	Continental Guard#man8	852
 moc_fild01,84,19,1	duplicate(Continental Guard#man)	Continental Guard#man9	852
 
+morocc,176,101,3	duplicate(Continental Official)	Continental Official#mor	754
+
 // Pyramids Nightmare Mode :: nightmare_pry
 //============================================================
 moc_prydb1,103,54,3	script	Suspicious Cat#night	547,{

+ 4 - 0
npc/re/scripts_athena.conf

@@ -5,6 +5,9 @@
 // -------------------------- Airport ---------------------------
 npc: npc/re/airports/izlude.txt
 
+// --------------------- Battle Grounds -------------------------
+npc: npc/re/battleground/bg_common.txt
+
 // --------------------------- Cities ---------------------------
 npc: npc/re/cities/alberta.txt
 npc: npc/re/cities/brasilis.txt
@@ -105,6 +108,7 @@ npc: npc/re/merchants/quivers.txt
 npc: npc/re/merchants/refine.txt
 npc: npc/re/merchants/renters.txt
 npc: npc/re/merchants/shops.txt
+npc: npc/re/merchants/socket_enchant2.txt
 //npc: npc/re/merchants/ticket_refiner.txt
 //npc: npc/re/merchants/enchan_upg.txt
 //npc: npc/re/merchants/cash_trader-idRO.txt

+ 1 - 0
npc/re/scripts_mapflags.conf

@@ -13,6 +13,7 @@ npc: npc/re/mapflag/nosave.txt
 npc: npc/re/mapflag/noteleport.txt
 npc: npc/re/mapflag/nowarpto.txt
 //npc: npc/re/mapflag/partylock.txt
+npc: npc/re/mapflag/privateairship.txt
 npc: npc/re/mapflag/night.txt
 npc: npc/re/mapflag/restricted.txt
 npc: npc/re/mapflag/town.txt

+ 1 - 1
sql-files/item_db.sql

@@ -786,7 +786,7 @@ REPLACE INTO `item_db` VALUES (1479,'Spectral_Spear_','Spectral Spear',5,20,NULL
 REPLACE INTO `item_db` VALUES (1480,'Gae_Bolg_','Gae Bolg',5,20,NULL,2000,160,NULL,3,2,0x00004082,7,2,34,4,60,1,5,'bonus bIgnoreDefRace,RC_Dragon; bonus2 bAddClass,Class_Boss,10;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (1481,'Zephyrus_','Zephyrus',5,20,NULL,2000,170,NULL,3,3,0x00004082,7,2,34,4,48,1,5,'bonus bAtkEle,Ele_Wind; bonus2 bAddEff,Eff_Silence,200; bonus3 bAutoSpell,"MG_THUNDERSTORM",3,100;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (1482,'BF_Lance1','Assaulter Lance',5,NULL,NULL,0,160,NULL,3,0,0x00004082,7,2,34,3,80,1,5,'bonus bStr,2; bonus2 bAddRace,RC_DemiHuman,25; bonus2 bAddRace,RC_Player,25; bonus bIgnoreDefRace,RC_DemiHuman; bonus bIgnoreDefRace,RC_Player; bonus bUnbreakableWeapon;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (1483,'Ivory_Lance','Ivory Lance',5,20,NULL,1000,160,NULL,3,1,0x00004082,2,2,34,3,50,1,5,'bonus bAgi,2; bonus bAspdRate,3; bonus2 bAddEff,Eff_Bleeding,300; bonus3 bAutoSpell,"LK_JOINTBEAT",1,100; skill "KN_SPEARSTAB",5;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (1483,'Ivory_Lance','Ivory Lance',5,20,NULL,1000,160,NULL,3,1,0x00004082,2,2,34,3,50,1,5,'bonus bAgi,2; bonus bAspdRate,3; bonus2 bAddEff,Eff_Bleeding,300; bonus3 bAutoSpell,"NPC_CRITICALWOUND",1,30; skill "KN_SPEARSTAB",5;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (1484,'Cardo','Cardo',5,20,NULL,5600,150,NULL,3,1,0x00000080,2,2,34,4,70,1,5,'bonus bAspdRate,-10; bonus bDef,getrefine()/2;',NULL,NULL);
 REPLACE INTO `item_db` VALUES (1485,'Battle_Fork','Battle Fork',5,20,NULL,700,112,NULL,3,4,0x00004082,2,2,34,2,50,1,5,NULL,NULL,NULL);
 REPLACE INTO `item_db` VALUES (1486,'Krieger_Twohand_Spear1','Glorious Lance',5,20,NULL,0,220,NULL,3,0,0x00004082,7,2,34,4,80,1,5,'bonus2 bAddRace,RC_DemiHuman,70; bonus2 bAddRace,RC_Player,70; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,25; bonus2 bIgnoreDefRaceRate,RC_Player,25; bonus bUnbreakableWeapon; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bAddRace,RC_Player,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRaceRate,RC_DemiHuman,5; bonus2 bIgnoreDefRaceRate,RC_Player,5; } if(getrefine()>8) { if(BaseJob==Job_Knight) bonus4 bAutoSpellOnSkill,"KN_PIERCE","NPC_CRITICALWOUND",2,200; else if(BaseJob==Job_Crusader) bonus3 bAutoSpell,"PA_PRESSURE",5,200; }',NULL,NULL);

+ 135 - 11
sql-files/item_db_re.sql

@@ -687,7 +687,7 @@ REPLACE INTO `item_db_re` VALUES (1291,'Guillotine_Katar','Guillotine Katar',5,5
 REPLACE INTO `item_db_re` VALUES (1292,'Upg_Katar','Upg Katar',5,20,NULL,1000,'80',NULL,1,1,0x00001000,63,2,34,3,'1',1,16,'.@r = getrefine(); bonus bBaseAtk,(.@r*10); bonus bCritAtkRate,(.@r*2); if(BaseLevel>70) bonus bBaseAtk,(((BaseLevel-70)/10)*10);',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (1293,'Velum_Jamadhar','Vellum Jamadhar',5,20,NULL,1200,'170',NULL,1,0,0x00001000,63,2,34,4,'95',1,16,'bonus4 bSetDefRace,RC_Player,10000,5000,1; bonus4 bSetMDefRace,RC_Player,10000,5000,1; bonus bAspdRate,getrefine();',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (1294,'Velum_Scare','Vellum Scale',5,20,NULL,1200,'50',NULL,1,0,0x00001000,63,2,34,4,'95',1,16,'bonus3 bSPVanishRaceRate,RC_Player,10000,10;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (1295,'Blood_Tears_','Blood Tears',5,20,NULL,1700,'120',NULL,1,3,0x00001000,18,2,34,4,'55',1,16,NULL,NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (1295,'Blood_Tears_','Blood Tears',5,20,NULL,1700,'120',NULL,1,3,0x00001000,18,2,34,4,'55',1,16,'bonus3 bAutoSpell,"NPC_WIDEBLEEDING",(getrefine()>=9?2:1),30;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (1296,'Metal_Katar','Metal Katar',5,20,NULL,0,'75',NULL,1,1,0x00001000,63,2,34,3,'1',1,16,'.@r = getrefine(); bonus bBaseAtk,(.@r*5); bonus bCritAtkRate,.@r; .@i = min(BaseLevel/10,12); if(.@i>2) bonus bBaseAtk,((.@i-2)*5);',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (1297,'Inverse_Scale_','Inverse Scale',5,20,NULL,1500,'140',NULL,1,2,0x00001000,18,2,34,4,'55',1,16,'bonus bAtkEle,Ele_Holy; bonus3 bAutoSpell,"NPC_DRAGONFEAR",1,30;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (1298,'Shiver_Katar','Katar Of Horror',5,60000,NULL,2700,'110',NULL,1,2,0x00001000,63,2,34,4,'105',1,16,NULL,NULL,NULL);
@@ -718,6 +718,7 @@ REPLACE INTO `item_db_re` VALUES (1321,'Dofle_Axe_','Deflation Axe',5,50000,NULL
 REPLACE INTO `item_db_re` VALUES (1322,'Ru_Blue_Axe','Blue Axe',5,10,NULL,1800,'180',NULL,1,1,0xFFFFFFFF,63,2,2,1,'1',1,6,'bonus bStr,5; bonus bVit,5;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (1323,'Ru_Gold_Axe','Ru Gold Axe',5,0,NULL,1800,'180',NULL,1,2,0x00040000,56,2,2,3,'120',1,6,'bonus bStr,8; bonus bInt,8;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (1324,'War_Axe_','War Axe',5,20,NULL,4200,'140',NULL,1,3,0x00040400,63,2,2,3,'76',1,6,'bonus bDex,2; bonus bLuk,2;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (1326,'Illusion_War_Axe','Illusion War Axe',5,0,NULL,4200,'180',NULL,1,2,0x00040420,63,2,2,4,'120',1,6,'bonus bStr,2; bonus bDex,2; bonus bLuk,2; .@r = getrefine(); if (.@r >= 9) { .@val = 40; } else if (.@r >= 7) { .@val = 20; } bonus2 bSkillAtk,"NC_AXETORNADO",(100+.@val); bonus2 bSkillAtk,"NC_AXEBOOMERANG",(100+.@val); bonus2 bSkillAtk,"GN_CART_TORNADO",(75+.@val);',NULL,NULL);
 #===================================================================
 # 2-Handed Axes
 #===================================================================
@@ -854,9 +855,9 @@ REPLACE INTO `item_db_re` VALUES (1473,'Wizardy_Staff','Wizardry Staff',5,20,NUL
 REPLACE INTO `item_db_re` VALUES (1474,'Gae_Bolg','Gae Bolg',5,20,NULL,2000,'160',NULL,3,0,0x00004082,63,2,34,4,'60',1,5,'bonus bIgnoreDefRace,RC_Dragon; bonus2 bAddClass,Class_Boss,10;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (1475,'Horseback_Lance','Equestrian\'s Spear',5,20,NULL,3700,'200',NULL,4,0,0x00004082,63,2,34,4,'75',1,5,NULL,NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (1476,'Crescent_Scythe_','Crescent Scythe',5,20,NULL,2500,'180',NULL,3,1,0x00004082,63,2,34,4,'48',1,5,'bonus bCritical,30; bonus bHit,10;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (1477,'Spectral_Spear','Spectral Spear',5,20,NULL,2000,'170',NULL,3,0,0x00004082,63,2,34,4,'75',1,5,'bonus2 bAddEle,Ele_Dark,20; bonus2 bAddRace,RC_Demon,20; bonus2 bAddRace,RC_Undead,20; bonus2 bSubEle,Ele_Dark,10; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; bonus2 bAddEff2,Eff_Confusion,1000; bonus bHPGainValue,50;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (1477,'Spectral_Spear','Spectral Spear',5,20,NULL,2000,'170',NULL,3,0,0x00004082,63,2,34,4,'75',1,5,'bonus2 bAddEle,Ele_Dark,20; bonus2 bAddRace,RC_Demon,20; bonus2 bAddRace,RC_Undead,20; bonus2 bSubEle,Ele_Dark,10; bonus2 bSubEle,Ele_Undead,10; bonus2 bSubRace,RC_Demon,10; bonus2 bAddEff2,Eff_Confusion,1000; bonus bHPGainValue,50;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (1478,'Ahlspiess','Ahlspiess',5,20,NULL,1000,'120',NULL,3,0,0x00004080,63,2,34,4,'65',1,5,'bonus bIgnoreDefClass,Class_Normal; bonus bIgnoreDefClass,Class_Boss; bonus2 bAddRace,RC_DemiHuman,10; bonus2 bAddRace,RC_Player,10; bonus3 bAutoSpell,"KN_PIERCE",5,30;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (1479,'Spectral_Spear_','Spectral Spear',5,20,NULL,2000,'170',NULL,3,1,0x00004082,63,2,34,4,'75',1,5,'bonus2 bAddEle,Ele_Dark,20; bonus2 bAddRace,RC_Demon,20; bonus2 bAddRace,RC_Undead,20; bonus2 bSubEle,Ele_Dark,10; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; bonus2 bAddEff2,Eff_Confusion,1000; bonus bHPGainValue,50;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (1479,'Spectral_Spear_','Spectral Spear',5,20,NULL,2000,'170',NULL,3,1,0x00004082,63,2,34,4,'75',1,5,'bonus2 bAddEle,Ele_Dark,20; bonus2 bAddRace,RC_Demon,20; bonus2 bAddRace,RC_Undead,20; bonus2 bSubEle,Ele_Dark,10; bonus2 bSubEle,Ele_Undead,10; bonus2 bSubRace,RC_Demon,10; bonus2 bAddEff2,Eff_Confusion,1000; bonus bHPGainValue,50;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (1480,'Gae_Bolg_','Gae Bolg',5,20,NULL,2000,'160',NULL,3,2,0x00004082,63,2,34,4,'60',1,5,'bonus bIgnoreDefRace,RC_Dragon; bonus2 bAddClass,Class_Boss,10;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (1481,'Zephyrus_','Zephyrus',5,20,NULL,2000,'170',NULL,3,3,0x00004082,63,2,34,4,'48',1,5,'bonus bAtkEle,Ele_Wind; bonus2 bAddEff,Eff_Silence,200; bonus3 bAutoSpell,"MG_THUNDERSTORM",3,100;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (1482,'BF_Lance1','Assaulter Lance',5,20,NULL,0,'160',NULL,3,0,0x00004082,63,2,34,3,'80',1,5,'bonus bStr,2; bonus2 bAddRace,RC_DemiHuman,25; bonus2 bAddRace,RC_Player,25; bonus bIgnoreDefRace,RC_DemiHuman; bonus bIgnoreDefRace,RC_Player; bonus bUnbreakableWeapon;',NULL,NULL);
@@ -1204,6 +1205,7 @@ REPLACE INTO `item_db_re` VALUES (1838,'Half_BF_Knuckle1','Half BF Knuckle1',5,2
 REPLACE INTO `item_db_re` VALUES (1839,'Crimson_Knuckles','Crimson Knuckles',5,20,NULL,1000,'100',NULL,1,2,0x00008100,63,2,2,3,'70',1,12,'.@r = getrefine(); bonus bBaseAtk,((BaseLevel/10)*5)+(.@r<=15?pow(.@r,2):225); bonus bUnbreakableWeapon;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (1840,'Requiem_Knuckle','Requiem Knuckle',5,20,NULL,500,'150:100',NULL,1,0,0x00008100,63,2,2,4,'100',1,12,'.@r = getrefine(); .@b = 40; if(.@r>=5){ .@b += (.@r-5)*15+20; } bonus2 bAddRace2,RC2_BioLab,.@b;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (1841,'Claw_Of_Flash_','Claw of Flash',5,60000,NULL,400,'140',NULL,1,3,0x00008100,63,2,2,4,'105',1,12,'bonus bAspd,1; bonus bAspdRate,getrefine(); bonus2 bAddSize,Size_Medium,getrefine();',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (1846,'Illusion Combo Battle Glove','Illusion Combo Battle Glove',5,0,NULL,500,'250',NULL,1,2,0x00008000,56,2,2,4,'120',1,12,'.@r = getrefine(); bonus2 bSkillAtk,"SR_SKYNETBLOW",(10+5*(.@r/2)); bonus2 bSkillAtk,"SR_DRAGONCOMBO",(10+5*(.@r/2)); bonus2 bSkillAtk,"SR_TIGERCANNON",(5*(.@r/3));',NULL,NULL);
 #===================================================================
 # Instruments
 #===================================================================
@@ -1323,7 +1325,7 @@ REPLACE INTO `item_db_re` VALUES (2016,'Velum_Arc_Wand','Vellum Arc Wand',5,20,N
 REPLACE INTO `item_db_re` VALUES (2017,'Divine_Cross_','Divine Cross',5,20,NULL,1500,'120:210',NULL,1,1,0x00008100,63,2,34,4,'70',1,23,'bonus bUnbreakableWeapon; bonus bAtkEle,Ele_Holy; bonus bDex,4; bonus2 bSubRace,RC_Demon,15; bonus2 bSubRace,RC_Undead,15;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2018,'Metal_Staff','Metal Staff',5,20,NULL,0,'50:70',NULL,1,1,0x00818315,63,2,34,3,'1',1,23,'if(BaseJob==Job_Wizard) bonus bMatk,15; else if(BaseJob==Job_Sage) bonus bMatk,10; bonus bMatk,(getrefine()*5); .@i = min(BaseLevel/10,12); if(.@i>2) bonus bMatk,((.@i-2)*5);',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2019,'TE_Woe_Two_Hand_Staff','TE Woe Two Hand Staff',5,0,NULL,0,'50:130',NULL,1,0,0x00818315,63,2,34,3,'40',1,23,'bonus2 bMagicAddRace,RC_Player,20; bonus3 bAddEff,Eff_Stun,1000,ATF_MAGIC; bonus bHPRecovRate,5; bonus bSPRecovRate,5;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (2020,'Jormungand','Jormungand',5,10,NULL,3000,'200:280',NULL,NULL,0,0x810200,63,2,34,4,'1',0,23,'bonus bInt,20; bonus bUnbreakableWeapon;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (2020,'Jormungand','Jormungand',5,10,NULL,3000,'200:280',NULL,NULL,0,0x810200,63,2,34,4,'1',0,23,'bonus bInt,20; bonus3 bAddEff,Eff_Poison,3000,ATF_MAGIC; bonus2 bAddEffWhenHit,Eff_DPoison,100; bonus bUnbreakableWeapon;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2021,'Ganbantein','Ganbantein',5,0,NULL,2000,'100:320',NULL,1,0,0x00000200,56,2,2,4,'100',1,10,'bonus bInt,25; bonus bDex,25; bonus3 bAddEff,Eff_Poison,1000,ATF_MAGIC; bonus3 bAutoSpell,"AB_SILENTIUM",1,100; bonus bUnbreakableWeapon;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2022,'Staff_Of_Geffen','Staff of Geffen',5,20,NULL,1000,'100:300',NULL,1,1,0x00000200,18,2,34,1,'150',1,23,'bonus bInt,20;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2023,'Thanos_Rod','Thanatos Two-Handed Staff',5,10,NULL,1400,'120:250',NULL,1,1,0x00018314,56,2,34,4,'120',1,23,'bonus bInt,6; bonus bVit,6; bonus bLuk,-6; bonus bHealPower,18; bonus bMagicHPGainValue,500; bonus bMagicSPGainValue,50; bonus2 bHPLossRate,100,10000;',NULL,'heal -1000,0;');
@@ -1333,6 +1335,8 @@ REPLACE INTO `item_db_re` VALUES (2026,'Staff_of_Vicious_Mind','Staff of Vicious
 REPLACE INTO `item_db_re` VALUES (2027,'Sunflower_Kid','Sunflower Kid',5,10,NULL,1500,'150:320',NULL,NULL,2,0x00000200,56,2,34,4,'170',1,23,'bonus bInt,5; .@r = getrefine(); bonus bMatkRate,(.@r/2); bonus bDelayrate,(.@r*-1); bonus bUnbreakableWeapon;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2030,'Unity_Two-Handed_Staff','Unity Two-Handed Staff',5,20,NULL,500,'95:135',NULL,1,1,0x800200,63,2,34,3,'1',1,23,'bonus bMatk,pow(getrefine(),2)*125/100;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2032,'Requiem_Wizardry_Staff','Requiem Wizardry Staff',5,20,NULL,500,'100:230',NULL,1,NULL,0xFFFFFFFF,63,2,2,4,'100',1,10,'.@r = getrefine(); .@b = 40; .@c = 5; if(.@r>=5){ .@b += (.@r-5)*15+20; .@c += .@r-5; } bonus2 bMagicAddRace2,RC2_BioLab,.@b; bonus2 bSubRace2,RC2_BioLab,.@c; bonus2 bIgnoreMdefRace2Rate,RC2_BioLab,(.@r-5)*10;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (2039,'Illusion_Wizardry_Staff','Illusion Wizardry Staff',5,0,NULL,2400,'150:250',NULL,1,2,0x00810204,58,2,34,4,'100',1,23,'.@val = min(getrefine(),10)/2; bonus bInt,(6+.@val); bonus bDex,(2+.@val);',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (2051,'Illusion_Survivor\'s_Staff','Illusion Survivor\'s Staff',5,0,NULL,1200,'100:240',NULL,1,2,0x00818314,63,2,34,4,'120',1,23,'.@r = getrefine(); bonus bDex,2; bonus bInt,2; bonus bMaxHP,600; bonus bUnbreakableWeapon; bonus bMatkRate,(.@r/2); if (.@r >= 7) { bonus2 bMagicAddSize,Size_Small,15; bonus2 bMagicAddSize,Size_Medium,15; if (.@r >= 9) { bonus2 bSubSize,Size_Small,15; bonus2 bSubSize,Size_Medium,15; if (.@r >= 11) { bonus2 bSubDefEle,Ele_Water,15; bonus2 bSubDefEle,Ele_Wind,15; bonus2 bSubDefEle,Ele_Earth,15; bonus2 bSubDefEle,Ele_Fire,15; } } }',NULL,NULL);
 #===================================================================
 # Shields
 #===================================================================
@@ -1806,14 +1810,14 @@ REPLACE INTO `item_db_re` VALUES (2565,'Beach_Towel','Beach Towel',4,20,NULL,100
 REPLACE INTO `item_db_re` VALUES (2566,'Half_Asprika','Half Asprika',4,20,NULL,0,NULL,20,NULL,0,0xFFFFFFFF,63,2,4,NULL,'47',0,0,'bonus bMdef,2; bonus3 bSubEle,Ele_Neutral,15,BF_SHORT; bonus3 bSubEle,Ele_Water,15,BF_SHORT; bonus3 bSubEle,Ele_Earth,15,BF_SHORT; bonus3 bSubEle,Ele_Fire,15,BF_SHORT; bonus3 bSubEle,Ele_Wind,15,BF_SHORT; bonus3 bSubEle,Ele_Poison,15,BF_SHORT; bonus3 bSubEle,Ele_Holy,15,BF_SHORT; bonus3 bSubEle,Ele_Dark,15,BF_SHORT; bonus3 bSubEle,Ele_Ghost,15,BF_SHORT; bonus3 bSubEle,Ele_Undead,15,BF_SHORT; bonus bFlee,15; skill "AL_TELEPORT",1; bonus bUnbreakableGarment;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2567,'Academy_Manteau','Academy Manteau',4,0,NULL,600,NULL,3,NULL,1,73,7,2,4,NULL,'0',1,0,NULL,NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2568,'Muffler_Of_Roki','Loki\'s Muffler',4,20,NULL,400,NULL,10,NULL,0,0xFFFFFFFF,63,2,4,NULL,'100',0,0,'bonus bAgi,1; bonus2 bSkillAtk,"ASC_BREAKER",5; bonus2 bSkillAtk,"GC_CROSSIMPACT",5;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (2569,'Shawl_Of_Affection','Shawl Of Affection',4,20,NULL,400,NULL,12,NULL,0,0x00000100,63,2,4,NULL,'100',1,0,'bonus bFlee2,5; bonus5 bAutoSpellWhenHit,"AB_RENOVATIO",1,30,BF_WEAPON,0; bonus5 bAutoSpellWhenHit,"AB_RENOVATIO",1,40,BF_MAGIC,0;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (2569,'Shawl_Of_Affection','Shawl Of Affection',4,20,NULL,400,NULL,12,NULL,0,0x00000100,63,2,4,NULL,'100',1,0,'bonus bFlee2,5; autobonus2 "{ bonus2 bHPRegenRate,1000,5000; }",300,90000,BF_WEAPON; autobonus2 "{ bonus2 bHPRegenRate,1000,5000; }",400,90000,BF_MAGIC;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2570,'Shawl_Of_Judgement','Shawl Of Judgement',4,20,NULL,400,NULL,12,NULL,0,0x00000100,63,2,4,NULL,'100',1,0,'bonus bFlee,5; .@i = max(2,getskilllv("AB_ORATIO")); bonus5 bAutoSpellWhenHit,"AB_ORATIO",.@i,30,BF_WEAPON,0; bonus5 bAutoSpellWhenHit,"AB_ORATIO",.@i,40,BF_MAGIC,0;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2571,'Para_Team_Manteau2','Eden Team Manteau II',4,0,NULL,0,NULL,18,NULL,0,0xFFFFFFFF,63,2,4,NULL,'60',0,0,'bonus bFlee,12; bonus2 bSubEle,Ele_Neutral,10;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2572,'Katabart_Sholder','Katabart Sholder',4,20,NULL,3000,NULL,4,NULL,1,0xFFFFFFFF,63,2,4,NULL,'70',1,0,NULL,NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2573,'Archangel_Wing','Archangel Wings',4,0,NULL,200,NULL,18,NULL,1,0xFFFFFFFF,63,2,4,NULL,'0',1,1,NULL,NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2574,'Ur_Manteau','Ur\'s Manteau',4,20,NULL,600,NULL,20,NULL,0,0x00000080,56,2,4,NULL,'100',1,0,'bonus bMaxHPrate,2; bonus2 bSubEle,Ele_Neutral,10;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2575,'Peuz_Manteau','Peuz\'s Manteau',4,20,NULL,600,NULL,16,NULL,0,0x00000080,56,2,4,NULL,'100',1,0,'bonus bFlee,10; bonus bCritical,10;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (2576,'Bravery_Bag','Adventurer\'s Backpack',4,0,NULL,200,NULL,20,NULL,1,0xFFFFFFFF,63,2,4,NULL,'0',1,2,'skill "BS_GREED",1; .@r = getrefine(); if(.@r>6) { if(readparam(bStr)>=90){ bonus bBaseAtk,20; } if(readparam(bInt)>=90){ bonus bMatk,30; } if(readparam(bVit)>=90){ bonus2 bSubEle,Ele_Neutral,10; } if(readparam(bAgi)>=90){ bonus bAspdRate,8; } if(readparam(bDex)>=90){ bonus bLongAtkRate,5; } if(readparam(bLuk)>=90){ bonus bCritAtkRate,10; } } if(.@r>8) { if(readparam(bStr)>=90){ bonus bBaseAtk,10; } if(readparam(bInt)>=90){ bonus bMatk,20; } if(readparam(bVit)>=90){ bonus2 bSubEle,Ele_Neutral,5; } if(readparam(bAgi)>=90){ bonus bAspd,1; } if(readparam(bDex)>=90){ bonus bLongAtkRate,5; } if(readparam(bLuk)>=90){ bonus bCritAtkRate,5; } }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (2576,'Bravery_Bag','Adventurer\'s Backpack',4,0,NULL,200,NULL,20,NULL,1,0xFFFFFFFF,63,2,4,NULL,'0',1,2,'skill "BS_GREED",1; .@r = getrefine(); if(.@r>=7) { if(readparam(bStr)>=90) { bonus bBaseAtk,(.@r>=9)?30:20; } if(readparam(bInt)>=90) { bonus bMatk,(.@r>=9)?50:30; } if(readparam(bVit)>=90) { bonus2 bSubEle,Ele_Neutral,(.@r>=9)?10:5; } if(readparam(bAgi)>=90) { bonus bAspdRate,8; if(.@r>=9) { bonus bAspd,1; } } if(readparam(bDex)>=90) { bonus bLongAtkRate,(.@r>=9)?10:5; } if(readparam(bLuk)>=90) { bonus bCritAtkRate,(.@r>=9)?15:10; } }',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2577,'Sabah_Hood','Sapha Hood',4,20,NULL,100,NULL,13,NULL,0,0x00001000,63,2,4,NULL,'100',1,0,'bonus bFlee,12; bonus bCritical,getrefine();',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2578,'Nab_Hood','Nab Hood',4,20,NULL,100,NULL,13,NULL,0,0x00001000,63,2,4,NULL,'100',1,0,'.@r = getrefine(); bonus bFlee,.@r*2; bonus bBaseAtk,.@r*2;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2579,'Magic_Stole','Magic Stole',4,20,NULL,700,NULL,8,NULL,1,0xFFFFFFFF,63,2,4,NULL,'0',1,0,'bonus bMdef,3; bonus bUseSPrate,-5; bonus bMaxSPrate,((getrefine()>=4)?6:3);',NULL,NULL);
@@ -2150,7 +2154,7 @@ REPLACE INTO `item_db_re` VALUES (2910,'Bakonawa_Tattoo','Bakunawa Agimat Tattoo
 REPLACE INTO `item_db_re` VALUES (2911,'Bangungot_Tattoo','Bangungot Agimat Tattoo',4,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,136,NULL,'1',0,0,'bonus bHealPower,4; bonus bHealPower2,7;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2912,'Xylitol_2011','Xylitol 2011',4,20,NULL,300,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'0',0,0,NULL,NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2913,'Thief_Handcuff','Thief Handcuff',4,20,NULL,1400,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'10',0,0,'bonus bBaseAtk,5;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (2914,'Wizard_Left_Eye','Wizard Left Eye',4,20,NULL,100,NULL,1,NULL,1,0x00CFDF80,63,2,136,NULL,'0',0,0,'bonus bInt,4; bonus bMdef,3;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (2914,'Wizard_Left_Eye','Wizard Left Eye',4,20,NULL,100,NULL,1,NULL,1,0x00CFDF80,63,2,136,NULL,'0',0,0,'bonus bInt,4; bonus bMdef,3; bonus bVariableCastrate,3;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2915,'Ettlang_Keepsake','Ettlang Keepsake',4,20,NULL,50,NULL,0,NULL,0,0xFFFFFFFF,63,2,136,NULL,'0',0,0,'bonus bMdef,10;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2916,'Fairy_Wing','Fairy Wing',4,0,NULL,10,NULL,0,NULL,0,0xFFFFFFFF,63,2,136,NULL,'90',0,0,'skill "ECLAGE_RECALL",1;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2917,'Str_Glove','Str Glove',4,75000,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'bonus bMaxHP,100; bonus bMaxSP,20; bonus bBaseAtk,(readparam(bStr)/10); if(readparam(bStr)>=110) bonus2 bAddClass,Class_All,1;',NULL,NULL);
@@ -2205,7 +2209,7 @@ REPLACE INTO `item_db_re` VALUES (2986,'Snake_Ring','Snake Ring',4,20,NULL,100,N
 REPLACE INTO `item_db_re` VALUES (2987,'Snake_Pendant','Snake Pendant',4,20,NULL,100,NULL,3,NULL,1,0xFFFFFFFF,63,2,136,NULL,'0',0,0,'bonus bAgi,3; bonus bLuk,2; bonus bMdef,3;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2988,'Winged_Ring_Of_Newoz','Oz\'s New Wing Ring',4,20,NULL,100,NULL,0,NULL,1,0x00080000,56,1,136,NULL,'130',NULL,NULL,'bonus bVariableCastrate,-25;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2989,'Floral_Bracelet_Of_Igu','Bloody Floral Decoration Bracelet',4,20,NULL,100,NULL,0,NULL,1,0x00080000,56,0,136,NULL,'130',NULL,NULL,'bonus bVariableCastrate,-25;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (2990,'Pendant_Of_Harmony','Pendant of Harmony',4,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,136,NULL,'130',NULL,NULL,'bonus bMatkRate,6; bonus bHPrecovRate,50; bonus bSPrecovRate,50; bonus2 bSubEle,Ele_Holy,5; bonus5 bAutoSpell,"AB_RENOVATIO",1,100,BF_NORMAL,0; bonus4 bAutoSpellWhenHit,"PR_SANCTUARY",3,100,0; bonus bStr,-5;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (2990,'Pendant_Of_Harmony','Pendant of Harmony',4,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,136,NULL,'130',NULL,NULL,'bonus bMatkRate,6; bonus bHPrecovRate,50; bonus bSPrecovRate,50; bonus2 bSubEle,Ele_Holy,5; autobonus "{ bonus2 bHPRegenRate,1000,5000; }",100,90000,BF_NORMAL; bonus4 bAutoSpellWhenHit,"PR_SANCTUARY",3,100,0; bonus bStr,-5;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2991,'Pendant_Of_Chaos','Pendant of Chaos',4,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,136,NULL,'130',NULL,NULL,'bonus2 bAddClass,Class_All,6; bonus2 bSubEle,Ele_Dark,5; bonus2 bResEff,Eff_Confusion,10000; bonus2 bAddEff,Eff_Confusion,500; bonus3 bAutoSpellWhenHit,"NPC_WIDECONFUSE",2,30; bonus bInt,-5;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2992,'Pendant_Of_Maelstorm','Pendant of Maelstrom',4,20,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'130',NULL,NULL,'bonus2 bAddClass,Class_All,6; bonus bMatkRate,6; bonus bAllStats,1; bonus5 bAutoSpellWhenHit,"SC_MAELSTROM",1,100,BF_MAGIC,0;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (2995,'Supplement_Part_Dex','Supplement Part Dex',4,25000,NULL,100,NULL,0,NULL,1,0x00000400,56,2,136,NULL,'100',0,0,'bonus bUseSPrate,-10; bonus bDelayrate,-10; bonus bVariableCastrate,-10; bonus2 bSkillCooldown,"NC_AXEBOOMERANG",-2000;',NULL,NULL);
@@ -2756,7 +2760,7 @@ REPLACE INTO `item_db_re` VALUES (4537,'Sealed_Phreeoni_Card','Sealed Phreeoni C
 REPLACE INTO `item_db_re` VALUES (4538,'Sealed_Bacsojin_Card','Sealed White Lady Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'.@r = getrefine(); bonus bHealPower,(.@r>14?25:15); bonus bUseSPrate,(.@r>14?20:30);',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (4539,'Sealed_F_Bishop_Card','Sealed Fallen Bishop Hibram Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,'.@r = getrefine(); bonus bMatkRate,((.@r>14)?8:5); bonus bMaxSPrate,-50; .@rate = ((.@r>14)?33:25); bonus2 bMagicAddRace,RC_Angel,.@rate; bonus2 bMagicAddRace,RC_DemiHuman,.@rate; bonus2 bMagicAddRace,RC_Player,.@rate;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (4540,'SLD_Lord_Of_Death_Card','Sealed Lord of The Dead Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'.@rate = ((getrefine()>14)?350:250); bonus3 bAddEff,Eff_Stun,.@rate,ATF_SHORT; bonus3 bAddEff,Eff_Curse,.@rate,ATF_SHORT; bonus3 bAddEff,Eff_Silence,.@rate,ATF_SHORT; bonus3 bAddEff,Eff_Poison,.@rate,ATF_SHORT; bonus3 bAddEff,Eff_Bleeding,.@rate,ATF_SHORT; bonus2 bComaClass,Class_Normal,1;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (4541,'SLD_B_Katrinn_Card','Sealed High Wizard Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'bonus2 bIgnoreMdefClassRate,Class_Normal,100; if(getrefine()>14) { bonus bVariableCastrate,120; bonus bSPrecovRate,-120; } else { bonus bVariableCastrate,150; bonus bSPrecovRate,-150; }',NULL,'heal 0,((getrefine()>14)?-2000:-3000);');
+REPLACE INTO `item_db_re` VALUES (4541,'SLD_B_Katrinn_Card','Sealed High Wizard Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'bonus2 bIgnoreMdefClassRate,Class_Normal,100; .@rate = ((getrefine()>14)?120:150); bonus bVariableCastrate,.@rate; bonus bSPrecovRate,-.@rate;',NULL,'heal 0,((getrefine()>14)?-2000:-3000);');
 REPLACE INTO `item_db_re` VALUES (4542,'SLD_Detale_Card','Sealed Detale Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus2 bResEff,Eff_Freeze,(getrefine()>=15?6000:4000); bonus5 bAutoSpell,"SA_LANDPROTECTOR",1,1,BF_MAGIC,1; bonus bMdef,-20;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (4543,'SLD_Garm_Card','Sealed Hatii Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus2 bAddEffWhenHit,Eff_Freeze,((getrefine()>14)?4000:2500);',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (4544,'SLD_Dark_Snake_Card','Sealed Evil Snake Lord Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'bonus bInt,3; .@i = (getrefine()>14?7500:5000); bonus2 bResEff,Eff_Blind,.@i; bonus2 bResEff,Eff_Curse,.@i;',NULL,NULL);
@@ -6585,7 +6589,7 @@ REPLACE INTO `item_db_re` VALUES (12329,'Recall_MaleGM','Summon Male GameMaster
 REPLACE INTO `item_db_re` VALUES (12330,'Recall_FemaleGM','Summon Female GameMaster Scroll',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'mercenary_create 2001,1800000;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (12331,'Ginseng','Ginseng',0,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'percentheal 6,0;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (12332,'Fruit_Juice','Fruit Juice',0,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'percentheal 0,6;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (12333,'Ansila','Ancilla',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'percentheal 0,15;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (12333,'Ansila','Ancilla',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'percentheal 0,15; sc_start SC_ANCILLA,60000,1;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (12334,'Cherish_Box','Treasure Edition Helm Box',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getrandgroupitem(IG_Cherish_Box,1);',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (12335,'Yummy_Skewered_Dish','Grilled Delicious Skewer',0,1000,NULL,350,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'percentheal 60,60;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (12336,'Baked_Mushroom','Grilled Mushroom',0,500,NULL,300,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'percentheal 30,30;',NULL,NULL);
@@ -7104,7 +7108,7 @@ REPLACE INTO `item_db_re` VALUES (12845,'WOB_Amatsu','Amatsu_Butterfly_Wing',2,0
 REPLACE INTO `item_db_re` VALUES (12846,'Unripe_Apple2','Little Unripe Apple',2,10,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'pet 2398;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (12847,'Old_Equipment_Box','Old Equipment Box',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (12848,'Falcon_Flute','Falcon Flute',11,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'if(getskilllv("HT_FALCON")) { if(!checkoption(Option_Wug) && !checkoption(Option_Wugrider)) setfalcon (!checkfalcon()); }',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (12849,'Combination_Kit','Combination Kit',2,0,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'cooking 30;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (12849,'Combination_Kit','Combination Kit',2,40,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'cooking 30;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (12850,'Heaven_Scroll','Heaven Scroll',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getgroupitem(IG_Heaven_Scroll);',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (12851,'Vocation_Scroll','Vocation Scroll',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getgroupitem(IG_Vocation_Scroll);',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (12852,'Wisdom_Scroll','Wisdom Scroll',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getgroupitem(IG_Wisdom_Scroll);',NULL,NULL);
@@ -7533,6 +7537,8 @@ REPLACE INTO `item_db_re` VALUES (13323,'Infinity_Shuriken','Infinity Shuriken',
 REPLACE INTO `item_db_re` VALUES (13327,'Crimson_Huuma_Shuriken','Crimson Huuma Shuriken',5,20,NULL,1000,'100',NULL,1,2,0x22000000,63,2,34,3,'70',1,22,'.@r = getrefine(); bonus bBaseAtk,((BaseLevel/10)*5)+(.@r<=15?pow(.@r,2):225); bonus bMatk,(.@r<=15?(pow(.@r,2)/2):225);',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (13328,'Huuma_Shuriken_of_Vicious_Mind','Huuma Shuriken of Vicious Mind',5,20,NULL,1500,'150:50',NULL,1,1,0x22000000,63,2,34,4,'160',1,22,'bonus bAtk,pow(min(getrefine(),15),2); bonus bMatk,pow(min(getrefine(),15),2)/2; bonus bUnbreakableWeapon;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (13329,'Unity_Huuma_Shuriken','Unity Huuma Shuriken',5,20,NULL,500,'95',NULL,1,1,0x22000000,63,2,34,3,'1',1,22,'bonus bBaseAtk,pow(getrefine(),2)*125/100;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13337,'Illusion_Huuma_Fluttering_Snow','Illusion Huuma Fluttering Snow',5,0,NULL,1500,'250:50',NULL,1,2,0x02000000,63,2,34,4,'120',1,22,'.@r = getrefine(); bonus bBaseAtk,(30*(.@r/3)); bonus bLongAtkRate,(3*.@r);',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13338,'Illusion_Wing_Shuriken','Illusion Wing Shuriken',5,0,NULL,1500,'300',NULL,1,2,0x02000000,63,2,34,4,'120',1,22,'bonus bDex,2; bonus2 bSkillAtk,"KO_HAPPOKUNAI",(9*getrefine());',NULL,NULL);
 #===================================================================
 # More 1-Handed Swords
 #===================================================================
@@ -7586,6 +7592,7 @@ REPLACE INTO `item_db_re` VALUES (13454,'Crimson_Saber','Crimson Saber',5,20,NUL
 REPLACE INTO `item_db_re` VALUES (13455,'Saber_of_Vicious_Mind','Saber of Vicious Mind',5,20,NULL,1350,'135',NULL,1,1,0x000654E3,63,2,2,4,'160',1,2,'bonus bAtk,pow(min(getrefine(),15),2);',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (13456,'Unity_Sword','Unity Sword',5,20,NULL,420,'80',NULL,1,1,0x000654E3,56,2,2,3,'1',1,2,'bonus bBaseAtk,pow(getrefine(),2)*125/100;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (13457,'Unity_Dagger','Unity Dagger',5,20,NULL,270,'52',NULL,1,1,0x028F5EEF,63,2,2,3,'1',1,1,'bonus bBaseAtk,pow(getrefine(),2)*125/100;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (13469,'Illusion_Immaterial_Sword','Illusion Immaterial Sword',5,0,NULL,900,'180',NULL,1,2,0x000654E2,63,2,2,4,'120',1,2,'.@r = getrefine(); bonus bSPDrainValue,-1; bonus bUnbreakableWeapon; if (.@r >= 12) { .@val = 20; } bonus2 bSPVanishRate,(80+(20*.@r)),(30+.@val);',NULL,NULL);
 #===================================================================
 # More Cash Shop Items
 #===================================================================
@@ -8778,6 +8785,8 @@ REPLACE INTO `item_db_re` VALUES (15184,'Para_Team_Uniform145','Awakened Eden Gr
 REPLACE INTO `item_db_re` VALUES (15185,'Para_Team_Uniform160','Awakened Eden Group Uniform V',4,20,NULL,0,NULL,100,NULL,0,0xFFFFFFFF,63,2,16,NULL,'160',NULL,NULL,'bonus bAllStats,2; bonus bMaxHP,1500; bonus bMaxSP,150; bonus bMdef,15; bonus2 bSubEle,Ele_All,5; bonus2 bSubEle,Ele_Neutral,-5;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (15186,'Kafra_Uniform','Kafra Uniform',4,20,NULL,500,NULL,40,NULL,1,0xFFFFFFFF,63,2,16,NULL,'1',1,NULL,'bonus2 bExpAddClass,Class_All,5; bonus2 bDropAddClass,Class_All,5; .@r = getrefine(); bonus bMaxHP,100*.@r; bonus bMaxSP,20*.@r; bonus bMaxHPrate,(3*(.@r>=7)+5*(.@r>=9)); bonus bMaxSPrate,(3*(.@r>=7)+5*(.@r>=9)); if(.@r>=12){ bonus bHPrecovRate,100; bonus bSPrecovRate,100; }',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (15189,'Einherjar_Armor','Einherjar Armor',4,20,NULL,800,NULL,60,NULL,1,0xFFFFFFFF,63,2,16,NULL,'90',1,NULL,'bonus bMdef,5; bonus bBaseAtk,10; .@r = getrefine(); if(.@r>=7){ bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; } if(.@r>=8){ bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; } if(.@r>=9){ bonus2 bSubRace,RC_DemiHuman,2; bonus2 bSubRace,RC_Player,2; }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (15195,'Illusion_Puente_Robe','Illusion Puente Robe',4,20,NULL,400,NULL,52,NULL,1,0xFFFFFFFF,63,2,16,NULL,'99',1,0,'bonus bFixedCastrate,-3; .@r = getrefine(); bonus bHealPower2,(5+.@r); bonus bAddItemHealRate,(5+.@r);',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (15348,'Illusion_Goibne_Armor','Illusion Goibne Armor',4,0,NULL,3500,NULL,158,NULL,1,0xFFFFFFFE,63,2,16,NULL,'130',1,0,'bonus bMaxHPrate,10; .@r = getrefine(); if (.@r >= 9) { bonus bDef,150; } else if (.@r >= 7) { bonus bDef,50; }',NULL,NULL);
 #===================================================================
 # More Maces
 #===================================================================
@@ -8826,6 +8835,8 @@ REPLACE INTO `item_db_re` VALUES (16041,'Mace_of_Vicious_Mind','Mace of Vicious
 REPLACE INTO `item_db_re` VALUES (16043,'Meteor_Strike','Meteor Strike',5,0,NULL,20000,'1',NULL,1,2,0x00000001,63,2,2,4,'110',1,8,'bonus bBaseAtk,10*getskilllv("BS_WEAPONRESEARCH"); bonus bBaseAtk,30*getskilllv("MO_IRONHAND"); .@s = getskilllv("AM_AXEMASTERY"); bonus bBaseAtk,7*.@s; bonus bHit,5*.@s; bonus bBaseAtk,10*getrefine(); if (getskilllv("MC_PUSHCART") > 9) skill "MC_CARTREVOLUTION",1; if (getskilllv("SM_SWORD") > 0) skill "KN_BOWLINGBASH",1; .@str = readparam(bStr); if (.@str > 119) bonus bUseSPrate,-30; else if (.@str > 107) bonus bUseSPrate,-20;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (16048,'Unity_Mace','Unity Mace',5,20,NULL,400,'76',NULL,1,1,0x0004C5B3,63,2,2,3,'1',1,8,'bonus bBaseAtk,pow(getrefine(),2)*125/100;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (16051,'Valkyrie_Hammer','Valkyrie Hammer',5,0,NULL,100,'50',NULL,1,4,0x0004C3B3,63,2,2,1,'70',1,8,'if ((eaclass()&EAJ_BASEMASK) == EAJ_NOVICE) { bonus bUseSPrate,-5; .@r = getrefine(); bonus bVit,.@r; bonus bMaxHP,200; bonus bFlee2,1; bonus bAspdRate,1; bonus bVariableCast,.@r/2; } else if ((eaclass()&EAJ_BASEMASK) == EAJ_SWORDMAN) { bonus bVit,getrefine(); bonus bMaxHP,500; bonus bMaxSP,100; } else if ((eaclass()&EAJL_2) == EAJ_PRIEST) { bonus bBaseAtk,50; bonus bMatk,100; bonus bAspdRate,getrefine(); } else if ((eaclass()&EAJL_2) == EAJ_MONK) { bonus bMaxSP,200; bonus bUseSPrate,-5; bonus bFlee2,getrefine(); } else if ((eaclass()&EAJ_BASEMASK) == EAJ_MERCHANT) { bonus bBaseAtk,100; bonus bHit,10; bonus bVariableCast,getrefine()/2; }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (16063,'Illusion_Long_Mace','Illusion Long Mace',5,20,NULL,800,'185',NULL,3,2,0x00008110,63,2,2,4,'99',1,8,'bonus bLongAtkDef,(10+3*(getrefine()/2));',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (16065,'Illusion_Iron_Driver','Illusion Iron Driver',5,0,NULL,2000,'210',NULL,2,2,0x00000100,56,2,2,4,'120',1,8,'.@r = getrefine(); bonus bAspd,(.@r/2); bonus2 bSkillAtk,"AB_DUPLELIGHT_MELEE",(3*.@r); bonus2 bSkillAtk,"AB_DUPLELIGHT_MAGIC",(3*.@r);',NULL,NULL);
 #===================================================================
 # More Rental Boxes
 #===================================================================
@@ -9559,6 +9570,8 @@ REPLACE INTO `item_db_re` VALUES (18137,'Burning_Bow_','Burning Bow',5,20,NULL,1
 REPLACE INTO `item_db_re` VALUES (18138,'Frozen_Bow_','Frozen Bow',5,20,NULL,1400,'100',NULL,5,2,0x000A0808,63,2,34,3,'55',1,11,'bonus2 bAddEff,Eff_Freeze,1000;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (18139,'Earth_Bow_','Earth Bow',5,20,NULL,1400,'105',NULL,5,2,0x000A0808,63,2,34,3,'55',1,11,NULL,NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (18140,'Gust_Bow_','Gust Bow',5,20,NULL,1400,'95',NULL,5,2,0x000A0808,63,2,34,3,'55',1,11,NULL,NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (18149,'Illusion_Ballista','Illusion Ballista',5,0,NULL,3500,'200',NULL,5,2,0x00080800,58,2,34,4,'100',1,11,'bonus bLongAtkRate,getrefine();',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (18174,'Illusion_Hunter_Bow','Illusion Hunter Bow',5,0,NULL,1500,'165',NULL,5,2,0x00000800,56,2,34,4,'120',1,11,'.@r = getrefine(); bonus bCritical,.@r; if (.@r >= 7) { bonus bAspdRate,10; if (.@r >= 9) { bonus bCritAtkRate,15; if (.@r >= 11) { bonus2 bAddRace,RC_Insect,30; bonus2 bAddRace,RC_Brute,30; } } }',NULL,NULL);
 #===================================================================
 # More Headgears
 #===================================================================
@@ -10027,8 +10040,15 @@ REPLACE INTO `item_db_re` VALUES (19179,'Rabbit_Magic_Hat_','Magic Rabit Hat',4,
 REPLACE INTO `item_db_re` VALUES (19180,'Anubis_Helm_','Anubis Helm',4,20,NULL,0,NULL,8,NULL,1,0xFFFFFFFF,63,2,768,NULL,'65',0,485,'bonus bMdef,5; bonus2 bSubClass,Class_Boss,10; bonus bHealpower2,10; bonus bAddItemHealRate,10;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (19181,'New_Wave_Sunglasses_','New Wave Sunglasses',4,20,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,63,2,512,NULL,'30',0,856,'bonus bDelayRate,-5;',NULL,NULL);
 #
+REPLACE INTO `item_db_re` VALUES (19209,'Illusion_Nurse_Cap','Illusion Nurse Cap',4,20,NULL,200,NULL,1,NULL,1,0x00008110,63,2,256,NULL,'99',1,64,'.@r = getrefine(); bonus bInt,(1+(.@r/2)); bonus bHealPower,(3*(.@r/2));',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (19210,'Illusion_Apple_of_Archer','Illusion Apple of Archer',4,20,NULL,200,NULL,1,NULL,1,0xFFFFFFFE,63,2,256,NULL,'99',1,72,'bonus bDex,(3+(getrefine()/2));',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (19223,'Illusion_Cap','Illusion Cap',4,0,NULL,400,NULL,15,NULL,1,0x000654E3,63,2,256,NULL,'120',1,14,'bonus2 bAddClass,Class_All,1; bonus bBaseAtk,(2*getrefine());',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (19247,'Illusion_Fancy_Flower','Illusion Fancy Flower',4,0,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,256,NULL,'120',0,4,'bonus bMatkRate,1; bonus bMatk,(2*getrefine());',NULL,NULL);
+#
 REPLACE INTO `item_db_re` VALUES (19246,'Royal_Guard_Necklace','Royal Guard Necklace',4,20,NULL,300,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'80',0,1629,'bonus bAspd,1;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (19306,'Gambler_Card','Heart Card in Mouth',4,20,NULL,300,NULL,0,NULL,0,0xFFFFFFFF,63,2,1,NULL,'80',0,1679,'bonus bCritAtkRate,5;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (19344,'Illusion_Hot_blooded_Headband','Illusion Hot-blooded Headband',4,0,NULL,100,NULL,3,NULL,1,0xFFFFFFFE,63,2,256,NULL,'120',1,154,'.@r = getrefine(); bonus bStr,2; bonus bBaseAtk,(10*(.@r/2)); if (.@r >= 7) { bonus2 bAddEle,Ele_Water,10; bonus2 bAddEle,Ele_Wind,10; bonus2 bAddEle,Ele_Earth,10; bonus2 bAddEle,Ele_Neutral,10; if (.@r >= 9) { bonus2 bAddSize,Size_Small,15; bonus2 bAddSize,Size_Large,15; } }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (19366,'Illusion_Goibne_Helm','Illusion Goibne Helm',4,0,NULL,1000,NULL,25,NULL,1,0xFFFFFFFE,63,2,256,NULL,'130',1,258,'.@r = getrefine(); .@vit = 3; if (.@r >= 7) { .@vit += 5; if (.@r >= 9) { bonus bDelayrate,-12; } } bonus bVit,.@vit; bonus bMdef,3;',NULL,NULL);
 #===================================================================
 # Costume System
 #===================================================================
@@ -10928,6 +10948,10 @@ REPLACE INTO `item_db_re` VALUES (20824,'Para_Team_Manteau130','Awakened Eden Gr
 REPLACE INTO `item_db_re` VALUES (20825,'Para_Team_Manteau160','Awakened Eden Group Manteau III',4,0,NULL,0,NULL,30,NULL,0,0xFFFFFFFF,63,2,4,NULL,'160',1,0,'bonus2 bSubEle,Ele_All,10; bonus bFlee,12; bonus bMaxHP,1000; bonus bFlee2,2; .@r = getrefine(); if(.@r >= 7){ bonus2 bSubEle,Ele_Neutral,5; if(.@r >= 9){ skill "BS_GREED",1; } }',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (20826,'Angel_Feather','Angel Feather',4,0,NULL,200,NULL,18,NULL,1,0xFFFFFFFF,63,2,4,NULL,'1',1,18,NULL,NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (20830,'Wings_of_Seraph','Wings of Seraph',4,0,NULL,200,NULL,18,NULL,1,0xFFFFFFFF,63,2,4,NULL,'1',1,8,NULL,NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (20838,'Illusion_Muffler','Illusion Muffler',4,20,NULL,400,NULL,8,NULL,1,0xFFFFFFFE,63,2,4,NULL,'99',1,0,'.@r = getrefine(); bonus bMaxHP,(100+(100*.@r)); bonus bMaxSP,(10+(5*.@r));',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (20840,'Illusion_Ancient_Cape','Illusion Ancient Cape',4,0,NULL,600,NULL,18,NULL,1,0xFFFFFFFE,63,2,4,NULL,'100',1,0,'.@val = min(getrefine(),10)/2; bonus bAgi,(2+.@val);',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (20847,'Illusion_Survivor_Manteau','Illusion Survivor Manteau',4,0,NULL,550,NULL,30,NULL,1,0x00810204,63,2,4,NULL,'130',1,0,'bonus bVit,15;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (20923,'Illusion_Goibne_Spaulders','Illusion Goibne Spaulders',4,0,NULL,1000,NULL,47,NULL,1,0xFFFFFFFE,63,2,4,NULL,'130',1,0,'.@r = getrefine();  bonus bMdef,2; bonus bVit,1; if (.@r >= 7) { .@val = 5; if (.@r >= 9) { .@val += 10; } } if (.@val) { bonus2 bAddEle,Ele_Water,.@val; bonus2 bAddEle,Ele_Wind,.@val; bonus2 bAddEle,Ele_Earth,.@val; bonus2 bAddEle,Ele_Fire,.@val; }',NULL,NULL);
 #===================================================================
 # More 2-Handed Swords
 #===================================================================
@@ -11017,6 +11041,9 @@ REPLACE INTO `item_db_re` VALUES (22123,'Para_Team_Boots115','Awakened Eden Grou
 REPLACE INTO `item_db_re` VALUES (22124,'Para_Team_Boots130','Awakened Eden Group Boots III',4,0,NULL,0,NULL,27,NULL,0,0xFFFFFFFF,63,2,64,NULL,'130',1,NULL,'bonus bAllStats,2; bonus bHPrecovRate,36; bonus bSPrecovRate,18;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (22125,'Para_Team_Boots145','Awakened Eden Group Boots IV',4,0,NULL,0,NULL,30,NULL,0,0xFFFFFFFF,63,2,64,NULL,'145',1,NULL,'bonus bAllStats,2; bonus bHPrecovRate,40; bonus bSPrecovRate,20;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (22126,'Para_Team_Boots160','Awakened Eden Group Boots V',4,0,NULL,0,NULL,30,NULL,0,0xFFFFFFFF,63,2,64,NULL,'160',1,NULL,'bonus bAllStats,2; bonus bHPrecovRate,40; bonus bSPrecovRate,20; bonus bUseSPrate,-5;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (22133,'Illusion_Shoes','Illusion Shoes',4,20,NULL,400,NULL,10,NULL,1,0xFFFFFFFE,63,2,64,NULL,'99',1,0,'.@r = getrefine(); bonus bMaxHP,(100+(100*.@r)); bonus bMaxSP,(10+(5*.@r));',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (22190,'Illusion_Boots','Illusion Boots',4,0,NULL,600,NULL,16,NULL,1,0x016E5CEA,63,2,64,NULL,'100',1,0,'.@r = getrefine(); bonus bCritical,(5*(.@r/3)); bonus bAspdRate,.@r;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (22192,'Illusion_Goibne\'s_Greaves','Illusion Goibne\'s Greaves',4,0,NULL,1200,NULL,42,NULL,1,0xFFFFFFFE,63,2,64,NULL,'130',1,0,'.@r = getrefine(); bonus bMaxHPrate,5; bonus bMaxSPrate,5; if (.@r >= 7) { bonus bVariableCastrate,-5; if (.@r >= 9) { bonus bLongAtkRate,10; } }',NULL,NULL);
 #===================================================================
 # New Usable items
 #===================================================================
@@ -11267,7 +11294,11 @@ REPLACE INTO `item_db_re` VALUES (23193,'Crimson_Rock_Scroll_1_5','Level 5 Crims
 REPLACE INTO `item_db_re` VALUES (23194,'Sienna_Execrate_Scroll_1_5','Level 5 Sienna Execrate',11,10,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemskill "WL_SIENNAEXECRATE",5,true;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (23196,'Agust_Lucky_Scroll','Shining Blue Lucky Egg',18,10,NULL,10,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,NULL,NULL,'1',NULL,NULL,'getgroupitem(IG_Agust_Lucky_Scroll);',NULL,NULL);
 #
+REPLACE INTO `item_db_re` VALUES (23228,'Hazy_Mooncake','Hazy Mooncake',0,768,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'/* unknown */',NULL,NULL);
+#
 REPLACE INTO `item_db_re` VALUES (23277,'Mado_Box','Emergency Magic Gear',2,10000,NULL,3000,NULL,NULL,NULL,NULL,0x00000400,56,2,NULL,NULL,'100',NULL,NULL,'setmadogear 1;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (23280,'N_Fly_Wing_','Novice Fly Wing',11,10,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,'1:98',NULL,NULL,'itemskill "AL_TELEPORT",1;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (23288,'Compressed_Wing_Of_Fly','Compressed Fly Wing',11,1000,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemskill "AL_TELEPORT",1;',NULL,NULL);
 #
 REPLACE INTO `item_db_re` VALUES (23307,'S_Shining_Def_Scroll','[Sale] Shining Defense Scroll',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (23340,'S_Megaphone','[Sale] Megaphone',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -11555,11 +11586,23 @@ REPLACE INTO `item_db_re` VALUES (25150,'Hugging_Alice_Pilow','Hugging Alice Pil
 REPLACE INTO `item_db_re` VALUES (25223,'Para_Team_Coin','Eden Group Coin',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (25238,'New_Normal_Lubricant','New Normal Lubricant',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (25239,'New_Advanced_Lubricant','New Advanced Lubricant',3,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (25256,'Hazy_Dream_Fragment','Hazy Dream Fragment',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (25257,'Bloody_Love_Letter','Bloody Love Letter',3,780,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (25258,'Broken_Arrow','Broken Arrow',3,550,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (25271,'Illusion_Stone','Illusion Stone',3,10,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (25272,'Illusion_Gemstone','Illusion Gemstone',3,0,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+#
+REPLACE INTO `item_db_re` VALUES (25464,'World_Moving_Rights','World Moving Rights',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
+#===================================================================
+# New Spears
+#===================================================================
+REPLACE INTO `item_db_re` VALUES (26007,'Illusion_Spectral_Spear','Illusion Spectral Spear',5,20,NULL,2000,'240',NULL,3,1,0x00004082,63,2,34,4,'99',1,5,'.@r = getrefine(); .@val = 3*(.@r/2); bonus2 bAddEle,Ele_Dark,(20+.@val); bonus2 bAddRace,RC_Demon,(20+.@val); bonus2 bAddRace,RC_Undead,(20+.@val); bonus2 bSubRace,RC_Demon,(10+.@val); bonus2 bSubEle,Ele_Undead,(10+.@val); bonus2 bSubEle,Ele_Dark,(10+.@val); bonus bHPGainValue,50; bonus bSPGainValue,(.@r/2); bonus2 bAddEff2,Eff_Confusion,1000;',NULL,NULL);
 #===================================================================
 # New Staves
 #===================================================================
 REPLACE INTO `item_db_re` VALUES (26100,'Paradise_Foxtail_Staff_II','Eden Group Foxtail Staff II',5,20,NULL,0,'135:165',NULL,1,0,0x80000000,7,2,2,2,'40',0,10,'bonus bDex,4; bonus bInt,4; bonus bLongAtkRate,6;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (26101,'Paradise_Foxtail_Staff_III','Eden Group Foxtail Staff III',5,20,NULL,0,'150:195',NULL,1,0,0x80000000,7,2,2,3,'60',0,10,'bonus bDex,5; bonus bInt,5; bonus bLongAtkRate,7;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (26109,'Illusion_Staff_of_Bordeaux','Illusion Staff of Bordeaux',5,20,NULL,500,'60:180',NULL,1,2,0x00010200,58,2,2,4,'99',1,10,'bonus bInt,3; bonus bDex,2; if (getskilllv("SA_DRAGONOLOGY") == 5) { .@val = getrefine()/3; bonus bMatkRate,(5+.@val); bonus bUseSPrate,(-15-(5*.@val)); }',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (26110,'CandyCaneRod','Candy Cane Rod',5,20,NULL,500,'10:140',NULL,1,2,0x00818315,63,2,2,4,'99',1,10,'bonus bInt,2; bonus bFlee,2*getrefine(); if(getrefine()>= 10) { bonus bFlee2,10; }',NULL,NULL);
 #===================================================================
 # More Cards
@@ -11579,6 +11622,40 @@ REPLACE INTO `item_db_re` VALUES (27027,'Fire_Sandman_Card','Fire Sandman Card',
 REPLACE INTO `item_db_re` VALUES (27028,'Fire_Frilldora_Card','Fire Frilldora Card',6,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,2,NULL,NULL,NULL,NULL,'.@r = getrefine(); bonus2 bMagicAddEle,Ele_Earth,3+((.@r>=7)*5)+((.@r>=9)*7);',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (27029,'Fire_Golem_Card','Fire Golem Card',6,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,32,NULL,NULL,NULL,NULL,'bonus2 bSubEle,Ele_Fire,20; bonus2 bAddEle,Ele_Fire,5;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (27030,'Fulbuk_Card','Fulbuk Card',6,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,769,NULL,NULL,NULL,NULL,'bonus3 bAddEff,Eff_Burning,700,ATF_WEAPON|ATF_MAGIC;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27081,'Angry_Moonlight_Flower_Card','Angry Moonlight Flower Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'skill "PA_PRESSURE",4;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27082,'Angry_Nine_Tail_Card','Angry Nine Tail Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'.@val = 5; bonus bCritAtkRate,10; if (getrefine() >= 10) { .@val += 10; } bonus bCritical,.@val;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27083,'Resentful_Bongun_Card','Resentful Bongun Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus bBaseAtk,20; bonus bMatk,20;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27084,'Resentful_Sohee_Card','Resentful Sohee Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus bMatk,10; if (getrefine() >= 10) { bonus bMatkRate,2; }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27085,'Resentful_Munak_Card','Resentful Munak Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bBaseAtk,15; bonus bMatk,15;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27086,'Resentful_Soldier_Card','Resentful Soldier Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'if (getiteminfo(getequipid(EQI_COMPOUND_ON),11) == W_BOW) { bonus3 bAutoSpell,"TF_DOUBLE",5,30; if (getrefine() >= 10) { bonus2 bWeaponDamageRate,W_BOW,20; } }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27087,'Truthful_Wizard_Card','Truthful Wizard Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bMatk,25; autobonus "{ bonus bNoCastCancel; }",5,5000,BF_MAGIC,"{ showscript \\\"This is the truth!\\\"; }";',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27088,'Fury_Hero_Card','Fury Hero Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'bonus2 bAddClass,Class_All,2; bonus5 bAutoSpell,"SM_ENDURE",1,5,BF_SHORT,0;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27101,'Sweet_Nightmare_Card','Sweet Nightmare Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus bMatk,20; bonus bNoCastCancel;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27102,'Matt_Drainliar_Card','Matt Drainliar Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'bonus2 bResEff,Eff_Burning,10000;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27103,'Living_Dead_Card','Living Dead Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus bBaseAtk,20; bonus bUnbreakableWeapon; bonus bUnbreakableArmor;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27104,'Furious_Dracula_Card','Furious Dracula Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'skill "PF_HPCONVERSION",1;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27105,'Bomi_Card','Bomi Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,8,NULL,NULL,NULL,NULL,'skill "HW_NAPALMVULCAN",4;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27106,'Awaken_Pere_Card','Awaken Pere Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'if (BaseJob == Job_Bard || BaseJob == Job_Dancer) { bonus bMatk,(15*getrefine()); }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27107,'Playing_Pere_Card','Playing Pere Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,8,NULL,NULL,NULL,NULL,'bonus2 bAddEle,Ele_Neutral,20;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27108,'Singing_Pere_Card','Singing Pere Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,128,NULL,NULL,NULL,NULL,'bonus2 bMagicAddEle,Ele_Neutral,20;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27109,'Jitterbug_Card','Jitterbug Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'bonus2 bSubDefEle,Ele_Neutral,10; bonus bMaxHP,500;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27110,'Furious_Gazeti_Card','Furious Gazeti Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus bLongAtkDef,20;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27111,'Furious_Snowier_Card','Furious Snowier Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus2 bAddItemHealRate,11522,50; bonus2 bAddItemHealRate,11523,50; bonus2 bAddItemHealRate,11524,50;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27112,'Furious_Ice Titan_Card','Furious Ice Titan Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus bDef,(5*(1+getrefine()));',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27113,'Awaken_Ktullanux_Card','Awaken Ktullanux Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus2 bMagicAtkEle,Ele_Water,(20+(3*getrefine()));',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27114,'Ominous_Solider_Card','Ominous Solider Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus bMaxHPrate,(10+(getrefine()/3)); .@val = 50; if (BaseLevel >= 160) { .@val += 50; bonus bVit,3; } bonus bDef,.@val;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27115,'Ominous_Permeter_Card','Ominous Permeter Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'.@r = getrefine(); bonus bInt,1; bonus bMaxSP,(80+10*(.@r/2)); if (.@r >= 7) { bonus bSPrecovRate,30; }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27116,'Ominous_Heater_Card','Ominous Heater Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus bCritical,3; bonus bCritAtkRate,5;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27117,'Ominous_Assaulter_Card','Ominous Assaulter Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'.@type = getiteminfo(getequipid(EQI_COMPOUND_ON),11); if (.@type == W_WHIP || .@type == W_MUSICAL || .@type == W_BOOK || .@type == W_2HSWORD || .@type == W_2HSPEAR) { .@r = getrefine(); bonus bCritical,5; bonus bBaseAtk,(3*.@r); } bonus bCritAtkRate,(10+.@r);',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27118,'Ominous_Freezer_Card','Ominous Freezer Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,'bonus bMaxHPrate,10; bonus bStr,2; if (BaseLevel >= 160) { .@val = 10; } if (getrefine() >= 9) { .@val += 10; } if (.@val) { bonus2 bSkillAtk,"RK_HUNDREDSPEAR",.@val; bonus2 bSkillAtk,"LG_OVERBRAND",.@val; }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27119,'Ominous_Turtle_General_Card','Ominous Turtle General Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,'bonus bDef,30; bonus bMdef,5; bonus2 bSubSize,Size_All,25;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27120,'Iara_Card','Iara Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'skill "PR_STRECOVERY",1;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27121,'Piranha_Card','Piranha Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,'.@val = 10; if (getrefine() >= 9) { .@val += 5; } bonus2 bAddRace,RC_Fish,.@val; bonus2 bMagicAddRace,RC_Fish,.@val;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27122,'Curupira_Card','Curupira Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'.@val = 3; .@r = getrefine(); if (.@r>=7) { .@val += 5; } if (.@r>=9) { .@val += 7; } bonus2 bMagicAddEle,Ele_Water,.@val;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27123,'Tucan_Card','Toucan Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'.@val = 10; if (getrefine() >= 9) { .@val += 5; } bonus2 bMagicAddRace,RC_Insect,.@val;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27124,'Jaguar_Card','Jaguar Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'.@val = 10; if (getrefine() >= 9) { .@val += 5; } bonus2 bMagicAddRace,RC_Brute,.@val;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27125,'Headless_Mule_Card','Headless Mule Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus2 bMagicAtkEle,Ele_Water,20; bonus2 bMagicAtkEle,Ele_Holy,20;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27126,'Boitata_Card','Boitata Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus2 bAddEle,Ele_Wind,40; bonus2 bAddEle,Ele_Earth,40; bonus2 bAddRace,RC_Brute,40; bonus2 bAddRace,RC_Insect,40;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (27147,'Humanoid_Chimera_Card','Humanoid Chimera Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus bHit,(BaseLevel >= 90 ? 15 : 5);',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (27148,'Material_Chimera_Card','Material Chimera Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus bFlee,(BaseLevel >= 90 ? 20 : 10);',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (27149,'Heart_Hunter_Card','Heart Hunter Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'.@type = getiteminfo(getequipid(EQI_COMPOUND_ON),11); .@r = getrefine(); if(.@type == 17 || .@type == 18 || .@type == 21){ bonus bLongAtkRate,5+.@r+(.@r >= 10 ? 5 : 0); }',NULL,NULL);
@@ -11602,6 +11679,10 @@ REPLACE INTO `item_db_re` VALUES (27181,'Airship_Raid_Card','Airship Raid Card',
 REPLACE INTO `item_db_re` VALUES (27182,'Captain_Felock_Card','Captain Felock Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bAtk,30; .@r = getrefine(); bonus2 bSkillAtk,"RL_AM_BLAST",.@r >= 10 ? 60 : 30; bonus2 bSkillAtk,"RL_HAMMER_OF_GOD",.@r >= 10 ? 60 : 30;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (27183,'Gigantes_Card','Gigantes Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,128,NULL,NULL,NULL,NULL,'bonus bAtk,20; if(readparam(bStr) >= 120) { bonus bAtk,20; bonus bAspdRate,-3; }',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (27184,'Knight_Sakray_Card','Knight Sakray Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bAtk,20; bonus2 bAddRace,RC_Demon,30; bonus2 bAddRace,RC_Undead,30;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27196,'Nihil_M_Heine_Card','Nihil M. Heine Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus2 bMagicAddSize,Size_Small,15;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27197,'Agnes_Lugenburg_Card','Agnes Lugenburg Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus2 bAddSize,Size_Small,15;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27198,'Jurgen_Wigner_Card','Jurgen Wigner Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus2 bAddRace,RC_Brute,15;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27199,'Spica_Nerius_Card','Spica Nerius Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus2 bMagicAddRace,RC_Brute,15;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (27249,'Arhi_Card','Arhi Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,'bonus bAtk,15; bonus bMatk,15; bonus bMaxHP,500; bonus bHit,15; bonus bFlee,15;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (27250,'Dio_Anemos_Card','Dio Anemos Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,'bonus bMatkRate,3; bonus2 bMagicAtkEle,Ele_Neutral,5; bonus2 bMagicAtkEle,Ele_Earth,5;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (27251,'Geffen_Gang_Member_Card','Geffen Gang Member Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,'bonus bCritAtkRate,3; bonus bAspdRate,5;',NULL,NULL);
@@ -11619,6 +11700,36 @@ REPLACE INTO `item_db_re` VALUES (27262,'Dwigh_Card','Dwigh Card',6,20,NULL,10,N
 REPLACE INTO `item_db_re` VALUES (27263,'Fay_Kanavian_Card','Fay Kanavian Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,'autobonus "{ bonus bDef,300; }",100,10000,BF_WEAPON|BF_SHORT,"{ active_transform 1040,10000; }";',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (27264,'Evil_Shadow_Card','Evil Shadow Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,'bonus2 bSubEle,Ele_Dark,30; bonus2 bSubEle,Ele_Undead,30; bonus2 bSubEle,Ele_Holy,-30; bonus2 bSubEle,Ele_Fire,-30;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (27265,'Evil_Fanatics_Card','Evil Fanatics Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus2 bAddEle,Ele_Dark,30; bonus2 bAddEle,Ele_Undead,30; bonus2 bMagicAddEle,Ele_Dark,30; bonus2 bMagicAddEle,Ele_Undead,30; bonus2 bAddEle,Ele_Holy,-30; bonus2 bAddEle,Ele_Fire,-30; bonus2 bMagicAddEle,Ele_Holy,-30; bonus2 bMagicAddEle,Ele_Fire,-30;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27286,'Colorful_Teddy_Bear_Card','Colorful Teddy Bear Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bMatk,5; bonus2 bMagicAddSize,Size_Large,15;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27287,'Shiny_Teddy_Bear_Card','Shiny Teddy Bear Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,'bonus bUseSPrate,10; bonus2 bMagicAtkEle,Ele_Holy,(3*getrefine());',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27288,'Hardworking_Pitman_Card','Hardworking Pitman Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'.@val = 10; bonus2 bAddClass,Class_All,5; if (getrefine() >= 10) { .@val += 5; } bonus bHit,.@val;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27289,'Soul_Fragment_Card','Soul Fragment Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bMatk,5; bonus2 bMagicAddSize,Size_Medium,15;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27290,'Haunted_Obsidian_Card','Haunted Obsidian Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'.@agi = readparam(bAgi); .@val = .@agi/10; if (.@val) { bonus bFlee,(3*.@val); bonus bAspdRate,.@val; if (.@agi >= 120) { bonus bAspd,1; } }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27291,'Ancient_Tri_Joint_Card','Ancient Tri Joint Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bBaseAtk,30; bonus bMaxHPrate,-1;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27292,'Ancient_Stalactic_Golem_Card','Ancient Stalactic Golem Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'.@vit = readparam(bVit); .@val = .@vit/10; if (.@val) { bonus bAspdRate,.@val; bonus bMaxHP,(150*.@val); if (.@vit >= 120) { bonus bDelayrate,-3; } }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27293,'Ancient_Megalith_Card','Ancient Megalith Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bMatk,30; bonus bMaxSPrate,-1;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27294,'Ancient Tao Gunka Card','Ancient Tao Gunka Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'.@val = 30; if (getrefine() >= 10) { .@val += 20; } bonus2 bIgnoreDefClassRate,Class_Boss,.@val;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27295,'Ancient_Stone_Shooter_Card','Ancient Stone Shooter Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'.@luk = readparam(bLuk); .@aspd = .@crit = .@luk/10; if (.@luk >= 120) { .@crit += 5; } bonus bAspdRate,.@aspd; bonus bCritAtkRate,.@crit;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27296,'Ancient_Wootan_Shooter_Card','Ancient Wootan Shooter Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'.@dex = readparam(bDex); .@val = .@dex/10; if (.@val) { bonus bAspdRate,.@val; bonus2 bWeaponDamageRate,W_BOW,.@val; if (.@dex >= 120) { bonus bBaseAtk,40; } }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27297,'Ancient_Wootan_Fighter_Card','Ancient Wootan Fighter Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'bonus bCritical,5; bonus bCritAtkRate,10;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27298,'Ancient_Wootan_Defender_Card','Ancient Wootan Defender Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,32,NULL,NULL,NULL,NULL,'.@val = 30; if (getrefine() >= 10) { .@val += 20; } bonus2 bSubClass,Class_Boss,.@val;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27304,'E_EA2S_Card','E EA2S Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus bHPrecovRate,50;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27305,'EL_A17T_Card','EL A17T Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus5 bAutoSpell,"WL_HELLINFERNO",3,1,ATF_SHORT|ATF_WEAPON,1; /* fix me: unknown rate */',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27306,'Bellare_Card','Bellare Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'if (getiteminfo(getequipid(EQI_COMPOUND_ON),11) == W_REVOLVER) { .@r = getrefine(); bonus bHit,20; bonus bLongAtkRate,(5+.@r); if (.@r >= 10) { bonus2 bSkillAtk,"RL_FIREDANCE",15; } }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27307,'Greater_Bellare_Card','Greater Bellare Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'if (getiteminfo(getequipid(EQI_COMPOUND_ON),11) == W_GATLING) { .@r = getrefine(); bonus bHit,20; bonus bLongAtkRate,(5+.@r); if (.@r >= 10) { bonus2 bSkillAtk,"RL_R_TRIP",15; } }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27308,'Sanare_Card','Sanare Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'.@r = getrefine(); .@val = 2; if (.@r >= 9) { .@val += 3; } if (.@r >= 11) { .@val += 5; } bonus bHealPower,.@val;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27309,'Greater_Sanare_Card','Greater Sanare Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'bonus bMatk,10; .@val = 5; if (getrefine() >= 9) { .@val += 5; } bonus2 bMagicAtkEle,Ele_Holy,.@val;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27310,'Plaga_Card','Plaga Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,769,NULL,NULL,NULL,NULL,'bonus bMatk,10; .@val = 5; if (getrefine() >= 9) { .@val += 5; } bonus2 bMagicAtkEle,Ele_Neutral,.@val;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27311,'Mutant_Plaga_Card','Mutant Plaga Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'if (getiteminfo(getequipid(EQI_COMPOUND_ON),11) == W_KNUCKLE) { .@r = getrefine(); bonus bHit,20; bonus bBaseAtk,15; if (.@r >= 10) { .@val = 15; } bonus2 bAddSize,Size_Large,(.@r+.@val); }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27312,'Dolor_Card','Dolor Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus2 bAddRace,RC_Demon,5;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27313,'Mutant_Dolor_Card','Mutant Dolor Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'if (getiteminfo(getequipid(EQI_COMPOUND_ON),11) == W_KATAR) { .@r = getrefine(); bonus bCritical,7; bonus bBaseAtk,15; bonus bCritAtkRate,(2*.@r); if (.@r >= 10) { bonus2 bAddSize,Size_Large,15; } }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27314,'Venenum_Card','Venenum Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'bonus2 bAddRace,RC_Brute,15;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27315,'Mutant_Venenum_Card','Mutant Venenum Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,4,NULL,NULL,NULL,NULL,'bonus2 bMagicAddRace,RC_Brute,15;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27316,'Twin_Caput_Card','Twin Caput Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus bDef,50; bonus2 bSubDefEle,Ele_Poison,10;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27317,'Mutant_Twin_Caput_Card','Mutant Twin Caput Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,136,NULL,NULL,NULL,NULL,'bonus2 bAddRace,RC_Formless,5;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27318,'Miguel_Card','Miguel Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,64,NULL,NULL,NULL,NULL,'bonus bCritAtkRate,20; bonus2 bSubRace,RC_All,-10;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27319,'R48_85_BESTIA_Card','R48-85-BESTIA Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus2 bAddEle,Ele_Poison,40;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (27320,'E_EA1L_card','E-EA1L card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,NULL,NULL,'.@r = getrefine(); .@val = 3; if (.@r >= 9) { .@val += 2; if (.@r >= 11) { .@val += 5; } } bonus2 bMagicAtkEle,Ele_Fire,.@val;',NULL,NULL);
 #===================================================================
 # New Katars
 #===================================================================
@@ -11631,6 +11742,8 @@ REPLACE INTO `item_db_re` VALUES (28007,'Crimson_Katar','Crimson Katar',5,20,NUL
 REPLACE INTO `item_db_re` VALUES (28008,'Katar_of_Vicious_Mind','Katar of Vicious Mind',5,20,NULL,1800,'180',NULL,1,1,0x00001000,63,2,34,4,'160',1,16,'bonus bAtk,pow(min(getrefine(),15),2);',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (28010,'Juliette_D._Rachel','Juliette D. Rachel',5,20,NULL,2500,'300',NULL,1,2,0x00001000,56,2,34,4,'170',1,16,'.@r = getrefine(); bonus2 bAddClass,Class_All,(.@r/2); bonus bAspdRate,.@r; bonus bUnbreakableWeapon;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (28011,'Unity_Katar','Unity Katar',5,20,NULL,650,'123',NULL,1,1,0x00001000,63,2,34,3,'1',1,16,'bonus bBaseAtk,pow(getrefine(),2)*125/100;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (28022,'Illusion_Infiltrator','Illusion Infiltrator',5,0,NULL,1500,'200',NULL,1,2,0x00001000,58,2,34,4,'100',1,16,'bonus2 bAddRace,RC_DemiHuman,60; bonus2 bAddRace,RC_Player,60; bonus bDef,3; .@flee = 5; .@flee2 = 2; if (getrefine() >= 9) { .@flee += 5; .@flee2 += 2; bonus2 bAddClass,Class_All,5; } bonus bFlee,.@flee; bonus bFlee2,.@flee2;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (28023,'Illusion_Sharpened_Legbone_of_Ghoul','Illusion Sharpened Legbone of Ghoul',5,0,NULL,1700,'220',NULL,1,2,0x00001000,58,2,34,3,'100',1,16,'autobonus "{ bonus bDefEle,Ele_Undead; sc_start SC_ENDURE,6000,1; }",40,6000,BF_WEAPON|BF_SHORT,"{ active_transform 1036,6000; }";',NULL,NULL);
 #===================================================================
 # New Axes
 #===================================================================
@@ -11651,6 +11764,7 @@ REPLACE INTO `item_db_re` VALUES (28201,'Southern_Cross_R','Southern Cross',5,28
 REPLACE INTO `item_db_re` VALUES (28202,'Southern_Cross_R_','Southern Cross',5,2800000,NULL,2000,'480',NULL,9,1,0x40000000,63,2,34,4,'141',1,21,'bonus3 bAutoSpell,"GC_CROSSIMPACT",1,50;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (28203,'Half_BF_Rifle1','Half BF Rifle1',5,0,NULL,0,'50',NULL,9,0,0x41000000,63,2,34,3,'80',1,18,'bonus bDex,2; bonus bHit,8; bonus bCritical,8; bonus2 bAddRace,RC_DemiHuman,30; bonus2 bAddRace,RC_Player,30; bonus2 bVariableCastrate,"GS_TRACKING",-20; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,10; bonus2 bIgnoreDefRaceRate,RC_Player,10; bonus bUnbreakableWeapon;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (28204,'Half_BF_Shotgun1','Half BF Shotgun1',5,0,NULL,0,'100',NULL,9,0,0x41000000,63,2,34,3,'80',1,20,'bonus bDex,2; bonus bSplashRange,1; bonus2 bAddRace,RC_DemiHuman,30; bonus2 bAddRace,RC_Player,30; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,10; bonus2 bIgnoreDefRaceRate,RC_Player,10; autobonus "{ bonus bBaseAtk,80; bonus2 bHPLossRate,100,1000; }",30,6000,BF_WEAPON,"{ specialeffect2 EF_BASH3D; }"; bonus bUnbreakableWeapon;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (28244,'Illusion_Gate_Keeper_DD','Illusion Gate Keeper DD',5,0,NULL,1300,'240',NULL,9,2,0x40000000,63,2,34,4,'120',1,20,'.@r = getrefine(); bonus bDex,1; bonus bSplashRange,1; .@val = 5*(.@r/2); if (.@r >= 7) { bonus bAspdRate,15; if (.@r >= 9) { .@val += 5; if (.@r >= 11) { bonus5 bAutoSpell,"GS_SPREADATTACK",max(6,getskilllv("GS_SPREADATTACK")),50,BF_LONG|BF_WEAPON,1; } } } bonus bLongAtkRate,.@val;',NULL,NULL);
 #===================================================================
 # New Accessories
 #===================================================================
@@ -11731,6 +11845,9 @@ REPLACE INTO `item_db_re` VALUES (28471,'Para_Team_Agi_Ring160','Awakened Eden G
 REPLACE INTO `item_db_re` VALUES (28472,'Para_Team_Agi_Necklace160','Awakened Eden Group Necklace of Agility V',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,136,NULL,'160',NULL,NULL,'bonus bDex,4; skill "AL_TELEPORT",1;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (28483,'Royal_Guardian_Ring','Royal Guardian Ring',4,0,NULL,10,NULL,1,NULL,1,0xFFFFFFFF,63,2,136,NULL,'99',NULL,NULL,'.@b = min(BaseLevel/25,7); bonus bMaxHPrate,.@b; bonus bMaxSPrate,.@b;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (28499,'Proof_of_Glory','Proof of Glory',4,0,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,136,NULL,'100',NULL,NULL,'bonus bAllStats,1; bonus2 bAddRace,RC_All,2; bonus2 bMagicAddRace,RC_All,2; if(BaseLevel>=150) { bonus bAllStats,1; bonus2 bAddRace,RC_All,2; bonus2 bMagicAddRace,RC_All,2; }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (28508,'Illusion_Skull_Ring','Illusion Skull Ring',4,0,NULL,100,NULL,0,NULL,1,0xFFFFFFFF,63,2,8,NULL,'100',0,0,'bonus3 bAddEff,Eff_Curse,5000,ATF_SELF|ATF_TARGET|ATF_SHORT|ATF_WEAPON;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (28509,'Illusion_Ring','Illusion Ring',4,0,NULL,200,NULL,0,NULL,1,0xFFFFFFFE,63,2,136,NULL,'100',0,0,'bonus bStr,3; if (readparam(bStr) >= 100) { bonus bBaseAtk,30; }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (28510,'A_Vampire\'s_Servant','A Vampire\'s Servant',4,0,NULL,100,NULL,1,NULL,1,0xFFFFFFFF,63,2,8,NULL,'100',0,NULL,'bonus2 bSPDrainRate,1000,1;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (28551,'Imperial_Glove','Imperial Glove',4,20,NULL,400,NULL,0,NULL,1,0xFFFFFFFF,63,2,136,NULL,'100',0,0,'bonus2 bAddClass,Class_All,5; bonus bVariableCastrate,-10; bonus bNoCastCancel;',NULL,NULL);
 #===================================================================
 # More books
@@ -11741,6 +11858,8 @@ REPLACE INTO `item_db_re` VALUES (28602,'Demon_Hunting_Bible','Demon Hunting Bib
 REPLACE INTO `item_db_re` VALUES (28604,'Crimson_Bible','Crimson Bible',5,20,NULL,450,'45',NULL,1,2,0x00410100,63,2,2,3,'70',1,15,'.@r = getrefine(); bonus bBaseAtk,((BaseLevel/10)*5)+(.@r<=15?pow(.@r,2):225); bonus bMatk,(.@r<=15?(pow(.@r,2)/2):225);',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (28605,'Book_of_Vicious_Mind','Book of Vicious Mind',5,20,NULL,950,'95',NULL,1,1,0x00010100,63,2,2,4,'160',1,15,'bonus bAtk,pow(min(getrefine(),15),2); bonus bMatk,pow(min(getrefine(),15),2); bonus bUnbreakableWeapon;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (28606,'Unity_Bible','Unity Bible',5,20,NULL,220,'42',NULL,1,1,0x00410100,63,2,2,3,'1',1,15,'bonus bBaseAtk,pow(getrefine(),2)*125/100;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (28612,'Illusion_Apocalypse','Illusion Apocalypse',5,0,NULL,800,'170',NULL,1,2,0x00410100,63,2,2,4,'100',1,15,'.@val = 10 + 10*(min(getrefine(),10)/3); bonus2 bAddEle,Ele_Water,.@val; bonus2 bAddEle,Ele_Earth,.@val; bonus2 bAddEle,Ele_Fire,.@val; bonus2 bAddEle,Ele_Wind,.@val; bonus2 bSubDefEle,Ele_Holy,-30;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (28626,'Illusion_Tablet','Illusion Tablet',5,0,NULL,800,'170',NULL,1,2,0x00410100,63,2,2,4,'100',1,15,'.@val = 10 + 10*(min(getrefine(),10)/3); bonus2 bAddEle,Ele_Dark,.@val; bonus2 bAddEle,Ele_Undead,.@val; bonus2 bAddEle,Ele_Poison,.@val; bonus2 bAddEle,Ele_Ghost,.@val; bonus2 bSubDefEle,Ele_Dark,-30;',NULL,NULL);
 #===================================================================
 # More daggers
 #===================================================================
@@ -11750,6 +11869,8 @@ REPLACE INTO `item_db_re` VALUES (28702,'Ru_Gold_Ashura','Ru Gold Ashura',5,0,NU
 REPLACE INTO `item_db_re` VALUES (28703,'Infinity_Dagger','Infinity Dagger',5,10,NULL,500,'125:100',NULL,1,1,0x028F5EEF,56,2,2,4,'100',1,1,NULL,NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (28705,'Crimson_Dagger','Crimson Dagger',5,20,NULL,550,'55',NULL,1,2,0x028F5EEF,63,2,2,3,'70',1,1,'.@r = getrefine(); bonus bBaseAtk,((BaseLevel/10)*5)+(.@r<=15?pow(.@r,2):225); bonus bMatk,(.@r<=15?(pow(.@r,2)/2):225);',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (28706,'Dagger_of_Vicious_Mind','Dagger of Vicious Mind',5,20,NULL,1050,'105:50',NULL,1,1,0x028F5EEF,63,2,2,4,'160',1,1,'bonus bAtk,pow(min(getrefine(),15),2); bonus bMatk,pow(min(getrefine(),15),2)/2;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (28725,'Illusion_Moonlight_Dagger','Illusion Moonlight Dagger',5,20,NULL,700,'150',NULL,1,1,0x028F5EEE,63,2,2,4,'99',1,1,'bonus bMaxSPrate,10; .@val = 3; if (getrefine() >= 10) { .@val += 4; } bonus bSPDrainValue,.@val;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (28745,'Illusion_Counter_Dagger','Illusion Counter Dagger',5,0,NULL,900,'170',NULL,1,2,0x00810204,63,2,2,4,'120',0,1,'.@r = getrefine(); bonus bCritical,90; bonus bCritAtkRate,(3*(.@r/2)); if (.@r >= 7) { bonus2 bAddClass,Class_All,5; if (.@r >= 9) { bonus2 bAddSize,Size_All,20; if (.@r >= 11) { bonus2 bAddEle,Ele_All,20; } } }',NULL,NULL);
 #===================================================================
 # More shields
 #===================================================================
@@ -11768,6 +11889,7 @@ REPLACE INTO `item_db_re` VALUES (28913,'Ultralight_Magic_Shield','Ultralight Ma
 REPLACE INTO `item_db_re` VALUES (28915,'Bunker_Shield','Bunker Shield',4,20,NULL,3500,NULL,90,NULL,1,0xFFFFFFFF,63,2,32,NULL,'50',1,1,'.@r = getrefine(); if(.@r >= 5) { .@dmg = .@r - 4; } bonus2 bAddClass,Class_All,(4+.@dmg); bonus bAspdRate,-5;',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (28916,'Gaia_Shield','Gaia Shield',4,20,NULL,2000,NULL,150,NULL,1,0xFFFFFFFF,63,2,32,NULL,'90',1,1,'bonus bMdef,10; bonus2 bSubEle,Ele_Earth,10; bonus2 bAddEle,Ele_Earth,5; bonus2 bMagicAddEle,Ele_Earth,5; .@r = getrefine(); if(.@r>=6) { bonus2 bSubEle,Ele_Earth,15; bonus2 bAddEle,Ele_Earth,10; bonus2 bMagicAddEle,Ele_Earth,10; } if(.@r>=8) { if(readparam(bStr)>=90) { bonus bBaseAtk,50; } if(readparam(bAgi)>=90) { bonus bAspdRate,5; } if(readparam(bVit)>=90) { bonus bHealPower2,10; bonus bAddItemHealRate,10; } if(readparam(bInt)>=90) { bonus bMatk,30; } if(readparam(bDex)>=90) { bonus bVariableCastrate,-5; } if(readparam(bLuk)>=90) { bonus bCritAtkRate,5; } }',NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (28920,'Diamond_Shield','Diamond Shield',4,20,NULL,1000,NULL,50,NULL,0,0xFFFFFFFF,63,2,32,NULL,'100',1,1,'.@r = getrefine(); if(BaseLevel>=150) { bonus bDef,100+(20*(.@r/3)); }',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (28922,'Illusion_Sacred_Mission','Illusion Sacred Mission',4,0,NULL,1600,NULL,190,NULL,1,0x00004000,56,2,32,NULL,'120',1,4,'bonus bVit,3; bonus bInt,2; bonus bMdef,3; bonus bUnbreakableShield; bonus2 bSkillAtk,"LG_EARTHDRIVE",(7*getrefine());',NULL,NULL);
 #===================================================================
 # Enchantment stones
 #===================================================================
@@ -12248,4 +12370,6 @@ REPLACE INTO `item_db_re` VALUES (31474,'C_Straight_Long_BL','C Straight Long Bl
 REPLACE INTO `item_db_re` VALUES (31475,'C_Black_Fox_Ear_Ribbon','C Black Fox Ears Ribbon',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1726,NULL,NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (31476,'C_Cherry_Blossom_Hat_YL','C Yellow Cherry Blossom Hat',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1727,NULL,NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (31478,'C_Eleanor_Wig_','C Eleanors Wig Lower',4,0,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,1502,NULL,NULL,NULL);
+#
+REPLACE INTO `item_db_re` VALUES (32005,'Illusion_Pole_Axe','Illusion Pole Axe',5,0,NULL,1500,'190',NULL,3,2,0x00004082,63,2,2,4,'120',1,4,'.@r = getrefine(); bonus bStr,3; bonus bInt,2; bonus bDex,2; if (.@r >= 13) { .@val = -2000; } else if (.@r >= 9) { .@val = -1000; } bonus2 bSkillCooldown,"RK_HUNDREDSPEAR",.@val;',NULL,NULL);
 

+ 2 - 1
sql-files/logs.sql

@@ -165,12 +165,13 @@ CREATE TABLE IF NOT EXISTS `npclog` (
 # Lotter(Y)
 # (Z) Merged Items
 # (Q)uest
+# Private Airs(H)ip
 
 CREATE TABLE IF NOT EXISTS `picklog` (
   `id` int(11) NOT NULL auto_increment,
   `time` datetime NOT NULL,
   `char_id` int(11) NOT NULL default '0',
-  `type` enum('M','P','L','T','V','S','N','C','A','R','G','E','B','O','I','X','D','U','$','F','Y','Z','Q') NOT NULL default 'P',
+  `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') NOT NULL default 'P',
   `nameid` smallint(5) unsigned NOT NULL default '0',
   `amount` int(11) NOT NULL default '1',
   `refine` tinyint(3) unsigned NOT NULL default '0',

+ 56 - 17
sql-files/mob_db_re.sql

@@ -1243,13 +1243,13 @@ REPLACE INTO `mob_db_re` VALUES (2066,'E_ANOPHELES','Anopheles','Anopheles',5,50
 REPLACE INTO `mob_db_re` VALUES (2067,'E_ANOPHELES_','Anopheles','Anopheles',3,500,1,1,1,1,40,58,8,100,1,100,1,1,100,1,10,12,0,4,64,0x6200000,170,1084,2304,576,0,0,0,0,0,0,0,601,1000,702,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4344,1);
 
 # Brasilis
-REPLACE INTO `mob_db_re` VALUES (2068,'BOITATA','Boitata','Boitata',93,1283990,1,74288,77950,2,1060,2022,32,66,140,99,30,109,100,90,10,12,2,2,63,0x6283695,200,1152,1152,576,37144,617,5500,617,5000,616,2000,7444,5000,1377,100,1422,100,607,500,985,1000,984,1000,1471,100,0,0,0,0,0,0);
-REPLACE INTO `mob_db_re` VALUES (2069,'IARA','Iara','Iara',79,5890,1,1070,890,1,171,270,0,76,69,14,41,60,69,20,10,12,1,5,61,0x91,200,384,672,288,0,0,0,0,0,0,0,995,5,950,9000,951,500,748,50,747,100,710,10,2334,1,0,0,0,0,0,0);
-REPLACE INTO `mob_db_re` VALUES (2070,'PIRANHA','Piranha','Piranha',75,4522,1,899,1023,1,182,223,7,12,69,45,30,30,66,35,10,12,2,5,61,0x3885,200,768,480,864,0,0,0,0,0,0,0,956,600,995,5,963,9000,1053,500,1054,500,13027,1,1249,5,0,0,0,0,0,0);
-REPLACE INTO `mob_db_re` VALUES (2071,'HEADLESS_MULE','Headless Mule','Headless Mule',80,6620,1,1011,1120,1,210,267,33,44,68,51,50,35,67,20,10,12,2,6,63,0x2003885,165,1216,816,432,0,0,0,0,0,0,0,7120,4000,2317,5,7097,1000,7122,1000,1269,1,2317,1,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db_re` VALUES (2072,'JAGUAR','Jaguar','Jaguar',71,3914,1,720,512,1,192,234,44,15,69,30,45,5,59,5,10,12,1,2,42,0x91,150,576,1248,480,0,0,0,0,0,0,0,7171,3000,7172,2000,919,1000,756,40,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db_re` VALUES (2073,'TOUCAN','Toucan','Toucan',70,3640,1,659,544,1,166,201,12,12,54,14,40,35,44,10,10,12,1,2,44,0x1089,155,960,1440,960,0,0,0,0,0,0,0,917,3000,7053,1000,510,50,508,100,2612,200,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db_re` VALUES (2074,'CURUPIRA','Curupira','Curupira',68,3096,1,622,450,1,140,175,42,12,32,23,38,20,45,10,10,12,1,7,22,0x108B,250,528,480,384,0,0,0,0,0,0,0,517,3000,757,250,1011,10,7267,500,1505,100,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db_re` VALUES (2068,'BOITATA','Boitata','Boitata',93,1283990,1,74288,77950,2,1060,2022,32,66,140,99,30,109,100,90,10,12,2,2,63,0x6283695,200,1152,1152,576,37144,617,5500,617,5000,616,2000,7444,5000,1377,100,1422,100,607,500,985,1000,984,1000,1471,100,0,0,0,0,27126,1);
+REPLACE INTO `mob_db_re` VALUES (2069,'IARA','Iara','Iara',79,5890,1,1070,890,1,171,270,0,76,69,14,41,60,69,20,10,12,1,5,61,0x91,200,384,672,288,0,0,0,0,0,0,0,995,5,950,9000,951,500,748,50,747,100,710,10,2334,1,0,0,0,0,27120,1);
+REPLACE INTO `mob_db_re` VALUES (2070,'PIRANHA','Piranha','Piranha',75,4522,1,899,1023,1,182,223,7,12,69,45,30,30,66,35,10,12,2,5,61,0x3885,200,768,480,864,0,0,0,0,0,0,0,956,600,995,5,963,9000,1053,500,1054,500,13027,1,1249,5,0,0,0,0,27121,1);
+REPLACE INTO `mob_db_re` VALUES (2071,'HEADLESS_MULE','Headless Mule','Headless Mule',80,6620,1,1011,1120,1,210,267,33,44,68,51,50,35,67,20,10,12,2,6,63,0x2003885,165,1216,816,432,0,0,0,0,0,0,0,7120,4000,2317,5,7097,1000,7122,1000,1269,1,2317,1,0,0,0,0,0,0,27125,1);
+REPLACE INTO `mob_db_re` VALUES (2072,'JAGUAR','Jaguar','Jaguar',71,3914,1,720,512,1,192,234,44,15,69,30,45,5,59,5,10,12,1,2,42,0x91,150,576,1248,480,0,0,0,0,0,0,0,7171,3000,7172,2000,919,1000,756,40,0,0,0,0,0,0,0,0,0,0,27124,1);
+REPLACE INTO `mob_db_re` VALUES (2073,'TOUCAN','Toucan','Toucan',70,3640,1,659,544,1,166,201,12,12,54,14,40,35,44,10,10,12,1,2,44,0x1089,155,960,1440,960,0,0,0,0,0,0,0,917,3000,7053,1000,510,50,508,100,2612,200,0,0,0,0,0,0,0,0,27123,1);
+REPLACE INTO `mob_db_re` VALUES (2074,'CURUPIRA','Curupira','Curupira',68,3096,1,622,450,1,140,175,42,12,32,23,38,20,45,10,10,12,1,7,22,0x108B,250,528,480,384,0,0,0,0,0,0,0,517,3000,757,250,1011,10,7267,500,1505,100,0,0,0,0,0,0,0,0,27122,1);
 
 # Event MVP
 REPLACE INTO `mob_db_re` VALUES (2075,'E_VADON_X','Ragunta','Ragunta',150,25000000,0,9999999,9999999,1,7000,10000,500,500,100,100,100,100,100,100,10,12,2,5,88,0x6283695,150,1632,432,540,4999999,0,0,0,0,0,0,960,5000,7095,3000,7093,3000,984,1000,985,500,7444,50,617,10,0,0,0,0,6414,9000);
@@ -1932,7 +1932,7 @@ REPLACE INTO `mob_db_re` VALUES (2705,'C2_POISON_SPORE','Solid Poison Spore','So
 REPLACE INTO `mob_db_re` VALUES (2706,'C3_PLASMA_Y','Plasma Ringleader','Plasma Ringleader',119,103000,1,6860,25935,1,1086,1499,130,45,141,94,75,91,144,50,10,12,0,0,88,0x3885,150,1056,1056,336,0,0,0,0,0,0,0,911,100,644,10,731,2,715,100,969,1,7938,300,0,0,0,0,0,0,4389,1);
 REPLACE INTO `mob_db_re` VALUES (2707,'C4_PLANKTON','Furious Plankton','Furious Plankton',40,6160,1,835,2805,1,135,171,28,28,23,68,25,55,35,14,10,12,0,3,61,0x81,400,2208,1008,324,0,0,0,0,0,0,0,1052,9000,910,300,938,700,970,4,601,1000,630,20,645,50,0,0,0,0,4024,1);
 REPLACE INTO `mob_db_re` VALUES (2708,'C5_PITMAN','Elusive Pitman','Elusive Pitman',90,36040,1,3875,11895,1,360,456,104,48,78,56,45,35,60,30,10,12,2,1,42,0x91,180,960,336,300,0,0,0,0,0,0,0,7318,3000,7319,500,6244,900,999,500,1003,100,1041,1000,7327,80,0,0,0,0,4335,1);
-REPLACE INTO `mob_db_re` VALUES (2709,'C1_PIRANHA','Swift Piranha','Swift Piranha',75,22610,1,2470,7665,1,336,432,7,12,69,45,30,30,79,35,10,12,2,5,61,0x3885,200,768,480,864,0,0,0,0,0,0,0,956,600,995,5,963,9000,1053,500,1054,500,13027,1,1249,5,0,0,0,0,0,0);
+REPLACE INTO `mob_db_re` VALUES (2709,'C1_PIRANHA','Swift Piranha','Swift Piranha',75,22610,1,2470,7665,1,336,432,7,12,69,45,30,30,79,35,10,12,2,5,61,0x3885,200,768,480,864,0,0,0,0,0,0,0,956,600,995,5,963,9000,1053,500,1054,500,13027,1,1249,5,0,0,0,0,27121,1);
 REPLACE INTO `mob_db_re` VALUES (2710,'C2_PINGUICULA_D','Solid Dark Pinguicula','Solid Dark Pinguicula',113,170020,1,6825,21750,1,634,851,59,35,89,55,55,95,92,12,10,12,1,3,45,0x308D,290,1426,600,360,0,0,0,0,0,0,0,7100,5000,7198,2000,7188,3000,972,10,6086,1000,7939,1500,2148,10,0,0,0,0,4468,1);
 REPLACE INTO `mob_db_re` VALUES (2711,'C3_PINGUICULA','Pinguicula Ringleader','Pinguicula Ringleader',105,65290,1,7300,23955,1,696,958,46,77,67,60,64,107,77,34,10,12,1,3,62,0x308D,200,700,600,360,0,0,0,0,0,0,0,2745,1,1980,10,2270,10,7100,5000,7198,2000,7188,3000,7939,500,0,0,0,0,4476,1);
 REPLACE INTO `mob_db_re` VALUES (2712,'C4_PICKY_','Furious Picky','Furious Picky',10,445,1,180,405,1,41,49,48,10,15,10,8,5,9,3,10,12,0,2,23,0x81,200,988,288,168,0,0,0,0,0,0,0,916,9000,949,700,5015,10,507,600,519,300,601,50,10012,10,0,0,0,0,4011,1);
@@ -2018,7 +2018,7 @@ REPLACE INTO `mob_db_re` VALUES (2791,'C3_ISILLA','Isilla Ringleader','Isilla Ri
 REPLACE INTO `mob_db_re` VALUES (2792,'C4_INJUSTICE','Furious Injustice','Furious Injustice',95,39760,1,4720,14970,1,600,815,76,31,77,76,58,65,88,50,10,12,1,1,47,0x3695,400,770,720,336,0,0,0,0,0,0,0,999,300,7054,5335,7053,3500,2313,5,2316,2,660,2,0,0,0,0,0,0,4268,1);
 REPLACE INTO `mob_db_re` VALUES (2793,'C5_INCREASE_SOIL','Elusive Mi Gao','Elusive Mi Gao',83,26675,1,3300,11460,1,500,675,112,39,67,23,41,49,94,30,10,12,1,0,62,0x91,445,106,1056,576,0,0,0,0,0,0,0,7264,4365,7004,2300,997,10,969,2,0,0,0,0,0,0,0,0,0,0,4231,1);
 REPLACE INTO `mob_db_re` VALUES (2794,'C1_ICE_TITAN','Swift Ice Titan','Swift Ice Titan',110,104100,1,8170,23790,1,1287,1809,344,11,133,54,78,33,94,26,10,12,2,0,61,0x3885,250,861,660,144,0,0,0,0,0,0,0,7561,5000,7066,3000,749,100,984,10,13314,30,6253,500,995,100,0,0,0,0,4417,1);
-REPLACE INTO `mob_db_re` VALUES (2795,'C2_IARA','Solid Iara','Solid Iara',79,58900,1,2940,6675,1,328,418,0,76,69,14,41,60,83,20,10,12,1,5,61,0x91,200,384,672,288,0,0,0,0,0,0,0,995,5,950,9000,951,500,748,50,747,100,710,10,2334,1,0,0,0,0,0,0);
+REPLACE INTO `mob_db_re` VALUES (2795,'C2_IARA','Solid Iara','Solid Iara',79,58900,1,2940,6675,1,328,418,0,76,69,14,41,60,83,20,10,12,1,5,61,0x91,200,384,672,288,0,0,0,0,0,0,0,995,5,950,9000,951,500,748,50,747,100,710,10,2334,1,0,0,0,0,27120,1);
 REPLACE INTO `mob_db_re` VALUES (2796,'C3_HYEGUN','Yao Jun Ringleader','Yao Jun Ringleader',87,34980,1,3525,10830,1,416,546,84,43,69,38,40,20,82,20,10,12,1,1,49,0x3885,180,890,1320,720,0,0,0,0,0,0,0,7054,3880,609,100,985,10,2406,1,7277,300,15013,10,0,0,0,0,0,0,4328,1);
 REPLACE INTO `mob_db_re` VALUES (2797,'C4_HUNTER_FLY','Furious Hunter Fly','Furious Hunter Fly',63,10250,1,1585,5100,1,311,419,46,20,32,93,22,25,100,15,10,12,0,4,44,0x2003885,150,676,576,480,0,0,0,0,0,0,0,996,30,999,100,943,5335,912,1300,756,129,2259,1,1226,2,0,0,0,0,4115,1);
 REPLACE INTO `mob_db_re` VALUES (2798,'C5_HORNET','Elusive Hornet','Elusive Hornet',11,450,1,200,450,1,35,41,7,1,12,24,4,5,6,5,10,12,0,4,24,0x2001081,150,1292,792,216,0,0,0,0,0,0,0,992,80,939,9000,909,3500,1208,15,511,350,518,150,0,0,0,0,0,0,4019,1);
@@ -2348,7 +2348,7 @@ REPLACE INTO `mob_db_re` VALUES (3074,'TIMEHOLDER','Time Holder','Time Holder',1
 #3122,CHARLESTON1
 #3123,CHARLESTON2
 #3124,CHARLESTON3
-REPLACE INTO `mob_db_re` VALUES (3125,'STEP','Step','Step',130,55403,0,3088,2392,1,871,1566,101,58,117,127,55,61,116,60,10,12,0,6,22,0x2000000,250,0,780,0,0,0,0,0,0,0,0,6751,1000,998,150,13213,400,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db_re` VALUES (3125,'STEP','Step','Step',130,55403,0,3088,2392,1,871,1566,101,58,117,127,55,61,116,60,10,12,0,6,22,0x2000000,250,0,780,0,0,0,0,0,0,0,0,6751,1000,998,150,13213,400,0,0,0,0,0,0,0,0,0,0,0,0,4698,1);
 #3126,ROCK_STEP
 #3127,KICK_STEP
 #3128,KICK_AND_KICK
@@ -2414,12 +2414,12 @@ REPLACE INTO `mob_db_re` VALUES (3181,'E1_FELOCK','Captain Ferlock','Captain Fer
 #3188,E2_FELOCK
 #3189,WOLF_MOON
 REPLACE INTO `mob_db_re` VALUES (3190,'MM_SARAH','Sarah','Sarah Irene',160,100000000,1,0,0,12,1090,2755,276,255,43,161,6,188,225,136,10,12,0,0,20,0x87700A4,2000,500,500,0,0,0,0,0,0,0,0,15121,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4610,1);
-REPLACE INTO `mob_db_re` VALUES (3191,'MM_M_GIGAN1','Gigantes','Gigantes',160,6653400,1,0,1,2,4635,4755,64,112,156,151,30,62,265,21,10,12,1,6,47,0x62D3885,250,500,500,600,0,0,0,0,0,0,0,15121,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db_re` VALUES (3192,'MM_M_GIGAN2','Gigantes','Gigantes',160,9870000,1,0,0,2,5128,5217,89,175,212,138,43,21,227,15,10,12,1,6,47,0x62A3885,250,500,500,600,0,0,0,0,0,0,0,15121,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db_re` VALUES (3193,'MM_M_GIGAN3','Ancient Medium Gigantes','Ancient Medium Gigantes',160,1126300,1,0,0,2,3967,4132,113,155,121,125,45,35,271,15,10,12,1,6,47,0x6283885,300,500,500,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db_re` VALUES (3194,'MM_L_GIGAN1','Large Gigantes','Large Gigantes',160,2482000,1,0,0,2,4172,4254,55,177,135,135,12,72,220,91,10,12,2,6,47,0x62D3885,200,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db_re` VALUES (3195,'MM_L_GIGAN2','Large Gigantes','Large Gigantes',160,2784175,1,0,0,2,3641,3757,71,140,102,119,18,45,275,71,10,12,2,6,47,0x62A3885,200,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
-REPLACE INTO `mob_db_re` VALUES (3196,'MM_L_GIGAN3','Ancient Gigantes','Ancient Gigantes',160,12063464,1,0,0,2,8957,9018,48,190,203,141,1,66,355,103,10,12,2,6,47,0x6283885,330,800,800,500,0,0,0,0,0,0,0,6803,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+REPLACE INTO `mob_db_re` VALUES (3191,'MM_M_GIGAN1','Gigantes','Gigantes',160,6653400,1,0,1,2,4635,4755,64,112,156,151,30,62,265,21,10,12,1,6,47,0x62D3885,250,500,500,600,0,0,0,0,0,0,0,15121,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27183,1);
+REPLACE INTO `mob_db_re` VALUES (3192,'MM_M_GIGAN2','Gigantes','Gigantes',160,9870000,1,0,0,2,5128,5217,89,175,212,138,43,21,227,15,10,12,1,6,47,0x62A3885,250,500,500,600,0,0,0,0,0,0,0,15121,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27183,1);
+REPLACE INTO `mob_db_re` VALUES (3193,'MM_M_GIGAN3','Ancient Medium Gigantes','Ancient Medium Gigantes',160,1126300,1,0,0,2,3967,4132,113,155,121,125,45,35,271,15,10,12,1,6,47,0x6283885,300,500,500,600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27183,1);
+REPLACE INTO `mob_db_re` VALUES (3194,'MM_L_GIGAN1','Large Gigantes','Large Gigantes',160,2482000,1,0,0,2,4172,4254,55,177,135,135,12,72,220,91,10,12,2,6,47,0x62D3885,200,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27183,1);
+REPLACE INTO `mob_db_re` VALUES (3195,'MM_L_GIGAN2','Large Gigantes','Large Gigantes',160,2784175,1,0,0,2,3641,3757,71,140,102,119,18,45,275,71,10,12,2,6,47,0x62A3885,200,500,500,500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27183,1);
+REPLACE INTO `mob_db_re` VALUES (3196,'MM_L_GIGAN3','Ancient Gigantes','Ancient Gigantes',160,12063464,1,0,0,2,8957,9018,48,190,203,141,1,66,355,103,10,12,2,6,47,0x6283885,330,800,800,500,0,0,0,0,0,0,0,6803,10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27183,1);
 REPLACE INTO `mob_db_re` VALUES (3197,'MM_M_GARGOYLE','Gargoyle','Mutant Gargoyle',150,256780,1,0,0,9,712,801,124,43,147,110,66,57,191,70,10,12,1,6,64,0x2002085,200,1020,720,384,0,0,0,0,0,0,0,912,1940,1039,250,1746,3,0,0,2619,1,1769,1000,757,119,0,0,0,0,0,0);
 REPLACE INTO `mob_db_re` VALUES (3198,'MM_M_GALION','Galion','Mutant Galion',150,293165,1,0,0,1,801,878,166,71,133,142,71,45,166,45,10,12,1,2,44,0x020108F,150,864,624,360,0,0,0,0,0,0,0,7564,1500,919,1500,996,5,2531,3,0,0,0,0,0,0,0,0,0,0,0,0);
 REPLACE INTO `mob_db_re` VALUES (3199,'MM_M_MUTANT_DRAGON','Mutant Dragon','Wicked Mutant Dragon',150,324891,1,0,0,4,1176,1274,185,86,175,161,66,68,201,35,10,12,2,9,43,0x0203695,250,1280,1080,240,0,0,0,0,0,0,0,7054,2425,1035,250,1036,250,930,250,1559,50,7296,750,2527,25,0,0,0,0,0,0);
@@ -3577,9 +3577,48 @@ REPLACE INTO `mob_db_re` VALUES (3508,'DR_EGGRING_G','Eggring','Eggring',20,220,
 #20380,FLAME_GHOST_H
 #20381,EP17_1_R4885_BESTIA
 #20382,G_TWIN_CAPUT2
-
+#20383,E_WICKED_NYMPH
+#20384,E_WICKED_NYMPH_BOSS
+#20385,MD_GH_KING_SCHMIDT
+#20386,MD_GH_KING_SCHMIDT_N
+#20387,MD_GH_KING_SCHMIDT_H
+#20388,MD_GH_KHALITZBURG
+#20389,MD_GH_KHALITZBURG_H
+#20390,MD_GH_WHITEKNIGHT
+#20391,MD_GH_WHITEKNIGHT_H
+#20392,MD_GH_ALICE_G
+#20393,MD_GH_ROOT_G
+#20394,MD_GH_BLOODY_KNIGHT
+
+#20396,PORING_Z
+#20397,SAVAGE_BABE_Z
+#20398,CREAMY_Z
+#20399,POPORING_Z
+#20400,GOBLIN_Z
+#20401,FABRE_Z
+#20402,SPORE_Z
+#20403,STAINER_Z
+#20404,HORN_Z
+#20405,ELDER_WILOW_Z
+#20406,DROPS_Z
+#20407,DESERT_WOLF_B_Z
+#20408,PECOPECO_Z
+#20409,WOLF_Z
+#20410,PIERE_Z
+#20411,ALLIGATOR_Z
+#20412,GREEN_IGUANA_Z
+#20413,CHONCHON_Z
+#20414,THIEF_BUG_Z
+#20415,ORC_LADY_Z
+#20416,CARAMEL_Z
+#20417,YOYO_Z
+#20418,ARGOS_Z
 #20419,MUSPELLSKOLL_H
 #20420,WANDER_MAN_H
 #20421,BRINARANEA_H
 #20422,DARK_LORD_H
+#20423,BACSOJIN2
+#20424,MOONLIGHT2
+#20425,PHREEONI2
+#20426,MD_MANHOLE3
 

+ 2 - 0
sql-files/upgrades/upgrade_20180729_logs.sql

@@ -0,0 +1,2 @@
+ALTER TABLE `picklog`
+	MODIFY COLUMN `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') NOT NULL default 'P';

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

@@ -0,0 +1,3 @@
+UPDATE `char` ch, `skill` sk SET `ch`.`skill_point` = `ch`.`skill_point` + `sk`.`lv` WHERE `sk`.`id` = 2049 AND `ch`.`char_id` = `sk`.`char_id`;
+
+DELETE FROM `skill` WHERE `id` = 2049;

+ 2 - 4
src/char/char.cpp

@@ -2087,15 +2087,13 @@ int char_loadName(uint32 char_id, char* name){
 // Searches for the mapserver that has a given map (and optionally ip/port, if not -1).
 // If found, returns the server's index in the 'server' array (otherwise returns -1).
 int char_search_mapserver(unsigned short map, uint32 ip, uint16 port){
-	int i, j;
-
-	for(i = 0; i < ARRAYLENGTH(map_server); i++)
+	for(int i = 0; i < ARRAYLENGTH(map_server); i++)
 	{
 		if (map_server[i].fd > 0
 		&& (ip == (uint32)-1 || map_server[i].ip == ip)
 		&& (port == (uint16)-1 || map_server[i].port == port))
 		{
-			for (j = 0; map_server[i].map[j]; j++)
+			for (int j = 0; map_server[i].map[j]; j++)
 				if (map_server[i].map[j] == map)
 					return i;
 		}

+ 3 - 3
src/char/char.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _CHAR_HPP_
-#define _CHAR_HPP_
+#ifndef CHAR_HPP
+#define CHAR_HPP
 
 #include <vector>
 
@@ -330,4 +330,4 @@ const char* char_msg_txt(int msg_number);
 void char_do_final_msg(void);
 bool char_config_read(const char* cfgName, bool normal);
 
-#endif /* _CHAR_HPP_ */
+#endif /* CHAR_HPP */

+ 3 - 4
src/char/char_clif.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _CHAR_CLIF_HPP_
-#define _CHAR_CLIF_HPP_
+#ifndef CHAR_CLIF_HPP
+#define CHAR_CLIF_HPP
 
 #include "../common/cbasetypes.hpp"
 #include "../common/timer.hpp" //time_t
@@ -53,5 +53,4 @@ void chclif_block_character( int fd, struct char_session_data* sd);
 
 int chclif_parse(int fd);
 
-#endif	/* _CHAR_CLIF_HPP_ */
-
+#endif /* CHAR_CLIF_HPP */

+ 3 - 4
src/char/char_cnslif.hpp

@@ -1,12 +1,11 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _CHAR_CNSLIF_HPP_
-#define _CHAR_CNSLIF_HPP_
+#ifndef CHAR_CNSLIF_HPP
+#define CHAR_CNSLIF_HPP
 
 int cnslif_parse(const char* buf);
 void do_init_chcnslif(void);
 
 
-#endif	/* _CHAR_CNSLIF_HPP_ */
-
+#endif /* CHAR_CNSLIF_HPP */

+ 3 - 4
src/char/char_logif.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _CHAR_LOGIF_HPP_
-#define _CHAR_LOGIF_HPP_
+#ifndef CHAR_LOGIF_HPP
+#define CHAR_LOGIF_HPP
 
 #include "../common/cbasetypes.hpp"
 #include "../common/timer.hpp"
@@ -55,5 +55,4 @@ void do_final_chlogif(void);
 
 #define loginif_check(a) { if(!chlogif_isconnected()) return a; }
 
-#endif	/* _CHAR_LOGIF_HPP_ */
-
+#endif /* CHAR_LOGIF_HPP */

+ 3 - 4
src/char/char_mapif.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _CHAR_MAPIF_HPP_
-#define _CHAR_MAPIF_HPP_
+#ifndef CHAR_MAPIF_HPP
+#define CHAR_MAPIF_HPP
 
 #include "../common/cbasetypes.hpp"
 
@@ -57,5 +57,4 @@ void chmapif_server_reset(int id);
 void chmapif_on_disconnect(int id);
 void do_final_chmapif(void);
 
-#endif	/* _CHAR_MAPIF_HPP_ */
-
+#endif /* CHAR_MAPIF_HPP */

+ 3 - 3
src/char/int_achievement.hpp

@@ -1,9 +1,9 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _INT_ACHIEVEMENT_HPP_
-#define _INT_ACHIEVEMENT_HPP_
+#ifndef INT_ACHIEVEMENT_HPP
+#define INT_ACHIEVEMENT_HPP
 
 int inter_achievement_parse_frommap(int fd);
 
-#endif /* _INT_ACHIEVEMENT_HPP_ */
+#endif /* INT_ACHIEVEMENT_HPP */

+ 3 - 3
src/char/int_auction.hpp

@@ -1,12 +1,12 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _INT_AUCTION_HPP_
-#define _INT_AUCTION_HPP_
+#ifndef INT_AUCTION_HPP
+#define INT_AUCTION_HPP
 
 int inter_auction_parse_frommap(int fd);
 
 int inter_auction_sql_init(void);
 void inter_auction_sql_final(void);
 
-#endif /* _INT_AUCTION_HPP_ */
+#endif /* INT_AUCTION_HPP */

+ 3 - 3
src/char/int_clan.hpp

@@ -1,11 +1,11 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _INT_CLAN_HPP_
-#define _INT_CLAN_HPP_
+#ifndef INT_CLAN_HPP
+#define INT_CLAN_HPP
 
 int inter_clan_parse_frommap( int fd );
 int inter_clan_init(void);
 void inter_clan_final(void);
 
-#endif /* _INT_CLAN_HPP_ */
+#endif /* INT_CLAN_HPP */

+ 3 - 3
src/char/int_elemental.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _INT_ELEMENTAL_HPP_
-#define _INT_ELEMENTAL_HPP_
+#ifndef INT_ELEMENTAL_HPP
+#define INT_ELEMENTAL_HPP
 
 struct s_elemental;
 
@@ -12,4 +12,4 @@ int inter_elemental_parse_frommap(int fd);
 
 bool mapif_elemental_delete(int ele_id);
 
-#endif /* _INT_ELEMENTAL_HPP_ */
+#endif /* INT_ELEMENTAL_HPP */

+ 3 - 3
src/char/int_guild.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _INT_GUILD_HPP_
-#define _INT_GUILD_HPP_
+#ifndef INT_GUILD_HPP
+#define INT_GUILD_HPP
 
 #include "../common/cbasetypes.hpp"
 
@@ -37,4 +37,4 @@ int inter_guild_CharOnline(uint32 char_id, int guild_id);
 int inter_guild_CharOffline(uint32 char_id, int guild_id);
 uint16 inter_guild_storagemax(int guild_id);
 
-#endif /* _INT_GUILD_HPP_ */
+#endif /* INT_GUILD_HPP */

+ 3 - 3
src/char/int_homun.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _INT_HOMUN_HPP_
-#define _INT_HOMUN_HPP_
+#ifndef INT_HOMUN_HPP
+#define INT_HOMUN_HPP
 
 #include "../common/cbasetypes.hpp"
 
@@ -17,4 +17,4 @@ bool mapif_homunculus_load(int homun_id, struct s_homunculus* hd);
 bool mapif_homunculus_delete(int homun_id);
 bool mapif_homunculus_rename(char *name);
 
-#endif /* _INT_HOMUN_HPP_ */
+#endif /* INT_HOMUN_HPP */

+ 3 - 6
src/char/int_mail.hpp

@@ -1,15 +1,14 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _INT_MAIL_HPP_
-#define _INT_MAIL_HPP_
+#ifndef INT_MAIL_HPP
+#define INT_MAIL_HPP
 
 #include "../common/cbasetypes.hpp"
 #include "../common/timer.hpp"
 
 struct mail_message;
 
-
 TIMER_FUNC(mail_return_timer);
 TIMER_FUNC(mail_delete_timer);
 
@@ -22,6 +21,4 @@ void inter_mail_sql_final(void);
 int mail_savemessage(struct mail_message* msg);
 void mapif_Mail_new(struct mail_message *msg);
 
-
-
-#endif /* _INT_MAIL_HPP_ */
+#endif /* INT_MAIL_HPP */

+ 3 - 3
src/char/int_mercenary.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _INT_MERCENARY_HPP_
-#define _INT_MERCENARY_HPP_
+#ifndef INT_MERCENARY_HPP
+#define INT_MERCENARY_HPP
 
 #include "../common/cbasetypes.hpp"
 
@@ -18,4 +18,4 @@ bool mercenary_owner_delete(uint32 char_id);
 bool mapif_mercenary_delete(int merc_id);
 
 
-#endif /* _INT_MERCENARY_HPP_ */
+#endif /* INT_MERCENARY_HPP */

+ 3 - 3
src/char/int_party.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _INT_PARTY_HPP_
-#define _INT_PARTY_HPP_
+#ifndef INT_PARTY_HPP
+#define INT_PARTY_HPP
 
 #include "../common/cbasetypes.hpp"
 
@@ -26,4 +26,4 @@ int inter_party_charname_changed(int party_id, uint32 char_id, char *name);
 int inter_party_CharOnline(uint32 char_id, int party_id);
 int inter_party_CharOffline(uint32 char_id, int party_id);
 
-#endif /* _INT_PARTY_HPP_ */
+#endif /* INT_PARTY_HPP */

+ 3 - 3
src/char/int_pet.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _INT_PET_HPP_
-#define _INT_PET_HPP_
+#ifndef INT_PET_HPP
+#define INT_PET_HPP
 
 #include "../common/cbasetypes.hpp"
 
@@ -19,4 +19,4 @@ int inter_pet_sql_init(void);
 
 int inter_pet_tosql(int pet_id, struct s_pet *p);
 
-#endif /* _INT_PET_HPP_ */
+#endif /* INT_PET_HPP */

+ 3 - 4
src/char/int_quest.hpp

@@ -1,10 +1,9 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _INT_QUEST_HPP_
-#define _INT_QUEST_HPP_
+#ifndef INT_QUEST_HPP
+#define INT_QUEST_HPP
 
 int inter_quest_parse_frommap(int fd);
 
-#endif /* _INT_QUEST_HPP_ */
-
+#endif /* INT_QUEST_HPP */

+ 3 - 3
src/char/int_storage.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _INT_STORAGE_HPP_
-#define _INT_STORAGE_HPP_
+#ifndef INT_STORAGE_HPP
+#define INT_STORAGE_HPP
 
 #include "../common/cbasetypes.hpp"
 
@@ -20,4 +20,4 @@ bool inter_storage_parse_frommap(int fd);
 
 bool guild_storage_tosql(int guild_id, struct s_storage *p);
 
-#endif /* _INT_STORAGE_HPP_ */
+#endif /* INT_STORAGE_HPP */

+ 3 - 3
src/char/inter.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _INTER_HPP_
-#define _INTER_HPP_
+#ifndef INTER_HPP
+#define INTER_HPP
 
 #include <memory>
 #include <string>
@@ -40,4 +40,4 @@ extern Sql* lsql_handle;
 void inter_savereg(uint32 account_id, uint32 char_id, const char *key, unsigned int index, intptr_t val, bool is_string);
 int inter_accreg_fromsql(uint32 account_id, uint32 char_id, int fd, int type);
 
-#endif /* _INTER_HPP_ */
+#endif /* INTER_HPP */

+ 3 - 3
src/common/cbasetypes.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _CBASETYPES_HPP_
-#define _CBASETYPES_HPP_
+#ifndef CBASETYPES_HPP
+#define CBASETYPES_HPP
 
 /*              +--------+-----------+--------+---------+
  *              | ILP32  |   LP64    |  ILP64 | (LL)P64 |
@@ -438,4 +438,4 @@ static inline uint32 u32min(uint32 a, uint32 b){ return (a < b) ? a : b; }
 static inline uint64 u64min(uint64 a, uint64 b){ return (a < b) ? a : b; }
 static inline size_t zmin(size_t a, size_t b){ return (a < b) ? a : b; }
 
-#endif /* _CBASETYPES_HPP_ */
+#endif /* CBASETYPES_HPP */

+ 3 - 4
src/common/cli.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _CLI_HPP_
-#define	_CLI_HPP_
+#ifndef CLI_HPP
+#define CLI_HPP
 
 #include "cbasetypes.hpp"
 #include "timer.hpp"
@@ -34,5 +34,4 @@ int cli_get_options(int argc, char ** argv);
 TIMER_FUNC(parse_console_timer);
 extern int parse_console(const char* buf); //particular for each serv
 
-#endif /* _CLI_HPP_ */
-
+#endif /* CLI_HPP */

+ 3 - 3
src/common/conf.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _CONF_HPP_
-#define _CONF_HPP_
+#ifndef CONF_HPP
+#define CONF_HPP
 
 #include "../../3rdparty/libconfig/libconfig.h"
 
@@ -11,4 +11,4 @@
 int conf_read_file(config_t *config, const char *config_filename);
 int config_setting_copy(config_setting_t *parent, const config_setting_t *src);
 
-#endif // _CONF_HPP_
+#endif /* CONF_HPP */

+ 3 - 3
src/common/core.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef	_CORE_HPP_
-#define	_CORE_HPP_
+#ifndef CORE_HPP
+#define CORE_HPP
 
 /* so that developers with --enable-debug can raise signals from any section of the code they'd like */
 #ifdef DEBUG
@@ -53,4 +53,4 @@ enum E_CORE_ST
 /// If NULL, runflag is set to CORE_ST_STOP instead.
 extern void (*shutdown_callback)(void);
 
-#endif /* _CORE_HPP_ */
+#endif /* CORE_HPP */

+ 3 - 3
src/common/db.hpp

@@ -39,8 +39,8 @@
  * @encoding US-ASCII                                                        *
  * @see common#db.cpp                                                        *
 \*****************************************************************************/
-#ifndef _DB_HPP_
-#define _DB_HPP_
+#ifndef DB_HPP
+#define DB_HPP
 
 #include <stdarg.h>
 
@@ -1655,4 +1655,4 @@ void  linkdb_foreach (struct linkdb_node** head, LinkDBFunc func, ...);
 /// @return negative if v1 is top, positive if v2 is top, 0 if equal
 #define BHEAP_MAXTOPCMP(v1,v2) ( v1 == v2 ? 0 : v1 > v2 ? -1 : 1 )
 
-#endif /* _DB_HPP_ */
+#endif /* DB_HPP */

+ 3 - 3
src/common/des.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef	_DES_HPP_
-#define	_DES_HPP_
+#ifndef DES_HPP
+#define DES_HPP
 
 #include "cbasetypes.hpp"
 
@@ -12,4 +12,4 @@ typedef struct BIT64 { uint8_t b[8]; } BIT64;
 void des_decrypt_block(BIT64* block);
 void des_decrypt(unsigned char* data, size_t size);
 
-#endif // _DES_HPP_
+#endif /* DES_HPP */

+ 3 - 3
src/common/ers.hpp

@@ -37,8 +37,8 @@
  * @author Flavio @ Amazon Project                                           *
  * @encoding US-ASCII                                                        *
 \*****************************************************************************/
-#ifndef _ERS_HPP_
-#define _ERS_HPP_
+#ifndef ERS_HPP
+#define ERS_HPP
 
 #include "cbasetypes.hpp"
 
@@ -177,4 +177,4 @@ void ers_report(void);
 void ers_final(void);
 #endif /* DISABLE_ERS / not DISABLE_ERS */
 
-#endif /* _ERS_HPP_ */
+#endif /* ERS_HPP */

+ 3 - 3
src/common/grfio.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef	_GRFIO_HPP_
-#define	_GRFIO_HPP_
+#ifndef GRFIO_HPP
+#define GRFIO_HPP
 
 void grfio_init(const char* fname);
 void grfio_final(void);
@@ -14,4 +14,4 @@ unsigned long grfio_crc32(const unsigned char *buf, unsigned int len);
 int decode_zip(void* dest, unsigned long* destLen, const void* source, unsigned long sourceLen);
 int encode_zip(void* dest, unsigned long* destLen, const void* source, unsigned long sourceLen);
 
-#endif /* _GRFIO_HPP_ */
+#endif /* GRFIO_HPP */

+ 3 - 3
src/common/malloc.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _MALLOC_HPP_
-#define _MALLOC_HPP_
+#ifndef MALLOC_HPP
+#define MALLOC_HPP
 
 #include "cbasetypes.hpp"
 
@@ -89,4 +89,4 @@ size_t malloc_usage (void);
 void malloc_init (void);
 void malloc_final (void);
 
-#endif /* _MALLOC_HPP_ */
+#endif /* MALLOC_HPP */

+ 3 - 3
src/common/mapindex.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _MAPINDEX_HPP_
-#define _MAPINDEX_HPP_
+#ifndef MAPINDEX_HPP
+#define MAPINDEX_HPP
 
 #include "../common/mmo.hpp"
 
@@ -69,4 +69,4 @@ void mapindex_check_mapdefault(const char *mapname);
 void mapindex_init(void);
 void mapindex_final(void);
 
-#endif /* _MAPINDEX_HPP_ */
+#endif /* MAPINDEX_HPP */

+ 3 - 3
src/common/md5calc.hpp

@@ -1,11 +1,11 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _MD5CALC_HPP_
-#define _MD5CALC_HPP_
+#ifndef MD5CALC_HPP
+#define MD5CALC_HPP
 
 void MD5_String(const char * string, char * output);
 void MD5_Binary(const char * string, unsigned char * output);
 void MD5_Salt(unsigned int len, char * output);
 
-#endif /* _MD5CALC_HPP_ */
+#endif /* MD5CALC_HPP */

+ 4 - 3
src/common/mmo.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef	_MMO_HPP_
-#define	_MMO_HPP_
+#ifndef MMO_HPP
+#define MMO_HPP
 
 #include <time.h>
 
@@ -32,6 +32,7 @@
 	#define MAX_HOTKEYS 38
 #endif
 
+#define MAX_MAP_PER_SERVER 1500 /// Maximum amount of maps available on a server
 #define MAX_INVENTORY 100 ///Maximum items in player inventory
 /** Max number of characters per account. Note that changing this setting alone is not enough if the client is not hexed to support more characters as well.
 * Max value tested was 265 */
@@ -1048,4 +1049,4 @@ struct clan{
 	#define MAX_CARTS 5
 #endif
 
-#endif /* _MMO_HPP_ */
+#endif /* MMO_HPP */

+ 0 - 1
src/common/msg_conf.hpp

@@ -39,4 +39,3 @@ const char* msg_langtype2langstr(int langtype);
 int msg_checklangtype(int lang, bool display);
 
 #endif	/* MSG_CONF_HPP */
-

+ 3 - 3
src/common/nullpo.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _NULLPO_HPP_
-#define _NULLPO_HPP_
+#ifndef NULLPO_HPP
+#define NULLPO_HPP
 
 #include "cbasetypes.hpp"
 
@@ -207,4 +207,4 @@ void nullpo_info_f(const char *file, int line, const char *func,
                    const char *fmt, ...)
                    __attribute__((format(printf,4,5)));
 
-#endif /* _NULLPO_HPP_ */
+#endif /* NULLPO_HPP */

+ 3 - 3
src/common/random.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _RANDOM_HPP_
-#define _RANDOM_HPP_
+#ifndef RANDOM_HPP
+#define RANDOM_HPP
 
 #include "cbasetypes.hpp"
 
@@ -11,4 +11,4 @@ void rnd_init(void);
 int32 rnd(void);// [0, SINT32_MAX]
 int32 rnd_value(int32 min, int32 max);// [min, max]
 
-#endif /* _RANDOM_HPP_ */
+#endif /* RANDOM_HPP */

+ 3 - 3
src/common/showmsg.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _SHOWMSG_HPP_
-#define _SHOWMSG_HPP_
+#ifndef SHOWMSG_HPP
+#define SHOWMSG_HPP
 
 #include "../../3rdparty/libconfig/libconfig.h"
 
@@ -97,4 +97,4 @@ extern void ShowError(const char *, ...);
 extern void ShowFatalError(const char *, ...);
 extern void ShowConfigWarning(config_setting_t *config, const char *string, ...);
 
-#endif /* _SHOWMSG_HPP_ */
+#endif /* SHOWMSG_HPP */

+ 3 - 3
src/common/socket.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef	_SOCKET_HPP_
-#define _SOCKET_HPP_
+#ifndef SOCKET_HPP
+#define SOCKET_HPP
 
 #ifdef WIN32
 	#include "winapi.hpp"
@@ -181,4 +181,4 @@ void send_shortlist_add_fd(int fd);
 void send_shortlist_do_sends();
 #endif
 
-#endif /* _SOCKET_HPP_ */
+#endif /* SOCKET_HPP */

+ 3 - 3
src/common/sql.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _COMMON_SQL_HPP_
-#define _COMMON_SQL_HPP_
+#ifndef SQL_HPP
+#define SQL_HPP
 
 #include <stdarg.h>// va_list
 
@@ -347,4 +347,4 @@ void SqlStmt_Free(SqlStmt* self);
 
 void Sql_Init(void);
 
-#endif /* _COMMON_SQL_HPP_ */
+#endif /* SQL_HPP */

+ 3 - 3
src/common/strlib.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _STRLIB_HPP_
-#define _STRLIB_HPP_
+#ifndef STRLIB_HPP
+#define STRLIB_HPP
 
 #include <stdarg.h>
 
@@ -159,4 +159,4 @@ void StringBuf_Clear(StringBuf* self);
 void StringBuf_Destroy(StringBuf* self);
 void StringBuf_Free(StringBuf* self);
 
-#endif /* _STRLIB_HPP_ */
+#endif /* STRLIB_HPP */

+ 3 - 3
src/common/timer.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef	_TIMER_HPP_
-#define	_TIMER_HPP_
+#ifndef TIMER_HPP
+#define TIMER_HPP
 
 #include <time.h>
 
@@ -62,4 +62,4 @@ int do_timer(unsigned int tick);
 void timer_init(void);
 void timer_final(void);
 
-#endif /* _TIMER_HPP_ */
+#endif /* TIMER_HPP */

+ 37 - 5
src/common/utilities.hpp

@@ -1,12 +1,13 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _UTILILITIES_HPP_
-#define _UTILILITIES_HPP_
+#ifndef UTILILITIES_HPP
+#define UTILILITIES_HPP
 
+#include <map>
 #include <memory>
 #include <string>
-#include <map>
+#include <unordered_map>
 
 #include "cbasetypes.hpp"
 
@@ -27,7 +28,7 @@ namespace rathena {
 		}
 
 		/**
-		 * Find a key-value pair and return the key value
+		 * Find a key-value pair and return the key value as a reference
 		 * @param map: Map to search through
 		 * @param key: Key wanted
 		 * @return Key value on success or nullptr on failure
@@ -57,7 +58,38 @@ namespace rathena {
 			else
 				return defaultValue;
 		}
+
+		/**
+		 * Find a key-value pair and return the key value as a reference
+		 * @param map: Unordered Map to search through
+		 * @param key: Key wanted
+		 * @return Key value on success or nullptr on failure
+		 */
+		template <typename K, typename V> V* umap_find(std::unordered_map<K, V>& map, K key) {
+			auto it = map.find(key);
+
+			if (it != map.end())
+				return &it->second;
+			else
+				return nullptr;
+		}
+
+		/**
+		 * Get a key-value pair and return the key value
+		 * @param map: Unordered Map to search through
+		 * @param key: Key wanted
+		 * @param defaultValue: Value returned if key doesn't exist
+		 * @return Key value on success or defaultValue on failure
+		 */
+		template <typename K, typename V> V umap_get(std::unordered_map<K, V>& map, K key, V defaultValue) {
+			auto it = map.find(key);
+
+			if (it != map.end())
+				return it->second;
+			else
+				return defaultValue;
+		}
 	}
 }
 
-#endif /* _UTILILITIES_HPP_ */
+#endif /* UTILILITIES_HPP */

+ 3 - 3
src/common/utils.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _UTILS_HPP_
-#define _UTILS_HPP_
+#ifndef UTILS_HPP
+#define UTILS_HPP
 
 #include <stdio.h> // FILE*
 
@@ -47,4 +47,4 @@ extern uint32 GetULong(const unsigned char* buf);
 extern int32 GetLong(const unsigned char* buf);
 extern float GetFloat(const unsigned char* buf);
 
-#endif /* _UTILS_HPP_ */
+#endif /* UTILS_HPP */

+ 3 - 3
src/common/winapi.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _WINAPI_HPP_
-#define _WINAPI_HPP_
+#ifndef WINAPI_HPP
+#define WINAPI_HPP
 
 #ifndef NTDDI_VERSION
 	#define NTDDI_VERSION 	0x05000000 // Windows 2000
@@ -51,4 +51,4 @@
 
 bool IsCurrentUserLocalAdministrator(void);
 
-#endif /* _WINAPI_HPP_ */
+#endif /* WINAPI_HPP */

+ 3 - 3
src/config/classes/general.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _CONFIG_GENERAL_HPP_
-#define _CONFIG_GENERAL_HPP_
+#ifndef CONFIG_GENERAL_HPP
+#define CONFIG_GENERAL_HPP
 
 /**
  * rAthena configuration file (http://rathena.org)
@@ -21,4 +21,4 @@
  * No settings past this point
  **/
 
-#endif // _CONFIG_GENERAL_HPP_
+#endif /* CONFIG_GENERAL_HPP */

+ 3 - 3
src/config/const.hpp

@@ -1,8 +1,8 @@
 // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
 // For more information, see LICENCE in the main folder
 
-#ifndef _CONFIG_CONST_H_
-#define _CONFIG_CONST_H_
+#ifndef CONFIG_CONST_H
+#define CONFIG_CONST_H
 
 /**
  * rAthena configuration file (http://rathena.org)
@@ -112,4 +112,4 @@
 /**
  * End of File
  **/
-#endif // _CONFIG_CONST_H_
+#endif /* CONFIG_CONST_H */

部分文件因为文件数量过多而无法显示