Преглед на файлове

Merge branch 'master' into feature/store_taxes

Aleos преди 6 години
родител
ревизия
b1299f54b1
променени са 100 файла, в които са добавени 4272 реда и са изтрити 2184 реда
  1. 2 2
      .gitignore
  2. 1 1
      .mailmap
  3. 2 2
      3rdparty/libconfig/libconfig.vcxproj
  4. 2 2
      3rdparty/yaml-cpp/yaml-cpp.vcxproj
  5. 1 1
      README.md
  6. 1 0
      conf/atcommand_athena.conf
  7. 10 2
      conf/battle/battle.conf
  8. 1 1
      conf/battle/battleground.conf
  9. 6 0
      conf/battle/exp.conf
  10. 17 4
      conf/battle/feature.conf
  11. 1 1
      conf/battle/gm.conf
  12. 1 1
      conf/battle/homunc.conf
  13. 18 4
      conf/battle/items.conf
  14. 2 2
      conf/battle/misc.conf
  15. 1 1
      conf/battle/monster.conf
  16. 1 1
      conf/battle/pet.conf
  17. 1 1
      conf/battle/player.conf
  18. 8 0
      conf/battle/skill.conf
  19. 1 1
      conf/battle/status.conf
  20. 4 4
      conf/char_athena.conf
  21. 1 0
      conf/help.txt
  22. 1 0
      conf/inter_athena.conf
  23. 4 6
      conf/log_athena.conf
  24. 11 1
      conf/login_athena.conf
  25. 1 1
      conf/motd.txt
  26. 8 3
      conf/msg_conf/map_msg.conf
  27. 1 1
      conf/msg_conf/map_msg_chn.conf
  28. 1 1
      conf/msg_conf/map_msg_frn.conf
  29. 1 1
      conf/msg_conf/map_msg_idn.conf
  30. 384 319
      conf/msg_conf/map_msg_por.conf
  31. 1 1
      conf/msg_conf/map_msg_rus.conf
  32. 2 2
      conf/msg_conf/map_msg_spn.conf
  33. 1 1
      conf/msg_conf/map_msg_tha.conf
  34. 15 2
      conf/packet_athena.conf
  35. 73 18
      configure
  36. 54 12
      configure.in
  37. 2 2
      db/import-tmpl/item_db.txt
  38. 6 0
      db/import-tmpl/item_flag.txt
  39. 4 0
      db/import-tmpl/mob_mission.txt
  40. 1 0
      db/mercenary_db.txt
  41. 2 0
      db/mercenary_skill_db.txt
  42. 1 1
      db/mob_item_ratio.txt
  43. 350 0
      db/mob_mission.txt
  44. 12 17
      db/pre-re/achievement_db.yml
  45. 0 1
      db/pre-re/item_buyingstore.txt
  46. 65 57
      db/pre-re/item_db.txt
  47. 1 1
      db/pre-re/item_delay.txt
  48. 6 0
      db/pre-re/item_flag.txt
  49. 1 1
      db/pre-re/mob_db.txt
  50. 4 4
      db/pre-re/pet_db.txt
  51. 3 2
      db/pre-re/skill_cast_db.txt
  52. 2 0
      db/pre-re/skill_castnodex_db.txt
  53. 60 58
      db/pre-re/skill_db.txt
  54. 14 12
      db/pre-re/skill_require_db.txt
  55. 1 1
      db/pre-re/skill_unit_db.txt
  56. 12 17
      db/re/achievement_db.yml
  57. 1 1
      db/re/instance_db.txt
  58. 78 5
      db/re/item_buyingstore.txt
  59. 118 30
      db/re/item_combo_db.txt
  60. 225 147
      db/re/item_db.txt
  61. 6 1
      db/re/item_delay.txt
  62. 6 0
      db/re/item_flag.txt
  63. 265 117
      db/re/item_trade.txt
  64. 4 4
      db/re/job_db1.txt
  65. 849 849
      db/re/mob_db.txt
  66. 5 0
      db/re/mob_race2_db.txt
  67. 667 0
      db/re/mob_skill_db.txt
  68. 4 4
      db/re/pet_db.txt
  69. 140 10
      db/re/quest_db.txt
  70. 16 2
      db/re/skill_cast_db.txt
  71. 2 0
      db/re/skill_castnodex_db.txt
  72. 64 62
      db/re/skill_db.txt
  73. 11 12
      db/re/skill_require_db.txt
  74. 13 0
      db/re/skill_tree.txt
  75. 4 1
      db/re/skill_unit_db.txt
  76. 1 1
      db/spellbook_db.txt
  77. 3 3
      doc/atcommands.txt
  78. 2 1
      doc/ea_job_system.txt
  79. 2 1
      doc/item_bonus.txt
  80. 2 2
      doc/item_group.txt
  81. 10 0
      doc/mapflags.txt
  82. 67 67
      doc/packet_interserv.txt
  83. 1 0
      doc/packet_struct_notation.txt
  84. 6 0
      doc/permissions.txt
  85. 24 9
      doc/sample/gstorage_test.txt
  86. 3 3
      doc/sample/npc_extend_shop.txt
  87. 4 4
      doc/sample/npc_live_dialogues.txt
  88. 26 26
      doc/sample/npc_shop_test.txt
  89. 4 5
      doc/sample/npc_test_duplicate.txt
  90. 51 0
      doc/sample/npc_test_getunits.txt
  91. 3 3
      doc/sample/npc_test_npctimer2.txt
  92. 204 72
      doc/script_commands.txt
  93. 4 4
      doc/skill_require_db.txt
  94. 10 10
      doc/source_doc.txt
  95. 20 0
      doc/status_change.txt
  96. 1 1
      npc/battleground/bg_common.txt
  97. 6 13
      npc/cities/prontera.txt
  98. 150 137
      npc/custom/etc/autopot.txt
  99. 1 1
      npc/custom/events/devil_square.txt
  100. 2 2
      npc/custom/events/mvp_ladder.txt

+ 2 - 2
.gitignore

@@ -71,7 +71,7 @@ Thumbs.db
 /src/common/Makefile
 /src/common/obj_all
 /src/common/obj_sql
-/src/common/svnversion.h
+/src/common/version.hpp
 
 # /src/custom/
 /src/custom
@@ -83,7 +83,7 @@ Thumbs.db
 # /src/map/
 /src/map/Makefile
 /src/map/obj_sql
-/src/map/pcre.h
+/src/map/pcre.hpp
 
 # /src/tool/
 /src/tool/Makefile

+ 1 - 1
.mailmap

@@ -25,6 +25,7 @@ brianluau <brianluau@users.noreply.github.com> <brianluau@54d463be-8e91-2dee-ded
 cydh <cydh@users.noreply.github.com> <cydh@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 Daegaladh <Daegaladh@users.noreply.github.com> <daegaladh@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 Deadly Silence <mail@deadly-silence.de> <deadlysilence@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+Epoque1 <22254628+Epoque1@users.noreply.github.com> <epoque11@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 euphyy <euphy.raliel@rathena.org> <euphyy@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 flaviojs <flaviojs2005@gmail.com> <FlavioJS@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 flaviojs <flaviojs2005@gmail.com> <flaviojs2005@54d463be-8e91-2dee-dedb-b68131a5f0ec>
@@ -133,7 +134,6 @@ skotlex <skotlex@mailforce.net> <Skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 # mc_cameri <mc_cameri@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 # evera <evera@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 # SinSloth <SinSloth@54d463be-8e91-2dee-dedb-b68131a5f0ec>
-# epoque11 <epoque11@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 # DracoRPG <DracoRPG@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 # littlewolf <littlewolf@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 # eaac <eaac@54d463be-8e91-2dee-dedb-b68131a5f0ec>

+ 2 - 2
3rdparty/libconfig/libconfig.vcxproj

@@ -106,7 +106,7 @@
       </PrecompiledHeader>
       <WarningLevel>Level3</WarningLevel>
       <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>YY_USE_CONST;LIBCONFIG_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>YY_USE_CONST;LIBCONFIG_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_LIB;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
     </ClCompile>
     <Link>
@@ -120,7 +120,7 @@
       </PrecompiledHeader>
       <WarningLevel>Level3</WarningLevel>
       <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>YY_USE_CONST;LIBCONFIG_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>YY_USE_CONST;LIBCONFIG_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG;_LIB;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
     </ClCompile>
     <Link>

+ 2 - 2
3rdparty/yaml-cpp/yaml-cpp.vcxproj

@@ -95,7 +95,7 @@
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
       <AdditionalIncludeDirectories>$(SolutionDir)3rdparty\yaml-cpp\include\;$(SolutionDir)3rdparty\yaml-cpp\src\;</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
     </ClCompile>
   </ItemDefinitionGroup>
@@ -107,7 +107,7 @@
       </SDLCheck>
       <AdditionalIncludeDirectories>$(SolutionDir)3rdparty\yaml-cpp\include\;$(SolutionDir)3rdparty\yaml-cpp\src\;</AdditionalIncludeDirectories>
       <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
-      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
     </ClCompile>
   </ItemDefinitionGroup>

+ 1 - 1
README.md

@@ -1,7 +1,7 @@
 rAthena
 =======
 
-Build Status: [![Build Status](https://travis-ci.org/rathena/rathena.png?branch=master)](https://travis-ci.org/rathena/rathena) [![Build status](https://ci.appveyor.com/api/projects/status/8574b8nlwd57loda/branch/master?svg=true)](https://ci.appveyor.com/project/rAthenaAPI/rathena/branch/master)
+Build Status: [![Build Status](https://travis-ci.org/rathena/rathena.png?branch=master)](https://travis-ci.org/rathena/rathena) [![Build status](https://ci.appveyor.com/api/projects/status/8574b8nlwd57loda/branch/master?svg=true)](https://ci.appveyor.com/project/rAthenaAPI/rathena/branch/master) [![Total alerts](https://img.shields.io/lgtm/alerts/g/rathena/rathena.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/rathena/rathena/alerts/) [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/rathena/rathena.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/rathena/rathena/context:cpp)
 
 Table of Contents
 ---------

+ 1 - 0
conf/atcommand_athena.conf

@@ -64,6 +64,7 @@ aliases: {
 	clonestat: ["stclone"]
 	reloadnpcfile: ["reloadnpc"]
 	changedress: ["nocosplay"]
+	camerainfo: ["viewpointvalue", "setcamera"]
 }
 
 /* Commands help file */

+ 10 - 2
conf/battle/battle.conf

@@ -6,11 +6,11 @@
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
-//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary)
+//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
 //--------------------------------------------------------------
 
 // Who should have a baseatk value (makes str affect damage)? (Note 3)
-enable_baseatk: 9
+enable_baseatk: 0x29F
 
 // Who can have perfect flee? (Note 3)
 enable_perfect_flee: 1
@@ -141,6 +141,14 @@ delay_battle_damage: yes
 //     skills should consume ammo when it's acquired via a card or plagiarize)
 arrow_decrement: 1
 
+// Should ammo be unequipped when unequipping a weapon?
+// Official behavior is "yes".
+ammo_unequip: yes
+
+// Should a suitable weapon be equipped when equipping ammo?
+// Official behavior is "yes".
+ammo_check_weapon: yes
+
 // Should the item script bonus 'Autospell' check for range/obstacles before casting?
 // Official behavior is "no", setting this to "yes" will make skills use their defined
 // range. For example, Sonic Blow requires a 2 cell distance before autocasting is allowed.

+ 1 - 1
conf/battle/battleground.conf

@@ -6,7 +6,7 @@
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
-//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
+//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
 //--------------------------------------------------------------
 
 // Melee damage adjustments (non skills) for Battleground maps (Note 2)

+ 6 - 0
conf/battle/exp.conf

@@ -18,6 +18,12 @@ job_exp_rate: 100
 // Turn this on to allow a player to level up more than once from a kill. (Note 1)
 multi_level_up: no
 
+// Allow multi level up until a certain level?
+// This only triggers if multi_level_up is enabled.
+// Default: 0 (Unlimited)
+multi_level_up_base: 0
+multi_level_up_job: 0
+
 // Setting this can cap the max experience one can get per kill specified as a
 // % of the current exp bar. (Every 10 = 1.0%)
 // For example, set it to 500 and no matter how much exp the mob gives, 

+ 17 - 4
conf/battle/feature.conf

@@ -4,7 +4,7 @@
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
-//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
+//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
 //--------------------------------------------------------------
 
 // Buying store (Note 1)
@@ -67,14 +67,27 @@ feature.roulette: on
 // Requires: 2015-05-13aRagexe or later
 feature.achievement: on
 
+// Equipment Switch (Note 1)
+// Requires: 2017-02-08bRagexeRE or later
+feature.equipswitch: on
+
 // Homunculues Autofeeding (Note 1)
 // Requires: 2017-09-20bRagexeRE or later
-feature.homunculus_autofeed: off
+feature.homunculus_autofeed: on
+
+// At which rate should homunculus autofeeding trigger? (Note 2)
+// Default: 30
+//
+// NOTE:
+// This setting only applies, if your client side LUAs are bugged.
+// By default the client triggers the feeding packet itself once
+// it reaches the limit that is hardcoded in the client.
+feature.homunculus_autofeed_rate: 30
 
 // Attendance System (Note 1)
 // Requires: 2018-03-07bRagexeRE or later
-feature.attendance: off
+feature.attendance: on
 
 // Private Airship System (Note 1)
 // Requires: 2018-03-21aRagexeRE or later
-feature.privateairship: off
+feature.privateairship: on

+ 1 - 1
conf/battle/gm.conf

@@ -24,7 +24,7 @@ partial_name_scan: yes
 // Duration of the ban, in minutes (default: 5). To disable the ban, set 0.
 ban_hack_trade: 5
 
-// requires RENEWAL_EXP or RENEWAL_DROP to be enabled (src/config/renewal.h)
+// requires RENEWAL_EXP or RENEWAL_DROP to be enabled (src/config/renewal.hpp)
 // modifies @mobinfo to display the users' real drop rate as per renewal_drop formula
 // modifies @iteminfo to not display the minimum item drop rate (since it can't tell the mob level)
 // modifies @whodrops to display the users' real drop rate as per renewal_drop formula

+ 1 - 1
conf/battle/homunc.conf

@@ -6,7 +6,7 @@
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
-//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
+//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
 //--------------------------------------------------------------
 
 // Homunculus setting (Note 3)

+ 18 - 4
conf/battle/items.conf

@@ -6,7 +6,7 @@
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
-//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
+//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
 //--------------------------------------------------------------
 
 // The highest value at which an item can be sold via the merchant vend skill. (in zeny)
@@ -102,9 +102,12 @@ item_flooritem_check: yes
 default_bind_on_equip: 4
 
 // Allow selling of bound/sell restricted items as Itemshop currency? (Note 3)
-// 0x0 = Bound/sell restricted items are unable to be sold at Itemshops
-// 0x1 = Bound items are able to be sold at Itemshops
-// 0x2 = Sell restricted items are able to be sold at Itemshops
+// 0x0 = Bound/sell restricted items are unable to be sold to Itemshops/Shops
+// 0x1 = Bound items are able to be sold to Itemshops
+// 0x2 = Sell restricted items are able to be sold to Itemshops
+// 0x4 = Bound items are able to be sold to Shops,
+//       because most of trade restricted items are still able to be sold to Shops
+// 0x8 = Only Guild Leader can sell BOUND_GUILD items to Shops or Itemshops (if 0x1 or 0x4 set)
 allow_bound_sell: 0x0
 
 // Turn on event refine chance (see db/{pre-}re/refine_db.yml)
@@ -117,3 +120,14 @@ event_refine_chance: no
 // Note: Players with short names can be fully converted to asterisks if this
 // config value is set high.
 broadcast_hide_name: 2
+
+// Enable to sell rental item to NPC shop? (Note 1)
+rental_transaction: yes
+
+// Minimum purchase price of items at a normal Shop
+// Officially items cannot be purchased for less than 1 Zeny
+min_shop_buy: 1
+
+// Minimum sell price of items at a normal shop
+// Officially items can be sold for 0 Zeny
+min_shop_sell: 0

+ 2 - 2
conf/battle/misc.conf

@@ -6,7 +6,7 @@
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
-//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
+//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
 //--------------------------------------------------------------
 
 // PK Server Mode.  Turns entire server pvp(excluding towns). Experience loss is doubled if killed by another player.
@@ -99,7 +99,7 @@ duel_only_on_same_map: no
 // Set to 0 for no cell stacking checks and free movement.
 // Custom - This variation will make every full cell to be considered a wall.
 // NOTE: For the custom setting to take effect you have to use a server compiled
-// with Cell Stack Limit support (see src/map/map.h)
+// with Cell Stack Limit support (see src/map/map.hpp)
 official_cell_stack_limit: 1
 custom_cell_stack_limit: 1
 

+ 1 - 1
conf/battle/monster.conf

@@ -6,7 +6,7 @@
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
-//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
+//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
 //--------------------------------------------------------------
 
 // The HP rate of MVPs. (Note 2)

+ 1 - 1
conf/battle/pet.conf

@@ -6,7 +6,7 @@
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
-//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
+//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
 //--------------------------------------------------------------
 
 // Rate for catching pets (Note 2)

+ 1 - 1
conf/battle/player.conf

@@ -6,7 +6,7 @@
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
-//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
+//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
 //--------------------------------------------------------------
 
 // Players' maximum HP rate? (Default is 100)

+ 8 - 0
conf/battle/skill.conf

@@ -375,3 +375,11 @@ banana_bomb_duration: 0
 // Official: no
 // Legacy rAthena logic: yes
 skill_drop_items_full: no
+
+// EDP setting: (Note 3)
+// When switching/unequipping a right hand weapon, should EDP be removed? EDP can't be used with bare hand.
+// 0: Disabled (rAthena legacy and pre-renewal behavior).
+// 1: Enabled on pre-renewal.
+// 2: Enabled on renewal.
+// 3: 1+2
+switch_remove_edp: 2

+ 1 - 1
conf/battle/status.conf

@@ -6,7 +6,7 @@
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
-//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
+//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
 //--------------------------------------------------------------
 
 // Should skill casting be cancelled when inflicted by curse/stun/sleep/etc (includes silence) (Note 3)?

+ 4 - 4
conf/char_athena.conf

@@ -85,7 +85,7 @@ char_maintenance: 0
 
 // Enable or disable creation of new characters.
 // Now it is actually supported [Kevin]
-char_new: 1
+char_new: yes
 
 // Display (New) in the server list.
 char_new_display: 0
@@ -109,7 +109,7 @@ save_log: yes
 
 // Starting point for new characters
 // Format: <map_name>,<x>,<y>{:<map_name>,<x>,<y>...}
-// Max number of start points is MAX_STARTPOINT in char.h (default 5)
+// Max number of start points is MAX_STARTPOINT in char.hpp (default 5)
 // Location is randomly picked on character creation.
 // NOTE: For Doram, this requires client 20151001 or newer.
 start_point: iz_int,18,26:iz_int01,18,26:iz_int02,18,26:iz_int03,18,26:iz_int04,18,26
@@ -117,7 +117,7 @@ start_point_pre: new_1-1,53,111:new_2-1,53,111:new_3-1,53,111:new_4-1,53,111:new
 start_point_doram: lasa_fild01,48,297
 
 // Starting items for new characters
-// Max number of items is MAX_STARTITEM in char.c (default 32)
+// Max number of items is MAX_STARTITEM in char.cpp (default 32)
 // Format: <id>,<amount>,<position>{:<id>,<amount>,<position>...}
 // To auto-equip an item, include the position where it will be equipped; otherwise, use zero.
 // NOTE: For Doram, this requires client 20151001 or newer.
@@ -141,7 +141,7 @@ guild_exp_rate: 100
 unknown_char_name: Unknown
 
 // To log the character server?
-log_char: 1
+log_char: yes
 
 // Allow or not identical name for characters but with a different case (upper/lower):
 // example: Test-test-TEST-TesT; Value: 0 not allowed (default), 1 allowed

+ 1 - 0
conf/help.txt

@@ -325,3 +325,4 @@ reload: "Params: <type>\n" "Reload a database or configuration file.\n"
 langtype: "Params: <language>\n" "Changes your language setting."
 limitedsale: "Opens the limited sale window."
 changedress: "Removes all character costumes."
+camerainfo: "Shows or updates the client's camera settings."

+ 1 - 0
conf/inter_athena.conf

@@ -149,6 +149,7 @@ vending_table: vendings
 vending_items_table: vending_items
 market_table: market
 roulette_table: db_roulette
+guild_storage_log: guild_storage_log
 
 // Use SQL item_db, mob_db and mob_skill_db for the map server? (yes/no)
 use_sql_db: no

+ 4 - 6
conf/log_athena.conf

@@ -4,7 +4,7 @@
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
-//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
+//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
 //--------------------------------------------------------------
 
 // Enable Logs? (Note 3)
@@ -37,7 +37,7 @@
 // Please note that moving items from inventory to cart and back is not logged by design.
 enable_logs: 0xFFFFFF
 
-// Use MySQL Logs? [SQL Version Only] (Note 1)
+// Use MySQL Logs? (Note 1)
 sql_logs: yes
 
 // LOGGING FILTERS
@@ -86,10 +86,8 @@ log_branch: no
 // 0 - don't log; 1 - log any zeny changes; 2.....1000000 - minimal absolute logging zeny value
 log_zeny: 0
 
-// Track Cash Changes
-// 0 - don't log
-// 1 - log any changes
-log_cash: 1
+// Track Cash Changes (Note 1)
+log_cash: yes
 
 // Log MVP Monster Drops (Note 1)
 // Outdated. Use Pick_Log instead. But this log could be useful to keep track slayed MVPs

+ 11 - 1
conf/login_athena.conf

@@ -89,7 +89,7 @@ min_group_id_to_connect: -1
 vip_group: 5
 
 // How many characters are allowed per account?
-// You cannot exceed the limit of MAX_CHARS slots, defined in mmo.h, or chars_per_account
+// You cannot exceed the limit of MAX_CHARS slots, defined in mmo.hpp, or chars_per_account
 // will default to MAX_CHARS.
 // 0 will default to the value of MIN_CHARS. (default)
 chars_per_account: 0
@@ -110,6 +110,16 @@ start_limited_time: -1
 // NOTE: Will not work with clients that use <passwordencrypt>
 use_MD5_passwords: no
 
+// User count colorization on login window (requires PACKETVER >= 20170726)
+// Disable colorization and description in general?
+usercount_disable: no
+// Amount of users that will display in green
+usercount_low: 200
+// Amount of users that will display in yellow
+usercount_medium: 500
+// Amount of users that will display in red
+usercount_high: 1000
+
 // Ipban features
 ipban_enable: yes
 // Dynamic password failure ipban system

+ 1 - 1
conf/motd.txt

@@ -1,2 +1,2 @@
-// Internal default is limited to 128 lines.  If you need more, you will need to modify the MOTD_LINE_SIZE definition in pc.c
+// Internal default is limited to 128 lines.  If you need more, you will need to modify the MOTD_LINE_SIZE definition in pc.cpp
 Welcome to rAthena! Enjoy! Please report any bugs you find.

+ 8 - 3
conf/msg_conf/map_msg.conf

@@ -861,7 +861,9 @@
 // Private Airship
 792: The private airship system is disabled.
 
-//793-899 free
+793: Usage @camerainfo range rotation latitude
+
+//794-899 free
 
 //------------------------------------
 // More atcommands message
@@ -1066,7 +1068,10 @@
 1050: Other Flags:
 1051: Other Flags2:
 1052: Skill Damage Adjustments:
-//1053-1064 free
+1053:  > [Map] %d%%, %d%%, %d%%, %d%% | Caster:%d
+1054:  > [Map Skill] Name : Player, Monster, Boss Monster, Other | Caster
+1055: Skill Duration Adjustments:
+//1056-1064 free
 1065:  No Exp Penalty: %s | No Zeny Penalty: %s
 1066: On
 1067: Off
@@ -1557,7 +1562,7 @@
 1391: You do not possess a cart to be removed
 1392: Cart Added.
 
-// atcommand.c::is_atcommand
+// atcommand.cpp::is_atcommand
 1393: You can't use commands while dead.
 
 // @clearstorage

+ 1 - 1
conf/msg_conf/map_msg_chn.conf

@@ -1373,7 +1373,7 @@
 1391: You do not possess a cart to be removed
 1392: Cart Added.
 
-// atcommand.c::is_atcommand
+// atcommand.cpp::is_atcommand
 1393: 角色死亡時不能使用指令。
 
 // @clearstorage

+ 1 - 1
conf/msg_conf/map_msg_frn.conf

@@ -1386,7 +1386,7 @@
 1391: Vous ne possédez pas de chariot.
 1392: Chariot ajouté.
 
-// atcommand.c::is_atcommand
+// atcommand.cpp::is_atcommand
 1393: Les morts ne pouvent pas utiliser de commande.
 
 // @clearstorage

+ 1 - 1
conf/msg_conf/map_msg_idn.conf

@@ -1477,7 +1477,7 @@
 1391: Kamu tidak memiliki keranjang yang akan dihapus.
 1392: Gerobak ditambahkan.
 
-// atcommand.c::is_atcommand
+// atcommand.cpp::is_atcommand
 1393: Kamu tidak bisa menggunakan perintah ini ketika mati.
 
 // @clearstorage

Файловите разлики са ограничени, защото са твърде много
+ 384 - 319
conf/msg_conf/map_msg_por.conf


+ 1 - 1
conf/msg_conf/map_msg_rus.conf

@@ -1386,7 +1386,7 @@
 1391: У вас нет телеги.
 1392: Телега добавлена.
 
-// atcommand.c::is_atcommand
+// atcommand.cpp::is_atcommand
 1393: Вы не можете использовать команды когда мертвы.
  
 // @clearstorage

+ 2 - 2
conf/msg_conf/map_msg_spn.conf

@@ -1199,7 +1199,7 @@
 1193: No estás recogiendo ese objeto.
 1194: Has eliminado '%s'/'%s' {%hu} de tu lista de recogida de objetos.
 1195: Puedes almacenar %d objetos en tu lista de recogida de objetos.
-1196: Para añadir un nuevo objeto a la lista utiliza @alootid <nombre/ID del objeto>. Para eliminar un objeto utiliza @alootid <nombre/ID del objeto>.
+1196: Para añadir un nuevo objeto a la lista utiliza @alootid +<nombre/ID del objeto>. Para eliminar un objeto utiliza @alootid -<nombre/ID del objeto>.
 1197: "@alootid reset" reiniciará tu lista de recogida de objetos.
 1198: Tu lista de recogida de objetos está vacía.
 1199: Lista de objetos para recoger automáticamente:
@@ -1527,7 +1527,7 @@
 1391: No tienes ningún carro.
 1392: Ahora tienes un carro.
 
-// atccomand.c::is_atcommand
+// atccomand.cpp::is_atcommand
 1393: No puedes utilizar ningún comando porque estás muerto.
 
 // @clearstorage

+ 1 - 1
conf/msg_conf/map_msg_tha.conf

@@ -1379,7 +1379,7 @@
 1391: へ充凌琳枚啖绻氛瑷信和汀.
 1392: 翟吹验�多㈢灌谜潞瞄吐.
 
-// atcommand.c::is_atcommand
+// atcommand.cpp::is_atcommand
 1393: へ充凌室烈枚悛椁邮谚т撮愎⒊械衣吐罔.
 
 // @clearstorage

+ 15 - 2
conf/packet_athena.conf

@@ -5,6 +5,19 @@
 // Display debug reports (When something goes wrong during the report, the report is saved.)
 debug: no
 
+// Linux/Epoll: Maximum Events per cycle
+// Default Value:
+//	(Maximum Supported Connections)/2
+// NOTE: this controls the maximum collected socket-events per-cycle (call to epoll_wait())
+//       for example settings this to 32 will allow up to 32 events (incoming data/new connections
+//       per server-cycle.
+// NOTE: Recommended Settings is at least half the maximum supported connections
+//       Settings this to a lower value, may cause lags/delays
+//       Depending on available CPU Time
+// NOTE: This Setting is only available on Linux when build using EPoll as event dispatcher!
+//
+//epoll_maxevents: 1024
+
 // How long can a socket stall before closing the connection (in seconds)
 stall_time: 60
 
@@ -22,7 +35,7 @@ enable_ip_rules: yes
 
 order: deny,allow
 // order: allow,deny
-// order: mutual-failture
+// order: mutual-failure
 
 // IP rules
 //   allow : Accepts connections from the ip range (even if flagged as DDoS)
@@ -45,7 +58,7 @@ order: deny,allow
 ddos_interval: 3000
 
 // Consecutive attempts trigger
-// (default is 5 attemps)
+// (default is 5 attempts)
 ddos_count: 5
 
 // The time interval after which the threat of DDoS is assumed to be gone. (msec)

+ 73 - 18
configure

@@ -698,6 +698,7 @@ ac_user_opts='
 enable_option_checking
 enable_manager
 enable_packetver
+enable_epoll
 enable_debug
 enable_prere
 enable_vip
@@ -1338,7 +1339,8 @@ Optional Features:
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
   --enable-manager=ARG    memory managers: no, builtin, memwatch, dmalloc,
                           gcollect, bcheck (defaults to builtin)
-  --enable-packetver=ARG  Sets the PACKETVER define. (see src/common/mmo.h)
+  --enable-packetver=ARG  Sets the PACKETVER define. (see src/common/mmo.hpp)
+  --enable-epoll          use epoll(4) on Linux
   --enable-debug[=ARG]    Compiles extra debug code. (disabled by default)
                           (available options: yes, no, gdb)
   --enable-prere[=ARG]    Compiles serv in prere mode. (disabled by default)
@@ -1365,7 +1367,9 @@ Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
   --with-maxconn[=ARG]    optionally set the maximum connections the core can
-                          handle (default: 16384) NOT USED YET - EXPERIMENTAL
+                          handle. By default the system header value will be used.
+                          This will only be the compile time limit, make sure
+                          you set the correct limit with ulimit on your OS.
   --with-outputlogin[=ARG]
                           Specify the login-serv output name (defaults to
                           login-server)
@@ -3236,6 +3240,55 @@ fi
 
 
 
+#
+# Epoll
+#
+# Check whether --enable-epoll was given.
+if test "${enable_epoll+set}" = set; then :
+  enableval=$enable_epoll; enable_epoll=$enableval
+else
+  enable_epoll=no
+
+fi
+
+if test x$enable_epoll = xno; then
+	have_linux_epoll=no
+else
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Linux epoll(4)" >&5
+$as_echo_n "checking for Linux epoll(4)... " >&6; }
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+		#ifndef __linux__
+		#error This is not Linux
+		#endif
+		#include <sys/epoll.h>
+
+int
+main ()
+{
+epoll_create1 (EPOLL_CLOEXEC);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  have_linux_epoll=yes
+else
+  have_linux_epoll=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_linux_epoll" >&5
+$as_echo "$have_linux_epoll" >&6; }
+fi
+if test x$enable_epoll,$have_linux_epoll = xyes,no; then
+    as_fn_error $? "epoll support explicitly enabled but not available" "$LINENO" 5
+fi
+
+
+
 #
 # debug
 #
@@ -3418,22 +3471,11 @@ fi
 # Check whether --with-maxconn was given.
 if test "${with_maxconn+set}" = set; then :
   withval=$with_maxconn;
-		if test "$withval" == "no";	 then
-			CPPFLAGS="$CPPFLAGS -DMAXCONN=16384"
-		else
-
-			if ! test "$withval" -ge 0 -o "$withval" -lt 0 2>&- ; then
-				as_fn_error $? "Invalid argument --with-maxconn=$withval ... stopping" "$LINENO" 5
-			else
-				CPPFLAGS="$CPPFLAGS -DMAXCONN=$withval"
-			fi
-		fi
-
-else
-
-		CPPFLAGS="$CPPFLAGS -DMAXCONN=16384"
-
-
+	if ! test "$withval" -ge 0 -o "$withval" -lt 0 2>&- ; then
+		as_fn_error $? "Invalid argument --with-maxconn=$withval ... stopping" "$LINENO" 5
+	else
+		CPPFLAGS="$CPPFLAGS -DMAXCONN=$withval"
+	fi
 fi
 
 
@@ -5920,6 +5962,19 @@ if test -n "$enable_packetver" ; then
 fi
 
 
+#
+# Epoll
+#
+case $have_linux_epoll in
+	"yes")
+		CPPFLAGS="$CPPFLAGS -DSOCKET_EPOLL"
+		;;
+	"no")
+		# default value
+		;;
+esac
+
+
 #
 # Debug
 #

+ 54 - 12
configure.in

@@ -53,6 +53,40 @@ AC_ARG_ENABLE(
 )
 
 
+#
+# Epoll
+#
+AC_ARG_ENABLE(
+	[epoll],
+	AC_HELP_STRING(
+		[--enable-epoll],
+		[use epoll(4) on Linux]
+	),
+	[enable_epoll=$enableval],
+	[enable_epoll=no]
+)
+if test x$enable_epoll = xno; then
+	have_linux_epoll=no
+else
+	AC_MSG_CHECKING([for Linux epoll(4)])
+	AC_LINK_IFELSE([AC_LANG_PROGRAM(
+		[
+		#ifndef __linux__
+		#error This is not Linux
+		#endif
+		#include <sys/epoll.h>
+		],
+		[epoll_create1 (EPOLL_CLOEXEC);])],
+		[have_linux_epoll=yes],
+		[have_linux_epoll=no]
+	)
+	AC_MSG_RESULT([$have_linux_epoll])
+fi
+if test x$enable_epoll,$have_linux_epoll = xyes,no; then
+	AC_MSG_ERROR([epoll support explicitly enabled but not available])
+fi
+
+
 #
 # debug
 #
@@ -261,29 +295,24 @@ AC_ARG_ENABLE(
 
 
 #
-# Optionally set the max number of network conenctions
-# the core will be support
+# Optionally set the maximum number of network connections
+# the core will be able to handle
 #
 AC_ARG_WITH(
 	[maxconn],
 	AC_HELP_STRING(
 		[--with-maxconn@<:@=ARG@:>@],
-		[optionally set the maximum connections the core can handle (default: 16384) NOT USED YET - EXPERIMENTAL]
+		[optionally set the maximum connections the core can handle. By default the system header value is used.]
 	),
 	[
-		if test "$withval" == "no";	 then
-			CPPFLAGS="$CPPFLAGS -DMAXCONN=16384"
+		if ! test "$withval" -ge 0 -o "$withval" -lt 0 2>&- ; then
+			AC_MSG_ERROR([Invalid argument --with-maxconn=$withval ... stopping])
 		else
-
-			if ! test "$withval" -ge 0 -o "$withval" -lt 0 2>&- ; then
-				AC_MSG_ERROR([Invalid argument --with-maxconn=$withval ... stopping])
-			else
-				CPPFLAGS="$CPPFLAGS -DMAXCONN=$withval"
-			fi
+			CPPFLAGS="$CPPFLAGS -DMAXCONN=$withval"
 		fi
 	],
 	[
-		CPPFLAGS="$CPPFLAGS -DMAXCONN=16384"
+		CPPFLAGS="$CPPFLAGS"
 	]
 )
 
@@ -985,6 +1014,19 @@ if test -n "$enable_packetver" ; then
 fi
 
 
+#
+# Epoll
+#
+case $have_linux_epoll in
+	"yes")
+		CPPFLAGS="$CPPFLAGS -DSOCKET_EPOLL"
+		;;
+	"no")
+		# default value
+		;;
+esac
+
+
 #
 # Debug
 #

+ 2 - 2
db/import-tmpl/item_db.txt

@@ -59,8 +59,8 @@
 
 // Old Tuxedo and Wedding Dress, will display the outfit when worn.
 //==================================================================
-//2338,Wedding_Dress,Wedding Dress,4,43000,,500,,0,,0,0xFFFFFFFE,63,0,16,,0,1,0,{},{ sc_start SC_WEDDING,-1,0; },{ sc_end SC_WEDDING; }
-//7170,Tuxedo,Tuxedo,4,43000,,10,,0,,0,0xFFFFFFFE,63,1,16,,0,1,0,{},{ sc_start SC_WEDDING,-1,0; },{ sc_end SC_WEDDING; }
+//2338,Wedding_Dress,Wedding Dress,4,43000,,500,,0,,0,0xFFFFFFFE,63,0,16,,0,1,0,{},{ sc_start SC_WEDDING,INFINITE_TICK,0; },{ sc_end SC_WEDDING; }
+//7170,Tuxedo,Tuxedo,4,43000,,10,,0,,0,0xFFFFFFFE,63,1,16,,0,1,0,{},{ sc_start SC_WEDDING,INFINITE_TICK,0; },{ sc_end SC_WEDDING; }
 
 // Non-kRO Eden Group Mark effect
 //=============================================================

+ 6 - 0
db/import-tmpl/item_flag.txt

@@ -8,4 +8,10 @@
 //  8 - Item will be bound item when equipped
 // 16 - Special Broadcast: When item dropped by monster and player loot it, will be broadcasted!
 // 32 - Item will not be removed on consumption. Also supports 'itemskill'
+// 64 - Item will be displayed with a client side defined drop
+// 128 - Item will be displayed with a white pillar drop effect
+// 256 - Item will be displayed with a blue pillar drop effect
+// 512 - Item will be displayed with a yellow pillar drop effect
+// 1024 - Item will be displayed with a purple pillar drop effect
+// 2048 - Item will be displayed with a orange pillar drop effect
 // NOTE: For removing flag by import file, use "-" to remove the flag. Example, 604,-1 will removes flag 1 from Branch_Of_Dead_Tree

+ 4 - 0
db/import-tmpl/mob_mission.txt

@@ -0,0 +1,4 @@
+// Taekwon Mission Summonable Monsters Database
+//
+// Structure of Database:
+// MobRandomGroupID,MobID,DummyName,Rate

+ 1 - 0
db/mercenary_db.txt

@@ -35,6 +35,7 @@
 2350,MER_SEDORA,Sedora,83,9815,234,2,1100,1300,60,60,85,90,71,43,85,105,10,12,0,6,47,150,1080,780,180
 2351,MER_CHEPET,Chepet,83,9815,234,2,1100,1300,60,60,85,90,71,43,85,105,10,12,0,6,47,150,1080,780,180
 2378,MER_ANTLER_SCARABA,Antler Scaraba,136,30000,1,1,1418,1828,155,102,23,99,59,129,137,45,10,12,1,4,42,200,504,624,360
+2937,M_LOKI,Loki's Shadow,145,1215600,1,2,1835,2279,15,89,76,66,90,55,189,22,10,12,1,7,20,175,800,750,300
 
 // Normal Mercenaries
 6017,MER_ARCHER01,Mina,20,256,200,10,170,85,7,5,1,16,5,1,28,8,10,0,0,7,20,150,700,432,300

+ 2 - 0
db/mercenary_skill_db.txt

@@ -215,3 +215,5 @@
 2347,8202,5	//MS_MAGNUM
 2347,8226,1	//MER_REGAIN
 2347,8233,1	//MER_AUTOBERSERK
+// M_LOKI
+2937,8241,1	//MER_INVINCIBLEOFF2

+ 1 - 1
db/mob_item_ratio.txt

@@ -18,7 +18,7 @@
 //
 // Notes:
 // - By default you can list up to 10 MonsterIDs per ItemID.
-//   It can be changed in src/map/mob.c by adjusting MAX_ITEMRATIO_MOBS.
+//   It can be changed in src/map/mob.cpp by adjusting MAX_ITEMRATIO_MOBS.
 // - Only ItemIDs up to MAX_ITEMDB are supported (default: 32768).
 // - Does not override item_drop_*_min/max settings.
 // - Does not affect card/item-granted drops. To adjust card/item-granted

+ 350 - 0
db/mob_mission.txt

@@ -0,0 +1,350 @@
+// Taekwon Mission Summonable Monsters Database
+//
+// Structure of Database:
+// MobRandomGroupID,MobID,DummyName,Rate
+
+MOBG_Taekwon_Mission,0,Scorpion,1001
+MOBG_Taekwon_Mission,1001,Scorpion,1
+MOBG_Taekwon_Mission,1002,Poring,1
+MOBG_Taekwon_Mission,1004,Hornet,1
+MOBG_Taekwon_Mission,1005,Familiar,1
+MOBG_Taekwon_Mission,1007,Fabre,1
+MOBG_Taekwon_Mission,1008,Pupa,1
+MOBG_Taekwon_Mission,1009,Condor,1
+MOBG_Taekwon_Mission,1010,Willow,1
+MOBG_Taekwon_Mission,1011,Chonchon,1
+MOBG_Taekwon_Mission,1012,Roda Frog,1
+MOBG_Taekwon_Mission,1013,Wolf,1
+MOBG_Taekwon_Mission,1014,Spore,1
+MOBG_Taekwon_Mission,1015,Zombie,1
+MOBG_Taekwon_Mission,1016,Archer Skeleton,1
+MOBG_Taekwon_Mission,1018,Creamy,1
+MOBG_Taekwon_Mission,1019,Peco Peco,1
+MOBG_Taekwon_Mission,1020,Mandragora,1
+MOBG_Taekwon_Mission,1023,Orc Warrior,1
+MOBG_Taekwon_Mission,1024,Wormtail,1
+MOBG_Taekwon_Mission,1025,Snake,1
+MOBG_Taekwon_Mission,1026,Munak,1
+MOBG_Taekwon_Mission,1028,Soldier Skeleton,1
+MOBG_Taekwon_Mission,1029,Isis,1
+MOBG_Taekwon_Mission,1030,Anacondaq,1
+MOBG_Taekwon_Mission,1031,Poporing,1
+MOBG_Taekwon_Mission,1032,Verit,1
+MOBG_Taekwon_Mission,1033,Elder Willow,1
+MOBG_Taekwon_Mission,1034,Thara Frog,1
+MOBG_Taekwon_Mission,1035,Hunter Fly,1
+MOBG_Taekwon_Mission,1036,Ghoul,1
+MOBG_Taekwon_Mission,1037,Side Winder,1
+MOBG_Taekwon_Mission,1040,Golem,1
+MOBG_Taekwon_Mission,1041,Mummy,1
+MOBG_Taekwon_Mission,1042,Steel Chonchon,1
+MOBG_Taekwon_Mission,1044,Obeaune,1
+MOBG_Taekwon_Mission,1045,Marc,1
+MOBG_Taekwon_Mission,1047,Peco Peco Egg,1
+MOBG_Taekwon_Mission,1048,Thief Bug Egg,1
+MOBG_Taekwon_Mission,1049,Picky,1
+MOBG_Taekwon_Mission,1050,Picky,1
+MOBG_Taekwon_Mission,1051,Thief Bug,1
+MOBG_Taekwon_Mission,1052,Rocker,1
+MOBG_Taekwon_Mission,1053,Thief Bug Female,1
+MOBG_Taekwon_Mission,1054,Thief Bug Male,1
+MOBG_Taekwon_Mission,1055,Muka,1
+MOBG_Taekwon_Mission,1056,Smokie,1
+MOBG_Taekwon_Mission,1057,Yoyo,1
+MOBG_Taekwon_Mission,1058,Metaller,1
+MOBG_Taekwon_Mission,1060,Bigfoot,1
+MOBG_Taekwon_Mission,1061,Nightmare,1
+MOBG_Taekwon_Mission,1062,Santa Poring,1
+MOBG_Taekwon_Mission,1063,Lunatic,1
+MOBG_Taekwon_Mission,1064,Megalodon,1
+MOBG_Taekwon_Mission,1065,Strouf,1
+MOBG_Taekwon_Mission,1066,Vadon,1
+MOBG_Taekwon_Mission,1067,Cornutus,1
+MOBG_Taekwon_Mission,1068,Hydra,1
+MOBG_Taekwon_Mission,1069,Swordfish,1
+MOBG_Taekwon_Mission,1070,Kukre,1
+MOBG_Taekwon_Mission,1071,Pirate Skeleton,1
+MOBG_Taekwon_Mission,1072,Kaho,1
+MOBG_Taekwon_Mission,1073,Crab,1
+MOBG_Taekwon_Mission,1074,Shellfish,1
+MOBG_Taekwon_Mission,1076,Skeleton,1
+MOBG_Taekwon_Mission,1077,Poison Spore,1
+MOBG_Taekwon_Mission,1088,Vocal,1
+MOBG_Taekwon_Mission,1089,Toad,1
+MOBG_Taekwon_Mission,1090,Mastering,1
+MOBG_Taekwon_Mission,1091,Dragon Fly,1
+MOBG_Taekwon_Mission,1092,Vagabond Wolf,1
+MOBG_Taekwon_Mission,1093,Eclipse,1
+MOBG_Taekwon_Mission,1094,Ambernite,1
+MOBG_Taekwon_Mission,1095,Andre,1
+MOBG_Taekwon_Mission,1096,Angeling,1
+MOBG_Taekwon_Mission,1097,Ant Egg,1
+MOBG_Taekwon_Mission,1098,Anubis,1
+MOBG_Taekwon_Mission,1099,Argiope,1
+MOBG_Taekwon_Mission,1100,Argos,1
+MOBG_Taekwon_Mission,1101,Baphomet Jr.,1
+MOBG_Taekwon_Mission,1102,Bathory,1
+MOBG_Taekwon_Mission,1103,Caramel,1
+MOBG_Taekwon_Mission,1104,Coco,1
+MOBG_Taekwon_Mission,1105,Deniro,1
+MOBG_Taekwon_Mission,1106,Desert Wolf,1
+MOBG_Taekwon_Mission,1107,Desert Wolf Baby,1
+MOBG_Taekwon_Mission,1108,Deviace,1
+MOBG_Taekwon_Mission,1109,Deviruchi,1
+MOBG_Taekwon_Mission,1110,Dokebi,1
+MOBG_Taekwon_Mission,1111,Drainliar,1
+MOBG_Taekwon_Mission,1113,Drops,1
+MOBG_Taekwon_Mission,1114,Dustiness,1
+MOBG_Taekwon_Mission,1116,Eggyra,1
+MOBG_Taekwon_Mission,1117,Evil Druid,1
+MOBG_Taekwon_Mission,1118,Flora,1
+MOBG_Taekwon_Mission,1119,Frilldora,1
+MOBG_Taekwon_Mission,1120,Ghostring,1
+MOBG_Taekwon_Mission,1121,Giearth,1
+MOBG_Taekwon_Mission,1122,Goblin,1
+MOBG_Taekwon_Mission,1123,Goblin,1
+MOBG_Taekwon_Mission,1124,Goblin,1
+MOBG_Taekwon_Mission,1125,Goblin,1
+MOBG_Taekwon_Mission,1126,Goblin,1
+MOBG_Taekwon_Mission,1127,Hode,1
+MOBG_Taekwon_Mission,1128,Horn,1
+MOBG_Taekwon_Mission,1129,Horong,1
+MOBG_Taekwon_Mission,1130,Jakk,1
+MOBG_Taekwon_Mission,1131,Joker,1
+MOBG_Taekwon_Mission,1132,Khalitzburg,1
+MOBG_Taekwon_Mission,1133,Kobold,1
+MOBG_Taekwon_Mission,1134,Kobold,1
+MOBG_Taekwon_Mission,1135,Kobold,1
+MOBG_Taekwon_Mission,1138,Magnolia,1
+MOBG_Taekwon_Mission,1139,Mantis,1
+MOBG_Taekwon_Mission,1140,Marduk,1
+MOBG_Taekwon_Mission,1141,Marina,1
+MOBG_Taekwon_Mission,1142,Marine Sphere,1
+MOBG_Taekwon_Mission,1143,Marionette,1
+MOBG_Taekwon_Mission,1144,Marse,1
+MOBG_Taekwon_Mission,1145,Martin,1
+MOBG_Taekwon_Mission,1146,Matyr,1
+MOBG_Taekwon_Mission,1148,Medusa,1
+MOBG_Taekwon_Mission,1149,Minorous,1
+MOBG_Taekwon_Mission,1151,Myst,1
+MOBG_Taekwon_Mission,1152,Orc Skeleton,1
+MOBG_Taekwon_Mission,1153,Orc Zombie,1
+MOBG_Taekwon_Mission,1154,Pasana,1
+MOBG_Taekwon_Mission,1155,Petite,1
+MOBG_Taekwon_Mission,1156,Petite,1
+MOBG_Taekwon_Mission,1158,Phen,1
+MOBG_Taekwon_Mission,1160,Piere,1
+MOBG_Taekwon_Mission,1161,Plankton,1
+MOBG_Taekwon_Mission,1162,Rafflesia,1
+MOBG_Taekwon_Mission,1163,Raydric,1
+MOBG_Taekwon_Mission,1164,Requiem,1
+MOBG_Taekwon_Mission,1165,Sandman,1
+MOBG_Taekwon_Mission,1166,Savage,1
+MOBG_Taekwon_Mission,1167,Savage Babe,1
+MOBG_Taekwon_Mission,1169,Skeleton Worker,1
+MOBG_Taekwon_Mission,1170,Sohee,1
+MOBG_Taekwon_Mission,1174,Stainer,1
+MOBG_Taekwon_Mission,1175,Tarou,1
+MOBG_Taekwon_Mission,1176,Vitata,1
+MOBG_Taekwon_Mission,1177,Zenorc,1
+MOBG_Taekwon_Mission,1178,Zerom,1
+MOBG_Taekwon_Mission,1179,Whisper,1
+MOBG_Taekwon_Mission,1180,Nine Tail,1
+MOBG_Taekwon_Mission,1183,Chonchon,1
+MOBG_Taekwon_Mission,1184,Fabre,1
+MOBG_Taekwon_Mission,1185,Whisper,1
+MOBG_Taekwon_Mission,1186,Giant Whisper,1
+MOBG_Taekwon_Mission,1188,Bongun,1
+MOBG_Taekwon_Mission,1189,Orc Archer,1
+MOBG_Taekwon_Mission,1191,Mimic,1
+MOBG_Taekwon_Mission,1192,Wraith,1
+MOBG_Taekwon_Mission,1193,Alarm,1
+MOBG_Taekwon_Mission,1194,Arclouse,1
+MOBG_Taekwon_Mission,1195,Rideword,1
+MOBG_Taekwon_Mission,1196,Skeleton Prisoner,1
+MOBG_Taekwon_Mission,1197,Zombie Prisoner,1
+MOBG_Taekwon_Mission,1198,Dark Priest,1
+MOBG_Taekwon_Mission,1199,Punk,1
+MOBG_Taekwon_Mission,1201,Rybio,1
+MOBG_Taekwon_Mission,1202,Phendark,1
+MOBG_Taekwon_Mission,1206,Anolian,1
+MOBG_Taekwon_Mission,1207,Sting,1
+MOBG_Taekwon_Mission,1208,Wander Man,1
+MOBG_Taekwon_Mission,1209,Cramp,1
+MOBG_Taekwon_Mission,1211,Brilight,1
+MOBG_Taekwon_Mission,1212,Iron Fist,1
+MOBG_Taekwon_Mission,1213,High Orc,1
+MOBG_Taekwon_Mission,1214,Choco,1
+MOBG_Taekwon_Mission,1215,Stem Worm,1
+MOBG_Taekwon_Mission,1216,Penomena,1
+MOBG_Taekwon_Mission,1219,Knight of Abyss,1
+MOBG_Taekwon_Mission,1248,Cruiser,1
+MOBG_Taekwon_Mission,1249,Myst Case,1
+MOBG_Taekwon_Mission,1250,Chepet,1
+MOBG_Taekwon_Mission,1253,Gargoyle,1
+MOBG_Taekwon_Mission,1254,Raggler,1
+MOBG_Taekwon_Mission,1255,Neraid,1
+MOBG_Taekwon_Mission,1256,Pest,1
+MOBG_Taekwon_Mission,1257,Injustice,1
+MOBG_Taekwon_Mission,1258,Goblin Archer,1
+MOBG_Taekwon_Mission,1260,Dark Frame,1
+MOBG_Taekwon_Mission,1261,Wild Rose,1
+MOBG_Taekwon_Mission,1263,Wind Ghost,1
+MOBG_Taekwon_Mission,1264,Merman,1
+MOBG_Taekwon_Mission,1265,Cookie,1
+MOBG_Taekwon_Mission,1266,Aster,1
+MOBG_Taekwon_Mission,1267,Carat,1
+MOBG_Taekwon_Mission,1269,Clock,1
+MOBG_Taekwon_Mission,1270,Clock Tower Manager,1
+MOBG_Taekwon_Mission,1271,Alligator,1
+MOBG_Taekwon_Mission,1273,Orc Lady,1
+MOBG_Taekwon_Mission,1274,Megalith,1
+MOBG_Taekwon_Mission,1275,Alice,1
+MOBG_Taekwon_Mission,1276,Raydric Archer,1
+MOBG_Taekwon_Mission,1277,Greatest General,1
+MOBG_Taekwon_Mission,1278,Stalactic Golem,1
+MOBG_Taekwon_Mission,1279,Tri Joint,1
+MOBG_Taekwon_Mission,1280,Steam Goblin,1
+MOBG_Taekwon_Mission,1281,Sage Worm,1
+MOBG_Taekwon_Mission,1282,Kobold Archer,1
+MOBG_Taekwon_Mission,1283,Chimera,1
+MOBG_Taekwon_Mission,1285,Archer Guardian,1
+MOBG_Taekwon_Mission,1287,Soldier Guardian,1
+MOBG_Taekwon_Mission,1290,Skeleton General,1
+MOBG_Taekwon_Mission,1291,Wraith Dead,1
+MOBG_Taekwon_Mission,1292,Mini Demon,1
+MOBG_Taekwon_Mission,1293,Creamy Fear,1
+MOBG_Taekwon_Mission,1294,Killer Mantis,1
+MOBG_Taekwon_Mission,1295,Owl Baron,1
+MOBG_Taekwon_Mission,1296,Kobold Leader,1
+MOBG_Taekwon_Mission,1297,Ancient Mummy,1
+MOBG_Taekwon_Mission,1298,Zombie Master,1
+MOBG_Taekwon_Mission,1299,Goblin Leader,1
+MOBG_Taekwon_Mission,1300,Caterpillar,1
+MOBG_Taekwon_Mission,1301,Am Mut,1
+MOBG_Taekwon_Mission,1302,Dark Illusion,1
+MOBG_Taekwon_Mission,1303,Giant Hornet,1
+MOBG_Taekwon_Mission,1304,Giant Spider,1
+MOBG_Taekwon_Mission,1305,Ancient Worm,1
+MOBG_Taekwon_Mission,1306,Leib Olmai,1
+MOBG_Taekwon_Mission,1307,Cat o' Nine Tails,1
+MOBG_Taekwon_Mission,1308,Panzer Goblin,1
+MOBG_Taekwon_Mission,1309,Gajomart,1
+MOBG_Taekwon_Mission,1310,Majoruros,1
+MOBG_Taekwon_Mission,1311,Gullinbursti,1
+MOBG_Taekwon_Mission,1313,Mobster,1
+MOBG_Taekwon_Mission,1314,Permeter,1
+MOBG_Taekwon_Mission,1315,Assaulter,1
+MOBG_Taekwon_Mission,1316,Solider,1
+MOBG_Taekwon_Mission,1317,Fur Seal,1
+MOBG_Taekwon_Mission,1318,Heater,1
+MOBG_Taekwon_Mission,1319,Freezer,1
+MOBG_Taekwon_Mission,1320,Owl Duke,1
+MOBG_Taekwon_Mission,1321,Dragon Tail,1
+MOBG_Taekwon_Mission,1322,Spring Rabbit,1
+MOBG_Taekwon_Mission,1323,Sea Otter,1
+MOBG_Taekwon_Mission,1365,Apocalypse,1
+MOBG_Taekwon_Mission,1366,Lava Golem,1
+MOBG_Taekwon_Mission,1367,Blazer,1
+MOBG_Taekwon_Mission,1368,Geographer,1
+MOBG_Taekwon_Mission,1369,Grand Peco,1
+MOBG_Taekwon_Mission,1370,Succubus,1
+MOBG_Taekwon_Mission,1371,Fake Angel,1
+MOBG_Taekwon_Mission,1372,Goat,1
+MOBG_Taekwon_Mission,1374,Incubus,1
+MOBG_Taekwon_Mission,1375,The Paper,1
+MOBG_Taekwon_Mission,1376,Harpy,1
+MOBG_Taekwon_Mission,1377,Elder,1
+MOBG_Taekwon_Mission,1378,Demon Pungus,1
+MOBG_Taekwon_Mission,1379,Nightmare Terror,1
+MOBG_Taekwon_Mission,1380,Driller,1
+MOBG_Taekwon_Mission,1381,Grizzly,1
+MOBG_Taekwon_Mission,1382,Diabolic,1
+MOBG_Taekwon_Mission,1383,Explosion,1
+MOBG_Taekwon_Mission,1384,Deleter,1
+MOBG_Taekwon_Mission,1385,Deleter,1
+MOBG_Taekwon_Mission,1386,Sleeper,1
+MOBG_Taekwon_Mission,1387,Gig,1
+MOBG_Taekwon_Mission,1388,Archangeling,1
+MOBG_Taekwon_Mission,1390,Violy,1
+MOBG_Taekwon_Mission,1391,Galapago,1
+MOBG_Taekwon_Mission,1392,Rotar Zairo,1
+MOBG_Taekwon_Mission,1400,Karakasa,1
+MOBG_Taekwon_Mission,1401,Shinobi,1
+MOBG_Taekwon_Mission,1402,Poison Toad,1
+MOBG_Taekwon_Mission,1403,Antique Firelock,1
+MOBG_Taekwon_Mission,1404,Miyabi Ningyo,1
+MOBG_Taekwon_Mission,1405,Tengu,1
+MOBG_Taekwon_Mission,1406,Kapha,1
+MOBG_Taekwon_Mission,1408,Bloody Butterfly,1
+MOBG_Taekwon_Mission,1409,Rice Cake Boy,1
+MOBG_Taekwon_Mission,1410,Live Peach Tree,1
+MOBG_Taekwon_Mission,1412,Evil Cloud Hermit,1
+MOBG_Taekwon_Mission,1413,Wild Ginseng,1
+MOBG_Taekwon_Mission,1415,Baby Leopard,1
+MOBG_Taekwon_Mission,1416,Wicked Nymph,1
+MOBG_Taekwon_Mission,1417,Zipper Bear,1
+MOBG_Taekwon_Mission,1493,Dryad,1
+MOBG_Taekwon_Mission,1494,Beetle King,1
+MOBG_Taekwon_Mission,1495,Stone Shooter,1
+MOBG_Taekwon_Mission,1497,Wooden Golem,1
+MOBG_Taekwon_Mission,1498,Wootan Shooter,1
+MOBG_Taekwon_Mission,1499,Wootan Fighter,1
+MOBG_Taekwon_Mission,1500,Parasite,1
+MOBG_Taekwon_Mission,1503,Gibbet,1
+MOBG_Taekwon_Mission,1504,Dullahan,1
+MOBG_Taekwon_Mission,1505,Loli Ruri,1
+MOBG_Taekwon_Mission,1506,Disguise,1
+MOBG_Taekwon_Mission,1507,Bloody Murderer,1
+MOBG_Taekwon_Mission,1508,Quve,1
+MOBG_Taekwon_Mission,1509,Lude,1
+MOBG_Taekwon_Mission,1510,Hylozoist,1
+MOBG_Taekwon_Mission,1512,Hyegun,1
+MOBG_Taekwon_Mission,1513,Civil Servant,1
+MOBG_Taekwon_Mission,1514,Dancing Dragon,1
+MOBG_Taekwon_Mission,1515,Garm Baby,1
+MOBG_Taekwon_Mission,1516,Increase Soil,1
+MOBG_Taekwon_Mission,1517,Li Me Mang Ryang,1
+MOBG_Taekwon_Mission,1519,Chung E,1
+MOBG_Taekwon_Mission,1520,Boiled Rice,1
+MOBG_Taekwon_Mission,1582,Deviling,1
+MOBG_Taekwon_Mission,1584,Tamruan,1
+MOBG_Taekwon_Mission,1585,Mime Monkey,1
+MOBG_Taekwon_Mission,1586,Leaf Cat,1
+MOBG_Taekwon_Mission,1587,Kraben,1
+MOBG_Taekwon_Mission,1588,Christmas Orc,1
+MOBG_Taekwon_Mission,1609,Dancing Dragon,1
+MOBG_Taekwon_Mission,1613,Metaling,1
+MOBG_Taekwon_Mission,1614,Mineral,1
+MOBG_Taekwon_Mission,1615,Obsidian,1
+MOBG_Taekwon_Mission,1616,Pitman,1
+MOBG_Taekwon_Mission,1617,Waste Stove,1
+MOBG_Taekwon_Mission,1618,Ungoliant,1
+MOBG_Taekwon_Mission,1619,Porcellio,1
+MOBG_Taekwon_Mission,1620,Noxious,1
+MOBG_Taekwon_Mission,1621,Venomous,1
+MOBG_Taekwon_Mission,1622,Teddy Bear,1
+MOBG_Taekwon_Mission,1625,Porcellio,1
+MOBG_Taekwon_Mission,1626,Hellion Revenant,1
+MOBG_Taekwon_Mission,1627,Anopheles,1
+MOBG_Taekwon_Mission,1628,Mole,1
+MOBG_Taekwon_Mission,1629,Hill Wind,1
+MOBG_Taekwon_Mission,1631,Chung E,1
+MOBG_Taekwon_Mission,1632,Gremlin,1
+MOBG_Taekwon_Mission,1633,Beholder,1
+MOBG_Taekwon_Mission,1664,Photon Cannon,1
+MOBG_Taekwon_Mission,1665,Photon Cannon,1
+MOBG_Taekwon_Mission,1666,Photon Cannon,1
+MOBG_Taekwon_Mission,1667,Photon Cannon,1
+MOBG_Taekwon_Mission,1668,Archdam,1
+MOBG_Taekwon_Mission,1670,Dimik,1
+MOBG_Taekwon_Mission,1671,Dimik,1
+MOBG_Taekwon_Mission,1672,Dimik,1
+MOBG_Taekwon_Mission,1673,Dimik,1
+MOBG_Taekwon_Mission,1676,Venatu,1
+MOBG_Taekwon_Mission,1677,Venatu,1
+MOBG_Taekwon_Mission,1678,Venatu,1
+MOBG_Taekwon_Mission,1679,Venatu,1
+MOBG_Taekwon_Mission,1680,Hill Wind,1
+MOBG_Taekwon_Mission,1686,Orc Baby,1
+MOBG_Taekwon_Mission,1687,Green Iguana,1

+ 12 - 17
db/pre-re/achievement_db.yml

@@ -1690,72 +1690,72 @@ Achievements:
   - ID: 200017
     Group: "AG_GOAL_STATUS"
     Name: "Bearish Power!"
-    Condition: " bStr >= 90 "
+    Condition: " readparam(bStr) >= 90 "
     Score: 10
   - ID: 200018
     Group: "AG_GOAL_STATUS"
     Name: "Overflowing Magic!"
-    Condition: " bInt >= 90 "
+    Condition: " readparam(bInt) >= 90 "
     Score: 10
   - ID: 200019
     Group: "AG_GOAL_STATUS"
     Name: "Healthy Body and Mental Health!"
-    Condition: " bVit >= 90 "
+    Condition: " readparam(bVit) >= 90 "
     Score: 10
   - ID: 200020
     Group: "AG_GOAL_STATUS"
     Name: "Speed of Light"
-    Condition: " bAgi >= 90 "
+    Condition: " readparam(bAgi) >= 90 "
     Score: 10
   - ID: 200021
     Group: "AG_GOAL_STATUS"
     Name: "Hawk Eyes"
-    Condition: " bDex >= 90 "
+    Condition: " readparam(bDex) >= 90 "
     Score: 10
   - ID: 200022
     Group: "AG_GOAL_STATUS"
     Name: "Maximum Luck"
-    Condition: " bLuk >= 90 "
+    Condition: " readparam(bLuk) >= 90 "
     Score: 10
   - ID: 200023
     Group: "AG_GOAL_STATUS"
     Name: "Dragonlike Power!"
-    Condition: " bStr >= 125 "
+    Condition: " readparam(bStr) >= 125 "
     Reward:
       Script: " sc_start SC_GIANTGROWTH,180000,1; "
     Score: 20
   - ID: 200024
     Group: "AG_GOAL_STATUS"
     Name: "Magic Insanity"
-    Condition: " bInt >= 125 "
+    Condition: " readparam(bInt) >= 125 "
     Reward:
       Script: " specialeffect2 EF_HASTEUP; bonus_script \"{ bonus2 bHPLossRate,100,10000; bonus bBaseAtk,20; bonus bAspdRate,25; }\",60,0,0,EFST_STEAMPACK; "
     Score: 20
   - ID: 200025
     Group: "AG_GOAL_STATUS"
     Name: "Rock Alloy"
-    Condition: " bVit >= 125 "
+    Condition: " readparam(bVit) >= 125 "
     Reward:
       Script: " specialeffect2 EF_HEAL3; sc_start2 SC_S_LIFEPOTION,600000,-5,5; "
     Score: 20
   - ID: 200026
     Group: "AG_GOAL_STATUS"
     Name: "Speed of Light"
-    Condition: " bAgi >= 125 "
+    Condition: " readparam(bAgi) >= 125 "
     Reward:
       Script: " specialeffect2 EF_STEAL; sc_start SC_INCFLEE2,60000,20; "
     Score: 20
   - ID: 200027
     Group: "AG_GOAL_STATUS"
     Name: "Falcon's Eyes"
-    Condition: " bDex >= 125 "
+    Condition: " readparam(bDex) >= 125 "
     Reward:
       Script: " specialeffect2 EF_MAGICALATTHIT; sc_start SC_INCCRI,300000,30; "
     Score: 20
   - ID: 200028
     Group: "AG_GOAL_STATUS"
     Name: "Lucky Fever"
-    Condition: " bLuk >= 125 "
+    Condition: " readparam(bLuk) >= 125 "
     Reward:
       Script: " specialeffect2 EF_GLORIA; sc_start SC_GLORIA,15000,0; "
     Score: 20
@@ -2000,12 +2000,10 @@ Achievements:
   - ID: 220000
     Group: "AG_CHATTING_CREATE"
     Name: "Community begin"
-    Condition: " true "
     Score: 10
   - ID: 220001
     Group: "AG_CHATTING_DYING"
     Name: "A mouth only moment"
-    Condition: " true "
     Score: 10
   - ID: 220002
     Group: "AG_CHATTING_COUNT"
@@ -2025,12 +2023,10 @@ Achievements:
   - ID: 220005
     Group: "AG_PARTY"
     Name: "Let's Party~"
-    Condition: " true "
     Score: 10
   - ID: 220006
     Group: "AG_MARRY"
     Name: "Married with who..?"
-    Condition: " true "
     Reward:
       TitleID: 1022
     Score: 20
@@ -2126,7 +2122,6 @@ Achievements:
   - ID: 220022
     Group: "AG_ENCHANT_FAIL"
     Name: "Human's greed has no ending.."
-    Condition: " true "
     Score: 10
   - ID: 220023
     Group: "AG_GET_ITEM"

+ 0 - 1
db/pre-re/item_buyingstore.txt

@@ -14,7 +14,6 @@
 //25129
 //25130
 //25131
-//22687
 //23016
 //23080
 //4671

+ 65 - 57
db/pre-re/item_db.txt

@@ -87,7 +87,7 @@
 582,Orange,Orange,0,300,,20,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(10,20),rand(10,20); },{},{}
 583,KETUPAT_,Ketupat Sayur,0,7000,,150,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(325,405),rand(40,60); sc_end SC_Poison; sc_end SC_Silence; sc_end SC_Blind; sc_end SC_Confusion; sc_end SC_Curse; sc_end SC_Hallucination; },{},{}
 584,Fish_Ball_Soup,Fish Cake Soup,0,100,,60,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(40,70),0; },{},{}
-585,Wurst,Brusti,0,2,,40,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(15,20),0; },{},{}
+585,Wurst,Brusti,11,2,,40,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(15,20),0; itemskill "PR_MAGNIFICAT",3; },{},{}
 586,Mother's_Cake,Mother's Cake,0,20,,100,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(325,405),0; },{},{}
 587,Prickly_Fruit_,Red Prickly Fruit,0,880,,60,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(270,330),rand(20,30); },{},{}
 588,Spaghetti,Spaghetti,0,100,,100,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(40,70),0; },{},{}
@@ -542,24 +542,24 @@
 1189,Krasnaya,Krasnaya,5,20,,3800,200,,2,3,0x00004082,2,2,34,2,50,1,3,{ if(readparam(bStr)>=95) { bonus bBaseAtk,20; } },{},{}
 1190,Claymore_C,Claymore,5,0,,0,220,,1,0,0x00004080,7,2,34,3,1,0,3,{ bonus2 bAddSize,Size_All,40; },{},{}
 // Daggers
-1201,Knife,Knife,5,50,,400,17,,1,3,0xFE9F7EEF,7,2,2,1,1,1,1,{},{},{}
-1202,Knife_,Knife,5,50,,400,17,,1,4,0xFE9F7EEF,7,2,2,1,1,1,1,{},{},{}
-1203,Knife__,Knife,5,50,,400,17,,1,0,0xFE9F7EEF,7,2,2,1,1,1,1,{},{},{}
-1204,Cutter,Cutter,5,1250,,500,30,,1,3,0xFE9F7EEF,7,2,2,1,1,1,1,{},{},{}
-1205,Cutter_,Cutter,5,1250,,500,30,,1,4,0xFE9F7EEF,7,2,2,1,1,1,1,{},{},{}
-1206,Cutter__,Cutter,5,1250,,500,30,,1,0,0xFE9F7EEF,7,2,2,1,1,1,1,{},{},{}
-1207,Main_Gauche,Main Gauche,5,2400,,600,43,,1,3,0xFE9F7EEF,7,2,2,1,1,1,1,{},{},{}
-1208,Main_Gauche_,Main Gauche,5,2400,,600,43,,1,4,0xFE9F7EEF,7,2,2,1,1,1,1,{},{},{}
-1209,Main_Gauche__,Main Gauche,5,2400,,600,43,,1,0,0xFE9F7EEF,7,2,2,1,1,1,1,{},{},{}
-1210,Dirk,Dirk,5,8500,,500,59,,1,2,0xFE9F7EEF,7,2,2,2,12,1,1,{},{},{}
-1211,Dirk_,Dirk,5,8500,,500,59,,1,3,0xFE9F7EEF,7,2,2,2,12,1,1,{},{},{}
-1212,Dirk__,Dirk,5,8500,,500,59,,1,0,0xFE9F7EEF,7,2,2,2,12,1,1,{},{},{}
-1213,Dagger,Dagger,5,14000,,600,73,,1,2,0xFE9F7EEF,7,2,2,2,12,1,1,{},{},{}
-1214,Dagger_,Dagger,5,14000,,600,73,,1,3,0xFE9F7EEF,7,2,2,2,12,1,1,{},{},{}
-1215,Dagger__,Dagger,5,14000,,600,73,,1,0,0xFE9F7EEF,7,2,2,2,12,1,1,{},{},{}
-1216,Stiletto,Stiletto,5,19500,,700,87,,1,2,0xFE9F7EEF,7,2,2,2,12,1,1,{},{},{}
-1217,Stiletto_,Stiletto,5,19500,,700,87,,1,3,0xFE9F7EEF,7,2,2,2,12,1,1,{},{},{}
-1218,Stiletto__,Stiletto,5,19500,,700,87,,1,0,0xFE9F7EEF,7,2,2,2,12,1,1,{},{},{}
+1201,Knife,Knife,5,50,,400,17,,1,3,0x3E9F7EEF,7,2,2,1,1,1,1,{},{},{}
+1202,Knife_,Knife,5,50,,400,17,,1,4,0x3E9F7EEF,7,2,2,1,1,1,1,{},{},{}
+1203,Knife__,Knife,5,50,,400,17,,1,0,0x3E9F7EEF,7,2,2,1,1,1,1,{},{},{}
+1204,Cutter,Cutter,5,1250,,500,30,,1,3,0x3E9F7EEF,7,2,2,1,1,1,1,{},{},{}
+1205,Cutter_,Cutter,5,1250,,500,30,,1,4,0x3E9F7EEF,7,2,2,1,1,1,1,{},{},{}
+1206,Cutter__,Cutter,5,1250,,500,30,,1,0,0x3E9F7EEF,7,2,2,1,1,1,1,{},{},{}
+1207,Main_Gauche,Main Gauche,5,2400,,600,43,,1,3,0x3E9F7EEF,7,2,2,1,1,1,1,{},{},{}
+1208,Main_Gauche_,Main Gauche,5,2400,,600,43,,1,4,0x3E9F7EEF,7,2,2,1,1,1,1,{},{},{}
+1209,Main_Gauche__,Main Gauche,5,2400,,600,43,,1,0,0x3E9F7EEF,7,2,2,1,1,1,1,{},{},{}
+1210,Dirk,Dirk,5,8500,,500,59,,1,2,0x3E9F7EEF,7,2,2,2,12,1,1,{},{},{}
+1211,Dirk_,Dirk,5,8500,,500,59,,1,3,0x3E9F7EEF,7,2,2,2,12,1,1,{},{},{}
+1212,Dirk__,Dirk,5,8500,,500,59,,1,0,0x3E9F7EEF,7,2,2,2,12,1,1,{},{},{}
+1213,Dagger,Dagger,5,14000,,600,73,,1,2,0x3E9F7EEF,7,2,2,2,12,1,1,{},{},{}
+1214,Dagger_,Dagger,5,14000,,600,73,,1,3,0x3E9F7EEF,7,2,2,2,12,1,1,{},{},{}
+1215,Dagger__,Dagger,5,14000,,600,73,,1,0,0x3E9F7EEF,7,2,2,2,12,1,1,{},{},{}
+1216,Stiletto,Stiletto,5,19500,,700,87,,1,2,0x3E9F7EEF,7,2,2,2,12,1,1,{},{},{}
+1217,Stiletto_,Stiletto,5,19500,,700,87,,1,3,0x3E9F7EEF,7,2,2,2,12,1,1,{},{},{}
+1218,Stiletto__,Stiletto,5,19500,,700,87,,1,0,0x3E9F7EEF,7,2,2,2,12,1,1,{},{},{}
 1219,Gladius,Gladius,5,43000,,700,105,,1,2,0x028F5EEE,7,2,2,3,24,1,1,{},{},{}
 1220,Gladius_,Gladius,5,43000,,700,105,,1,3,0x028F5EEE,7,2,2,3,24,1,1,{},{},{}
 1221,Gladius__,Gladius,5,43000,,700,105,,1,0,0x028F5EEE,7,2,2,3,24,1,1,{},{},{}
@@ -588,9 +588,9 @@
 1244,Holy_Dagger,Holy Dagger,5,20,,800,100,,1,0,0x02021040,7,2,2,4,55,1,1,{ bonus bAtkEle,Ele_Holy; bonus bDex,1; },{},{}
 1245,Cinquedea,Cinquedea,5,40000,,700,110,,1,1,0x00000001,7,2,2,3,30,1,1,{},{},{}
 1246,Cinquedea_,Cinquedea,5,40000,,700,110,,1,2,0x00000001,7,2,2,3,30,1,1,{},{},{}
-1247,Kindling_Dagger,Kindle Dagger,5,10000,,600,39,,1,0,0xFE9F7EEF,7,2,2,1,1,1,1,{ bonus bAtkEle,Ele_Fire; },{},{}
-1248,Obsidian_Dagger,Obsidian Dagger,5,10000,,600,39,,1,0,0xFE9F7EEF,7,2,2,1,1,1,1,{ bonus bAtkEle,Ele_Earth; },{},{}
-1249,Fisherman's_Dagger,Fisherman's Dagger,5,10000,,600,39,,1,0,0xFE9F7EEF,7,2,2,1,1,1,1,{ bonus bAtkEle,Ele_Water; },{},{}
+1247,Kindling_Dagger,Kindle Dagger,5,10000,,600,39,,1,0,0x3E9F7EEF,7,2,2,1,1,1,1,{ bonus bAtkEle,Ele_Fire; },{},{}
+1248,Obsidian_Dagger,Obsidian Dagger,5,10000,,600,39,,1,0,0x3E9F7EEF,7,2,2,1,1,1,1,{ bonus bAtkEle,Ele_Earth; },{},{}
+1249,Fisherman's_Dagger,Fisherman's Dagger,5,10000,,600,39,,1,0,0x3E9F7EEF,7,2,2,1,1,1,1,{ bonus bAtkEle,Ele_Water; },{},{}
 // Katars
 1250,Jur,Jur,5,19500,,800,125,,1,2,0x00001000,7,2,34,2,18,1,16,{},{},{}
 1251,Jur_,Jur,5,19500,,800,125,,1,3,0x00001000,7,2,34,2,18,1,16,{},{},{}
@@ -809,6 +809,7 @@
 1546,Krieger_Onehand_Mace1,Glorious Morning Star,5,20,,0,130,,1,0,0x0004C5B3,7,2,2,4,80,1,8,{ bonus2 bAddRace,RC_DemiHuman,75; bonus2 bAddRace,RC_Player,75; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,20; bonus2 bIgnoreDefRaceRate,RC_Player,20; 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; bonus bAspdRate,5; } if(getrefine()>8) { bonus2 bAddEff,Eff_Stun,2000; bonus bAspdRate,5; } },{},{}
 1547,Mace_Of_Madness,Mace Of Madness,5,20,,0,150,,1,0,0x0004C5B2,7,2,2,3,0,0,8,{ bonus2 bSkillAtk,"MC_CARTREVOLUTION",25; bonus bStr,2; },{},{}
 1548,Veteran_Hammer,Veteran Hammer,5,10000,,1800,160,,1,2,0x00008110,7,2,2,3,80,1,8,{ bonus bHealPower,getskilllv("AL_DP"); bonus bCritical,getskilllv("PR_MACEMASTERY")*2; bonus bInt,1; bonus bLuk,1; },{},{}
+1549,Pilebuncker,Pile Bunker,5,10000,,3500,450,,1,0,0x00000400,7,2,2,3,99,1,8,{},{},{}
 // Books
 1550,Book,Book,5,30000,,600,85,,1,3,0x00410100,7,2,2,2,14,1,15,{},{},{}
 1551,Bible,Bible,5,60000,,1000,115,,1,2,0x00410100,7,2,2,3,27,1,15,{ bonus bInt,2; },{},{}
@@ -1099,7 +1100,7 @@
 2129,Exorcism_Bible,Exorcism Bible,4,20,,600,,5,,0,0x00008100,7,2,32,,50,1,5,{ bonus bHPrecovRate,3; bonus bSPrecovRate,3; bonus bInt,1; },{},{}
 2130,Cross_Shield,Cross Shield,4,20,,2000,,6,,1,0x00004000,7,2,32,,80,1,4,{ bonus bStr,1; bonus2 bSkillAtk,"PA_SHIELDCHAIN",30; bonus2 bSkillAtk,"CR_SHIELDBOOMERANG",30; bonus bUseSPrate,10; },{},{}
 2131,Magic_Study_Vol1,Magic Bible Vol1,4,20,,1000,,2,,1,0x00810204,2,2,32,,70,1,5,{ bonus bMdef,3; bonus bInt,2; bonus2 bAddEffWhenHit,Eff_Stun,1000; },{},{}
-2132,Shelter_Resistance,Shell Of Resistance,4,20,,0,,9,,0,0xFFFFFFFF,2,2,32,,0,0,2,{ bonus2 bSubEle,Ele_Neutral,20; bonus2 bSubEle,Ele_Water,20; bonus2 bSubEle,Ele_Earth,20; bonus2 bSubEle,Ele_Fire,20; bonus2 bSubEle,Ele_Wind,20; bonus2 bSubEle,Ele_Poison,20; bonus2 bSubEle,Ele_Holy,20; bonus2 bSubEle,Ele_Dark,20; bonus2 bSubEle,Ele_Ghost,20; bonus2 bSubEle,Ele_Undead,20; bonus bShortWeaponDamageReturn,1; },{},{}
+2132,Shelter_Resistance,Shell Of Resistance,4,20,,0,,9,,0,0xFFFFFFFF,7,2,32,,0,0,2,{ bonus2 bSubEle,Ele_All,20; bonus bShortWeaponDamageReturn,1; if (vip_status(VIP_STATUS_ACTIVE)) { bonus bAllStats,1; } },{},{}
 2133,Tournament_Shield,Tournament Shield,4,20,,1000,,5,,1,0x00004082,2,2,32,,50,1,4,{ bonus2 bAddClass,Class_All,1; if( Class==Job_Lord_Knight ) bonus bAspdRate,-5; },{},{}
 2134,Shield_Of_Naga,Shield of Naga,4,20,,500,,3,,1,0x00CFFF80,2,2,32,,70,1,2,{ bonus bMdef,3; autobonus2 "{ bonus bShortWeaponDamageReturn,(getrefine()*3); }",10,5000,BF_WEAPON,"{ specialeffect2 EF_GUARD; }"; },{},{}
 2135,Shadow_Guard,Shadow Guard,4,20,,800,,4,,1,0x00020000,2,2,32,,70,1,2,{},{},{}
@@ -1108,7 +1109,7 @@
 2138,Bradium_Shield,Bradium Shield,4,20,,1800,,5,,1,0x00CFFF80,2,2,32,,65,1,3,{ bonus2 bSkillAtk,"CR_SHIELDBOOMERANG",60; bonus bAgi,-1; bonus bMaxHP,500; },{},{}
 2139,Flame_Thrower,Flame Thrower,4,20000,,2000,,60,,0,0x00000400,63,2,32,,99,0,1,{},{},{}
 // GM Shield
-2199,Ahura_Mazda,Ahura Mazdah,4,1,,10,,100,,0,0xFFFFFFFF,7,2,32,,1,1,0,{ bonus bAllStats,50; bonus bMdef,99; bonus bShortWeaponDamageReturn,100; bonus2 bSubRace,RC_DemiHuman,95; bonus2 bSubRace,RC_Player,95; skill "CR_FULLPROTECTION",5; Skill "WZ_ESTIMATION",1; Skill "ST_FULLSTRIP",5; Skill "HW_MAGICPOWER",10; bonus bMaxHPRate,200; bonus bNoGemStone; bonus bSpeedRate,25; },{ sc_start4 SC_ENDURE,60000,10,0,0,1; },{ sc_end SC_ENDURE; }
+2199,Ahura_Mazda,Ahura Mazdah,4,1,,10,,100,,0,0xFFFFFFFF,7,2,32,,1,1,0,{ bonus bAllStats,50; bonus bMdef,99; bonus bShortWeaponDamageReturn,100; bonus2 bSubRace,RC_DemiHuman,95; bonus2 bSubRace,RC_Player,95; skill "CR_FULLPROTECTION",5; Skill "WZ_ESTIMATION",1; Skill "ST_FULLSTRIP",5; Skill "HW_MAGICPOWER",10; bonus bMaxHPRate,200; bonus bNoGemStone; bonus bSpeedRate,25; bonus bNoWalkDelay; },{},{}
 // Headgears
 //===================================================================
 2201,Sunglasses,Sunglasses,4,5000,,100,,0,,0,0xFFFFFFFF,7,2,512,,0,0,12,{ bonus2 bResEff,Eff_Blind,500; },{},{}
@@ -1595,7 +1596,7 @@
 2773,Krieger_Ring2,Glorious Mass-Production Ring,4,20,,0,,0,,0,0xFFFFFFFE,7,2,136,,61,0,0,{ bonus bAllStats,2; },{},{}
 2774,Krieger_Ring3,Glorious Popularized Ring,4,20,,0,,0,,0,0xFFFFFFFE,7,2,136,,0,0,0,{ bonus bAllStats,1; },{},{}
 2775,Lure,Lure,4,20,,100,,0,,0,0xFFFFFFFF,7,2,136,,0,0,0,{},{},{}
-2776,Cool_Towel,Adventurer's Trusty Towel,4,20,,100,,,,0,0xFFFFFFFF,7,2,136,,0,0,0,{},{ sc_start SC_SUMMER,-1,0; },{ sc_end SC_SUMMER; }
+2776,Cool_Towel,Adventurer's Trusty Towel,4,20,,100,,,,0,0xFFFFFFFF,7,2,136,,0,0,0,{},{ sc_start SC_SUMMER,INFINITE_TICK,0; },{ sc_end SC_SUMMER; }
 2777,Shaman_Ring,Shaman Ring,4,20,,100,,0,,1,0xFFFFFFFF,7,2,136,,30,0,0,{ bonus bUseSPrate,-5; },{},{}
 2778,Shaman_Earing,Shaman Earrings,4,20,,100,,0,,0,0xFFFFFFFF,7,2,136,,30,0,0,{ bonus bInt,2; },{},{}
 2779,Dark_Knight_Belt,Dark Knight Belt,4,20,,500,,1,,0,0xFFFFFFFF,7,2,136,,30,0,0,{ bonus bStr,2; bonus bAgi,1; },{},{}
@@ -1619,14 +1620,17 @@
 2797,Magical_Stone_,Rocks,4,0,,200,,0,,0,0x00810204,7,2,136,,99,0,0,{ bonus2 bAddDamageClass,2049,10; bonus2 bAddDefMonster,2050,-10; bonus3 bAddMonsterIdDropItem,6151,2049,70; },{},{}
 2798,Will_Of_Exhausted_Angel,Will Of Exhausted Angel,4,0,,200,,0,,0,0x00008100,7,2,136,,99,0,0,{ if(strcharinfo(3)=="job3_arch02") { bonus2 bAddDefMonster,1761,50; bonus2 bAddDefMonster,1762,50; } },{},{}
 2799,Kuirpenring,Kuirpenring,4,0,,100,,0,,1,0xFFFFFFFF,7,2,136,,0,0,0,{ bonus bMdef,1; },{},{}
-2800,Accelerator,Accelerator,4,100000,,100,,0,,1,0x00000400,56,2,136,,99,0,0,{ bonus bAgi,2; },{},{}
-2802,Suicidal_Device,Suicidal Device,4,500000,,1000,,0,,1,0x00000400,56,2,136,,99,0,0,{},{},{}
-2803,Shape_Shifter,Shape Shifter,4,100000,,500,,0,,1,0x00000400,56,2,136,,99,0,0,{ bonus bInt,3; },{},{}
-2804,Cooling_Device,Cooling Device,4,100000,,2500,,0,,1,0x00000400,56,2,136,,99,0,0,{ bonus bDex,1; },{},{}
-2805,Mag_Field_Generator,Magnetic Field Generator,4,100000,,6000,,0,,1,0x00000400,56,2,136,,99,0,0,{ bonus bDex,1; },{},{}
-2806,Barrier_Builder,Barrier Builder,4,150000,,8000,,3,,1,0x00000400,56,2,136,,99,0,0,{ bonus bDex,1; },{},{}
-2807,Repair_Kit,Repair Kit,4,200000,,400,,0,,1,0x00000400,56,2,136,,99,0,0,{},{},{}
-2808,Camouflage_Generator,Camouflague Generator,4,250000,,1000,,0,,1,0x00000400,56,2,136,,99,0,0,{ bonus bAgi,3; },{},{}
+2800,Accelerator,Accelerator,4,100000,,100,,0,,1,0x00000400,7,2,136,,99,0,0,{ bonus bAgi,2; },{},{}
+2801,Hovering_Booster,Hovering Booster,4,100000,,2000,,0,,1,0x00000400,7,2,136,,99,0,0,{ bonus bAgi,1; },{},{}
+2802,Suicidal_Device,Suicidal Device,4,500000,,1000,,0,,1,0x00000400,7,2,136,,99,0,0,{},{},{}
+2803,Shape_Shifter,Shape Shifter,4,100000,,500,,0,,1,0x00000400,7,2,136,,99,0,0,{ bonus bInt,3; },{},{}
+2804,Cooling_Device,Cooling Device,4,100000,,2500,,0,,1,0x00000400,7,2,136,,99,0,0,{ bonus bDex,1; },{},{}
+2805,Mag_Field_Generator,Magnetic Field Generator,4,100000,,6000,,0,,1,0x00000400,7,2,136,,99,0,0,{ bonus bDex,1; },{},{}
+2806,Barrier_Builder,Barrier Builder,4,150000,,8000,,3,,1,0x00000400,7,2,136,,99,0,0,{ bonus bDex,1; },{},{}
+2807,Repair_Kit,Repair Kit,4,200000,,400,,0,,1,0x00000400,7,2,136,,99,0,0,{},{},{}
+2808,Camouflage_Generator,Camouflague Generator,4,250000,,1000,,0,,1,0x00000400,7,2,136,,99,0,0,{ bonus bAgi,3; },{},{}
+2809,High_Quality_Cooler,High Quality Cooler,4,100000,,2500,,0,,1,0x00000400,7,2,136,,99,0,0,{ bonus bDex,1; },{},{}
+2810,Special_Cooler,Special Cooler,4,100000,,2500,,0,,1,0x00000400,7,2,136,,99,0,0,{ bonus bDex,1; },{},{}
 2819,Swordman_Manual,Swordsman Manual,4,0,,100,,0,,0,0x00000001,7,2,136,,1,0,0,{ bonus bMaxSP,100; skill "SM_BASH",1; skill "SM_PROVOKE",1; skill "SM_MAGNUM",1; },{},{}
 2820,Thief_Manual,Thief Manual,4,0,,100,,0,,0,0x00000001,7,2,136,,1,0,0,{ bonus bMaxSP,100; skill "TF_DOUBLE",3; bonus bDoubleRate,15; skill "TF_STEAL",1; skill "TF_HIDING",1; skill "TF_POISON",1; },{},{}
 2821,Acolyte_Manual,Acolyte Manual,4,0,,100,,0,,0,0x00000001,7,2,136,,1,0,0,{ bonus bMaxSP,100; skill "AL_HEAL",1; skill "AL_INCAGI",1; skill "AL_BLESSING",1; },{},{}
@@ -1757,7 +1761,7 @@
 4120,Petit__Card,Sky Petite Card,6,20,,10,,,,,,,,32,,,,,{ bonus2 bSubRace,RC_Dragon,30; },{},{}
 4121,Phreeoni_Card,Phreeoni Card,6,20,,10,,,,,,,,2,,,,,{ bonus bHit,100; },{},{}
 4122,Deviruchi_Card,Deviruchi Card,6,20,,10,,,,,,,,769,,,,,{ bonus bStr,1; bonus2 bResEff,Eff_Blind,10000; },{},{}
-4123,Eddga_Card,Eddga Card,6,20,,10,,,,,,,,64,,,,,{ bonus bMaxHPrate,-25; },{ sc_start4 SC_ENDURE,60000,10,0,0,1; },{ sc_end SC_ENDURE; }
+4123,Eddga_Card,Eddga Card,6,20,,10,,,,,,,,64,,,,,{ bonus bMaxHPrate,-25; bonus bNoWalkDelay; },{},{}
 4124,Medusa_Card,Medusa Card,6,20,,10,,,,,,,,32,,,,,{ bonus2 bSubRace,RC_Demon,15; bonus2 bResEff,Eff_Stone,10000; },{},{}
 4125,Deviace_Card,Deviace Card,6,20,,10,,,,,,,,2,,,,,{ bonus2 bAddRace,RC_DemiHuman,7; bonus2 bAddRace,RC_Player,7; bonus2 bAddRace,RC_Brute,7; bonus2 bAddRace,RC_Plant,7; bonus2 bAddRace,RC_Insect,7; },{},{}
 4126,Minorous_Card,Minorous Card,6,20,,10,,,,,,,,2,,,,,{ bonus2 bAddSize,Size_Large,15; bonus bBaseAtk,5; },{},{}
@@ -4835,8 +4839,8 @@
 12271,Mre_A,Military Ration A,0,2,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ percentheal 5,0; },{},{}
 12272,Mre_B,Military Ration B,2,2,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_INCHIT,600000,33; },{},{}
 12273,Mre_C,Military Ration C,2,2,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_INCFLEE,600000,33; },{},{}
-12274,Gold_Pill_1,Daehwandan,0,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_INCMHPRATE,36000000,5; percentheal 10,0; },{},{}
-12275,Gold_Pill_2,Taecheongdan,0,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_INCMSPRATE,36000000,5; percentheal 0,10; },{},{}
+12274,Gold_Pill_1,Daehwandan,0,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_INCMHPRATE,3600000,5; percentheal 10,0; },{},{}
+12275,Gold_Pill_2,Taecheongdan,0,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_INCMSPRATE,3600000,5; percentheal 0,10; },{},{}
 12276,Mimic_Scroll,Mimic Scroll,2,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ mercenary_create 2058,1800000; },{},{}
 12277,Disguise_Scroll,Disguise Scroll,2,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ mercenary_create 2059,1800000; },{},{}
 12278,Alice_Scroll,Alice Scroll,2,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ mercenary_create 2060,1800000; },{},{}
@@ -5327,9 +5331,9 @@
 // More Weapons
 //===================================================================
 // Daggers and Ninja Weapons
-13000,Jujube_Dagger,Jujube Dagger,5,10000,,600,39,,1,0,0xFE9F7EEF,7,2,2,1,1,1,1,{ bonus bAtkEle,Ele_Wind; },{},{}
-13001,Dragon_Killer,Dragon Killer,5,20,,900,110,,1,0,0xFE9F7EEF,7,2,2,4,60,1,1,{ bonus bIgnoreDefRace,RC_Dragon; bonus2 bExpAddRace,RC_Dragon,10; },{},{}
-13002,Ginnungagap,Ginnungagap,5,20,,700,148,,1,0,0xFE9F7EEF,7,2,2,4,70,1,1,{ bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Blind,500; bonus2 bAddEff2,Eff_Blind,50; },{},{}
+13000,Jujube_Dagger,Jujube Dagger,5,10000,,600,39,,1,0,0x3E9F7EEF,7,2,2,1,1,1,1,{ bonus bAtkEle,Ele_Wind; },{},{}
+13001,Dragon_Killer,Dragon Killer,5,20,,900,110,,1,0,0x3E9F7EEF,7,2,2,4,60,1,1,{ bonus bIgnoreDefRace,RC_Dragon; bonus2 bExpAddRace,RC_Dragon,10; },{},{}
+13002,Ginnungagap,Ginnungagap,5,20,,700,148,,1,0,0x3E9F7EEF,7,2,2,4,70,1,1,{ bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Blind,500; bonus2 bAddEff2,Eff_Blind,50; },{},{}
 13003,Coward,Cowardice Blade,5,52000,,700,80,,1,1,0x02021040,7,2,2,3,55,1,1,{ bonus bDef,5; },{},{}
 13004,Coward_,Cowardice Blade,5,52000,,700,80,,1,2,0x02021040,7,2,2,3,55,1,1,{ bonus bDef,5; },{},{}
 13005,Angelwing_Short_Sword,Angelic Wing Dagger,5,20,,600,120,,1,2,0x00000001,7,2,2,4,50,1,1,{},{},{}
@@ -5346,7 +5350,7 @@
 13016,Poison_Knife_,Poison Knife,5,20,,800,64,,1,2,0x028F5EEE,7,2,2,3,65,1,1,{ bonus bAtkEle,Ele_Poison; bonus2 bAddEff,Eff_Poison,3000; },{},{}
 13017,House_Auger_,Ice Pick,5,20,,600,70,,1,1,0x028F5EEE,7,2,2,4,36,1,1,{ bonus bDefRatioAtkClass,Class_All; },{},{}
 13018,Sucsamad_,Sucsamad,5,20,,800,140,,1,1,0x028F5EEE,7,2,2,4,36,1,1,{ bonus2 bAddEle,Ele_Earth,10; bonus2 bAddEle,Ele_Wind,10; bonus bUnbreakableWeapon; },{},{}
-13019,Ginnungagap_,Ginnungagap,5,20,,700,148,,1,1,0xFE9F7EEF,7,2,2,4,70,1,1,{ bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Blind,500; bonus2 bAddEff2,Eff_Blind,50; },{},{}
+13019,Ginnungagap_,Ginnungagap,5,20,,700,148,,1,1,0x3E9F7EEF,7,2,2,4,70,1,1,{ bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Blind,500; bonus2 bAddEff2,Eff_Blind,50; },{},{}
 13020,Warrior_Balmung_,Warrior's Balmung,5,20,,1000,170,,1,0,0xFFFFFFFF,7,2,2,4,48,1,1,{ bonus bAllStats,5; },{},{}
 13021,Combat_Knife_C,Combat Knife,5,1,,0,129,,1,0,0x028F5EEE,7,2,2,4,1,0,1,{ bonus bIgnoreDefRace,RC_DemiHuman; bonus bIgnoreDefRace,RC_Player; bonus2 bSubRace,RC_DemiHuman,10; bonus2 bSubRace,RC_Player,10; bonus2 bSubRace,RC_Demon,-10; bonus bMaxSPrate,10; bonus bSPDrainValue,3; },{},{}
 13022,Counter_Dagger_C,Dagger of Counter,5,1,,0,209,,1,0,0x00810204,7,2,2,4,1,0,1,{ bonus bCritical,90; },{},{}
@@ -5357,19 +5361,19 @@
 13027,Scalpel,Scalpel,5,20,,500,120,,1,3,0x028F5EEE,2,2,2,4,55,1,1,{ bonus2 bAddEff,Eff_Bleeding,500; },{},{}
 13028,Tooth_Blade,Tooth Blade,5,20,,700,130,,1,1,0x028F5EEE,2,2,2,4,55,1,1,{ if(getrefine()>=9){ bonus3 bAutoSpell,"NPC_SLOWCAST",2,70; } else bonus3 bAutoSpell,"NPC_SLOWCAST",1,50; },{},{}
 13029,Prinsence_Knife,Prinsense Knife,5,20,,0,120,,1,0,0x028F5EEE,7,2,2,1,0,0,1,{ bonus2 bAddClass,Class_All,50; },{},{}
-13030,Dragon_Killer_,Dragon Killer,5,20,,900,110,,1,2,0xFE9F7EEF,7,2,2,4,60,1,1,{ bonus bIgnoreDefRace,RC_Dragon; bonus2 bExpAddRace,RC_Dragon,10; },{},{}
+13030,Dragon_Killer_,Dragon Killer,5,20,,900,110,,1,2,0x3E9F7EEF,7,2,2,4,60,1,1,{ bonus bIgnoreDefRace,RC_Dragon; bonus2 bExpAddRace,RC_Dragon,10; },{},{}
 13031,Sword_Breaker_,Swordbreaker,5,20,,1000,70,,1,3,0x028F5EEE,7,2,2,4,36,1,1,{ bonus bBreakWeaponRate,500; },{},{}
 13032,Mail_Breaker_,Mailbreaker,5,20,,1000,70,,1,3,0x028F5EEE,7,2,2,4,36,1,1,{ bonus bBreakArmorRate,500; },{},{}
 13033,Assasin_Dagger_,Assassin Dagger,5,20,,600,140,,1,1,0x00001000,7,2,2,4,36,1,1,{ bonus bMaxHPrate,20; bonus bMaxSPrate,15; bonus bAspdRate,2; bonus bAtkEle,Ele_Dark; },{},{}
 13034,Twilight_Desert,Desert Twilight,5,20,,600,130,,1,2,0x00001000,2,2,2,2,70,1,1,{},{},{}
 13035,Sandstorm,Sandstorm,5,20,,600,50,,1,4,0x00001000,2,2,2,2,70,1,1,{},{},{}
-13036,BF_Dagger1,Brave Assassin's Damascus,5,20,,0,120,,1,0,0xFE9F7EEF,7,2,2,3,80,1,1,{ bonus bStr,1; bonus bAgi,1; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bAddRace,RC_Player,75; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,20; bonus2 bIgnoreDefRaceRate,RC_Player,20; bonus bUnbreakableWeapon; if(Class==Job_Ninja||Class==Job_Rogue||Class==Job_Stalker) bonus bMatkRate,15; },{},{}
-13037,BF_Dagger2,Valorous Assassin's Damascus,5,20,,0,120,,1,0,0xFE9F7EEF,7,2,2,3,80,1,1,{ bonus bStr,1; bonus bAgi,1; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bAddRace,RC_Player,75; bonus bUnbreakableWeapon; autobonus "{ bonus bDefRatioAtkClass,Class_All; }",10,6000,BF_WEAPON,"{ specialeffect2 EF_HASTEUP; }"; if(Class==Job_Ninja||Class==Job_Rogue||Class==Job_Stalker) bonus bMatkRate,15; },{},{}
+13036,BF_Dagger1,Brave Assassin's Damascus,5,20,,0,120,,1,0,0x3E9F7EEF,7,2,2,3,80,1,1,{ bonus bStr,1; bonus bAgi,1; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bAddRace,RC_Player,75; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,20; bonus2 bIgnoreDefRaceRate,RC_Player,20; bonus bUnbreakableWeapon; if(Class==Job_Ninja||Class==Job_Rogue||Class==Job_Stalker) bonus bMatkRate,15; },{},{}
+13037,BF_Dagger2,Valorous Assassin's Damascus,5,20,,0,120,,1,0,0x3E9F7EEF,7,2,2,3,80,1,1,{ bonus bStr,1; bonus bAgi,1; bonus2 bAddRace,RC_DemiHuman,75; bonus2 bAddRace,RC_Player,75; bonus bUnbreakableWeapon; autobonus "{ bonus bDefRatioAtkClass,Class_All; }",10,6000,BF_WEAPON,"{ specialeffect2 EF_HASTEUP; }"; if(Class==Job_Ninja||Class==Job_Rogue||Class==Job_Stalker) bonus bMatkRate,15; },{},{}
 13038,Dagger_Of_Hunter,Dagger of Hunter,5,20,,700,120,,1,3,0x00020000,2,2,2,3,70,1,1,{ bonus bStr,1; bonus bAgi,2; bonus bDex,1; bonus4 bAutoSpellOnSkill,"RG_BACKSTAP","SM_BASH",10,100; bonus2 bSkillAtk,"RG_BACKSTAP",20; },{},{}
 13039,Ivory_Knife,Ivory Knife,5,20,,700,130,,1,2,0x028F5EEE,2,2,2,3,50,1,1,{ bonus bAgi,2; bonus bAspdRate,3; bonus2 bAddEff,Eff_Bleeding,300; bonus3 bAutoSpell,"NPC_CRITICALWOUND",1,30; },{},{}
-13040,N_Cutter,Novice Cutter,5,0,,0,50,,1,3,0xFE9F7EEF,7,2,2,1,1,0,1,{},{},{}
-13041,N_Main_Gauche,Novice Main Gauche,5,0,,0,63,,1,3,0xFE9F7EEF,7,2,2,1,1,0,1,{},{},{}
-13042,Krieger_Dagger1,Glorious Gladius,5,20,,0,120,,1,0,0xFE9F7EEF,7,2,2,4,80,1,1,{ bonus2 bAddRace,RC_DemiHuman,75; bonus2 bAddRace,RC_Player,75; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,20; bonus2 bIgnoreDefRaceRate,RC_Player,20; bonus3 bAutoSpell,"PR_LEXDIVINA",1,20; 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) bonus4 bAutoSpellOnSkill,"RG_RAID","NPC_WIDEBLEEDING",1,250; },{},{}
+13040,N_Cutter,Novice Cutter,5,0,,0,50,,1,3,0x3E9F7EEF,7,2,2,1,1,0,1,{},{},{}
+13041,N_Main_Gauche,Novice Main Gauche,5,0,,0,63,,1,3,0x3E9F7EEF,7,2,2,1,1,0,1,{},{},{}
+13042,Krieger_Dagger1,Glorious Gladius,5,20,,0,120,,1,0,0x3E9F7EEF,7,2,2,4,80,1,1,{ bonus2 bAddRace,RC_DemiHuman,75; bonus2 bAddRace,RC_Player,75; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,20; bonus2 bIgnoreDefRaceRate,RC_Player,20; bonus3 bAutoSpell,"PR_LEXDIVINA",1,20; 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) bonus4 bAutoSpellOnSkill,"RG_RAID","NPC_WIDEBLEEDING",1,250; },{},{}
 13043,Fortune_Sword_I,Fortune Sword,5,0,,0,120,,1,0,0x028F5EEE,7,2,2,4,0,0,1,{ bonus bLuk,5; },{},{}
 13044,House_Auger_I,Ice Pick,5,0,,0,105,,1,0,0x028F5EEE,7,2,2,4,0,0,1,{},{},{}
 13045,Kamaitachi_I,Kamaitachi,5,0,,0,155,,2,0,0x02000000,7,2,2,4,0,0,1,{},{},{}
@@ -5458,12 +5462,12 @@
 13272,Cure_Free_To_Throw,Throwing Cure Free,10,100,,50,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_end SC_BLEEDING; sc_end SC_CURSE; sc_end SC_SILENCE; sc_end SC_POISON; sc_end SC_ORCISH; sc_end SC_CHANGEUNDEAD; sc_end SC_BLIND; sc_end SC_CONFUSION; sc_end SC_DPOISON; itemheal 500,0; },{},{}
 13273,Stamina_Up_M_To_Throw,Throwing Muramura M,10,100,,10,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_MUSTLE_M,500000,5; },{},{}
 13274,Digestive_F_To_Throw,Throwing Falmons F,10,100,,10,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_LIFE_FORCE_F,500000,5; },{},{}
-13275,HP_Inc_PotS_To_Throw,Throwing Increase HP Potion (Small),10,100,,20,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_PROMOTE_HEALTH_RESERCH,500000,(500+(BaseLevel*10/3)); percentheal 1,0; },{},{}
-13276,HP_Inc_PotM_To_Throw,Throwing Increase HP Potion (Medium),10,100,,40,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_PROMOTE_HEALTH_RESERCH,500000,(1500+(BaseLevel*10/3)); percentheal 2,0; },{},{}
-13277,HP_Inc_PotL_To_Throw,Throwing Increase HP Potion (Large),10,100,,80,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_PROMOTE_HEALTH_RESERCH,500000,(2500+(BaseLevel*10/3)); percentheal 5,0; },{},{}
-13278,SP_Inc_PotS_To_Throw,Throwing Increase SP Potion (Small),10,100,,20,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_ENERGY_DRINK_RESERCH,500000,((BaseLevel/10)-5); percentheal 0,2; },{},{}
-13279,SP_Inc_PotM_To_Throw,Throwing Increase SP Potion (Medium),10,100,,40,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_ENERGY_DRINK_RESERCH,500000,((BaseLevel/10)); percentheal 0,4; },{},{}
-13280,SP_Inc_PotL_To_Throw,Throwing Increase SP Potion (Large),10,100,,80,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_ENERGY_DRINK_RESERCH,500000,((BaseLevel/10)+5); percentheal 0,8; },{},{}
+13275,HP_Inc_PotS_To_Throw,Throwing Increase HP Potion (Small),10,100,,20,0,,,,0x00040000,8,2,32768,,99,,9,{ /* Item bonus in source because of BaseLevel check */ },{},{}
+13276,HP_Inc_PotM_To_Throw,Throwing Increase HP Potion (Medium),10,100,,40,0,,,,0x00040000,8,2,32768,,99,,9,{ /* Item bonus in source because of BaseLevel check */ },{},{}
+13277,HP_Inc_PotL_To_Throw,Throwing Increase HP Potion (Large),10,100,,80,0,,,,0x00040000,8,2,32768,,99,,9,{ /* Item bonus in source because of BaseLevel check */ },{},{}
+13278,SP_Inc_PotS_To_Throw,Throwing Increase SP Potion (Small),10,100,,20,0,,,,0x00040000,8,2,32768,,99,,9,{ /* Item bonus in source because of BaseLevel check */ },{},{}
+13279,SP_Inc_PotM_To_Throw,Throwing Increase SP Potion (Medium),10,100,,40,0,,,,0x00040000,8,2,32768,,99,,9,{ /* Item bonus in source because of BaseLevel check */ },{},{}
+13280,SP_Inc_PotL_To_Throw,Throwing Increase SP Potion (Large),10,100,,80,0,,,,0x00040000,8,2,32768,,99,,9,{ /* Item bonus in source because of BaseLevel check */ },{},{}
 13281,En_White_PotZ_To_Throw,Throwing Concentrated White Potion Z,10,100,,70,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_EXTRACT_WHITE_POTION_Z,500000,20; itemheal 1000,0; },{},{}
 13282,Vitata500_To_Throw,Throwing Vitata 500,10,100,,50,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start2 SC_VITATA_500,500000,20,5; itemheal 0,200; },{},{}
 13283,En_Cel_Juice_To_Throw,Throwing Ceromain Soup,10,100,,50,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_EXTRACT_SALAMINE_JUICE,500000,10; },{},{}
@@ -5549,11 +5553,11 @@
 13535,Light_Center_Pot_Box,Light Concentration Potion Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 14509,20; },{},{}
 13536,Light_Awakening_Pot_Box,Light Awakening Potion Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 14510,20; },{},{}
 13537,Light_Berserk_Pot_Box,Light Berserk Potion Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 14511,20; },{},{}
-13538,Meteor_10_Scroll_Box,Meteor Storm Scroll Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 14512,1; },{},{}
-13539,Storm_10_Scroll_Box,Storm Gust Scroll Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 14513,1; },{},{}
-13540,Vermilion_10_Scroll_Box,Lord of Vermilion Scroll Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 14514,1; },{},{}
-13541,Lex_Aeterna_Scroll_Box,Lex Aeterna Scroll Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 14515,1; },{},{}
-13542,Magnificat_5_Scroll_Box,Magnificat Scroll Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 14516,1; },{},{}
+13538,Meteor_10_Scroll_Box,Meteor Storm Scroll Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 14512,10; },{},{}
+13539,Storm_10_Scroll_Box,Storm Gust Scroll Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 14513,10; },{},{}
+13540,Vermilion_10_Scroll_Box,Lord of Vermilion Scroll Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 14514,10; },{},{}
+13541,Lex_Aeterna_Scroll_Box,Lex Aeterna Scroll Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 14515,10; },{},{}
+13542,Magnificat_5_Scroll_Box,Magnificat Scroll Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 14516,10; },{},{}
 13543,CP_Helm_Scroll_Box,Chemical Protection Helm Scroll Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 14517,10; getitem 7139,10; },{},{}
 13544,CP_Shield_Scroll_Box,Chemical Protection Shield Scroll Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 14518,10; getitem 7139,10; },{},{}
 13545,CP_Armor_Scroll_Box,Chemical Protection Armor Scroll Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 14519,10; getitem 7139,10; },{},{}
@@ -6449,6 +6453,10 @@
 16000,Erde,Erde,5,20,,500,130,,1,2,0x0004C5B2,2,2,2,4,50,1,8,{ bonus2 bSkillAtk,"AM_ACIDTERROR",20; bonus2 bSkillAtk,"AM_DEMONSTRATION",20; bonus bMaxSP,50; bonus bHealPower,10; },{},{}
 16001,Red_Square_Bag,Red Square Bag,5,20,,500,130,,1,2,0x0004C5B2,2,2,2,3,50,1,8,{ bonus bMaxHP,200; bonus2 bSkillAtk,"AM_ACIDTERROR",20; bonus2 bSkillAtk,"AM_DEMONSTRATION",20; bonus2 bAddMonsterDropItem,501,50; bonus2 bAddMonsterDropItem,502,20; bonus2 bAddMonsterDropItem,503,20; bonus2 bAddMonsterDropItem,504,20; bonus2 bAddMonsterDropItem,505,10; if(readparam(bStr)>=95) bonus2 bAddEff,Eff_Stun,500; },{},{}
 16002,Stunner_C,Stunner,5,0,,0,175,,1,0,0x00008110,7,2,2,3,1,0,8,{ bonus2 bAddEff,Eff_Stun,1000; bonus2 bAddSize,Size_All,40; },{},{}
+//
+16030,Pilebuncker_S,Pile Bunker S,5,20,,3000,400,,1,1,0x00000400,7,2,2,4,130,1,8,{ bonus bAspdRate,getrefine()/2; },{},{}
+16031,Pilebuncker_P,Pile Bunker P,5,20,,4000,450,,1,,0x00000400,7,2,2,4,130,1,8,{ bonus bBaseAtk,getrefine()*5; },{},{}
+16032,Pilebuncker_T,Pile Bunker T,5,20,,3500,400,,1,1,0x00000400,7,2,2,4,130,1,8,{ bonus bUseSPrate,getrefine()*-1; },{},{}
 // More Rental Boxes
 16134,King_Frog_Hat_Box,Frog King Hat Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 5528,1; },{},{}
 16135,Evil's_Bone_Hat_Box,Satanic Bone Helm Box,18,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 5529,1; },{},{}

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

@@ -16,7 +16,7 @@
 //        12659 cannot be used when this delay is active.
 //     Since this is optional, default is -1 will ignores the
 //     delay group and the delay will be stored in character's
-//     data that has limit set in src/map/itemdb.h as MAX_ITEMDELAYS.
+//     data that has limit set in src/map/itemdb.hpp as MAX_ITEMDELAYS.
 
 // SC_REUSE_LIMIT_A
 14538,300000,SC_REUSE_LIMIT_A	//Glass_Of_Illusion

+ 6 - 0
db/pre-re/item_flag.txt

@@ -8,6 +8,12 @@
 //  8 - Item will be bound item when equipped
 // 16 - Special Broadcast: When item dropped by monster and player loot it, will be broadcasted!
 // 32 - Item will not be removed on consumption. Also supports 'itemskill'
+// 64 - Item will be displayed with a client side defined drop
+// 128 - Item will be displayed with a white pillar drop effect
+// 256 - Item will be displayed with a blue pillar drop effect
+// 512 - Item will be displayed with a yellow pillar drop effect
+// 1024 - Item will be displayed with a purple pillar drop effect
+// 2048 - Item will be displayed with a orange pillar drop effect
 // NOTE: For removing flag by import file, use "-" to remove the flag. Example, 604,-1 will removes flag 1 from Branch_Of_Dead_Tree
 
 // Logged as Dead Branch item

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

@@ -947,7 +947,7 @@
 1904,BOMBPORING,Bomb Poring,Bomb Poring,28,1000000,0,461,284,1,120,320,100,99,1,28,28,0,33,50,10,12,0,0,20,0x308D,300,1672,672,480,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
 
 // WoE Second Edition; Battle Fields
-1905,BARRICADE,Barricade,Barricade,98,600000,0,0,0,1,0,0,0,0,1,17,1,80,126,20,10,12,2,0,20,0x6200000,300,1288,288,384,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
+1905,BARRICADE,Barricade,Barricade,98,120000,0,0,0,1,0,0,0,0,1,17,1,80,126,20,10,12,2,0,20,0x6200000,300,1288,288,384,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
 1906,BARRICADE_,Barricade,Barricade,98,150,0,0,0,1,0,0,100,99,1,17,1,80,126,20,10,12,2,0,20,0x6370000,300,1288,288,384,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
 1907,S_EMPEL_1,Guardian Stone,Guardian Stone,90,120000,0,0,0,0,1,2,40,50,1,1,1,1,1,1,0,0,0,0,20,0x6200000,300,1288,288,384,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
 1908,S_EMPEL_2,Guardian Stone,Guardian Stone,90,120000,0,0,0,0,1,2,40,50,1,1,1,1,1,1,0,0,0,0,20,0x6200000,300,1288,288,384,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

+ 4 - 4
db/pre-re/pet_db.txt

@@ -56,12 +56,12 @@
 1109,DEVIRUCHI,Deviruchi,641,9023,10004,711,80,60,10,100,250,20,500,150,0,0,800,200,100,{ petskillbonus bAgiDexStr,6,20,40; },{ bonus bMatkRate,1; bonus bAtkRate,1; bonus bMaxHPrate,-3; bonus bMaxSPrate,-3; }
 1101,BAPHOMET_,Baphomet Jr.,642,9024,10001,518,80,60,10,100,250,20,200,150,0,0,1000,100,200,{ petskillattack2 "NPC_DARKNESSATTACK",1776,4,0,5; },{ bonus bDef,1; bonus bMdef,1; bonus2 bResEff,Eff_Stun,-100; }
 1188,BON_GUN,Bon Gun,659,9025,10020,537,80,60,30,100,250,20,500,150,1,0,600,200,400,{ petskillattack2 "NPC_DARKNESSATTACK",555,1,1,1; },{ bonus bVit,1; bonus2 bResEff,Eff_Stun,100; }
-1200,ZHERLTHSH,Zealotus,660,9026,0,929,80,60,10,100,250,20,300,150,0,0,1000,100,500,{ petskillattack "AS_SONICBLOW",1,0,3; },{ bonus2 bAddRace,RC_Demihuman,2; bonus2 bMagicAddRace,RC_DemiHuman,2; }
-1275,ALICE,Alice,661,9027,0,504,80,60,20,100,250,20,800,150,0,0,100,1000,200,{ petskillsupport "AL_HEAL",5,60,25,100; },{ bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; }
+1200,ZHERLTHSH,Zealotus,660,9026,0,929,80,60,10,100,250,20,300,150,0,0,1000,100,500,{ petskillattack "AS_SONICBLOW",1,0,3; },{ bonus2 bAddRace,RC_Demihuman,2; bonus2 bAddRace,RC_Player,2; bonus2 bMagicAddRace,RC_DemiHuman,2; bonus2 bMagicAddRace,RC_Player,2; }
+1275,ALICE,Alice,661,9027,0,504,80,60,20,100,250,20,800,150,0,0,100,1000,200,{ petskillsupport "AL_HEAL",5,60,25,100; },{ bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; bonus2 bSubRace,RC_Player,1; }
 1815,EVENT_RICECAKE,Rice Cake,0,9028,0,511,80,60,50,100,250,20,2000,150,1,0,500,500,200,{ petskillsupport "CR_DEFENDER",3,240,50,100; },{ bonus2 bSubEle,Ele_Neutral,1; bonus bMaxHPrate,-1; }
 1245,GOBLINE_XMAS,Christmas Goblin,12225,9029,0,911,80,60,50,100,250,20,2000,150,0,0,300,300,800,{ petskillattack "MG_SIGHT",5,5,5; },{ bonus bMaxHP,30; bonus2 bSubEle,Ele_Water,1; }
 
-1519,CHUNG_E,Green Maiden,12395,9030,0,6115,80,60,50,100,250,20,2000,150,0,0,300,300,800,{ petskillattack "CR_SHIELDCHARGE",5,5,5; },{ bonus bDef,1; bonus2 bSubRace,RC_DemiHuman,1; }
+1519,CHUNG_E,Green Maiden,12395,9030,0,6115,80,60,50,100,250,20,2000,150,0,0,300,300,800,{ petskillattack "CR_SHIELDCHARGE",5,5,5; },{ bonus bDef,1; bonus2 bSubRace,RC_DemiHuman,1; bonus2 bSubRace,RC_Player,1; }
 1879,ECLIPSE_P,Spring Rabbit,0,9031,0,7766,80,60,50,100,250,20,2000,150,0,0,300,300,800,{ petskillattack "TF_THROWSTONE",1,5,5; },{}
 1122,GOBLIN_1,Goblin,14569,9032,0,7821,80,60,50,100,250,20,800,150,0,0,300,300,800,{ petskillattack "NPC_WINDATTACK",5,5,5; },{}
 1123,GOBLIN_2,Goblin,14570,9033,0,7821,80,60,50,100,250,20,800,150,0,0,300,300,800,{ petskillattack "NPC_FIREATTACK",5,5,5; },{}
@@ -77,7 +77,7 @@
 1143,MARIONETTE,Marionette,12361,9043,10025,6098,80,60,10,100,250,20,500,150,0,0,300,300,800,{},{ bonus bSPrecovRate,3; }
 1148,MEDUSA,Medusa,12368,9050,10032,6108,80,60,10,100,250,20,200,150,0,0,300,300,800,{},{ bonus bVit,1; bonus2 bResEff,Eff_Stone,500; }
 1179,WHISPER,Whisper,12363,9045,10027,6100,80,60,20,100,250,20,500,150,0,0,300,300,800,{},{ bonus bFlee,7; bonus bDef,-3; }
-1299,GOBLIN_LEADER,Goblin Leader,12364,9046,10028,6104,80,60,10,100,250,20,50,150,0,0,300,300,800,{},{ bonus2 bAddRace,RC_DemiHuman,3; }
+1299,GOBLIN_LEADER,Goblin Leader,12364,9046,10028,6104,80,60,10,100,250,20,50,150,0,0,300,300,800,{},{ bonus2 bAddRace,RC_DemiHuman,3; bonus2 bAddRace,RC_Player,3; }
 1370,SUCCUBUS,Succubus,12373,9055,10037,6113,80,60,10,100,250,20,200,150,0,0,300,300,800,{},{ bonus2 bHpDrainRate,50,5; }
 1374,INCUBUS,Incubus,12370,9052,10034,6110,80,60,10,100,250,20,50,150,0,0,300,300,800,{},{ bonus bMaxSPRate,3; }
 1379,NIGHTMARE_TERROR,Nightmare Terror,12372,9054,10036,6112,80,60,10,100,250,20,200,150,0,0,300,300,800,{},{ bonus2 bResEff,Eff_Sleep,10000; }

+ 3 - 2
db/pre-re/skill_cast_db.txt

@@ -166,8 +166,6 @@
 85,15000:14500:14000:13500:13000:12500:12000:11500:11000:10500,5000,0,4000,30000,0
 //-- WZ_WATERBALL
 86,1000:2000:3000:4000:5000:6000:7000:8000:9000:10000,0,0,10000,0,0
-//-- WZ_ICEWALL
-87,0,0,0,5000:10000:15000:20000:25000:30000:35000:40000:45000:50000,0,0
 //-- WZ_FROSTNOVA
 88,6000:6000:5500:5500:5000:5000:4500:4500:4000:4000,1000,0,0,1500:3000:4500:6000:7500:9000:10500:12000:13500:15000,0
 //-- WZ_STORMGUST
@@ -1752,6 +1750,9 @@
 //-- ALL_FULL_THROTTLE
 5014,0,500,0,10000:15000:20000:25000:30000,10000,1800000
 
+//-- ALL_EQSWITCH
+5067,0,0,0,0,0,10000,60
+
 //===== Homunculus Skills ==================
 //-- HLIF_HEAL
 8001,0,2000,0,0,0,0

+ 2 - 0
db/pre-re/skill_castnodex_db.txt

@@ -56,6 +56,8 @@
 2536,7,7	//ALL_GUARDIAN_RECALL
 2537,0,7	//ALL_ODINS_POWER
 
+5067,7,7	//ALL_EQSWITCH
+
 // Mercenary Skills
 8214,7	//MA_CHARGEARROW
 8215,7	//MA_SHARPSHOOTING

+ 60 - 58
db/pre-re/skill_db.txt

@@ -54,26 +54,28 @@
 // 14 attack type (none, weapon, magic, misc)
 // 15 Blowcount (amount of tiles skill knockbacks)
 // 16 inf3 (skill information 3):
-//    0x00001 - skill ignores land protector
-//    0x00002 - free
-//    0x00004 - usable skills while hiding
-//    0x00008 - skill that can be use while in dancing state
-//    0x00010 - skill that could hit emperium
-//    0x00020 - skill ignores SC_STASIS
-//    0x00040 - skill blocked by kagehumi
-//    0x00080 - skill range affected by AC_VULTURE
-//    0x00100 - skill range affected by GS_SNAKEEYE
-//    0x00200 - skill range affected by NJ_SHADOWJUMP
-//    0x00400 - skill range affected by WL_RADIUS
-//    0x00800 - skill range affected by RA_RESEARCHTRAP
-//    0x01000 - skill that does not affect user that has NC_HOVERING active
-//    0x02000 - skill that can be using while riding warg
-//    0x04000 - skill that can be used while on Madogear
-//    0x08000 - skill that can be used to target while under SC__MANHOLE effect
-//    0x10000 - skill that affects hidden targets
-//    0x20000 - skill that affects SC_GLOOMYDAY_SK
-//    0x40000 - skill that is affected by SC_DANCEWITHWUG
-//    0x80000 - skill blocked by RA_WUGBITE
+//    0x000001 - skill ignores land protector
+//    0x000002 - free
+//    0x000004 - usable skills while hiding
+//    0x000008 - skill that can be use while in dancing state
+//    0x000010 - skill that could hit emperium
+//    0x000020 - skill ignores SC_STASIS
+//    0x000040 - skill blocked by kagehumi
+//    0x000080 - skill range affected by AC_VULTURE
+//    0x000100 - skill range affected by GS_SNAKEEYE
+//    0x000200 - skill range affected by NJ_SHADOWJUMP
+//    0x000400 - skill range affected by WL_RADIUS
+//    0x000800 - skill range affected by RA_RESEARCHTRAP
+//    0x001000 - skill that does not affect user that has NC_HOVERING active
+//    0x002000 - skill that can be using while riding warg
+//    0x004000 - skill that can be used while on Madogear
+//    0x008000 - skill that can be used to target while under SC__MANHOLE effect
+//    0x010000 - skill that affects hidden targets
+//    0x020000 - skill that affects SC_GLOOMYDAY_SK
+//    0x040000 - skill that is affected by SC_DANCEWITHWUG
+//    0x080000 - skill blocked by RA_WUGBITE
+//    0x100000 - skill is not blocked by SC_AUTOGUARD (physical-skill only)
+//    0x200000 - skill is not blocked by SC_UTSUSEMI or SC_BUNSINJYUTSU (physical-skill only)
 // 17 Name
 // 18 Description
 1,0,0,0,0,0,0,9,0,no,0,0,0,none,0,0x0,		NV_BASIC,Basic Skill
@@ -127,9 +129,9 @@
 37,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0,		MC_DISCOUNT,Discount
 38,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0,		MC_OVERCHARGE,Overcharge
 39,1,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0,		MC_PUSHCART,Pushcart
-40,1,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0,		MC_IDENTIFY,Item Appraisal
-41,1,6,4,0,0x1,0,10,1,no,0,0,0,none,0,0x0,		MC_VENDING,Vending
-42,-1,6,1,-1,0,0,10,1,no,0,0,0,weapon,0,0x0,		MC_MAMMONITE,Mammonite
+40,1,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x4000,		MC_IDENTIFY,Item Appraisal
+41,1,6,4,0,0x1,0,10,1,no,0,0,0,none,0,0x4000,		MC_VENDING,Vending
+42,-1,6,1,-1,0,0,10,1,no,0,0,0,weapon,0,0x4000,		MC_MAMMONITE,Mammonite
 
 //****
 // Archer
@@ -213,13 +215,13 @@
 105,0,0,0,0,0,0,1,0,no,0,0,0,weapon,0,0x0,		BS_HILTBINDING,Hilt Binding
 106,0,0,0,0,0,0,1,0,no,0,0,0,weapon,0,0x0,		BS_FINDINGORE,Ore Discovery
 107,0,0,0,0,0,0,10,0,no,0,0,0,weapon,0,0x0,		BS_WEAPONRESEARCH,Weaponry Research
-108,2,6,16,0,0x1,0,1,1,yes,0,0,0,weapon,0,0x0,	BS_REPAIRWEAPON,Weapon Repair
+108,2,6,16,0,0x1,0,1,1,yes,0,0,0,weapon,0,0x4000,	BS_REPAIRWEAPON,Weapon Repair
 109,0,0,0,0,0,0,5,0,no,0,0,0,weapon,0,0x0,		BS_SKINTEMPER,Skin Tempering
-110,1,6,2,0,0x3,2:2:2:2:2:12,5,1,no,0,0,0,weapon,0,0x0,	BS_HAMMERFALL,Hammer Fall
-111,0,6,4,0,0x3,-1,5,1,no,0,0,0,weapon,0,0x0,	BS_ADRENALINE,Adrenaline Rush
-112,0,6,4,0,0x3,-1,5,1,no,0,0,0,weapon,0,0x0,	BS_WEAPONPERFECT,Weapon Perfection
-113,0,6,4,0,0x3,-1,5,1,no,0,0,0,weapon,0,0x0,	BS_OVERTHRUST,Power-Thrust
-114,0,6,4,0,0x1,0,5,1,no,0,0,0,weapon,0,0x0,		BS_MAXIMIZE,Maximize Power
+110,1,6,2,0,0x3,2:2:2:2:2:12,5,1,no,0,0,0,weapon,0,0x4000,	BS_HAMMERFALL,Hammer Fall
+111,0,6,4,0,0x3,-1,5,1,no,0,0,0,weapon,0,0x4000,	BS_ADRENALINE,Adrenaline Rush
+112,0,6,4,0,0x3,-1,5,1,no,0,0,0,weapon,0,0x4000,	BS_WEAPONPERFECT,Weapon Perfection
+113,0,6,4,0,0x3,-1,5,1,no,0,0,0,weapon,0,0x4000,	BS_OVERTHRUST,Power-Thrust
+114,0,6,4,0,0x1,0,5,1,no,0,0,0,weapon,0,0x4000,		BS_MAXIMIZE,Maximize Power
 
 //****
 // Hunter
@@ -267,9 +269,9 @@
 150,0,6,4,0,0x1,0,1,1,no,0,0x1,0,weapon,5,0x40,	TF_BACKSLIDING,Back Slide
 151,0,6,4,0,0x1,0,1,1,no,0,0x1,0,none,0,0x0,		TF_PICKSTONE,Find Stone
 152,7,6,1,0,0x40,0,1,1,no,0,0x1,0,misc,0,0x0,	TF_THROWSTONE,Stone Fling
-153,1,6,1,-1,0x2,1,1,1,no,0,0x40001,0,weapon,2,0x0,	MC_CARTREVOLUTION,Cart Revolution
-154,0,6,4,0,0x1,0,1,1,no,0,0x1,0,none,0,0x0,		MC_CHANGECART,Change Cart
-155,0,6,4,0,0x1,0,1,1,no,0,0x1,0,weapon,0,0x0,	MC_LOUD,Crazy Uproar
+153,1,6,1,-1,0x2,1,1,1,no,0,0x40001,0,weapon,2,0x4000,	MC_CARTREVOLUTION,Cart Revolution
+154,0,6,4,0,0x1,0,1,1,no,0,0x1,0,none,0,0x4000,		MC_CHANGECART,Change Cart
+155,0,6,4,0,0x1,0,1,1,no,0,0x1,0,weapon,0,0x4000,	MC_LOUD,Crazy Uproar
 156,9,6,1,6,0,0,1,1,yes,0,0x1,0,magic,0,0x0,		AL_HOLYLIGHT,Holy Light
 157,0,6,4,0,0x1,0,1,1,yes,0,0x1,0,magic,0,0x0,	MG_ENERGYCOAT,Energy Coat
 
@@ -352,8 +354,8 @@
 226,0,0,0,0,0,0,10,0,no,0,0,0,weapon,0,0x0,		AM_AXEMASTERY,Axe Mastery
 227,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0,		AM_LEARNINGPOTION,Potion Research
 228,0,6,4,0,0x1,0,10,0,no,0,0,0,none,0,0x0,		AM_PHARMACY,Prepare Potion
-229,9,6,2,3,0x9,0,5,1,yes,0,0,0,weapon,0,0x0,	AM_DEMONSTRATION,Bomb
-230,9,6,1,0,0x48,0,5,1,yes,0,0,0,weapon,0,0x0,	AM_ACIDTERROR,Acid Terror
+229,9,6,2,3,0x9,0,5,1,yes,0,0,0,weapon,0,0x300000,	AM_DEMONSTRATION,Bomb
+230,9,6,1,0,0x48,0,5,1,yes,0,0,0,weapon,0,0x300000,	AM_ACIDTERROR,Acid Terror
 231,9,6,16,0,0x1,0,5,1,yes,0,0xC00,0,none,0,0x0,	AM_POTIONPITCHER,Aid Potion
 232,4,6,2,0,0x1,0,5,1,no,0,0,5,none,0,0x0,		AM_CANNIBALIZE,Summon Flora
 233,1,6,2,0,0x1,0,5,1,no,0,0,3,none,0,0x0,		AM_SPHEREMINE,Summon Marine Sphere
@@ -530,7 +532,7 @@
 //****
 // Paladin
 367,9,8,1,0,0xD0,0,5,1,no,0,0x18000,0,misc,0,0x0,		PA_PRESSURE,Gloria Domini
-368,0,6,4,0,0x61,0,5,1,yes,0,0,0,weapon,0,0x0,	PA_SACRIFICE, Martyr's Reckoning
+368,0,6,4,0,0x61,0,5,1,yes,0,0,0,weapon,0,0x300000,	PA_SACRIFICE, Martyr's Reckoning
 369,0,6,4,0,0x41,0,10,1,yes,0,0,0,misc,0,0x0,	PA_GOSPEL,Battle Chant
 
 //****
@@ -561,10 +563,10 @@
 
 //****
 // Whitesmith
-384,0,0,4,0,0x1,0,10,1,yes,0,0,0,weapon,0,0x0,	WS_MELTDOWN,Shattering Strike
+384,0,0,4,0,0x1,0,10,1,yes,0,0,0,weapon,0,0x4000,	WS_MELTDOWN,Shattering Strike
 385,0,0,4,0,0x1,0,1,1,yes,0,0,0,none,0,0x0,	WS_CREATECOIN,Create Coins
 386,0,0,4,0,0x1,0,1,1,yes,0,0,0,none,0,0x0,	WS_CREATENUGGET,Create Nuggets
-387,0,6,4,0,0x1,0,1,1,no,0,0,0,weapon,0,0x0,		WS_CARTBOOST,Cart Boost
+387,0,6,4,0,0x1,0,1,1,no,0,0,0,weapon,0,0x4000,		WS_CARTBOOST,Cart Boost
 388,9,6,2,0,0x1,0,5,1,no,0,0,0,none,0,0x0,		WS_SYSTEMCREATE,Auto Attack System
 
 //****
@@ -607,7 +609,7 @@
 
 //****
 // Assassin Cross
-406,0,6,4,-1,0xA,2,10,1,no,0,0x40000,0,weapon,0,0x0,	ASC_METEORASSAULT,Meteor Assault
+406,0,6,4,-1,0xA,2,10,1,no,0,0x40000,0,weapon,0,0x300000,	ASC_METEORASSAULT,Meteor Assault
 407,0,6,4,0,0x1,0,1,0,no,0,0,0,none,0,0x0,		ASC_CDP,Create Deadly Poison
 
 //****
@@ -678,7 +680,7 @@
 
 //****
 // Blacksmith
-459,0,6,4,0,0x3,-1,1,1,no,0,0x8,0,weapon,0 ,0x0,	BS_ADRENALINE2,Advanced Adrenaline Rush
+459,0,6,4,0,0x3,-1,1,1,no,0,0x8,0,weapon,0 ,0x4000,	BS_ADRENALINE2,Advanced Adrenaline Rush
 
 //****
 // Soul Linker
@@ -702,7 +704,7 @@
 474,0,0,4,0,0x1,0,10,1,no,0,0x2,0,none,0,0x0,	NPC_EMOTION_ON,Emotion ON
 475,0,0,4,0,0x1,0,1,1,yes,0,0,0,none,0,0x0,		ST_PRESERVE,Preserve
 476,1,6,1,0,0x1,0,5,1,yes,0,0,0,weapon,0,0x0,	ST_FULLSTRIP,Divest All
-477,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x0,	WS_WEAPONREFINE,Upgrade Weapon
+477,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x4000,	WS_WEAPONREFINE,Upgrade Weapon
 478,3,6,2,0,0x3,3,10,1,no,0,0,0,none,0,0x0,		CR_SLIMPITCHER,Aid Condensed Potion
 479,1,6,16,0,0x1,0,5,1,yes,0,0,0,weapon,0,0x0,	CR_FULLPROTECTION,Full Protection
 480,4,8,1,0,0,0,5,5,no,0,0,0,weapon,0,0x20000,		PA_SHIELDCHAIN,Shield Chain
@@ -710,8 +712,8 @@
 482,0,6,4,0,0x1,0,5,1,no,0,0,0,magic,0,0x0,		PF_DOUBLECASTING,Double Casting
 483,18,6,2,0,0x1,1:2:3:4:5,1,1,no,0,0,0,none,0,0x0,	HW_GANBANTEIN,Ganbantein
 484,18,6,2,2,0xD1,0,5,1,yes,0,0x18000,0,misc,0,0x11010,		HW_GRAVITATION,Gravitation Field
-485,-2,6,1,-1,0x8,0,10,1,no,0,0,0,weapon,0,0x0,	WS_CARTTERMINATION,Cart Termination
-486,0,6,4,0,0x1,0,5,1,no,0,0,0,weapon,0,0x0,		WS_OVERTHRUSTMAX,Maximum Power Thrust
+485,-2,6,1,-1,0x8,0,10,1,no,0,0,0,weapon,0,0x4000,	WS_CARTTERMINATION,Cart Termination
+486,0,6,4,0,0x1,0,5,1,no,0,0,0,weapon,0,0x4000,		WS_OVERTHRUSTMAX,Maximum Power Thrust
 487,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x8,		CG_LONGINGFREEDOM,Longing for Freedom
 488,0,6,4,0,0x1,1,5,1,no,0,0x20,0,misc,0,0x1,	CG_HERMODE,Wand of Hermode
 489,9,6,1,0,0x41,0,5,1,no,0,0,0,misc,0,0x0,		CG_TAROTCARD,Tarot Card of Fate
@@ -731,7 +733,7 @@
 500,0,6,4,0,0x41,0,5,1,no,0,0,0,misc,0,0x0,		GS_GLITTERING,Flip the Coin
 501,9,6,1,-1,0x50,0,1,1,no,0,0,0,misc,0,0x0,		GS_FLING,Fling
 502,-9,8,1,-1,0,0,1,3,no,0,0,0,weapon,0,0x0,		GS_TRIPLEACTION,Triple Action
-503,-9,6,1,-1,0x8,0,1,1,no,0,0,0,weapon,0,0x0,	GS_BULLSEYE,Bulls Eye
+503,-9,6,1,-1,0x8,0,1,1,no,0,0,0,weapon,0,0x300000,	GS_BULLSEYE,Bulls Eye
 504,0,6,4,0,0x1,0,1,1,no,0,0,0,weapon,0,0x0,		GS_MADNESSCANCEL,Madness Canceller
 505,0,6,4,0,0x1,0,1,1,no,0,0,0,weapon,0,0x0,		GS_ADJUSTMENT,AdJustment
 506,0,6,4,0,0x1,0,1,1,no,0,0,0,weapon,0,0x0,		GS_INCREASING,Increasing Accuracy
@@ -870,8 +872,8 @@
 //724,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_FIRESTORM,Fire Storm
 //725,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_REVERBERATION,Reverberation 2
 //726,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_REVERBERATION_ATK,Reverberation Attack
-//727,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_LEX_AETERNA,Lex Aeterna 2
-//728,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_ARROWSTORM,NPC Arrow Storm
+727,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0,		NPC_LEX_AETERNA,Lex Aeterna 2
+728,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0,		NPC_ARROWSTORM,NPC Arrow Storm
 //729,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_CHEAL,NPC Coluceo Heal
 //730,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_SR_CURSEDCIRCLE,NPC 
 //731,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_DRAGONBREATH,NPC Dragon Breath
@@ -899,7 +901,7 @@
 1001,14,6,1,-1,0,0,1,1,no,0,0x1,0,weapon,0,0x0,	KN_CHARGEATK,Charge Attack
 1002,0,6,4,0,0x1,0,1,0,no,0,0x1,0,weapon,2,0x0,	CR_SHRINK,Shrink
 1003,0,0,0,0,0,0,1,0,no,0,0x1,0,weapon,0,0x0,	AS_SONICACCEL,Sonic Acceleration
-1004,9,8,1,0,0x8,0,1,1,no,0,0x1,0,weapon,0,0x0,	AS_VENOMKNIFE,Throw Venom Knife
+1004,9,8,1,0,0x8,0,1,1,no,0,0x1,0,weapon,0,0x300000,	AS_VENOMKNIFE,Throw Venom Knife
 1005,1,6,1,0,0x1,0,1,1,no,0,0x1,0,weapon,0,0x0,	RG_CLOSECONFINE,Close Confine
 1006,0,6,4,3,0,1,1,1,yes,0,0x40001,0,magic,3,0x0,	WZ_SIGHTBLASTER,Sight Blaster
 1007,0,6,4,0,0x1,0,1,0,no,0,0x1,0,none,0,0x0,	SA_CREATECON,Create Elemental Converter
@@ -1032,8 +1034,8 @@
 2240,0,6,4,0,0,0,1,1,no,0,0,0,none,0,0x0,		RA_WUGMASTERY,Warg Mastery
 2241,0,6,4,0,0,0,3,1,no,0,0,0,none,0,0x2000,		RA_WUGRIDER,Warg Rider
 2242,0,6,4,-1,0x42,1,1,1,no,0,0,0,weapon,0,0x42000,	RA_WUGDASH,Warg Dash
-2243,9,6,1,0,0x98,0,5,1,no,0,0,0,weapon,0,0x42000,	RA_WUGSTRIKE,Warg Strike
-2244,9,6,1,0,0x98,0,5,1,no,0,0,0,weapon,0,0x40080,	RA_WUGBITE,Warg Bite
+2243,9,6,1,0,0x98,0,5,1,no,0,0,0,weapon,0,0x342000,	RA_WUGSTRIKE,Warg Strike
+2244,9,6,1,0,0x98,0,5,1,no,0,0,0,weapon,0,0x340080,	RA_WUGBITE,Warg Bite
 2245,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0,		RA_TOOTHOFWUG,Tooth of Warg
 2246,0,6,4,0,0x2,3:4:5:6:7,5,1,no,0,0x40000,0,weapon,0,0x0,	RA_SENSITIVEKEEN,Sensitive Keen
 2247,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x80040,		RA_CAMOUFLAGE,Camouflage
@@ -1059,7 +1061,7 @@
 2264,0,6,4,0,0x1,0,1,1,no,0,0,0,none,7,0x4000,		NC_F_SIDESLIDE,Front-Side Slide
 2265,0,6,4,0,0x1,0,1,1,no,0,0,0,none,7,0x4000,		NC_B_SIDESLIDE,Back-Side Slide
 2266,0,0,0,0,0,0,4,0,no,0,0,0,none,0,0x0,		NC_MAINFRAME,Mainframe Restructure
-2267,0,6,4,0,0xCA,2:3:4,3,1,no,0,0x40000,0,weapon,5,0x4000,	NC_SELFDESTRUCTION,Self Destruction
+2267,0,6,4,0,0xCA,2:3:4,3,1,no,0,0x40000,0,weapon,5,0x304000,	NC_SELFDESTRUCTION,Self Destruction
 2268,0,6,4,0,0x1,0,4,1,yes,0,0,0,none,0,0x4000,	NC_SHAPESHIFT,Shape Shift
 2269,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x4000,		NC_EMERGENCYCOOL,Emergency Cool
 2270,0,6,4,0,0x3,7,1,1,yes,0,0,0,none,0,0x4000,	NC_INFRAREDSCAN,Infrared Scan
@@ -1115,7 +1117,7 @@
 2316,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0,0x0,	LG_EXEEDBREAK,Exceed Break
 2317,2,6,2,-1,0x2,0,5,1,yes,0,0,0,weapon,0,0x0,	LG_OVERBRAND,Over Brand
 2318,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0,0x0,	LG_PRESTIGE,Prestige
-2319,0,6,4,0,0x3,3,5,1,no,0,0,0,weapon,0,0x0,	LG_BANDING,Banding //CHECK Splash isnt needed right? Banding has its own UNIT ID.
+2319,0,6,4,0,0x3,3,5,1,no,0,0,0,weapon,0,0x0,	LG_BANDING,Banding
 2320,0,6,4,-1,0x2,3,5,1,yes,0,0,0,weapon,0,0x1000,	LG_MOONSLASHER,Moon Slasher
 2321,1,8,2,6,0x2,5,5,-7,yes,0,0,0,weapon,0,0x0,	LG_RAYOFGENESIS,Ray of Genesis
 2322,0,6,16,0,0x3,1,5,1,yes,0,0,0,none,0,0x0,	LG_PIETY,Piety
@@ -1232,7 +1234,7 @@
 2479,9,6,2,0,0,0,5,1,yes,0,0x80,3,misc,0,0x0,	GN_THORNS_TRAP,Thorn Trap
 2480,11,6,1,0,0x1,0,5,1,yes,0,0,3,misc,0,0x0,		GN_BLOOD_SUCKER,Blood Sucker //CHECK Data says its a magic attack. Hmmmm....
 2481,11,6,1,-1,0x2,1:2:3:4:5,5,1,yes,0,0,0,weapon,0,0x0,	GN_SPORE_EXPLOSION,Spore Explosion //CHECK Data says its element is set to neutral. Need to confirm.
-2482,11,6,2,0,0x8,0,5,1,yes,0,0,1,weapon,2,0x0,	GN_WALLOFTHORN,Wall of Thorns
+2482,11,6,2,0,0x8,0,5,1,yes,0,0,1,weapon,2,0x300000,	GN_WALLOFTHORN,Wall of Thorns
 2483,11,6,2,0,0x3,4,10,1,yes,0,0x0,0,weapon,0,0x1,	GN_CRAZYWEED,Crazy Weed
 2484,0,6,2,2,0x2,2,10,1,no,0,0x40000,0,weapon,0,0x1,	GN_CRAZYWEED_ATK,Crazy Weed Attack
 2485,9,6,2,3,0,0,5,1,yes,0,0,1,magic,0,0x0,		GN_DEMONIC_FIRE,Demonic Fire
@@ -1263,7 +1265,7 @@
 //2541,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_UGLYDANCE,Ugly Dance 2
 //2542,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		ALL_TETANY,Tetany
 //2543,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		ALL_RAY_OF_PROTECTION,Ray of Protection
-2544,0,6,4,0,0x1,0,1,1,no,0,0x1,0,none,0,0x0,		MC_CARTDECORATE,Decorate Cart
+2544,0,6,4,0,0x1,0,1,1,no,0,0x1,0,none,0,0x4000,		MC_CARTDECORATE,Decorate Cart
 
 //****
 // Rebellion
@@ -1287,7 +1289,7 @@
 2568,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0,	RL_HEAT_BARREL,Heat Barrel
 2569,-9,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0,	RL_AM_BLAST,Anti-Material Blast
 2570,-9,6,1,-1,0,0,5,1,no,0,0,0,weapon,6,0x0,	RL_SLUGSHOT,Slug Shot
-2571,-9,6,1,-1,0x2,2,5,1,no,0,0,0,weapon,0,0x0,	RL_HAMMER_OF_GOD,Hammer of God
+2571,7:8:9:10:11,6,1,0,0x2,2,5,1,no,0,0,0,weapon,0,0x0,	RL_HAMMER_OF_GOD,Hammer of God
 2572,0,6,1,-1,0x40,0,5,1,no,0,0,0,weapon,0,0,	RL_R_TRIP_PLUSATK,Round Trip Plus Attack
 //2573,0,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0,	RL_B_FLICKER_ATK,Bind Flicker Attack
 //2574,0,6,1,-1,0,0,10,1,no,0,0,0,weapon,0,0,	RL_GLITTERING_GREED_ATK,Flip The Coin Greed Attack
@@ -1378,11 +1380,8 @@
 5039,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0,	SU_TUNAPARTY,Tuna Party
 5040,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0,	SU_BUNCHOFSHRIMP,Bunch of Shrimp
 5041,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0,	SU_FRESHSHRIMP,Fresh Shrimp
-
-// Unknown Unconfirmed Summoner Skills - Animations Show On These
-//5042,0,0,0,0,0,0,5,0,yes,0,0,0,none,0,0x0,		SU_CN_METEOR_SEC,
-//5043,0,0,0,0,0,0,5,0,yes,0,0,0,none,0,0x0,		SU_LUNATICCARROTBEAT_SEC,
-
+5042,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0,	SU_CN_METEOR2,Catnip Meteor 2
+5043,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0,	SU_LUNATICCARROTBEAT2,Lunatic Carrot Beat 2
 5044,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0,	SU_SOULATTACK,Soul Attack
 5045,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0,	SU_POWEROFFLOCK,Power of Flock
 5046,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0,	SU_SVG_SPIRIT,Spirit of Savage
@@ -1402,6 +1401,8 @@
 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
 
+5067,0,0,4,0,0x1,0,1,0,no,0,0,0,none,0,0x0,		ALL_EQSWITCH,Equip Switch
+
 // 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
@@ -1493,6 +1494,7 @@
 8238,9,6,16,0,0x1,0,10,1,yes,0,0,0,magic,0,0x0,	MER_KYRIE,Kyrie Eleison
 8239,9,6,16,0,0x1,0,10,1,yes,0,0,0,magic,0,0x1000,	MER_BLESSING,Blessing
 8240,9,6,16,0,0x1,0,10,1,yes,0,0,0,magic,0,0x1000,	MER_INCAGI,Increase Agility
+8241,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0,	MER_INVINCIBLEOFF2,Mind Blaster
 
 //****
 // Elemental Spirits Skills

+ 14 - 12
db/pre-re/skill_require_db.txt

@@ -26,11 +26,11 @@
 // 'RequiredStatuses'
 //	Fill the value only with SC_STATUS (see db/const.txt for more details)
 //	Usage for multiple status requirements: SC_STATUS1:SC_STATUS2:SC_STATUS3
-//	Max. multiple value is 3 (skill.h: MAX_SKILL_STATUS_REQUIRE)
+//	Max. multiple value is 3 (skill.hpp: MAX_SKILL_STATUS_REQUIRE)
 //	Use any number or SC_ALL will disable status requirements
 // 'RequiredEquipment'
 //	Specified equipment to be equipped. For multiple values, use : as delimiter.
-//	Max. multiple value is 10 (skill.h: MAX_SKILL_EQUIP_REQUIRE)
+//	Max. multiple value is 10 (skill.hpp: MAX_SKILL_EQUIP_REQUIRE)
 
 //****
 // SM Swordman
@@ -680,25 +680,25 @@
 //****
 // NC Mechanic
 2256,0,0,3:6:9:12:15,0,0,0,99,0,0,mado,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0					//NC_BOOSTKNUCKLE
-2257,0,0,50,0,0,0,99,0,0,mado,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0								//NC_PILEBUNKER
+2257,0,0,50,0,0,0,99,0,0,mado,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1549:16030:16031:16032		//NC_PILEBUNKER
 2258,0,0,2:4:6,0,0,0,99,0,0,mado,0,0,6145,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0						//NC_VULCANARM
 2259,0,0,20,0,0,0,99,0,0,mado,0,0,2139,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0						//NC_FLAMELAUNCHER
 2260,0,0,20,0,0,0,99,0,0,mado,0,0,6146,1,6147,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0						//NC_COLDSLOWER
 2261,0,0,30:45:60,0,0,0,99,8,1,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0					//NC_ARMSCANNON
-2262,0,0,20:40:60,0,0,0,99,0,0,mado,0,0,2800,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0					//NC_ACCELERATION
-2263,0,0,25,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0							//NC_HOVERING
+2262,0,0,20:40:60,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2800					//NC_ACCELERATION
+2263,0,0,25,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2801						//NC_HOVERING
 2264,0,0,5,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0							//NC_F_SIDESLIDE
 2265,0,0,5,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0							//NC_B_SIDESLIDE
 
-2267,0,0,200,0,0,0,99,0,0,mado,0,0,2802,0,6146,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0						//NC_SELFDESTRUCTION
-2268,0,0,100,0,0,0,99,0,0,mado,0,0,6360,3,6363,3,6362,3,6361,3,2803,0,0,0,0,0,0,0,0,0,6146,2,0			//NC_SHAPESHIFT
-2269,0,0,20,0,0,0,99,0,0,mado,0,0,2804,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0						//NC_EMERGENCYCOOL
+2267,0,0,200,0,0,0,99,0,0,mado,0,0,6146,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2802						//NC_SELFDESTRUCTION
+2268,0,0,100,0,0,0,99,0,0,mado,0,0,6360,3,6363,3,6362,3,6361,3,0,0,0,0,0,0,0,0,0,0,6146,2,2803			//NC_SHAPESHIFT
+2269,0,0,20,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2804:2809:2810				//NC_EMERGENCYCOOL
 2270,0,0,45,0,0,0,99,0,0,mado,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0								//NC_INFRAREDSCAN
 2271,0,0,30,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0							//NC_ANALYZE
-2272,0,0,60:70:80,0,0,0,99,0,0,mado,0,0,2805,0,6146,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0						//NC_MAGNETICFIELD
-2273,0,0,80:90:100,0,0,0,99,0,0,mado,0,0,2806,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0						//NC_NEUTRALBARRIER
-2274,0,0,80:100:120,0,0,0,99,0,0,mado,0,0,2808,0,6146,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0				//NC_STEALTHFIELD
-2275,0,0,25:30:35:40:45,0,0,0,99,0,0,mado,0,0,12392,1,12392,1,12393,1,12393,1,12394,1,2807,0,0,0,0,0,0,0,6146,1,0			//NC_REPAIR
+2272,0,0,60:70:80,0,0,0,99,0,0,mado,0,0,6146,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2805					//NC_MAGNETICFIELD
+2273,0,0,80:90:100,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2806				//NC_NEUTRALBARRIER
+2274,0,0,80:100:120,0,0,0,99,0,0,mado,0,0,6146,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2808				//NC_STEALTHFIELD
+2275,0,0,25:30:35:40:45,0,0,0,99,0,0,mado,0,0,12392,1,12392,1,12393,1,12393,1,12394,1,0,0,0,0,0,0,0,0,2807,0,0			//NC_REPAIR
 
 2278,0,0,20:22:24:26:28,0,0,0,6:7,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				//NC_AXEBOOMERANG
 2279,0,0,20:22:24:26:28,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					//NC_POWERSWING
@@ -961,6 +961,8 @@
 //3036,0,0,1,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							//BA_POEMBRAGI2
 //3037,0,0,1,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							//DC_FORTUNEKISS2
 
+5067,0,0,0,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								//ALL_EQSWITCH
+
 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
 8002,0,0,20:25:30:35:40,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					//HLIF_AVOID
 8004,0,0,100,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							//HLIF_CHANGE

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

@@ -43,7 +43,7 @@
  83,0x86,    ,  0, 3,1000,enemy, 0x010	//WZ_METEOR
  85,0x86,    ,  5:5:5:5:5:5:5:5:5:5:7, 1,1250,enemy,0x018	//WZ_VERMILION
  86,0x86,    ,  0:1:1:2:2:2:2:2:2:2, 0,-1,noone, 0x010	//WZ_WATERBALL
- 87,0x8d,    , -1, 0,  -1,all,   0x9010	//WZ_ICEWALL
+ 87,0x8d,    , -1, 0,1000,all,   0x9010	//WZ_ICEWALL
  89,0x86,    ,  4, 1, 450,enemy, 0x018	//WZ_STORMGUST
  91,0x86,    ,  2, 0,1000,enemy, 0x010	//WZ_HEAVENDRIVE
  92,0x8e,    ,  2, 0,  -1,enemy, 0x8010	//WZ_QUAGMIRE

+ 12 - 17
db/re/achievement_db.yml

@@ -1690,72 +1690,72 @@ Achievements:
   - ID: 200017
     Group: "AG_GOAL_STATUS"
     Name: "Bearish Power!"
-    Condition: " bStr >= 90 "
+    Condition: " readparam(bStr) >= 90 "
     Score: 10
   - ID: 200018
     Group: "AG_GOAL_STATUS"
     Name: "Overflowing Magic!"
-    Condition: " bInt >= 90 "
+    Condition: " readparam(bInt) >= 90 "
     Score: 10
   - ID: 200019
     Group: "AG_GOAL_STATUS"
     Name: "Healthy Body and Mental Health!"
-    Condition: " bVit >= 90 "
+    Condition: " readparam(bVit) >= 90 "
     Score: 10
   - ID: 200020
     Group: "AG_GOAL_STATUS"
     Name: "Speed of Light"
-    Condition: " bAgi >= 90 "
+    Condition: " readparam(bAgi) >= 90 "
     Score: 10
   - ID: 200021
     Group: "AG_GOAL_STATUS"
     Name: "Hawk Eyes"
-    Condition: " bDex >= 90 "
+    Condition: " readparam(bDex) >= 90 "
     Score: 10
   - ID: 200022
     Group: "AG_GOAL_STATUS"
     Name: "Maximum Luck"
-    Condition: " bLuk >= 90 "
+    Condition: " readparam(bLuk) >= 90 "
     Score: 10
   - ID: 200023
     Group: "AG_GOAL_STATUS"
     Name: "Dragonlike Power!"
-    Condition: " bStr >= 125 "
+    Condition: " readparam(bStr) >= 125 "
     Reward:
       Script: " sc_start SC_GIANTGROWTH,180000,1; "
     Score: 20
   - ID: 200024
     Group: "AG_GOAL_STATUS"
     Name: "Magic Insanity"
-    Condition: " bInt >= 125 "
+    Condition: " readparam(bInt) >= 125 "
     Reward:
       Script: " specialeffect2 EF_HASTEUP; bonus_script \"{ bonus2 bHPLossRate,100,10000; bonus bBaseAtk,20; bonus bAspdRate,25; }\",60,0,0,EFST_STEAMPACK; "
     Score: 20
   - ID: 200025
     Group: "AG_GOAL_STATUS"
     Name: "Rock Alloy"
-    Condition: " bVit >= 125 "
+    Condition: " readparam(bVit) >= 125 "
     Reward:
       Script: " specialeffect2 EF_HEAL3; sc_start2 SC_S_LIFEPOTION,600000,-5,5; "
     Score: 20
   - ID: 200026
     Group: "AG_GOAL_STATUS"
     Name: "Speed of Light"
-    Condition: " bAgi >= 125 "
+    Condition: " readparam(bAgi) >= 125 "
     Reward:
       Script: " specialeffect2 EF_STEAL; sc_start SC_INCFLEE2,60000,20; "
     Score: 20
   - ID: 200027
     Group: "AG_GOAL_STATUS"
     Name: "Falcon's Eyes"
-    Condition: " bDex >= 125 "
+    Condition: " readparam(bDex) >= 125 "
     Reward:
       Script: " specialeffect2 EF_MAGICALATTHIT; sc_start SC_INCCRI,300000,30; "
     Score: 20
   - ID: 200028
     Group: "AG_GOAL_STATUS"
     Name: "Lucky Fever"
-    Condition: " bLuk >= 125 "
+    Condition: " readparam(bLuk) >= 125 "
     Reward:
       Script: " specialeffect2 EF_GLORIA; sc_start SC_GLORIA,15000,0; "
     Score: 20
@@ -2000,12 +2000,10 @@ Achievements:
   - ID: 220000
     Group: "AG_CHATTING_CREATE"
     Name: "Community begin"
-    Condition: " true "
     Score: 10
   - ID: 220001
     Group: "AG_CHATTING_DYING"
     Name: "A mouth only moment"
-    Condition: " true "
     Score: 10
   - ID: 220002
     Group: "AG_CHATTING_COUNT"
@@ -2025,12 +2023,10 @@ Achievements:
   - ID: 220005
     Group: "AG_PARTY"
     Name: "Let's Party~"
-    Condition: " true "
     Score: 10
   - ID: 220006
     Group: "AG_MARRY"
     Name: "Married with who..?"
-    Condition: " true "
     Reward:
       TitleID: 1022
     Score: 20
@@ -2126,7 +2122,6 @@ Achievements:
   - ID: 220022
     Group: "AG_ENCHANT_FAIL"
     Name: "Human's greed has no ending.."
-    Condition: " true "
     Score: 10
   - ID: 220023
     Group: "AG_GET_ITEM"

+ 1 - 1
db/re/instance_db.txt

@@ -23,7 +23,7 @@
 16,Horror Toy Factory,3600,300,1@xm_d,111,22
 17,Faceworm's Nest,3600,300,1@face,112,370
 18,Ghost Palace,3600,300,1@spa,42,196
-// 19,Devil's Tower,3600,300,1@tnm1,50,104,1@tnm2,1@tnm3
+19,Devil's Tower,3600,300,1@tnm1,50,104,1@tnm2,1@tnm3
 20,Assault on the Airship,3600,300,1@air1,244,73,1@air2
 21,Fenrir and Sarah,3600,300,1@glast,367,304
 // 22,Wave Mode - Forest,3600,300,1@def01,50,21

+ 78 - 5
db/re/item_buyingstore.txt

@@ -8,13 +8,86 @@
 //  Items are in same order as data\buyingstoreitemlist.txt, which
 //  must be edited as well for the client to accept added items.
 
+//---2018 / 05 / 16 - 아이템 추가 8517
+6635	//Blacksmith_Blessing
+12507	//E_WOB_Rune
+12508	//E_WOB_Schwaltz
+12509	//E_WOB_Rachel
+12510	//E_WOB_Local
+//22999
+//23136
+//23221
+//23222
+//23223
+//23224
+//23225
+//23226
+//23227
+23228	//Hazy_Mooncake
+//23282
+//25041
+//---2018 / 04 / 18 - 일루전 오브 루안다 아이템 추가
+//25633
+//25634
+//25635
+//25636
+//25637
+//25638
+//25639
+//25640
+//25641
+//25642
+//---2018 / 03 / 14 - 찰스턴부품 추가
+6752	//Charleston_Parts
+//---2018 / 03 / 05 - 일루전 아이템 및 흙빛의조각 게펜마법대회주화 추가
+6671	//Geffen_Coin_Magic_Tournament
+6672	//Shard_of_Gray
+//11620
+25256	//Hazy_Dream_Fragment
+25257	//Bloody_Love_Letter
+25258	//Broken_Arrow
+//25261
+//25262
+//25263
+//25264
+//25265
+//25266
+//25267
+25271	//Illusion_Stone
+//25297
+//25298
+//25299
+//25300
+//25311
+//25312
+//25313
+//25314
+//25615
+//25616
+//25617
+//25618
+//25619
+//---2017 / 10 / 30 - 사냥대회 이벤트 코인 추가
+//23533
+//--- 2017 / 01 / 25 - 신비한 메달 추가
+//25273
+//--- 2016 / 12 / 07 - 락릿지 추가
+//25276
+//25277
+//25278
+//25279
+//25280
+//25281
+//25282
+//25283
+//25284
+//25285
 //--- 2015 / 12 / 16 - 전사자무덤
 //25127
 //25128
 //25129
 //25130
 //25131
-22687	//Fragments_Vicious_Mind
 //23016
 //23080
 4671	//V_B_Celia_Card
@@ -705,8 +778,8 @@
 6940	//Moving_Dark_Matter
 6941	//Fragments_Valkyrie_Power
 6942	//Will_Master
-//6961
-//6962
+6961	//Huge_Metal_Scrap
+6962	//Old_Fuel
 6905	//Broken_Magic_Stone
 //--- 2014 / 12 / 17
 12739	//Snow_Flower
@@ -742,7 +815,7 @@
 11597	//Iron_Worm
 22699	//Test_Reagent
 22679	//Death_Bin
-22687	//Fragments_Vicious_Mind
+22687	//Pieces_Of_Sentiment
 6615	//Siege_Guild_Coin
 //--- 2013 / 08 / 02
 6750	//Failed_Engine
@@ -800,7 +873,7 @@
 6608	//Coagulated_Spell
 6609	//Glast_Decayed_Nail
 6610	//Glast_Horrendous_Mouth
-//6611
+6611	//Colorful_Key
 6612	//Gold_Coin_Basket
 6613	//Flashy_Brooch
 7228	//Gold_Bullion

+ 118 - 30
db/re/item_combo_db.txt

@@ -26,7 +26,7 @@
 1428:2115,{ bonus3 bAutoSpellWhenHit,"HP_ASSUMPTIO",2,5; }
 1433:2153,{ bonus2 bSkillAtk,"LG_RAYOFGENESIS",10; bonus2 bSkillAtk,"CR_GRANDCROSS",10; }
 1433:2153:18823,{ bonus2 bSkillAtk,"LG_BANISHINGPOINT",20; bonus2 bSkillAtk,"LG_CANNONSPEAR",20; bonus2 bSkillAtk,"LG_SHIELDPRESS",20; }
-1433:2153:18823:28372,{ bonus2 bSkillUseSP,"LG_BANISHINGPOINT",-15; bonus2 bSkillUseSP,"LG_CANNONSPEAR",-10; bonus2 bSkillUseSP,"CR_GRANDCROSS",-30; bonus2 bSkillUseSP,"LG_SHIELDPRESS",-5; }
+1433:2153:18823:28372,{ bonus2 bSkillUseSP,"LG_BANISHINGPOINT",15; bonus2 bSkillUseSP,"LG_CANNONSPEAR",10; bonus2 bSkillUseSP,"CR_GRANDCROSS",30; bonus2 bSkillUseSP,"LG_SHIELDPRESS",5; }
 1433:28372,{ .@r = getequiprefinerycnt(EQI_HAND_R)/2*7; bonus2 bSkillAtk,"LG_CANNONSPEAR",.@r; bonus2 bSkillAtk,"LG_BANISHINGPOINT",.@r; }
 1472:2677,{ bonus bMatkRate,6; bonus bDex,2; bonus bVariableCastrate,-getequiprefinerycnt(EQI_HEAD_TOP); }
 1472:2711,{ bonus bMatkRate,6; bonus bDex,2; bonus bVariableCastrate,-getequiprefinerycnt(EQI_HAND_R); }
@@ -67,7 +67,7 @@
 1636:18539,{ bonus bMatk,10*getequiprefinerycnt(EQI_HAND_R); bonus bVariableCastrate,-10; }
 1646:2161,{ .@r = getequiprefinerycnt(EQI_HAND_L)*4; bonus2 bVariableCastrate,"WZ_STORMGUST",-.@r; bonus2 bVariableCastrate,"WL_FROSTMISTY",-.@r; bonus2 bVariableCastrate,"WL_JACKFROST",-.@r; }
 1647:5968,{ if (BaseClass == Job_Acolyte) { bonus bHealPower,getequiprefinerycnt(EQI_HAND_R)*4; } }
-1649:2198,{ .@r_2198 = getequiprefinerycnt(EQI_HAND_L); .@r_1649 = getequiprefinerycnt(EQI_HAND_R); if (.@r_2198 > 9) { bonus bMatk,15 * .@r_1649; } if (.@r_1649 >= 10) { bonus bMatk,50; bonus bVariableCastrate,-10; } }
+1649:2198,{ .@r_2198 = getequiprefinerycnt(EQI_HAND_L); .@r_1649 = getequiprefinerycnt(EQI_HAND_R); if (.@r_2198 > 9) { bonus bMatk,15 * .@r_1649; if (.@r_1649 >= 10) { bonus bMatk,50; bonus bVariableCastrate,-10; } } }
 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; }
@@ -98,7 +98,8 @@
 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; }
+1935:2988,{ bonus2 bSkillAtk,"CG_ARROWVULCAN",200; bonus2 bSkillUseSP,"CG_ARROWVULCAN",-50; }
+1944:15180:28442,{ bonus bBaseAtk,30; bonus bAspd,1; bonus bCritAtkRate,20; }
 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; }
 2001:2711,{ bonus bMatkRate,10; bonus bDex,2; bonus2 bSubRace,RC_Demon,10; bonus2 bSubRace,RC_Undead,10; }
@@ -218,15 +219,21 @@
 2484:2586:15047,{ bonus bDex,5; bonus2 bSubRace,RC_DemiHuman,15; bonus2 bSubRace,RC_Player,15; }
 2485:2587:15048,{ bonus bInt,5; bonus bMdef,10; bonus2 bSubRace,RC_DemiHuman,15; bonus2 bSubRace,RC_Player,15; }
 2507:15146,{ .@r = getequiprefinerycnt(EQI_ARMOR); bonus bMaxSPrate,10+.@r; bonus bFlee,10+.@r; }
+2507:15163,{ bonus bVariableCastrate,-(2*getequiprefinerycnt(EQI_ARMOR)); bonus bNoCastCancel; }
 2509:15146,{ .@r = getequiprefinerycnt(EQI_ARMOR); bonus bMaxHPrate,10+.@r; bonus bMatkRate,2+.@r; }
 2518:2648:2649:5126,{ bonus bInt,5; bonus bMdef,11; bonus bMaxSPrate,20; bonus bNoCastCancel; bonus bVariableCastrate,25; }
 2519:2650:2651:5127,{ bonus bStr,2; bonus bLuk,9; bonus bCritical,13; bonus bBaseAtk,18; bonus bFlee2,13; }
 2519:15147,{ .@r = getequiprefinerycnt(EQI_ARMOR); bonus2 bIgnoreDefRaceRate,RC_DemiHuman,15; bonus2 bIgnoreDefRaceRate,RC_Demon,15; bonus2 bIgnoreDefRaceRate,RC_Undead,15; bonus bLuk,3+.@r; bonus bCritical,10+.@r; }
+2519:15164,{ .@r = getequiprefinerycnt(EQI_ARMOR); bonus bDefEle,Ele_Ghost; bonus bAgi,.@r; bonus bFlee,(2*.@r); }
+2524:4174:15164,{ bonus2 bSubEle,Ele_Neutral,-50; bonus2 bSubEle,Ele_Water,50; bonus2 bSubEle,Ele_Earth,50; bonus2 bSubEle,Ele_Fire,50; bonus2 bSubEle,Ele_Wind,50; bonus2 bSubEle,Ele_Poison,50; bonus2 bSubEle,Ele_Holy,50; bonus2 bSubEle,Ele_Dark,50; bonus2 bSubEle,Ele_Ghost,50; bonus2 bSubEle,Ele_Undead,50; }
 2524:15147,{ .@r = getequiprefinerycnt(EQI_ARMOR); bonus2 bIgnoreDefRaceRate,RC_DemiHuman,15; bonus2 bIgnoreDefRaceRate,RC_Demon,15; bonus2 bIgnoreDefRaceRate,RC_Undead,15; bonus bMaxHPrate,10+.@r; bonus2 bAddClass,Class_All,2+.@r; }
+2524:15164,{ .@r = getequiprefinerycnt(EQI_ARMOR); .@val = 10; bonus bVit,(5+.@r); bonus bLuk,.@r; bonus2 bSubEle,Ele_Fire,10; bonus2 bSubEle,Ele_Dark,10; if (.@r >= 10) { .@val += 10; } bonus2 bSubEle,Ele_Neutral,.@val; }
+2525:15163,{ bonus bVariableCastrate,-(2*getequiprefinerycnt(EQI_ARMOR)); bonus bNoCastCancel; }
 2527:5467:13001,{ bonus2 bAddRace,RC_Dragon,25; }
 2527:5467:13030,{ bonus2 bAddRace,RC_Dragon,25; }
 2527:13001,{ bonus2 bAddRace,RC_Dragon,5; }
 2527:13030,{ bonus2 bAddRace,RC_Dragon,5; }
+2535:15163,{ bonus5 bAutoSpell,"AL_HEAL",1,(10*getequiprefinerycnt(EQI_ARMOR)),BF_MAGIC,0; }
 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; }
@@ -296,8 +303,10 @@
 2959:18756,{ .@r = 3+(3*getequiprefinerycnt(EQI_HEAD_TOP)); autobonus "{ bonus2 bSPLossRate,5,1000; bonus bBaseAtk,30; }",.@r,5000,BF_WEAPON,"{ transform 1785,5000; specialeffect2 EF_POTION_BERSERK; }"; autobonus2 "{ bonus2 bSPLossRate,5,1000; bonus bBaseAtk,30; }",.@r,5000,BF_WEAPON,"{ transform 1785,5000; specialeffect2 EF_POTION_BERSERK; }"; }
 2963:15073,{ bonus bAspdRate,5; }
 2963:15074,{ bonus bDelayrate,-5; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; }
+2963:20944,{ bonus bDelayrate,-5; }
 2964:15073,{ bonus bDelayrate,-5; bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubRace,RC_Player,5; }
 2964:15074,{ bonus bVariableCastrate,-5; }
+2964:20943,{ bonus bUseSPrate,-5; }
 2966:2967:13092,{ bonus bBaseAtk,-(getequiprefinerycnt(EQI_HAND_R)*10); }
 2966:2967:16026,{ bonus bBaseAtk,-(getequiprefinerycnt(EQI_HAND_R)*5); }
 2966:2967:18821,{ bonus2 bAddClass,Class_All, -(getequiprefinerycnt(EQI_HEAD_TOP)/2); }
@@ -317,12 +326,23 @@
 2968:18821,{ bonus bMatkRate,getequiprefinerycnt(EQI_HEAD_TOP)/2; }
 2969:13092,{ bonus bBaseAtk,getequiprefinerycnt(EQI_HAND_R)*10; }
 2969:18821,{ bonus bMatkRate,getequiprefinerycnt(EQI_HEAD_TOP)/2; }
+2977:2978,{ bonus5 bAutoSpell,"SO_PSYCHIC_WAVE",1,10,BF_WEAPON,1; bonus5 bAutoSpell,"HW_MAGICPOWER",1,10,BF_MAGIC,0; bonus5 bAutoSpell,"WZ_FROSTNOVA",10,10,BF_WEAPON|BF_MAGIC,0; bonus5 bAutoSpellWhenHit,"DC_SCREAM",1,10,BF_WEAPON|BF_MAGIC,0; }
 2979:18852,{ bonus bMaxHPrate,15; bonus2 bSubEle,Ele_Fire,10; bonus bLongAtkRate,30; }
 2979:18853,{ bonus bMaxHPrate,15; bonus2 bSubEle,Ele_Fire,10; bonus bLongAtkRate,30; }
+2980:32237,{ bonus bBaseAtk,50; bonus bMatk,50; bonus bAspd,1; }
 2983:4218,{ bonus bVit,-3; bonus bHPrecovRate,-20; bonus bMaxHP,1000; }
 2983:4218:4269,{ bonus bVit,-3; bonus bHPrecovRate,-20; bonus bMaxHP,1000; bonus bInt,-3; bonus bSPrecovRate,-20; bonus bMaxSP,150; }
 2983:4269,{ bonus bInt,-3; bonus bSPrecovRate,-20; bonus bMaxSP,150; }
-2984:4151:4164:4204:4221:4235:4239:4245:4249:4267:4275,{ bonus2 bExpAddRace,RC_All,2; }
+2984:4151,{ bonus2 bSubRace,RC_Plant,-10; bonus2 bExpAddRace,RC_Plant,5; }
+2984:4164,{ bonus2 bSubRace,RC_Fish,-10; bonus2 bExpAddRace,RC_Fish,5; }
+2984:4204,{ bonus2 bSubRace,RC_Brute,-10; bonus2 bExpAddRace,RC_Brute,5; }
+2984:4221,{ bonus2 bSubRace,RC_Insect,-10; bonus2 bExpAddRace,RC_Insect,5; }
+2984:4235,{ bonus2 bSubRace,RC_Angel,-10; bonus2 bExpAddRace,RC_Angel,5; }
+2984:4239,{ bonus2 bSubRace,RC_Formless,-10; bonus2 bExpAddRace,RC_Formless,5; }
+2984:4245,{ bonus2 bSubRace,RC_DemiHuman,-10; bonus2 bSubRace,RC_Player,-10; bonus2 bExpAddRace,RC_DemiHuman,5; }
+2984:4249,{ bonus2 bSubRace,RC_Demon,-10; bonus2 bExpAddRace,RC_Demon,5; }
+2984:4267,{ bonus2 bSubRace,RC_Dragon,-10; bonus2 bExpAddRace,RC_Dragon,5; }
+2984:4275,{ bonus2 bSubRace,RC_Undead,-10; bonus2 bExpAddRace,RC_Undead,5; }
 2986:2987:18872,{ bonus2 bAddMonsterDropItem,22559,50; }
 2986:18872,{ bonus bBaseAtk,BaseLevel/4; }
 2987:18872,{ bonus bMatk,BaseLevel/4; }
@@ -342,8 +362,10 @@
 4036:4186:4233:4281:4343,{ bonus bStr,4; bonus bMaxHPrate,7; bonus bMaxSPrate,7; bonus2 bSkillAtk,"MC_MAMMONITE",20; bonus bSPDrainValue,1; if(BaseJob==Job_Alchemist) { bonus3 bAutoSpell,"BS_ADRENALINE",1,10; bonus2 bAddMonsterDropItem,7139,3; bonus2 bAddMonsterDropItem,905,10; } }
 4039:4210:4230:4257:4348,{ bonus bStr,6; bonus bAgi,4; bonus2 bSkillAtk,"RG_BACKSTAP",10; if(getskilllv("RG_STRIPARMOR")==5) bonus3 bAutoSpell,"RG_STRIPARMOR",5,50; if(BaseJob==Job_Rogue) { bonus bUseSPrate,-20; bonus3 bAutoSpell,"RG_INTIMIDATE",1,-20; } }
 4045:28910,{ bonus bLongAtkDef,-35; }
+4047:27339,{ bonus2 bAddClass,Class_All,10; }
 4072:21013,{ bonus2 bSubSize,Size_All,15; }
 4074:4162,{ bonus2 bAddEffWhenHit,Eff_Blind,600; }
+4079:27338,{ bonus2 bAddClass,Class_All,7; bonus bHit,12; }
 4090:4212:4328,{ bonus bAllStats,1; }
 4090:27085,{ autobonus "{ bonus2 bAddEff,Eff_Stun,5000; }",2,5000,BF_SHORT; }
 4093:27120,{ bonus bMaxSP,50; }
@@ -351,6 +373,7 @@
 4100:27084,{ autobonus "{ bonus bSPrecovRate,100; }",20,5000,BF_MAGIC; }
 4106:4248,{ bonus bPerfectHitAddRate,20; }
 4127:4166,{ bonus2 bAddEffWhenHit,Eff_Curse,600; }
+4129:27335,{ bonus bCritAtkRate,15; }
 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; }
@@ -360,7 +383,6 @@
 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; } }
-4169:4488,{ if(getequiprefinerycnt(EQI_SHOES) >= 15) { bonus bMaxHPrate,15; bonus bMaxSPrate,15; } else { bonus bMaxHPrate,10; bonus bMaxSPrate,10; } }
 4172:4210:4230:4257:4272,{ bonus bAgi,5; bonus bStr,5; bonus bAspdRate,5; bonus bSpeedRate,25; bonus bSPDrainValue,1; if(BaseClass==Job_Thief) bonus bNoGemStone; }
 4178:4199:4234:4252:4297,{ bonus bAgi,5; bonus bDex,3; bonus bLongAtkRate,20; bonus bPerfectHitAddRate,20; if(BaseClass==Job_Archer) { bonus2 bExpAddRace,RC_Brute,5; bonus2 bComaRace,RC_Brute,100; } }
 4178:4234:4252:4297:4381,{ bonus bDex,5; bonus2 bSkillAtk,"CG_ARROWVULCAN",5; bonus2 bSkillAtk,"DC_THROWARROW",10; bonus2 bSkillAtk,"BA_MUSICALSTRIKE",10; if(BaseJob==Job_Bard||BaseJob==Job_Dancer) bonus3 bAutoSpellWhenHit,"CG_TAROTCARD",2,50; }
@@ -374,6 +396,14 @@
 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; }
+4020:27328,{ bonus bBaseAtk,15; bonus2 bAddEle,Ele_Dark,20; }
+4023:27328,{ bonus bInt,3; bonus bMaxSP,100; bonus bMatkRate,5; }
+4066:27328,{ bonus2 bSubRace,RC_DemiHuman,15; bonus2 bSubRace,RC_Player,15; }
+4067:27328,{ bonus bDef,100; }
+4071:27328,{ bonus bHit,15; bonus bFlee,15; bonus bCritAtkRate,15; }
+4077:27328,{ bonus bVariableCastrate,-25; }
+4082:27328,{ bonus2 bAddSize,Size_Medium,15; bonus2 bAddSize,Size_Large,15; }
+4107:27328,{ bonus bMaxHPrate,4; bonus bMaxSPrate,4; }
 4229:4244:4299:4313,{ bonus bDef,3; bonus bMdef,3; }
 4237:4238,{ bonus3 bAutoSpell,"MG_LIGHTNINGBOLT",5,20; }
 4247:18554,{ bonus2 bAddEle,Ele_Water,10; }
@@ -388,17 +418,19 @@
 4335:19156,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); if (.@r < 4) { .@a = 4; } else { .@a = min(.@r,10); } bonus3 bAutoSpell,"WZ_EARTHSPIKE",.@a,(.@a*10); bonus3 bAutoSpell,"WZ_HEAVENDRIVE",.@a,(.@a*10); }
 4345:19156,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); if (.@r < 4) { .@a = 4; } else { .@a = min(.@r,10); } bonus3 bAutoSpell,"MG_LIGHTNINGBOLT",.@a,(.@a*10); bonus3 bAutoSpell,"MG_THUNDERSTORM",.@a,(.@a*10); }
 4350:19156,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); if (.@r < 4) { .@a = 4; } else { .@a = min(.@r,10); } bonus3 bAutoSpell,"MG_COLDBOLT",.@a,(.@a*10); bonus3 bAutoSpell,"WZ_FROSTNOVA",.@a,(.@a*10); }
+4375:27328,{ bonus2 bSubEle,Ele_Neutral,5; bonus bFlee,5; }
 4380:19156,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); if (.@r < 4) { .@a = 4; } else { .@a = min(.@r,10); } bonus3 bAutoSpell,"MG_FIREBOLT",.@a,(.@a*10); bonus3 bAutoSpell,"MG_FIREBALL",.@a,(.@a*10); }
 4335:21012,{ bonus5 bAutoSpell,"WZ_EARTHSPIKE",5,10+(getequiprefinerycnt(EQI_HAND_R)*10),BF_NORMAL|BF_WEAPON,1; /* Confirm: Success rate */ }
 4345:21012,{ bonus5 bAutoSpell,"MG_LIGHTNINGBOLT",5,10+(getequiprefinerycnt(EQI_HAND_R)*10),BF_NORMAL|BF_WEAPON,1; /* Confirm: Success rate */ }
 4350:21012,{ bonus5 bAutoSpell,"MG_COLDBOLT",5,10+(getequiprefinerycnt(EQI_HAND_R)*10),BF_NORMAL|BF_WEAPON,1; /* Confirm: Success rate */ }
 4380:21012,{ bonus5 bAutoSpell,"MG_FIREBOLT",5,10+(getequiprefinerycnt(EQI_HAND_R)*10),BF_NORMAL|BF_WEAPON,1; /* Confirm: Success rate */ }
 4388:21012,{ bonus5 bAutoSpell,"MG_SOULSTRIKE",5,10+(getequiprefinerycnt(EQI_HAND_R)*10),BF_NORMAL|BF_WEAPON,1; /* Confirm: Success rate */ }
+4513:27340,{ bonus bCritAtkRate,5; }
 4517:5967,{ bonus bInt,1; bonus bCritAtkRate,5 + (BaseClass == Job_Archer ? 15 : 0); }
 4545:18730,{ bonus bMatk,5; bonus bBaseAtk,5; }
 4605:4606,{ bonus2 bSubEle,Ele_Neutral,20; bonus bFlee,20; bonus2 bHPLossRate,100,6000; bonus2 bSPLossRate,6,6000; }
 4608:4609,{ bonus2 bAddSize,Size_Medium,15; bonus2 bAddSize,Size_Large,15; bonus2 bSubSize,Size_Medium,5; bonus2 bSubSize,Size_Large,5; }
-4610:27168,{ bonus bAtk,100; autobonus "{ active_transform 3190,6000; }",30,6000,BF_WEAPON; }
+4610:27168,{ bonus bAtk,100; autobonus "{}",30,6000,BF_WEAPON,"{ active_transform 3190,6000; }"; }
 4626:4628,{ bonus2 bIgnoreMdefRaceRate,RC_Demon,50; }
 4627:4628,{ bonus2 bIgnoreDefRaceRate,RC_Formless,50; bonus2 bIgnoreDefRaceRate,RC_Demon,50;}
 4629:4630,{ bonus3 bAutoSpell,"NPC_WIDECURSE",2,2; bonus2 bSubEle,Ele_Neutral,5; }
@@ -411,19 +443,19 @@
 4653:4654,{ bonus2 bSubRace,RC_Brute,5; bonus2 bSubRace,RC_Undead,5; bonus2 bIgnoreMdefRaceRate,RC_Brute,50; bonus2 bIgnoreMdefRaceRate,RC_Undead,50; }
 4653:4655,{ bonus2 bSubRace,RC_Brute,5; bonus2 bSubRace,RC_Undead,5; bonus2 bIgnoreDefRaceRate,RC_Brute,50; bonus2 bIgnoreDefRaceRate,RC_Undead,50; }
 4656:4657,{ /* Unofficial chance */ bonus3 bAutoSpellWhenHit,"NPC_WIDESLEEP",2,10; bonus2 bSubEle,Ele_Neutral,5; }
-4671:4692,{ autobonus "{ active_transform 3242,6000; bonus bMatk,100; }",30,6000,BF_MAGIC; }
-4672:4693,{ autobonus "{ active_transform 3243,6000; bonus bAtk,100; }",30,6000,BF_WEAPON; }
-4673:4696,{ autobonus "{ active_transform 3245,6000; bonus bAtk,100; }",30,6000,BF_WEAPON; }
-4674:4684,{ autobonus "{ active_transform 3220,6000; bonus bAtk,100; }",30,6000,BF_WEAPON; }
-4675:4685,{ autobonus "{ active_transform 3221,6000; bonus bMatk,100; }",30,6000,BF_MAGIC; }
-4676:4687,{ autobonus "{ active_transform 3222,6000; bonus bAtk,100; }",30,6000,BF_WEAPON; }
-4677:4688,{ autobonus "{ active_transform 3223,6000; bonus bAtk,100; }",30,6000,BF_WEAPON; }
-4678:4686,{ autobonus "{ active_transform 3224,6000; bonus bMatk,100; }",30,6000,BF_MAGIC; }
-4679:4689,{ autobonus "{ active_transform 3225,6000; bonus bAtk,100; }",30,6000,BF_WEAPON; }
-4680:4690,{ autobonus "{ active_transform 3240,6000; bonus bAtk,100; }",30,6000,BF_WEAPON; }
-4681:4691,{ autobonus "{ active_transform 3241,6000; bonus bAtk,100; }",30,6000,BF_WEAPON; }
-4682:4694,{ autobonus "{ active_transform 3244,6000; bonus bAtk,100; }",30,6000,BF_WEAPON; }
-4683:4695,{ autobonus "{ active_transform 3246,6000; bonus bAtk,100; }",30,6000,BF_WEAPON; }
+4671:4692,{ autobonus "{ bonus bMatk,100; }",30,6000,BF_MAGIC,"{ active_transform 3242,6000; }"; }
+4672:4693,{ autobonus "{ bonus bAtk,100; }",30,6000,BF_WEAPON,"{ active_transform 3243,6000; }"; }
+4673:4696,{ autobonus "{ bonus bAtk,100; }",30,6000,BF_WEAPON,"{ active_transform 3245,6000; }"; }
+4674:4684,{ autobonus "{ bonus bAtk,100; }",30,6000,BF_WEAPON,"{ active_transform 3220,6000; }"; }
+4675:4685,{ autobonus "{ bonus bMatk,100; }",30,6000,BF_MAGIC,"{ active_transform 3221,6000; }"; }
+4676:4687,{ autobonus "{ bonus bAtk,100; }",30,6000,BF_WEAPON,"{ active_transform 3222,6000; }"; }
+4677:4688,{ autobonus "{ bonus bAtk,100; }",30,6000,BF_WEAPON,"{ active_transform 3223,6000; }"; }
+4678:4686,{ autobonus "{ bonus bMatk,100; }",30,6000,BF_MAGIC,"{ active_transform 3224,6000; }"; }
+4679:4689,{ autobonus "{ bonus bAtk,100; }",30,6000,BF_WEAPON,"{ active_transform 3225,6000; }"; }
+4680:4690,{ autobonus "{ bonus bAtk,100; }",30,6000,BF_WEAPON,"{ active_transform 3240,6000; }"; }
+4681:4691,{ autobonus "{ bonus bAtk,100; }",30,6000,BF_WEAPON,"{ active_transform 3241,6000; }"; }
+4682:4694,{ autobonus "{ bonus bAtk,100; }",30,6000,BF_WEAPON,"{ active_transform 3244,6000; }"; }
+4683:4695,{ autobonus "{ bonus bAtk,100; }",30,6000,BF_WEAPON,"{ active_transform 3246,6000; }"; }
 4697:27012,{ bonus bNoMadoFuel; }
 4699:27012,{ bonus bNoMadoFuel; }
 4958:19050,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); if( .@r >= 7 ){ bonus bDelayrate,-1 - ( .@r > 9 ) ? 1 : 0; } }
@@ -448,7 +480,7 @@
 5070:18576,{ bonus2 bSkillAtk,"MO_TRIPLEATTACK",5; bonus2 bSkillAtk,"MO_COMBOFINISH",5; bonus2 bSkillAtk,"CH_TIGERFIST",3; bonus2 bSkillAtk,"CH_CHAINCRUSH",3; if( getequiprefinerycnt(EQI_HEAD_TOP) < 10 ) bonus bUseSPrate, getequiprefinerycnt(EQI_HEAD_TOP); }
 5073:5574,{ bonus bDex,2; bonus bDef,2; }
 5074:5653,{ bonus bStr,1; bonus bAspdRate,2; }
-5074:18827,{ autobonus "{ transform 1765,5000; bonus2 bHPLossRate,30,1000; bonus bHit,-10; bonus bSplashRange,1; }",10+getequiprefinerycnt(EQI_HEAD_TOP),5000,BF_WEAPON,"{ specialeffect2 EF_NONE; }"; }
+5074:18827,{ autobonus "{ bonus2 bHPLossRate,30,1000; bonus bHit,-10; bonus bSplashRange,1; }",10+getequiprefinerycnt(EQI_HEAD_TOP),5000,BF_WEAPON,"{ transform 1765,5000; }"; }
 5086:18527,{ bonus2 bAddItemHealRate,12192,200; }
 5086:18656,{ bonus2 bAddItemHealRate,538,100; bonus2 bAddItemHealRate,12192,100; bonus2 bAddMonsterDropItem,538,400; bonus2 bAddMonsterDropItem,12192,400; }
 5170:19024,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); if (.@r >= 7) bonus bAspdRate,5; if (.@r >= 9) bonus bMaxHPRate,5; }
@@ -472,11 +504,15 @@
 //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; }"; }
+13215:28224,{ bonus bLongAtkRate,30; }
+13332:15178:20821,{ bonus2 bSkillCooldown,"KO_HUUMARANKA",-1000; bonus bLongAtkRate,15; }
 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; }
+15073:20944,{ .@val = 30; .@eq = getequiprefinerycnt(EQI_ARMOR); if (.@eq >= 11) { .@val += 40; bonus bDelayrate,-10; } bonus bBaseAtk,.@val; }
+15074:20943,{ .@val = 30; .@eq = getequiprefinerycnt(EQI_ARMOR); if (.@eq >= 11) { .@val += 40; bonus bVariableCastrate,-20; } bonus bMatk,.@val; }
 15088:18816:18818,{ bonus bMatk,BaseLevel/3; bonus2 bExpAddClass,Class_All,5; }
 15088:18817:18819,{ bonus bBaseAtk,BaseLevel/3; bonus2 bExpAddClass,Class_All,5; }
 15090:18820:20721:22033,{ bonus2 bSubEle,Ele_Neutral,15; bonus3 bAutoSpellWhenHit,"WL_DRAINLIFE",3,1; }
@@ -500,6 +536,11 @@
 15156:20790:22085:28382:28418,{ bonus bMaxHPrate,20; bonus bMaxSPrate,20; bonus2 bSkillAtk,"SU_CN_METEOR",200; }
 15156:20790:22085:28380:28421,{ bonus bMaxHPrate,30; bonus bMaxSPrate,9; bonus2 bSkillAtk,"SU_LUNATICCARROTBEAT",200; }
 15156:20790:22085:28381:28415,{ bonus bMaxHPrate,25; bonus bMaxSPrate,15; bonus bHealPower,30; skill "AL_HEAL",9,1; }
+15176:18145:28441,{ bonus2 bSkillAtk,"AC_DOUBLE",50; bonus2 bSkillUseSP,"SC_TRIANGLESHOT",10; }
+15177:20820:28608,{ bonus5 bAutoSpell,"MG_FIREBALL",max(5,getskilllv("MG_FIREBALL")),50,BF_MAGIC,1; autobonus3 "{ bonus bMatk,50; }",1000,60000,"PF_DOUBLECASTING","{ specialeffect2 EF_ENCHANCE; }"; }
+15178:20821:28721,{ bonus2 bSkillAtk,"KO_BAKURETSU",20; bonus2 bSkillAtk,"KO_HAPPOKUNAI",50; }
+15179:20822:28116,{ bonus2 bAddClass,Class_All,5; bonus bAspdRate,10; bonus bCritAtkRate,10; }
+15180:26200:28442,{ bonus bBaseAtk,30; bonus bAspd,1; bonus bCritAtkRate,20; }
 15181:28443:28444,{ bonus bAtk,20; bonus2 bSubEle,Ele_All,2; bonus2 bSubEle,Ele_Neutral,-2; }
 15182:28445:28446,{ bonus bAtk,40; bonus2 bSubEle,Ele_All,4; bonus2 bSubEle,Ele_Neutral,-4; }
 15183:28447:28448,{ bonus bAtk,40; bonus2 bSubEle,Ele_All,4; bonus2 bSubEle,Ele_Neutral,-4; bonus2 bExpAddClass,Class_All,2; }
@@ -517,7 +558,18 @@
 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; }
+15212:22141,{ bonus bAspdRate,getequiprefinerycnt(EQI_SHOES); }
+15212:20856,{ bonus bDelayrate,-getequiprefinerycnt(EQI_GARMENT); }
+15212:20856:22141,{ if ((getequiprefinerycnt(EQI_ARMOR)+getequiprefinerycnt(EQI_GARMENT)+getequiprefinerycnt(EQI_SHOES)) >= 39) { autobonus "{ bonus bIgnoreDefClass,Class_Normal; bonus bIgnoreDefClass,Class_Boss; }",50,5000; } }
 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; } } }
+15376:22196,{ bonus2 bAddClass,Class_All,5; }
+15376:22197,{ bonus bMaxSPRate,5; }
+15376:20933,{ bonus bBaseAtk,50; }
+15376:20934,{ bonus bDelayrate,-10; }
+15377:20933,{ bonus bAspdRate,10; }
+15377:20934,{ bonus bMatk,50; }
+15377:22196,{ bonus bAspdRate,5; }
+15377:22197,{ bonus bMatkRate,5; }
 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; }
@@ -529,7 +581,7 @@
 18139:1756:19048,{ bonus bLongAtkRate,20; bonus2 bAddEff,Eff_Stone,-1000; if (getequiprefinerycnt(EQI_HAND_R) >= 10) bonus bAspd,1; }
 18139:19019,{ bonus bLongAtkRate,45; }
 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: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 */ } }
@@ -541,6 +593,7 @@
 18823:19246,{ .@atk = 40; .@aspd = 3; .@dmg = 2; .@agi = readparam(bAgi); if (.@agi > 107) { .@atk += 60; .@aspd += 5; .@dmg += 2; } if (.@agi > 119) { .@atk += 80; .@aspd += 7; .@dmg += 4; } bonus bBaseAtk,.@atk; bonus bAspdRate,.@aspd; bonus2 bSubRace,RC_Player,.@dmg; bonus2 bResEff,Eff_Blind,10000; bonus2 bResEff,Eff_Silence,10000; }
 18823:28372,{ bonus2 bSkillVariableCast,"CR_GRANDCROSS",-1500; bonus2 bSkillAtk,"LG_RAYOFGENESIS",BaseLevel/30 + BaseLevel; bonus2 bSkillUseSP,"LG_RAYOFGENESIS",-10; }
 18823:28551,{ bonus2 bSkillDelay,"LG_OVERBRAND",-2000; bonus bLongAtkRate,getskilllv("LG_CANNONSPEAR") * 2; bonus bLongAtkRate,getskilllv("LG_OVERBRAND") * 2; bonus2 bSkillAtk,"LG_CANNONSPEAR",30; bonus2 bSkillAtk,"LG_OVERBRAND",20; }
+18849:32237,{ .@r = getequiprefinerycnt(EQI_HEAD_TOP); bonus bFixedCast,-300; if (.@r > 0) { bonus bMatk,(10*.@r); if (.@r >= 7) { bonus2 bMagicAddRace,RC_DemiHuman,10; bonus2 bMagicAddRace,RC_Player,10; bonus2 bMagicAddRace,RC_Demon,10; if (.@r >= 9) { bonus2 bMagicAtkEle,Ele_Water,10; bonus2 bMagicAtkEle,Ele_Wind,10; bonus2 bMagicAtkEle,Ele_Earth,10; bonus2 bMagicAtkEle,Ele_Fire,10; bonus2 bMagicAtkEle,Ele_Neutral,10; if (.@r >= 11) { bonus2 bMagicAddClass,Class_Boss,20; } } } } }
 18867:1720,{ bonus bLongAtkRate,3+(getequiprefinerycnt(EQI_HAND_R) > 6 ? 5:0); }
 18937:28302,{ bonus bInt,8; bonus bMaxSPrate,5;}
 18937:28303,{ bonus bInt,8; bonus bBaseAtk,20;}
@@ -550,13 +603,17 @@
 18985:28321:28322,{ bonus2 bSkillAtk,"HT_BLITZBEAT",200; }
 18985:28322,{ bonus2 bSkillAtk,"SN_FALCONASSAULT",50; }
 18997:28326:28327,{ bonus bSpeedRate,10; bonus bBaseAtk,50; bonus bMatk,50; if(getequiprefinerycnt(EQI_HEAD_TOP)>=9){ bonus bMaxHPrate,10; bonus bMaxSPrate,50; } }
-19026:20756,{ .@r = getequiprefinerycnt(EQI_GARMENT); bonus2 bSPGainRace,RC_Fish,10; bonus3 bAddMonsterDropItem,551,RC_Fish,(5+.@r); bonus2 bAddItemHealRate,551,5; bonus bHPrecovRate,(5+.@r); }
+19026:20756,{ .@r = getequiprefinerycnt(EQI_GARMENT); bonus2 bSPGainRace,RC_Fish,10; bonus3 bAddMonsterDropItem,544,RC_Fish,(5+.@r); bonus3 bAddMonsterDropItem,551,RC_Fish,(5+.@r); bonus2 bAddItemHealRate,544,5*(1+.@r); bonus2 bAddItemHealRate,551,5*(1+.@r); }
 19026:22059,{ bonus2 bCriticalAddRace,RC_Fish,(10+getequiprefinerycnt(EQI_SHOES)); }
 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; } }
+19247:28762,{ bonus bMatk,50; .@eq = getequiprefinerycnt(EQI_HEAD_TOP); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { bonus bVariableCastrate,-10; } if ((.@eq + .@weapon) >= 18) { bonus2 bMagicAddSize,Size_Small,15; bonus2 bMagicAddSize,Size_Medium,15; if ((.@eq + .@weapon) >= 22) { autobonus "{ bonus bMatk,50; bonus2 bMagicAtkEle,Ele_Fire,20; }",5,10000,BF_MAGIC; /* unknown rate */ } } }
 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; } } }
+19344:32301,{ bonus bBaseAtk,30; .@eq = getequiprefinerycnt(EQI_HEAD_TOP); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { bonus2 bAddClass,Class_All,5; } if ((.@eq + .@weapon) >= 18) { bonus2 bSubSize,Size_Small,20; bonus2 bSubSize,Size_Medium,20; if ((.@eq + .@weapon) >= 22) { autobonus3 "{ bonus bBaseAtk,100; bonus bLongAtkRate,15; }",5,10000,"RL_FIREDANCE"; /* unknown rate */ } } }
+19428:20948:32238:32239,{ bonus bInt,5; bonus bMaxSPrate,10; bonus bDef,100; bonus2 bMagicAtkEle,Ele_Water,10; bonus2 bMagicAtkEle,Ele_Earth,10; bonus2 bMagicAtkEle,Ele_Neutral,10; .@head = getequiprefinerycnt(EQI_HEAD_TOP); .@garment = getequiprefinerycnt(EQI_GARMENT); if (.@head >= 7 && .@garment >= 7) { .@matk = 40; } if ((.@head + .@garment) >= 18) { .@matk += 40; bonus2 bMagicAtkEle,Ele_Ghost,15; bonus2 bMagicAtkEle,Ele_Wind,15; bonus2 bMagicAtkEle,Ele_Holy,15; if ((.@head + .@garment) >= 22) { bonus bMatkRate,10; bonus2 bIgnoreMdefRaceRate,RC_Formless,50; bonus2 bIgnoreMdefRaceRate,RC_Demon,50; bonus2 bIgnoreMdefRaceRate,RC_Brute,50; } } bonus bMatk,.@matk; }
 20135:20136,{ bonus bAllStats,12; }
+20701:2165,{ .@a = getequiprefinerycnt(EQI_GARMENT); .@b = getequiprefinerycnt(EQI_HAND_L); bonus2 bAddEle,Ele_Earth,.@b; bonus2 bSubRace,RC_Fish,.@a; }
 20717:22000,{ bonus bMaxHPRate,15; bonus bMaxSPRate,5; }
 20717:22001,{ bonus bMaxHPRate,15; bonus bMaxSPRate,5; }
 20717:22002,{ bonus bMaxHPRate,15; bonus bMaxSPRate,5; }
@@ -605,11 +662,19 @@
 20718:22116,{ bonus bMaxHPRate,15; bonus bMaxSPRate,5; }
 20718:22117,{ bonus bMaxHPRate,15; bonus bMaxSPRate,5; }
 20718:22118,{ bonus bMaxHPRate,15; bonus bMaxSPRate,5; }
+20725:2189,{ .@a = getequiprefinerycnt(EQI_GARMENT); autobonus "{ bonus2 bHPLossRate,30,1000; bonus bMatk,5*(.@a/3); }",30+.@a,10000,BF_MAGIC,"{ active_transform 1930,10000; specialeffect2 EF_POTION_BERSERK; /*Confirm Special Effect*/ }"; .@b = getequiprefinerycnt(EQI_HAND_L); if(.@b>=7) bonus2 bSubEle,Ele_All,2*.@b; }
+20783:4174,{ bonus2 bSubEle,Ele_Neutral,-50; }
 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; }
+20819:5397,{ bonus bAspd,1; bonus bNoCastCancel; }
 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; }
+20933:22196,{ bonus bCritAtkRate,10; }
+20933:22197,{ bonus bVariableCastrate,-10; }
+20934:22196,{ bonus bLongAtkRate,10; }
+20934:22197,{ bonus2 bMagicAtkEle,Ele_All,10; }
+21050:22190,{ bonus bLongAtkRate,3; .@eq = getequiprefinerycnt(EQI_SHOES); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { bonus bVariableCastrate,-10; } if ((.@eq + .@weapon) >= 18) { bonus bFixedCast,-500; if ((.@eq + .@weapon) >= 22) { bonus2 bSkillAtk,"RK_DRAGONBREATH",20; bonus2 bSkillAtk,"RK_DRAGONBREATH_WATER",20; } } }
 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; } }
@@ -636,11 +701,22 @@
 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; } }
+22171:13345,{ autobonus "{ bonus bStr,20; bonus bLongAtkRate,10; }",20,7000,BF_WEAPON; /* unknown rate */ }
+//22171:26154,{ autobonus "{ bonus bInt,20; bonus2 bMatkRate,15; }",20,7000,BF_MAGIC; /* unknown rate */ }
+22171:26155,{ autobonus "{ bonus bLuk,20; bonus2 bMatkRate,15; bonus2 bAddClass,Class_All,15; }",20,7000,BF_MAGIC|BF_WEAPON; /* unknown rate */ }
+22171:28255,{ autobonus "{ bonus bInt,20; bonus2 bMagicAtkEle,Ele_Ghost,10; }",20,7000,BF_MAGIC; /* unknown rate */ }
+22171:28256,{ autobonus "{ bonus bDex,20; bonus bLongAtkRate,10; }",20,7000,BF_WEAPON; /* unknown rate */ }
+22171:28257,{ autobonus "{ bonus bDex,20; bonus bLongAtkRate,10; }",20,7000,BF_WEAPON; /* unknown rate */ }
+22171:28258,{ autobonus "{ bonus bDex,20; bonus bLongAtkRate,10; }",20,7000,BF_WEAPON; /* unknown rate */ }
+//22171:28631,{ autobonus "{ bonus bStr,20; bonus2 bAddClass,Class_All,15; }",3,7000,BF_WEAPON; /* unknown rate */ }
+22171:28763:28764,{ autobonus "{ bonus bStr,20; bonus2 bAddClass,Class_All,10; }",20,7000,BF_WEAPON; /* unknown rate */ }
+22171:32302,{ autobonus "{ bonus bDex,20; bonus bLongAtkRate,10; }",20,7000,BF_WEAPON; /* unknown rate */ }
+22190:28254,{ bonus2 bAddClass,Class_All,10; .@eq = getequiprefinerycnt(EQI_SHOES); .@weapon = getequiprefinerycnt(EQI_HAND_R); if (.@eq >= 7 && .@weapon >= 7) { bonus bLongAtkRate,5; } if ((.@eq + .@weapon) >= 18) { bonus2 bSkillAtk,"RL_FIRE_RAIN",20; bonus2 bSkillCooldown,"RL_FIRE_RAIN",-2000; if ((.@eq + .@weapon) >= 22) { autobonus3 "{ bonus bBaseAtk,50; bonus2 bAddRace,RC_Brute,50; bonus2 bAddRace,RC_Demon,50; }",5,10000,"RL_R_TRIP"; /* unknown rate */ } } }
 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; } }
 24025:24028,{ .@r = getequiprefinerycnt(EQI_SHADOW_ARMOR) + getequiprefinerycnt(EQI_SHADOW_SHOES); bonus bMaxHP,.@r; bonus bMaxSP,.@r; if(.@r >= 15) { bonus bMaxHPrate,1; } }
-24026:24027,{ .@r = getequiprefinerycnt(EQI_SHADOW_ARMOR) + getequiprefinerycnt(EQI_SHADOW_SHIELD); bonus bDef,.@r; if(.@r >= 15) { bonus2 bSubEle,0,1; } }
+24026:24027,{ .@r = getequiprefinerycnt(EQI_SHADOW_ARMOR) + getequiprefinerycnt(EQI_SHADOW_SHIELD); bonus bDef,.@r; if(.@r >= 15) { bonus2 bSubEle,Ele_Neutral,1; } }
 24029:24031,{ .@r = getequiprefinerycnt(EQI_SHADOW_ARMOR) + getequiprefinerycnt(EQI_SHADOW_WEAPON); bonus bBaseAtk,.@r; if(.@r >= 15) { bonus bLongAtkRate,1; } }
 24030:24032,{ .@r = getequiprefinerycnt(EQI_SHADOW_ARMOR) + getequiprefinerycnt(EQI_SHADOW_WEAPON); bonus bCritical,.@r; bonus bBaseAtk,.@r; if(.@r >= 15) { bonus bCritAtkRate,1; } }
 24034:24040,{ bonus bLuk,1; }
@@ -699,7 +775,7 @@
 24168:24169:24177,{ bonus bMatk,5; if(getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L)>=25) bonus bIgnoreMDefRace,RC_Formless; }
 24168:24169:24178,{ bonus bMatk,5; if(getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L)>=25) bonus bIgnoreMDefRace,RC_Undead; }
 24168:24169:24179,{ bonus bMatk,5; if(getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L)>=25) bonus bIgnoreMDefRace,RC_Plant; }
-24180:24181:24182:24183:24184:24185,{ .@r = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_SHOES)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L); bonus bAllStats,1; if(.@r>=45) { bonus bMaxHPrate,(.@r-60); sc_start4 SC_ENDURE,1,10,0,0,1;} }
+24180:24181:24182:24183:24184:24185,{ .@r = getequiprefinerycnt(EQI_SHADOW_ARMOR)+getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_SHOES)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L); bonus bAllStats,1; if(.@r>=45) { bonus bMaxHPrate,(.@r-60); bonus bNoWalkDelay; } }
 24186:24198,{ bonus2 bSubEle,Ele_Neutral,2; }
 24187:24199,{ bonus2 bSubEle,Ele_Dark,2; }
 24188:24200,{ bonus2 bSubEle,Ele_Water,2; }
@@ -716,16 +792,16 @@
 24212:24213,{ bonus2 bExpAddRace,RC_All,((getequiprefinerycnt(EQI_SHADOW_SHOES)+getequiprefinerycnt(EQI_SHADOW_SHIELD))>=15?10:5); }
 24214:24215,{ bonus2 bExpAddRace,RC_All,((getequiprefinerycnt(EQI_SHADOW_SHOES)+getequiprefinerycnt(EQI_SHADOW_SHIELD))>=15?4:2); }
 24217:24218,{ if(getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L)>=15) bonus bAspd,1; }
-24223:24225:24226,{ .@r = getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L); if(.@r)>=25 {bonus2 bAddClass,Class_All,2;} else if(.@r)>=20 {bonus2 bAddClass,Class_All,1;} bonus2 bAddClass,Class_All,1; }
-24224:24225:24226,{ .@r = getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L); if(.@r)>=25 {bonus2 bAddClass,Class_All,2;} else if(.@r)>=20 {bonus2 bAddClass,Class_All,1;} bonus bAtk2,10; }
-24227:24229:24230,{ .@r = getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L); if(.@r)>=25 {bonus bMatkRate,2;} else if(.@r)>=20 {bonus bMatkRate,1;} bonus bMatkRate,1; }
-24228:24229:24230,{ .@r = getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L); if(.@r)>=25 {bonus bMatkRate,2;} else if(.@r)>=20 {bonus bMatkRate,1;} bonus bMatk,10; }
+24223:24225:24226,{ .@r = getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L); if(.@r>=25) {bonus2 bAddClass,Class_All,2;} else if(.@r>=20) {bonus2 bAddClass,Class_All,1;} bonus2 bAddClass,Class_All,1; }
+24224:24225:24226,{ .@r = getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L); if(.@r>=25) {bonus2 bAddClass,Class_All,2;} else if(.@r>=20) {bonus2 bAddClass,Class_All,1;} bonus bAtk2,10; }
+24227:24229:24230,{ .@r = getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L); if(.@r>=25) {bonus bMatkRate,2;} else if(.@r>=20) {bonus bMatkRate,1;} bonus bMatkRate,1; }
+24228:24229:24230,{ .@r = getequiprefinerycnt(EQI_SHADOW_WEAPON)+getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L); if(.@r>=25) {bonus bMatkRate,2;} else if(.@r>=20) {bonus bMatkRate,1;} bonus bMatk,10; }
 24231:24232,{ bonus bFlee,5; if (getequiprefinerycnt(EQI_SHADOW_SHOES)+getequiprefinerycnt(EQI_SHADOW_SHIELD)>=15) { bonus bAspd,1; } }
 24234:24235,{ bonus bBaseAtk,5; if (getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L)>=15) { bonus2 bAddSize,Size_Large,2; bonus2 bMagicAddSize,Size_Large,2; } }
 24236:24237,{ bonus bBaseAtk,5; if (getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L)>=15) { bonus2 bAddSize,Size_Medium,2; bonus2 bMagicAddSize,Size_Medium,2; } }
 24238:24239,{ bonus bBaseAtk,5; if (getequiprefinerycnt(EQI_SHADOW_ACC_R)+getequiprefinerycnt(EQI_SHADOW_ACC_L)>=15) { bonus2 bAddSize,Size_Small,2; bonus2 bMagicAddSize,Size_Small,2; } }
-24240:24241:24242,{ .@r = getequiprefinerycnt(EQI_SHADOW_SHOES)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_ARMOR); bonus bVariableCastrate,-.@r/5; if(.@r)>=25 { bonus bUseSPrate,-2; } else bonus bUseSPrate,-1; }
-24240:24241:24330,{ .@r = getequiprefinerycnt(EQI_SHADOW_SHOES)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_ARMOR); bonus bVariableCastrate,-.@r/5; if(.@r)>=25 { bonus bUseSPrate,-2; } else bonus bUseSPrate,-1; }
+24240:24241:24242,{ .@r = getequiprefinerycnt(EQI_SHADOW_SHOES)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_ARMOR); bonus bVariableCastrate,-.@r/5; if(.@r>=25) { bonus bUseSPrate,-2; } else bonus bUseSPrate,-1; }
+24240:24241:24330,{ .@r = getequiprefinerycnt(EQI_SHADOW_SHOES)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_ARMOR); bonus bVariableCastrate,-.@r/5; if(.@r>=25) { bonus bUseSPrate,-2; } else bonus bUseSPrate,-1; }
 24243:24244:24245,{ bonus bDelayrate,(getequiprefinerycnt(EQI_SHADOW_SHOES)+getequiprefinerycnt(EQI_SHADOW_SHIELD)+getequiprefinerycnt(EQI_SHADOW_ARMOR)>=25?-5:-1); }
 24246:24250,{ 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; } }
 24247:24251,{ 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; } }
@@ -748,8 +824,18 @@
 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; }
+27170:27171,{ bonus bStr,3; bonus2 bAddClass,Class_All,3; }
+27170:27172,{ bonus2 bAddSize,Size_Small,15; bonus2 bMagicAddSize,Size_Small,15; }
+27170:27173,{ bonus2 bSkillAtk,"GS_SPREADATTACK",50; }
+27171:27174,{ bonus2 bSkillAtk,"GS_RAPIDSHOWER",50; }
+27172:27175,{ bonus2 bAddSize,Size_Small,10; bonus2 bMagicAddSize,Size_Small,10; }
 27196:27199,{ bonus2 bMagicAddSize,Size_Small,5; bonus2 bMagicAddRace,RC_Brute,5; }
+27196:27331,{ bonus bDelayrate,-3; }
 27197:27198,{ bonus2 bAddSize,Size_Small,5; bonus2 bAddRace,RC_Brute,5; }
+27197:27333,{ bonus2 bAddClass,Class_All,5; }
+// 27321:27326,{ bonus bMaxHPrate,50; }
+27322:27323,{ bonus bMaxSPrate,5; bonus bMaxHPrate,5; }
+27324:27325,{ bonus2 bMagicAtkEle,Ele_Water,10; bonus2 bSubDefEle,Ele_Fire,10; }
 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; }
@@ -759,7 +845,9 @@
 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; } } }
+28763:28764,{ .@r = getequiprefinerycnt(EQI_HAND_R) + getequiprefinerycnt(EQI_HAND_L); bonus bBaseAtk,10*(.@r/3); bonus2 bAddClass,Class_All,2*(.@r/5); if (.@r >= 14) { .@val = 25; if (.@r >= 16) { bonus2 bSkillCooldown,"KO_JYUMONJIKIRI",-2000; if (.@r >= 18) { .@lvl = max(getskilllv("KG_KAGEHUMI"),getskilllv("OB_ZANGETSU")); skill "KG_KAGEHUMI",.@lvl; skill "OB_ZANGETSU",.@lvl; if (.@r >= 20) { .@val += 25; } } } bonus2 bSkillAtk,"KO_JYUMONJIKIRI",.@val; } }
 28906:2998,{ bonus bLongAtkRate,10; }
 28907:2998,{ bonus bSpeedRate,25; }
 28908:2998,{ bonus bDelayrate,-10; }
 28909:2998,{ bonus bUseSPrate,-10; bonus bMaxSPrate,10; }
+32238:32239,{ bonus bVariableCastrate,-10; bonus bMatkRate,10;  }

Файловите разлики са ограничени, защото са твърде много
+ 225 - 147
db/re/item_db.txt


+ 6 - 1
db/re/item_delay.txt

@@ -16,7 +16,7 @@
 //        12659 cannot be used when this delay is active.
 //     Since this is optional, default is -1 will ignores the
 //     delay group and the delay will be stored in character's
-//     data that has limit set in src/map/itemdb.h as MAX_ITEMDELAYS.
+//     data that has limit set in src/map/itemdb.hpp as MAX_ITEMDELAYS.
 
 // SC_REUSE_REFRESH
 12725,120000,SC_REUSE_REFRESH	//Runstone_Nosiege
@@ -93,4 +93,9 @@
 //12206,60000	//Luk_Dish10_
 //12207,60000	//Vit_Dish10_
 22508,1200000	//Para_Team_Mark_
+
+// Bed of Honor
+22687,5000,SC_REUSE_LIMIT_F	// Pieces_Of_Sentiment
+
 23277,180000	//Mado_Box
+

+ 6 - 0
db/re/item_flag.txt

@@ -8,6 +8,12 @@
 //  8 - Item will be bound item when equipped
 // 16 - Special Broadcast: When item dropped by monster and player loot it, will be broadcasted!
 // 32 - Item will not be removed on consumption. Also supports 'itemskill'
+// 64 - Item will be displayed with a client side defined drop
+// 128 - Item will be displayed with a white pillar drop effect
+// 256 - Item will be displayed with a blue pillar drop effect
+// 512 - Item will be displayed with a yellow pillar drop effect
+// 1024 - Item will be displayed with a purple pillar drop effect
+// 2048 - Item will be displayed with a orange pillar drop effect
 // NOTE: For removing flag by import file, use "-" to remove the flag. Example, 604,-1 will removes flag 1 from Branch_Of_Dead_Tree
 
 // Logged as Dead Branch item

Файловите разлики са ограничени, защото са твърде много
+ 265 - 117
db/re/item_trade.txt


+ 4 - 4
db/re/job_db1.txt

@@ -52,7 +52,7 @@
 // Super Novice
 23,	20000,0    ,500  ,100  ,40  ,55  ,57  ,200 ,200 ,200 ,50  ,200 ,50  ,55  ,65  ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,65  ,10
 // Gunslinger
-24,	28000,90   ,650  ,469  ,50  ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,45  ,55  ,50  ,90  ,100 ,200 ,200 ,6
+24,	28000,90   ,650  ,469  ,54  ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,49  ,59  ,54  ,94  ,104 ,200 ,200 ,6
 // Ninja
 25,	26000,75   ,500  ,540  ,40  ,43  ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,55  ,200 ,6
 // Novice High
@@ -270,7 +270,7 @@
 // Oboro
 4212,	26000,75   ,500  ,540  ,40  ,45  ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,50  ,200 ,3
 // Rebellion
-4215,	28000,90   ,650  ,469  ,50  ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,45  ,55  ,50  ,90  ,100 ,200 ,200 ,6
+4215,	28000,90   ,650  ,469  ,54  ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,49  ,59  ,54  ,94  ,104 ,200 ,200 ,6
 // Summoner
 4218,	20000,70   ,500  ,500  ,45  ,55  ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,55  ,200 ,200 ,200 ,200 ,43  ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,55  ,5
 // Baby Summoner
@@ -288,9 +288,9 @@
 // Baby Soul Linker
 4227,	24000,75   ,500  ,900  ,50  ,50  ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,53  ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,55  ,8
 // Baby Gunslinger
-4228,	28000,90   ,650  ,469  ,50  ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,45  ,55  ,50  ,90  ,100 ,200 ,200 ,6
+4228,	28000,90   ,650  ,469  ,54  ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,49  ,59  ,54  ,94  ,104 ,200 ,200 ,6
 // Baby Rebellion
-4229,	28000,90   ,650  ,469  ,50  ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,45  ,55  ,50  ,90  ,100 ,200 ,200 ,6
+4229,	28000,90   ,650  ,469  ,54  ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,49  ,59  ,54  ,94  ,104 ,200 ,200 ,6
 // Baby Star Gladiator (Union)
 4238,	28000,90   ,650  ,470  ,40  ,50  ,50  ,50  ,50  ,50  ,50  ,50  ,50  ,50  ,50  ,50  ,50  ,50  ,50  ,50  ,50  ,50  ,50  ,50  ,50  ,50  ,50  ,50  ,6
 // Star Emperor

Файловите разлики са ограничени, защото са твърде много
+ 849 - 849
db/re/mob_db.txt


+ 5 - 0
db/re/mob_race2_db.txt

@@ -34,3 +34,8 @@ RC2_SCARABA,2083,2084,2085,2086,2087,2088,2089,2090,2091,2144,2145,2161,2162,216
 RC2_OGH_ATK_DEF,2475,2476
 // Old Glast Heim - SC_GLASTHEIM_HIDDEN
 RC2_OGH_HIDDEN,2337,2343//,2495
+// Nightmare Biolab - SC_LHZ_DUN_N
+RC2_BIO5_SWORDMAN_THIEF,1640,2228,3213,3219,3226,3233,1641,2232,3208,3214,3230,3237					// Swordman, Thief monsters
+RC2_BIO5_ACOLYTE_MERCHANT,1643,2231,3209,3215,3229,3236,1642,2229,3212,3218,3227,3234				// Acolyte, Merchant monsters
+RC2_BIO5_MAGE_ARCHER,1645,2230,3210,3216,3228,3235,3211,1644,2233,2234,3217,3231,3232,3238,3239		// Mage, Archer monsters
+RC2_BIO5_MVP,3220,3221,3222,3223,3224,3225,3240,3241,3242,3243,3244,3245,3246						// MvPs

+ 667 - 0
db/re/mob_skill_db.txt

@@ -10954,6 +10954,31 @@
 2923,Owl Marquees@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3695,,,,,
 2923,Owl Marquees@NPC_SUMMONSLAVE,idle,196,2,10000,2000,60000,no,self,slavele,0,2922,,,,,,
 
+// Devil Tower Memorial
+2939,Evil Shadow@NPC_PIERCINGATT,chase,158,1,4000,0,5000,yes,target,always,0,,,,,,,
+2939,Evil Shadow@NPC_CURSEATTACK,attack,181,5,3500,0,20000,yes,target,always,0,,,,,,,
+2940,Evil Shadow@NPC_DARKSTRIKE,attack,340,1,3000,0,5000,yes,target,always,0,,,,,,,
+2941,Evil Shadow@NPC_CRITICALSLASH,chase,170,1,3000,0,5000,yes,target,always,0,,,,,,,
+2941,Evil Shadow@NPC_PETRIFYATTACK,attack,180,5,3500,0,5000,yes,target,always,0,,,,,,,
+2942,Evil Fanatics@NPC_INVINCIBLE,idle,685,1,10000,0,20000,yes,self,myhpltmaxrate,100,,,,,,,42
+2942,Evil Fanatics@NPC_INVINCIBLE,attack,685,1,10000,0,20000,yes,self,myhpltmaxrate,100,,,,,,,42
+2942,Evil Fanatics@NPC_INVINCIBLE,attack,685,1,10000,0,20000,yes,self,myhpltmaxrate,90,,,,,,,42
+2942,Evil Fanatics@NPC_INVINCIBLE,attack,685,1,10000,0,20000,yes,self,myhpltmaxrate,80,,,,,,,42
+2942,Evil Fanatics@NPC_INVINCIBLE,attack,685,1,10000,0,20000,yes,self,myhpltmaxrate,70,,,,,,,42
+2942,Evil Fanatics@NPC_INVINCIBLE,attack,685,1,10000,0,20000,yes,self,myhpltmaxrate,60,,,,,,,42
+2942,Evil Fanatics@NPC_INVINCIBLE,attack,685,1,10000,0,20000,yes,self,myhpltmaxrate,50,,,,,,,42
+2942,Evil Fanatics@NPC_INVINCIBLE,attack,685,1,10000,0,20000,yes,self,myhpltmaxrate,40,,,,,,,42
+2942,Evil Fanatics@NPC_INVINCIBLE,attack,685,1,10000,0,20000,yes,self,myhpltmaxrate,30,,,,,,,42
+2942,Evil Fanatics@NPC_INVINCIBLE,attack,685,1,10000,0,20000,yes,self,myhpltmaxrate,20,,,,,,,42
+2942,Evil Fanatics@NPC_INVINCIBLE,attack,685,1,10000,0,20000,yes,self,myhpltmaxrate,10,,,,,,,42
+// 2942,Evil Fanatics@NPC_DANCINGBLADE,attack,713,1,1000,0,15000,yes,self,always,0,,,,,,,
+// 2942,Evil Fanatics@NPC_PULSESTRIKE2,attack,712,1,800,0,15000,yes,self,always,0,,,,,,,
+// 2942,Evil Fanatics@NPC_DARKPIERCING,attack,715,1,2500,0,60000,yes,self,always,0,,,,,,,
+2943,Icemine@NPC_INVISIBLE,idle,353,1,10000,0,300000,no,self,always,0,,,,,,,
+2943,Icemine@NPC_ICEMINE,idle,709,1,10000,0,300000,no,self,always,,,,,,,,
+2960,Flamecross@NPC_INVISIBLE,idle,353,1,10000,0,300000,no,self,always,0,,,,,,,
+2960,Flamecross@NPC_FLAMECROSS,idle,711,1,10000,0,300000,no,self,always,,,,,,,,
+
 // Ghost Palace Memorial
 2948,Cursed Soldier@NPC_BLINDATTACK,attack,177,5,500,0,5000,no,target,always,0,,,,,,,
 2948,Cursed Soldier@AC_DOUBLE,attack,46,5,500,0,5000,no,target,always,0,,,,,,,
@@ -11180,6 +11205,644 @@
 3200,Wicked Chimera@CR_AUTOGUARD,attack,249,5,500,0,300000,yes,self,always,0,,,,,,,
 3200,Wicked Chimera@CR_AUTOGUARD,chase,249,5,2000,0,300000,yes,self,longrangeattacked,,,,,,,,
 
+// Nightmare Biolab
+3208,V_EREMES@AS_VENOMDUST,idle,140,1,200,0,50000,yes,target,always,,,,,,,29,
+3208,V_EREMES@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3208,V_EREMES@AS_GRIMTOOTH,chase,137,5,200,0,0,yes,target,always,,,,,,,,
+3208,V_EREMES@AS_CLOAKING,chase,135,1,200,200,10000,yes,self,always,,,,,,,,
+3208,V_EREMES@AS_GRIMTOOTH,chase,137,5,1000,0,0,yes,target,skillused,18,,,,,,6,
+3208,V_EREMES@ASC_BREAKER,chase,379,10,200,0,10000,yes,target,always,,,,,,,,
+3208,V_EREMES@ASC_METEORASSAULT,attack,406,10,200,1000,10000,no,self,always,,,,,,,,
+3208,V_EREMES@AS_SONICBLOW,attack,136,8,100,0,10000,yes,target,always,,,,,,,6,
+3208,V_EREMES@AS_VENOMDUST,attack,140,1,200,0,50000,yes,target,always,,,,,,,29,
+3208,V_EREMES@NPC_MAXPAIN,attack,716,5,300,1000,60000,no,self,always,,,,,,,,
+3208,V_EREMES@NPC_POISONATTACK,attack,188,5,100,0,10000,yes,target,always,,,,,,,,
+// 3208,V_EREMES@NPC_VENOMIMPRESS,attack,738,1,200,0,30000,yes,target,always,,,,,,,,
+3208,V_EREMES@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,1645,,,,,,
+3208,V_EREMES@NPC_STOP,attack,342,1,100,0,10000,yes,target,always,,,,,,,,
+3209,V_MAGALETA@HP_ASSUMPTIO,idle,361,5,1000,1000,10000,no,self,myhpltmaxrate,99,,,,,,,
+3209,V_MAGALETA@HP_ASSUMPTIO,idle,361,5,1000,1000,10000,no,friend,friendhpltmaxrate,99,,,,,,,
+3209,V_MAGALETA@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3209,V_MAGALETA@AL_PNEUMA,idle,25,1,1000,0,0,yes,self,longrangeattacked,,,,,,,,
+3209,V_MAGALETA@PR_LEXDIVINA,idle,76,10,1000,0,10000,yes,target,casttargeted,,,,,,,18,
+// 3209,V_MAGALETA@NPC_CHEAL,idle,729,5,300,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,3,
+3209,V_MAGALETA@AL_HEAL,idle,28,9,300,0,2000,yes,self,myhpltmaxrate,99,,,,,,3,
+3209,V_MAGALETA@HP_ASSUMPTIO,chase,361,5,1000,1000,10000,no,self,myhpltmaxrate,99,,,,,,,
+3209,V_MAGALETA@HP_ASSUMPTIO,chase,361,5,1000,1000,10000,no,friend,friendhpltmaxrate,99,,,,,,,
+3209,V_MAGALETA@AL_DECAGI,chase,30,10,200,0,10000,yes,target,always,,,,,,,,
+3209,V_MAGALETA@NPC_MAXPAIN,chase,716,5,1000,1000,60000,no,self,longrangeattacked,,,,,,,19,
+3209,V_MAGALETA@PR_LEXDIVINA,chase,76,10,500,0,10000,yes,target,casttargeted,,,,,,,18,
+3209,V_MAGALETA@PR_LEXAETERNA,chase,78,1,100,0,10000,yes,target,always,,,,,,,29,
+3209,V_MAGALETA@AL_HEAL,chase,28,9,300,0,2000,yes,friend,friendhpltmaxrate,99,,,,,,3,
+3209,V_MAGALETA@AL_HEAL,chase,28,9,300,0,2000,yes,self,myhpltmaxrate,99,,,,,,3,
+3209,V_MAGALETA@AL_PNEUMA,attack,25,1,500,0,10000,yes,self,longrangeattacked,,,,,,,19,
+3209,V_MAGALETA@AL_INCAGI,attack,29,10,200,0,240000,yes,self,always,,,,,,,2,
+3209,V_MAGALETA@MG_SAFETYWALL,attack,12,10,100,0,10000,yes,self,always,,,,,,,,
+3209,V_MAGALETA@PR_LEXAETERNA,attack,78,1,100,0,10000,yes,target,always,,,,,,,29,
+3209,V_MAGALETA@NPC_HOLYATTACK,attack,189,10,100,0,10000,yes,target,always,,,,,,,,
+// 3209,V_MAGALETA@NPC_CHEAL,attack,729,5,200,0,3000,yes,friend,friendhpltmaxrate,99,,,,,,3,
+// 3209,V_MAGALETA@NPC_CHEAL,attack,729,5,200,0,3000,yes,self,myhpltmaxrate,99,,,,,,3,
+3209,V_MAGALETA@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,1640,,,,,,
+// 3209,V_MAGALETA@NPC_LEX_AETERNA,attack,727,2,300,500,5000,no,target,always,,,,,,,,
+3209,V_MAGALETA@NPC_WIDESILENCE,attack,663,2,300,500,5000,no,self,always,,,,,,,,
+3210,V_KATRINN@MG_SIGHT,idle,10,1,200,0,10000,yes,self,always,,,,,,,,
+3210,V_KATRINN@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3210,V_KATRINN@WZ_JUPITEL,chase,84,10,300,0,10000,yes,target,always,,,,,,,,
+3210,V_KATRINN@WZ_WATERBALL,chase,86,5,300,0,10000,yes,target,always,,,,,,,,
+3210,V_KATRINN@NPC_DARKSTRIKE,chase,340,10,300,0,10000,yes,target,always,,,,,,,,
+3210,V_KATRINN@MG_FIREWALL,chase,18,10,300,0,10000,yes,target,always,,,,,,,,
+3210,V_KATRINN@MG_FROSTDIVER,chase,15,10,300,0,10000,yes,target,always,,,,,,,,
+3210,V_KATRINN@HW_NAPALMVULCAN,chase,400,5,300,0,10000,yes,target,always,,,,,,,,
+3210,V_KATRINN@WZ_FROSTNOVA,chase,88,10,300,0,10000,yes,target,longrangeattacked,,,,,,,,
+3210,V_KATRINN@WL_EARTHSTRAIN,chase,2216,5,300,0,10000,yes,target,always,,,,,,,,
+3210,V_KATRINN@WZ_QUAGMIRE,chase,92,5,300,0,10000,yes,target,always,,,,,,,,
+3210,V_KATRINN@HW_GANBANTEIN,attack,483,1,300,0,10000,yes,target,always,,,,,,,,
+3210,V_KATRINN@NPC_DARKTHUNDER,attack,341,10,300,0,10000,yes,target,always,,,,,,,,
+3210,V_KATRINN@WZ_WATERBALL,attack,86,5,300,0,10000,yes,target,always,,,,,,,,
+3210,V_KATRINN@NPC_WIDEFREEZE,attack,664,3,300,500,10000,no,self,always,,,,,,,,
+3210,V_KATRINN@NPC_DARKSTRIKE,attack,340,10,300,0,10000,yes,target,always,,,,,,,,
+3210,V_KATRINN@WL_TETRAVORTEX,attack,2217,2,300,500,10000,no,target,always,,,,,,,,
+3210,V_KATRINN@WZ_JUPITEL,attack,84,10,300,0,10000,yes,target,always,,,,,,,,
+3210,V_KATRINN@WL_EARTHSTRAIN,attack,2216,3,300,500,10000,no,target,always,,,,,,,,
+3210,V_KATRINN@WZ_SIGHTRASHER,attack,81,10,300,0,10000,yes,self,always,,,,,,,,
+3210,V_KATRINN@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,1641,,,,,,
+3210,V_KATRINN@MG_SAFETYWALL,attack,12,10,300,0,10000,no,self,always,,,,,,,,
+3211,V_SHECIL@NPC_AGIUP,idle,350,1,1000,0,35000,yes,self,always,,,,,,,,
+3211,V_SHECIL@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3211,V_SHECIL@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
+3211,V_SHECIL@AC_DOUBLE,attack,46,10,200,0,3000,yes,target,always,,,,,,,6,
+3211,V_SHECIL@AC_CHARGEARROW,attack,148,1,100,0,3000,yes,target,always,,,,,,,6,
+3211,V_SHECIL@NPC_CRITICALWOUND,attack,673,1,100,0,10000,no,target,always,,,,,,,5,
+3211,V_SHECIL@NPC_AGIUP,attack,350,1,200,0,25000,yes,self,always,,,,,,,,
+3211,V_SHECIL@SN_SHARPSHOOTING,attack,382,5,300,500,1500,no,target,always,,,,,,,,
+3211,V_SHECIL@NPC_BLEEDING,attack,660,5,50,0,10000,yes,target,always,,,,,,,,
+3211,V_SHECIL@NPC_WIDECURSE,attack,677,3,100,0,10000,yes,self,always,,,,,,,,
+3211,V_SHECIL@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,1642,,,,,,
+// 3211,V_SHECIL@NPC_ARROWSTORM,attack,728,3,300,500,7000,no,target,always,,,,,,,,
+3212,V_HARWORD@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3212,V_HARWORD@NPC_EARTHQUAKE,chase,653,5,500,500,10000,no,self,always,,,,,,,,
+3212,V_HARWORD@BS_ADRENALINE,attack,111,10,200,0,150000,yes,self,always,,,,,,,,
+3212,V_HARWORD@BS_MAXIMIZE,attack,114,1,100,0,60000,yes,self,always,,,,,,,,
+3212,V_HARWORD@MC_MAMMONITE,attack,42,9,200,0,10000,yes,target,always,,,,,,,23,
+3212,V_HARWORD@NPC_HELMBRAKE,attack,345,5,200,0,10000,yes,target,always,,,,,,,,
+3212,V_HARWORD@NPC_POWERUP,attack,349,1,200,0,100000,yes,self,always,,,,,,,,
+3212,V_HARWORD@NPC_SPLASHATTACK,attack,174,1,500,0,0,yes,target,attackpcge,2,,,,,,,
+3212,V_HARWORD@NPC_ARMORBRAKE,attack,344,10,100,0,10000,yes,target,always,,,,,,,19,
+3212,V_HARWORD@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,1644,,,,,,
+3212,V_HARWORD@NPC_WIDESTUN,attack,678,2,100,1000,10000,no,self,always,,,,,,,,
+// 3212,V_HARWORD@NPC_MAGMA_ERUPTION,attack,733,3,500,1000,10000,no,target,always,,,,,,,,
+3213,V_SEYREN@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3213,V_SEYREN@SM_PROVOKE,chase,6,10,100,0,10000,yes,target,always,,,,,,,29,
+3213,V_SEYREN@KN_SPEARBOOMERANG,chase,59,5,500,0,0,yes,target,longrangeattacked,,,,,,,6,
+3213,V_SEYREN@SM_ENDURE,chase,8,10,200,0,30000,yes,self,always,,,,,,,,
+3213,V_SEYREN@SM_BASH,attack,5,10,100,0,10000,yes,target,always,,,,,,,,
+3213,V_SEYREN@SM_MAGNUM,attack,7,9,100,0,0,yes,self,attackpcge,2,,,,,,,
+3213,V_SEYREN@NPC_POWERUP,attack,349,1,200,0,30000,yes,self,always,,,,,,,,
+3213,V_SEYREN@LK_SPIRALPIERCE,attack,397,5,200,0,10000,yes,target,always,,,,,,,,
+3213,V_SEYREN@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,1643,,,,,,
+3213,V_SEYREN@NPC_CRITICALWOUND,attack,673,2,200,0,10000,no,target,always,,,,,,,5,
+// 3213,V_SEYREN@NPC_DRAGONBREATH,attack,731,8,400,500,5000,no,target,always,,,,,,,,
+// 3213,V_SEYREN@NPC_DRAGONBREATH,attack,731,3,400,500,5000,no,target,always,,,,,,,,
+3213,V_SEYREN@NPC_MAXPAIN,attack,716,5,100,1000,60000,no,self,always,,,,,,,,
+3213,V_SEYREN@NPC_EARTHQUAKE,attack,653,5,500,1000,6000,no,self,always,,,,,,,,
+3213,V_SEYREN@NPC_WIDEBLEEDING,attack,665,2,100,1000,10000,no,self,always,,,,,,,,
+3214,V_G_EREMES@AS_VENOMDUST,idle,140,1,200,0,10000,yes,target,always,,,,,,,29,
+3214,V_G_EREMES@AS_GRIMTOOTH,chase,137,5,200,0,0,yes,target,always,,,,,,,,
+3214,V_G_EREMES@AS_GRIMTOOTH,chase,137,5,1000,0,0,yes,target,skillused,18,,,,,,6,
+3214,V_G_EREMES@ASC_BREAKER,chase,379,10,200,0,10000,yes,target,always,,,,,,,,
+3214,V_G_EREMES@NPC_INVISIBLE,chase,353,1,200,0,30000,yes,self,always,,,,,,,,
+3214,V_G_EREMES@NPC_INVISIBLE,attack,353,1,200,0,30000,yes,self,always,,,,,,,,
+3214,V_G_EREMES@NPC_AGIUP,attack,350,5,200,0,25000,yes,self,always,,,,,,,,
+3214,V_G_EREMES@AS_SONICBLOW,attack,136,10,200,0,10000,yes,target,always,,,,,,,6,
+3214,V_G_EREMES@ASC_METEORASSAULT,attack,406,10,200,0,10000,yes,self,always,,,,,,,,
+3214,V_G_EREMES@NPC_POISONATTACK,attack,188,10,100,500,10000,no,target,always,,,,,,,,
+3214,V_G_EREMES@AS_VENOMDUST,attack,140,1,200,0,10000,yes,target,always,,,,,,,29,
+3214,V_G_EREMES@NPC_MAXPAIN,attack,716,7,300,1000,30000,no,self,always,,,,,,,,
+3214,V_G_EREMES@NPC_DRAGONFEAR,attack,659,1,100,0,10000,yes,self,always,,,,,,,,
+3214,V_G_EREMES@NPC_VENOMFOG,attack,706,2,100,2000,30000,no,self,always,,,,,,,,
+// 3214,V_G_EREMES@NPC_VENOMIMPRESS,attack,738,4,100,0,30000,yes,target,always,,,,,,,,
+3215,V_G_MAGALETA@HP_ASSUMPTIO,idle,361,5,1000,1000,10000,no,self,myhpltmaxrate,99,,,,,,,
+3215,V_G_MAGALETA@HP_ASSUMPTIO,idle,361,5,1000,1000,10000,no,friend,friendhpltmaxrate,99,,,,,,,
+3215,V_G_MAGALETA@AL_PNEUMA,idle,25,1,1000,0,0,yes,self,longrangeattacked,,,,,,,,
+3215,V_G_MAGALETA@PR_LEXDIVINA,idle,76,10,1000,0,10000,yes,target,casttargeted,,,,,,,18,
+// 3215,V_G_MAGALETA@NPC_CHEAL,idle,729,5,300,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
+// 3215,V_G_MAGALETA@NPC_CHEAL,idle,729,5,300,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
+// 3215,V_G_MAGALETA@NPC_LEX_AETERNA,chase,727,3,100,3000,10000,no,target,always,,,,,,,29,
+3215,V_G_MAGALETA@HP_ASSUMPTIO,chase,361,5,1000,1000,10000,no,self,myhpltmaxrate,99,,,,,,,
+3215,V_G_MAGALETA@HP_ASSUMPTIO,chase,361,5,1000,1000,10000,no,friend,friendhpltmaxrate,99,,,,,,,
+3215,V_G_MAGALETA@AL_INCAGI,chase,29,10,200,0,240000,yes,self,always,,,,,,,2,
+3215,V_G_MAGALETA@AL_DECAGI,chase,30,10,200,0,10000,yes,target,always,,,,,,,,
+3215,V_G_MAGALETA@NPC_WIDESILENCE,chase,663,2,500,0,10000,yes,target,casttargeted,,,,,,,18,
+3215,V_G_MAGALETA@AL_PNEUMA,chase,25,1,500,0,10000,yes,self,longrangeattacked,,,,,,,19,
+3215,V_G_MAGALETA@AL_HEAL,chase,28,10,300,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
+3215,V_G_MAGALETA@AL_HEAL,chase,28,10,300,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
+3215,V_G_MAGALETA@AL_INCAGI,attack,29,10,200,0,240000,yes,self,always,,,,,,,2,
+3215,V_G_MAGALETA@MG_SAFETYWALL,attack,12,10,100,0,10000,yes,self,always,,,,,,,,
+3215,V_G_MAGALETA@AL_PNEUMA,attack,25,1,500,0,10000,yes,self,longrangeattacked,,,,,,,19,
+3215,V_G_MAGALETA@NPC_WIDESILENCE,attack,663,5,500,1000,6000,no,target,casttargeted,,,,,,,18,
+// 3215,V_G_MAGALETA@NPC_LEX_AETERNA,attack,727,5,300,1000,6000,no,target,always,,,,,,,29,
+// 3215,V_G_MAGALETA@NPC_CHEAL,attack,729,5,100,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
+// 3215,V_G_MAGALETA@NPC_CHEAL,attack,729,5,100,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
+3215,V_G_MAGALETA@NPC_MAXPAIN,attack,716,7,300,1000,30000,no,self,always,,,,,,,,
+3215,V_G_MAGALETA@NPC_ALLHEAL,attack,687,1,100,3000,60000000,no,self,myhpltmaxrate,10,,,,,,,
+3215,V_G_MAGALETA@NPC_SLOWCAST,attack,672,5,100,0,240000,yes,self,always,,,,,,,,
+// 3216,V_G_KATRINN@NPC_STORMGUST2,idle,723,3,100,3000,10000,no,target,always,,,,,,,,
+3216,V_G_KATRINN@MG_SIGHT,idle,10,1,50,0,10000,yes,self,always,,,,,,,,
+3216,V_G_KATRINN@MG_SIGHT,idle,10,1,1000,0,10000,yes,self,skillused,137,,,,,,,
+3216,V_G_KATRINN@NPC_WIDEFREEZE,chase,664,5,300,3000,10000,no,self,always,,,,,,,,
+3216,V_G_KATRINN@HW_NAPALMVULCAN,chase,400,5,200,1000,2000,no,target,always,,,,,,,,
+// 3216,V_G_KATRINN@NPC_STORMGUST2,chase,723,3,300,1000,10000,no,target,always,,,,,,,,
+3216,V_G_KATRINN@WZ_VERMILION,chase,85,10,300,1000,10000,no,target,always,,,,,,,,
+3216,V_G_KATRINN@WZ_METEOR,chase,83,10,300,1000,10000,no,target,always,,,,,,,,
+3216,V_G_KATRINN@NPC_COMET,attack,708,5,300,1000,7000,no,self,always,,,,,,,,
+// 3216,V_G_KATRINN@NPC_STORMGUST2,attack,723,3,200,1000,10000,no,target,always,,,,,,,,
+3216,V_G_KATRINN@NPC_WIDESTONE,attack,666,1,200,1000,10000,no,self,always,,,,,,,,
+3216,V_G_KATRINN@HW_GANBANTEIN,attack,483,1,300,500,10000,no,target,always,,,,,,,,
+3216,V_G_KATRINN@WL_EARTHSTRAIN,attack,2216,5,300,1000,7000,no,target,always,,,,,,,,
+3216,V_G_KATRINN@WZ_JUPITEL,attack,84,10,200,1000,10000,no,target,always,,,,,,,,
+3216,V_G_KATRINN@WL_TETRAVORTEX,attack,2217,5,300,1000,7000,no,target,always,,,,,,,,
+3216,V_G_KATRINN@NPC_WIDEFREEZE,attack,664,5,200,1000,10000,no,self,always,,,,,,,,
+3217,V_G_SHECIL@NPC_AGIUP,idle,350,1,1000,0,600000,yes,self,always,,,,,,,,
+3217,V_G_SHECIL@NPC_EXPULSION,attack,674,1,10,3000,10000,no,target,always,,,,,,,,
+3217,V_G_SHECIL@AC_CHARGEARROW,attack,148,1,200,0,3000,yes,target,always,,,,,,,6,
+3217,V_G_SHECIL@NPC_POWERUP,attack,349,5,200,0,100000,yes,self,always,,,,,,,,
+3217,V_G_SHECIL@AC_DOUBLE,attack,46,10,200,0,3000,yes,target,always,,,,,,,6,
+3217,V_G_SHECIL@NPC_AGIUP,attack,350,5,200,0,30000,yes,self,always,,,,,,,,
+3217,V_G_SHECIL@NPC_WIDECURSE,attack,677,5,100,1000,10000,yes,self,always,,,,,,,,
+3217,V_G_SHECIL@NPC_CRITICALWOUND,attack,673,1,100,0,10000,no,target,always,,,,,,,5,
+3217,V_G_SHECIL@SN_SHARPSHOOTING,attack,382,5,300,500,1500,no,target,always,,,,,,,,
+3217,V_G_SHECIL@NPC_WIDECONFUSE,attack,667,5,1000,1000,20000,no,target,myhpltmaxrate,30,,,,,,,
+// 3217,V_G_SHECIL@NPC_ARROWSTORM,attack,728,5,300,500,7000,no,target,always,,,,,,,,
+3218,V_G_HARWORD@NPC_SELFDESTRUCTION,attack,173,1,200,2000,0,no,self,myhpltmaxrate,10,,,,,,,
+3218,V_G_HARWORD@BS_ADRENALINE,attack,111,10,200,0,150000,yes,self,always,,,,,,,,
+3218,V_G_HARWORD@BS_MAXIMIZE,attack,114,1,100,0,60000,yes,self,always,,,,,,,,
+3218,V_G_HARWORD@MC_MAMMONITE,attack,42,10,200,0,10000,yes,target,always,,,,,,,23,
+3218,V_G_HARWORD@BS_HAMMERFALL,attack,110,10,200,0,30000,yes,target,always,,,,,,,,
+3218,V_G_HARWORD@NPC_POWERUP,attack,349,5,200,0,100000,yes,self,always,,,,,,,,
+3218,V_G_HARWORD@NPC_SPLASHATTACK,attack,174,1,100,0,0,yes,target,attackpcge,2,,,,,,,
+3218,V_G_HARWORD@NPC_HELMBRAKE,attack,345,10,100,0,10000,yes,target,always,,,,,,,19,
+3218,V_G_HARWORD@NPC_EARTHQUAKE,attack,653,7,300,1000,60000,yes,self,always,,,,,,,,
+3218,V_G_HARWORD@NPC_WIDESTUN,attack,678,4,100,1000,20000,no,self,always,,,,,,,,
+3218,V_G_HARWORD@NPC_PULSESTRIKE,attack,661,5,100,1000,1000,no,self,always,,,,,,,,
+3218,V_G_HARWORD@NPC_MAXPAIN,attack,716,7,300,1000,30000,no,self,always,,,,,,,,
+// 3218,V_G_HARWORD@NPC_MAGMA_ERUPTION,attack,733,5,500,1000,10000,no,target,always,,,,,,,,
+3219,V_G_SEYREN@KN_SPEARBOOMERANG,chase,59,5,1000,0,0,yes,target,skillused,18,,,,,,6,
+3219,V_G_SEYREN@SM_PROVOKE,chase,6,10,100,0,10000,yes,target,always,,,,,,,29,
+3219,V_G_SEYREN@SM_ENDURE,chase,8,10,500,0,30000,yes,self,longrangeattacked,,,,,,,6,
+// 3219,V_G_SEYREN@NPC_DARKPIERCING,chase,715,1,100,0,10000,yes,target,always,,,,,,,,
+3219,V_G_SEYREN@KN_TWOHANDQUICKEN,attack,60,10,1000,0,300000,yes,self,always,,,,,,,2,
+3219,V_G_SEYREN@LK_SPIRALPIERCE,attack,397,5,200,0,10000,yes,target,always,,,,,,,,
+3219,V_G_SEYREN@NPC_POWERUP,attack,349,5,200,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+// 3219,V_G_SEYREN@NPC_DRAGONBREATH,attack,731,5,300,500,10000,no,target,always,,,,,,,,
+// 3219,V_G_SEYREN@NPC_DRAGONBREATH,attack,731,10,300,500,10000,no,target,always,,,,,,,,
+3219,V_G_SEYREN@NPC_PULSESTRIKE,attack,661,5,200,1000,30000,no,self,always,,,,,,,,
+3219,V_G_SEYREN@NPC_MAXPAIN,attack,716,7,300,1000,30000,no,self,always,,,,,,,,
+3219,V_G_SEYREN@NPC_EARTHQUAKE,attack,653,10,500,0,6000,yes,self,rudeattacked,,,,,,,,
+3219,V_G_SEYREN@NPC_WIDEBLEEDING,attack,665,3,100,2000,10000,no,self,always,,,,,,,,
+3220,V_B_EREMES@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3220,V_B_EREMES@NPC_CALLSLAVE,idle,352,1,500,0,10000,yes,self,always,,,,,,,,
+3220,V_B_EREMES@NPC_SUMMONSLAVE,idle,196,1,1000,700,10000,no,self,slavele,3,3219,3218,3215,3216,3217,,
+3220,V_B_EREMES@NPC_MAXPAIN,idle,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3220,V_B_EREMES@NPC_MAXPAIN,chase,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3220,V_B_EREMES@AS_GRIMTOOTH,chase,137,5,200,0,0,yes,target,always,,,,,,,,
+3220,V_B_EREMES@ASC_BREAKER,chase,379,10,200,0,10000,yes,target,always,,,,,,,,
+3220,V_B_EREMES@AS_GRIMTOOTH,chase,137,5,1000,0,0,yes,target,skillused,18,,,,,,6,
+3220,V_B_EREMES@NPC_INVISIBLE,chase,353,1,200,0,30000,yes,self,always,,,,,,,,
+3220,V_B_EREMES@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
+3220,V_B_EREMES@NPC_MAXPAIN,attack,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3220,V_B_EREMES@NPC_CALLSLAVE,attack,352,1,500,0,10000,yes,self,always,,,,,,,,
+3220,V_B_EREMES@NPC_SUMMONSLAVE,attack,196,1,1000,700,10000,no,self,slavele,3,3219,3218,3215,3216,3217,,
+3220,V_B_EREMES@NPC_INVISIBLE,attack,353,1,200,0,30000,yes,self,always,,,,,,,,
+3220,V_B_EREMES@NPC_AGIUP,attack,350,5,200,0,25000,yes,self,always,,,,,,,,
+3220,V_B_EREMES@AS_SONICBLOW,attack,136,10,200,0,10000,yes,target,always,,,,,,,6,
+3220,V_B_EREMES@ASC_METEORASSAULT,attack,406,10,200,2000,10000,no,self,always,,,,,,,,
+3220,V_B_EREMES@NPC_POISONATTACK,attack,188,10,100,0,10000,yes,target,always,,,,,,,,
+3220,V_B_EREMES@NPC_MAXPAIN,attack,716,9,300,1000,30000,no,self,always,,,,,,,,
+// 3220,V_B_EREMES@NPC_VENOMIMPRESS,attack,738,5,100,0,10000,yes,target,always,,,,,,,,
+3220,V_B_EREMES@NPC_PULSESTRIKE,attack,661,5,100,2000,30000,no,self,always,,,,,,,,
+3220,V_B_EREMES@NPC_DRAGONFEAR,attack,659,5,100,2000,30000,no,self,always,,,,,,,,
+3220,V_B_EREMES@NPC_VENOMFOG,attack,706,5,100,2000,30000,no,self,always,,,,,,,,
+3220,V_B_EREMES@NPC_EARTHQUAKE,attack,653,10,1000,4000,60000000,yes,self,myhpltmaxrate,30,,,,,,,
+3221,V_B_MAGALETA@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3221,V_B_MAGALETA@NPC_CALLSLAVE,idle,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3221,V_B_MAGALETA@NPC_SUMMONSLAVE,idle,196,1,1000,700,10000,no,self,slavele,3,3219,3214,3218,3216,3217,,
+// 3221,V_B_MAGALETA@NPC_CHEAL,idle,729,5,300,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
+// 3221,V_B_MAGALETA@NPC_CHEAL,idle,729,5,300,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
+3221,V_B_MAGALETA@NPC_MAXPAIN,idle,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+// 3221,V_B_MAGALETA@NPC_CHEAL,chase,729,5,300,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
+// 3221,V_B_MAGALETA@NPC_CHEAL,chase,729,5,300,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
+3221,V_B_MAGALETA@NPC_WIDESILENCE,chase,663,5,500,1000,30000,no,target,always,,,,,,,18,
+// 3221,V_B_MAGALETA@NPC_LEX_AETERNA,chase,727,5,100,0,10000,yes,target,always,,,,,,,29,
+3221,V_B_MAGALETA@NPC_MAXPAIN,chase,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3221,V_B_MAGALETA@NPC_MAXPAIN,attack,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3221,V_B_MAGALETA@NPC_CALLSLAVE,attack,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3221,V_B_MAGALETA@NPC_SUMMONSLAVE,attack,196,1,1000,700,10000,no,self,slavele,3,3219,3214,3218,3216,3217,,
+3221,V_B_MAGALETA@NPC_SUMMONMONSTER,attack,209,1,1000,700,60000000,yes,self,myhpltmaxrate,30,3219,3214,3218,3216,3217,,
+3221,V_B_MAGALETA@AL_INCAGI,attack,29,10,200,0,240000,yes,self,always,,,,,,,2,
+3221,V_B_MAGALETA@MG_SAFETYWALL,attack,12,10,100,0,10000,yes,self,always,,,,,,,,
+3221,V_B_MAGALETA@AL_PNEUMA,attack,25,1,500,0,10000,yes,self,longrangeattacked,,,,,,,19,
+// 3221,V_B_MAGALETA@NPC_CHEAL,attack,729,5,100,0,1500,yes,friend,friendhpltmaxrate,99,,,,,,3,
+// 3221,V_B_MAGALETA@NPC_CHEAL,attack,729,5,100,0,1500,yes,self,myhpltmaxrate,99,,,,,,3,
+3221,V_B_MAGALETA@NPC_MAXPAIN,attack,716,10,300,1000,30000,no,self,always,,,,,,,,
+3221,V_B_MAGALETA@NPC_ALLHEAL,attack,687,1,100,3000,60000000,no,self,myhpltmaxrate,10,,,,,,,
+3221,V_B_MAGALETA@NPC_SLOWCAST,attack,672,5,100,0,240000,yes,self,always,,,,,,,,
+3221,V_B_MAGALETA@NPC_WIDESILENCE,attack,663,5,500,1000,6000,no,target,casttargeted,,,,,,,18,
+// 3221,V_B_MAGALETA@NPC_LEX_AETERNA,attack,727,5,300,1000,6000,no,target,always,,,,,,,29,
+3221,V_B_MAGALETA@NPC_WIDECONFUSE,attack,667,5,200,1000,60000,no,target,always,,,,,,,,
+3222,V_B_SHECIL@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3222,V_B_SHECIL@NPC_AGIUP,idle,350,5,200,0,60000,yes,self,always,,,,,,,,
+3222,V_B_SHECIL@NPC_SUMMONSLAVE,idle,196,1,1000,700,10000,no,self,slavele,3,3219,3214,3218,3215,3216,,
+3222,V_B_SHECIL@NPC_MAXPAIN,idle,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3222,V_B_SHECIL@NPC_CALLSLAVE,idle,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3222,V_B_SHECIL@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
+3222,V_B_SHECIL@NPC_MAXPAIN,chase,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3222,V_B_SHECIL@NPC_MAXPAIN,attack,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3222,V_B_SHECIL@NPC_CALLSLAVE,attack,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3222,V_B_SHECIL@NPC_SUMMONSLAVE,attack,196,1,1000,700,10000,no,self,slavele,3,3219,3214,3218,3215,3216,,
+3222,V_B_SHECIL@NPC_SUMMONMONSTER,attack,209,1,1000,700,60000000,no,self,myhpltmaxrate,30,3219,3214,3218,3215,3216,,
+// 3222,V_B_SHECIL@NPC_ARROWSTORM,attack,728,5,200,0,3000,yes,target,always,,,,,,,6,
+3222,V_B_SHECIL@NPC_POWERUP,attack,349,5,200,0,20000,yes,self,always,,,,,,,,
+3222,V_B_SHECIL@NPC_AGIUP,attack,350,5,200,0,20000,yes,self,always,,,,,,,,
+3222,V_B_SHECIL@AC_DOUBLE,attack,46,10,200,0,10000,yes,target,always,,,,,,,,
+3222,V_B_SHECIL@NPC_CRITICALWOUND,attack,673,5,50,0,10000,no,target,always,,,,,,,5,
+3222,V_B_SHECIL@SN_SHARPSHOOTING,attack,382,5,200,500,1500,no,target,always,,,,,,,,
+3222,V_B_SHECIL@NPC_WIDEBLEEDING,attack,665,5,1000,1000,10000,no,self,myhpltmaxrate,30,,,,,,,
+3222,V_B_SHECIL@NPC_WIDECURSE,attack,677,5,1000,1000,10000,no,self,myhpltmaxrate,30,,,,,,,
+3223,V_B_HARWORD@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3223,V_B_HARWORD@NPC_CALLSLAVE,idle,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3223,V_B_HARWORD@NPC_SUMMONSLAVE,idle,196,1,1000,700,10000,no,self,slavele,3,3219,3214,3215,3216,3217,,
+3223,V_B_HARWORD@NPC_MAXPAIN,idle,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3223,V_B_HARWORD@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
+3223,V_B_HARWORD@BS_HAMMERFALL,chase,110,10,200,0,10000,yes,target,always,,,,,,,,
+3223,V_B_HARWORD@NPC_MAXPAIN,chase,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3223,V_B_HARWORD@NPC_MAXPAIN,attack,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3223,V_B_HARWORD@NPC_CALLSLAVE,attack,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3223,V_B_HARWORD@NPC_SUMMONSLAVE,attack,196,1,1000,700,10000,no,self,slavele,3,3219,3214,3215,3216,3217,,
+3223,V_B_HARWORD@NPC_SUMMONMONSTER,attack,209,1,1000,700,60000000,yes,self,myhpltmaxrate,30,3219,3214,3215,3216,3217,,
+3223,V_B_HARWORD@BS_ADRENALINE,attack,111,10,200,0,150000,yes,self,always,,,,,,,,
+3223,V_B_HARWORD@BS_MAXIMIZE,attack,114,1,100,0,60000,yes,self,always,,,,,,,,
+3223,V_B_HARWORD@MC_MAMMONITE,attack,42,10,200,0,10000,yes,target,always,,,,,,,23,
+3223,V_B_HARWORD@BS_HAMMERFALL,attack,110,10,200,0,10000,yes,target,always,,,,,,,,
+3223,V_B_HARWORD@NPC_POWERUP,attack,349,5,200,0,100000,yes,self,always,,,,,,,,
+3223,V_B_HARWORD@NPC_MAXPAIN,attack,716,10,500,1000,10000,no,self,always,,,,,,,19,
+3223,V_B_HARWORD@NPC_WATERATTACK,attack,184,10,100,0,10000,yes,target,always,,,,,,,,
+// 3223,V_B_HARWORD@NPC_MAGMA_ERUPTION,attack,733,5,500,0,10000,yes,target,always,,,,,,,,
+3223,V_B_HARWORD@NPC_WIDESTUN,attack,678,5,200,2000,10000,no,self,always,,,,,,,,
+3223,V_B_HARWORD@NPC_PULSESTRIKE,attack,661,5,200,1000,30000,no,self,always,,,,,,,,
+3223,V_B_HARWORD@NPC_EARTHQUAKE,attack,653,10,1000,4000,60000000,yes,self,myhpltmaxrate,30,,,,,,,
+3224,V_B_KATRINN@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3224,V_B_KATRINN@NPC_CALLSLAVE,idle,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3224,V_B_KATRINN@NPC_SUMMONSLAVE,idle,196,1,1000,700,10000,no,self,slavele,3,3219,3214,3218,3215,3217,,
+3224,V_B_KATRINN@MG_SIGHT,idle,10,1,1000,0,10000,yes,self,skillused,137,,,,,,,
+3224,V_B_KATRINN@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
+3224,V_B_KATRINN@NPC_CALLSLAVE,attack,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3224,V_B_KATRINN@NPC_SUMMONSLAVE,attack,196,1,1000,700,10000,no,self,slavele,3,3219,3214,3218,3215,3217,,
+3224,V_B_KATRINN@NPC_SUMMONMONSTER,attack,209,1,1000,700,60000000,no,self,myhpltmaxrate,30,3219,3214,3218,3215,3217,,
+3224,V_B_KATRINN@NPC_COMET,attack,708,5,300,1000,7000,no,self,always,,,,,,,,
+// 3224,V_B_KATRINN@NPC_STORMGUST2,attack,723,3,200,1000,10000,no,target,always,,,,,,,,
+3224,V_B_KATRINN@NPC_WIDESTONE,attack,666,1,200,1000,10000,no,self,always,,,,,,,,
+3224,V_B_KATRINN@HW_GANBANTEIN,attack,483,1,300,500,10000,no,target,always,,,,,,,,
+3224,V_B_KATRINN@WL_EARTHSTRAIN,attack,2216,5,300,1000,7000,no,target,always,,,,,,,,
+3224,V_B_KATRINN@WZ_JUPITEL,attack,84,10,200,1000,10000,no,target,always,,,,,,,,
+3224,V_B_KATRINN@WL_TETRAVORTEX,attack,2217,5,300,1000,7000,no,target,always,,,,,,,,
+3224,V_B_KATRINN@NPC_WIDEFREEZE,attack,664,5,200,1000,10000,no,self,always,,,,,,,,
+3224,V_B_KATRINN@NPC_WIDESILENCE,attack,663,5,200,1000,10000,no,self,always,,,,,,,,
+3225,V_B_SEYREN@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3225,V_B_SEYREN@NPC_CALLSLAVE,idle,352,1,500,0,10000,yes,self,always,,,,,,,,
+3225,V_B_SEYREN@NPC_SUMMONSLAVE,idle,196,1,1000,700,10000,no,self,slavele,3,3214,3218,3215,3216,3217,,
+3225,V_B_SEYREN@NPC_MAXPAIN,idle,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3225,V_B_SEYREN@KN_SPEARBOOMERANG,chase,59,5,1000,0,0,yes,target,always,,,,,,,6,
+3225,V_B_SEYREN@SM_ENDURE,chase,8,10,500,0,30000,yes,self,longrangeattacked,,,,,,,6,
+3225,V_B_SEYREN@NPC_MAXPAIN,chase,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3225,V_B_SEYREN@NPC_MAXPAIN,attack,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3225,V_B_SEYREN@NPC_CALLSLAVE,attack,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3225,V_B_SEYREN@NPC_SUMMONSLAVE,attack,196,1,1000,700,10000,no,self,slavele,3,3214,3218,3215,3216,3217,,
+3225,V_B_SEYREN@KN_TWOHANDQUICKEN,attack,60,10,1000,0,300000,yes,self,always,,,,,,,2,
+3225,V_B_SEYREN@LK_SPIRALPIERCE,attack,397,5,200,0,10000,yes,target,always,,,,,,,,
+// 3225,V_B_SEYREN@NPC_DRAGONBREATH,attack,731,10,300,500,10000,no,target,always,,,,,,,,
+// 3225,V_B_SEYREN@NPC_DRAGONBREATH,attack,731,5,300,500,10000,no,target,always,,,,,,,,
+3225,V_B_SEYREN@NPC_POWERUP,attack,349,5,200,0,100000,yes,self,always,,,,,,,,
+3225,V_B_SEYREN@NPC_CRITICALSLASH,attack,170,1,100,0,10000,yes,target,always,,,,,,,,
+3225,V_B_SEYREN@NPC_COMBOATTACK,attack,171,5,100,0,10000,yes,target,always,,,,,,,,
+3225,V_B_SEYREN@NPC_MAXPAIN,attack,716,9,300,1000,30000,no,self,always,,,,,,,,
+3225,V_B_SEYREN@NPC_WIDEBLEEDING,attack,665,5,100,1000,10000,no,self,always,,,,,,,,
+3225,V_B_SEYREN@NPC_PULSESTRIKE,attack,661,5,200,1000,30000,no,self,always,,,,,,,,
+3225,V_B_SEYREN@NPC_CRITICALWOUND,attack,673,5,200,0,30000,no,target,always,,,,,,,,
+3225,V_B_SEYREN@NPC_EARTHQUAKE,attack,653,10,1000,4000,60000000,yes,self,myhpltmaxrate,30,,,,,,,
+3226,V_RANDEL@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3226,V_RANDEL@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
+3226,V_RANDEL@PA_PRESSURE,attack,367,1,200,0,10000,no,target,always,,,,,,,,
+3226,V_RANDEL@CR_SHIELDCHARGE,attack,250,5,100,0,10000,yes,target,always,,,,,,,9,
+3226,V_RANDEL@CR_REFLECTSHIELD,attack,252,5,50,0,200000,yes,self,always,,,,,,,32,
+3226,V_RANDEL@CR_REFLECTSHIELD,attack,252,5,1000,0,200000,yes,self,casttargeted,,,,,,,32,
+3226,V_RANDEL@NPC_DARKCROSS,attack,338,10,100,0,5000,yes,target,always,,,,,,,,
+3226,V_RANDEL@NPC_GRANDDARKNESS,attack,339,10,200,500,5000,no,self,attackpcge,2,,,,,,,
+3226,V_RANDEL@CR_GRANDCROSS,attack,254,10,200,500,5000,no,self,always,,,,,,,,
+3226,V_RANDEL@NPC_DEFENDER,attack,205,5,500,0,10000,yes,self,longrangeattacked,,,,,,,,
+3226,V_RANDEL@NPC_POWERUP,attack,349,1,200,0,100000,yes,self,always,,,,,,,,
+3226,V_RANDEL@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,2232,,,,,,
+// 3226,V_RANDEL@NPC_RAYOFGENESIS,attack,737,3,200,500,10000,yes,target,always,,,,,,,9,
+3227,V_FLAMEL@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3227,V_FLAMEL@AM_POTIONPITCHER,idle,231,4,1000,0,10000,yes,friend,friendhpltmaxrate,60,,,,,,5,
+3227,V_FLAMEL@AM_POTIONPITCHER,idle,231,4,1000,0,10000,yes,self,myhpltmaxrate,30,,,,,,5,
+3227,V_FLAMEL@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
+3227,V_FLAMEL@AM_ACIDTERROR,chase,230,5,200,0,10000,yes,target,always,,,,,,,29,
+3227,V_FLAMEL@AM_POTIONPITCHER,chase,231,5,500,0,10000,yes,friend,friendhpltmaxrate,60,,,,,,5,
+3227,V_FLAMEL@AM_POTIONPITCHER,chase,231,5,500,0,10000,yes,self,myhpltmaxrate,30,,,,,,5,
+3227,V_FLAMEL@CR_ACIDDEMONSTRATION,attack,490,5,100,1000,30000,no,target,always,,,,,,,,
+3227,V_FLAMEL@AM_DEMONSTRATION,attack,229,1,200,500,10000,no,target,always,,,,,,,,
+3227,V_FLAMEL@NPC_AGIUP,attack,350,1,200,0,100000,yes,self,always,,,,,,,,
+3227,V_FLAMEL@AM_POTIONPITCHER,attack,231,5,500,0,10000,yes,friend,friendhpltmaxrate,60,,,,,,5,
+// 3227,V_FLAMEL@NPC_MANDRAGORA,attack,735,3,500,500,10000,no,self,always,,,,,,,,
+3227,V_FLAMEL@AM_POTIONPITCHER,attack,231,5,500,0,10000,yes,self,myhpltmaxrate,30,,,,,,5,
+3227,V_FLAMEL@NPC_WIDESLEEP,attack,668,3,300,1000,10000,no,self,always,,,,,,,,
+3227,V_FLAMEL@NPC_MAXPAIN,attack,716,5,300,1000,60000,no,self,always,,,,,,,,
+3227,V_FLAMEL@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,2230,,,,,,
+3227,V_FLAMEL@NPC_WIDESTUN,attack,678,3,300,1000,10000,no,self,always,,,,,,,,
+3228,V_CELIA@MG_SIGHT,idle,10,1,200,0,10000,yes,self,always,,,,,,,,
+3228,V_CELIA@MG_SIGHT,idle,10,1,1000,0,10000,yes,self,skillused,137,,,,,,,
+3228,V_CELIA@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3228,V_CELIA@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
+// 3228,V_CELIA@NPC_WIDEWEB,chase,721,1,500,1000,10000,no,self,always,,,,,,,,
+// 3228,V_CELIA@NPC_PSYCHIC_WAVE,chase,736,1,500,0,10000,no,target,always,,,,,,,,
+3228,V_CELIA@SA_DISPELL,chase,289,5,50,0,10000,yes,target,always,,,,,,,,
+3228,V_CELIA@MG_THUNDERSTORM,chase,21,10,300,500,10000,no,target,always,,,,,,,,
+3228,V_CELIA@NPC_WIDESOULDRAIN,chase,680,4,300,0,10000,no,self,always,,,,,,,,
+3228,V_CELIA@NPC_MENTALBREAKER,attack,159,3,50,800,10000,no,target,always,,,,,,,,
+3228,V_CELIA@SA_DISPELL,attack,289,5,300,0,10000,yes,target,always,,,,,,,,
+// 3228,V_CELIA@NPC_PSYCHIC_WAVE,attack,736,4,500,1000,7000,no,target,always,,,,,,,,
+3228,V_CELIA@MG_SAFETYWALL,attack,12,10,100,0,10000,yes,self,always,,,,,,,,
+3228,V_CELIA@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,2231,,,,,,
+// 3228,V_CELIA@NPC_WIDEWEB,attack,721,1,300,0,7000,no,self,always,,,,,,,,
+3228,V_CELIA@NPC_WIDESTONE,attack,666,5,100,1000,10000,no,self,always,,,,,,,,
+3228,V_CELIA@NPC_WIDESOULDRAIN,attack,680,2,100,500,10000,no,self,always,,,,,,,,
+3229,V_CHEN@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3229,V_CHEN@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
+3229,V_CHEN@MO_BODYRELOCATION,chase,264,1,200,500,5000,no,target,always,,,,,,,28,
+3229,V_CHEN@AL_DECAGI,chase,30,10,200,0,10000,yes,target,always,,,,,,,,
+3229,V_CHEN@MO_BALKYOUNG,attack,1016,1,10,0,10000,no,target,always,,,,,,,19,
+3229,V_CHEN@MO_EXTREMITYFIST,attack,271,1,500,1000,6000,no,target,always,,,,,,,,
+3229,V_CHEN@NPC_CRITICALSLASH,attack,170,1,100,0,10000,yes,target,always,,,,,,,,
+3229,V_CHEN@NPC_CHANGEUNDEAD,attack,348,3,100,0,10000,yes,target,always,,,,,,,,
+// 3229,V_CHEN@NPC_CURSEDCIRCLE,attack,730,2,300,0,5000,yes,self,always,,,,,,,3,
+3229,V_CHEN@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,2229,,,,,,
+3229,V_CHEN@NPC_WIDEBLEEDING,attack,665,4,300,1000,10000,yes,self,always,,,,,,,,
+3230,V_GERTIE@AS_CLOAKING,attack,135,1,200,200,10000,yes,self,always,,,,,,,,
+3230,V_GERTIE@AS_CLOAKING,idle,135,1,200,200,10000,yes,self,always,,,,,,,,
+3230,V_GERTIE@AS_CLOAKING,chase,135,1,200,200,10000,yes,self,always,,,,,,,,
+3230,V_GERTIE@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3230,V_GERTIE@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
+3230,V_GERTIE@ST_FULLSTRIP,attack,476,5,500,0,60000,yes,target,myhpltmaxrate,50,,,,,,,
+3230,V_GERTIE@NPC_PULSESTRIKE,attack,661,2,200,0,10000,yes,self,always,,,,,,,,
+3230,V_GERTIE@NPC_CRITICALSLASH,attack,170,1,300,0,5000,yes,target,always,,,,,,,,
+3230,V_GERTIE@NPC_WIDECONFUSE,attack,667,3,100,1000,10000,yes,target,always,,,,,,,,
+// 3230,V_GERTIE@NPC_FATALMENACE,attack,732,3,300,0,7000,,no,target,always,,,,,,,43,
+3230,V_GERTIE@NPC_VENOMFOG,attack,706,1,100,0,10000,yes,self,always,,,,,,,,
+3230,V_GERTIE@NPC_AGIUP,attack,350,1,200,0,100000,yes,self,always,,,,,,,,
+3230,V_GERTIE@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,2228,,,,,,
+3230,V_GERTIE@RG_CLOSECONFINE,attack,1005,1,100,0,5000,yes,target,always,,,,,,,,
+3231,V_ALPHOCCIO@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3231,V_ALPHOCCIO@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
+// 3231,V_ALPHOCCIO@NPC_DISSONANCE,attack,2540,3,100,1000,30000,no,self,always,,,,,,,,
+3231,V_ALPHOCCIO@NPC_PULSESTRIKE,attack,661,3,100,1000,10000,no,self,always,,,,,,,,
+3231,V_ALPHOCCIO@NPC_WIDEFREEZE,attack,664,3,200,1000,10000,no,self,always,,,,,,,,
+3231,V_ALPHOCCIO@NPC_SLOWCAST,attack,672,1,200,800,30000,no,self,always,,,,,,,36,
+// 3231,V_ALPHOCCIO@NPC_REVERBERATION,attack,725,3,100,0,10000,yes,target,always,,,,,,,,
+3231,V_ALPHOCCIO@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,2234,,,,,,
+// 3231,V_ALPHOCCIO@NPC_DANCINGBLADE,attack,713,1,100,0,10000,yes,target,always,,,,,,,,
+3232,V_TRENTINI@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3232,V_TRENTINI@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
+// 3232,V_TRENTINI@NPC_UGLYDANCE,attack,2541,5,100,1000,100000,no,self,always,,,,,,,,
+3232,V_TRENTINI@NPC_AGIUP,attack,350,1,200,0,100000,yes,self,always,,,,,,,,
+3232,V_TRENTINI@NPC_CRITICALSLASH,attack,170,1,100,0,10000,yes,target,always,,,,,,,,
+// 3232,V_TRENTINI@NPC_REVERBERATION,attack,725,1,100,0,10000,yes,target,always,,,,,,,,
+3232,V_TRENTINI@NPC_SUMMONSLAVE,attack,196,1,50,0,600000,yes,self,slavele,0,2233,,,,,,
+// 3232,V_TRENTINI@NPC_DISSONANCE,attack,2540,3,100,1000,30000,no,self,always,,,,,,,,
+3233,V_G_RANDEL@NPC_DEFENDER,attack,205,5,500,0,10000,yes,self,longrangeattacked,,,,,,,,
+3233,V_G_RANDEL@PA_PRESSURE,attack,367,5,100,0,10000,no,target,always,,,,,,,,
+3233,V_G_RANDEL@CR_SHIELDCHARGE,attack,250,5,100,0,10000,yes,target,always,,,,,,,9,
+3233,V_G_RANDEL@CR_REFLECTSHIELD,attack,252,5,50,0,200000,yes,self,always,,,,,,,32,
+3233,V_G_RANDEL@CR_REFLECTSHIELD,attack,252,5,1000,0,200000,yes,self,casttargeted,,,,,,,32,
+3233,V_G_RANDEL@NPC_DARKCROSS,attack,338,10,50,0,10000,yes,target,always,,,,,,,,
+3233,V_G_RANDEL@NPC_GRANDDARKNESS,attack,339,10,200,500,10000,no,self,attackpcge,2,,,,,,,
+3233,V_G_RANDEL@NPC_POWERUP,attack,349,5,200,0,100000,yes,self,always,,,,,,,,
+3233,V_G_RANDEL@NPC_POWERUP,attack,349,5,500,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+// 3233,V_G_RANDEL@NPC_RAYOFGENESIS,attack,737,7,200,500,10000,yes,target,always,,,,,,,9,
+3233,V_G_RANDEL@NPC_WIDESLEEP,attack,668,5,200,1000,10000,no,self,always,,,,,,,,
+3233,V_G_RANDEL@NPC_WIDESILENCE,attack,663,5,200,1000,10000,no,self,always,,,,,,,,
+3234,V_G_FLAMEL@AM_POTIONPITCHER,idle,231,5,1000,500,10000,yes,friend,friendhpltmaxrate,60,,,,,,5,
+3234,V_G_FLAMEL@AM_POTIONPITCHER,idle,231,5,1000,500,10000,yes,self,myhpltmaxrate,30,,,,,,5,
+3234,V_G_FLAMEL@AM_POTIONPITCHER,chase,231,5,1000,500,10000,yes,friend,friendhpltmaxrate,60,,,,,,5,
+3234,V_G_FLAMEL@AM_POTIONPITCHER,chase,231,5,1000,500,10000,yes,self,myhpltmaxrate,30,,,,,,5,
+3234,V_G_FLAMEL@AM_DEMONSTRATION,chase,229,5,200,0,10000,yes,target,always,,,,,,,,
+3234,V_G_FLAMEL@AM_ACIDTERROR,chase,230,5,150,0,10000,yes,target,always,,,,,,,29,
+3234,V_G_FLAMEL@NPC_AGIUP,attack,350,5,200,0,100000,yes,self,always,,,,,,,,
+3234,V_G_FLAMEL@NPC_AGIUP,attack,350,5,200,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+3234,V_G_FLAMEL@AM_POTIONPITCHER,attack,231,5,1000,500,10000,yes,friend,friendhpltmaxrate,60,,,,,,5,
+3234,V_G_FLAMEL@AM_POTIONPITCHER,attack,231,5,1000,500,10000,yes,self,myhpltmaxrate,30,,,,,,5,
+3234,V_G_FLAMEL@NPC_MAXPAIN,attack,716,7,300,1000,60000,no,self,myhpltmaxrate,3,,,,,,,
+3234,V_G_FLAMEL@CR_ACIDDEMONSTRATION,attack,490,3,100,1000,300000,no,target,always,,,,,,,,
+3234,V_G_FLAMEL@AM_DEMONSTRATION,attack,229,5,200,0,10000,yes,target,always,,,,,,,,
+3234,V_G_FLAMEL@NPC_CRITICALWOUND,attack,673,3,100,0,30000,no,target,always,,,,,,,,
+// 3234,V_G_FLAMEL@NPC_MANDRAGORA,attack,735,3,500,500,10000,no,self,always,,,,,,,,
+3234,V_G_FLAMEL@NPC_WIDESLEEP,attack,668,5,300,1000,10000,no,self,always,,,,,,,,
+3234,V_G_FLAMEL@NPC_WIDESTUN,attack,678,5,300,1000,10000,no,self,always,,,,,,,,
+3235,V_G_CELIA@MG_FIREBOLT,chase,19,10,300,0,10000,yes,target,always,,,,,,,,
+3235,V_G_CELIA@SA_DISPELL,chase,289,5,50,0,10000,yes,target,always,,,,,,,,
+3235,V_G_CELIA@NPC_WIDESOULDRAIN,attack,680,5,200,1000,10000,no,self,always,,,,,,,,
+3235,V_G_CELIA@NPC_MENTALBREAKER,attack,159,3,50,800,10000,no,target,always,,,,,,,,
+// 3235,V_G_CELIA@NPC_PSYCHIC_WAVE,attack,736,5,300,500,5000,no,target,always,,,,,,,,
+3235,V_G_CELIA@SA_DISPELL,attack,289,5,50,0,30000,yes,target,always,,,,,,,,
+3235,V_G_CELIA@SA_LANDPROTECTOR,attack,288,5,300,1000,10000,no,target,always,,,,,,,,
+// 3235,V_G_CELIA@NPC_WIDEWEB,attack,721,1,500,0,7000,yes,self,always,,,,,,,,
+3235,V_G_CELIA@NPC_WIDESTONE,attack,666,5,100,1000,10000,no,self,always,,,,,,,,
+3235,V_G_CELIA@NPC_WIDESOULDRAIN,attack,680,4,100,1000,10000,no,self,always,,,,,,,,
+// 3235,V_G_CELIA@NPC_PSYCHIC_WAVE,attack,736,5,300,1000,5000,no,target,always,,,,,,,,
+3235,V_G_CELIA@NPC_WIDECONFUSE,attack,667,3,300,1000,10000,no,target,always,,,,,,,,
+3235,V_G_CELIA@NPC_MAXPAIN,attack,716,7,300,1000,30000,yes,self,always,,,,,,,,
+// 3235,V_G_CELIA@NPC_PSYCHIC_WAVE,attack,736,7,300,3000,30000,no,target,always,,,,,,,,
+3236,V_G_CHEN@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3236,V_G_CHEN@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
+3236,V_G_CHEN@NPC_WIDEBLEEDING,attack,665,5,300,1000,10000,yes,self,always,,,,,,,,
+3236,V_G_CHEN@MO_BALKYOUNG,attack,1016,1,10,0,10000,no,target,always,,,,,,,19,
+3236,V_G_CHEN@MO_EXTREMITYFIST,attack,271,5,500,1000,7000,no,target,always,,,,,,,,
+3236,V_G_CHEN@NPC_AGIUP,attack,350,5,200,0,100000,yes,self,always,,,,,,,,
+3236,V_G_CHEN@NPC_CRITICALSLASH,attack,170,1,100,0,10000,yes,target,always,,,,,,,,
+3236,V_G_CHEN@NPC_ARMORBRAKE,attack,344,1,100,0,10000,yes,target,always,,,,,,,,
+3236,V_G_CHEN@NPC_PULSESTRIKE,attack,661,5,100,0,10000,yes,self,always,,,,,,,,
+// 3236,V_G_CHEN@NPC_CURSEDCIRCLE,attack,730,4,100,0,5000,yes,self,always,,,,,,,,
+// 3236,V_G_CHEN@NPC_DARKPIERCING,attack,715,1,100,0,10000,yes,target,always,,,,,,,,
+3237,V_G_GERTIE@NPC_PULSESTRIKE,attack,661,5,200,0,10000,yes,self,always,,,,,,,,
+3237,V_G_GERTIE@NPC_CRITICALSLASH,attack,170,1,300,0,5000,yes,target,always,,,,,,,,
+3237,V_G_GERTIE@NPC_AGIUP,attack,350,1,300,0,300000,yes,self,always,,,,,,,,
+3237,V_G_GERTIE@ST_FULLSTRIP,attack,476,5,50,0,30000,yes,target,myhpltmaxrate,30,,,,,,,
+// 3237,V_G_GERTIE@NPC_FATALMENACE,attack,732,5,300,0,20000,no,target,always,,,,,,,34,
+3237,V_G_GERTIE@NPC_WIDECONFUSE,attack,667,5,100,1000,30000,no,target,always,,,,,,,,
+3237,V_G_GERTIE@RG_CLOSECONFINE,attack,1005,1,100,0,30000,yes,target,always,,,,,,,,
+3237,V_G_GERTIE@NPC_VENOMFOG,attack,706,3,200,0,30000,yes,self,always,,,,,,,,
+3237,V_G_GERTIE@NPC_WIDECURSE,attack,677,5,100,1000,30000,no,self,always,,,,,,,,
+3237,V_G_GERTIE@NPC_INVISIBLE,attack,353,1,100,200,30000,yes,self,always,,,,,,,,
+// 3238,V_G_ALPHOCCIO@NPC_DISSONANCE,attack,2540,3,100,1000,120000,no,self,always,,,,,,,,
+3238,V_G_ALPHOCCIO@NPC_PULSESTRIKE,attack,661,5,100,1000,10000,no,self,always,,,,,,,,
+// 3238,V_G_ALPHOCCIO@NPC_REVERBERATION,attack,725,3,100,0,10000,yes,target,always,,,,,,,,
+3238,V_G_ALPHOCCIO@NPC_WIDESLEEP,attack,668,5,100,1000,10000,no,self,always,,,,,,,,
+3238,V_G_ALPHOCCIO@NPC_WIDEFREEZE,attack,664,5,100,1000,10000,no,self,always,,,,,,,,
+3238,V_G_ALPHOCCIO@NPC_SLOWCAST,attack,672,3,100,1000,10000,no,self,always,,,,,,,36,
+3238,V_G_ALPHOCCIO@NPC_WIDESOULDRAIN,attack,680,6,100,1000,10000,no,self,always,,,,,,,,
+// 3239,V_G_TRENTINI@NPC_UGLYDANCE,attack,2541,5,100,1000,120000,no,self,always,,,,,,,,
+3239,V_G_TRENTINI@NPC_PULSESTRIKE,attack,661,3,100,1000,10000,no,self,always,,,,,,,,
+3239,V_G_TRENTINI@NPC_AGIUP,attack,350,5,200,0,100000,yes,self,always,,,,,,,,
+3239,V_G_TRENTINI@NPC_MAXPAIN,attack,716,5,300,1000,20000,no,self,always,,,,,,,,
+3239,V_G_TRENTINI@NPC_WIDESILENCE,attack,663,5,100,1000,20000,no,self,always,,,,,,,,
+3239,V_G_TRENTINI@NPC_WIDESTUN,attack,678,5,100,1000,20000,no,self,always,,,,,,,,
+3239,V_G_TRENTINI@NPC_WIDEFREEZE,attack,664,5,100,1000,20000,no,self,always,,,,,,,,
+3239,V_G_TRENTINI@NPC_WIDECURSE,attack,677,5,100,1000,20000,no,self,always,,,,,,,,
+3240,V_B_RANDEL@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3240,V_B_RANDEL@NPC_SUMMONSLAVE,idle,196,1,1000,700,10000,no,self,slavele,3,3234,3235,3236,3237,3238,3239,
+3240,V_B_RANDEL@NPC_CALLSLAVE,idle,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3240,V_B_RANDEL@NPC_MAXPAIN,idle,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3240,V_B_RANDEL@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
+3240,V_B_RANDEL@NPC_MAXPAIN,chase,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3240,V_B_RANDEL@NPC_MAXPAIN,attack,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3240,V_B_RANDEL@NPC_CALLSLAVE,attack,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3240,V_B_RANDEL@NPC_SUMMONSLAVE,attack,196,1,1000,700,10000,no,self,slavele,3,3234,3235,3236,3237,3238,3239,
+3240,V_B_RANDEL@NPC_SUMMONMONSTER,attack,209,1,1000,700,60000000,no,self,myhpltmaxrate,30,3234,3235,3236,3237,3238,3239,
+3240,V_B_RANDEL@PA_PRESSURE,attack,367,5,200,0,10000,no,target,always,,,,,,,,
+3240,V_B_RANDEL@CR_REFLECTSHIELD,attack,252,5,10,0,200000,yes,self,always,,,,,,,32,
+3240,V_B_RANDEL@CR_REFLECTSHIELD,attack,252,5,1000,0,200000,yes,self,casttargeted,,,,,,,32,
+3240,V_B_RANDEL@CR_GRANDCROSS,attack,254,10,300,500,10000,no,self,always,,,,,,,,
+3240,V_B_RANDEL@NPC_GRANDDARKNESS,attack,339,10,200,500,10000,no,self,always,,,,,,,,
+3240,V_B_RANDEL@NPC_POWERUP,attack,349,5,200,0,100000,yes,self,always,,,,,,,,
+3240,V_B_RANDEL@NPC_POWERUP,attack,349,5,200,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+// 3240,V_B_RANDEL@NPC_RAYOFGENESIS,attack,737,10,200,500,7000,yes,target,always,,,,,,,9,
+3240,V_B_RANDEL@NPC_HELLJUDGEMENT,attack,662,10,100,1000,30000,no,self,always,,,,,,,,
+3240,V_B_RANDEL@NPC_WIDESILENCE,attack,663,5,100,1000,10000,no,self,always,,,,,,,,
+3240,V_B_RANDEL@NPC_WIDESLEEP,attack,668,5,100,1000,10000,no,self,always,,,,,,,,
+3241,V_B_FLAMEL@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3241,V_B_FLAMEL@NPC_CALLSLAVE,idle,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3241,V_B_FLAMEL@NPC_SUMMONSLAVE,idle,196,1,1000,700,10000,no,self,slavele,3,3233,3235,3236,3237,3238,3239,
+3241,V_B_FLAMEL@NPC_MAXPAIN,idle,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3241,V_B_FLAMEL@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
+3241,V_B_FLAMEL@AM_DEMONSTRATION,chase,229,5,200,0,10000,yes,target,always,,,,,,,,
+3241,V_B_FLAMEL@NPC_MAXPAIN,chase,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3241,V_B_FLAMEL@NPC_MAXPAIN,attack,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3241,V_B_FLAMEL@NPC_CALLSLAVE,attack,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3241,V_B_FLAMEL@NPC_SUMMONSLAVE,attack,196,1,1000,700,10000,no,self,slavele,3,3233,3235,3236,3237,3238,3239,
+3241,V_B_FLAMEL@NPC_MAXPAIN,attack,716,10,100,1000,30000,no,self,always,,,,,,,,
+3241,V_B_FLAMEL@NPC_SUMMONMONSTER,attack,209,1,1000,700,60000000,no,self,myhpltmaxrate,30,3233,3235,3236,3237,3238,3239,
+3241,V_B_FLAMEL@CR_ACIDDEMONSTRATION,attack,490,5,100,1000,5000,no,target,always,,,,,,,,
+3241,V_B_FLAMEL@NPC_PULSESTRIKE,attack,661,5,100,0,5000,yes,self,always,,,,,,,,
+3241,V_B_FLAMEL@NPC_AGIUP,attack,350,5,200,0,100000,yes,self,always,,,,,,,,
+3241,V_B_FLAMEL@NPC_MAGICMIRROR,attack,671,10,200,0,100000,yes,self,always,,,,,,,,
+3241,V_B_FLAMEL@AM_DEMONSTRATION,attack,229,5,200,0,10000,yes,target,always,,,,,,,,
+// 3241,V_B_FLAMEL@NPC_MANDRAGORA,attack,735,5,500,500,10000,no,self,always,,,,,,,,
+3241,V_B_FLAMEL@NPC_WIDESLEEP,attack,668,5,300,1000,10000,no,self,always,,,,,,,,
+3241,V_B_FLAMEL@NPC_WIDESTUN,attack,678,5,300,1000,10000,no,self,always,,,,,,,,
+3242,V_B_CELIA@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3242,V_B_CELIA@NPC_CALLSLAVE,idle,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3242,V_B_CELIA@NPC_SUMMONSLAVE,idle,196,1,1000,700,10000,no,self,slavele,3,3233,3234,3236,3237,3238,3239,
+3242,V_B_CELIA@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
+3242,V_B_CELIA@NPC_MENTALBREAKER,chase,159,5,100,0,10000,yes,target,always,,,,,,,7,
+3242,V_B_CELIA@SA_DISPELL,chase,289,5,500,0,30000,yes,target,always,,,,,,,,
+3242,V_B_CELIA@NPC_DARKTHUNDER,chase,341,10,200,500,10000,no,target,always,,,,,,,,
+3242,V_B_CELIA@MG_COLDBOLT,chase,14,10,300,0,5000,yes,target,always,,,,,,,,
+3242,V_B_CELIA@MG_FIREBOLT,chase,19,10,300,0,5000,yes,target,always,,,,,,,,
+3242,V_B_CELIA@MG_LIGHTNINGBOLT,chase,20,10,300,0,5000,yes,target,always,,,,,,,,
+3242,V_B_CELIA@NPC_WIDESTONE,chase,666,5,300,1000,10000,no,self,always,,,,,,,,
+3242,V_B_CELIA@NPC_CALLSLAVE,attack,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3242,V_B_CELIA@NPC_SUMMONSLAVE,attack,196,1,1000,700,10000,no,self,slavele,3,3233,3234,3236,3237,3238,3239,
+3242,V_B_CELIA@NPC_SUMMONMONSTER,attack,209,1,1000,700,60000000,no,self,myhpltmaxrate,30,3233,3234,3236,3237,3238,3239,
+3242,V_B_CELIA@SA_LANDPROTECTOR,attack,288,5,300,0,20000,yes,target,always,,,,,,,,
+3242,V_B_CELIA@NPC_MENTALBREAKER,attack,159,5,50,0,10000,yes,target,always,,,,,,,7,
+3242,V_B_CELIA@SA_DISPELL,attack,289,5,1000,0,30000,yes,target,always,,,,,,,,
+3242,V_B_CELIA@NPC_DARKTHUNDER,attack,341,10,300,1000,10000,no,target,always,,,,,,,,
+3242,V_B_CELIA@MG_SAFETYWALL,attack,12,10,300,0,10000,yes,self,always,,,,,,,,
+// 3242,V_B_CELIA@NPC_WIDEWEB,attack,721,1,500,0,7000,yes,self,always,,,,,,,,
+3242,V_B_CELIA@NPC_WIDESTONE,attack,666,5,100,1000,10000,no,self,always,,,,,,,,
+3242,V_B_CELIA@NPC_WIDESOULDRAIN,attack,680,5,100,2000,10000,no,self,always,,,,,,,,
+// 3242,V_B_CELIA@NPC_PSYCHIC_WAVE,attack,736,7,500,500,5000,no,target,always,,,,,,,,
+// 3242,V_B_CELIA@NPC_PSYCHIC_WAVE,attack,736,10,300,3000,10000,no,target,always,,,,,,,9,
+3243,V_B_CHEN@NPC_CALLSLAVE,idle,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3243,V_B_CHEN@NPC_SUMMONSLAVE,idle,196,1,1000,700,10000,no,self,slavele,3,3233,3234,3235,3237,3238,3239,
+3243,V_B_CHEN@NPC_MAXPAIN,idle,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3243,V_B_CHEN@NPC_MAXPAIN,chase,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3243,V_B_CHEN@NPC_MAXPAIN,attack,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3243,V_B_CHEN@NPC_CALLSLAVE,attack,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3243,V_B_CHEN@NPC_SUMMONSLAVE,attack,196,1,1000,700,10000,no,self,slavele,3,3233,3234,3235,3237,3238,3239,
+3243,V_B_CHEN@NPC_SUMMONMONSTER,attack,209,1,1000,700,60000000,no,self,myhpltmaxrate,30,3233,3234,3235,3237,3238,3239,
+3243,V_B_CHEN@MO_EXTREMITYFIST,attack,271,5,300,1000,7000,no,target,always,,,,,,,,
+3243,V_B_CHEN@MO_EXTREMITYFIST,attack,271,5,100,1000,3000,no,target,myhpltmaxrate,10,,,,,,,
+3243,V_B_CHEN@NPC_POWERUP,attack,349,5,200,0,100000,yes,self,always,,,,,,,,
+3243,V_B_CHEN@NPC_POWERUP,attack,349,5,200,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+3243,V_B_CHEN@NPC_AGIUP,attack,350,5,200,0,100000,yes,self,always,,,,,,,,
+3243,V_B_CHEN@NPC_AGIUP,attack,350,5,200,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+3243,V_B_CHEN@NPC_MAXPAIN,attack,716,10,300,1000,20000,no,self,always,,,,,,,,
+// 3243,V_B_CHEN@NPC_DARKPIERCING,attack,715,1,100,0,10000,yes,target,always,,,,,,,,
+3243,V_B_CHEN@NPC_PULSESTRIKE,attack,661,5,100,0,10000,yes,self,always,,,,,,,,
+3243,V_B_CHEN@NPC_WIDEBLEEDING,attack,665,5,100,1000,10000,no,self,always,,,,,,,,
+3243,V_B_CHEN@NPC_WIDESILENCE,attack,663,5,100,1000,10000,no,self,always,,,,,,,,
+3244,V_B_GERTIE@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3244,V_B_GERTIE@NPC_SUMMONSLAVE,idle,196,1,1000,700,10000,no,self,slavele,3,3233,3234,3235,3236,3238,3239,
+3244,V_B_GERTIE@NPC_CALLSLAVE,idle,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3244,V_B_GERTIE@NPC_MAXPAIN,idle,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3244,V_B_GERTIE@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
+3244,V_B_GERTIE@NPC_MAXPAIN,chase,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3244,V_B_GERTIE@NPC_MAXPAIN,attack,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3244,V_B_GERTIE@NPC_CALLSLAVE,attack,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3244,V_B_GERTIE@NPC_SUMMONSLAVE,attack,196,1,1000,700,10000,no,self,slavele,3,3233,3234,3235,3236,3238,3239,
+3244,V_B_GERTIE@NPC_SUMMONMONSTER,attack,209,1,1000,700,60000000,no,self,myhpltmaxrate,30,3233,3234,3235,3236,3238,3239,
+3244,V_B_GERTIE@NPC_AGIUP,attack,350,5,200,0,100000,yes,self,always,,,,,,,,
+3244,V_B_GERTIE@NPC_AGIUP,attack,350,5,200,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+3244,V_B_GERTIE@RG_STRIPSHIELD,attack,216,5,50,0,2000,yes,target,myhpltmaxrate,90,,,,,,,
+3244,V_B_GERTIE@RG_STRIPARMOR,attack,217,5,50,0,2000,yes,target,myhpltmaxrate,70,,,,,,,
+3244,V_B_GERTIE@RG_STRIPWEAPON,attack,215,5,50,0,2000,yes,target,myhpltmaxrate,50,,,,,,,
+3244,V_B_GERTIE@ST_FULLSTRIP,attack,476,5,50,0,20000,yes,target,myhpltmaxrate,30,,,,,,,
+3244,V_B_GERTIE@NPC_PULSESTRIKE,attack,661,5,200,0,7000,yes,self,always,,,,,,,,
+3244,V_B_GERTIE@NPC_CRITICALSLASH,attack,170,1,300,0,5000,yes,target,always,,,,,,,,
+// 3244,V_B_GERTIE@NPC_FATALMENACE,attack,732,5,100,0,30000,,no,target,always,,,,,,,37,
+3244,V_B_GERTIE@NPC_HELLJUDGEMENT,attack,662,10,100,1000,30000,no,self,always,,,,,,,,
+3244,V_B_GERTIE@NPC_WIDESLEEP,attack,668,10,100,1000,30000,no,self,always,,,,,,,,
+3245,V_B_ALPHOCCIO@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3245,V_B_ALPHOCCIO@NPC_CALLSLAVE,idle,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3245,V_B_ALPHOCCIO@NPC_SUMMONSLAVE,idle,196,1,1000,700,10000,no,self,slavele,3,3233,3234,3235,3236,3237,3239,
+3245,V_B_ALPHOCCIO@NPC_SLOWCAST,chase,672,5,200,300,10000,no,self,always,,,,,,,36,
+3245,V_B_ALPHOCCIO@NPC_MAXPAIN,idle,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3245,V_B_ALPHOCCIO@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
+3245,V_B_ALPHOCCIO@NPC_MAXPAIN,chase,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3245,V_B_ALPHOCCIO@NPC_MAXPAIN,attack,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3245,V_B_ALPHOCCIO@NPC_CALLSLAVE,attack,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3245,V_B_ALPHOCCIO@NPC_SUMMONSLAVE,attack,196,1,1000,700,10000,no,self,slavele,3,3233,3234,3235,3236,3237,3239,
+3245,V_B_ALPHOCCIO@NPC_SUMMONMONSTER,attack,209,1,1000,700,60000000,no,self,myhpltmaxrate,30,3233,3234,3235,3236,3237,3239,
+// 3245,V_B_ALPHOCCIO@NPC_ASSASSINCROSS,attack,2539,10,100,1000,150000,no,self,always,,,,,,,,
+3245,V_B_ALPHOCCIO@NPC_POWERUP,attack,349,5,200,0,100000,yes,self,always,,,,,,,,
+3245,V_B_ALPHOCCIO@NPC_POWERUP,attack,349,5,200,0,25000,yes,self,myhpltmaxrate,30,,,,,,,
+3245,V_B_ALPHOCCIO@NPC_MAXPAIN,attack,716,9,300,1000,20000,no,self,always,,,,,,,47,
+3245,V_B_ALPHOCCIO@NPC_WIDESLEEP,attack,668,5,100,1000,30000,no,self,always,,,,,,,,
+3245,V_B_ALPHOCCIO@NPC_WIDEFREEZE,attack,664,5,100,1000,30000,no,self,always,,,,,,,,
+3245,V_B_ALPHOCCIO@NPC_PULSESTRIKE,attack,661,5,100,1000,10000,no,self,always,,,,,,,,
+3245,V_B_ALPHOCCIO@NPC_WIDESOULDRAIN,attack,680,10,100,1000,60000,no,self,always,,,,,,,,
+3246,V_B_TRENTINI@AL_TELEPORT,idle,26,1,1000,0,0,yes,self,rudeattacked,,,,,,,,
+3246,V_B_TRENTINI@NPC_SUMMONSLAVE,idle,196,1,1000,700,10000,no,self,slavele,3,3233,3234,3235,3236,3237,3238,
+3246,V_B_TRENTINI@NPC_CALLSLAVE,idle,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3246,V_B_TRENTINI@NPC_MAXPAIN,idle,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3246,V_B_TRENTINI@AL_TELEPORT,walk,26,1,500,0,10000,yes,self,rudeattacked,,,,,,,,
+3246,V_B_TRENTINI@NPC_MAXPAIN,chase,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3246,V_B_TRENTINI@NPC_MAXPAIN,attack,716,5,1000,0,10000,yes,self,skillused,490,,,,,,8,
+3246,V_B_TRENTINI@NPC_CALLSLAVE,attack,352,1,1000,0,10000,yes,self,always,,,,,,,,
+3246,V_B_TRENTINI@NPC_SUMMONSLAVE,attack,196,1,1000,700,10000,no,self,slavele,3,3233,3234,3235,3236,3237,3238,
+3246,V_B_TRENTINI@NPC_SUMMONMONSTER,attack,209,1,1000,700,60000000,no,self,myhpltmaxrate,30,3233,3234,3235,3236,3237,3238,
+// 3246,V_B_TRENTINI@NPC_UGLYDANCE,attack,2541,5,100,1000,70000,no,self,always,,,,,,,,
+3246,V_B_TRENTINI@NPC_MAXPAIN,attack,716,9,300,1000,20000,no,self,always,,,,,,,47,
+3246,V_B_TRENTINI@NPC_PULSESTRIKE,attack,661,3,100,0,10000,yes,self,always,,,,,,,,
+3246,V_B_TRENTINI@NPC_WIDESILENCE,attack,663,5,100,1000,20000,no,self,always,,,,,,,,
+3246,V_B_TRENTINI@NPC_WIDESTUN,attack,678,5,100,1000,20000,no,self,always,,,,,,,,
+3246,V_B_TRENTINI@NPC_WIDEFREEZE,attack,664,5,100,1000,20000,no,self,always,,,,,,,,
+3246,V_B_TRENTINI@NPC_WIDECURSE,attack,677,5,100,1000,20000,no,self,always,,,,,,,,
+3246,V_B_TRENTINI@NPC_WIDEBLEEDING,attack,665,5,100,1000,20000,no,self,always,,,,,,,,
+3246,V_B_TRENTINI@NPC_WIDESTONE,attack,666,5,100,1000,20000,no,self,always,,,,,,,,
+3246,V_B_TRENTINI@NPC_WIDESLEEP,attack,668,5,100,1000,20000,no,self,always,,,,,,,,
+3246,V_B_TRENTINI@NPC_WIDECONFUSE,attack,667,5,100,1000,20000,no,target,always,,,,,,,,
+
 //=================================================================
 // Phantasmagorika 15.2 Mob Skills Placeholder (Gathered from jRO)
 //=================================================================
@@ -11236,3 +11899,7 @@
 3254,T_W_O@NPC_WIDESTONE,attack,666,5,600,0,30000,no,self,always,0,,,,,,,
 3254,T_W_O@NPC_WIDESOULDRAIN,attack,680,10,1000,0,60000,no,self,always,0,,,,,,,
 3254,T_W_O@NPC_CRITICALWOUND,attack,673,5,150,500,45000,no,target,always,,,,,,,,
+
+3505,DR_BIG_EGGRING@NPC_SUMMONSLAVE,attack,196,4,10000,2000,10000,no,self,slavele,3,3508,,,,,,
+3505,DR_BIG_EGGRING@NPC_SUMMONSLAVE,idle,196,4,10000,2000,10000,no,self,slavele,3,3508,,,,,,
+

+ 4 - 4
db/re/pet_db.txt

@@ -56,12 +56,12 @@
 1109,DEVIRUCHI,Deviruchi,641,9023,10004,711,80,60,10,100,250,20,500,150,0,0,800,200,100,{ petskillbonus bAgiDexStr,6,20,40; },{ bonus bMatkRate,1; bonus2 bAddClass,Class_All,1; bonus bMaxHPrate,-3; bonus bMaxSPrate,-3; }
 1101,BAPHOMET_,Baphomet Jr.,642,9024,10001,518,80,60,10,100,250,20,200,150,0,0,1000,100,200,{ petskillattack2 "NPC_DARKNESSATTACK",1776,4,0,5; },{ bonus bDef,1; bonus bMdef,1; bonus2 bResEff,Eff_Stun,-100; }
 1188,BON_GUN,Bon Gun,659,9025,10020,537,80,60,30,100,250,20,500,150,1,0,600,200,400,{ petskillattack2 "NPC_DARKNESSATTACK",555,1,1,1; },{ bonus bVit,1; bonus2 bResEff,Eff_Stun,100; }
-1200,ZHERLTHSH,Zealotus,660,9026,0,929,80,60,10,100,250,20,300,150,0,0,1000,100,500,{ petskillattack "AS_SONICBLOW",1,0,3; },{ bonus2 bAddRace,RC_Demihuman,2; bonus2 bMagicAddRace,RC_DemiHuman,2; }
-1275,ALICE,Alice,661,9027,0,504,80,60,20,100,250,20,800,150,0,0,100,1000,200,{ petskillsupport "AL_HEAL",5,60,25,100; },{ bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; }
+1200,ZHERLTHSH,Zealotus,660,9026,0,929,80,60,10,100,250,20,300,150,0,0,1000,100,500,{ petskillattack "AS_SONICBLOW",1,0,3; },{ bonus2 bAddRace,RC_Demihuman,2; bonus2 bAddRace,RC_Player,2; bonus2 bMagicAddRace,RC_DemiHuman,2; bonus2 bMagicAddRace, RC_Player,2; }
+1275,ALICE,Alice,661,9027,0,504,80,60,20,100,250,20,800,150,0,0,100,1000,200,{ petskillsupport "AL_HEAL",5,60,25,100; },{ bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,1; bonus2 bSubRace,RC_Player,1; }
 1815,EVENT_RICECAKE,Rice Cake,0,9028,0,511,80,60,50,100,250,20,2000,150,1,0,500,500,200,{ petskillsupport "CR_DEFENDER",3,240,50,100; },{ bonus2 bSubEle,Ele_Neutral,1; bonus bMaxHPrate,-1; }
 1245,GOBLINE_XMAS,Christmas Goblin,12225,9029,0,911,80,60,50,100,250,20,2000,150,0,0,300,300,800,{ petskillattack "MG_SIGHT",5,5,5; },{ bonus bMaxHP,30; bonus2 bSubEle,Ele_Water,1; }
 
-1519,CHUNG_E,Green Maiden,12395,9030,0,6115,80,60,50,100,250,20,2000,150,0,0,300,300,800,{ petskillattack "CR_SHIELDCHARGE",5,5,5; },{ bonus bDef,1; bonus2 bSubRace,RC_DemiHuman,1; }
+1519,CHUNG_E,Green Maiden,12395,9030,0,6115,80,60,50,100,250,20,2000,150,0,0,300,300,800,{ petskillattack "CR_SHIELDCHARGE",5,5,5; },{ bonus bDef,1; bonus2 bSubRace,RC_DemiHuman,1; bonus2 bSubRace,RC_Player,1; }
 1879,ECLIPSE_P,Spring Rabbit,0,9031,0,7766,80,60,50,100,250,20,2000,150,0,0,300,300,800,{ petskillattack "TF_THROWSTONE",1,5,5; },{}
 1122,GOBLIN_1,Goblin,14569,9032,0,7821,80,60,50,100,250,20,800,150,0,0,300,300,800,{ petskillattack "NPC_WINDATTACK",5,5,5; },{}
 1123,GOBLIN_2,Goblin,14570,9033,0,7821,80,60,50,100,250,20,800,150,0,0,300,300,800,{ petskillattack "NPC_FIREATTACK",5,5,5; },{}
@@ -77,7 +77,7 @@
 1143,MARIONETTE,Marionette,12361,9043,10025,6098,80,60,10,100,250,20,500,150,0,0,300,300,800,{},{ bonus bSPrecovRate,3; }
 1148,MEDUSA,Medusa,12368,9050,10032,6108,80,60,10,100,250,20,200,150,0,0,300,300,800,{},{ bonus bVit,1; bonus2 bResEff,Eff_Stone,500; }
 1179,WHISPER,Whisper,12363,9045,10027,6100,80,60,20,100,250,20,500,150,0,0,300,300,800,{},{ bonus bFlee,7; bonus bDef,-3; }
-1299,GOBLIN_LEADER,Goblin Leader,12364,9046,10028,6104,80,60,10,100,250,20,50,150,0,0,300,300,800,{},{ bonus2 bAddRace,RC_DemiHuman,3; }
+1299,GOBLIN_LEADER,Goblin Leader,12364,9046,10028,6104,80,60,10,100,250,20,50,150,0,0,300,300,800,{},{ bonus2 bAddRace,RC_DemiHuman,3; bonus2 bAddRace,RC_Player,3; }
 1370,SUCCUBUS,Succubus,12373,9055,10037,6113,80,60,10,100,250,20,200,150,0,0,300,300,800,{ bonus2 bHPDrainRate,10,5; },{ bonus2 bHPDrainRate,30,5; bonus bMaxHPrate,1; }
 1374,INCUBUS,Incubus,12370,9052,10034,6110,80,60,10,100,250,20,50,150,0,0,300,300,800,{ bonus bMaxSPRate,3; bonus2 bSPDrainRate,10,1; },{ bonus bMaxSPRate,5; bonus2 bSPDrainRate,30,1; }
 1379,NIGHTMARE_TERROR,Nightmare Terror,12372,9054,10036,6112,80,60,10,100,250,20,200,150,0,0,300,300,800,{},{ bonus2 bResEff,Eff_Sleep,10000; }

+ 140 - 10
db/re/quest_db.txt

@@ -140,6 +140,23 @@
 1261,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Cursed Swordman"
 1263,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Cursed Swordman"
 
+// Rockridge
+1298,0,3740,20,0,0,0,0,0,0,0,0,0,0,0,0,0,"Gas! Gas!"
+1299,4:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Patrol Once a Day"
+
+1321,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Spotty and Her Ring"
+1322,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Found Something"
+1323,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Spotty, No!"
+1324,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Spotty, No!"
+1325,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Spotty, No!"
+1326,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Spotty, No!"
+1327,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Spotty, No!"
+1328,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Found Missing Items"
+1329,4:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Spotty in the Dreamland"
+1330,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Spotty's Holes"
+1331,0,3736,3,3737,3,3738,3,0,0,0,0,0,0,0,0,0,"Avenging Spotty"
+1332,4:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Blood for Blood"
+
 2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Job Change to Blacksmith"
 2001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Job Change to Blacksmith"
 2002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Job Change to Blacksmith"
@@ -1575,6 +1592,36 @@
 7563,72000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Standby for Kafragaten Challenge 1"
 7564,72000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Standby for Kafragaten Challenge 2"
 
+// Devil Tower Memorial
+7568,5400,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Explore the tower"
+7569,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Treat the injured"
+7570,0,2939,7,2940,7,2941,7,0,0,0,0,0,0,0,0,0,"Destroy the demons"
+7571,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Tower Expedition"
+7572,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Lucile...?"
+7573,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Magic Swordman Thanatos"
+7574,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Thanatos Tower"
+7576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Morocc castle seal"
+7577,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Space distortion"
+
+// Episode 14.3
+7578,0,3061,1,0,0,0,0,3061,6392,10000,0,0,0,0,0,0,"Rampaging Box"
+7579,0,3061,10,0,0,0,0,3061,6392,10000,0,0,0,0,0,0,"Collecting Bradiums"
+7580,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Collecting Every Day"
+7581,0,3039,1,3040,1,3041,1,0,0,0,0,0,0,0,0,0,"Eliminating Risks"
+7582,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Daily Cleaning"
+7583,0,0,0,0,0,0,0,3039,6708,10000,3040,6708,10000,3041,6708,10000,"Collecting Mana"
+7584,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Unending Battle"
+
+// Episode 14.3 part 2 - End of morocc
+7593,0,3097,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Demon God Subjugation"
+7594,0,3091,1,3092,1,0,0,0,0,0,0,0,0,0,0,0,"Frost Spider and Fire Wolf"
+7595,0,3101,3,3102,3,3103,3,0,0,0,0,0,0,0,0,0,"Wandering Orb Magic"
+// 7596,0,0,0,0,0,0,0,3105,6713,10000,3106,6714,10000,0,0,0,"Qualifications of the Guests"
+7597,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Fall of the False God"
+7598,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Caged God"
+7599,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Unending Hunt"
+7600,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Promising Tomorrow"
+
 // Episode 15.1 Verus City
 7606,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Phantasmagorika Excavator Recruitment"
 7607,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Eden Group Leader"
@@ -1661,6 +1708,28 @@
 7722,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"EMT"
 7723,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"The potential within"
 
+// Rockridge
+7790,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Rock Ridge, Land of Opportunities"
+7791,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Problems in Rock Ridge"
+7792,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Problems in Rock Ridge 2"
+7793,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Good News"
+7794,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Expected Response"
+7795,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Negotiation on the Railroad"
+7796,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Unexpected Arrest"
+7797,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Hear Me Out 1"
+7798,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Perfectly Prime"
+7799,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Shawn McCurdy's Weapon 1"
+7800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Shawn McCurdy's Weapon 2"
+7801,0,0,0,0,0,0,0,3742,25247,10000,0,0,0,0,0,0,"Shawn McCurdy's Weapon 3"
+7802,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Hear Me Out 2"
+7803,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Happy for Broken Trust"
+7804,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Location of the Ores"
+7805,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Location of the Ores 2"
+7806,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Location of the Ores 3"
+7807,0,3736,3,3737,3,3738,3,0,0,0,0,0,0,0,0,0,"Ace up Our Sleeve"
+7808,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Case Solved"
+7809,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Collecting Ores"
+
 8000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Quitting Job Change"
 8001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Job Change to Assassin"
 8002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Job Change to Assassin"
@@ -2098,6 +2167,13 @@
 9336,604800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Go back to Professor Bernhard"
 9337,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Wrapping up the Adventure"
 
+// Rockridge
+9457,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Solved Anyway"
+9458,0,3743,20,0,0,0,0,0,0,0,0,0,0,0,0,0,"Pipe Cleaning"
+9459,4:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Too Early for Pipe Cleaning"
+9460,0,0,0,0,0,0,0,3736,25260,5000,3737,25260,5000,3739,25260,5000,"Collecting Ore Fragments"
+9461,4:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Enough Ores"
+
 10000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"To the Prontera Royal Court"
 10001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Qualification Test"
 10002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Qualification Review"
@@ -2986,6 +3062,38 @@
 // Banquet Quests
 12369,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Secret Business Relation"
 
+// Rockridge
+12381,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"New Continent's Food Supplier"
+12382,4:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Distributing Food"
+12383,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Sweet Potato Delivery"
+12384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Meat Delivery"
+12385,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Carrot Delivery"
+12386,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Banana Delivery"
+12387,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Pumpkin Delivery"
+12388,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Mushroom Delivery"
+12389,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Guardian of Rock Ridge"
+12390,4:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Relieved for Now"
+12391,0,3736,15,0,0,0,0,0,0,0,0,0,0,0,0,0,"Buffaloes with Rifles"
+12392,0,3737,15,0,0,0,0,0,0,0,0,0,0,0,0,0,"Punishing the Red Masks"
+12393,0,3738,15,0,0,0,0,0,0,0,0,0,0,0,0,0,"Eye Patch Desperadoes"
+12394,0,3739,20,0,0,0,0,0,0,0,0,0,0,0,0,0,"Exterminate Gray Four-legged Beasts"
+12395,0,3787,10,0,0,0,0,0,0,0,0,0,0,0,0,0,"Exterminate Swamp Arclouzes"
+12396,0,3788,10,0,0,0,0,0,0,0,0,0,0,0,0,0,"Exterminate Brown Rats"
+12398,4:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"You're Good"
+12399,0,3747,10,0,0,0,0,0,0,0,0,0,0,0,0,0,"Hunt Heinous Criminals"
+12400,0,3748,10,0,0,0,0,0,0,0,0,0,0,0,0,0,"Hunt Heinous Criminals"
+12401,0,3749,10,0,0,0,0,0,0,0,0,0,0,0,0,0,"Hunt Heinous Criminals"
+12402,0,3740,10,0,0,0,0,0,0,0,0,0,0,0,0,0,"Eliminate Dangerous Gas"
+12403,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Laborers of Rock Ridge"
+12404,4:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Are You Not Tired?"
+12405,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Maintain the Red Pipe"
+12406,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Maintain the Blue Pipe"
+12407,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Maintain the Yellow Pipe"
+12408,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Maintain the White Pipe"
+12409,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Pipes Maintained"
+12410,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Contract with the Wealthy Merchant"
+12411,4:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Come Back Tomorrow"
+
 13000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"RWC2011Card Gathering"
 13001,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"RWC2011Card Gathering - Hold"
 
@@ -3369,6 +3477,17 @@
 14591,0,3501,10,0,0,0,0,0,0,0,0,0,0,0,0,0,"Secret Ingredient"
 14592,04:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Resting Time"
 
+// Rock Ridge
+14672,0,3740,15,0,0,0,0,0,0,0,0,0,0,0,0,0,"Preparing for the Firework Festival"
+14673,4:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Time to Make Bombs"
+
+// A Bed Of Honor
+14683,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Mysterious Device"
+14684,3600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Mysterious Device"
+14685,3600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Mysterious Device"
+14686,3600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Mysterious Device"
+14687,3600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Mysterious Device"
+
 // Academy 14.2
 15000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Experiencing abnormal statuses"
 15001,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Hold your breath"
@@ -3496,16 +3615,27 @@
 16075,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Serin's Ambitions"
 16076,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Witch's Tonic"
 16077,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Serin's Release"
-16078,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Visit with Lady Hell"
-16079,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"The Sign"
-16080,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Dark Lord's return"
-16081,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Serin's Ambitions"
-16082,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Dark Lord's return"
-16083,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Serin's Realization"
-16084,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"The Sign"
-16085,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"The Sign"
-16086,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"The Sign"
-16087,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"The Sign"
+
+// Rock Ridge
+16078,0,3739,30,0,0,0,0,0,0,0,0,0,0,0,0,0,"Peace of the Family"
+16079,4:00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Back for More Coyotes Tomorrow"
+16080,0,3739,30,0,0,0,0,0,0,0,0,0,0,0,0,0,"Hunting Coyotes Again"
+16081,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Failed to Get Juice Mix Package"
+16082,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Discovered Suspicious Sand Pile"
+16083,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Discovered Wasteland Cactuten"
+16084,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Discovered Suspicious Sand Pile"
+16085,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Discovered Coyote"
+16086,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Discovered Suspicious Sand Pile"
+16087,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Discovered Cactus Girl"
+16088,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Discovered Coyote"
+16089,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Discovered Suspicious Sand Pile"
+16090,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Discovered Suspicious Sand Pile"
+16091,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Discovered Suspicious Sand Pile"
+16092,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Discovered Suspicious Sand Pile"
+16093,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Discovered Suspicious Sand Pile"
+16094,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Discovered Suspicious Sand Pile"
+16095,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Discovered Suspicious Sand Pile"
+
 16101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Kiel Hyre Academy"
 16102,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Kiel Hyre Academy"
 16103,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Kiel Hyre Academy"

+ 16 - 2
db/re/skill_cast_db.txt

@@ -167,8 +167,6 @@
 85,9600:9280:8960:8640:8320:8000:7680:7360:7040:6720,5000,0,4000,20000,0,2400:2320:2240:2160:2080:2000:1920:1840:1760:1680
 //-- WZ_WATERBALL
 86,640:1280:1920:2560:3200,0,0,10000,0,0,160:320:480:640:800
-//-- WZ_ICEWALL
-87,0,0,0,5000:10000:15000:20000:25000:30000:35000:40000:45000:50000,0,0,0
 //-- WZ_FROSTNOVA
 88,640:640:576:576:512:512:448:448:384:384,200,0,0,4000:5500:7000:8500:10000:11500:13000:14500:16000:17500,0,160:160:144:144:128:128:112:112:96:96
 //-- WZ_STORMGUST
@@ -1045,6 +1043,12 @@
 //===== New Monster Skills (12.1) ==========
 //-- NPC_VENOMFOG
 706,0,0,0,3000,0,0,-1
+//-- NPC_ICEMINE
+709,0,0,0,10000,0,0,-1
+//-- NPC_FLAMECROSS
+711,0,0,0,3000,0,0,-1
+//-- NPC_DARKPIERCING
+715,0,2000,0,0,0,0,-1
 //-- NPC_MAXPAIN
 716,0,0,0,10000,0,0,0
 //-- NPC_JACKFROST
@@ -1811,6 +1815,10 @@
 5040,0,1000,0,60000:90000:120000:150000:180000,120000,10000,0
 //-- SU_FRESHSHRIMP
 5041,0,1000,0,120000,0,6000:5000:4000:3000:2000,0
+//-- SU_CN_METEOR2
+5042,0,0,0,1500:2000:2500:3000:3500,20000,0,-1
+//-- SU_LUNATICCARROTBEAT2
+5043,0,0,0,0,5000,0,-1
 //-- SU_POWEROFFLOCK
 5045,5000:4000:3000:2000:1000,1000,0,15000,10000,100000,-1
 //-- SU_SVG_SPIRIT
@@ -1840,6 +1848,10 @@
 5064,1500,0,0,0,0,0,1500
 //-- WE_CHEERUP
 5065,1500,0,0,60000,0,0,1500
+
+//-- ALL_EQSWITCH
+5067,0,0,0,0,0,10000,60
+
 //==========================================
 
 //===== Homunculus Skills ==================
@@ -1984,6 +1996,8 @@
 8239,0,0,0,60000:80000:100000:120000:140000:160000:180000:200000:220000:240000,0,0,0
 //-- MER_INCAGI
 8240,1000,1000,0,60000:80000:100000:120000:140000:160000:180000:200000:220000:240000,0,0,0
+//-- MER_INVINCIBLEOFF2
+8241,0,0,0,10000,0,30000,0
 //==========================================
 
 //===== Elemental Skills =======================

+ 2 - 0
db/re/skill_castnodex_db.txt

@@ -61,6 +61,8 @@
 2537,0,7	//ALL_ODINS_POWER
 3035,7,7	//ECLAGE_RECALL
 
+5067,7,7	//ALL_EQSWITCH
+
 // Mercenary Skills
 8214,7	//MA_CHARGEARROW
 8215,7	//MA_SHARPSHOOTING

+ 64 - 62
db/re/skill_db.txt

@@ -54,26 +54,28 @@
 // 14 attack type (none, weapon, magic, misc)
 // 15 Blowcount (amount of tiles skill knockbacks)
 // 16 inf3 (skill information 3):
-//    0x00001 - skill ignores land protector
-//    0x00002 - free
-//    0x00004 - usable skills while hiding
-//    0x00008 - skill that can be use while in dancing state
-//    0x00010 - skill that could hit emperium
-//    0x00020 - skill ignores SC_STASIS
-//    0x00040 - skill blocked by kagehumi
-//    0x00080 - skill range affected by AC_VULTURE
-//    0x00100 - skill range affected by GS_SNAKEEYE
-//    0x00200 - skill range affected by NJ_SHADOWJUMP
-//    0x00400 - skill range affected by WL_RADIUS
-//    0x00800 - skill range affected by RA_RESEARCHTRAP
-//    0x01000 - skill that does not affect user that has NC_HOVERING active
-//    0x02000 - skill that can be using while riding warg
-//    0x04000 - skill that can be used while on Madogear
-//    0x08000 - skill that can be used to target while under SC__MANHOLE effect
-//    0x10000 - skill that affects hidden targets
-//    0x20000 - skill that affects SC_GLOOMYDAY_SK
-//    0x40000 - skill that is affected by SC_DANCEWITHWUG
-//    0x80000 - skill blocked by RA_WUGBITE
+//    0x000001 - skill ignores land protector
+//    0x000002 - free
+//    0x000004 - usable skills while hiding
+//    0x000008 - skill that can be use while in dancing state
+//    0x000010 - skill that could hit emperium
+//    0x000020 - skill ignores SC_STASIS
+//    0x000040 - skill blocked by kagehumi
+//    0x000080 - skill range affected by AC_VULTURE
+//    0x000100 - skill range affected by GS_SNAKEEYE
+//    0x000200 - skill range affected by NJ_SHADOWJUMP
+//    0x000400 - skill range affected by WL_RADIUS
+//    0x000800 - skill range affected by RA_RESEARCHTRAP
+//    0x001000 - skill that does not affect user that has NC_HOVERING active
+//    0x002000 - skill that can be using while riding warg
+//    0x004000 - skill that can be used while on Madogear
+//    0x008000 - skill that can be used to target while under SC__MANHOLE effect
+//    0x010000 - skill that affects hidden targets
+//    0x020000 - skill that affects SC_GLOOMYDAY_SK
+//    0x040000 - skill that is affected by SC_DANCEWITHWUG
+//    0x080000 - skill blocked by RA_WUGBITE
+//    0x100000 - skill is not blocked by SC_AUTOGUARD (physical-skill only)
+//    0x200000 - skill is not blocked by SC_UTSUSEMI or SC_BUNSINJYUTSU (physical-skill only)
 // 17 Name
 // 18 Description
 1,0,0,0,0,0,0,9,0,no,0,0,0,none,0,0x0,		NV_BASIC,Basic Skill
@@ -127,9 +129,9 @@
 37,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0,		MC_DISCOUNT,Discount
 38,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0,		MC_OVERCHARGE,Overcharge
 39,1,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0,		MC_PUSHCART,Pushcart
-40,1,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0,		MC_IDENTIFY,Item Appraisal
-41,1,6,4,0,0x1,0,10,1,no,0,0,0,none,0,0x0,		MC_VENDING,Vending
-42,-1,6,1,-1,0,0,10,1,no,0,0,0,weapon,0,0x0,		MC_MAMMONITE,Mammonite
+40,1,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x4000,		MC_IDENTIFY,Item Appraisal
+41,1,6,4,0,0x1,0,10,1,no,0,0,0,none,0,0x4000,		MC_VENDING,Vending
+42,-1,6,1,-1,0,0,10,1,no,0,0,0,weapon,0,0x4000,		MC_MAMMONITE,Mammonite
 
 //****
 // Archer
@@ -213,13 +215,13 @@
 105,0,0,0,0,0,0,1,0,no,0,0,0,weapon,0,0x0,		BS_HILTBINDING,Hilt Binding
 106,0,0,0,0,0,0,1,0,no,0,0,0,weapon,0,0x0,		BS_FINDINGORE,Ore Discovery
 107,0,0,0,0,0,0,10,0,no,0,0,0,weapon,0,0x0,		BS_WEAPONRESEARCH,Weaponry Research
-108,2,6,16,0,0x1,0,1,1,yes,0,0,0,weapon,0,0x0,	BS_REPAIRWEAPON,Weapon Repair
+108,2,6,16,0,0x1,0,1,1,yes,0,0,0,weapon,0,0x4000,	BS_REPAIRWEAPON,Weapon Repair
 109,0,0,0,0,0,0,5,0,no,0,0,0,weapon,0,0x0,		BS_SKINTEMPER,Skin Tempering
-110,1,6,2,0,0x3,2:2:2:2:2:12,5,1,no,0,0,0,weapon,0,0x0,	BS_HAMMERFALL,Hammer Fall
-111,0,6,4,0,0x3,-1,5,1,no,0,0,0,weapon,0,0x0,	BS_ADRENALINE,Adrenaline Rush
-112,0,6,4,0,0x3,-1,5,1,no,0,0,0,weapon,0,0x0,	BS_WEAPONPERFECT,Weapon Perfection
-113,0,6,4,0,0x3,-1,5,1,no,0,0,0,weapon,0,0x0,	BS_OVERTHRUST,Power-Thrust
-114,0,6,4,0,0x1,0,5,1,no,0,0,0,weapon,0,0x0,		BS_MAXIMIZE,Maximize Power
+110,1,6,2,0,0x3,2:2:2:2:2:12,5,1,no,0,0,0,weapon,0,0x4000,	BS_HAMMERFALL,Hammer Fall
+111,0,6,4,0,0x3,-1,5,1,no,0,0,0,weapon,0,0x4000,	BS_ADRENALINE,Adrenaline Rush
+112,0,6,4,0,0x3,-1,5,1,no,0,0,0,weapon,0,0x4000,	BS_WEAPONPERFECT,Weapon Perfection
+113,0,6,4,0,0x3,-1,5,1,no,0,0,0,weapon,0,0x4000,	BS_OVERTHRUST,Power-Thrust
+114,0,6,4,0,0x1,0,5,1,no,0,0,0,weapon,0,0x4000,		BS_MAXIMIZE,Maximize Power
 
 //****
 // Hunter
@@ -267,9 +269,9 @@
 150,0,6,4,0,0x1,0,1,1,no,0,0x1,0,weapon,5,0x40,	TF_BACKSLIDING,Back Slide
 151,0,6,4,0,0x1,0,1,1,no,0,0x1,0,none,0,0x0,		TF_PICKSTONE,Find Stone
 152,7,6,1,0,0x40,0,1,1,no,0,0x1,0,misc,0,0x0,	TF_THROWSTONE,Stone Fling
-153,1,6,1,-1,0x2,1,1,1,no,0,0x40001,0,weapon,2,0x0,	MC_CARTREVOLUTION,Cart Revolution
-154,0,6,4,0,0x1,0,1,1,no,0,0x1,0,none,0,0x0,		MC_CHANGECART,Change Cart
-155,0,6,4,0,0x1,0,1,1,no,0,0x1,0,weapon,0,0x0,	MC_LOUD,Crazy Uproar
+153,1,6,1,-1,0x2,1,1,1,no,0,0x40001,0,weapon,2,0x4000,	MC_CARTREVOLUTION,Cart Revolution
+154,0,6,4,0,0x1,0,1,1,no,0,0x1,0,none,0,0x4000,		MC_CHANGECART,Change Cart
+155,0,6,4,0,0x1,0,1,1,no,0,0x1,0,weapon,0,0x4000,	MC_LOUD,Crazy Uproar
 156,9,6,1,6,0,0,1,1,yes,0,0x1,0,magic,0,0x0,		AL_HOLYLIGHT,Holy Light
 157,0,6,4,0,0x1,0,1,1,yes,0,0x1,0,magic,0,0x0,	MG_ENERGYCOAT,Energy Coat
 
@@ -352,8 +354,8 @@
 226,0,0,0,0,0,0,10,0,no,0,0,0,weapon,0,0x0,		AM_AXEMASTERY,Axe Mastery
 227,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0,		AM_LEARNINGPOTION,Potion Research
 228,0,6,4,0,0x1,0,10,0,no,0,0,0,none,0,0x0,		AM_PHARMACY,Prepare Potion
-229,9,6,2,3,0x9,0,5,1,yes,0,0,0,weapon,0,0x0,	AM_DEMONSTRATION,Bomb
-230,9,6,1,0,0x48,0,5,1,yes,0,0,0,weapon,0,0x0,	AM_ACIDTERROR,Acid Terror
+229,9,6,2,3,0x9,0,5,1,yes,0,0,0,weapon,0,0x300000,	AM_DEMONSTRATION,Bomb
+230,9,6,1,0,0x48,0,5,1,yes,0,0,0,weapon,0,0x300000,	AM_ACIDTERROR,Acid Terror
 231,9,6,16,0,0x1,0,5,1,yes,0,0xC00,0,none,0,0x0,	AM_POTIONPITCHER,Aid Potion
 232,4,6,2,0,0x1,0,5,1,no,0,0,5,none,0,0x0,		AM_CANNIBALIZE,Summon Flora
 233,1,6,2,0,0x1,0,5,1,no,0,0,3,none,0,0x0,		AM_SPHEREMINE,Summon Marine Sphere
@@ -530,7 +532,7 @@
 //****
 // Paladin
 367,9,8,1,0,0xD0,0,5,1,no,0,0x18000,0,misc,0,0x0,		PA_PRESSURE,Gloria Domini
-368,0,6,4,0,0x69,0,5,1,yes,0,0,0,weapon,0,0x0,	PA_SACRIFICE, Martyr's Reckoning
+368,0,6,4,0,0x69,0,5,1,yes,0,0,0,weapon,0,0x300000,	PA_SACRIFICE, Martyr's Reckoning
 369,0,6,4,0,0x41,0,10,1,yes,0,0,0,misc,0,0x0,	PA_GOSPEL,Battle Chant
 
 //****
@@ -561,10 +563,10 @@
 
 //****
 // Whitesmith
-384,0,0,4,0,0x1,0,10,1,yes,0,0,0,weapon,0,0x0,	WS_MELTDOWN,Shattering Strike
+384,0,0,4,0,0x1,0,10,1,yes,0,0,0,weapon,0,0x4000,	WS_MELTDOWN,Shattering Strike
 385,0,0,4,0,0x1,0,1,1,yes,0,0,0,none,0,0x0,	WS_CREATECOIN,Create Coins
 386,0,0,4,0,0x1,0,1,1,yes,0,0,0,none,0,0x0,	WS_CREATENUGGET,Create Nuggets
-387,0,6,4,0,0x1,0,1,1,no,0,0,0,weapon,0,0x0,		WS_CARTBOOST,Cart Boost
+387,0,6,4,0,0x1,0,1,1,no,0,0,0,weapon,0,0x4000,		WS_CARTBOOST,Cart Boost
 388,9,6,2,0,0x1,0,5,1,no,0,0,0,none,0,0x0,		WS_SYSTEMCREATE,Auto Attack System
 
 //****
@@ -607,7 +609,7 @@
 
 //****
 // Assassin Cross
-406,0,6,4,-1,0xA,2,10,1,no,0,0x40000,0,weapon,0,0x0,	ASC_METEORASSAULT,Meteor Assault
+406,0,6,4,-1,0xA,2,10,1,no,0,0x40000,0,weapon,0,0x300000,	ASC_METEORASSAULT,Meteor Assault
 407,0,6,4,0,0x1,0,1,0,no,0,0,0,none,0,0x0,		ASC_CDP,Create Deadly Poison
 
 //****
@@ -678,7 +680,7 @@
 
 //****
 // Blacksmith
-459,0,6,4,0,0x3,-1,1,1,no,0,0x8,0,weapon,0,0x0,		BS_ADRENALINE2,Advanced Adrenaline Rush
+459,0,6,4,0,0x3,-1,1,1,no,0,0x8,0,weapon,0,0x4000,		BS_ADRENALINE2,Advanced Adrenaline Rush
 
 //****
 // Soul Linker
@@ -702,7 +704,7 @@
 474,0,0,4,0,0x1,0,10,1,no,0,0x2,0,none,0,0x0,	NPC_EMOTION_ON,Emotion ON
 475,0,0,4,0,0x1,0,1,1,yes,0,0,0,none,0,0x0,		ST_PRESERVE,Preserve
 476,1,6,1,0,0x1,0,5,1,yes,0,0,0,weapon,0,0x0,	ST_FULLSTRIP,Divest All
-477,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x0,	WS_WEAPONREFINE,Upgrade Weapon
+477,0,6,4,0,0x1,0,10,1,no,0,0,0,weapon,0,0x4000,	WS_WEAPONREFINE,Upgrade Weapon
 478,3,6,2,0,0x3,3,10,1,no,0,0,0,none,0,0x0,		CR_SLIMPITCHER,Aid Condensed Potion
 479,1,6,16,0,0x1,0,5,1,yes,0,0,0,weapon,0,0x0,	CR_FULLPROTECTION,Full Protection
 480,4,8,1,-1,0,0,5,5,no,0,0,0,weapon,0,0x20000,		PA_SHIELDCHAIN,Shield Chain
@@ -710,8 +712,8 @@
 482,0,6,4,0,0x1,0,5,1,no,0,0,0,magic,0,0x0,		PF_DOUBLECASTING,Double Casting
 483,18,6,2,0,0x1,1:2:3:4:5,1,1,no,0,0,0,none,0,0x0,	HW_GANBANTEIN,Ganbantein
 484,18,6,2,2,0xD1,0,5,1,yes,0,0x18000,0,misc,0,0x11010,		HW_GRAVITATION,Gravitation Field
-485,-2,6,1,-1,0x0,0,10,1,no,0,0,0,weapon,0,0x0,	WS_CARTTERMINATION,Cart Termination
-486,0,6,4,0,0x1,0,5,1,no,0,0,0,weapon,0,0x0,		WS_OVERTHRUSTMAX,Maximum Power Thrust
+485,-2,6,1,-1,0x0,0,10,1,no,0,0,0,weapon,0,0x4000,	WS_CARTTERMINATION,Cart Termination
+486,0,6,4,0,0x1,0,5,1,no,0,0,0,weapon,0,0x4000,		WS_OVERTHRUSTMAX,Maximum Power Thrust
 487,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x8,		CG_LONGINGFREEDOM,Longing for Freedom
 488,0,6,4,0,0x1,1,5,1,no,0,0x20,0,misc,0,0x1,	CG_HERMODE,Wand of Hermode
 489,9,6,1,0,0x41,0,5,1,no,0,0,0,misc,0,0x0,		CG_TAROTCARD,Tarot Card of Fate
@@ -731,7 +733,7 @@
 500,0,6,4,0,0x41,0,5,1,no,0,0,0,misc,0,0x0,		GS_GLITTERING,Flip the Coin
 501,9,6,1,-1,0x50,0,1,1,no,0,0,0,misc,0,0x0,		GS_FLING,Fling
 502,-9,8,1,-1,0,0,1,3,no,0,0,0,weapon,0,0x0,		GS_TRIPLEACTION,Triple Action
-503,-9,6,1,-1,0x8,0,1,1,no,0,0,0,weapon,0,0x0,	GS_BULLSEYE,Bulls Eye
+503,-9,6,1,-1,0x8,0,1,1,no,0,0,0,weapon,0,0x300000,	GS_BULLSEYE,Bulls Eye
 504,0,6,4,0,0x1,0,1,1,no,0,0,0,weapon,0,0x0,		GS_MADNESSCANCEL,Madness Canceller
 505,0,6,4,0,0x1,0,1,1,no,0,0,0,weapon,0,0x0,		GS_ADJUSTMENT,AdJustment
 506,0,6,4,0,0x1,0,1,1,no,0,0,0,weapon,0,0x0,		GS_INCREASING,Increasing Accuracy
@@ -852,13 +854,14 @@
 706,0,6,4,5,0,0,10,1,no,0,0x2,0,magic,0,0x1,	NPC_VENOMFOG,Venom Fog
 //707,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_MILLENNIUMSHIELD,Millenium Shield 2
 708,11,8,2,0,0x2,9,5,-20,yes,0,0,0,magic,2,0x400,	NPC_COMET,Comet 2
-//709,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_ICEMINE,Ice Mine
+709,0,6,4,0,0xA0,0,10,1,no,0,0x2,0,magic,0,0x0,	NPC_ICEMINE,Ice Mine
 //710,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_ICEEXPLO,Ice Explosion
-//711,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_FLAMECROSS,Flame Cross
+711,0,6,4,0,0x80,0,5,1,no,0,0x2,0,magic,2,0x1,	NPC_FLAMECROSS,Flame Cross
 //712,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_PULSESTRIKE2,Pulse Strike 2
 //713,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_DANCINGBLADE,Dancing Blade
 //714,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_DANCINGBLADE_ATK,Dancing Blade Attack
-//715,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_DARKPIERCING,Dark Piercing
+// 715,3,6,1,0,0x0,0,1,1,yes,0,0x2,0,weapon,0,0x0,	NPC_DARKPIERCING,Dark Piercing
+715,3,6,1,0,0x2,2,1,1,yes,0,0x2,14,weapon,0,0,	NPC_DARKPIERCING,Dark Piercing
 716,0,6,4,0,0x1,0,10,0,no,0,0x2,0,none,0,0x0,		NPC_MAXPAIN,Max Pain
 717,0,6,1,0,0xD2,18,10,1,no,0,0x2,0,misc,0,0x0,		NPC_MAXPAIN_ATK,Max Pain Attack
 718,0,0,4,0,0x1,0,10,1,no,0,0x2,0,magic,0,0x0,	NPC_DEATHSUMMON,Death Summon
@@ -870,8 +873,8 @@
 //724,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_FIRESTORM,Fire Storm
 //725,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_REVERBERATION,Reverberation 2
 //726,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_REVERBERATION_ATK,Reverberation Attack
-//727,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_LEX_AETERNA,Lex Aeterna 2
-//728,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_ARROWSTORM,NPC Arrow Storm
+727,9,6,2,0,0x3,2:5:8:11:14,5,0,yes,0,0x2,0,magic,0,0x0,	NPC_LEX_AETERNA,Lex Aeterna 2
+728,9,8,1,-1,0x2,3:3:3:3:3:4:4:4:4:5,10,-3,yes,0,0x2,0,weapon,0,0x80,		NPC_ARROWSTORM,NPC Arrow Storm
 //729,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_CHEAL,NPC Coluceo Heal
 //730,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_SR_CURSEDCIRCLE,NPC 
 //731,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,		NPC_DRAGONBREATH,NPC Dragon Breath
@@ -905,7 +908,7 @@
 1001,14,6,1,-1,0,0,1,1,no,0,0x1,0,weapon,0,0x0,	KN_CHARGEATK,Charge Attack
 1002,0,6,4,0,0x1,0,1,0,no,0,0x1,0,weapon,2,0x0,	CR_SHRINK,Shrink
 1003,0,0,0,0,0,0,1,0,no,0,0x1,0,weapon,0,0x0,	AS_SONICACCEL,Sonic Acceleration
-1004,9,8,1,0,0x8,0,1,1,no,0,0x1,0,weapon,0,0x0,	AS_VENOMKNIFE,Throw Venom Knife
+1004,9,8,1,0,0x8,0,1,1,no,0,0x1,0,weapon,0,0x300000,	AS_VENOMKNIFE,Throw Venom Knife
 1005,1,6,1,0,0x1,0,1,1,no,0,0x1,0,weapon,0,0x0,	RG_CLOSECONFINE,Close Confine
 1006,0,6,4,3,0,1,1,1,yes,0,0x40001,0,magic,3,0x0,	WZ_SIGHTBLASTER,Sight Blaster
 1007,0,6,4,0,0x1,0,1,0,no,0,0x1,0,none,0,0x0,	SA_CREATECON,Create Elemental Converter
@@ -1038,8 +1041,8 @@
 2240,0,6,4,0,0,0,1,1,no,0,0,0,none,0,0x0,		RA_WUGMASTERY,Warg Mastery
 2241,0,6,4,0,0,0,3,1,no,0,0,0,none,0,0x2000,		RA_WUGRIDER,Warg Rider
 2242,0,6,4,-1,0x42,1,1,1,no,0,0,0,weapon,0,0x42000,	RA_WUGDASH,Warg Dash
-2243,9,6,1,0,0x98,0,5,1,no,0,0,0,weapon,0,0x42000,	RA_WUGSTRIKE,Warg Strike
-2244,9,6,1,0,0x98,0,5,1,no,0,0,0,weapon,0,0x40080,	RA_WUGBITE,Warg Bite
+2243,9,6,1,0,0x98,0,5,1,no,0,0,0,weapon,0,0x342000,	RA_WUGSTRIKE,Warg Strike
+2244,9,6,1,0,0x98,0,5,1,no,0,0,0,weapon,0,0x340080,	RA_WUGBITE,Warg Bite
 2245,0,0,0,0,0,0,10,0,no,0,0,0,none,0,0x0,		RA_TOOTHOFWUG,Tooth of Warg
 2246,0,6,4,0,0x2,3:4:5:6:7,5,1,no,0,0x40000,0,weapon,0,0x0,	RA_SENSITIVEKEEN,Sensitive Keen
 2247,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x80040,		RA_CAMOUFLAGE,Camouflage
@@ -1065,7 +1068,7 @@
 2264,0,6,4,0,0x1,0,1,1,no,0,0,0,none,7,0x4000,		NC_F_SIDESLIDE,Front-Side Slide
 2265,0,6,4,0,0x1,0,1,1,no,0,0,0,none,7,0x4000,		NC_B_SIDESLIDE,Back-Side Slide
 2266,0,0,0,0,0,0,4,0,no,0,0,0,none,0,0x0,		NC_MAINFRAME,Mainframe Restructure
-2267,0,6,4,0,0xCA,2:3:4,3,1,no,0,0x40000,0,weapon,5,0x4000,	NC_SELFDESTRUCTION,Self Destruction
+2267,0,6,4,0,0xCA,2:3:4,3,1,no,0,0x40000,0,weapon,5,0x304000,	NC_SELFDESTRUCTION,Self Destruction
 2268,0,6,4,0,0x1,0,4,1,yes,0,0,0,none,0,0x4000,	NC_SHAPESHIFT,Shape Shift
 2269,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x4000,		NC_EMERGENCYCOOL,Emergency Cool
 2270,0,6,4,0,0x3,7,1,1,yes,0,0,0,none,0,0x4000,	NC_INFRAREDSCAN,Infrared Scan
@@ -1121,7 +1124,7 @@
 2316,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0,0x0,	LG_EXEEDBREAK,Exceed Break
 2317,2,6,2,-1,0x2,0,5,1,yes,0,0,0,weapon,0,0x0,	LG_OVERBRAND,Over Brand
 2318,0,6,4,0,0x1,0,5,1,yes,0,0,0,none,0,0x0,	LG_PRESTIGE,Prestige
-2319,0,6,4,0,0x3,3,5,1,no,0,0,0,weapon,0,0x0,	LG_BANDING,Banding //CHECK Splash isnt needed right? Banding has its own UNIT ID.
+2319,0,6,4,0,0x3,3,5,1,no,0,0,0,weapon,0,0x0,	LG_BANDING,Banding
 2320,0,6,4,-1,0x2,3,5,1,yes,0,0,0,weapon,0,0x1000,	LG_MOONSLASHER,Moon Slasher
 2321,1,8,2,6,0x2,5,5,-7,yes,0,0,0,weapon,0,0x0,	LG_RAYOFGENESIS,Ray of Genesis
 2322,0,6,16,0,0x3,1,5,1,yes,0,0,0,none,0,0x0,	LG_PIETY,Piety
@@ -1238,7 +1241,7 @@
 2479,9,6,2,0,0,0,5,1,yes,0,0x80,3,misc,0,0x0,	GN_THORNS_TRAP,Thorn Trap
 2480,11,6,1,0,0x1,0,5,1,yes,0,0,3,misc,0,0x0,		GN_BLOOD_SUCKER,Blood Sucker //CHECK Data says its a magic attack. Hmmmm....
 2481,11,6,1,-1,0x2,1:2:3:4:5,5,1,yes,0,0,0,weapon,0,0x0,	GN_SPORE_EXPLOSION,Spore Explosion //CHECK Data says its element is set to neutral. Need to confirm.
-2482,11,6,2,0,0x8,0,5,1,yes,0,0,1,weapon,2,0x0,	GN_WALLOFTHORN,Wall of Thorns
+2482,11,6,2,0,0x8,0,5,1,yes,0,0,1,weapon,2,0x300000,	GN_WALLOFTHORN,Wall of Thorns
 2483,11,6,2,0,0x3,4,10,1,yes,0,0x0,0,weapon,0,0x1,	GN_CRAZYWEED,Crazy Weed
 2484,0,6,2,2,0x2,2,10,1,no,0,0x40000,0,weapon,0,0x1,	GN_CRAZYWEED_ATK,Crazy Weed Attack
 2485,9,6,2,3,0,0,5,1,yes,0,0,1,magic,0,0x0,		GN_DEMONIC_FIRE,Demonic Fire
@@ -1268,7 +1271,7 @@
 //2541,0,6,4,0,0x1,0,5,1,no,0,0x2,0,none,0,0x0,		NPC_UGLYDANCE,Ugly Dance 2
 //2542,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0,	ALL_TETANY,Tetany
 //2543,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0,	ALL_RAY_OF_PROTECTION,Ray of Protection
-2544,0,6,4,0,0x1,0,1,1,no,0,0x1,0,none,0,0x0,		MC_CARTDECORATE,Decorate Cart
+2544,0,6,4,0,0x1,0,1,1,no,0,0x1,0,none,0,0x4000,		MC_CARTDECORATE,Decorate Cart
 //2545,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0,	GM_ITEM_ATKMAX,Maximize Attack
 //2546,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0,	GM_ITEM_ATKMIN,Minimize Attack
 //2547,0,6,4,0,0x1,0,1,1,no,0,0,0,none,0,0x0,	GM_ITEM_MATKMAX,Maximize Magic Attack
@@ -1296,7 +1299,7 @@
 2568,0,6,4,0,0x1,0,5,1,no,0,0,0,none,0,0x0,	RL_HEAT_BARREL,Heat Barrel
 2569,-9,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0x0,	RL_AM_BLAST,Anti-Material Blast
 2570,-9,6,1,0,0,0,5,1,no,0,0,0,weapon,6,0x0,	RL_SLUGSHOT,Slug Shot
-2571,-9,6,1,0,0x2,2,5,1,no,0,0,0,weapon,0,0x0,	RL_HAMMER_OF_GOD,Hammer of God
+2571,7:8:9:10:11,6,1,0,0x2,2,5,1,no,0,0,0,weapon,0,0x0,	RL_HAMMER_OF_GOD,Hammer of God
 2572,0,6,1,-1,0x40,0,5,1,no,0,0,0,weapon,0,0,	RL_R_TRIP_PLUSATK,Round Trip Plus Attack
 //2573,0,6,1,-1,0,0,5,1,no,0,0,0,weapon,0,0,	RL_B_FLICKER_ATK,Bind Flicker Attack
 //2574,0,6,1,-1,0,0,10,1,no,0,0,0,weapon,0,0,	RL_GLITTERING_GREED_ATK,Flip The Coin Greed Attack
@@ -1431,11 +1434,8 @@
 5039,9,6,16,0,0x1,0,5,1,yes,0,0,0,none,0,0x0,		SU_TUNAPARTY,Tuna Party
 5040,0,6,4,0,0x3,-1,5,1,yes,0,0,0,none,0,0x0,		SU_BUNCHOFSHRIMP,Bunch of Shrimp
 5041,9,6,16,0,0x3,0,5,1,yes,0,0,0,none,0,0x0,		SU_FRESHSHRIMP,Fresh Shrimp
-
-// Unknown Unconfirmed Summoner Skills - Animations Show On These
-//5042,0,0,0,0,0,0,5,0,yes,0,0,0,none,0,0x0,		SU_CN_METEOR_SEC,
-//5043,0,0,0,0,0,0,5,0,yes,0,0,0,none,0,0x0,		SU_LUNATICCARROTBEAT_SEC,
-
+5042,9,8,2,0,0,1:1:2:2:3,5,-5,yes,0,0,0,magic,0,0x0,		SU_CN_METEOR2,Catnip Meteor 2
+5043,9,8,1,-1,0x2,1:1:2:2:3,5,-3,yes,0,0,0,weapon,0,0x0,	SU_LUNATICCARROTBEAT2,Lunatic Carrot Beat 2
 5044,14,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0,		SU_SOULATTACK,Soul Attack
 5045,0,6,4,0,0x3,3:4:5:6:-1,5,0,yes,0,0,0,magic,0,0x0,	SU_POWEROFFLOCK,Power of Flock
 5046,9,8,1,-1,0,1,5,1,yes,0,0,14,weapon,0,0x0,	SU_SVG_SPIRIT,Spirit of Savage
@@ -1455,6 +1455,8 @@
 5064,3,6,16,0,0x1,0,1,1,yes,0,0x4,0,none,0,0,	WE_ONEFOREVER,One Forever
 5065,1,6,4,0,0x3,3,1,1,yes,0,0x4,0,none,0,0,	WE_CHEERUP,Cheer Up
 
+5067,0,0,4,0,0x1,0,1,0,no,0,0,0,none,0,0x0,		ALL_EQSWITCH,Equip Switch
+
 // New Arch Bishop Skills
 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
@@ -1546,7 +1548,7 @@
 8238,9,6,16,0,0x1,0,10,1,yes,0,0,0,magic,0,0x0,	MER_KYRIE,Kyrie Eleison
 8239,9,6,16,0,0x1,0,10,1,yes,0,0,0,magic,0,0x0,	MER_BLESSING,Blessing
 8240,9,6,16,0,0x1,0,10,1,yes,0,0,0,magic,0,0x0,	MER_INCAGI,Increase Agility
-//8241,2,6,2,0,0,0,1,1,no,0,0,0,none,0,0x0,		MER_INVINCIBLEOFF2,Mind Blaster
+8241,2,6,1,0,0x1,0,1,1,no,0,0,0,weapon,0,0x0,	MER_INVINCIBLEOFF2,Mind Blaster
 
 //****
 // Elemental Spirits Skills

+ 11 - 12
db/re/skill_require_db.txt

@@ -26,11 +26,11 @@
 // 'RequiredStatuses'
 //	Fill the value only with SC_STATUS (see db/const.txt for more details)
 //	Usage for multiple status requirements: SC_STATUS1:SC_STATUS2:SC_STATUS3
-//	Max. multiple value is 3 (skill.h: MAX_SKILL_STATUS_REQUIRE)
+//	Max. multiple value is 3 (skill.hpp: MAX_SKILL_STATUS_REQUIRE)
 //	Use any number or SC_ALL will disable status requirements
 // 'RequiredEquipment'
 //	Specified equipment to be equipped. For multiple values, use : as delimiter.
-//	Max. multiple value is 10 (skill.h: MAX_SKILL_EQUIP_REQUIRE)
+//	Max. multiple value is 10 (skill.hpp: MAX_SKILL_EQUIP_REQUIRE)
 
 //****
 // SM Swordman
@@ -502,8 +502,8 @@
 517,0,0,30:32:34:36:38:40:42:44:46:48,0,0,0,19,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	//GS_GATLINGFEVER
 518,0,0,3:6:9:12:15:18:21:24:27:30,0,0,0,20,3,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0		//GS_DUST
 519,0,0,20:25:30:35:40:45:50:55:60:65,0,0,0,20,3,2,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//GS_FULLBUSTER
-520,0,0,13:16:19:22:25:28:31:34:37:40,0,0,0,20:21,3:5,5,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0//GS_SPREADATTACK
-521,0,0,3:6:9:12:15:18:21:24:27:30,0,0,0,21,5,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0		//GS_GROUNDDRIFT
+520,0,0,13:16:19:22:25:28:31:34:37:40,0,0,0,20:21,3,5,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0//GS_SPREADATTACK
+521,0,0,3:6:9:12:15:18:21:24:27:30,0,0,0,21,3,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0		//GS_GROUNDDRIFT
 
 //****
 // NJ Ninja
@@ -690,14 +690,14 @@
 2265,0,0,5,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0							//NC_B_SIDESLIDE
 
 2267,0,0,200,0,0,0,99,0,0,mado,0,0,6146,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2802						//NC_SELFDESTRUCTION
-2268,0,0,100,0,0,0,99,0,0,mado,0,0,6360,3,6363,3,6362,3,6361,3,6146,2,0,0,0,0,0,0,0,0,0,0,2803			//NC_SHAPESHIFT
+2268,0,0,100,0,0,0,99,0,0,mado,0,0,6360,3,6363,3,6362,3,6361,3,0,0,0,0,0,0,0,0,0,0,6146,2,2803			//NC_SHAPESHIFT
 2269,0,0,20,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2804:2809:2810				//NC_EMERGENCYCOOL
 2270,0,0,45,0,0,0,99,0,0,mado,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0								//NC_INFRAREDSCAN
 2271,0,0,30,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0							//NC_ANALYZE
 2272,0,0,60:70:80,0,0,0,99,0,0,mado,0,0,6146,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2805					//NC_MAGNETICFIELD
 2273,0,0,80:90:100,0,0,0,99,0,0,mado,0,0,6146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2806				//NC_NEUTRALBARRIER
 2274,0,0,80:100:120,0,0,0,99,0,0,mado,0,0,6146,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2808				//NC_STEALTHFIELD
-2275,0,0,25:30:35:40:45,0,0,0,99,0,0,mado,0,0,12392,1,12392,1,12393,1,12393,1,12394,1,0,0,0,0,0,0,0,0,0,0,2807			//NC_REPAIR
+2275,0,0,25:30:35:40:45,0,0,0,99,0,0,mado,0,0,12392,1,12392,1,12393,1,12393,1,12394,1,0,0,0,0,0,0,0,0,2807,0,0			//NC_REPAIR
 
 2278,0,0,20:22:24:26:28,0,0,0,6:7,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				//NC_AXEBOOMERANG
 2279,0,0,20:22:24:26:28,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					//NC_POWERSWING
@@ -909,7 +909,7 @@
 2567,0,0,70,0,0,0,19,3,10,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0							//RL_FIRE_RAIN
 2568,0,0,30,0,0,0,99,0,0,none,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0							//RL_HEAT_BARREL
 2569,0,0,80:84:88:92:96,0,0,0,18,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					//RL_AM_BLAST
-2570,0,0,80:84:88:92:96,0,0,0,20,0,0,none,0,0,13214,1,13213,1,13212,1,13211,1,13210,1,0,0,0,0,0,0,0,0,0,0,0	//RL_SLUGSHOT
+2570,0,0,80:84:88:92:96,0,0,0,20,0,0,none,0,0,25187,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//RL_SLUGSHOT
 2571,0,0,35:40:45:50:55,0,0,0,18,0,0,none,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0				//RL_HAMMER_OF_GOD
 2572,0,0,1,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								//RL_R_TRIP_PLUSATK
 //2573,0,0,1,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							//RL_B_FLICKER_ATK
@@ -1032,11 +1032,8 @@
 5039,0,0,20:30:40:50:60,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						//SU_TUNAPARTY
 5040,0,0,44:48:52:56:60,0,0,0,99,0,0,none,0,0,567,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0					//SU_BUNCHOFSHRIMP
 5041,0,0,22:24:26:28:30,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						//SU_FRESHSHRIMP
-
-// Unknown Summoner Skills
-//5042,0,0,1,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								//
-//5043,0,0,1,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								//
-
+5042,0,0,0,0,0,0,99,0,0,none,0,0,11602,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0								//SU_CN_METEOR2
+5043,0,0,0,0,0,0,99,0,0,none,0,0,515,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0								//SU_LUNATICCARROTBEAT2
 5045,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									//SU_POWEROFFLOCK
 5046,0,0,60,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									//SU_SVG_SPIRIT
 5047,0,0,50:46:42:38:34,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						//SU_HISS
@@ -1052,6 +1049,8 @@
 5064,0,0,100,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_ONEFOREVER
 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
 
+5067,0,0,0,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								//ALL_EQSWITCH
+
 // New Arch Bishop Skills
 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##

+ 13 - 0
db/re/skill_tree.txt

@@ -5774,6 +5774,19 @@
 4220,5039,5,5038,3,0,0,0,0,0,0,0,0 //SU_TUNAPARTY##
 4220,5040,5,5041,3,0,0,0,0,0,0,0,0 //SU_BUNCHOFSHRIMP##
 4220,5041,5,5024,1,0,0,0,0,0,0,0,0 //SU_FRESHSHRIMP##
+4220,5044,1,5024,1,0,0,0,0,0,0,0,0 //SU_SOULATTACK##
+4220,5045,5,100,0,5047,5,0,0,0,0,0,0,0,0 //SU_POWEROFFLOCK##
+4220,5046,5,100,0,5045,5,0,0,0,0,0,0,0,0 //SU_SVG_SPIRIT##
+4220,5047,5,100,0,5031,1,0,0,0,0,0,0,0,0 //SU_HISS##
+4220,5048,5,100,0,5053,5,0,0,0,0,0,0,0,0 //SU_NYANGGRASS##
+4220,5049,5,100,0,5037,1,0,0,0,0,0,0,0,0 //SU_GROOMING##
+4220,5050,5,100,0,5049,5,0,0,0,0,0,0,0,0 //SU_PURRING##
+4220,5051,5,100,0,5050,5,0,0,0,0,0,0,0,0 //SU_SHRIMPARTY##
+4220,5052,1,100,0,5046,5,0,0,0,0,0,0,0,0 //SU_SPIRITOFLIFE##
+4220,5053,5,100,0,5025,1,0,0,0,0,0,0,0,0 //SU_MEOWMEOW##
+4220,5054,1,100,0,5048,5,0,0,0,0,0,0,0,0 //SU_SPIRITOFLAND##
+4220,5055,5,100,0,5025,1,0,0,0,0,0,0,0,0 //SU_CHATTERING##
+4220,5056,1,100,0,5051,5,0,0,0,0,0,0,0,0 //SU_SPIRITOFSEA##
 4220,408,1,0,0,0,0,0,0,0,0,0,0 //WE_BABY#Baby#
 4220,409,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLPARENT#Call Parent#
 4220,5065,1,0,0,0,0,0,0,0,0,0,0 //WE_CHEERUP#Cheer Up#

+ 4 - 1
db/re/skill_unit_db.txt

@@ -43,7 +43,7 @@
  83,0x86,    ,  0, 3,1000,enemy, 0x010	//WZ_METEOR
  85,0x86,    ,  5:5:5:5:5:5:5:5:5:5:7, 1,1250,enemy,0x018	//WZ_VERMILION
  86,0x86,    ,  0:1:1:2:2:2:2:2:2:2, 0,-1,noone, 0x010	//WZ_WATERBALL
- 87,0x8d,    , -1, 0,  -1,all,   0x9010	//WZ_ICEWALL
+ 87,0x8d,    , -1, 0,1000,all,   0x9010	//WZ_ICEWALL
  89,0x86,    ,  4, 1, 450,enemy, 0x018	//WZ_STORMGUST
  91,0x86,    ,  2, 0,1000,enemy, 0x010	//WZ_HEAVENDRIVE
  92,0x8e,    ,  2, 0,  -1,enemy, 0x8010	//WZ_QUAGMIRE
@@ -110,6 +110,8 @@
 
 706,0xfd,     ,  2, 0,1000,enemy, 0x018	//NPC_VENOMFOG
 708,0x86,     ,  0, 9,1000,enemy, 0x018	//NPC_COMET
+709,0xfe,     ,  0, 3,1000,enemy, 0x8018	//NPC_ICEMINE
+711,0xff,     , -1, 0,1000,enemy, 0x8018	//NPC_FLAMECROSS
 
 2044,0xca,    ,  0, 2,1000,all,   0x018	//AB_EPICLESIS
 
@@ -179,6 +181,7 @@
 
 5027,0x106,   ,  1:1:2:2:3, 0,  -1,enemy, 0x2010 // SU_CN_POWDERING
 5028,0x86,    ,  0, 3, 500,enemy, 0x10 // SU_CN_METEOR
+5042,0x86,    ,  0, 3, 500,enemy, 0x10 // SU_CN_METEOR2
 5048,0x107,   ,  2:2:3:3:4, 0, -1, enemy, 0x2010 // SU_NYANGGRASS
 
 8020,0xf5,    ,  3, 0,2300:2100:1900:1700:1500,enemy,   0x018	//MH_POISON_MIST

+ 1 - 1
db/spellbook_db.txt

@@ -4,7 +4,7 @@
 // SkillID,PreservePoints,Required Book
 //
 // NOTE:
-// - To add more entries, increase MAX_SKILL_SPELLBOOK_DB in skill.h.
+// - To add more entries, increase MAX_SKILL_SPELLBOOK_DB in skill.hpp.
 // - To remove entry by importing, put 0 for 'PreservePoints'
 
 //Mage

+ 3 - 3
doc/atcommands.txt

@@ -14,7 +14,7 @@ This file describes the usage of in-game commands and assumes that
 	charcommand_symbol: "#"
 
 Some commands cannot be used from console or script command to prevent map-server crashed.
-See atcommand.c::atcommand_basecommands for restricted commands. Please tell us if any
+See atcommand.cpp::atcommand_basecommands for restricted commands. Please tell us if any
 other atcommand that causes map-server crashed executed by console or script commands.
 
 To search for a command, write "@" before the command name (ex. @commands).
@@ -811,7 +811,7 @@ If no coordinates are entered, a random location will be chosen.
 
 Warps to predefined locations in major cities.
 If no ID is given, all available maps will be displayed in the chat window.
-Locations and coordinates are stored in '/src/map/atcommand.c'.
+Locations and coordinates are stored in '/src/map/atcommand.cpp'.
 
 Restriction:
 	- Used from console
@@ -1143,7 +1143,7 @@ Give or remove a cart to a player and also change the cart skin based on ID:
 
 Changes the language attached to the player's account (#langtype).
 If no parameter is given, a list of available languages is displayed.
-All languages are defined in '/src/common/msg_conf.h'.
+All languages are defined in '/src/common/msg_conf.hpp'.
 
 ---------------------------------------
 

+ 2 - 1
doc/ea_job_system.txt

@@ -13,7 +13,7 @@ Preface:
 -------------------------------------------------------------------------------
 
 	Most scripters are aware of the class values used in RO and their constants
-	specified in src/map/script_constants.h. Each class has a number associated
+	specified in src/map/script_constants.hpp. Each class has a number associated
 	to it for referencing, so when someone's class is 9 that means they are a
 	wizard. However, this list of job numbers has no real order behind it, and
 	no logic behind it's assignation.
@@ -53,6 +53,7 @@ The eA Job System:
 	EAJ_GUNSLINGER	0x9
 	EAJ_NINJA		0x0A
 	EAJ_GANGSI		0x0D
+	EAJ_SUMMONER	0x10
 
 - Branch: All classes can be classified as "1st Class", "2-1 Class" or
   "2-2 Class":

+ 2 - 1
doc/item_bonus.txt

@@ -418,7 +418,7 @@ bonus bBreakArmorRate,n; 		Adds a n/100% chance to break enemy's armor while att
 Monster drops
 -------------
 bonus2 bDropAddRace,r,x;	Adds x% to player's drop rate when killing a monster with race r.
-bonus2 bDropAddClass,c,x;	Adds x% to player's drop rate when killing a monster with race c.
+bonus2 bDropAddClass,c,x;	Adds x% to player's drop rate when killing a monster with class c.
 
 bonus3 bAddMonsterIdDropItem,iid,mid,n;	Adds a n/100% chance of dropping item iid when killing monster mid
 
@@ -453,3 +453,4 @@ bonus bRestartFullRecover;	When reviving, HP and SP are fully healed
 bonus bClassChange,n;     		Gives a n/100% chance to change the attacked monster's class with normal attack
 bonus bAddStealRate,n;    		Increases success rate of Steal skill by n/100%
 bonus bNoMadoFuel;			Nullify Magic Gear Fuel requirement for skills.
+bonus bNoWalkDelay;				Give infinite Endure.

+ 2 - 2
doc/item_group.txt

@@ -38,7 +38,7 @@ The table below explains which fields are accessed in each.
 
 ---------------------------------------
 
-GroupID: See the "Item Group ID" section in 'src/map/itemdb.h' and the "item groups" section in 'src/map/script_constants.h'.
+GroupID: See the "Item Group ID" section in 'src/map/itemdb.hpp' and the "item groups" section in 'src/map/script_constants.hpp'.
          Supports IG_* constants.
 
 ---------------------------------------
@@ -65,7 +65,7 @@ Amount: Amount of item that will be obtained.
 
 Random: Set this to '0' and the item will always be obtained ("must" item).
 		Random value will allocates where the item will be stored at random group.
-		(max. random group is 4, defined as MAX_ITEMGROUP_RANDGROUP in 'src/map/itemdb.c'.)
+		(max. random group is 4, defined as MAX_ITEMGROUP_RANDGROUP in 'src/map/itemdb.cpp'.)
 
 	Item Group:
 		IG_MyItemGroup,Knife,0,1,0		//a "must" item

+ 10 - 0
doc/mapflags.txt

@@ -321,6 +321,16 @@ This mapflag can also be used to adjust the damage of one skill by a percentage:
 
 ---------------------------------------
 
+*skill_duration	skill_name,percentage
+
+Sets skill (trap-type) time limit to n% of original duration.
+
+// Example:
+// Makes HT_ANKLESNARE's lifetime in the castle 4x longer than other maps.
+prtg_cas01	mapflag	skill_duration	HT_ANKLESNARE,400
+
+---------------------------------------
+
 ==================
 | 3. Map Effects |
 ==================

+ 67 - 67
doc/packet_interserv.txt

@@ -3,10 +3,10 @@
 //===== By: ==================================================
 //= rAthena Dev Team
 //===== Last Updated: ========================================
-//= 20140831
+//= 20180924
 //===== Description: =========================================
-//= List of all packets used by login-serv (A), char-serv (H),
-//= and map-serv (Z) to communicate with each other.
+//= List of all packets used by login-server (A), char-server
+//= (H), and map-server (Z) to communicate with each other.
 //= See packet_client.txt for communication to client (C).
 //============================================================
 
@@ -24,7 +24,7 @@ The format of this file is as follows:
 ============
 | 1. Notes |
 ============
-Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.c').
+Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.cpp').
 
 =========================
 | 2. Login-Char Packets |
@@ -60,7 +60,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- request_id: unknown @FIXME
 		- clienttype: unknown @FIXME
 	desc:
-		- Acknowledge the authentication request from char-serv
+		- Acknowledge the authentication request from char-server
 
 0x2714:
 	Type: HA
@@ -69,9 +69,9 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 	len: 6
 	parameter:
 		- cmd : packet identification (0x2714)
-		- user_count: number of user present on the char-serv
+		- user_count: number of user present on the char-server
 	desc:
-		- Retrieve the number of user present on a char-serv
+		- Retrieve the number of user present on a char-server
 
 0x2715:
 	free
@@ -140,7 +140,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- u_aid :
 		- account_id :
 	desc:
-		- 
+		-
 
 0x2721:
 	Type: AH
@@ -177,7 +177,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- actual_email: current email address
 		- new_email: new email address
 	desc:
-		- Map server sends information to change an email of an account via char-server
+		- Map-server sends information to change an email of an account via char-server
 
 0x2723:
 	Type: AH
@@ -267,7 +267,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- type
 		- value
 	desc:
-		- Receive an request to fetch account_reg2 from a char-server, see packet 0x3004 (mapif_parse_Registry)
+		- Receive a request to fetch account_reg2 from a char-server, see packet 0x3004 (mapif_parse_Registry)
 
 
 0x2729:
@@ -288,7 +288,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- str : name of variable in registry
 		- value : value of varaible in registry
 	desc:
-		- Receive account_reg2 registry, forward to map servers.
+		- Receive account_reg2 registry, forward to map-server.
 
 0x272a:
 	Type: HA
@@ -311,7 +311,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- cmd : packet identification (0x272b)
 		- t_aid: account identification
 	desc:
-		- Add aid to list of online user on loginserv (setacconline).
+		- Add aid to list of online user on login-server (setacconline).
 
 0x272c:
 	Type: HA
@@ -332,7 +332,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 	parameter:
 		- cmd : packet identification (0x272d)
 		- len : size of packet
-		- users: number of users connected to char-serv
+		- users: number of users connected to char-server
 		- aid: account identification
 	desc:
 		- receive account list from char-server
@@ -364,7 +364,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- state: 0=change of status, 1=ban
 		- status|date: status or final date of a banishment
 	desc:
-		- Notify char-serv of a state change or ban (accbannotification).
+		- Notify char-server of a state change or ban (accbannotification).
 
 0x2732:
 0x2733:
@@ -379,7 +379,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- cmd : packet identification (0x2734)
 		- aid: account identification
 	desc:
-		- Account is already marked as online. (Login server request to kick a character out).
+		- Account is already marked as online. (Login-server request to kick a character out).
 
 0x2735:
 	Type: AH
@@ -389,8 +389,8 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 	parameter:
 		- cmd : packet identification (0x2735)
 	desc:
-		- IP address update signal from login server.
-		- Send back the IP of char server to login-server if IP was changed.
+		- IP address update signal from login-server.
+		- Send back the IP of char-server to login-server if IP was changed.
 
 0x2736:
 	Type: HA
@@ -399,7 +399,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 	len: 6
 	parameter:
 		- cmd : packet identification (0x2736)
-		-  ip: ip of char server
+		-  ip: ip of char-server
 	desc:
 		- IP update for char-server
 
@@ -434,7 +434,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- cmd : packet identification (0x2739)
 		- aid : account identification
 	desc:
-		- Login notify char that too many wrong PIN code entered. (fail auth)
+		- Login-server notifies char-server for too many wrong PIN code entered. (fail auth)
 
 0x273a
 0x273b
@@ -456,9 +456,9 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 	parameter:
 		- cmd : packet identification (0x2742)
 		- aid: account identification
-		- flag: 0x1 ack vip data to char-serv, 0x2 add duration, 0x8 First request on player login
+		- flag: 0x1 ack vip data to char-server, 0x2 add duration, 0x8 First request on player login
 		- timediff: tick to add to viptime
-		- mapfd: map-serv link to ack if type&1
+		- mapfd: map-server link to ack if type&1
 	desc:
 		- Received a VIP data request from char
 
@@ -473,9 +473,9 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- vip_time: timestamp of vip_time if he is vip
 		- flag: 0x1: isvip, is this account in vip mode atm, 0x2: isgm, 0x4: show rates on player
 		- groupid: group id of account
-		- mapfd: map-serv link to ack
+		- mapfd: map-server link to ack
 	desc:
-		- Transmit vip specific data to char-serv (will be transfered to mapserv)
+		- Transmit vip specific data to char-server (will be transfered to map-server)
 
 =========================
 | 3.1 Inter-Map Packets |
@@ -496,7 +496,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- fontY:
 		- mes: message to send
 	desc:
-		- Broadcasts a message to all map-servs connected to this char-serv
+		- Broadcasts a message to all map-servers connected to this char-server
 
 
 0x3001
@@ -520,10 +520,10 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 	len: 7
 	parameter:
 		- cmd : packet identification (0x3002)
-		- id: whisper id, identifier to match current whisper session that store in inter.c::wis_db
+		- id: whisper id, identifier to match current whisper session that store in inter.cpp::wis_db
 		- flag: 0=success, 1=target not found, 2=ignored by target
 	desc:
-		- Inform the char-serv of the result of the whisper
+		- Inform the char-server of the result of the whisper
 
 0x3003
 	Type: ZI
@@ -552,10 +552,10 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 			1: account2 registry
 			2: account registry
 			3: char registry
-		-str: registre variable identifiant, (variable name)
+		-str: register variable identity, (variable name)
 		-value: variable value
 	desc:
-		- Map-serv is requesting Char-serv to save registry values. (type=1 will forward data to login-serv)
+		- Map-server is requesting char-server to save registry values. (type=1 will forward data to login-server)
 
 0x3005
 	Type: ZI
@@ -566,8 +566,8 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- cmd : packet identification (0x3005)
 		- aid:
 		- cid:
-		-acc_reg2 : request  account registry (permanent variable of account, save on login-serv)
-		-acc_reg : request account registry (permanent variable of account , save on char-serv)
+		-acc_reg2 : request  account registry (permanent variable of account, save on login-server)
+		-acc_reg : request account registry (permanent variable of account , save on char-server)
 		-ch_reg :  request char registry (permanent variable of char)
 	desc:
 		- Request the registries for this player.
@@ -935,7 +935,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- aid
 		- max
 	desc:
-		- Request an update of Guildskill skill_id
+		- Request an update of Guild skill skill_id
 
 0x303d
 	Type: ZI
@@ -1174,7 +1174,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- cmd : packet identification (0x3060)
 		- cid
 	desc:
-		- Requests a character's quest log entries to the inter server.
+		- Requests a character's quest log entries to the inter-server.
 
 0x3061
 	Type: ZI
@@ -1184,7 +1184,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 	parameter:
 		- cmd : packet identification (0x3061)
 	desc:
-		- Requests to the inter server to save a character's quest log entries.
+		- Requests to the inter-server to save a character's quest log entries.
 
 0x3062
 	Type: ZI
@@ -1195,7 +1195,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- cmd : packet identification (0x3062)
 		- cid
 	desc:
-		- Requests a character's achievement log entries to the inter server.
+		- Requests a character's achievement log entries to the inter-server.
 
 0x3063
 	Type: ZI
@@ -1205,7 +1205,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 	parameter:
 		- cmd : packet identification (0x3063)
 	desc:
-		- Requests to the inter server to save a character's achievement log entries.
+		- Requests to the inter-server to save a character's achievement log entries.
 
 0x3070
 	Type: ZI
@@ -1455,7 +1455,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 	parameter:
 		- cmd : packet identification (0x30A0)
 	desc:
-		- Requests the loaded clans from the inter server
+		- Requests the loaded clans from the inter-server
 
 0x30A1
 	Type: ZI
@@ -1469,7 +1469,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- account id : the account id of the sender
 		- message : the message to be sent
 	desc:
-		- Sends a clan message to the inter server to relay it to all other mapservers
+		- Sends a clan message to the inter-server to relay it to all other map-servers
 
 0x30A2:
 	Type: ZI
@@ -1480,7 +1480,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- cmd : packet identification (0x30A2)
 		- clan id : the clan id
 	desc:
-		- Notifies the inter server that a player has left the clan or disconnected
+		- Notifies the inter-server that a player has left the clan or disconnected
 
 0x30A3:
 	Type: ZI
@@ -1491,7 +1491,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- cmd : packet identification (0x30A3)
 		- clan id : the clan id
 	desc:
-		- Notifies the inter server that a player has joined the clan or connected
+		- Notifies the inter-server that a player has joined the clan or connected
 
 0x3800:
 	Type: IZ
@@ -1598,7 +1598,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- aid
 		- msg_out
 	desc:
-		- sends a mesasge to map server (fd) to a user (u_fd) although we use fd we keep aid for safe-check
+		- sends a message to map-server (fd) to a user (u_fd) although we use fd we keep aid for safe-check
 
 0x3808
 	Type: IZ
@@ -1611,7 +1611,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- aid
 		- acc_name
 	desc:
-		- Transmit the result of a account_information request from map-serv, with type 1
+		- Transmit the result of a account_information request from map-server, with type 1
 
 0x3809
 	Type: IZ
@@ -2023,7 +2023,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- sender_name
 		- mail_title
 	desc:
-		- Report New Mail to Map Server
+		- Report New Mail to map-server
 
 0x384a
 	Type: IZ
@@ -2178,9 +2178,9 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- size
 		- count : number of item retrieved
 		- guild_id
-		- items: retreived guild bound items
+		- items: retrieved guild bound items
 	desc:
-		- Ask map-server to process the retreived guild bound items from expelled member
+		- Ask map-server to process the retrieved guild bound items from expelled member
 
 0x3860
 	Type: IZ
@@ -2292,7 +2292,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 	len: 6+variable
 	parameter:
 		- cmd : packet identification (0x388c)
-		- len : Pakcet length
+		- len : packet length
 		- storage_table : Storage table information
 	desc:
 		- Receive storage information
@@ -2358,7 +2358,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- size
 		- clan structure
 	desc:
-		- Send all loaded clans to the map server
+		- Send all loaded clans to the map-server
 
 0x38A1
 	Type: IZ
@@ -2370,7 +2370,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- size
 		- message : the data of the clan chat message packet
 	desc:
-		- Sends a clan chat message to other map servers
+		- Sends a clan chat message to other map-servers
 
 0x38A2
 	Type: IZ
@@ -2382,7 +2382,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- clan id : the clan id of the clan that needs an update
 		- online count : the amount of currently connected players in the clan
 	desc:
-		- Updates the online clan member count for all other map servers
+		- Updates the online clan member count for all other map-servers
 
 ========================
 | 3.2 Char-Map Packets |
@@ -2439,7 +2439,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 	parameter:
 		- cmd : packet identification (0x2b00)
 	desc:
-		- Send to map-servers the users count on this char-serv, (meaning the total of all mapserv)
+		- Send to map-servers the users count on this char-server, (meaning the total of all map-server)
 
 0x2b03
 	Type: AZ
@@ -2451,7 +2451,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- account_id
 		- ?
 	desc:
-		- Player Requesting char-select from map_serv
+		- Player Requesting char-select from map-server
 
 0x2b04
 	Type: AZ
@@ -2483,7 +2483,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- ip
 		- port
 	desc:
-		- Map-server change request acknowledgement (positive or negative)
+		- Map-server change request acknowledgment (positive or negative)
 
 0x2b09
 	Type: AZ
@@ -2522,7 +2522,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- acc
 		- sex
 	desc:
-		- Request char server to change sex of char
+		- Request char-server to change sex of char
 
 0x2b0f
 	Type: AZ
@@ -2591,7 +2591,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- aid
 		- cid
 	desc:
-		- Map-serv requesting to send the list of sc_data the player has saved
+		- Map-server requesting to send the list of sc_data the player has saved
 
 0x2b1e
 	Type: AZ
@@ -2602,7 +2602,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- cmd : packet identification (0x2b1e)
 		- new_ip
 	desc:
-		- Request forwarded from char-server for interserver IP sync
+		- Request forwarded from char-server for inter-server IP sync
 
 0x2b1f
 	Type: AZ
@@ -2614,7 +2614,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- account_id
 		- reason
 	desc:
-		- Request to kick char from a certain map server
+		- Request to kick char from a certain map-server
 
 0x2b20
 	Type: AZ
@@ -2660,7 +2660,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 	parameter:
 		- cmd : packet identification (0x2b24)
 	desc:
-		- Map-server keep alive packet, awnser back map that we alive as well
+		- Map-server keep alive packet, answer back map that we alive as well
 
 0x2b25
 	Type: AZ
@@ -2704,7 +2704,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- groupid
 		- flag : 0x1: isvip, is this account in vip mode atm, 0x2: isgm, 0x4: show rates on player
 	desc:
-		- Received vip-data from char-serv, fill map-serv data
+		- Received vip-data from char-server, fill map-server data
 
 0x2b2f
 	Type: AZ
@@ -2748,7 +2748,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- account_id
 		- char_id
 	desc:
-		- Request sc_data from charserver
+		- Request sc_data from char-server
 
 0x2afe
 	Type: ZA
@@ -2772,7 +2772,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- account_id
 		- char_id
 	desc:
-		- Map-serv sent us all his users info, (aid and cid) so we can update online_char_db
+		- Map-server sent us all his users info, (aid and cid) so we can update online_char_db
 
 0x2b01
 	Type: ZA
@@ -2818,7 +2818,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- client_addr
 		- group_id
 	desc:
-		- Tell the charserver the mapchange / quest for ok
+		- Tell the char-server the map change / quest for ok
 
 0x2b07
 	Type: ZA
@@ -2830,7 +2830,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- char_id
 		- friend_id
 	desc:
-		- Asks char server to remove friend_id from the friend list of char_id
+		- Asks char-server to remove friend_id from the friend list of char_id
 
 0x2b08
 	Type: ZA
@@ -2840,7 +2840,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 	parameter:
 		- cmd : packet identification (0x2b08)
 	desc:
-		- Search char through id on char serv
+		- Search char through id on char-server
 
 0x2b0a
 	Type: ZA
@@ -2852,7 +2852,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- account_id
 		- char_id
 	desc:
-		- Request skillcooldown from charserver
+		- Request skillcooldown from char-server
 
 0x2b0c
 	Type: ZA
@@ -2881,7 +2881,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- val1
 		- val2
 	desc:
-		- Send an account modification request to the login server (via char server).
+		- Send an account modification request to the login-server (via char-server).
 
 0x2b10
 	Type: ZA
@@ -2906,7 +2906,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- partner_id1
 		- partner_id2
 	desc:
-		- Request Char Server to Divorce Players
+		- Request char-server to Divorce Players
 
 0x2b15
 	Type: ZA
@@ -2933,7 +2933,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- job_rate
 		- drop_rate
 	desc:
-		- Send rates and motd to char server
+		- Send rates and motd to char-server
 
 0x2b17
 	Type: ZA
@@ -3001,7 +3001,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 	parameter:
 		- cmd : packet identification (0x2b23)
 	desc:
-		- pings the charserver (chrif_keepalive)
+		- pings the char-server (chrif_keepalive)
 
 0x2b26
 	Type: ZA

+ 1 - 0
doc/packet_struct_notation.txt

@@ -59,6 +59,7 @@ values.
  B = 1 byte (byte)
  W = 2 bytes (word)
  L = 4 bytes (long, dword)
+ F = 4 bytes (float)
  Q = 8 bytes (quad)
 
  nB = n bytes

+ 6 - 0
doc/permissions.txt

@@ -35,6 +35,12 @@ Allows player to create and join parties.
 
 ---------------------------------------
 
+*attendance
+
+Allows player to use the daily attendance system.
+
+---------------------------------------
+
 ===========================
 | 2. Extended Permissions |
 ===========================

+ 24 - 9
doc/sample/gstorage_test.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //= rAthena Dev Team
 //===== Last Updated: ========================================
-//= 20140208
+//= 20180906
 //===== Description: ========================================= 
 //= Contains commands needed for a guild warehouse NPC.
 //============================================================
@@ -22,14 +22,29 @@ prontera,165,188,4	script	Guild Warehouse	112,{
 		close;
 	}
 
-	.@flag = guildopenstorage;
-	if (.@flag == 1) {
-		mes "[Guild Warehouse]";
-		mes "The guild warehouse is being used right now.";
-		mes "Please wait a while, then come back.";
-	} else if (.@flag == 2) {
-		mes "[Guild Warehouse]";
-		mes "You can't use this service if you're not in a guild!";
+	switch(guildopenstorage()){
+		case GSTORAGE_STORAGE_ALREADY_OPEN:
+			mes "[Guild Warehouse]";
+			mes "you are using your storage.";
+			mes "Please wait a while, then come back.";
+			break;
+		case GSTORAGE_ALREADY_OPEN:
+			mes "[Guild Warehouse]";
+			mes "The guild warehouse is being used right now.";
+			mes "Please wait a while, then come back.";
+			break;
+		case GSTORAGE_NO_GUILD:
+			mes "[Guild Warehouse]";
+			mes "You can't use this service if you're not in a guild!";
+			break;
+		case GSTORAGE_NO_STORAGE:
+			mes "[Guild Warehouse]";
+			mes "The guild does not have a guild storage.";
+			break;
+		case GSTORAGE_NO_PERMISSION:
+			mes "[Guild Warehouse]";
+			mes "You don't have permission to use the guild storage!";
+			break;
 	}
 	cutin "kafra_06",255;
 	close;

+ 3 - 3
doc/sample/npc_extend_shop.txt

@@ -3,12 +3,12 @@
 //===== By: ==================================================
 //= rAthena Dev Team
 //===== Last Updated: ========================================
-//= 20121003
+//= 20180831
 //===== Description: ========================================= 
 //= An example of shop NPCs.
 //============================================================
 
-prontera,182,213,3	shop	Super Novice Shop	716,1243:-1,2112:-1,2340:-1,2352:-1,2414:-1,2510:-1,2628:-1,5055:-1
+prontera,182,213,3	shop	Super Novice Shop	716,1243:1,2112:-1,2340:-1,2352:-1,2414:-1,2510:-1,2628:-1,5055:-1
 prontera,149,139,5	shop	Whips Merchant	58,1951:-1,1953:-1,1955:-1,1957:-1,1959:-1,1961:-1,1962:-1,1963:-1,1964:-1
 prontera,162,175,3	shop	Headgears Merchant 1	73,2209:-1,2210:-1,2211:-1,2221:-1,2223:-1,2217:-1,2227:-1,2231:-1,2225:-1,2229:-1
 prontera,162,172,3	shop	Headgears Merchant 2	73,2203:-1,2212:-1,2218:-1,2239:-1,2241:-1,2242:-1,2243:-1,2263:-1,2265:-1,2276:-1,2288:-1,2291:-1,2297:-1
@@ -18,7 +18,7 @@ prontera,162,163,3	shop	Boots Merchant	73,2402:-1,2404:-1,2406:-1,2407:-1,2412:-
 prontera,162,160,3	shop	Robes Merchant	73,2502:-1,2504:-1,2506:-1,2507:-1,2508:-1,2509:-1
 prontera,162,157,3	shop	Accessory Merchant	73,2601:-1,2602:-1,2603:-1,2604:-1,2605:-1,2607:-1,2608:-1,2615:-1,2616:-1,2618:-1,2619:-1
 prontera,162,154,3	shop	Arrows Merchant	73,1750:-1,1751:-1,1752:-1,1753:-1,1754:-1,1755:-1,1756:-1,1757:-1,1758:-1,1759:-1,1760:-1,1761:-1,1762:-1,1763:-1,1764:-1,1765:-1,1766:-1,1767:-1,1768:-1,1769:-1
-prontera,162,151,3	shop	Alchemist Shop	73.7127:-1,7128:-1,7129:-1,7130:-1,7131:-1,7132:-1,7133:-1,7144:-1,7134:-1,1093:-1
+prontera,162,151,3	shop	Alchemist Shop	73,7127:-1,7128:-1,7129:-1,7130:-1,7131:-1,7132:-1,7133:-1,7144:-1,7134:-1,1093:-1
 prontera,162,148,3	shop	Taming Merchant	73,619:-1,620:-1,621:-1,623:-1,624:-1,625:-1,626:-1,627:-1,628:-1,629:-1,630:-1,631:-1,632:-1,633:-1,634:-1,635:-1,636:-1,637:-1,638:-1,639:-1,640:-1,641:-1,642:-1,659:-1
 prontera,162,145,3	shop	Pet Equipment	73,10001:-1,10002:-1,10003:-1,10004:-1,10005:-1,10006:-1,10007:-1,10008:-1,10009:-1,10010:-1,10011:-1,10012:-1,10013:-1,10014:-1,10015:-1,10016:-1,10017:-1,10018:-1,10019:-1,10020:-1
 prontera,148,234,5	shop	Weapon Card Merchant	80,4004:100000,4018:100000,4025:100000,4026:100000,4019:100000,4029:100000,4043:100000,4017:100000,4020:100000,4024:100000,4037:100000,4055:100000,4057:100000,4076:100000,4096:100000,4104:100000,4030:100000,4049:100000,4062:100000,4069:100000,4085:100000,4007:100000,4060:100000,4063:100000,4068:100000,4080:100000,4094:100000,4111:100000,4118:100000,4082:20700,4092:100000,4126:100000,4072:100000,4115:100000,4035:100000,4086:100000,4106:100000,4117:100000,4125:100000

+ 4 - 4
doc/sample/npc_live_dialogues.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //= Lupus
 //===== Last Updated: ========================================
-//= 20140208
+//= 20180906
 //===== Description: ========================================= 
 //= An example of an NPC with live dialogue.
 //= Note: This relies on Global_Functions.txt to run.
@@ -17,7 +17,7 @@ prontera,167,177,5	script	Luppy	1107,{
 
 	// Say a compliment according to player's gender
 	// 1st string is for FEMALE, 2nd for MALE
-	mes callfunc("F_Sex","What a beautiful lady!","What a handsome man!");
+	mes callfunc("F_SexMes","What a beautiful lady!","What a handsome man!");
 
 	// Add some random greeting and goodbye into the menu
 	if (select(callfunc("F_Hi"), callfunc("F_Bye")) != 1) {
@@ -31,7 +31,7 @@ prontera,167,177,5	script	Luppy	1107,{
 	// Give a random prize from set list of items
 	if (@gotstuff){
 		// Again, say stuff according to player's gender
-		mes "I like "+callfunc("F_Sex","smiling ladies!","bloody pirates!");
+		mes "I like "+callfunc("F_SexMes","smiling ladies!","bloody pirates!");
 
 		// Show one of 3 emotion from the list (we added ,1 to show emotion over PLAYER's head)
 		emotion callfunc("F_Rand",ET_SCISSOR,ET_CHUP,ET_GOODBOY), playerattached();
@@ -45,7 +45,7 @@ prontera,167,177,5	script	Luppy	1107,{
 	.@itemIDfromList = callfunc("F_Rand",512,522,608,620);
 
 	// Again, say stuff according to player's gender
-	mes "Hey, "+callfunc("F_Sex","sister!","brother!")+" I have "+getitemname(.@itemIDfromList)+" for you!";
+	mes "Hey, "+callfunc("F_SexMes","sister!","brother!")+" I have "+getitemname(.@itemIDfromList)+" for you!";
 
 	// Get the item from the list
 	getitem .@itemIDfromList,1;

+ 26 - 26
doc/sample/npc_shop_test.txt

@@ -3,38 +3,38 @@
 //===== By: ==================================================
 //= rAthena Dev Team
 //===== Last Updated: ========================================
-//= 20090206
+//= 20180831
 //===== Description: ========================================= 
 //= An example of shop NPCs.
 //============================================================
 
 // Near fountain in Prontera
-prontera,156,192,3	shop	Card Shop1	95,4001:100,4002:100,4003:100,4004:100,4005:100,4006:100,4007:100,4008:100,4009:100,4010:100,4011:100,4012:100,4013:100,4014:100,4015:100,4016:100,4017:100,4018:100,4019:100,4020:100,4021:100,4022:100,4023:100,4024:100,4025:100,4026:100,4027:100,4028:100,4029:100,4030:100,4031:100,4032:100,4033:100,4034:100,4035:100,4036:100,4037:100,4038:100,4039:100,4040:100,4041:100,4042:100,4043:100,4044:100,4045:100,4046:100,4047:100,4048:100,4049:100,4050:100
-prontera,154,192,1	shop	Card Shop2	123,4051:100,4052:100,4053:100,4054:100,4055:100,4056:100,4057:100,4058:100,4059:100,4060:100,4061:100,4062:100,4063:100,4064:100,4065:100,4066:100,4067:100,4068:100,4069:100,4070:100,4071:100,4072:100,4073:100,4074:100,4075:100,4076:100,4077:100,4078:100,4079:100,4080:100,4081:100,4082:100,4083:100,4084:100,4085:100,4086:100,4087:100,4088:100,4089:100,4090:100,4091:100,4092:100,4093:100,4094:100,4095:100,4096:100,4097:100,4098:100,4099:100,4100:100
-prontera,158,192,1	shop	Card Shop3	67,4101:100,4102:100,4103:100,4104:100,4105:100,4106:100,4107:100,4108:100,4109:100,4110:100,4111:100,4112:100,4113:100,4114:100,4115:100,4116:100,4117:100,4118:100,4119:100,4120:100,4121:100,4122:100,4123:100,4124:100,4125:100,4126:100,4127:100,4128:100,4129:100,4130:100,4131:100,4132:100,4133:100,4134:100,4135:100,4136:100,4137:100,4138:100,4139:100,4140:100,4141:100,4142:100,4143:100,4144:100,4145:100,4146:100,4147:100,4148:100
-prontera,144,205,1	shop	Headgear Shop1	71,2201:100,2202:100,2203:100,2204:100,2205:100,2206:100,2207:100,2208:100,2209:100,2210:100,2211:100,2212:100,2213:100,2214:100,2215:100,2216:100,2217:100,2218:100,2219:100,2220:100,2221:100,2222:100,2223:100,2224:100,2225:100,2226:100,2227:100,2228:100,2229:100,2230:100,2231:100,2232:100,2233:100,2234:100,2235:100,2236:100,2237:100,2239:100,2240:100,2241:100,2242:100,2243:100,2244:100,2245:100,2246:100,2247:100,2248:100,2249:100,2250:100
-prontera,144,203,3	shop	Headgear Shop2	101,2251:100,2252:100,2253:100,2254:100,2255:100,2256:100,2257:100,2258:100,2259:100,2260:100,2261:100,2262:100,2263:100,2264:100,2265:100,2266:100,2267:100,2268:100,2269:100,2270:100,2271:100,2272:100,2273:100,2274:100,2275:100,2276:100,2277:100,2278:100,2279:100,2280:100,2281:100,2282:100,2283:100,2284:100,2285:100,2286:100,2287:100,2288:100,2289:100,2290:100,2291:100,2292:100,2293:100,2294:100,2295:100,2296:100,2297:100,2298:100,2299:100
-prontera,144,201,3	shop	Headgear Shop3	69,5001:100,5002:100,5003:100,5004:100,5005:100,5006:100,5007:100,5008:100,5009:100,5010:100,5011:100,5012:100,5013:100,5014:100,5015:100,5016:100,5017:100,5018:100,5019:100
-prontera,167,202,5	shop	Accessories Shop	102,2601:100,2602:100,2603:100,2604:100,2605:100,2607:100,2608:100,2609:100,2610:100,2611:100,2612:100,2613:100,2614:100,2615:100,2616:100,2617:100,2618:100,2619:100,2620:100,2621:100,2622:100,2623:100,2624:100,2625:100,2626:100,2627:100,2628:100
-prontera,167,204,6	shop	General Store	96,501:100,502:100,503:100,504:100,505:100,506:100,507:100,508:100,509:100,510:100,511:100,512:100,513:100,514:100,515:100,516:100,517:100,518:100,519:100,520:100,521:100,522:100,523:100,525:100,526:100,528:100,529:100,530:100,531:100,532:100,533:100,534:100,535:100,536:100,537:100,538:100,539:100,601:100,602:100,603:100,604:100,605:100,606:100,607:100,608:100,609:100,610:100
-prontera,167,206,6	shop	Blacksmith Shop	90,714:100,715:100,716:100,717:100,718:100,719:100,720:100,721:100,722:100,723:100,724:100,725:100,726:100,727:100,728:100,729:100,730:100,731:100,732:100,733:100,756:100,757:100,984:100,985:100,990:100,991:100,992:100,993:100,994:100,995:100,996:100,997:100,1010:100,1011:100,998:100,999:100,1000:100,1001:100,1002:100,1003:100,913:100,920:100,718:100,958:100,957:100,922:100,963:100,923:100,968:100,1005:100,612:100,615:100,989:100
-prontera,164,204,5	shop	Japan Store Limited	81,542:100,543:100,1766:100
+prontera,156,192,3	shop	Card Shop1	95,4001:-1,4002:-1,4003:-1,4004:-1,4005:-1,4006:-1,4007:-1,4008:-1,4009:-1,4010:-1,4011:-1,4012:-1,4013:-1,4014:-1,4015:-1,4016:-1,4017:-1,4018:-1,4019:-1,4020:-1,4021:-1,4022:-1,4023:-1,4024:-1,4025:-1,4026:-1,4027:-1,4028:-1,4029:-1,4030:-1,4031:-1,4032:-1,4033:-1,4034:-1,4035:-1,4036:-1,4037:-1,4038:-1,4039:-1,4040:-1,4041:-1,4042:-1,4043:-1,4044:-1,4045:-1,4046:-1,4047:-1,4048:-1,4049:-1,4050:-1
+prontera,154,192,1	shop	Card Shop2	123,4051:-1,4052:-1,4053:-1,4054:-1,4055:-1,4056:-1,4057:-1,4058:-1,4059:-1,4060:-1,4061:-1,4062:-1,4063:-1,4064:-1,4065:-1,4066:-1,4067:-1,4068:-1,4069:-1,4070:-1,4071:-1,4072:-1,4073:-1,4074:-1,4075:-1,4076:-1,4077:-1,4078:-1,4079:-1,4080:-1,4081:-1,4082:-1,4083:-1,4084:-1,4085:-1,4086:-1,4087:-1,4088:-1,4089:-1,4090:-1,4091:-1,4092:-1,4093:-1,4094:-1,4095:-1,4096:-1,4097:-1,4098:-1,4099:-1,4100:-1
+prontera,158,192,1	shop	Card Shop3	67,4101:-1,4102:-1,4103:-1,4104:-1,4105:-1,4106:-1,4107:-1,4108:-1,4109:-1,4110:-1,4111:-1,4112:-1,4113:-1,4114:-1,4115:-1,4116:-1,4117:-1,4118:-1,4119:-1,4120:-1,4121:-1,4122:-1,4123:-1,4124:-1,4125:-1,4126:-1,4127:-1,4128:-1,4129:-1,4130:-1,4131:-1,4132:-1,4133:-1,4134:-1,4135:-1,4136:-1,4137:-1,4138:-1,4139:-1,4140:-1,4141:-1,4142:-1,4143:-1,4144:-1,4145:-1,4146:-1,4147:-1,4148:-1
+prontera,144,205,1	shop	Headgear Shop1	71,2201:-1,2202:-1,2203:-1,2204:-1,2205:-1,2206:-1,2207:-1,2208:-1,2209:-1,2210:-1,2211:-1,2212:-1,2213:-1,2214:-1,2215:-1,2216:-1,2217:-1,2218:-1,2219:-1,2220:-1,2221:-1,2222:-1,2223:-1,2224:-1,2225:-1,2226:-1,2227:-1,2228:-1,2229:-1,2230:-1,2231:-1,2232:-1,2233:-1,2234:-1,2235:-1,2236:-1,2237:-1,2239:-1,2240:-1,2241:-1,2242:-1,2243:-1,2244:-1,2245:-1,2246:-1,2247:-1,2248:-1,2249:-1,2250:-1
+prontera,144,203,3	shop	Headgear Shop2	101,2251:-1,2252:-1,2253:-1,2254:-1,2255:-1,2256:-1,2257:-1,2258:-1,2259:-1,2260:-1,2261:-1,2262:-1,2263:-1,2264:-1,2265:-1,2266:-1,2267:-1,2268:-1,2269:-1,2270:-1,2271:-1,2272:-1,2273:-1,2274:-1,2275:-1,2276:-1,2277:-1,2278:-1,2279:-1,2280:-1,2281:-1,2282:-1,2283:-1,2284:-1,2285:-1,2286:-1,2287:-1,2288:-1,2289:-1,2290:-1,2291:-1,2292:-1,2293:-1,2294:-1,2295:-1,2296:-1,2297:-1,2298:-1,2299:-1
+prontera,144,201,3	shop	Headgear Shop3	69,5001:-1,5002:-1,5003:-1,5004:-1,5005:-1,5006:-1,5007:-1,5008:-1,5009:-1,5010:-1,5011:-1,5012:-1,5013:-1,5014:-1,5015:-1,5016:-1,5017:-1,5018:-1,5019:-1
+prontera,167,202,5	shop	Accessories Shop	102,2601:-1,2602:-1,2603:-1,2604:-1,2605:-1,2607:-1,2608:-1,2609:-1,2610:-1,2611:-1,2612:-1,2613:-1,2614:-1,2615:-1,2616:-1,2617:-1,2618:-1,2619:-1,2620:-1,2621:-1,2622:-1,2623:-1,2624:-1,2625:-1,2626:-1,2627:-1,2628:-1
+prontera,167,204,6	shop	General Store	96,501:-1,502:-1,503:-1,504:-1,505:-1,506:-1,507:-1,508:-1,509:-1,510:-1,511:-1,512:-1,513:-1,514:-1,515:-1,516:-1,517:-1,518:-1,519:-1,520:-1,521:-1,522:-1,523:-1,525:-1,526:-1,528:-1,529:-1,530:-1,531:-1,532:-1,533:-1,534:-1,535:-1,536:-1,537:-1,538:-1,539:-1,601:-1,602:-1,603:-1,604:-1,605:-1,606:-1,607:-1,608:-1,609:-1,610:-1
+prontera,167,206,6	shop	Blacksmith Shop	90,714:-1,715:-1,716:-1,717:-1,718:-1,719:-1,720:-1,721:-1,722:-1,723:-1,724:-1,725:-1,726:-1,727:-1,728:-1,729:-1,730:-1,731:-1,732:-1,733:-1,756:-1,757:-1,984:-1,985:-1,990:-1,991:-1,992:-1,993:-1,994:-1,995:-1,996:-1,997:-1,1010:-1,1011:-1,998:-1,999:-1,1000:-1,1001:-1,1002:-1,1003:-1,913:-1,920:-1,718:-1,958:-1,957:-1,922:-1,963:-1,923:-1,968:-1,1005:-1,612:-1,615:-1,989:-1
+prontera,164,204,5	shop	Japan Store Limited	81,542:-1,543:-1,1766:-1
 
 // South-central Prontera
-prontera,141,175,5	shop	Bow man		102,1705:100,1711:100,1716:100,1719:100,1720:100,1750:1,1751:1,1752:1,1753:1,1754:1,1755:1,1756:1,1766:1,1065:1
-prontera,141,173,5	shop	Sword shop	102,1117:100,1125:100,1155:100,1162:100,1130:100,1131:100,1132:100,1133:100,1134:100,1135:100,1136:100,1137:100,1138:100,1139:100,1140:100,1141:100,1161:100,1162:100,1163:100,1164:100,1165:100,1166:100,1167:100,1168:100,1169:100,1170:100
-prontera,141,171,5	shop	Spear man	102,1408:100,1461:100,1464:100,1413:100,1414:100,1415:100,1416:100,1466:100,1467:100,1468:100,1469:100,1470:100,1471:100
-prontera,141,169,5	shop	Axe man		102,1352:100,1355:100,1361:100,1363:100,1364:100,1365:100,1366:100,1367:100,1368:100,1369:100
-prontera,141,167,5	shop	Dagger man	102,1208:100,1220:100,1223:100,1224:100,1225:100,1226:100,1227:100,1228:100,1229:100,1230:100,1231:100,1232:100,1233:100,1234:100,1235:100,1236:100,1237:100
-prontera,141,165,5	shop	Mace shop	102,1505:100,1520:100,1514:100,1517:100,1522:100,1523:100,1524:100,1525:100,1526:100,1527:100,1528:100
-prontera,141,163,5	shop	Katar shop	102,1251:100,1253:100,1255:100,1256:100,1257:100,1258:100,1259:100,1260:100,1261:100
-prontera,141,161,5	shop	Rod man		102,1602:100,1608:100,1611:100,1613:100,1614:100,1615:100
-prontera,141,159,5	shop	Bookstore	102,1550:100,1551:100,1552:100,1553:100,1554:100,1555:100,1556:100,1557:100,1558:100
-prontera,141,177,5	shop	Armor shop	102,2306:100,2339:100,2311:100,2331:100,2336:100,2337:100,2326:100,2327:100,2315:100,2317:100,2102:100,2104:100,2106:100,2108:100,2402:100,2404:100,2406:100,2407:100,2408:100,2409:100,2502:100,2504:100,2506:100,2507:100,2508:100
+prontera,141,175,5	shop	Bow man		102,1705:-1,1711:-1,1716:-1,1719:-1,1720:-1,1750:1,1751:-1,1752:-1,1753:-1,1754:-1,1755:-1,1756:-1,1766:-1,1065:-1
+prontera,141,173,5	shop	Sword shop	102,1117:-1,1125:-1,1155:-1,1162:-1,1130:-1,1131:-1,1132:-1,1133:-1,1134:-1,1135:-1,1136:-1,1137:-1,1138:-1,1139:-1,1140:-1,1141:-1,1161:-1,1162:-1,1163:-1,1164:-1,1165:-1,1166:-1,1167:-1,1168:-1,1169:-1,1170:-1
+prontera,141,171,5	shop	Spear man	102,1408:-1,1461:-1,1464:-1,1413:-1,1414:-1,1415:-1,1416:-1,1466:-1,1467:-1,1468:-1,1469:-1,1470:-1,1471:-1
+prontera,141,169,5	shop	Axe man		102,1352:-1,1355:-1,1361:-1,1363:-1,1364:-1,1365:-1,1366:-1,1367:-1,1368:-1,1369:-1
+prontera,141,167,5	shop	Dagger man	102,1208:-1,1220:-1,1223:-1,1224:-1,1225:-1,1226:-1,1227:-1,1228:-1,1229:-1,1230:-1,1231:-1,1232:-1,1233:-1,1234:-1,1235:-1,1236:-1,1237:-1
+prontera,141,165,5	shop	Mace shop	102,1505:-1,1520:-1,1514:-1,1517:-1,1522:-1,1523:-1,1524:-1,1525:-1,1526:-1,1527:-1,1528:-1
+prontera,141,163,5	shop	Katar shop	102,1251:-1,1253:-1,1255:-1,1256:-1,1257:-1,1258:-1,1259:-1,1260:-1,1261:-1
+prontera,141,161,5	shop	Rod man		102,1602:-1,1608:-1,1611:-1,1613:-1,1614:-1,1615:-1
+prontera,141,159,5	shop	Bookstore	102,1550:-1,1551:-1,1552:-1,1553:-1,1554:-1,1555:-1,1556:-1,1557:-1,1558:-1
+prontera,141,177,5	shop	Armor shop	102,2306:-1,2339:-1,2311:-1,2331:-1,2336:-1,2337:-1,2326:-1,2327:-1,2315:-1,2317:-1,2102:-1,2104:-1,2106:-1,2108:-1,2402:-1,2404:-1,2406:-1,2407:-1,2408:-1,2409:-1,2502:-1,2504:-1,2506:-1,2507:-1,2508:-1
 
 // Pet Groomer Merchant
-prontera,218,211,4	shop	Pet Groomer	125,537:2500,643:3000,10013:1500,10014:2000
-izlude,164,138,4	shop	Pet Groomer	124,537:2500,643:3000,10013:1500,10014:2000
-morocc,269,167,4	shop	Pet Groomer	125,537:2500,643:3000,10013:1500,10014:2000
-geffen,193,152,4	shop	Pet Groomer	124,537:2500,643:3000,10013:1500,10014:2000
-payon,142,104,4		shop	Pet Groomer	124,537:2500,643:3000,10013:1500,10014:2000
+prontera,218,211,4	shop	Pet Groomer#1	125,537:2500,643:3000,10013:1500,10014:2000
+izlude,164,138,4	shop	Pet Groomer#2	124,537:2500,643:3000,10013:1500,10014:2000
+morocc,269,167,4	shop	Pet Groomer#3	125,537:2500,643:3000,10013:1500,10014:2000
+geffen,193,152,4	shop	Pet Groomer#4	124,537:2500,643:3000,10013:1500,10014:2000
+payon,142,104,4	shop	Pet Groomer#5	124,537:2500,643:3000,10013:1500,10014:2000

+ 4 - 5
doc/sample/npc_test_duplicate.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //= rAthena Dev Team
 //===== Last Updated: ========================================
-//= 20070915
+//= 20180831
 //===== Description: ========================================= 
 //= An example of how duplicate NPCs are handled:
 //=  NPC variables are shared between all duplicates.
@@ -12,7 +12,7 @@
 //=  'OnInit' loads the middle Poring last, for some reason.
 //============================================================
 
--	script	Test Script	-1,1,1,{
+prontera,150,175,4	script	Duplicate Test Script	909,{
 	mes "Hi.";
 	mes "My coords are "+ .map$ +", "+ .x +"/" +.y ;
 	close;
@@ -27,6 +27,5 @@ OnTouch:
 	end;
 }
 
-prontera,150,175,4	duplicate(Test Script)	Test1	909
-prontera,155,175,4	duplicate(Test Script)	Test2	909,2,2
-prontera,160,175,4	duplicate(Test Script)	Test3	909,3,3
+prontera,155,175,4	duplicate(Duplicate Test Script)	Duplicate Test2	909,2,2
+prontera,160,175,4	duplicate(Duplicate Test Script)	Duplicate Test3	909,3,3

+ 51 - 0
doc/sample/npc_test_getunits.txt

@@ -0,0 +1,51 @@
+//===== rAthena Script =======================================
+//= Sample: getunits Test
+//===== By: ==================================================
+//= rAthena Dev Team
+//===== Last Updated: ========================================
+//= 20180831
+//===== Description: ========================================= 
+//= An example of getunits command script
+//============================================================
+prontera,145,177,0	script	getunits Test	857,{
+	mes "server information option will take a while if there is large amount of objects";
+	switch(select("server information:map information")){
+		case 1:
+			mes "server information";
+			mes getunits(BL_PC,.@Character$[0]) + " Character Online.";
+			mes getunits(BL_MOB,.@Monster$[0]) + " Monster.";
+			mes getunits(BL_PET,.@Pet$[0]) + " Pet.";
+			mes getunits(BL_HOM,.@Homunculus$[0]) + " Homunculus.";
+			mes getunits(BL_MER,.@Mercenary$[0]) + " Mercenary.";
+			mes getunits(BL_NPC,.@NPC$[0]) + " NPC.";
+			break;
+		case 2:
+			clear;
+			mes "input the map name.";
+			input .@input$;
+			clear;
+			mes "map information : " + .@input$;
+			mes getmapunits(BL_PC,.@input$,.@Character$[0]) + " Character Online.";
+			mes getmapunits(BL_MOB,.@input$,.@Monster$[0]) + " Monster.";
+			mes getmapunits(BL_PET,.@input$,.@Pet$[0]) + " Pet.";
+			mes getmapunits(BL_HOM,.@input$,.@Homunculus$[0]) + " Homunculus.";
+			mes getmapunits(BL_MER,.@input$,.@Mercenary$[0]) + " Mercenary.";
+			mes getmapunits(BL_NPC,.@input$,.@NPC$[0]) + " NPC.";
+	}
+	mes "select for more info";
+	setarray .@list$,"Character","Monster","Pet","Homunculus","Mercenary","NPC";
+	.@s = select(implode(.@list$,":")) -1;
+	clear;
+	copyarray .@name$[0], getd(".@" + .@list$[.@s] + "$"), getarraysize(getd(".@" + .@list$[.@s] + "$"));
+	mes "count : " + getarraysize(.@name$);
+	freeloop(1);
+	for(.@i=0;.@i<getarraysize(.@name$);.@i++){
+		mes (.@i+1) + " - " + .@name$[.@i];
+		if((.@i + 1) == 100){
+			mes "and more ...";
+			break;
+		}
+	}
+	freeloop(0);
+end;
+}

+ 3 - 3
doc/sample/npc_test_npctimer2.txt

@@ -3,17 +3,17 @@
 //===== By: ==================================================
 //= rAthena Dev Team
 //===== Last Updated: ========================================
-//= 20121003
+//= 20180831
 //===== Description: ========================================= 
 //= Demonstrates attached NPC timer commands.
 //============================================================
 
-prontera,156,183,0	script	NPCtimerTest::npctimerX0000	116,{
+prontera,156,186,0	script	NPCtimerTest::npctimer2X0000	116,{
 	mes "What would you like to know?";
 	select("Tell me my level.");
 	mes "I need time to think...";
-	initnpctimer;
 	attachnpctimer;
+	initnpctimer;
 	close;
 
 OnTimer5000:

+ 204 - 72
doc/script_commands.txt

@@ -3,7 +3,7 @@
 //===== By:==================================================
 //= rAthena Dev Team
 //===== Last Updated:========================================
-//= 20171011
+//= 20180831
 //===== Description:=========================================
 //= A reference manual for the rAthena scripting language.
 //= Commands are sorted depending on their functionality.
@@ -132,7 +132,7 @@ and 'doc/mapflags.txt'.
 
 ** Create a permanent monster spawn:
 
-<map name>,<x>,<y>{,<xs>{,<ys>}}%TAB%monster%TAB%<monster name>{,<monster level>}%TAB%<mob id>,<amount>{,<delay1>{,<delay2>{,<event>{,<mob size>{,<mob ai>}}}}}
+<map name>{,<x>{,<y>{,<xs>{,<ys>}}}}%TAB%monster%TAB%<monster name>{,<monster level>}%TAB%<mob id>,<amount>{,<delay1>{,<delay2>{,<event>{,<mob size>{,<mob ai>}}}}}
 
 Map name is the name of the map the monsters will spawn on. x,y are the
 coordinates where the mob should spawn. If xs and ys are non-zero, they
@@ -521,7 +521,7 @@ forever, and no trace remains of it even if it was stored with character or
 account data.
 
 Some variables are special, that is, they are already defined for you by the
-scripting engine. You can see the full list in 'src/map/script_constants.h', which
+scripting engine. You can see the full list in 'src/map/script_constants.hpp', which
 is a file you should read, since it also allows you to replace lots of numbered
 arguments for many commands with easier to read text. The special variables most
 commonly used are all permanent character-based variables:
@@ -565,7 +565,7 @@ setting it will make the character own this number of Zeny.
 If you try to set Zeny to a negative number, the script will be terminated with an error.
 
 Some source-end constants can also be accessed in scripts. This list is located in
-'src/map/script_constants.h', which contains constants such as server defines and status options:
+'src/map/script_constants.hpp', which contains constants such as server defines and status options:
 
 	PACKETVER, MAX_LEVEL, MAX_STORAGE, MAX_INVENTORY, MAX_CART, MAX_ZENY, MAX_PARTY,
 	MAX_GUILD, MAX_GUILDLEVEL, MAX_GUILD_STORAGE, MAX_BG_MEMBERS, MAX_CHAT_USERS,
@@ -1002,7 +1002,7 @@ and called label is in NPC that has trigger area, that label must end with
 "Global" to work globally (i.e. if RID is outside of the trigger area, which
 usually happens since otherwise there would be no point calling the label with
 doevent, because OnTouch would do the job). For further reference look for
-npc_event in npc.c.
+npc_event in npc.cpp.
 
 Scripting commands and functions
 --------------------------------
@@ -2391,7 +2391,7 @@ Also useful when passing arrays to functions or accessing another npc's arrays:
 
 This function will return the specified stat of the invoking character, or, if a
 character name or character id is specified, of that player. The stat can either
-be a number or parameter name, defined in 'src/map/script_constants.h'.
+be a number or parameter name, defined in 'src/map/script_constants.hpp'.
 
 Some example parameters:
 
@@ -3046,7 +3046,7 @@ If <type> is false the command only returns the count of unidentified items.
 //
 ---------------------------------------
 
-*getmapxy("<variable for map name>",<variable for x>,<variable for y>,<type>{,"<search string>"})
+*getmapxy("<variable for map name>",<variable for x>,<variable for y>{,<type>,"<search value>"})
 
 This function will locate a character object, NPC object or pet's coordinates
 and place their coordinates into the variables specified when calling it. It
@@ -3055,23 +3055,23 @@ not variables or the search was not successful.
 
 Type is the type of object to search for:
 
-	UNITTYPE_PC   - Character object
-	UNITTYPE_NPC  - NPC object
-	UNITTYPE_PET  - Pet object
-	UNITTYPE_HOM  - Homunculus object
-	UNITTYPE_MER  - Mercenary object
-	UNITTYPE_ELEM - Elemental object
+	BL_PC   - Character object (default)
+	BL_NPC  - NPC object
+	BL_PET  - Pet object
+	BL_HOM  - Homunculus object
+	BL_MER  - Mercenary object
+	BL_ELEM - Elemental object
 
-The search string is optional. If it is not specified, the location of the
-invoking character will always be returned for types UNITTYPE_PC and UNITTYPE_PET,
-the location of the NPC running this function for type 1.
+The search value is optional. If it is not specified, the location of the
+invoking character will always be returned for types BL_PC and BL_PET,
+the location of the NPC running this function for type BL_NPC.
 
-If a search string is specified, for types UNITTYPE_PC and UNITTYPE_NPC, the
-character or NPC with the specified name will be located.
+If a search value is specified, for types BL_PC and BL_NPC, the
+character or NPC with the specified name or GID will be located.
 
-If type is UNITTYPE_PET/UNITTYPE_HOM/UNITTYPE_MER/UNITTYPE_ELEM, the search
-will locate the current object of the character who's name is given in the
-search string, it will NOT locate the object by name.
+If type is BL_PET/BL_HOM/BL_MER/BL_ELEM, the search
+will locate the current object of the character who's name/GID is given in the
+search value, it will NOT locate the object by name.
 
 Example:
 
@@ -3083,7 +3083,7 @@ Example:
     prontera,164,299,3%TAB%script%TAB%Nyah%TAB%730,{
         mes "My name is Nyah.";
         mes "I will now search for Meh all across the world!";
-        if (getmapxy(@mapname$, @mapx, @mapy, UNITTYPE_NPC, "Meh") != 0) {
+        if (getmapxy(@mapname$, @mapx, @mapy, BL_NPC, "Meh") != 0) {
                 mes "I can't seem to find Meh anywhere!";
                 close;
         }
@@ -3206,6 +3206,70 @@ within the specified area - an x1/y1-x2/y2 square on the specified map.
 This is useful for maps that are split into many buildings, such as all the
 "*_in" maps, due to all the shops and houses.
 
+---------------------------------------
+
+*getunits(<type>{,<array_variable>[<first value>]})
+*getmapunits(<type>,<"map name">{,<array_variable>[<first value>]})
+*getareaunits(<type>,<"map name">,<x1>,<y1>,<x2>,<y2>{,<array_variable>[<first value>]})
+
+The 'getunits' command will return the number of <type> objects active on the server.
+
+The 'getmapunits' command will return the number of <type> objects active on the
+specified <"map name">.
+
+The 'getareaunits' command will return the number of <type> objects actively located
+within the specified area where <x1>, <y1>, <x2>, <y2> form the area.
+
+Type is the type of object to search for:
+
+	BL_PC   - Character objects
+	BL_MOB  - Monster objects
+	BL_PET  - Pet objects
+	BL_HOM  - Homunculus objects
+	BL_MER  - Mercenary objects
+	BL_NPC  - NPC objects
+	BL_ELEM - Elemental objects
+
+If <array_variable> is provided:
+	- An int variable will return the list of GID.
+	- A string variable will return the list of names.
+
+Example 1:
+	// getting the players count and building a string array of the names.
+	.@num = getunits(BL_PC,.@array$[0]);
+
+	mes "the number of Users Connected to the server is " + .@num + " .";
+	mes "list of Players names :";
+	freeloop(1);	// for if the list was too big.
+	for(.@i=0;.@i<getarraysize(.@array$);.@i++)
+		mes (.@i + 1) + " " + .@array$[.@i];
+	freeloop(0);
+	end;
+
+Example 2:
+	// getting the npc count in Prontera and building a string array of the names.
+	.@num = getmapunits(BL_NPC,"prontera",.@array$[0]);
+
+	mes "the number of NPCs in Prontera is " + .@num + " .";
+	mes "list of NPCs name :";
+	freeloop(1);	// for if the list was too big.
+	for(.@i=0;.@i<getarraysize(.@array$);.@i++)
+		mes (.@i + 1) + " " + .@array$[.@i];
+	freeloop(0);
+	end;
+
+Example 3:
+	// getting the monster count in Prontera with specific coordinates and building a int array of the GIDs.
+	.@num = getareaunits(BL_MOB,"prontera",154,186,159,182,.@array[0]);
+
+	mes "the number of Monsters in Prontera in that Coordinates is " + .@num + " .";
+	mes "list of Monsters GID :";
+	freeloop(1);	// for if the list was too big.
+	for(.@i=0;.@i<getarraysize(.@array);.@i++)
+		mes (.@i + 1) + " " + .@array[.@i];
+	freeloop(0);
+	end;
+
 ---------------------------------------
 \\
 2,2.- Guild-related commands
@@ -3289,6 +3353,13 @@ guild specified by the ID. 0 if the character is not a guild master of any guild
 
 ---------------------------------------
 
+*is_guild_leader({<guild ID>})
+
+This command will return true if the player attached to the script is the leader
+of his/her guild, or, if a guild ID is specified, of that guild.
+
+---------------------------------------
+
 *getcastlename("<map name>")
 
 This function returns the name of the castle when given the map name for that
@@ -3304,29 +3375,29 @@ to by its map name. Castle information is stored in `guild_castle` SQL table.
 
 Types of data correspond to `guild_castle` table columns:
 
- 1 - `guild_id`   - Guild ID.
- 2 - `economy`    - Castle Economy score.
- 3 - `defense`    - Castle Defense score.
- 4 - `triggerE`   - Number of times the economy was invested in today.
- 5 - `triggerD`   - Number of times the defense was invested in today.
- 6 - `nextTime`   - unused
- 7 - `payTime`    - unused
- 8 - `createTime` - unused
- 9 - `visibleC`   - Is 1 if a Kafra was hired for this castle, 0 otherwise.
-10 - `visibleG0`  - Is 1 if the 1st guardian is present (Soldier Guardian)
-11 - `visibleG1`  - Is 1 if the 2nd guardian is present (Soldier Guardian)
-12 - `visibleG2`  - Is 1 if the 3rd guardian is present (Soldier Guardian)
-13 - `visibleG3`  - Is 1 if the 4th guardian is present (Archer Guardian)
-14 - `visibleG4`  - Is 1 if the 5th guardian is present (Archer Guardian)
-15 - `visibleG5`  - Is 1 if the 6th guardian is present (Knight Guardian)
-16 - `visibleG6`  - Is 1 if the 7th guardian is present (Knight Guardian)
-17 - `visibleG7`  - Is 1 if the 8th guardian is present (Knight Guardian)
+CD_GUILD_ID          - Guild ID.
+CD_CURRENT_ECONOMY   - Castle Economy score.
+CD_CURRENT_DEFENSE   - Castle Defense score.
+CD_INVESTED_ECONOMY  - Number of times the economy was invested in today.
+CD_INVESTED_DEFENSE  - Number of times the defense was invested in today.
+CD_NEXT_TIME         - unused
+CD_PAY_TIME          - unused
+CD_CREATE_TIME       - unused
+CD_ENABLED_KAFRA     - Is 1 if a Kafra was hired for this castle, 0 otherwise.
+CD_ENABLED_GUARDIAN0 - Is 1 if the 1st guardian is present (Soldier Guardian)
+CD_ENABLED_GUARDIAN1 - Is 1 if the 2nd guardian is present (Soldier Guardian)
+CD_ENABLED_GUARDIAN2 - Is 1 if the 3rd guardian is present (Soldier Guardian)
+CD_ENABLED_GUARDIAN3 - Is 1 if the 4th guardian is present (Archer Guardian)
+CD_ENABLED_GUARDIAN4 - Is 1 if the 5th guardian is present (Archer Guardian)
+CD_ENABLED_GUARDIAN5 - Is 1 if the 6th guardian is present (Knight Guardian)
+CD_ENABLED_GUARDIAN6 - Is 1 if the 7th guardian is present (Knight Guardian)
+CD_ENABLED_GUARDIAN7 - Is 1 if the 8th guardian is present (Knight Guardian)
 
 All types of data have their meaning determined by War of Emperium scripts,
 with exception of:
- - `guild_id` that is always considered ID of the guild that owns the castle,
- - `defense` that is used in Guardians & Emperium HP calculations,
- - `visibleG` that is always considered to hold guardian presence bits.
+ - CD_GUILD_ID that is always considered ID of the guild that owns the castle,
+ - CD_CURRENT_DEFENSE that is used in Guardians & Emperium HP calculations,
+ - CD_ENABLED_GUARDIANX that is always considered to hold guardian presence bits.
 
 The 'setcastledata' command will behave identically, but instead of returning
 values for the specified types of accessible data, it will alter them and cause
@@ -3676,7 +3747,7 @@ list (cloak, cart, ruwach, etc). if flag is 1 (default when omitted),
 the option will be added to what the character currently has; if 0, the option is removed.
 
 This is definitely not a complete list of available option flag numbers. Ask a
-core developer (or read the source: src/map/status.h) for the full list.
+core developer (or read the source: src/map/status.hpp) for the full list.
 
 ---------------------------------------
 
@@ -3850,7 +3921,7 @@ more:
 
 *checkre(<type>)
 
-Checks if a renewal feature is enabled or not in renewal.h, and returns 1 if
+Checks if a renewal feature is enabled or not in renewal.hpp, and returns 1 if
 enabled and 0 for disabled.
 
 The renewal feature to check is determined by type.
@@ -4212,7 +4283,7 @@ This command will change the job class of the invoking character.
 
 This command does work with numbers, but you can also use job names. The full
 list of job names and the numbers they correspond to can be found in
-'src/map/script_constants.h'.
+'src/map/script_constants.hpp'.
 
 	// This would change your player into a Swordman
 	jobchange Job_Swordman;
@@ -4438,7 +4509,7 @@ you can look at: 'npc/custom/stylist.txt'
 
 This command will push the currently attached player to given direction by given
 amount of square cells. Direction is the same as used when declaring NPCs, and
-can be specified by using one of the DIR_* constants (src/map/script_constants.h).
+can be specified by using one of the DIR_* constants (src/map/script_constants.hpp).
 
 The knock-back is not restricted by items or map flags, only obstacles are taken
 into account. If there is not enough space to perform the push (e.g. due to a
@@ -4773,7 +4844,7 @@ Example to get Crimson Weapon with Ghost property:
 	// when Valkyrie Randgris killed
 	OnNPCKillEvent:
 		if (killedrid == 1751 && rand(0,1000) > 950) { // Valkyrie Randgris
-			getmapxy(.@map$,.@x,.@y,UNITTYPE_PC);
+			getmapxy(.@map$,.@x,.@y,BL_PC);
 			setarray .@OptID[0],RDMOPT_ATTR_TOLERACE_NOTHING,RDMOPT_RACE_TOLERACE_HUMAN;
 			setarray .@OptVal[0],10,5;
 			setarray .@OptParam[0],0;
@@ -5438,6 +5509,32 @@ Return values:
 
 ---------------------------------------
 
+*guildopenstorage_log({<char id>})
+
+Opens the guild storage log window for the attached character or the given character id.
+
+Possible return values:
+GUILDSTORAGE_LOG_FINAL_SUCCESS	Window was opened successfully.
+GUILDSTORAGE_LOG_EMPTY			Window was not opened, because no entries exist.
+GUILDSTORAGE_LOG_FAILED			Some database error occurred.
+
+---------------------------------------
+
+*guild_has_permission(<permission>{,<char id>})
+
+Checks if the attached player or the player with the given character id has the given permission(s).
+Permission can be a bitmask and allows to use multiple values at the same time.
+Returns true if the player has all of the given permissions or false if the player does at least
+miss one of the given permissions or is not in a guild at all.
+
+Available permissions are:
+GUILD_PERM_INVITE	If a player is allowed to invite other players.
+GUILD_PERM_EXPEL	If a player is allowed to expel other guild members.
+GUILD_PERM_STORAGE	If a player is allowed to access the guild storage.
+GUILD_PERM_ALL		A combination of all permissions above.
+
+---------------------------------------
+
 *guildchangegm(<guild id>,<new master's name>)
 
 This function will change the Guild Master of a guild. The ID is the guild's
@@ -5537,11 +5634,12 @@ Used in reset NPC's (duh!)
 These commands will bestow a status effect on a character.
 
 The <effect type> determines which status is invoked. This can be either a number
-or constant, with the common statuses (mostly negative) found in 'src/map/script_constants.h'
-with the 'SC_' prefix. A full list is located in 'src/map/status.h', though
+or constant, with the common statuses (mostly negative) found in 'src/map/script_constants.hpp'
+with the 'SC_' prefix. A full list is located in 'src/map/status.hpp', though
 they are not currently documented.
 
 The duration of the status is given in <ticks>, or milleseconds.
+Use INFINITE_TICK for infinite duration.
 
 Certain status changes take an additional parameter <value 1>, which typically
 modifies player stats by the given number or percentage. This differs for each
@@ -5754,7 +5852,7 @@ executed on attack (or when attacked in the case of autobonus2).
 
 Rate is the trigger rate of the script (1000 = 100%).
 
-Duration is the time that the bonus will last for since the script has triggered.
+Duration is the time in milliseconds that the bonus will last for since the script has triggered.
 
 Skill ID/skill name the skill which will be used as trigger to start the bonus. (autobonus3)
 
@@ -5822,7 +5920,7 @@ Types:
 	1: Buff
 	2: Debuff
 
-Status_icon: See "Status Icon" section in 'src/map/script_constants.h'. Default is SI_BLANK (-1).
+Status_icon: See "Status Icon" section in 'src/map/script_constants.hpp'. Default is SI_BLANK (-1).
 
 Example:
 	// Apple gives you +5 Str bonus for 1 minute when it's consumed.
@@ -6658,7 +6756,7 @@ This command will broadcast a message to all or most players, similar to
 The region the broadcast is heard in (target), source of the broadcast
 and the color the message will come up as is determined by the flags.
 
-The flag values are coded as constants in 'src/map/script_constants.h' to make them easier to use.
+The flag values are coded as constants in 'src/map/script_constants.hpp' to make them easier to use.
 
 Target flags:
 - bc_all: Broadcast message is sent server-wide (default).
@@ -6985,8 +7083,8 @@ This command kicks the given character from the waiting room attached to the giv
 *getwaitingroomusers "<NPC object name>";
 
 This command get all the characters in the waiting room of the given NPC and stores
-their gids in the array .@waitingroom_users[]. Also, stores the the number of characters
-in the variable .@waitingroom_usercount
+their gids in the array .@waitingroom_users[]. Also, stores the number of characters
+in the variable .@waitingroom_usercount.
 
 ---------------------------------------
 
@@ -7031,6 +7129,9 @@ For 'skill_damage' mapflag:
 	- Setting the flag here will adjust the global (all skills) damage on the map.
 	- <zone> is the -100 to 100000 damage adjustment value of the skills.
 	- See 'getmapflag' for the different <type> values.
+For 'skill_duration' mapflag:
+	- <zone> is the skill ID to adjust.
+	- <type> is the percentage of adjustment from 0 to 100000.
 
 ---------------------------------------
 
@@ -7377,11 +7478,12 @@ This command will display a picture, usually an NPC illustration, also called
 cutin, for the currently attached client. The position parameter determines the
 placement of the illustration and takes following values:
 
-	0 - bottom left corner
-	1 - bottom middle
-	2 - bottom right corner
-	3 - middle of screen in a movable window with an empty title bar
-	4 - middle of screen without the window header, but still movable
+	0	bottom left corner
+	1	bottom middle
+	2	bottom right corner
+	3	middle of screen in a movable window with an empty title bar
+	4	middle of screen without the window header, but still movable
+	255	clear all displayed cutins
 
 The picture is read from data\texture\유저인터페이스\illust, from both the GRF archive
 and data folder, and is required to be a bitmap. The file extension .bmp can be
@@ -7412,7 +7514,7 @@ must be used.
 
 This command makes an object display an emotion sprite above their own as
 if they were doing that emotion. For a full list of emotion numbers,
-see 'src/map/script_constants.h' under 'ET_'. The not so obvious ones are 'ET_QUESTION'
+see 'src/map/script_constants.hpp' under 'ET_'. The not so obvious ones are 'ET_QUESTION'
 (a question mark) and 'ET_SURPRISE' (the exclamation mark).
 
 The optional target parameter specifies who will get the emotion on top of
@@ -7557,6 +7659,28 @@ and attempt to execute a source-defined command.
 The three .@atcmd_***** variables will NOT be set when invoking script-bound atcommands
 in this way.
 
+---------------------------------------
+
+*camerainfo <range>,<rotation>,<latitude>{,<char id>};
+
+This command will update the client's camera information with the given values where
+the client can be the attached character or the player given by the char id parameter.
+Note: This requires 2016-05-25aRagexeRE or newer.
+
+The values given will be divided by 100 and transmitted as floating-point number.
+
+	range		The zoomfactor of the camera.
+				Default: 230000 (230.0) when fully zoomed in
+				Maximum: 400000 (400.0) when fully zoomed out
+
+	rotation	The rotation of the camera.
+				Default: 0 (0.0) when no rotation is applied
+				Maximum: 360000 (360.0°) when fully rotated
+
+	latitude	The angle of the camera.
+				Default: -50000 (-50.0)
+				Maximum: -75000 (-75.0)
+
 ---------------------------------------
 \\
 6,1.- Unit-related commands
@@ -7691,13 +7815,14 @@ it does.
 Returns the type of object from the given Game ID. Returns -1 if the given GID does not
 exist.
 
-	UNITTYPE_PC     0
-	UNITTYPE_NPC    1
-	UNITTYPE_PET    2
-	UNITTYPE_MOB    3
-	UNITTYPE_HOM    4
-	UNITTYPE_MER    5
-	UNITTYPE_ELEM   6
+Return values:
+	BL_PC   - Character object
+	BL_MOB  - Monster object
+	BL_PET  - Pet object
+	BL_HOM  - Homunculus object
+	BL_MER  - Mercenary object
+	BL_NPC  - NPC object
+	BL_ELEM - Elemental object
 
 ---------------------------------------
 
@@ -7995,7 +8120,7 @@ Parameter (indexes) for NPCs are:
 
 *Notes:
 		- *_SIZE: small (0); medium (1); large (2)
-	    - *_MAPID: this refers to the map_data index (from src/map/map.c), not the mapindex_db index (from src/common/mapindex.c)
+	    - *_MAPID: this refers to the map_data index (from src/map/map.cpp), not the mapindex_db index (from src/common/mapindex.cpp)
 			-- For 'setunitdata', map name can also be passed in as a valid value instead of map ID
 		- *_SPEED: 20 - 1000
 		- *_MODE: see doc/mob_db_mode_list.txt
@@ -8582,7 +8707,7 @@ Each of these can be 'on' or 'off'. Together they define a cell's behavior.
 
 This command lets you alter these flags for all map cells in the specified
 (x1,y1)-(x2,y2) rectangle. The 'flag' can be 0 or 1 (0:clear flag, 1:set flag).
-The 'type' defines which flag to modify. Possible options see 'src/map/script_constants.h'.
+The 'type' defines which flag to modify. Possible options see 'src/map/script_constants.hpp'.
 
 Example:
 
@@ -8616,7 +8741,7 @@ remove a nonwalkable row of cells after the barricade mobs.
 
 This command will return 1 or 0, depending on whether the specified cell has
 the 'type' flag set or not. There are various types to check, all mimicking
-the server's cell_chk enumeration. The types can be found in 'src/map/script_constants.h'.
+the server's cell_chk enumeration. The types can be found in 'src/map/script_constants.hpp'.
 
 The meaning of the individual types can be confusing, so here's an overview:
   - cell_chkwall/water/cliff
@@ -9337,7 +9462,7 @@ NOTE: Currently ONLY supported for bonuses that used by 'bonus' script.
 This command will make the pet cure a specified status condition. The curing
 actions will occur once every Delay seconds. For a full list of status
 conditions that can be cured, see the list of 'SC_' status condition constants
-in 'src/map/script_constants.h'.
+in 'src/map/script_constants.hpp'.
 
 ---------------------------------------
 
@@ -9683,6 +9808,13 @@ returns "null" instead of the character name, and -1 for the other types.
 
 ---------------------------------------
 
+*is_party_leader({<party ID>})
+
+This command will return true if the player attached to the script is the leader
+of his/her party, or, if a party ID is specified, of that party.
+
+---------------------------------------
+
 *party_create("<party name>"{,<character id>{,<item share>,<item share type>}});
 
 Organizes a party with the attached or specified character as leader. If
@@ -9814,7 +9946,7 @@ solution rather than sending the map and the monster_id.
 
 This will set a Hat Effect onto the player. The state field allows you to
 enable (true) or disable (false) the effect on the player.
-The Hat Effect constants can be found in 'src/map/script_constants.h' starting
+The Hat Effect constants can be found in 'src/map/script_constants.hpp' starting
 with HAT_EF_*.
 
 Requires client 2015-05-13aRagEXE or newer.

+ 4 - 4
doc/skill_require_db.txt

@@ -128,8 +128,8 @@ RequiredStatuses: The active statuses needed to use the skill.
 Up to 3 ':'-separated values can be used, e.g.
     SC_STATUS1:SC_STATUS2:SC_STATUS3
 
-See MAX_SKILL_STATUS_REQUIRE in 'src/map/skill.h' to modify the max number
-of possible values, and 'db/const.txt' for a list of status constants.
+See MAX_SKILL_STATUS_REQUIRE in 'src/map/skill.hpp' to modify the max number
+of possible values, and 'src/map/script_constants.hpp' for a list of status constants.
 
 Use any number or SC_ALL to disable status requirements.
 
@@ -153,11 +153,11 @@ RequiredEquipment: Specific equipment IDs needed to use the skill.
 Up to 10 ':'-separated values can be used, e.g.
     item1:item2:item3
 
-See MAX_SKILL_EQUIP_REQUIRE in 'src/map/skill.h' to modify the max number
+See MAX_SKILL_EQUIP_REQUIRE in 'src/map/skill.hpp' to modify the max number
 of possible values.
 
 ---------------------------------------
 
 NOTE: On some fields, the ':' delimiter means for each skill level, but there
       are some level dependent checks.  See 'skill_get_requirement()' in
-      'src/map/skill.c'.
+      'src/map/skill.cpp'.

+ 10 - 10
doc/source_doc.txt

@@ -191,17 +191,17 @@ The following list describes each module and its purpose.
   malloc         handles runtime memory allocation (so that memory manager could check for leaks)
   mapindex       handles the processing and reading of the mapcache.dat
   md5calc        offers md5 encryption
-  mmo.h          common structures and defines across serv
+  mmo.hpp        common structures and defines across serv
   msg_conf       handles msg in src from configuration
   nullpo         checks and dumps info for debug mode
   random         generation of random numbers
   showmsg        display messages in console with a certain color
   socket         handling of sockets (listening, close, open, etc.)
-  sql.c          MySQL database proxy
-  strlib.c       string handling
-  timer.c        timer-related functions
-  utils.c        misc functions
-  winapi.h       Windows redefine and include
+  sql.cpp        MySQL database proxy
+  strlib.cpp     string handling
+  timer.cpp      timer-related functions
+  utils.cpp      misc functions
+  winapi.hpp     Windows redefine and include
 
   ==============
   | Login-serv |
@@ -265,7 +265,7 @@ The following list describes each module and its purpose.
   guild          functions for the guild system
   homunculus     functions for Alchemist Homunculi processing (create, delete, get stats, death, etc.)
   instance       functions for instance system
-  intif          map-serv <=> inter-serv interface (meant to communicate with 'char/inter.c' or its submodules)
+  intif          map-serv <=> inter-serv interface (meant to communicate with 'char/inter.cpp' or its submodules)
   itemdb         functions for the item database
   log            functions for server log system
   mail           functions for mail system
@@ -286,7 +286,7 @@ The following list describes each module and its purpose.
   searchstore    functions for the Vendor Shop Search feature
   skill          functions for skills (skill_casttime calculation, skill behaviours, skill_chk_cast, requirement checks, 'db/skill_*.txt' processing)
   status         functions for statuses on a bl (add, remove, calculation of effects as a temporary bonus)
-                   status is a struct available by most units as common attributes (bl_type only attribute are dealt in bl specific files, like 'pc.c' or 'mob.c')
+                   status is a struct available by most units as common attributes (bl_type only attribute are dealt in bl specific files, like 'pc.cpp' or 'mob.cpp')
   storage        functions for the storage system: Kafra, cart, guild, inventory (add, transfer, remove items between containers)
                    also ensures container mutex (e.g. guild_storage) and preparation for save requests
   trade          functions to perform a trade (request, accept, add items/Zeny, checks, complete trade)
@@ -300,7 +300,7 @@ The following are standard naming conventions used by rAthena.
 
   Type        Prefix         Example
   ----        ------         -------
-  function    module_        pc_addspiritball -> located in pc.c file
+  function    module_        pc_addspiritball -> located in pc.cpp file
   structure   s_             s_quest_db
   enum        e_             e_race
   status      SC_            SC_INTOABYSS
@@ -347,7 +347,7 @@ The following variables are commonly used in the source code.
 ===============
 | 8. Building |
 ===============
-When adding a new src file or library (new.c and its header, new.h), you'll also
+When adding a new src file or library (new.cpp and its header, new.hpp), you'll also
 need to update the following files to fully integrate it into the project so that
 users can compile it.
 

+ 20 - 0
doc/status_change.txt

@@ -2690,3 +2690,23 @@ SC_GVG_BLIND	(EFST_GVG_BLIND)
 SC_EXTREMITYFIST2	()
 	desc:
 	val1:
+
+SC_LHZ_DUN_N1	(EFST_LHZ_DUN_N1)
+	desc: Increases damage against Swordman, Thief and reduces damage taken from Acolyte, Merchant monsters of Biolab 5 (except MVPs).
+	val1: +% Damage
+	val2: +% Defense
+
+SC_LHZ_DUN_N2	(EFST_LHZ_DUN_N2)
+	desc: Increases damage against Acolyte, Merchant and reduces damage taken from Mage, Archer monsters of Biolab 5 (except MVPs).
+	val1: +% Damage
+	val2: +% Defense
+
+SC_LHZ_DUN_N3	(EFST_LHZ_DUN_N3)
+	desc: Increases damage against Mage, Archer and reduces damage taken from Swordman, Thief monsters of Biolab 5 (except MVPs).
+	val1: +% Damage
+	val2: +% Defense
+
+SC_LHZ_DUN_N4	(EFST_LHZ_DUN_N4)
+	desc: Increases and reduces damage against MVPs of Biolab 5.
+	val1: +% Damage
+	val2: +% Defense

+ 1 - 1
npc/battleground/bg_common.txt

@@ -250,7 +250,7 @@ bat_room,148,150,5	script	Teleporter#Battlefield	124,{
 		mes "[Maroll Battle Recruiter]";
 		mes "May the war god bless you.";
 		close2;
-		getmapxy(.@mapname$,.@x,.@y,UNITTYPE_NPC);
+		getmapxy(.@mapname$,.@x,.@y,BL_NPC);
 		if (.@mapname$ == "prontera")
 			set bat_return,1;
 		else if (.@mapname$ == "moc_ruins")

+ 6 - 13
npc/cities/prontera.txt

@@ -1,20 +1,13 @@
 //===== rAthena Script =======================================
 //= Prontera Town
-//===== By: ==================================================
-//= kobra_k88
-//===== Current Version: =====================================
-//= 2.1
-//===== Compatible With: =====================================
-//= rAthena Project
 //===== Description: =========================================
-//= [Official Conversion]
 //= NPCs in Prontera
-//===== Additional Comments: =================================
-//= Fully working
-//= +AntiNovice exploit fix [Lupus] 1.2 added baby novice check
-//= Spellchecked [massdriller]
+//===== Changelogs: ==========================================
+//= 1.0 Initial release [kobra_k88]
+//= 1.2 added baby novice check [Lupus]
+//= 1.3 Spellchecked [massdriller]
 //= 1.4 Optimized. Novices > 20 BaseJob can go to Culvert, too [Lupus]
-//= 1.5a Added a Jawaii related npc [MasterOfMuppets]
+//= 1.5 Added a Jawaii related npc [MasterOfMuppets]
 //= 1.6 Replaced sewer_prt with (MISC_QUEST & 8) [Lupus]
 //= 1.7 Removed Duplicates [Silent]
 //= 1.8 Moved Culvert to quests/quests_prontera.txt
@@ -25,7 +18,7 @@
 
 // Prontera
 //============================================================
-prontera,160,330,0	script	Guard#pront::prtguard	105,{
+-	script	Guard#pront::prtguard	105,{
 	mes "[Prontera Guard]";
 	mes "Welcome to Prontera.";
 	close;

+ 150 - 137
npc/custom/etc/autopot.txt

@@ -1,88 +1,81 @@
 //===== rAthena Script =======================================
 //= Auto-Potion
-//===== By: ==================================================
-//= Euphy
-//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= rAthena Project
 //===== Description: =========================================
-//= Provides an @autopot command to automatically use potions
-//= when hit (i.e. 'autobonus2').
-//===== Additional Comments: =================================
+//= Provides an @autopot command to automatically use potions.
+//===== Changelogs: ==========================================
 //= 1.0 First version. [Euphy]
+//= 2.0 rewrite and adding SP option. [sader1992]
 //============================================================
-
 -	script	#autopot	-1,{
 OnInit:
-	bindatcmd("autopot",strnpcinfo(0)+"::OnCommand");
-	end;
+	.HP_Option = true;	//Allow HP option
+	.SP_Option = true;	//Allow SP option
+	.MinDelay = 100;	//Minimum Delay Allowed in milliseconds (Default and Recommended: 100) [lower values will increase server strain]
+	setarray .blackList[0],0;	//Array of black listed item ID
+
+	if(!.HP_Option && !.SP_Option){
+		debugmes "Warning: @autopot both hp and sp are Disabled";
+		debugmes "Warning: @autopot script has been Disabled!";
+		end;
+	}
+	bindatcmd("autopot",strnpcinfo(0)+"::OnCommand",0,99);
+end;
 
 L_Help:
 	dispbottom "Available commands:";
-	dispbottom "    @autopot <item id> {<min hp % [1..100]> {<delay [50..1000]>}}";
-	dispbottom "    @autopot <on|off>";
-	dispbottom "    @autopot list";
+	if(.HP_Option && .SP_Option){
+		dispbottom "    @autopot <hp|sp> <item id> {<min hp|sp % [1..100]> {<delay [" + .MinDelay + "..1000]>}}";
+		dispbottom "    @autopot <hp|sp> list";
+		dispbottom "    @autopot <hp|sp> <on|off>";
+	}else{
+		dispbottom "    @autopot <" + (.HP_Option?"hp":"sp") + "> <item id> {<min " + (.HP_Option?"hp":"sp") + " % [1..100]> {<delay [" + .MinDelay + "..1000]>}}";
+		dispbottom "    @autopot <" + (.HP_Option?"hp":"sp") + "> list";
+		dispbottom "    @autopot <" + (.HP_Option?"hp":"sp") + "> <on|off>";
+	}
 	dispbottom "    @autopot info";
 	dispbottom "    @autopot help";
+	dispbottom "    @autopot blacklist";
 	return;
 
 L_Info:
-	dispbottom "------ Auto-Potion Information ------";
-	dispbottom "POTION:  " + getitemname(@autopot_id) + " (" + @autopot_id + ")";
-	dispbottom "MIN HP:   " + @autopot_min + " %";
+	dispbottom "----------Auto-Potion Information-----------";
+	if(.HP_Option){
+		dispbottom "HP POTION:  " + getitemname(@autopot_hp_ID) + " (" + @autopot_hp_ID + ")";
+		dispbottom "MIN HP:   " + @autopot_hp_Min + " %";
+	}
+	if(.SP_Option){
+		dispbottom "SP POTION:  " + getitemname(@autopot_sp_ID) + " (" + @autopot_sp_ID + ")";
+		dispbottom "MIN SP:   " + @autopot_sp_Min + " %";
+	}
 	dispbottom "DELAY:    " + @autopot_delay + " ms";
 	dispbottom "---------------------------------------------";
 	return;
 
 L_Start:
-	.@potion = getarg(0);
-	.@min    = getarg(1);
-	.@delay  = getarg(2);
-	if (.@min   < 1  || .@min   > 100)  .@min   = 90;
-	if (.@delay < 50 || .@delay > 1000) .@delay = 50;  // lower values will increase server strain
-	switch (.@potion) {
-		case 501:
-		case 507:
-		case 545:
-		case 569: .@effect = EF_POTION1; break;
-		case 502: .@effect = EF_POTION2; break;
-		case 503:
-		case 508:
-		case 546:
-		case 579:
-		case 11500: .@effect = EF_POTION3; break;
-		case 504:
-		case 509:
-		case 547:
-		case 11501:
-		case 11503:
-		case 11548: .@effect = EF_POTION4; break;
-		case 512:
-		case 513:
-		case 515:
-		case 516:
-		case 548:
-		case 549:
-		case 550:
-		case 582:
-		case 607: .@effect = EF_POTION7; break;
-		default: .@effect = EF_EXIT; break;
-	}
+	deltimer strnpcinfo(3) + "::OnStart";
+	.@type$  = getarg(0,0);
+	.@potion = getarg(1,0);
+	setd "@autopot_" + .@type$ + "_Min",getarg(2,0);
+	@autopot_delay = getarg(3,0);
 
+	if (getd("@autopot_" + .@type$ + "_Min")   < 1  || getd("@autopot_" + .@type$ + "_Min") > 100)  setd "@autopot_" + .@type$ + "_Min",90;
+	if (@autopot_delay < 50 || @autopot_delay > 1000) @autopot_delay = .MinDelay;
+	if (getiteminfo(.@potion,2) != IT_HEALING) {
+		dispbottom getitemname(.@potion) + " is not a healing item.";
+		end;
+	}
+	if(inarray(.blackList[0],.@potion) != -1){
+		message strcharinfo(0), "'" + getitemname(.@potion) + "' is black listed and cannot be used.";
+		end;
+	}
 	if (BaseLevel < getiteminfo(.@potion,12)) {
 		message strcharinfo(0), "Your base level is too low to use '" + getitemname(.@potion) + "'.";
 		end;
 	}
-
-	@autopot_id    = .@potion;
-	@autopot_min   = .@min;
-	@autopot_delay = .@delay;
-	@autopot_eff   = .@effect;
-	@autopot_none  = 0;
-	bonus_script "{ callfunc \"start_autopot\"; }",86400,8,0,EFST_HEALPLUS;
-
-	message strcharinfo(0), "Auto-Potion started.";
+	setd "@autopot_" + .@type$ + "_ID",.@potion;
+	setd "@autopot_" + .@type$ + "_Active",true;
+	addtimer .@delay,strnpcinfo(3) + "::OnStart";
+	message strcharinfo(0), "Auto-Potion " + strtoupper(.@type$) + " enabled.";
 	callsub L_Info;
 	return;
 
@@ -92,97 +85,117 @@ OnCommand:
 		callsub L_Help;
 		end;
 	}
-
-	.@command$ = strtolower(.@atcmd_parameters$[0]);
-
-	if (.@command$ == "on") {
-		if (@autopot_min)
-			message strcharinfo(0), "Auto-Potion is already on.";
-		else if (@autopot_min_) {
-			@autopot_min  = @autopot_min_;
-			@autopot_min_ = 0;
-			message strcharinfo(0), "Auto-Potion enabled.";
-			callsub L_Info;
-		} else {
-			message strcharinfo(0), "Auto-Potion has not been set.";
-			callsub L_Help;
+	.@command$[0] = strtolower(.@atcmd_parameters$[0]);
+	.@command$[1] = strtolower(.@atcmd_parameters$[1]);
+	
+	if(.@command$[0] == "hp" || .@command$[0] == "sp"){
+		if((!.HP_Option && .@command$[0] == "hp") || (!.SP_Option && .@command$[0] == "sp")){
+			message strcharinfo(0), "Auto-Potion " + strtoupper(.@command$[0]) + " is Disabled from The Server.";
+			end;
 		}
-		end;
-	} else if (.@command$ == "off") {
-		if (!@autopot_min)
-			message strcharinfo(0), "Auto-Potion is already off.";
-		else {
-			@autopot_min_ = @autopot_min;
-			@autopot_min  = 0;
-			message strcharinfo(0), "Auto-Potion disabled.";
+		if(.@command$[1] == "on"){
+			if(getd("@autopot_" + .@command$[0] + "_Active")){
+				message strcharinfo(0), "Auto-Potion " + strtoupper(.@command$[0]) + " is already on.";
+				end;
+			}
+			if(!getd("@autopot_" + .@command$[0] + "_ID")){
+				dispbottom "You need to set a " + strtoupper(.@command$[0]) + " Potion to be used.";
+				callsub L_Help;
+				end;
+			}
+			callsub L_Start,.@command$[0],getd("@autopot_" + .@command$[0] + "_ID");
+			end;
 		}
-		end;
-	} else if (.@command$ == "list") {  // credits to AnnieRuru
-		getinventorylist;
-		for (; .@i < @inventorylist_count; .@i++) {
-			if (getiteminfo(@inventorylist_id[.@i],2) == IT_HEALING) {
-				.@items[.@count] = @inventorylist_id[.@i];
-				.@menu$ = .@menu$ + sprintf("~ ^0055FF%s^000000 (%dx):", getitemname(@inventorylist_id[.@i]), countitem(@inventorylist_id[.@i]));
-				.@count++;
+		if(.@command$[1] == "off"){
+			message strcharinfo(0), "Auto-Potion " + strtoupper(.@command$[0]) + " disabled.";
+			setd "@autopot_" + .@command$[0] + "_Active",false;
+			if(!@autopot_hp_Active || !@autopot_sp_Active)
+				deltimer strnpcinfo(3) + "::OnStart";
+			end;
+		}
+		if(.@command$[1] == "list"){
+			getinventorylist;
+			for(.@i = 0;.@i < @inventorylist_count;.@i++){
+				if (getiteminfo(@inventorylist_id[.@i],2) == IT_HEALING) {
+					.@items[.@count] = @inventorylist_id[.@i];
+					.@menu$ = .@menu$ + sprintf("~ ^0055FF%s^000000 (%dx)" + (inarray(.blackList[0],@inventorylist_id[.@i]) != -1? " ^364022Black Listed^000000":"") + (BaseLevel < getiteminfo(@inventorylist_id[.@i],12)? " ^E82C0CNeed Higher Level^000000":"") + ":", getitemname(@inventorylist_id[.@i]), countitem(@inventorylist_id[.@i]));
+					.@count++;
+				}
+			}
+			if(.@count){
+				mes "[ Auto-Potion ]";
+				mes "Select a " + strtoupper(.@command$[0]) + " item.";
+				.@select = select(.@menu$ + "   ^777777Cancel^000000") - 1;
+				if (.@select != .@count)
+					callsub L_Start,.@command$[0],.@items[.@select];
+				close2;
+			}else{
+				message strcharinfo(0), "There are no healing items in your inventory.";
 			}
+			end;
+		}
+		.@potion = atoi(.@command$[1]);
+		.@percent = atoi(.@atcmd_parameters$[2]);
+		.@delay = atoi(.@atcmd_parameters$[3]);
+		if(getitemname(.@potion) != "null"){
+			callsub L_Start,.@command$[0],.@potion,.@percent,.@delay;
+			end;
+		}
+		message strcharinfo(0), "Auto-Potion : something went wrong!";
+		callsub L_Help;
+		end;
+	}
+	if(.@command$[0] == "blacklist"){
+		dispbottom "--------------Black Listed Items--------------";
+		for(.@i=0;.@i<getarraysize(.blackList);.@i++){
+			dispbottom "    " + getitemname(.blackList[.@i]) + " (" + .blackList[.@i] + ")";
 		}
-		if (.@count) {	// 'mes' window needed if player is hit during selection
-			mes "[ Auto-Potion ]";
-			mes "Select a healing item.";
-			.@select = select(.@menu$ + "   ^777777Cancel^000000") - 1;
-			if (.@select != .@count)
-				callsub L_Start, .@items[.@select], 0, 0;
-			close2;
-		} else
-			message strcharinfo(0), "There are no healing items in your inventory.";
+		dispbottom "---------------------------------------------";
 		end;
-	} else if (.@command$ == "info") {
-		if (@autopot_min) {
+	}
+	if(.@command$[0] == "info"){
+		if(@autopot_hp_Active || @autopot_sp_Active){
 			message strcharinfo(0), "Auto-Potion information is displayed below.";
 			callsub L_Info;
-		} else
+		}else{
 			message strcharinfo(0), "Auto-Potion is not enabled.";
+		}
 		end;
-	} else if (.@command$ == "help") {
+	}
+	if(.@command$[0] == "help"){
 		message strcharinfo(0), "List of commands is displayed below.";
 		callsub L_Help;
 		end;
-	} else {
-		.@potion = atoi(.@atcmd_parameters$[0]);
-		if (getiteminfo(.@potion,2) != IT_HEALING) {
-			message strcharinfo(0), getitemname(.@potion) + " is not a healing item.";
-			end;
-		}
-		callsub L_Start, .@potion, atoi(.@atcmd_parameters$[1]), atoi(.@atcmd_parameters$[2]);
-		end;
 	}
-}
+	
+	message strcharinfo(0), "Invalid syntax.";
+	callsub L_Help;
+end;
 
-function	script	start_autopot	{
-	if (@autopot_active) end;
-	@autopot_active = 1;
-	while (Hp && Hp * 100 / MaxHp < @autopot_min) {
-		if (!countitem(@autopot_id)) {
-			if (@autopot_none <= gettimetick(2)) {
-				@autopot_none = gettimetick(2) + 10;
-				dispbottom "There are no '" + getitemname(@autopot_id) + "' in your inventory.";
+OnStart:
+	if (!getstatus(SC_BERSERK) && !getstatus(SC_SATURDAYNIGHTFEVER) && !getstatus(SC_GRAVITATION) &&
+	    !getstatus(SC_TRICKDEAD) && !getstatus(SC_HIDING) && !getstatus(SC__SHADOWFORM) && !getstatus(SC__INVISIBILITY) &&
+	    !getstatus(SC__MANHOLE) && !getstatus(SC_KAGEHUMI) && !getstatus(SC_HEAT_BARREL_AFTER) &&
+		!getstatus(SC_STONE) && !getstatus(SC_FREEZE) && !getstatus(SC_STUN) && !getstatus(SC_SLEEP))
+		{
+		if(Hp){
+			if(@autopot_hp_Active && Hp * 100 / MaxHp < @autopot_hp_Min) {
+				if (countitem(@autopot_hp_ID)) {
+					delitem @autopot_hp_ID,1;
+					consumeitem @autopot_hp_ID;
+					specialeffect2 207;
+				}
+			}
+			if(@autopot_sp_Active && Sp * 100 / MaxSp < @autopot_sp_Min) {
+				if (countitem(@autopot_sp_ID)) {
+					delitem @autopot_sp_ID,1;
+					consumeitem @autopot_sp_ID;
+					specialeffect2 208;
+				}
 			}
-			break;
-		}
-		if (getstatus(SC_BERSERK) || getstatus(SC_SATURDAYNIGHTFEVER) || getstatus(SC_GRAVITATION) ||
-		    getstatus(SC_TRICKDEAD) || getstatus(SC_HIDING) || getstatus(SC__SHADOWFORM) || getstatus(SC__INVISIBILITY) ||
-		    getstatus(SC__MANHOLE) || getstatus(SC_KAGEHUMI) || getstatus(SC_HEAT_BARREL_AFTER))
-			break;
-		if (getstatus(SC_STONE) || getstatus(SC_FREEZE) || getstatus(SC_STUN) || getstatus(SC_SLEEP))
-			;
-		else {
-			delitem @autopot_id,1;
-			consumeitem @autopot_id;
-			specialeffect2 @autopot_eff;
 		}
-		sleep2 @autopot_delay;
 	}
-	@autopot_active = 0;
-	autobonus2 "{}",10000,1,BF_WEAPON|BF_MAGIC;
-	end;
-}
+	if(@autopot_hp_Active || @autopot_sp_Active)
+		addtimer @autopot_delay,strnpcinfo(3) + "::OnStart";
+end;
+}

+ 1 - 1
npc/custom/events/devil_square.txt

@@ -107,7 +107,7 @@ OnClock2200:
 	disablenpc "ord11-12"; //from npc/warps/pvp.txt
 	disablenpc "Devil Square Guardian#2";
 	mapannounce "ordeal_1-1","Devil Square is now closed.", bc_map;
-	getmapxy .@map$, .@x, .@y, UNITTYPE_NPC;
+	getmapxy .@map$, .@x, .@y, BL_NPC;
 	mapwarp "ordeal_1-1", .@map$, .@x, .@y;
 	killmonsterall "ordeal_1-1";
 	announce "Devil Square is OPEN. The event will begin in 5 minutes.", bc_all;

+ 2 - 2
npc/custom/events/mvp_ladder.txt

@@ -63,7 +63,7 @@ prontera,164,171,3	script	MvP Ladder Warper	56,{
 		mes "You have to form a party to play.";
 		close;
 	}
-	if ( getpartyleader( getcharid(1), 2 ) != getcharid(0) ) {
+	if ( is_party_leader() == false ) {
 		mes "[MvP Ladder Warper]";
 		mes "Only the party leader can register.";
 		close;
@@ -311,7 +311,7 @@ OnInit:
 //	Config Ends --------------------------------------------------------------
 
 	mapannounce .eventmap$, "An administrator has refreshed the server. Please re-register. We apologize for the inconvenience.", bc_map;
-	getmapxy .map$, .x, .y, UNITTYPE_NPC;
+	getmapxy .map$, .x, .y, BL_NPC;
 	mapwarp .eventmap$, .map$, .x, .y;
 	killmonsterall .eventmap$;
 	.@size = getarraysize( .@mapflag );

Някои файлове не бяха показани, защото твърде много файлове са промени