Browse Source

Merge branch 'master' into hotfix/issue2173

Aleos 4 years ago
parent
commit
10e1b3a7fe
100 changed files with 3632 additions and 1552 deletions
  1. 6 0
      .editorconfig
  2. 2 1
      .gitattributes
  3. 7 2
      .gitignore
  4. 1 1
      .mailmap
  5. 2 2
      .travis.yml
  6. 2 2
      3rdparty/libconfig/libconfig.vcxproj
  7. 2 2
      3rdparty/yaml-cpp/yaml-cpp.vcxproj
  8. 1 0
      AUTHORS
  9. 61 194
      README.md
  10. 18 41
      appveyor.yml
  11. BIN
      branding/logo.png
  12. 0 72
      conf/atcommand_athena.conf
  13. 970 0
      conf/atcommands.yml
  14. 3 2
      conf/battle/battle.conf
  15. 5 1
      conf/battle/battleground.conf
  16. 12 3
      conf/battle/client.conf
  17. 6 0
      conf/battle/exp.conf
  18. 33 4
      conf/battle/feature.conf
  19. 18 1
      conf/battle/gm.conf
  20. 0 3
      conf/battle/guild.conf
  21. 36 2
      conf/battle/homunc.conf
  22. 12 1
      conf/battle/items.conf
  23. 5 2
      conf/battle/misc.conf
  24. 23 1
      conf/battle/monster.conf
  25. 12 8
      conf/battle/pet.conf
  26. 8 7
      conf/battle/player.conf
  27. 27 4
      conf/battle/skill.conf
  28. 1 1
      conf/battle/status.conf
  29. 4 4
      conf/char_athena.conf
  30. 2 1
      conf/groups.conf
  31. 0 327
      conf/help.txt
  32. 33 0
      conf/import-tmpl/atcommands.yml
  33. 38 12
      conf/import-tmpl/inter_server.yml
  34. 1 3
      conf/inter_athena.conf
  35. 26 14
      conf/inter_server.yml
  36. 4 6
      conf/log_athena.conf
  37. 17 2
      conf/login_athena.conf
  38. 0 2
      conf/map_athena.conf
  39. 1 1
      conf/motd.txt
  40. 40 8
      conf/msg_conf/map_msg.conf
  41. 6 7
      conf/msg_conf/map_msg_chn.conf
  42. 6 7
      conf/msg_conf/map_msg_frn.conf
  43. 1 1
      conf/msg_conf/map_msg_grm.conf
  44. 5 6
      conf/msg_conf/map_msg_idn.conf
  45. 6 7
      conf/msg_conf/map_msg_por.conf
  46. 6 7
      conf/msg_conf/map_msg_rus.conf
  47. 10 7
      conf/msg_conf/map_msg_spn.conf
  48. 5 6
      conf/msg_conf/map_msg_tha.conf
  49. 15 2
      conf/packet_athena.conf
  50. 73 18
      configure
  51. 54 12
      configure.in
  52. 0 227
      db/abra_db.txt
  53. 326 0
      db/abra_db.yml
  54. 90 0
      db/achievement_db.yml
  55. 40 0
      db/achievement_level_db.yml
  56. 42 0
      db/attendance.yml
  57. 211 0
      db/battleground_db.yml
  58. 42 5
      db/const.txt
  59. 0 30
      db/guild_skill_tree.txt
  60. 44 0
      db/guild_skill_tree.yml
  61. 10 10
      db/homun_skill_tree.txt
  62. 0 17
      db/import-tmpl/abra_db.txt
  63. 33 0
      db/import-tmpl/abra_db.yml
  64. 3 1
      db/import-tmpl/achievement_db.yml
  65. 32 0
      db/import-tmpl/achievement_level_db.yml
  66. 32 1
      db/import-tmpl/attendance.yml
  67. 59 0
      db/import-tmpl/battleground_db.yml
  68. 0 13
      db/import-tmpl/guild_skill_tree.txt
  69. 36 0
      db/import-tmpl/guild_skill_tree.yml
  70. 0 6
      db/import-tmpl/instance_db.txt
  71. 40 0
      db/import-tmpl/instance_db.yml
  72. 4 3
      db/import-tmpl/item_db.txt
  73. 6 0
      db/import-tmpl/item_flag.txt
  74. 0 0
      db/import-tmpl/job_exp.txt
  75. 0 8
      db/import-tmpl/magicmushroom_db.txt
  76. 30 0
      db/import-tmpl/magicmushroom_db.yml
  77. 0 16
      db/import-tmpl/mob_avail.txt
  78. 123 0
      db/import-tmpl/mob_avail.yml
  79. 0 60
      db/import-tmpl/pet_db.txt
  80. 486 0
      db/import-tmpl/pet_db.yml
  81. 0 7
      db/import-tmpl/quest_db.txt
  82. 54 0
      db/import-tmpl/quest_db.yml
  83. 0 7
      db/import-tmpl/size_fix.txt
  84. 33 0
      db/import-tmpl/size_fix.yml
  85. 0 18
      db/import-tmpl/skill_cast_db.txt
  86. 0 16
      db/import-tmpl/skill_castnodex_db.txt
  87. 0 52
      db/import-tmpl/skill_copyable_db.txt
  88. 9 9
      db/import-tmpl/skill_damage_db.txt
  89. 0 79
      db/import-tmpl/skill_db.txt
  90. 132 0
      db/import-tmpl/skill_db.yml
  91. 0 8
      db/import-tmpl/skill_improvise_db.txt
  92. 0 28
      db/import-tmpl/skill_nonearnpc_db.txt
  93. 0 33
      db/import-tmpl/skill_require_db.txt
  94. 0 29
      db/import-tmpl/skill_unit_db.txt
  95. 0 9
      db/import-tmpl/spellbook_db.txt
  96. 32 0
      db/import-tmpl/spellbook_db.yml
  97. 48 0
      db/instance_db.yml
  98. 1 1
      db/item_avail.txt
  99. 8 11
      db/job_db2.txt
  100. 0 31
      db/magicmushroom_db.txt

+ 6 - 0
.editorconfig

@@ -6,9 +6,15 @@ root = true
 
 
 # Add a blank newline to the end of every file after saving
 # Add a blank newline to the end of every file after saving
 # Trim trailing whitespace
 # Trim trailing whitespace
+# Adjust character set
 [*]
 [*]
 insert_final_newline = true
 insert_final_newline = true
 trim_trailing_whitespace = true
 trim_trailing_whitespace = true
+charset = utf-8
+
+# Use tabs in source
+[*.{cpp,c,hpp,h}]
+indent_style = tab
 
 
 # YAML does not support hard tabs.
 # YAML does not support hard tabs.
 [*.{yml,yaml}]
 [*.{yml,yaml}]

+ 2 - 1
.gitattributes

@@ -1,5 +1,6 @@
 *        text=auto
 *        text=auto
-*.c      diff=cpp
+*.cpp diff=cpp
+*.yml diff text eol=lf
 *.sln    merge=union
 *.sln    merge=union
 *.vcproj merge=union
 *.vcproj merge=union
 *.vcxproj merge=union
 *.vcxproj merge=union

+ 7 - 2
.gitignore

@@ -29,6 +29,7 @@ Thumbs.db
 *.a
 *.a
 *.vcxproj.user
 *.vcxproj.user
 /char-server
 /char-server
+/csv2yaml
 /config.log
 /config.log
 /config.status
 /config.status
 /core
 /core
@@ -71,7 +72,7 @@ Thumbs.db
 /src/common/Makefile
 /src/common/Makefile
 /src/common/obj_all
 /src/common/obj_all
 /src/common/obj_sql
 /src/common/obj_sql
-/src/common/svnversion.h
+/src/common/version.hpp
 
 
 # /src/custom/
 # /src/custom/
 /src/custom
 /src/custom
@@ -83,7 +84,7 @@ Thumbs.db
 # /src/map/
 # /src/map/
 /src/map/Makefile
 /src/map/Makefile
 /src/map/obj_sql
 /src/map/obj_sql
-/src/map/pcre.h
+/src/map/pcre.hpp
 
 
 # /src/tool/
 # /src/tool/
 /src/tool/Makefile
 /src/tool/Makefile
@@ -112,6 +113,7 @@ Thumbs.db
 
 
 # bat tools
 # bat tools
 /charserv.bat
 /charserv.bat
+/csv2yaml.bat
 /logserv.bat
 /logserv.bat
 /mapcache.bat
 /mapcache.bat
 /mapserv.bat
 /mapserv.bat
@@ -122,3 +124,6 @@ Thumbs.db
 /libmysql.dll
 /libmysql.dll
 /pcre8.dll
 /pcre8.dll
 /zlib.dll
 /zlib.dll
+
+# CMakeFiles
+/CMakeFiles/

+ 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>
 cydh <cydh@users.noreply.github.com> <cydh@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 Daegaladh <Daegaladh@users.noreply.github.com> <daegaladh@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>
 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>
 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> <FlavioJS@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 flaviojs <flaviojs2005@gmail.com> <flaviojs2005@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>
 # mc_cameri <mc_cameri@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 # evera <evera@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 # evera <evera@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 # SinSloth <SinSloth@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>
 # DracoRPG <DracoRPG@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 # littlewolf <littlewolf@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 # littlewolf <littlewolf@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 # eaac <eaac@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 # eaac <eaac@54d463be-8e91-2dee-dedb-b68131a5f0ec>

+ 2 - 2
.travis.yml

@@ -137,7 +137,7 @@ matrix:
 ##         MacOS default MySQL configuration does not like our card seller(only full group by)
 ##         MacOS default MySQL configuration does not like our card seller(only full group by)
 #        - ./tools/ci/npc.sh
 #        - ./tools/ci/npc.sh
 #        - make clean
 #        - make clean
-#        - make server
+#        - make all
 #        - ./login-server --run-once
 #        - ./login-server --run-once
 #        - ./char-server --run-once
 #        - ./char-server --run-once
 #        - ./map-server --run-once
 #        - ./map-server --run-once
@@ -181,7 +181,7 @@ script:
   - ./configure $CONFIGURE_FLAGS || travis_terminate 1
   - ./configure $CONFIGURE_FLAGS || travis_terminate 1
   - ./tools/ci/npc.sh
   - ./tools/ci/npc.sh
   - make clean || travis_terminate 1
   - make clean || travis_terminate 1
-  - make server || travis_terminate 1
+  - make all || travis_terminate 1
   - ./login-server --run-once
   - ./login-server --run-once
   - ./char-server --run-once
   - ./char-server --run-once
   - ./map-server --run-once
   - ./map-server --run-once

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

@@ -106,7 +106,7 @@
       </PrecompiledHeader>
       </PrecompiledHeader>
       <WarningLevel>Level3</WarningLevel>
       <WarningLevel>Level3</WarningLevel>
       <Optimization>Disabled</Optimization>
       <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>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
     </ClCompile>
     </ClCompile>
     <Link>
     <Link>
@@ -120,7 +120,7 @@
       </PrecompiledHeader>
       </PrecompiledHeader>
       <WarningLevel>Level3</WarningLevel>
       <WarningLevel>Level3</WarningLevel>
       <Optimization>Disabled</Optimization>
       <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>
       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
     </ClCompile>
     </ClCompile>
     <Link>
     <Link>

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

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

+ 1 - 0
AUTHORS

@@ -227,6 +227,7 @@ Sirius_White
 sk
 sk
 SketchyPhoenix
 SketchyPhoenix
 Skotlex
 Skotlex
+SnakeDrak
 spamrat
 spamrat
 SPDFMember
 SPDFMember
 spira
 spira

+ 61 - 194
README.md

@@ -1,205 +1,72 @@
-rAthena
-=======
+<img src="branding/logo.png" align="right" height="90" />
+
+# rAthena
+[![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) ![GitHub](https://img.shields.io/github/license/rathena/rathena.svg) ![GitHub repo size](https://img.shields.io/github/repo-size/rathena/rathena.svg)
+> rAthena is a collaborative software development project revolving around the creation of a robust massively multiplayer online role playing game (MMORPG) server package. Written in C, the program is very versatile and provides NPCs, warps and modifications. The project is jointly managed by a group of volunteers located around the world as well as a tremendous community providing QA and support. rAthena is a continuation of the eAthena project.
+
+[Forum](https://rathena.org/board)|[Discord](https://rathena.org/discord)|[Wiki](https://github.com/rathena/rathena/wiki)|[FluxCP](https://github.com/rathena/FluxCP)|[Crowdfunding](https://rathena.org/board/crowdfunding/)|[Fork and Pull Request Q&A](https://rathena.org/board/topic/86913-pull-request-qa/)
+--------|--------|--------|--------|--------|--------
+
+### Table of Contents
+1. [Prerequisites](#1-prerequisites)
+2. [Installation](#2-installation)
+3. [Troubleshooting](#3-troubleshooting)
+4. [More Documentation](#4-more-documentation)
+5. [How to Contribute](#5-how-to-contribute)
+6. [License](#6-license)
+
+## 1. Prerequisites
+Before installing rAthena there are certain tools and applications you will need which
+differs between the varying operating systems available.
+
+### Hardware
+Hardware Type | Minimum | Recommended
+------|------|------
+CPU | 1 Core | 2 Cores
+RAM | 1 GB | 2 GB
+Disk Space | 300 MB | 500 MB
+
+### Operating System & Preferred Compiler
+Operating System | Compiler
+------|------
+Linux  | [gcc-5 or newer](https://www.gnu.org/software/gcc/gcc-5/) / [Make](https://www.gnu.org/software/make/)
+Windows | [MS Visual Studio 2013, 2015, 2017](https://www.visualstudio.com/downloads/)
+
+### Required Applications
+Application | Name
+------|------
+Database | [MySQL 5 or newer](https://www.mysql.com/downloads/) / [MariaDB 5 or newer](https://downloads.mariadb.org/)
+Git | [Windows](https://gitforwindows.org/) / [Linux](https://git-scm.com/download/linux)
+
+### Optional Applications
+Application | Name
+------|------
+Database | [MySQL Workbench 5 or newer](http://www.mysql.com/downloads/workbench/)
+
+## 2. Installation 
+
+### Full Installation Instructions
+  * [Windows](https://github.com/rathena/rathena/wiki/Install-on-Windows)
+  * [CentOS](https://github.com/rathena/rathena/wiki/Install-on-Centos)
+  * [Debian](https://github.com/rathena/rathena/wiki/Install-on-Debian)
+  * [FreeBSD](https://github.com/rathena/rathena/wiki/Install-on-FreeBSD)
+
+## 3. Troubleshooting
 
 
-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)
-
-Table of Contents
----------
-1. What is rAthena?
-2. Prerequisites
-3. Installation
-4. Troubleshooting
-5. Helpful Links
-6. More Documentation
-7. How to Contribute
-
-1. What is rAthena?
----------
-rAthena is a collaborative software development project revolving around the
-creation of a robust massively multiplayer online role playing game (MMORPG)
-server package. Written in C, the program is very versatile and provides NPCs,
-warps and modifications. The project is jointly managed by a group of volunteers
-located around the world as well as a tremendous community providing QA and
-support. rAthena is a continuation of the eAthena project.
-
-2. Prerequisites
----------
-Before installing rAthena there are certain tools and applications you will need.
-This differs between the varying operating systems available, so the following
-is broken down into Windows and Linux prerequisites.
-
-* Windows
-	* MySQL ( http://www.mysql.com/downloads/mysql/ )
-	* MySQL Workbench ( http://www.mysql.com/downloads/workbench/ )
-	* MS Visual Studio ( https://www.visualstudio.com/downloads/ )
-	* TortoiseGIT ( http://code.google.com/p/tortoisegit/ )
-	* git for Windows ( https://gitforwindows.org/ )
-
-* Linux (names of packages may require specific version numbers on certain distributions)
-	* gcc
-	* g++
-	* make
-	* mysql
-	* mysql-devel
-	* mysql-server
-	* pcre-devel
-	* zlib-devel
-	* git
-
-3. Installation 
----------
-This section is a very brief set of installation instructions. For more concise guides
-relevant to your Operation System, please refer to the Wiki (links at the end of this file).
-
-* Windows
-	* Install prerequisites
-	* Create a folder to download rAthena into (e.g. C:\rAthena)
-	* Right click this folder and select "Git Clone"
-	* Paste the GitHub URL into the box:
-
-				https://github.com/rathena/rathena.git
-				
-	* Open MySQL Workbench and create an instance to connect to your MySQL Server
-	* Create a database (rathena), a user (rathena), give permissions (GRANT SELECT,INSERT,UPDATE,DELETE)
-		and then login using the new user
-	* Use MySQL Workbench to run the .sql files in /sql-files/ on the new rathena database
-
-* Linux
-	* Type:
-		* (For CentOS)
-
-				yum install gcc g++ make mysql mysql-devel mysql-server pcre-devel zlib-devel git
-		* (For Debian)
-
-				apt-get install git make gcc g++ libmysqlclient-dev zlib1g-dev libpcre3-dev
-	* Type:
-
-				mysql_secure_installation
-	* Start your MySQL server
-	* Setup a MySQL user:
-
-				CREATE USER 'rathena'@'localhost' IDENTIFIED BY 'password';
-	* Assign permissions:
-
-				GRANT SELECT,INSERT,UPDATE,DELETE ON `rathena\_rag`.* TO 'rathena'@'localhost';
-	* Clone a GIT repository:
-
-				git clone https://github.com/rathena/rathena.git ~/rathena
-	* Insert SQL files:
-
-				mysql --user=root -p rathena_rag < trunk/sql-files/main.sql (and others)
-	* Configure and compile:
-
-				./configure && make clean && make server
-	* Configure and compile (for Centos 64 bit with Maria DB):
-
-				./configure --enable-64bit --with-MYSQL_LIBS=/usr/lib64/libmysqlclient.so && make clean && make server
-	* When you're ready, start the servers:
-
-				./athena-start start
-
-* Optional
-	* If you want to have your own forked version but still get updates from the main rAthena repository
-		* Fork this repository to your GitHub account
-		* List the current configured remote repository for your fork:
-		
-				git remote -v
-
-		* Specify a new remote upstream repository that will be synced with your fork:
-		
-				git remote add upstream https://github.com/rathena/rathena.git
-				
-		* Verify the new upstream repository you've specified for your fork:
-		
-				git remote -v
-				
-		* You should see the main rAthena repository as well as your forked repository
-		* Now, when you want to get updates from rAthena, simply do:
-		
-				git pull upstream master
-
-	* Remember that rAthena falls under [GNU GPLv3](https://github.com/rathena/rathena/blob/master/LICENSE).
-
-4. Troubleshooting
----------
 If you're having problems with starting your server, the first thing you should
 If you're having problems with starting your server, the first thing you should
 do is check what's happening on your consoles. More often that not, all support issues
 do is check what's happening on your consoles. More often that not, all support issues
-can be solved simply by looking at the error messages given.
-
-Examples:
-
-* You get an error on your map-server that looks something like this:
-
-			[Error]: npc_parsesrcfile: Unable to parse, probably a missing or extra TAB in 
-				file 'npc/custom/jobmaster.txt', line '17'. Skipping line...
-				* w1=prontera,153,193,6 script
-				* w2=Job Master
-				* w3=123,{
-				* w4=
-
-    If you look at the error, it's telling you that you're missing (or have an extra) TAB.
-		This is easily fixed by looking at this part of the error:
-
-				* w1=prontera,153,193,6 script
-
-	If there was a TAB where it's supposed to be, that line would have prontera,153,193,6 at w1
-		and 'script' at w2. As there's a space instead of a TAB, the two sections are read as a
-		single parameter.
-
-* You have a default user/password warning similar to the following:
-
-			[Warning]: Using the default user/password s1/p1 is NOT RECOMMENDED.
-			[Notice]: Please edit your 'login' table to create a proper inter-server user/pa
-			ssword (gender 'S')
-			[Notice]: and then edit your user/password in conf/map_athena.conf (or conf/impo
-			rt/map_conf.txt)
-
-    Relax. This is just indicating that you're using the default username and password. To
-		fix this, check over the part in the installation instructions relevant to the `login` table.
-	
-* Your map-server outputs the following:
-
-			[Error]: make_connection: connect failed (socket #2, error 10061: No connection
-			could be made because the target machine actively refused it.
-			)!
+can be solved simply by looking at the error messages given. Check out the [wiki](https://github.com/rathena/rathena/wiki)
+or [forums](https://rathena.org/forum) if you need more support on troubleshooting.
 
 
-    If this shows up on the map server, it generally means that there is no Char Server available
-		to accept the connection.
-
-
-
-5. Helpful Links
----------
-* rAthena Forums
-	* https://rathena.org/
-
-* GIT Repository
-	* https://github.com/rathena/rathena
-
-* Full Installation Instructions
-	* [Windows](https://github.com/rathena/rathena/wiki/Install-on-Windows)
-	* [CentOS](https://github.com/rathena/rathena/wiki/Install-on-Centos)
-	* [Debian](https://github.com/rathena/rathena/wiki/Install-on-Debian)
-	* [FreeBSD](https://github.com/rathena/rathena/wiki/Install-on-FreeBSD)
-
-* rAthena Discord Chat
-	https://rathena.org/discord
-
-* rAthena Wiki
-	https://github.com/rathena/rathena/wiki
-
-* Fork and Pull Request Q&A
-	https://rathena.org/board/topic/86913-pull-request-qa/
-
-
-6. More Documentation
----------
+## 4. More Documentation
 rAthena has a large collection of help files and sample NPC scripts located in the /doc/
 rAthena has a large collection of help files and sample NPC scripts located in the /doc/
 directory. These include detailed explanations of NPC script commands, atcommands (@),
 directory. These include detailed explanations of NPC script commands, atcommands (@),
 group permissions, item bonuses, and packet structures, among many other topics. We
 group permissions, item bonuses, and packet structures, among many other topics. We
 recommend that all users take the time to look over this directory before asking for
 recommend that all users take the time to look over this directory before asking for
 assistance elsewhere.
 assistance elsewhere.
 
 
-7. How to Contribute
----------
+## 5. How to Contribute
 Details on how to contribute to rAthena can be found in [CONTRIBUTING.md](https://github.com/rathena/rathena/blob/master/.github/CONTRIBUTING.md)!
 Details on how to contribute to rAthena can be found in [CONTRIBUTING.md](https://github.com/rathena/rathena/blob/master/.github/CONTRIBUTING.md)!
+
+## 6. License
+Copyright (c) rAthena Development Team - Licensed under [GNU General Public License v3.0](https://github.com/rathena/rathena/blob/master/LICENSE)

+ 18 - 41
appveyor.yml

@@ -1,4 +1,4 @@
-image: Visual Studio 2013
+image: Visual Studio 2015
 # This is the default location, but we put it here for safety reasons, since we use it in our test script
 # This is the default location, but we put it here for safety reasons, since we use it in our test script
 clone_folder: c:\projects\rathena
 clone_folder: c:\projects\rathena
 # We do not need the git history for our integration tests
 # We do not need the git history for our integration tests
@@ -8,10 +8,8 @@ pull_requests:
   do_not_increment_build_number: true
   do_not_increment_build_number: true
 environment:
 environment:
   matrix:
   matrix:
-  - VisualStudioVersion: 14.0
-    Defines: "\"BUILDBOT\""
-  - VisualStudioVersion: 14.0
-    Defines: "\"BUILDBOT;PRERE\""
+  - Defines: "\"BUILDBOT\""
+  - Defines: "\"BUILDBOT;PRERE\""
 platform:
 platform:
   - Win32
   - Win32
   - x64
   - x64
@@ -26,8 +24,12 @@ build_script:
 services: mysql
 services: mysql
 test_script:
 test_script:
 - cmd: >-
 - cmd: >-
+    rem ========================================================================
+    
     rem Set up the environment variables we need
     rem Set up the environment variables we need
     
     
+    rem ========================================================================
+    
     set DB_HOST=127.0.0.1
     set DB_HOST=127.0.0.1
     
     
     set DB_ROOT=root
     set DB_ROOT=root
@@ -44,53 +46,28 @@ test_script:
     
     
     cd C:\projects\rathena
     cd C:\projects\rathena
     
     
-    rem TODO should be replace with tools\ci\sql.bat as soon as possible
-    rem MySQL database setup
-    
-    %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% -e "CREATE DATABASE %DB_NAME%;"
-    
-    %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\main.sql"
-    
-    %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\logs.sql"
-    
-    %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\item_cash_db.sql"
-    
-    %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\item_cash_db2.sql"
-    
-    %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\item_db.sql"
-    
-    %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\item_db2.sql"
-    
-    %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\item_db_re.sql"
+    rem ========================================================================
     
     
-    %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\item_db2_re.sql"
-    
-    %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_db.sql"
-    
-    %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_db2.sql"
-    
-    %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_db_re.sql"
-    
-    %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_db2_re.sql"
-    
-    %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_skill_db.sql"
-    
-    %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_skill_db2.sql"
-    
-    %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_skill_db_re.sql"
+    rem MySQL database setup
     
     
-    %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_skill_db2_re.sql"
+    rem ========================================================================
     
     
-    %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\roulette_default_data.sql"
+    call tools\ci\sql.bat
     
     
-    %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% -e "GRANT SELECT,INSERT,UPDATE,DELETE ON %DB_NAME%.* TO '%DB_USER%'@'%DB_HOST%' IDENTIFIED BY '%DB_USERPW%';"
+    rem ========================================================================
     
     
     rem Activate all custom and test scripts
     rem Activate all custom and test scripts
     
     
+    rem ========================================================================
+    
     start /d tools\ci npc.bat
     start /d tools\ci npc.bat
     
     
+    rem ========================================================================
+    
     rem Start the map server
     rem Start the map server
     
     
+    rem ========================================================================
+    
     login-server.exe --run-once
     login-server.exe --run-once
     
     
     char-server.exe --run-once
     char-server.exe --run-once

BIN
branding/logo.png


+ 0 - 72
conf/atcommand_athena.conf

@@ -1,72 +0,0 @@
-/* Atcommands and charcommands configuration file */
-
-/* The symbol that will be used to recognize commands.
-You can set any one character except:
- - control-characters (0x00-0x1f),
- - '%' (party chat symbol)
- - '$' (guild chat symbol)
- - '/' (client commands symbol)
-atcommand_symbol represents @commands used locally.
-charcommand_symbol represents #commands used on other players.
-*/
-
-atcommand_symbol : "@"
-charcommand_symbol: "#"
-
-/* Command aliases
-You can define aliases for any command. Aliases work just like original
-command.
-Format is
-	<commandname>: ["<alias>", ...]
-*/
-
-aliases: {
-	mobinfo: ["monsterinfo", "mi"]
-	iteminfo: ["ii"]
-	time: ["date", "serverdate", "servertime"]
-	autotrade: ["at"]
-	help: ["h"]
-	jumpto: ["goto", "warpto"]
-	mount: ["mountpeco"]
-	who: ["whois"]
-	npctalk: ["npctalkc"]
-	gvgon: ["gpvpon"]
-	gvgoff: ["gpvpoff"]
-	jobchange: ["job"]
-	load: ["return"]
-	warp: ["rura", "mapmove"]
-	dye: ["ccolor"]
-	hairstyle: ["hstyle"]
-	haircolor: ["hcolor"]
-	monster: ["spawn"]
-	blvl: ["lvup", "blevel", "baselvl", "baselvup", "baselevel", "baselvlup"]
-	jlvl: ["jlevel", "joblvl", "joblvup", "joblevel", "joblvlup"]
-	glvl: ["glevel", "guildlvl", "guildlvup", "guildlevel", "guildlvlup"]
-	resetstat: ["streset"]
-	resetskill: ["skreset"]
-	allskill: ["allskills", "skillall", "skillsall"]
-	allstats: ["allstat", "statall", "statsall"]
-	ban: ["banish"]
-	unban: ["unbanish"]
-	unjail: ["discharge"]
-	homlevel: ["hlvl", "hlevel", "homlvl", "homlvup"]
-	homevolution: ["homevolve"]
-	mutearea: ["stfu"]
-	monsterignore: ["battleignore"]
-	raise: ["revive"]
-	kill: ["die"]
-	guildstorage: ["gstorage"]
-	accinfo: ["accountinfo"]
-	itemreset: ["clearinventory"]
-	channel: ["main"]
-	autoloottype: ["aloottype"]
-	cloneequip: ["eqclone"]
-	clonestat: ["stclone"]
-	reloadnpcfile: ["reloadnpc"]
-	changedress: ["nocosplay"]
-}
-
-/* Commands help file */
-help: {
-	@include "conf/help.txt"
-}

+ 970 - 0
conf/atcommands.yml

@@ -0,0 +1,970 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2017 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Atcommand Database
+###########################################################################
+#
+# Atcommand Settings
+#
+###########################################################################
+# - Command                  Command name.
+#   Aliases:                 Aliases for the command. (Optional)
+#     - <AliasName>
+#   Help                     Help message for the command. (Optional)
+###########################################################################
+
+Header:
+  Type: ATCOMMAND_DB
+  Version: 1
+
+Body:
+  - Command: help
+    Aliases:
+      - h
+    Help: |
+      Params: <command>
+      Shows help for specified command.
+  - Command: noask
+    Help: |
+      Auto rejects deals/invites.
+  - Command: gmotd
+    Help: |
+      Broadcasts the Message of The Day to all players.
+  - Command: me
+    Help: |
+      Params: <message>
+      Displays normal text as a message in this format: *name message* (like /me in mIRC).
+  - Command: fakename
+    Help: |
+      Params: <name>
+      Changes your name to your choice temporarily.
+  - Command: npctalk
+    Aliases:
+      - npctalkc
+    Help: |
+      Params: <NPC name> <message>
+      Forces a NPC to display a message in normal chat.
+  - Command: broadcast
+    Help: |
+      Params: <message>
+      Broadcasts a message with your name (in yellow).
+  - Command: kami
+    Help: |
+      Params: <message>
+      Broadcasts a message without your name (in yellow).
+  - Command: kamib
+    Help: |
+      Params: <message>
+      Broadcasts a message without your name (in blue).
+  - Command: localbroadcast
+    Help: |
+      Params: <message>
+      Broadcasts a message with your name (in yellow) only on your map.
+  - Command: commands
+    Help: |
+      Displays a list of commands that you can use.
+  - Command: rates
+    Help: |
+      Displays the server's current rates.
+  - Command: uptime
+    Help: |
+      Displays how long the server has been online.
+  - Command: showdelay
+    Help: |
+      Shows/hides the "There is a delay after this skill" message.
+  - Command: exp
+    Help: |
+      Displays current levels and % progress.
+  - Command: mobinfo
+    Aliases:
+      - monsterinfo
+      - mi
+    Help: |
+      Params: <monster name|ID>
+      Shows monster info (stats, exp, drops etc).
+  - Command: iteminfo
+    Aliases:
+      - ii
+    Help: |
+      Params: <item name|ID>
+      Shows item info (type, price etc).
+  - Command: whodrops
+    Help: |
+      Params: <item name|ID>
+      Shows who drops an item (monster with highest drop rates).
+  - Command: version
+    Help: |
+      Displays SVN version of the server.
+  - Command: email
+    Help: |
+      Params: <current email> <new email>
+      Changes your account e-mail address.
+  - Command: where
+    Help: |
+      Params: <char name>
+      Tells you the location of a character.
+  - Command: time
+    Aliases:
+      - date
+      - serverdate
+      - servertime
+    Help: |
+      Shows the date and time of the server.
+  - Command: showexp
+    Help: |
+      Displays/hides experience gained.
+  - Command: showzeny
+    Help: |
+      Displays/hides Zeny gained.
+  - Command: mobsearch
+    Help: |
+      Params: <monster name|ID>
+      Shows the location of a certain mob on the current map.
+  - Command: who
+    Aliases:
+      - whois
+    Help: |
+      Params: [<name>]
+      Shows a list of online players and their party and guild.
+  - Command: who2
+    Help: |
+      Params: [<name>]
+      Shows a list of online players and their job.
+  - Command: who3
+    Help: |
+      Params: [<name>]
+      Shows a list of online players and their location.
+  - Command: whomap
+    Help: |
+      @whomap/@whomap2/@whomap3 [map] - like @who/@who2/@who3 but only for specified map.
+  - Command: whogm
+    Help: |
+      Params: [match_text] - Like @who+@who2+who3, but only for GM.
+  - Command: guildspy
+    Help: |
+      Params: <guild name|id> - You will receive all messages of the guild channel (Chat logging must be enabled)
+  - Command: partyspy
+    Help: |
+      @partyspy <party name|id> - You will receive all messages of the party channel (Chat logging must be enabled)
+  - Command: mapinfo
+    Help: |
+      Params: [<0-3> [map]] - Give information about a map (general info +: 0: no more, 1: players, 2: NPC, 3: chatrooms).
+  - Command: go
+    Help: |
+      Params: <city name|number>
+      Warps you to a city.
+      -3: (Memo point 2)  14: louyang         31: mora
+      -2: (Memo point 1)  15: start point     32: dewata
+      -1: (Memo point 0)  16: prison/jail     33: malangdo island
+       0: prontera              17: jawaii             34: malaya port
+       1: morocc                18: ayothaya       35: eclage
+       2: geffen                  19: einbroch       36: lasagna
+       3: payon                  20: lighthalzen
+       4: alberta                 21: einbech
+       5: izlude                   22: hugel
+       6: aldebaran           23: rachel
+       7: xmas (lutie)        24: veins
+       8: comodo               25: moscovia
+       9: yuno                     26: midgard camp
+      10: amatsu               27: manuk
+      11: gonryun              28: splendide
+      12: umbala               29: brasilis
+      13: niflheim              30: el dicastes
+  - Command: jumpto
+    Aliases:
+      - goto
+      - warpto
+    Help: |
+      Params: <char name>
+      Warps you to selected character.
+  - Command: follow
+    Help: |
+      Params: <char name>
+      Follow a player.
+  - Command: mount
+    Aliases:
+      - mountpeco
+    Help: |
+      Give/remove a job-based mount (class is required, but not the skill).
+  - Command: mount2
+    Help: |
+      Give/remove a cash mount.
+  - Command: disguise
+    Help: |
+      Params: <monster name|ID>
+      Change your appearence to other players to a mob.
+  - Command: undisguise
+    Help: |
+      Restore your normal appearance.
+  - Command: disguiseguild
+    Help: |
+      Disguises all online characters of a guild.
+  - Command: undisguiseguild
+    Help: |
+      Restore the normal appearance of all characters of a guild.
+  - Command: model
+    Help: |
+      Params:  <hair ID: 0-17> <hair color: 0-8> <clothes color: 0-4> - Changes your characters appearence.
+  - Command: size
+    Help: |
+      Params:  <0-2> Changes your size (0-Normal 1-Small 2-Large)
+  - Command: sizeall
+    Help: |
+      Changes the size of all players.
+  - Command: sizeguild
+    Help: |
+      Changes the size of all online characters of a guild.
+  - Command: hide
+    Help: |
+      Makes you character invisible (GM invisibility). Type again to become visible.
+  - Command: save
+    Help: |
+      Sets respawn point to current spot.
+  - Command: load
+    Aliases:
+      - return
+    Help: |
+      Warps you to your save point.
+  - Command: warp
+    Aliases:
+      - rura
+      - mapmove
+    Help: |
+      Params: <mapname> [<x> <y>]
+      Warps you to the selected map and position.
+  - Command: jump
+    Help: |
+      Params: [<x> [<y>]]
+      Randomly warps you like a flywing.
+  - Command: jobchange
+    Aliases:
+      - job
+    Help: |
+      Params: <job name|ID>
+      Changes your job.
+      ----- Novice / 1st Class -----
+         0 Novice              1 Swordman            2 Magician            3 Archer
+         4 Acolyte              5 Merchant               6 Thief
+      ----- 2nd Class -----
+         7 Knight               8 Priest                     9 Wizard               10 Blacksmith
+        11 Hunter           12 Assassin            14 Crusader          15 Monk
+        16 Sage              17 Rogue                 18 Alchemist         19 Bard
+        20 Dancer
+      ----- High Novice / High 1st Class -----
+      4001 Novice High     4002 Swordman High    4003 Magician High    4004 Archer High
+      4005 Acolyte High     4006 Merchant High       4007 Thief High
+      ----- Transcendent 2nd Class -----
+      4008 Lord Knight      4009 High Priest             4010 High Wizard      4011 Whitesmith
+      4012 Sniper               4013 Assassin Cross   4015 Paladin              4016 Champion
+      4017 Professor         4018 Stalker                    4019 Creator               4020 Clown
+      4021 Gypsy
+      ----- 3rd Class (Regular) -----
+      4054 Rune Knight    4055 Warlock                 4056 Ranger            4057 Arch Bishop
+      4058 Mechanic         4059 Guillotine Cross  4066 Royal Guard   4067 Sorcerer
+      4068 Minstrel            4069 Wanderer              4070 Sura                 4071 Genetic
+      4072 Shadow Chaser
+      ----- 3rd Class (Transcendent) -----
+      4060 Rune Knight    4061 Warlock                 4062 Ranger             4063 Arch Bishop
+      4064 Mechanic         4065 Guillotine Cross  4073 Royal Guard    4074 Sorcerer
+      4075 Minstrel            4076 Wanderer              4077 Sura                  4078 Genetic
+      4079 Shadow Chaser
+      ----- Expanded Class -----
+           23 Super Novice      24 Gunslinger              25 Ninja                 4045 Super Baby
+      4046 Taekwon           4047 Star Gladiator     4049 Soul Linker            4050 Gangsi
+      4051 Death Knight    4052 Dark Collector    4190 Ex. Super Novice  4191 Ex. Super Baby
+      4211 Kagerou            4212 Oboro             4215 Rebellion        4218 Summoner
+      4239 Star Emperor   4240 Soul Reaper
+      ----- Baby Novice And Baby 1st Class -----
+      4023 Baby Novice      4024 Baby Swordman    4025 Baby Magician   4026 Baby Archer
+      4027 Baby Acolyte      4028 Baby Merchant       4029 Baby Thief
+      ---- Baby 2nd Class ----
+      4030 Baby Knight     4031 Baby Priest         4032 Baby Wizard         4033 Baby Blacksmith
+      4034 Baby Hunter    4035 Baby Assassin   4037 Baby Crusader    4038 Baby Monk
+      4039 Baby Sage       4040 Baby Rogue        4041 Baby Alchemist   4042 Baby Bard
+      4043 Baby Dancer
+      ---- Baby 3rd Class ----
+      4096 Baby Rune Knight  4097 Baby Warlock     4098 Baby Ranger           4099 Baby Arch Bishop
+      4100 Baby Mechanic       4101 Baby Glt. Cross  4102 Baby Royal Guard  4103 Baby Sorcerer
+      4104 Baby Minstrel          4105 Baby Wanderer   4106 Baby Sura             4107 Baby Genetic
+      4108 Baby Shadow Chaser
+      ---- Expanded Baby Class ----
+      4220 Baby Summoner        4222 Baby Ninja        4223 Baby Kagero         4224 Baby Oboro
+      4225 Baby Taekwon       4226 Baby Star Glad    4227 Baby Soul Linker    4228 Baby Gunslinger
+      4229 Baby Rebellion   4241 Baby Star Emperor    4242 Baby Soul Reaper
+      ---- Modes And Others ----
+       22 Wedding            26 Christmas          27 Summer           28 Hanbok
+       29 Oktoberfest       30 Summer 2
+       4048 Star Gladiator (Union)	    4238 Baby Star Glad (Union)
+  - Command: option
+    Help: |
+      Params: <param1> <param2>(stackable) <param3>(stackable)
+      Adds different visual effects on or around your character.
+       <param1>       <param2>        <param3>
+      01: Stone      01: Sight       01: Sight          512: Cart Lv. 4
+      02: Frozen     02: Curse       02: Hiding        1024: Cart Lv. 5
+      03: Stun       04: Silence     04: Cloaking      2048: Orc Head
+      04: Sleep      08: Signum      08: Cart Lv. 1    4096: Wedding
+      06: Petrify    16: Blind       16: Falcon        8192: Ruwach
+      07: Burning    32: Angelus     32: Riding       16384: Chasewalk
+      08: Imprison   64: Bleeding    64: Invisible
+      16: (Nothing) 128: D. Poison  128: Cart Lv. 2
+      32: (Nothing) 256: Fear       256: Cart Lv. 3
+  - Command: heal
+    Help: |
+      Params: [<HP> <SP>]
+      Heals the desired amount of HP and SP. No value specified will do a full heal.
+  - Command: dye
+    Aliases:
+      - ccolor
+    Help: |
+      Params: <clothes palette no.>
+      Changes your characters clothes color.
+  - Command: hairstyle
+    Aliases:
+      - hstyle
+    Help: |
+      Params: <hairstyle no.>
+      Changes your hair style.
+  - Command: haircolor
+    Aliases:
+      - hcolor
+    Help: |
+      Params <hair palette no.>
+      Changes your hair color.
+  - Command: speed
+    Help: |
+      Params: <1-1000>
+      Changes you walking speed. 1 being the fastest and 1000 the slowest. Default is 150.
+  - Command: effect
+    Help: |
+      Params: <effect id> [<flag>]
+      Give an effect to your character.
+  - Command: dropall
+    Help: |
+      Params: [<item type>]
+      Throws all your possession on the ground. No type specified will drop all items.
+  - Command: storeall
+    Help: |
+      Puts all your possessions in storage.
+  - Command: killable
+    Help: |
+      Make your character killable.
+  - Command: memo
+    Help: |
+      Params: [memo position]
+      Set/change a memo location (no position: display memo points).
+  - Command: spiritball
+    Help: |
+      Params: <1-100>
+      Gives you "spirit spheres" like from the skill "Call Spirits".
+  - Command: questskill
+    Help: |
+      Params: <#>
+      Gives you the specified quest skill
+      Novice = 142: First Aid, 143: Act Dead
+      Archer = 147: Create Arrow, 148: Charge Arrow
+      Swordman = 144: Moving HP Recovery, 145: Attack Weak Point, 146: Auto Berserk
+      Acolyte = 156: Holy Light
+      Thief = 149: Throw Sand, 150: Back Sliding, 151: Take Stone, 152: Throw Stone
+      Merchant = 153: Cart Revolution, 154: Change Cart, 155: Crazy Uproar, 2535: Open Buying Store
+      Magician = 157: Energy Coat
+      Hunter = 1009: Phantasmic Arrow
+      Bard = 1010: Pang Voice
+      Dancer = 1011: Wink of Charm
+      Knight = 1001: Charge Attack
+      Crusader = 1002: Shrink
+      Priest = 1014: Redemptio
+      Monk = 1015: Ki Translation, 1016: Ki Explosio
+      Assassin = 1003: Sonic Acceleration, 1004: Throw Venom Knife
+      Rogue = 1005: Close Confine
+      Blacksmith = 1012: Unfair Trick, 1013: Greed
+      Alchemist = 238: Basis of Life
+      Wizard = 1006: Sight Blaster
+      Sage = 1007: Create Elemental Converter, 1008: Elemental Change (Water), 1017: Elemental Change (Earth), 1018: Elemental Change (Fire), 1019: Elemental Change (Wind)
+  - Command: lostskill
+    Help: |
+      Params: <#>
+      Takes away the specified quest skill from you
+      Novice = 142: First Aid, 143: Act Dead
+      Archer = 147: Create Arrow, 148: Charge Arrow
+      Swordman = 144: Moving HP Recovery, 145: Attack Weak Point, 146: Auto Berserk
+      Acolyte = 156: Holy Light
+      Thief = 149: Throw Sand, 150: Back Sliding, 151: Take Stone, 152: Throw Stone
+      Merchant = 153: Cart Revolution, 154: Change Cart, 155: Crazy Uproar, 2535: Open Buying Store
+      Magician = 157: Energy Coat
+      Hunter = 1009: Phantasmic Arrow
+      Bard = 1010: Pang Voice
+      Dancer = 1011: Wink of Charm
+      Knight = 1001: Charge Attack
+      Crusader = 1002: Shrink
+      Priest = 1014: Redemptio
+      Monk = 1015: Ki Translation, 1016: Ki Explosio
+      Assassin = 1003: Sonic Acceleration, 1004: Throw Venom Knife
+      Rogue = 1005: Close Confine
+      Blacksmith = 1012: Unfair Trick, 1013: Greed
+      Alchemist = 238: Basis of Life
+      Wizard = 1006: Sight Blaster
+      Sage = 1007: Create Elemental Converter, 1008: Elemental Change (Water), 1017: Elemental Change (Earth), 1018: Elemental Change (Fire), 1019: Elemental Change (Wind)
+  - Command: skillid
+    Help: |
+      Params: <name>
+      Look up a skill by name
+  - Command: useskill
+    Help: |
+      Params: <skillid> <skillv> <target>
+      Use a skill on target
+  - Command: skilltree
+    Help: |
+      Params: <skillnum> <charname>
+      Prints the skill tree needed to get a skill for the target player.
+  - Command: marry
+    Help: |
+      Params: <player name>
+      Marry another player.
+  - Command: divorce
+    Help: |
+      Divorce player.
+  - Command: alive
+    Help: |
+      Revives yourself from death.
+  - Command: blvl
+    Aliases:
+      - lvup
+      - blevel
+      - baselvl
+      - baselvup
+      - baselevel
+      - baselvlup
+    Help: |
+      Params: <number of levels>
+      Raises your base level the desired number of levels.
+  - Command: jlvl
+    Aliases:
+      - jlevel
+      - joblvl
+      - joblvup
+      - joblevel
+      - joblvlup
+    Help: |
+      Params: <number of levels>
+      Raises your job level the desired number of levels.
+  - Command: allskill
+    Aliases:
+      - allskills
+      - skillall
+      - skillsall
+    Help: |
+      Give you all skills.
+  - Command: stpoint
+    Help: |
+      Params: <number of points> - Gives you the desired number of stat points.
+  - Command: skpoint
+    Help: |
+      Params: <number of points> - Gives you the desired number of skill points.
+  - Command: zeny
+    Help: |
+      Params: <amount> - Gives you desired amount of Zeny.
+  - Command: cash
+    Help: |
+      Params: <amount> - Gives you the specified amount of cash points.
+  - Command: points
+    Help: |
+      Params: <amount> - Gives you the specified amount of Kafra Points.
+  - Command: str
+    Help: |
+      Params: <amount>
+      Raises STR by given amount.
+  - Command: agi
+    Help: |
+      Params: <amount>
+      Raises AGI by given amount.
+  - Command: dex
+    Help: |
+      Params: <amount>
+      Raises DEX by given amount.
+  - Command: vit
+    Help: |
+      Params: <amount>
+      Raises VIT by given amount.
+  - Command: int
+    Help: |
+      Params: <amount>
+      Raises INT by given amount.
+  - Command: luk
+    Help: |
+      Params: <amount>
+      Raises LUK by given amount.
+  - Command: allstats
+    Aliases:
+      - allstat
+      - statall
+      - statsall
+    Help: |
+      Params: <value>
+      Adds value in all stats (maximum if no value).
+  - Command: addwarp
+    Help: |
+      Params: <map name> <x coord> <y coord> <NPC name>
+  - Command: killmonster2
+    Help: |
+      Kills all monsters of your map (without drops).
+  - Command: monster
+    Aliases:
+      - spawn
+    Help: |
+      Params: <monster name|ID> [<number to spawn> [<desired_monster_name> [<x coord> [<y coord>]]]]
+      @monster2 <desired_monster_name> <monster name|ID> [<number to spawn> [<x coord> [<y coord>]]]
+      @spawn/@monster/@summon/@monster2 "desired monster name" <monster name|ID> [<number to spawn> [<x coord> [<y coord>]]]
+      @spawn/@monster/@summon/@monster2 <monster name|ID> "desired monster name" [<number to spawn> [<x coord> [<y coord>]]]
+      Spawns the desired monster with any desired name.
+  - Command: monstersmall
+    Help: |
+      Params: <monster name|ID>
+      Spawns a smaller version of a monster.
+  - Command: monsterbig
+    Help: |
+      Params: <monster name|ID>
+      Spawns a larger version of a monster.
+  - Command: killmonster
+    Help: |
+      Params: <map>
+      Kill all monsters of the map (they drop)
+  - Command: autoloot
+    Help: |
+      Params: <on|off|#>
+      Makes items go straight into your inventory.
+  - Command: autotrade
+    Aliases:
+      - at
+    Help: |
+      Allows you to vend while you are offline.
+  - Command: changegm
+    Help: |
+      Params: <charname>
+      Changes the leader of your guild (You must be guild leader)
+  - Command: changeleader
+    Help: |
+      Params: <charname>
+      Changes the leader of your party (You must be party leader)
+  - Command: request
+    Help: |
+      Params: <message>
+      Sends a message to all connected GMs (via the gm whisper system)
+  - Command: sound
+    Help: |
+      Params: <path to file in data folder or GRF file>
+      Plays a sound from the data folder or GRF file located on the client.
+  - Command: clone
+    Help: |
+      Params: <charname>
+      Spawns a supportive clone of the given player.
+  - Command: slaveclone
+    Help: |
+      Params: <charname>
+      Spawns a supportive clone of the given player that follows the creator around.
+  - Command: evilclone
+    Help: |
+      Params: <charname>
+      Spawns an aggressive clone of the given player.
+  - Command: changesex
+    Help: |
+      Changes your gender.
+  - Command: duel
+    Help: |
+      Starts a duel.
+  - Command: invite
+    Help: |
+      Invites a player to a duel.
+  - Command: accept
+    Help: |
+      Accepts an invitation to a duel.
+  - Command: reject
+    Help: |
+      Rejects an invitation to a duel.
+  - Command: leave
+    Help: |
+      Leaves a duel.
+  - Command: mail
+    Help: |
+      Open mail box.
+  - Command: storage
+    Help: |
+      Opens storage.
+  - Command: itemreset
+    Aliases:
+      - clearinventory
+    Help: |
+      Remove all your items.
+  - Command: guildstorage
+    Aliases:
+      - gstorage
+    Help: |
+      Opens guild storage.
+  - Command: idsearch
+    Help: |
+      Params: <part_of_item_name>
+      Search all items that name have part_of_item_name
+  - Command: refine
+    Help: |
+      Params: <equip position> <+/- amount>
+  - Command: produce
+    Help: |
+      Params: <equip name or equip ID> <element> <# of very's>
+      Element: 0=None 1=Ice 2=Earth 3=Fire 4=Wind
+      You can add up to 3 Star Crumbs and 1 element
+  - Command: repairall
+    Help: |
+      Repair all items of your inventory
+  - Command: item
+    Help: |
+      Params: <item name or ID> <quantity>
+      Gives you the desired item.
+  - Command: item2
+    Help: |
+      Params: <item name or ID> <quantity> <identified_flag> <refine> <broken_flag> <Card1> <Card2> <Card3> <Card4>
+      Gives you the desired item.
+  - Command: pvpon
+    Help: |
+      Turns pvp on on the current map
+  - Command: pvpoff
+    Help: |
+      Turns pvp off on the current map
+  - Command: gvgon
+    Aliases:
+      - gpvpon
+    Help: |
+      Turns gvg on on the current map
+  - Command: gvgoff
+    Aliases:
+      - gpvpoff
+    Help: |
+      Turns gvg off on the current map
+  - Command: agitstart
+    Help: |
+      Starts War of Emperium
+  - Command: agitend
+    Help: |
+      End War of Emperium
+  - Command: party
+    Help: |
+      Params: <party_name>
+      Create a party.
+  - Command: guild
+    Help: |
+      Params: <guild_name>
+      Create a guild.
+  - Command: glvl
+    Aliases:
+      - glevel
+      - guildlvl
+      - guildlvup
+      - guildlevel
+      - guildlvlup
+    Help: |
+      Params: <# of levels>
+      Raise Guild by desired number of levels
+  - Command: guildrecall
+    Help: |
+      Params: <guild name|ID>
+      Warps all online characters of a guild to you.
+  - Command: partyrecall
+    Help: |
+      Params: <party name|ID>
+      Warps all online characters of a party to you.
+  - Command: petrename
+    Help: |
+      Re-enable pet rename
+  - Command: pettalk
+    Help: |
+      Params: <message>
+      Makes your pet say a message.
+  - Command: petfriendly
+    Help: |
+      Params: <#>
+      Set pet friendly amount (0-1000) 1000 = Max
+  - Command: pethungry
+    Help: |
+      Params: <#>
+      Set pet hungry amount (0-100) 100 = Max
+  - Command: hatch
+    Help: |
+      Create a pet from your inventory eggs list.
+  - Command: makeegg
+    Help: |
+      Params: <pet_id>
+      Gives pet egg for monster number in pet DB
+  - Command: kick
+    Help: |
+      Params: <char name>
+      Kicks specified character off the server
+  - Command: unjail
+    Aliases:
+      - discharge
+    Help: |
+      Params: <char name>
+      Discharges specified character/prisoner
+  - Command: kill
+    Aliases:
+      - die
+    Help: |
+      Kills player.
+  - Command: recall
+    Help: |
+      Params: <char name>
+      Warps target character to you.
+  - Command: raise
+    Aliases:
+      - revive
+    Help: |
+      Params: <char name>
+      Revives target character.
+  - Command: block
+    Help: |
+      Params: <char name>
+      Permanently blocks an account.
+  - Command: unblock
+    Help: |
+      Params: <char name>
+      Unblocks an account.
+  - Command: ban
+    Aliases:
+      - banish
+    Help: |
+      Params: <time> <name>\n" "Temporarily ban an account.
+      time usage: adjustment (+/- value) and element (y/a, m, d/j, h, mn, s)
+      Example: @ban +1m-2mn1s-6y testplayer
+  - Command: unban
+    Aliases:
+      - unbanish
+    Help: |
+      Params: <name> - Unban a account
+  - Command: jail
+    Help: |
+      Params: <char name> - Sends specified character in jails
+  - Command: trade
+    Help: |
+      Params: <char name> - Open a trade window with a another player
+  - Command: recallall
+    Help: |
+      Warps every character online to you.
+  - Command: doom
+    Help: |
+      Kills all NON GM chars on the server.
+  - Command: doommap
+    Help: |
+      Kills all non GM characters on the map.
+  - Command: raisemap
+    Help: |
+      Resurrects all characters on the map.
+  - Command: night
+    Help: |
+      Enables night mode on all maps, all characters are affected.
+  - Command: day
+    Help: |
+      Disables night mode and restores regular lighting, all characters are affected.
+  - Command: skillon
+    Help: |
+      Turn skills on for a map.
+  - Command: skilloff
+    Help: |
+      Turn skills off for a map.
+  - Command: snow
+    Help: |
+      Makes all maps to have the snow weather effect.
+  - Command: clouds
+    Help: |
+      Makes all maps to have the cloudy weather effect.
+  - Command: clouds2
+    Help: |
+      Makes all maps to have another cloudy weather effect.
+  - Command: fog
+    Help: |
+      Makes all maps to have the fog weather effect.
+  - Command: fireworks
+    Help: |
+      Makes all maps to have the fireworks weather effect.
+  - Command: sakura
+    Help: |
+      Makes all maps to have the sakura weather effect.
+  - Command: leaves
+    Help: |
+      Makes all maps to have the leaves weather effect.
+  - Command: shownpc
+    Help: |
+      Params: <NPC name>
+      Enable a NPC.
+  - Command: hidenpc
+    Help: |
+      Params: <NPC name>
+      Disable a NPC.
+  - Command: npcmove
+    Help: |
+      Params: <x coord> <y coord> <NPC name>
+      Move a NPC.
+  - Command: loadnpc
+    Help: |
+      Params: <path to script>
+      Load the specified script file path.
+  - Command: unloadnpc
+    Help: |
+      Params: <NPC name>
+      Unload the specified NPC according to name.
+  - Command: unloadnpcfile
+    Help: |
+      Params: <path>
+      Unload the specified script file path.
+  - Command: adjgroup
+    Help: |
+      Params: <level> <char name>
+      Do a temporary adjustment of the group level of a player.
+  - Command: addperm
+    Help: |
+      Params: <permission_name>
+      Temporarily add a permission to a player.
+  - Command: rmvperm
+    Help: |
+      Params: <permission_name>
+      Temporarily remove a permission from a player.
+  - Command: kickall
+    Help: |
+      Kick all characters off the server
+  - Command: mapexit
+    Help: |
+      Kick all players and shut down map-server.
+  - Command: gat
+    Help: |
+      For debugging (you inspect around gat)
+  - Command: send
+    Help: |
+      Params: <Hex Number> [<value>]
+      For debugging (packet variety)
+  - Command: nuke
+    Help: |
+      Params: <char name>
+      Blow somebody up, including those surrounding them.
+  - Command: reloadachievementdb
+    Help: |
+      Reload achievement database.
+  - Command: reloadatcommand
+    Help: |
+      Reload atcommand settings.
+  - Command: reloadattendancedb
+    Help: |
+      Reload attendance database.
+  - Command: reloadbattleconf
+    Help: |
+      Reload battle settings.
+  - Command: reloadinstancedb
+    Help: |
+      Reload instance database.
+  - Command: reloaditemdb
+    Help: |
+      Reload item database.
+  - Command: reloadmobdb
+    Help: |
+      Reload monster database.
+  - Command: reloadmotd
+    Help: |
+      Reload Message of the Day.
+  - Command: reloadmsgconf
+    Help: |
+      Reload message configuration.
+  - Command: reloadpcdb
+    Help: |
+      Reload player settings.
+  - Command: reloadquestdb
+    Help: |
+      Reload quest database.
+  - Command: reloadscript
+    Help: |
+      Reload all scripts.
+  - Command: reloadskilldb
+    Help: |
+      Reload skills definition database.
+  - Command: reloadstatusdb
+    Help: |
+      Reload status settings.
+  - Command: reload
+    Help: |
+      Params: <type>
+      Reload a database or configuration file.
+      itemdb                mobdb          skilldb
+      atcommand       battleconf     statusdb
+      pcdb                    motd             script
+      questdb              msgconf       packetdb
+  - Command: langtype
+    Help: |
+      Params: <language>
+      Changes your language setting.
+  - Command: limitedsale
+    Help: |
+      Opens the limited sale window.
+  - Command: changedress
+    Aliases:
+      - nocosplay
+    Help: |
+      Removes all character costumes.
+  - Command: camerainfo
+    Aliases:
+      - viewpointvalue
+      - setcamera
+    Help: |
+      Shows or updates the client's camera settings.
+  - Command: resetstat
+    Aliases:
+      - streset
+  - Command: resetskill
+    Aliases:
+      - skreset
+  - Command: homlevel
+    Aliases:
+      - hlvl
+      - hlevel
+      - homlvl
+      - homlvup
+  - Command: homevolution
+    Aliases:
+      - homevolve
+  - Command: mutearea
+    Aliases:
+      - stfu
+  - Command: monsterignore
+    Aliases:
+      - battleignore
+  - Command: accinfo
+    Aliases:
+      - accountinfo
+  - Command: channel
+    Aliases:
+      - main
+  - Command: autoloottype
+    Aliases:
+      - aloottype
+  - Command: cloneequip
+    Aliases:
+      - eqclone
+  - Command: clonestat
+    Aliases:
+      - stclone
+  - Command: reloadnpcfile
+    Aliases:
+      - reloadnpc
+
+Footer:
+  Imports:
+    - Path: conf/import/atcommands.yml

+ 3 - 2
conf/battle/battle.conf

@@ -6,11 +6,12 @@
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
 // 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)
 // Who should have a baseatk value (makes str affect damage)? (Note 3)
-enable_baseatk: 9
+enable_baseatk: 0x9
+enable_baseatk_renewal: 0x29F
 
 
 // Who can have perfect flee? (Note 3)
 // Who can have perfect flee? (Note 3)
 enable_perfect_flee: 1
 enable_perfect_flee: 1

+ 5 - 1
conf/battle/battleground.conf

@@ -6,7 +6,7 @@
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
 // 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)
 // Melee damage adjustments (non skills) for Battleground maps (Note 2)
@@ -30,3 +30,7 @@ bg_flee_penalty: 20
 
 
 // Interval before updating the bg-member map mini-dots (milliseconds)
 // Interval before updating the bg-member map mini-dots (milliseconds)
 bg_update_interval: 1000
 bg_update_interval: 1000
+
+// Before a player is warped into a Battleground from the Battleground Queue,
+// check to see if the player's current map has MF_NOWARP.
+bgqueue_nowarp_mapflag: no

+ 12 - 3
conf/battle/client.conf

@@ -71,9 +71,7 @@ wedding_modifydisplay: no
 save_clothcolor: yes
 save_clothcolor: yes
 
 
 // Save body styles. (Note 1)
 // Save body styles. (Note 1)
-// Note: Don't turn this on unless you know what you are doing.
-// Sprites are not released officially.
-save_body_style: no
+save_body_style: yes
 
 
 // Do not display cloth colors for the wedding class?
 // Do not display cloth colors for the wedding class?
 // Note: Both save_clothcolor and wedding_modifydisplay have to be enabled
 // Note: Both save_clothcolor and wedding_modifydisplay have to be enabled
@@ -140,3 +138,14 @@ spawn_direction: no
 // kRO removed the packet and this re-enables the message.
 // kRO removed the packet and this re-enables the message.
 // Official: Disabled.
 // Official: Disabled.
 mvp_exp_reward_message: no
 mvp_exp_reward_message: no
+
+// Send ping timer
+// Interval in seconds for each timer invoke.
+ping_timer_inverval: 30
+
+// Send packets timeout in seconds before ping packet can be sent.
+ping_time: 20
+
+// Show skill scale for clients 2015-12-23 and newer? (Note 1)
+// Official: yes
+show_skill_scale: yes

+ 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)
 // Turn this on to allow a player to level up more than once from a kill. (Note 1)
 multi_level_up: no
 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
 // Setting this can cap the max experience one can get per kill specified as a
 // % of the current exp bar. (Every 10 = 1.0%)
 // % of the current exp bar. (Every 10 = 1.0%)
 // For example, set it to 500 and no matter how much exp the mob gives, 
 // For example, set it to 500 and no matter how much exp the mob gives, 

+ 33 - 4
conf/battle/feature.conf

@@ -4,7 +4,7 @@
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
 // 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)
 // Buying store (Note 1)
@@ -59,6 +59,10 @@ feature.autotrade_sit: 1
 // Delay in miliseconds to open vending/buyingsotre after player logged in.
 // Delay in miliseconds to open vending/buyingsotre after player logged in.
 feature.autotrade_open_delay: 5000
 feature.autotrade_open_delay: 5000
 
 
+// Battlegrounds queue interface. Makes it possible to queue for a battleground anywhere using the battle menu.
+// Requires: 2012-04-10aRagexe or later
+feature.bgqueue: on
+
 // Roulette (Note 1)
 // Roulette (Note 1)
 // Requires: 2014-10-22bRagexe or later
 // Requires: 2014-10-22bRagexe or later
 feature.roulette: on
 feature.roulette: on
@@ -67,14 +71,39 @@ feature.roulette: on
 // Requires: 2015-05-13aRagexe or later
 // Requires: 2015-05-13aRagexe or later
 feature.achievement: on
 feature.achievement: on
 
 
+// Equipment Switch (Note 1)
+// Requires: 2017-02-08bRagexeRE or later
+feature.equipswitch: on
+
+// Pet evolution (Note 1)
+// Requires: 2014-10-08aRagexe or later
+feature.petevolution: on
+
+// Automatic Pet Feeding (Note 1)
+// Requires: 2014-10-08aRagexe or later
+feature.petautofeed: on
+
+// At which hunger rate should pet autofeeding trigger? (Note 2)
+// Default: 89
+feature.pet_autofeed_rate: 89
+
 // Homunculues Autofeeding (Note 1)
 // Homunculues Autofeeding (Note 1)
 // Requires: 2017-09-20bRagexeRE or later
 // 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)
 // Attendance System (Note 1)
 // Requires: 2018-03-07bRagexeRE or later
 // Requires: 2018-03-07bRagexeRE or later
-feature.attendance: off
+feature.attendance: on
 
 
 // Private Airship System (Note 1)
 // Private Airship System (Note 1)
 // Requires: 2018-03-21aRagexeRE or later
 // Requires: 2018-03-21aRagexeRE or later
-feature.privateairship: off
+feature.privateairship: on

+ 18 - 1
conf/battle/gm.conf

@@ -7,6 +7,17 @@
 // Note 2: Value is in percents (100 means 100%)
 // Note 2: Value is in percents (100 means 100%)
 //--------------------------------------------------------------
 //--------------------------------------------------------------
 
 
+// The symbol that will be used to recognize commands.
+// You can set any one character except:
+// - control-characters (0x00-0x1f),
+// - '%' (party chat symbol)
+// - '$' (guild chat symbol)
+// - '/' (client commands symbol)
+// atcommand_symbol represents @commands used locally.
+// charcommand_symbol represents #commands used on other players.
+atcommand_symbol: @
+charcommand_symbol: #
+
 // The maximum quantity of monsters that can be summoned per GM command (0 denotes an unlimited quantity)
 // The maximum quantity of monsters that can be summoned per GM command (0 denotes an unlimited quantity)
 atcommand_spawn_quantity_limit: 100
 atcommand_spawn_quantity_limit: 100
 
 
@@ -24,7 +35,7 @@ partial_name_scan: yes
 // Duration of the ban, in minutes (default: 5). To disable the ban, set 0.
 // Duration of the ban, in minutes (default: 5). To disable the ban, set 0.
 ban_hack_trade: 5
 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 @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 @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
 // modifies @whodrops to display the users' real drop rate as per renewal_drop formula
@@ -34,3 +45,9 @@ atcommand_mobinfo_type: 1
 // This option is for @baselevelup and @joblevelup
 // This option is for @baselevelup and @joblevelup
 // Default: no
 // Default: no
 atcommand_levelup_events: no
 atcommand_levelup_events: no
+
+// Disable atcommands while a player is attached to a npc? (Note 1)
+// This can be changed by script commands 'enable_command' and 'disable_command'.
+// Anyone with the 'command_enable' permission in the 'conf/group.conf' can bypass this.
+// Default: yes
+atcommand_disable_npc: yes

+ 0 - 3
conf/battle/guild.conf

@@ -20,9 +20,6 @@ guild_max_castles: 0
 // Official setting is 5 minutes (300000 ms), otherwise allow guild leaders to relog to cancel the 5 minute delay.
 // Official setting is 5 minutes (300000 ms), otherwise allow guild leaders to relog to cancel the 5 minute delay.
 guild_skill_relog_delay: 300000
 guild_skill_relog_delay: 300000
 
 
-// Damage adjustments for WOE battles against defending Guild monsters (Note 2)
-castle_defense_rate: 100
-
 // Melee damage adjustments (non skills) for WoE battles (Guild Vs Guild) (Note 2)
 // Melee damage adjustments (non skills) for WoE battles (Guild Vs Guild) (Note 2)
 gvg_short_attack_damage_rate: 80
 gvg_short_attack_damage_rate: 80
 
 

+ 36 - 2
conf/battle/homunc.conf

@@ -6,7 +6,7 @@
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
 // 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)
 // Homunculus setting (Note 3)
@@ -50,7 +50,7 @@ homunculus_auto_vapor: 80
 homunculus_max_level: 99
 homunculus_max_level: 99
 
 
 // Max level for Homunculus S
 // Max level for Homunculus S
-homunculus_S_max_level: 150
+homunculus_S_max_level: 175
 
 
 // Growth level for Homunculus S
 // Growth level for Homunculus S
 // This is the level at which homunculus S can use their growth tables
 // This is the level at which homunculus S can use their growth tables
@@ -61,3 +61,37 @@ homunculus_S_growth_level: 99
 // Send auto-feed notice even if OFF (Note 1) 
 // Send auto-feed notice even if OFF (Note 1) 
 // Official: yes
 // Official: yes
 homunculus_autofeed_always: yes
 homunculus_autofeed_always: yes
+
+// Is getting exp/item from the homunculus disabled when their master's idle?
+// Set to no, or the amount of seconds (NOT milliseconds) that need to pass before considering
+// a character idle.
+// Characters in a chat/vending are always considered idle.
+// A character's idle status is reset upon item use/skill use/attack (auto attack counts too)/movement.
+// Their master will only receive items if 'homunculus_autoloot' is activated,
+// otherwise they will be dropped on the ground as usual.
+// NOTE: This option uses a special timer to track idle time, separated from the normal idle timer.
+hom_idle_no_share: no
+
+// How the server should measure the homunculus master's idle time? (for homunculus exp share and autoloot ONLY) (Note 3)
+// (This will only work if 'hom_idle_no_share' is enabled).
+// 0x001 - Walk Request
+// 0x002 - UseSkillToID Request (Targetted skill use attempt)
+// 0x004 - UseSkillToPos Request (AoE skill use attempt)
+// 0x008 - UseItem Request (Including equip/unequip)
+// 0x010 - Attack Request
+// 0x020 - Chat Request (Whisper, Party, Guild, Battlegrounds, etc)
+// 0x040 - Sit/Standup Request
+// 0x080 - Emotion Request
+// 0x100 - DropItem Request
+// 0x200 - @/#Command Request
+// Please note that at least 1 option has to be enabled.
+// Be mindful that the more options used, the easier it becomes to cheat this features.
+// Default: walk (0x1) + useskilltoid (0x2) + useskilltopos (0x4) + useitem (0x8) + attack (0x10) = 0x1F
+// NOTE: This allows you to configure different settings for homunculus, separated from normal idle timer and 'idletime_option'.
+// It will only apply to homunculus-only kills and it will not affect normal autoloot and party share options.
+idletime_hom_option: 0x1F
+
+// The rate at which homunculus gain experience from kills. (Note 2)
+// Only applies to renewal mode.
+// Official: 10%
+homunculus_exp_gain: 10

+ 12 - 1
conf/battle/items.conf

@@ -6,7 +6,7 @@
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
 // 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)
 // The highest value at which an item can be sold via the merchant vend skill. (in zeny)
@@ -133,3 +133,14 @@ broadcast_hide_name: 2
 
 
 // Enable to sell rental item to NPC shop? (Note 1)
 // Enable to sell rental item to NPC shop? (Note 1)
 rental_transaction: yes
 rental_transaction: yes
+
+// Sell rental item for 0 to NPC shop regardless of the item value in item_db? (Note 1)
+rental_item_novalue: no
+
+// 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

+ 5 - 2
conf/battle/misc.conf

@@ -6,7 +6,7 @@
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
 // 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.
 // 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.
 // Set to 0 for no cell stacking checks and free movement.
 // Custom - This variation will make every full cell to be considered a wall.
 // 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
 // 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
 official_cell_stack_limit: 1
 custom_cell_stack_limit: 1
 custom_cell_stack_limit: 1
 
 
@@ -114,6 +114,9 @@ at_timeout: 0
 // Makes player cannot be attacked when autotrade? (turns player's state.monster_ignore) (Note 1)
 // Makes player cannot be attacked when autotrade? (turns player's state.monster_ignore) (Note 1)
 at_monsterignore: no
 at_monsterignore: no
 
 
+// Should autotrade trigger OnPCLogout script events? (Note 1)
+at_logout_event: yes
+
 // Auction system, fee per hour. Default is 12000
 // Auction system, fee per hour. Default is 12000
 auction_feeperhour: 12000
 auction_feeperhour: 12000
 
 

+ 23 - 1
conf/battle/monster.conf

@@ -6,7 +6,7 @@
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
 // 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)
 // The HP rate of MVPs. (Note 2)
@@ -71,6 +71,7 @@ monster_chase_refresh: 3
 // 1: Enable mob-warping when standing on NPC-warps
 // 1: Enable mob-warping when standing on NPC-warps
 // 2: Enable mob-warping when standing on Priest Warp Portals
 // 2: Enable mob-warping when standing on Priest Warp Portals
 // 4: Disable warping when the target map is a 'nobranch' map.
 // 4: Disable warping when the target map is a 'nobranch' map.
+// 8: Enable mob-warping when standing on Dimensional Door
 mob_warp: 0
 mob_warp: 0
 
 
 // If these are set above 0, they define the time (in ms) during which monsters
 // If these are set above 0, they define the time (in ms) during which monsters
@@ -262,3 +263,24 @@ monster_hp_bars_info: yes
 // This can be legit gameplay (e.g. players keeping an MVP stuck inside icewall), but if you want to prevent any
 // This can be legit gameplay (e.g. players keeping an MVP stuck inside icewall), but if you want to prevent any
 // exploits and be notified about them, you can set this to yes.
 // exploits and be notified about them, you can set this to yes.
 monster_stuck_warning: no
 monster_stuck_warning: no
+
+// Rate at which monsters use their idle skills when there are no players nearby (Note 2)
+// On official servers monsters use their idle skills if they have been spotted once, even if there are no players nearby anymore.
+// On small-medium sized servers this can cause all monsters like eggs and Fabre/Pupa to metamorph.
+// To switch it off, set it to 0.
+mob_nopc_idleskill_rate: 100
+boss_nopc_idleskill_rate: 100
+
+// Rate at which monsters move when there are no players nearby (Note 2)
+// On official servers monsters always move if they have been spotted once, even if there are no players nearby anymore.
+// To switch it off, set it to 0.
+mob_nopc_move_rate: 100
+boss_nopc_move_rate: 100
+
+// When killing a monster, do AG_BATTLE type achievements trigger for everyone in the same party within the area?
+// Area is limited to area_size battle config.
+achievement_mob_share: no
+
+// Should slaves teleport back to their master if they get too far during chase? (Note 1)
+// Default (Official): no
+slave_stick_with_master: no

+ 12 - 8
conf/battle/pet.conf

@@ -6,7 +6,7 @@
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
 // 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)
 // Rate for catching pets (Note 2)
@@ -21,11 +21,8 @@ pet_friendly_rate: 100
 // The rate at which a pet will become hungry. (Note 2)
 // The rate at which a pet will become hungry. (Note 2)
 pet_hungry_delay_rate: 100
 pet_hungry_delay_rate: 100
 
 
-// If your pet is hungry by how much will the friendlyness decrease by. (Default is 5)
-// Note: The friendlyness is 0-1000 total, at 0 the pet runs away.
-pet_hungry_friendly_decrease: 5
-
 // Does the pet need its equipment before it does its skill? (Note 1)
 // Does the pet need its equipment before it does its skill? (Note 1)
+// These bonuses are unofficial and found in the import/pet_db.yml
 pet_equip_required: yes
 pet_equip_required: yes
 
 
 // When the master attacks a monster, whether or not the pet will also attack. (Note 1)
 // When the master attacks a monster, whether or not the pet will also attack. (Note 1)
@@ -39,9 +36,6 @@ pet_damage_support: no
 // At max (1000) support rate is 150%.
 // At max (1000) support rate is 150%.
 pet_support_min_friendly: 900
 pet_support_min_friendly: 900
 
 
-// Same as above, but this is to use the pet_script field with official pet abilities.
-pet_equip_min_friendly: 900
-
 // Whether or not the pet's will use skills. (Note 1)
 // Whether or not the pet's will use skills. (Note 1)
 // Note: Offensive pet skills need at least pet_attack_support or 
 // Note: Offensive pet skills need at least pet_attack_support or 
 // pet_damage_support to work (they trigger while the pet is attacking).
 // pet_damage_support to work (they trigger while the pet is attacking).
@@ -81,3 +75,13 @@ pet_ignore_infinite_def: yes
 
 
 // Whether or not the pet will continue to attack when the master is dead. (Note 1)
 // Whether or not the pet will continue to attack when the master is dead. (Note 1)
 pet_master_dead: no
 pet_master_dead: no
+
+// Send auto-feed notice even if the client setting is OFF (Note 1) 
+// Official: yes
+pet_autofeed_always: yes
+
+// Pet walk speed.
+// 1: Master's walk speed (official)
+// 2: DEFAULT_WALK_SPEED value
+// 3: Mob database walk speed
+pet_walk_speed: 1

+ 8 - 7
conf/battle/player.conf

@@ -6,7 +6,7 @@
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
 // 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)
 // Players' maximum HP rate? (Default is 100)
@@ -244,9 +244,11 @@ fame_taekwon_mission: 1
 // Refined own forged weapon to +10
 // Refined own forged weapon to +10
 fame_refine_lv1: 1
 fame_refine_lv1: 1
 fame_refine_lv2: 25
 fame_refine_lv2: 25
-fame_refine_lv3: 10000
+fame_refine_lv3: 1000
 // Success to forge a lv3 weapon with 3 additional ingredients
 // Success to forge a lv3 weapon with 3 additional ingredients
 fame_forge: 10
 fame_forge: 10
+// Refine threshold for giving point for refining forged weapon to +10
+blacksmith_fame_refine_threshold: 10
 // Success to prepare 'n' Condensed Potions in a row
 // Success to prepare 'n' Condensed Potions in a row
 fame_pharmacy_3: 1
 fame_pharmacy_3: 1
 fame_pharmacy_5: 3
 fame_pharmacy_5: 3
@@ -270,8 +272,7 @@ fame_pharmacy_10: 50
 idletime_option: 0x1F
 idletime_option: 0x1F
 
 
 // Adjust the summoner class' special traits.
 // Adjust the summoner class' special traits.
-// 0: Summoners behave like other classes.
-// 1: Summoners belong to brute race instead of demi-human
-// 2: Summoners are small size instead of medium
-// 3: Both of the above (official value)
-summoner_trait: 3
+// - Summoners belong to brute race category. They have their own race RC_PLAYER_DORAM (11) to be differentiated from monster race RC_BRUTE (2).
+// - Summoners are small size (0) instead of medium (1)
+summoner_race: 11
+summoner_size: 0

+ 27 - 4
conf/battle/skill.conf

@@ -85,7 +85,7 @@ clear_skills_on_warp: 15
 
 
 //Setting this to YES will override the target mode of ground-based skills with the flag 0x01 to "No Enemies"
 //Setting this to YES will override the target mode of ground-based skills with the flag 0x01 to "No Enemies"
 //The two skills affected by default are Pneuma and Safety Wall (if set to yes, those two skills will not protect everyone, but only allies)
 //The two skills affected by default are Pneuma and Safety Wall (if set to yes, those two skills will not protect everyone, but only allies)
-//See db/skill_unit_db.txt for more info.
+//See db/(pre-)re/skill_db.yml for more info.
 defunit_not_enemy: no
 defunit_not_enemy: no
 
 
 // Should skills always do at least 'hits' damage when they don't miss/are blocked?
 // Should skills always do at least 'hits' damage when they don't miss/are blocked?
@@ -107,11 +107,11 @@ auto_counter_type: 15
 
 
 // Can ground skills be placed on top of each other? (Note 3)
 // Can ground skills be placed on top of each other? (Note 3)
 // By default, skills with UF_NOREITERATION set cannot be stacked on top of 
 // By default, skills with UF_NOREITERATION set cannot be stacked on top of 
-// other skills, this setting will override that. (skill_unit_db)
+// other skills, this setting will override that.
 skill_reiteration: 0
 skill_reiteration: 0
 
 
 // Can ground skills NOT be placed underneath/near players/monsters? (Note 3)
 // Can ground skills NOT be placed underneath/near players/monsters? (Note 3)
-// If set, only skills with UF_NOFOOTSET set will be affected (skill_unit_db)
+// If set, only skills with UF_NOFOOTSET set will be affected.
 skill_nofootset: 1
 skill_nofootset: 1
 
 
 // Should traps (hunter traps + quagmire) change their target to "all" inside gvg/pvp grounds? (Note 3)
 // Should traps (hunter traps + quagmire) change their target to "all" inside gvg/pvp grounds? (Note 3)
@@ -196,6 +196,14 @@ devotion_rdamage: 0
 // But if the target is being devoted, it ONLY reflects the damage for melee skill. (Note 1)
 // But if the target is being devoted, it ONLY reflects the damage for melee skill. (Note 1)
 devotion_rdamage_skill_only: yes
 devotion_rdamage_skill_only: yes
 
 
+// On AEGIS there is a bug when the player who is under devotion is sitting and getting hit.
+// The player stands up on client side, but will still remain sitting on server side.
+// Because of this the player will not be able to walk anymore, until the player sat down/stood up again or used @refresh.
+// You can read more about it on https://github.com/rathena/rathena/issues/1927
+// Default: yes (because it is a recommended bug fix from our side)
+// Official: no
+devotion_standup_fix: yes
+
 // If no than you can use the ensemble skills alone. (Note 1)
 // If no than you can use the ensemble skills alone. (Note 1)
 player_skill_partner_check: yes
 player_skill_partner_check: yes
 
 
@@ -335,7 +343,7 @@ stormgust_knockback: yes
 // For RENEWAL_CAST (Note 2)
 // For RENEWAL_CAST (Note 2)
 // By default skill that has '0' value for Fixed Casting Time will use 20% of cast time
 // By default skill that has '0' value for Fixed Casting Time will use 20% of cast time
 // as Fixed Casting Time, and the rest (80%) as Variable Casting Time.
 // as Fixed Casting Time, and the rest (80%) as Variable Casting Time.
-// Put it 0 to disable default Fixed Casting Time (just like -1 is the skill_cast_db.txt).
+// Put it 0 to disable default Fixed Casting Time (just like -1 in the skill_db.yml).
 default_fixed_castrate: 20
 default_fixed_castrate: 20
 
 
 // On official servers, skills that hit all targets on a path (e.g. Focused Arrow Strike and First Wind) first
 // On official servers, skills that hit all targets on a path (e.g. Focused Arrow Strike and First Wind) first
@@ -354,6 +362,21 @@ skill_eightpath_algorithm: yes
 // damage skills (previous behavior).
 // damage skills (previous behavior).
 can_damage_skill: 1
 can_damage_skill: 1
 
 
+// Land Protector behavior (Note 1)
+// On official servers, players standing on the border (outer cell) of the Land Protector can still be affected/hit
+// by AoE skills (if the skill has a splash effect, such as Storm Gust). The Athena behavior ignores AoE affects/hits
+// while players are standing on the border.
+// Official: 0
+// Legacy Athena: 1
+land_protector_behavior: 0
+
+// NPC EMOTION behavior (Note 1)
+// On official servers, certain mobs cast NPC EMOTION skill which displays an emoticon and change their mode from
+// Aggressive to Passive for a certain time. The Athena behavior does not change their mode to Passive.
+// Official: 0
+// Legacy Athena: 1
+npc_emotion_behavior: 0
+
 // Should Tarot Card of Fate have the same chance for each card to occur? (Note 1)
 // Should Tarot Card of Fate have the same chance for each card to occur? (Note 1)
 // Official chances: 15%: LOVERS | 10%: FOOL, MAGICIAN, HIGH PRIESTESS, STRENGTH, SUN | 8%: TEMPERANCE
 // Official chances: 15%: LOVERS | 10%: FOOL, MAGICIAN, HIGH PRIESTESS, STRENGTH, SUN | 8%: TEMPERANCE
 // 7%: CHARIOT | 6%: THE HANGED MAN | 5%: DEATH, STAR | 2%: TOWER | 1%: WHEEL OF FORTUNE, DEVIL
 // 7%: CHARIOT | 6%: THE HANGED MAN | 5%: DEATH, STAR | 2%: TOWER | 1%: WHEEL OF FORTUNE, DEVIL

+ 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 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
 // 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)?
 // 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.
 // Enable or disable creation of new characters.
 // Now it is actually supported [Kevin]
 // Now it is actually supported [Kevin]
-char_new: 1
+char_new: yes
 
 
 // Display (New) in the server list.
 // Display (New) in the server list.
 char_new_display: 0
 char_new_display: 0
@@ -109,7 +109,7 @@ save_log: yes
 
 
 // Starting point for new characters
 // Starting point for new characters
 // Format: <map_name>,<x>,<y>{:<map_name>,<x>,<y>...}
 // 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.
 // Location is randomly picked on character creation.
 // NOTE: For Doram, this requires client 20151001 or newer.
 // 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
 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
 start_point_doram: lasa_fild01,48,297
 
 
 // Starting items for new characters
 // 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>...}
 // Format: <id>,<amount>,<position>{:<id>,<amount>,<position>...}
 // To auto-equip an item, include the position where it will be equipped; otherwise, use zero.
 // 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.
 // NOTE: For Doram, this requires client 20151001 or newer.
@@ -141,7 +141,7 @@ guild_exp_rate: 100
 unknown_char_name: Unknown
 unknown_char_name: Unknown
 
 
 // To log the character server?
 // 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):
 // 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
 // example: Test-test-TEST-TesT; Value: 0 not allowed (default), 1 allowed

+ 2 - 1
conf/groups.conf

@@ -87,13 +87,13 @@ groups: (
 	inherit: ( /*empty list*/ )
 	inherit: ( /*empty list*/ )
 	commands: {
 	commands: {
 		changedress: true
 		changedress: true
+		resurrect: true
 	}
 	}
 	permissions: {
 	permissions: {
 		/* without this basic permissions regular players could not 
 		/* without this basic permissions regular players could not 
 		trade or party */
 		trade or party */
 		can_trade: true
 		can_trade: true
 		can_party: true
 		can_party: true
-		command_enable: true
 		attendance: true
 		attendance: true
 	}
 	}
 },
 },
@@ -284,6 +284,7 @@ groups: (
 	permissions: {
 	permissions: {
 		can_trade: true
 		can_trade: true
 		can_party: true
 		can_party: true
+		command_enable: true
 		all_skill: false
 		all_skill: false
 		all_equipment: false
 		all_equipment: false
 		skill_unconditional: false
 		skill_unconditional: false

+ 0 - 327
conf/help.txt

@@ -1,327 +0,0 @@
-// This is help file that contains help messages for atcommands/charcommands.
-// Format:
-// <command>: "<help message>"
-// This file uses libconfig syntax.
-
-help: "Params: <command>\n" "Shows help for specified command."
-noask: "Auto rejects deals/invites."
-gmotd: "Broadcasts the Message of The Day to all players."
-me: "Params: <message>\n" "Displays normal text as a message in this format: *name message* (like /me in mIRC)."
-fakename: "Params: <name>\n" "Changes your name to your choice temporarily."
-npctalk: "Params: <NPC name> <message>\n" "Forces a NPC to display a message in normal chat."
-broadcast: "Params: <message>\n" "Broadcasts a message with your name (in yellow)."
-kami: "Params: <message>\n" "Broadcasts a message without your name (in yellow)."
-kamib: "Params: <message>\n" "Broadcasts a message without your name (in blue)."
-localbroadcast: "Params: <message>\n" "Broadcasts a message with your name (in yellow) only on your map."
-commands: "Displays a list of commands that you can use."
-rates: "Displays the server's current rates."
-uptime: "Displays how long the server has been online."
-showdelay: "Shows/hides the \"There is a delay after this skill\" message."
-exp: "Displays current levels and % progress."
-mobinfo: "Params: <monster name|ID>\n" "Shows monster info (stats, exp, drops etc)."
-iteminfo: "Params: <item name|ID>\n" "Shows item info (type, price etc)."
-whodrops: "Params: <item name|ID>\n" "Shows who drops an item (monster with highest drop rates)."
-version: "Displays SVN version of the server."
-email: "Params: <current email> <new email>\n" "Changes your account e-mail address."
-where: "Params: <char name>\n" "Tells you the location of a character."
-time: "Shows the date and time of the server."
-showexp: "Displays/hides experience gained."
-showzeny: "Displays/hides Zeny gained."
-mobsearch: "Params: <monster name|ID>\n" "Shows the location of a certain mob on the current map."
-who: "Params: [<name>]\n" "Shows a list of online players and their party and guild."
-who2: "Params: [<name>]\n" "Shows a list of online players and their job."
-who3: "Params: [<name>]\n" "Shows a list of online players and their location."
-whomap: "@whomap/@whomap2/@whomap3 [map] - like @who/@who2/@who3 but only for specified map."
-whogm: "Params: [match_text] - Like @who+@who2+who3, but only for GM."
-guildspy: "Params: <guild name|id> - You will receive all messages of the guild channel (Chat logging must be enabled)"
-partyspy: "@partyspy <party name|id> - You will receive all messages of the party channel (Chat logging must be enabled)"
-mapinfo: "Params: [<0-3> [map]] - Give information about a map (general info +: 0: no more, 1: players, 2: NPC, 3: chatrooms)."
-go: "Params: <city name|number>\n" "Warps you to a city.\n"
-	"  -3: (Memo point 2)  14: louyang         31: mora\n"
-	"  -2: (Memo point 1)  15: start point     32: dewata\n"
-	"  -1: (Memo point 0)  16: prison/jail     33: malangdo island\n"
-	"   0: prontera              17: jawaii             34: malaya port\n"
-	"   1: morocc                18: ayothaya       35: eclage\n"
-	"   2: geffen                  19: einbroch       36: lasagna\n"
-	"   3: payon                  20: lighthalzen\n"
-	"   4: alberta                 21: einbech\n"
-	"   5: izlude                   22: hugel\n"
-	"   6: aldebaran           23: rachel\n"
-	"   7: xmas (lutie)        24: veins\n"
-	"   8: comodo               25: moscovia\n"
-	"   9: yuno                     26: midgard camp\n"
-	"  10: amatsu               27: manuk\n"
-	"  11: gonryun              28: splendide\n"
-	"  12: umbala               29: brasilis\n"
-	"  13: niflheim              30: el dicastes\n"
-jumpto: "Params: <char name>\n" "Warps you to selected character."
-follow: "Params: <char name>\n" "Follow a player."
-mount: "Give/remove a job-based mount (class is required, but not the skill)."
-mount2: "Give/remove a cash mount."
-disguise: "Params: <monster name|ID>\n" "Change your appearence to other players to a mob."
-undisguise: "Restore your normal appearance."
-disguiseguild: "Disguises all online characters of a guild."
-undisguiseguild: "Restore the normal appearance of all characters of a guild."
-model: "Params:  <hair ID: 0-17> <hair color: 0-8> <clothes color: 0-4> - Changes your characters appearence."
-size: "Params:  <0-2> Changes your size (0-Normal 1-Small 2-Large)"
-sizeall: "Changes the size of all players."
-sizeguild: "Changes the size of all online characters of a guild."
-hide: "Makes you character invisible (GM invisibility). Type again to become visible."
-save: "Sets respawn point to current spot."
-load: "Warps you to your save point."
-warp: "Params: <mapname> [<x> <y>]\n" "Warps you to the selected map and position."
-jump: "Params: [<x> [<y>]]\n" "Randomly warps you like a flywing."
-jobchange: "Params: <job name|ID>\n" "Changes your job.\n"
-	"----- Novice / 1st Class -----\n"
-	"   0 Novice              1 Swordman            2 Magician            3 Archer\n"
-	"   4 Acolyte              5 Merchant               6 Thief\n"
-	"----- 2nd Class -----\n"
-	"   7 Knight               8 Priest                     9 Wizard               10 Blacksmith\n"
-	"  11 Hunter           12 Assassin            14 Crusader          15 Monk\n"
-	"  16 Sage              17 Rogue                 18 Alchemist         19 Bard\n"
-	"  20 Dancer\n"
-	"----- High Novice / High 1st Class -----\n"
-	"4001 Novice High     4002 Swordman High    4003 Magician High    4004 Archer High\n"
-	"4005 Acolyte High     4006 Merchant High       4007 Thief High\n"
-	"----- Transcendent 2nd Class -----\n"
-	"4008 Lord Knight      4009 High Priest             4010 High Wizard      4011 Whitesmith\n"
-	"4012 Sniper               4013 Assassin Cross   4015 Paladin              4016 Champion\n"
-	"4017 Professor         4018 Stalker                    4019 Creator               4020 Clown\n"
-	"4021 Gypsy\n"
-	"----- 3rd Class (Regular) -----\n"
-	"4054 Rune Knight    4055 Warlock                 4056 Ranger            4057 Arch Bishop\n"
-	"4058 Mechanic         4059 Guillotine Cross  4066 Royal Guard   4067 Sorcerer\n"
-	"4068 Minstrel            4069 Wanderer              4070 Sura                 4071 Genetic\n"
-	"4072 Shadow Chaser\n"
-	"----- 3rd Class (Transcendent) -----\n"
-	"4060 Rune Knight    4061 Warlock                 4062 Ranger             4063 Arch Bishop\n"
-	"4064 Mechanic         4065 Guillotine Cross  4073 Royal Guard    4074 Sorcerer\n"
-	"4075 Minstrel            4076 Wanderer              4077 Sura                  4078 Genetic\n"
-	"4079 Shadow Chaser\n"
-	"----- Expanded Class -----\n"
-	"     23 Super Novice      24 Gunslinger              25 Ninja                 4045 Super Baby\n"
-	"4046 Taekwon           4047 Star Gladiator     4049 Soul Linker            4050 Gangsi\n"
-	"4051 Death Knight    4052 Dark Collector    4190 Ex. Super Novice  4191 Ex. Super Baby\n"
-	"4211 Kagerou            4212 Oboro             4215 Rebellion        4218 Summoner\n"
-	"4239 Star Emperor   4240 Soul Reaper\n"
-	"----- Baby Novice And Baby 1st Class -----\n"
-	"4023 Baby Novice      4024 Baby Swordman    4025 Baby Magician   4026 Baby Archer\n"
-	"4027 Baby Acolyte      4028 Baby Merchant       4029 Baby Thief\n"
-	"---- Baby 2nd Class ----\n"
-	"4030 Baby Knight     4031 Baby Priest         4032 Baby Wizard         4033 Baby Blacksmith\n"
-	"4034 Baby Hunter    4035 Baby Assassin   4037 Baby Crusader    4038 Baby Monk\n"
-	"4039 Baby Sage       4040 Baby Rogue        4041 Baby Alchemist   4042 Baby Bard\n"
-	"4043 Baby Dancer\n"
-	"---- Baby 3rd Class ----\n"
-	"4096 Baby Rune Knight  4097 Baby Warlock     4098 Baby Ranger           4099 Baby Arch Bishop\n"
-	"4100 Baby Mechanic       4101 Baby Glt. Cross  4102 Baby Royal Guard  4103 Baby Sorcerer\n"
-	"4104 Baby Minstrel          4105 Baby Wanderer   4106 Baby Sura             4107 Baby Genetic\n"
-	"4108 Baby Shadow Chaser\n"
-	"---- Expanded Baby Class ----\n"
-	"4220 Baby Summoner        4222 Baby Ninja        4223 Baby Kagero         4224 Baby Oboro\n"
-	"4225 Baby Taekwon       4226 Baby Star Glad    4227 Baby Soul Linker    4228 Baby Gunslinger\n"
-	"4229 Baby Rebellion   4241 Baby Star Emperor    4242 Baby Soul Reaper\n"
-	"---- Modes And Others ----\n"
-	" 22 Wedding            26 Christmas          27 Summer           28 Hanbok\n"
-	" 29 Oktoberfest       30 Summer 2\n"
-	" 4048 Star Gladiator (Union)	    4238 Baby Star Glad (Union)\n"
-option: "Params: <param1> <param2>(stackable) <param3>(stackable)\n" "Adds different visual effects on or around your character.\n"
-" <param1>       <param2>        <param3>\n"
-"01: Stone      01: Sight       01: Sight          512: Cart Lv. 4\n"
-"02: Frozen     02: Curse       02: Hiding        1024: Cart Lv. 5\n"
-"03: Stun       04: Silence     04: Cloaking      2048: Orc Head\n"
-"04: Sleep      08: Signum      08: Cart Lv. 1    4096: Wedding\n"
-"06: Petrify    16: Blind       16: Falcon        8192: Ruwach\n"
-"07: Burning    32: Angelus     32: Riding       16384: Chasewalk\n"
-"08: Imprison   64: Bleeding    64: Invisible\n"
-"16: (Nothing) 128: D. Poison  128: Cart Lv. 2\n"
-"32: (Nothing) 256: Fear       256: Cart Lv. 3"
-heal: "Params: [<HP> <SP>]\n" "Heals the desired amount of HP and SP. No value specified will do a full heal."
-dye: "Params: <clothes palette no.>\n" "Changes your characters clothes color."
-hairstyle: "Params: <hairstyle no.>\n" "Changes your hair style."
-haircolor: "Params <hair palette no.>\n" "Changes your hair color."
-speed: "Params: <1-1000>\n" "Changes you walking speed. 1 being the fastest and 1000 the slowest. Default is 150."
-effect: "Params: <effect id> [<flag>]\n" "Give an effect to your character."
-dropall: "Params: [<item type>]\n" "Throws all your possession on the ground. No type specified will drop all items."
-storeall: "Puts all your possessions in storage."
-killable: "Make your character killable."
-memo: "Params: [memo position]\n" "Set/change a memo location (no position: display memo points)."
-spiritball: "Params: <1-100>\n" "Gives you \"spirit spheres\" like from the skill \"Call Spirits\".\n"
-questskill: "Params: <#>\n" "Gives you the specified quest skill\n"
-"Novice = 142: First Aid, 143: Act Dead\n"
-"Archer = 147: Create Arrow, 148: Charge Arrow\n"
-"Swordman = 144: Moving HP Recovery, 145: Attack Weak Point, 146: Auto Berserk\n"
-"Acolyte = 156: Holy Light\n"
-"Thief = 149: Throw Sand, 150: Back Sliding, 151: Take Stone, 152: Throw Stone\n"
-"Merchant = 153: Cart Revolution, 154: Change Cart, 155: Crazy Uproar, 2535: Open Buying Store\n"
-"Magician = 157: Energy Coat\n"
-"Hunter = 1009: Phantasmic Arrow\n"
-"Bard = 1010: Pang Voice\n"
-"Dancer = 1011: Wink of Charm\n"
-"Knight = 1001: Charge Attack\n"
-"Crusader = 1002: Shrink\n"
-"Priest = 1014: Redemptio\n"
-"Monk = 1015: Ki Translation, 1016: Ki Explosio\n"
-"Assassin = 1003: Sonic Acceleration, 1004: Throw Venom Knife\n"
-"Rogue = 1005: Close Confine\n"
-"Blacksmith = 1012: Unfair Trick, 1013: Greed\n"
-"Alchemist = 238: Basis of Life\n"
-"Wizard = 1006: Sight Blaster\n"
-"Sage = 1007: Create Elemental Converter, 1008: Elemental Change (Water), 1017: Elemental Change (Earth), 1018: Elemental Change (Fire), 1019: Elemental Change (Wind)"
-lostskill: "Params: <#>\n" "Takes away the specified quest skill from you\n"
-"Novice = 142: First Aid, 143: Act Dead\n"
-"Archer = 147: Create Arrow, 148: Charge Arrow\n"
-"Swordman = 144: Moving HP Recovery, 145: Attack Weak Point, 146: Auto Berserk\n"
-"Acolyte = 156: Holy Light\n"
-"Thief = 149: Throw Sand, 150: Back Sliding, 151: Take Stone, 152: Throw Stone\n"
-"Merchant = 153: Cart Revolution, 154: Change Cart, 155: Crazy Uproar, 2535: Open Buying Store\n"
-"Magician = 157: Energy Coat\n"
-"Hunter = 1009: Phantasmic Arrow\n"
-"Bard = 1010: Pang Voice\n"
-"Dancer = 1011: Wink of Charm\n"
-"Knight = 1001: Charge Attack\n"
-"Crusader = 1002: Shrink\n"
-"Priest = 1014: Redemptio\n"
-"Monk = 1015: Ki Translation, 1016: Ki Explosio\n"
-"Assassin = 1003: Sonic Acceleration, 1004: Throw Venom Knife\n"
-"Rogue = 1005: Close Confine\n"
-"Blacksmith = 1012: Unfair Trick, 1013: Greed\n"
-"Alchemist = 238: Basis of Life\n"
-"Wizard = 1006: Sight Blaster\n"
-"Sage = 1007: Create Elemental Converter, 1008: Elemental Change (Water), 1017: Elemental Change (Earth), 1018: Elemental Change (Fire), 1019: Elemental Change (Wind)"
-skillid: "Params: <name>\n" "Look up a skill by name"
-useskill: "Params: <skillid> <skillv> <target>\n" "Use a skill on target"
-skilltree: "Params: <skillnum> <charname>\n" "Prints the skill tree needed to get a skill for the target player."
-marry: "Params: <player name>\n" "Marry another player."
-divorce: "Divorce player."
-alive: "Revives yourself from death."
-blvl: "Params: <number of levels>\n" "Raises your base level the desired number of levels."
-jlvl: "Params: <number of levels>\n" "Raises your job level the desired number of levels."
-allskill: "Give you all skills."
-stpoint: "Params: <number of points> - Gives you the desired number of stat points."
-skpoint: "Params: <number of points> - Gives you the desired number of skill points."
-zeny: "Params: <amount> - Gives you desired amount of Zeny."
-cash: "Params: <amount> - Gives you the specified amount of cash points."
-points: "Params: <amount> - Gives you the specified amount of Kafra Points."
-str: "Params: <amount>\n" "Raises STR by given amount."
-agi: "Params: <amount>\n" "Raises AGI by given amount."
-dex: "Params: <amount>\n" "Raises DEX by given amount."
-vit: "Params: <amount>\n" "Raises VIT by given amount."
-int: "Params: <amount>\n" "Raises INT by given amount."
-luk: "Params: <amount>\n" "Raises LUK by given amount."
-allstats: "Params: <value>\n" "Adds value in all stats (maximum if no value)."
-addwarp: "Params: <map name> <x coord> <y coord> <NPC name>\n"
-killmonster2: "Kills all monsters of your map (without drops)."
-monster: "Params: <monster name|ID> [<number to spawn> [<desired_monster_name> [<x coord> [<y coord>]]]]\n"
- "@monster2 <desired_monster_name> <monster name|ID> [<number to spawn> [<x coord> [<y coord>]]]\n"
-"@spawn/@monster/@summon/@monster2 \"desired monster name\" <monster name|ID> [<number to spawn> [<x coord> [<y coord>]]]\n"
-"@spawn/@monster/@summon/@monster2 <monster name|ID> \"desired monster name\" [<number to spawn> [<x coord> [<y coord>]]]\n"
-"	Spawns the desired monster with any desired name."
-monstersmall: "Params: <monster name|ID>\n" "Spawns a smaller version of a monster."
-monsterbig: "Params: <monster name|ID>\n" "Spawns a larger version of a monster."
-killmonster: "Params: <map>\n" "Kill all monsters of the map (they drop)"
-autoloot: "Params: <on|off|#>\n" "Makes items go straight into your inventory."
-autotrade: "Allows you to vend while you are offline."
-changegm: "Params: <charname>\n" "Changes the leader of your guild (You must be guild leader)"
-changeleader: "Params: <charname>\n" "Changes the leader of your party (You must be party leader)"
-request: "Params: <message>\n" "Sends a message to all connected GMs (via the gm whisper system)"
-sound: "Params: <path to file in data folder or GRF file>\n" "Plays a sound from the data folder or GRF file located on the client."
-clone: "Params: <charname>\n" "Spawns a supportive clone of the given player."
-slaveclone: "Params: <charname>\n" "Spawns a supportive clone of the given player that follows the creator around."
-evilclone: "Params: <charname>\n" "Spawns an aggressive clone of the given player."
-changesex: "Changes your gender."
-duel: "Starts a duel."
-invite: "Invites a player to a duel."
-accept: "Accepts an invitation to a duel."
-reject: "Rejects an invitation to a duel."
-leave: "Leaves a duel."
-mail: "Open mail box."
-storage: "Opens storage."
-itemreset: "Remove all your items."
-guildstorage: "Opens guild storage."
-idsearch: "Params: <part_of_item_name>\n" "Search all items that name have part_of_item_name"
-refine: "Params: <equip position> <+/- amount>"
-produce: "Params: <equip name or equip ID> <element> <# of very's>\n"
-"	Element: 0=None 1=Ice 2=Earth 3=Fire 4=Wind\n"
-"	You can add up to 3 Star Crumbs and 1 element\n"
-repairall: "Repair all items of your inventory"
-item: "Params: <item name or ID> <quantity>\n" "Gives you the desired item."
-item2: "Params: <item name or ID> <quantity> <identified_flag> <refine> <broken_flag> <Card1> <Card2> <Card3> <Card4>\n" "Gives you the desired item."
-pvpon: "Turns pvp on on the current map"
-pvpoff: "Turns pvp off on the current map"
-gvgon: "Turns gvg on on the current map"
-gvgoff: "Turns gvg off on the current map"
-agitstart: "Starts War of Emperium"
-agitend: "End War of Emperium"
-party: "Params: <party_name>\n" "Create a party."
-guild: "Params: <guild_name>\n" "Create a guild."
-glvl: "Params: <# of levels>\n" "Raise Guild by desired number of levels"
-guildrecall: "Params: <guild name|ID>\n" "Warps all online characters of a guild to you."
-partyrecall: "Params: <party name|ID>\n" "Warps all online characters of a party to you."
-petrename: "Re-enable pet rename"
-pettalk: "Params: <message>\n" "Makes your pet say a message."
-petfriendly: "Params: <#>\n" "Set pet friendly amount (0-1000) 1000 = Max"
-pethungry: "Params: <#>\n" "Set pet hungry amount (0-100) 100 = Max"
-hatch: "Create a pet from your inventory eggs list."
-makeegg: "Params: <pet_id>\n" "Gives pet egg for monster number in pet DB"
-kick: "Params: <char name>\n" "Kicks specified character off the server"
-unjail: "Params: <char name>\n" "Discharges specified character/prisoner"
-kill: "Kills player."
-recall: "Params: <char name>\n" "Warps target character to you."
-raise: "Params: <char name>\n" "Revives target character."
-block: "Params: <char name>\n" "Permanently blocks an account."
-unblock: "Params: <char name>\n" "Unblocks an account."
-ban: "Params: <time> <name>\n" "Temporarily ban an account.\n"
- "	time usage: adjustment (+/- value) and element (y/a, m, d/j, h, mn, s)\n"
- "	Example: @ban +1m-2mn1s-6y testplayer\n"
-unban: "Params: <name> - Unban a account"
-jail: "Params: <char name> - Sends specified character in jails"
-trade: "Params: <char name> - Open a trade window with a another player"
-recallall: "Warps every character online to you."
-doom: "Kills all NON GM chars on the server."
-doommap: "Kills all non GM characters on the map."
-raisemap: "Resurrects all characters on the map."
-night: "Enables night mode on all maps, all characters are affected."
-day: "Disables night mode and restores regular lighting, all characters are affected."
-skillon: "Turn skills on for a map."
-skilloff: "Turn skills off for a map."
-snow: "Makes all maps to have the snow weather effect."
-clouds: "Makes all maps to have the cloudy weather effect."
-clouds2: "Makes all maps to have another cloudy weather effect."
-fog: "Makes all maps to have the fog weather effect."
-fireworks: "Makes all maps to have the fireworks weather effect."
-sakura: "Makes all maps to have the sakura weather effect."
-leaves: "Makes all maps to have the leaves weather effect."
-shownpc: "Params: <NPC name>\n" "Enable a NPC."
-hidenpc: "Params: <NPC name>\n" "Disable a NPC."
-npcmove: "Params: <x coord> <y coord> <NPC name>\n" "Move a NPC."
-loadnpc: "Params: <path to script>\n" "Load the specified script file path."
-unloadnpc: "Params: <NPC name>\n" "Unload the specified NPC according to name."
-unloadnpcfile: "Params: <path>\n" "Unload the specified script file path."
-adjgroup: "Params: <level> <char name>\n" "Do a temporary adjustment of the group level of a player."
-addperm: "Params: <permission_name>\n" "Temporarily add a permission to a player."
-rmvperm: "Params: <permission_name>\n" "Temporarily remove a permission from a player."
-kickall: "Kick all characters off the server"
-mapexit: "Kick all players and shut down map-server."
-gat: "For debugging (you inspect around gat)"
-send: "Params: <Hex Number> [<value>]\n" "For debugging (packet variety)"
-nuke: "Params: <char name>\n" "Blow somebody up, including those surrounding them."
-reloadatcommand: "Reload atcommand settings."
-reloadbattleconf: "Reload battle settings."
-reloaditemdb: "Reload item database."
-reloadmobdb: "Reload monster database."
-reloadmotd: "Reload Message of the Day."
-reloadmsgconf: "Reload message configuration."
-reloadpcdb: "Reload player settings."
-reloadquestdb: "Reload quest database."
-reloadscript: "Reload all scripts."
-reloadskilldb: "Reload skills definition database."
-reloadstatusdb: "Reload status settings."
-reload: "Params: <type>\n" "Reload a database or configuration file.\n"
-	"   itemdb                mobdb          skilldb\n"
-	"   atcommand       battleconf     statusdb\n"
-	"   pcdb                    motd             script\n"
-	"   questdb              msgconf       packetdb\n"
-langtype: "Params: <language>\n" "Changes your language setting."
-limitedsale: "Opens the limited sale window."
-changedress: "Removes all character costumes."

+ 33 - 0
conf/import-tmpl/atcommands.yml

@@ -0,0 +1,33 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2017 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Atcommand Database
+###########################################################################
+#
+# Atcommand Settings
+#
+###########################################################################
+# - Command                  Command name.
+#   Aliases:                 Aliases for the command. (Optional)
+#     - <AliasName>
+#   Help                     Help message for the command. (Optional)
+###########################################################################
+
+Header:
+  Type: ATCOMMAND_DB
+  Version: 1

+ 38 - 12
conf/import-tmpl/inter_server.yml

@@ -1,17 +1,43 @@
-# Config for Storages
+# This file is a part of rAthena.
+#   Copyright(C) 2017 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
 #
 #
-# To access the premium storage, use script command 'openstorage2'.
-# If premium storages are added, copy the structure of the storage table and match the table name in this config.
-# The 'max' of premium storages are not adjusted by 'vip_storage_increase' config nor MIN_STORAGE.
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
 #
 #
-# Structure:
-#	- ID: <storage_id>          // (int) Storage ID will be used for script command 'openstorage2'.
-#	  Name: "<storage name>"    // (string) Storage name will be sent to the client to display on the title bar.
-#	  Table: "<storage_table>"  // (string) Name of table where storage is saved. The table stucture is the same as the default storage table.
-#	  Max: <max_amount>         // (int) *optional* Maximum number of items in storage. MAX_STORAGE will be used if no value is defined.
-###############################################################################################################################################
-#Storages:
+##########################################################################
+# Storage Database
+##########################################################################
+#
+# Storage Settings
+#
+##########################################################################
+#	- ID                       Storage ID.
+#	  Name                     Storage name that will be sent to the client to display on the title bar.
+#	  Table                    Name of SQL table where storage is saved. The table structure is the same as the default storage table.
+#	  Max                      Maximum number of items. (Default: MAX_STORAGE)
+###########################################################################
+# To access the premium storage, use script command 'openstorage2'.
+# If more premium storages are added, copy the structure of the storage table and match the table name in this config.
+# The 'Max' of premium storages are not adjusted by 'vip_storage_increase' config nor MIN_STORAGE.
+###########################################################################
+
+Header:
+  Type: INTER_SERVER_DB
+  Version: 1
+
+#Body:
 #   - ID: 1
 #   - ID: 1
 #     Name: "VIP Storage"
 #     Name: "VIP Storage"
-#     Table: "vip_storage"
+#     Table: vip_storage
 #     Max: 300
 #     Max: 300

+ 1 - 3
conf/inter_athena.conf

@@ -81,8 +81,6 @@ mysql_reconnect_count: 1
 // Login Database Tables
 // Login Database Tables
 login_server_account_db: login
 login_server_account_db: login
 ipban_table: ipbanlist
 ipban_table: ipbanlist
-
-// Shared
 global_acc_reg_num_table: global_acc_reg_num
 global_acc_reg_num_table: global_acc_reg_num
 global_acc_reg_str_table: global_acc_reg_str
 global_acc_reg_str_table: global_acc_reg_str
 
 
@@ -116,7 +114,6 @@ skill_homunculus_db: skill_homunculus
 mercenary_db: mercenary
 mercenary_db: mercenary
 mercenary_owner_db: mercenary_owner
 mercenary_owner_db: mercenary_owner
 elemental_db: elemental
 elemental_db: elemental
-ragsrvinfo_db: ragsrvinfo
 skillcooldown_db: skillcooldown
 skillcooldown_db: skillcooldown
 bonus_script_db: bonus_script
 bonus_script_db: bonus_script
 acc_reg_num_table: acc_reg_num
 acc_reg_num_table: acc_reg_num
@@ -149,6 +146,7 @@ vending_table: vendings
 vending_items_table: vending_items
 vending_items_table: vending_items
 market_table: market
 market_table: market
 roulette_table: db_roulette
 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 item_db, mob_db and mob_skill_db for the map server? (yes/no)
 use_sql_db: no
 use_sql_db: no

+ 26 - 14
conf/inter_server.yml

@@ -15,20 +15,32 @@
 # You should have received a copy of the GNU General Public License
 # You should have received a copy of the GNU General Public License
 # along with this program. If not, see <http://www.gnu.org/licenses/>.
 # along with this program. If not, see <http://www.gnu.org/licenses/>.
 #
 #
-###########################################################################
-# Config for Storages
+##########################################################################
+# Storage Database
+##########################################################################
 #
 #
-# To access the premium storage, use script command 'openstorage2'.
-# If premium storages are added, copy the structure of the storage table and match the table name in this config.
-# The 'max' of premium storages are not adjusted by 'vip_storage_increase' config nor MIN_STORAGE.
+# Storage Settings
 #
 #
-# Structure:
-#	- ID: <storage_id>          // (int) Storage ID will be used for script command 'openstorage2'.
-#	  Name: "<storage name>"    // (string) Storage name will be sent to the client to display on the title bar.
-#	  Table: "<storage_table>"  // (string) Name of table where storage is saved. The table stucture is the same as the default storage table.
-#	  Max: <max_amount>         // (int) *optional* Maximum number of items in storage. MAX_STORAGE will be used if no value is defined.
+##########################################################################
+#	- ID                       Storage ID.
+#	  Name                     Storage name that will be sent to the client to display on the title bar.
+#	  Table                    Name of SQL table where storage is saved. The table structure is the same as the default storage table.
+#	  Max                      Maximum number of items. (Default: MAX_STORAGE)
+###########################################################################
+# To access the premium storage, use script command 'openstorage2'.
+# If more premium storages are added, copy the structure of the storage table and match the table name in this config.
+# The 'Max' of premium storages are not adjusted by 'vip_storage_increase' config nor MIN_STORAGE.
+###########################################################################
+
+Header:
+  Type: INTER_SERVER_DB
+  Version: 1
+
+Body:
+  - ID: 0
+    Name: "Storage"
+    Table: storage
 
 
-Storages:
-    - ID: 0
-      Name: "Storage"
-      Table: "storage"
+Footer:
+  Imports:
+    - Path: conf/import/inter_server.yml

+ 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 1: Value is a config switch (on/off, yes/no or 1/0)
 // Note 2: Value is in percents (100 means 100%)
 // Note 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
 // 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)
 // Enable Logs? (Note 3)
@@ -37,7 +37,7 @@
 // Please note that moving items from inventory to cart and back is not logged by design.
 // Please note that moving items from inventory to cart and back is not logged by design.
 enable_logs: 0xFFFFFF
 enable_logs: 0xFFFFFF
 
 
-// Use MySQL Logs? [SQL Version Only] (Note 1)
+// Use MySQL Logs? (Note 1)
 sql_logs: yes
 sql_logs: yes
 
 
 // LOGGING FILTERS
 // 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
 // 0 - don't log; 1 - log any zeny changes; 2.....1000000 - minimal absolute logging zeny value
 log_zeny: 0
 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)
 // Log MVP Monster Drops (Note 1)
 // Outdated. Use Pick_Log instead. But this log could be useful to keep track slayed MVPs
 // Outdated. Use Pick_Log instead. But this log could be useful to keep track slayed MVPs

+ 17 - 2
conf/login_athena.conf

@@ -52,7 +52,8 @@ console_silent: 0
 console: off
 console: off
 
 
 // Can you use _M/_F to make new accounts on the server?
 // Can you use _M/_F to make new accounts on the server?
-new_account: yes
+// Note: This only works if client side password encryption is not enabled.
+new_account: no
 
 
 //If new_account is enabled, minimum length to userid and passwords should be 4?
 //If new_account is enabled, minimum length to userid and passwords should be 4?
 //Must be 'Yes' unless your client uses both 'Disable 4 LetterUserID/Password' Diffs
 //Must be 'Yes' unless your client uses both 'Disable 4 LetterUserID/Password' Diffs
@@ -89,7 +90,7 @@ min_group_id_to_connect: -1
 vip_group: 5
 vip_group: 5
 
 
 // How many characters are allowed per account?
 // 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.
 // will default to MAX_CHARS.
 // 0 will default to the value of MIN_CHARS. (default)
 // 0 will default to the value of MIN_CHARS. (default)
 chars_per_account: 0
 chars_per_account: 0
@@ -110,6 +111,16 @@ start_limited_time: -1
 // NOTE: Will not work with clients that use <passwordencrypt>
 // NOTE: Will not work with clients that use <passwordencrypt>
 use_MD5_passwords: no
 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 features
 ipban_enable: yes
 ipban_enable: yes
 // Dynamic password failure ipban system
 // Dynamic password failure ipban system
@@ -152,6 +163,10 @@ dnsbl_servers: bl.blocklist.de, socks.dnsbl.sorbs.net
 // Note: see 'doc/md5_hashcheck.txt' for more details.
 // Note: see 'doc/md5_hashcheck.txt' for more details.
 client_hash_check: off
 client_hash_check: off
 
 
+// Enable web authentication token system
+// This is required for new clients that get data via an additional API over HTTP
+use_web_auth_token: yes
+
 // Client MD5 hashes
 // Client MD5 hashes
 // The client with the specified hash can be used to log in by players with
 // The client with the specified hash can be used to log in by players with
 // a group_id equal to or greater than the given value.
 // a group_id equal to or greater than the given value.

+ 0 - 2
conf/map_athena.conf

@@ -117,8 +117,6 @@ save_settings: 4095
 motd_txt: conf/motd.txt
 motd_txt: conf/motd.txt
 
 
 // When @help or @h is typed when you are a gm, this is displayed for helping new gms understand gm commands.
 // When @help or @h is typed when you are a gm, this is displayed for helping new gms understand gm commands.
-help_txt: conf/help.txt
-help2_txt: conf/help2.txt
 charhelp_txt: conf/charhelp.txt
 charhelp_txt: conf/charhelp.txt
 
 
 // Load channel config from
 // Load channel config from

+ 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.
 Welcome to rAthena! Enjoy! Please report any bugs you find.

+ 40 - 8
conf/msg_conf/map_msg.conf

@@ -41,7 +41,7 @@
 24: Job level raised.
 24: Job level raised.
 25: Job level lowered.
 25: Job level lowered.
 26: Help commands:
 26: Help commands:
-27: Commands help is not available.
+//27: free
 28: No player found.
 28: No player found.
 29: 1 player found.
 29: 1 player found.
 30: %d players found.
 30: %d players found.
@@ -353,6 +353,12 @@
 // 334: Thirty-Four Castles
 // 334: Thirty-Four Castles
 334: Total Domination
 334: Total Domination
 
 
+// Battlegrounds Queue
+337: You can't apply to a battleground queue from this map.
+338: You can't apply to a battleground queue due to recently deserting a battleground. Time remaining: %d minutes and %d seconds.
+339: You can't apply to a battleground queue for %d seconds due to recently leaving one.
+340: Participants were unable to join. Delaying entry for more participants.
+
 // Templates for @who output
 // Templates for @who output
 343: Name: %s
 343: Name: %s
 344: (%s)
 344: (%s)
@@ -458,8 +464,7 @@
 // Homunculus messages
 // Homunculus messages
 450: You already have a homunculus
 450: You already have a homunculus
 
 
-// Return pet to egg message
-451: You can't return your pet because your inventory is full.
+//451 free
 
 
 // Message System
 // Message System
 460: Please enter a valid language (usage: @langtype <language>).
 460: Please enter a valid language (usage: @langtype <language>).
@@ -855,7 +860,15 @@
 // Private Airship
 // Private Airship
 792: The private airship system is disabled.
 792: The private airship system is disabled.
 
 
-//793-899 free
+793: Usage @camerainfo range rotation latitude
+
+// pcblock command
+794: This action is currently blocked.
+
+// @reloadattendancedb
+795: Attendance database has been reloaded.
+
+//796-899 free
 
 
 //------------------------------------
 //------------------------------------
 // More atcommands message
 // More atcommands message
@@ -1042,7 +1055,7 @@
 
 
 // @reloadatcommand
 // @reloadatcommand
 1036: Error reading groups.conf, reload failed.
 1036: Error reading groups.conf, reload failed.
-1037: Error reading atcommand_athena.conf, reload failed.
+//1037 free
 
 
 // @mapinfo
 // @mapinfo
 1038: Please enter at least one valid list number (usage: @mapinfo <0-3> <map>).
 1038: Please enter at least one valid list number (usage: @mapinfo <0-3> <map>).
@@ -1060,7 +1073,10 @@
 1050: Other Flags:
 1050: Other Flags:
 1051: Other Flags2:
 1051: Other Flags2:
 1052: Skill Damage Adjustments:
 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
 1065:  No Exp Penalty: %s | No Zeny Penalty: %s
 1066: On
 1066: On
 1067: Off
 1067: Off
@@ -1518,7 +1534,7 @@
 1370: Usage: ex. "@set PoringCharVarSTR$" outputs its value, Super Duper String.
 1370: Usage: ex. "@set PoringCharVarSTR$" outputs its value, Super Duper String.
 1371: NPC variables may not be used with @set.
 1371: NPC variables may not be used with @set.
 1372: Instance variables may not be used with @set.
 1372: Instance variables may not be used with @set.
-1373: %s value is now: %d
+1373: %s value is now: %lld
 1374: %s value is now: %s
 1374: %s value is now: %s
 1375: %s is blank.
 1375: %s is blank.
 
 
@@ -1551,7 +1567,7 @@
 1391: You do not possess a cart to be removed
 1391: You do not possess a cart to be removed
 1392: Cart Added.
 1392: Cart Added.
 
 
-// atcommand.c::is_atcommand
+// atcommand.cpp::is_atcommand
 1393: You can't use commands while dead.
 1393: You can't use commands while dead.
 
 
 // @clearstorage
 // @clearstorage
@@ -1691,5 +1707,21 @@
 1503: You've entered a PK Zone.
 1503: You've entered a PK Zone.
 1504: You've entered a PK Zone (safe until level %d).
 1504: You've entered a PK Zone (safe until level %d).
 
 
+// @setquest, @erasequest, @completequest
+1505: Usage: %s <quest ID>
+1506: Quest %d not found in DB.
+1507: Character already has quest %d.
+1508: Character doesn't have quest %d.
+
+// @checkquest
+1509: Checkquest value for quest %d
+1510: >    HAVEQUEST : %d
+1511: >    HUNTING   : %d
+1512: >    PLAYTIME  : %d
+
+// @changegm
+1513: Currently in WoE hours, unable to delegate Guild leader
+1514: You have to wait for a while before delegating a new Guild leader
+
 //Custom translations
 //Custom translations
 import: conf/msg_conf/import/map_msg_eng_conf.txt
 import: conf/msg_conf/import/map_msg_eng_conf.txt

+ 6 - 7
conf/msg_conf/map_msg_chn.conf

@@ -45,7 +45,7 @@
 24: 職業等級 上升
 24: 職業等級 上升
 25: 職業等級 下降
 25: 職業等級 下降
 26: 求助指令:
 26: 求助指令:
-27: 找不到檔案: help.txt
+//27: free
 28: 沒有玩家
 28: 沒有玩家
 29: 有 1 位玩家
 29: 有 1 位玩家
 30: 有 %d 位玩家
 30: 有 %d 位玩家
@@ -441,8 +441,7 @@
 // Homunculus messages
 // Homunculus messages
 450: 你已經擁有一個人工生命體了
 450: 你已經擁有一個人工生命體了
 
 
-// Return pet to egg message
-451: 你無法收回寵物,因為你身上沒有空間了
+//451 free
 
 
 // Message System
 // Message System
 460: 請輸入合法的語言 (usage: @langtype <language>).
 460: 請輸入合法的語言 (usage: @langtype <language>).
@@ -868,7 +867,7 @@
 
 
 // @reloadatcommand
 // @reloadatcommand
 1036: Error reading groups.conf, reload failed.
 1036: Error reading groups.conf, reload failed.
-1037: Error reading atcommand_athena.conf, reload failed.
+//1037 free
 
 
 // @mapinfo
 // @mapinfo
 1038: 請至少輸入一個有效的列表數字 (使用方法: @mapinfo <0-3> [地圖名稱])
 1038: 請至少輸入一個有效的列表數字 (使用方法: @mapinfo <0-3> [地圖名稱])
@@ -1342,8 +1341,8 @@
 1370: 用法: ex. "@set PoringCharVarSTR$" outputs its value, Super Duper String.
 1370: 用法: ex. "@set PoringCharVarSTR$" outputs its value, Super Duper String.
 1371: NPC variables may not be used with @set.
 1371: NPC variables may not be used with @set.
 1372: Instance variables may not be used with @set.
 1372: Instance variables may not be used with @set.
-1373: %s value is now :%d
-1374: %s value is now :%s
+1373: %s value is now: %lld
+1374: %s value is now: %s
 1375: %s is empty
 1375: %s is empty
 //1376: free
 //1376: free
 
 
@@ -1373,7 +1372,7 @@
 1391: You do not possess a cart to be removed
 1391: You do not possess a cart to be removed
 1392: Cart Added.
 1392: Cart Added.
 
 
-// atcommand.c::is_atcommand
+// atcommand.cpp::is_atcommand
 1393: 角色死亡時不能使用指令。
 1393: 角色死亡時不能使用指令。
 
 
 // @clearstorage
 // @clearstorage

+ 6 - 7
conf/msg_conf/map_msg_frn.conf

@@ -45,7 +45,7 @@
 24: Job level augmenté.
 24: Job level augmenté.
 25: Job level baissé.
 25: Job level baissé.
 26: Commandes d'aide:
 26: Commandes d'aide:
-27: Commandes d'aide non-disponible.
+//27: free
 28: Aucun Joueur trouvé.
 28: Aucun Joueur trouvé.
 29: 1 Joueur trouvé.
 29: 1 Joueur trouvé.
 30: %d Joueurs trouvés.
 30: %d Joueurs trouvés.
@@ -449,8 +449,7 @@
 // Homunculus messages
 // Homunculus messages
 450: Vous possédez déjà un homunculus
 450: Vous possédez déjà un homunculus
 
 
-// Return pet to egg message
-451: Vous ne pouvez pas remettre votre pet dans son oeuf car votre inventaire est plein.
+//451 free
 
 
 // Message System
 // Message System
 460: Entrez une langue (usage: @langtype <langue>).
 460: Entrez une langue (usage: @langtype <langue>).
@@ -880,7 +879,7 @@
 
 
 // @reloadatcommand
 // @reloadatcommand
 1036: Erreur à la lecture de groups.conf, reload échoué.
 1036: Erreur à la lecture de groups.conf, reload échoué.
-1037: Erreur à la lecture de atcommand_athena.conf, reload échoué.
+//1037 free
 
 
 // @mapinfo
 // @mapinfo
 1038: Entrez un numéro de la liste (usage: @mapinfo <0-3> <map>).
 1038: Entrez un numéro de la liste (usage: @mapinfo <0-3> <map>).
@@ -1355,8 +1354,8 @@
 1370: Usage: ex. "@set PoringCharVarSTR$" affiche sa valeur actuelle, Super Duper String.
 1370: Usage: ex. "@set PoringCharVarSTR$" affiche sa valeur actuelle, Super Duper String.
 1371: Les variables des NPC ne peuvent pas être utilisées/changées avec @set.
 1371: Les variables des NPC ne peuvent pas être utilisées/changées avec @set.
 1372: Les variables d'Instance ne peuvent pas être utilisées avec @set.
 1372: Les variables d'Instance ne peuvent pas être utilisées avec @set.
-1373: %s valeur est maintenant :%d
-1374: %s valeur est maintenant :%s
+1373: %s valeur est maintenant: %lld
+1374: %s valeur est maintenant: %s
 1375: %s est vide
 1375: %s est vide
 //1376: free
 //1376: free
 
 
@@ -1386,7 +1385,7 @@
 1391: Vous ne possédez pas de chariot.
 1391: Vous ne possédez pas de chariot.
 1392: Chariot ajouté.
 1392: Chariot ajouté.
 
 
-// atcommand.c::is_atcommand
+// atcommand.cpp::is_atcommand
 1393: Les morts ne pouvent pas utiliser de commande.
 1393: Les morts ne pouvent pas utiliser de commande.
 
 
 // @clearstorage
 // @clearstorage

+ 1 - 1
conf/msg_conf/map_msg_grm.conf

@@ -44,7 +44,7 @@
 24: Job Level erhöht.
 24: Job Level erhöht.
 25: Job Level verringert.
 25: Job Level verringert.
 26: Hilfsbefehle:
 26: Hilfsbefehle:
-27: Der help-Befehl ist nicht verfügbar.
+//27: free
 28: Kein Spieler gefunden.
 28: Kein Spieler gefunden.
 29: 1 Spieler gefunden.
 29: 1 Spieler gefunden.
 30: %d Spieler gefunden.
 30: %d Spieler gefunden.

+ 5 - 6
conf/msg_conf/map_msg_idn.conf

@@ -41,7 +41,7 @@
 24: Job Level dinaikkan.
 24: Job Level dinaikkan.
 25: Job Level diturunkan.
 25: Job Level diturunkan.
 26: Bantuan command:
 26: Bantuan command:
-27: Bantuan command tidak tersedia.
+//27: free
 28: Pemain tidak ditemukan.
 28: Pemain tidak ditemukan.
 29: 1 pemain ditemukan.
 29: 1 pemain ditemukan.
 30: %d pemain ditemukan.
 30: %d pemain ditemukan.
@@ -459,8 +459,7 @@
 // Pesan-pesan untuk Homunculus
 // Pesan-pesan untuk Homunculus
 450: Kamu sudah memiliki homunculus
 450: Kamu sudah memiliki homunculus
 
 
-// Pesan tentang mengembalikan peliharaan ke telur
-451: Kamu tidak dapat mengembalikan peliharaan kamu karena inventory penuh.
+//451 free
 
 
 // Sistem Pesan
 // Sistem Pesan
 460: Harap masukkan tipe bahasa yang valid. (Penggunaan: @langtype <bahasa>).
 460: Harap masukkan tipe bahasa yang valid. (Penggunaan: @langtype <bahasa>).
@@ -970,7 +969,7 @@
 
 
 // @reloadatcommand
 // @reloadatcommand
 1036: Terjadi kesalahan saat membaca groups.conf, tidak berhasil dimuat ulang.
 1036: Terjadi kesalahan saat membaca groups.conf, tidak berhasil dimuat ulang.
-1037: Terjadi kesalahan saat membaca atcommand_athena.conf, tidak berhasil dimuat ulang.
+//1037 free
 
 
 // @mapinfo
 // @mapinfo
 1038: Harap masukkan setidaknya 1 pilihan. (Penggunaan: @mapinfo <0-3> <map>).
 1038: Harap masukkan setidaknya 1 pilihan. (Penggunaan: @mapinfo <0-3> <map>).
@@ -1446,7 +1445,7 @@
 1370: Contoh penggunaan: \"@set PoringCharVarSTR$\" menampilkan nilainya, Super Duper String.
 1370: Contoh penggunaan: \"@set PoringCharVarSTR$\" menampilkan nilainya, Super Duper String.
 1371: Variabel pada NPC tidak boleh digunakan dengan @set.
 1371: Variabel pada NPC tidak boleh digunakan dengan @set.
 1372: Variabel instansi tidak boleh digunakan dengan @set.
 1372: Variabel instansi tidak boleh digunakan dengan @set.
-1373: Nilai %s saat ini: %d
+1373: Nilai %s saat ini: %lld
 1374: Nilai %s saat ini: %s
 1374: Nilai %s saat ini: %s
 1375: %s kosong
 1375: %s kosong
 //1376: free
 //1376: free
@@ -1477,7 +1476,7 @@
 1391: Kamu tidak memiliki keranjang yang akan dihapus.
 1391: Kamu tidak memiliki keranjang yang akan dihapus.
 1392: Gerobak ditambahkan.
 1392: Gerobak ditambahkan.
 
 
-// atcommand.c::is_atcommand
+// atcommand.cpp::is_atcommand
 1393: Kamu tidak bisa menggunakan perintah ini ketika mati.
 1393: Kamu tidak bisa menggunakan perintah ini ketika mati.
 
 
 // @clearstorage
 // @clearstorage

+ 6 - 7
conf/msg_conf/map_msg_por.conf

@@ -51,7 +51,7 @@
 24: Nível de classe acrescido.
 24: Nível de classe acrescido.
 25: Nível de classe decrescido.
 25: Nível de classe decrescido.
 26: Comandos de ajuda:
 26: Comandos de ajuda:
-27: Comandos de ajuda não disponível.
+//27: free
 28: Nenhum jogador encontrado.
 28: Nenhum jogador encontrado.
 29: 1 jogador encontrado.
 29: 1 jogador encontrado.
 30: %d jogadores encontrados.
 30: %d jogadores encontrados.
@@ -468,8 +468,7 @@
 // Mensagens de homunculus
 // Mensagens de homunculus
 450: Você já possui um homunculus
 450: Você já possui um homunculus
 
 
-// Mensagem de retorno do pet ao ovo
-451: Você não pode retornar o seu bichinho de estimação para o ovo pois o seu inventário está lotado.
+//451 free
 
 
 // Sistema de Mensagens
 // Sistema de Mensagens
 460: Digite um idioma válido (uso: @langtype <idioma>).
 460: Digite um idioma válido (uso: @langtype <idioma>).
@@ -1049,7 +1048,7 @@
 
 
 // @reloadatcommand
 // @reloadatcommand
 1036: Erro na leitura do grups.conf, recarregamento falhou.
 1036: Erro na leitura do grups.conf, recarregamento falhou.
-1037: Erro na leitura do atcommand_athena.conf, recarregamento falhou.
+//1037 free
 
 
 // @mapinfo
 // @mapinfo
 1038: Digite pelo menos um número válido da lista (uso: @mapinfo <0-3> <mapa>).
 1038: Digite pelo menos um número válido da lista (uso: @mapinfo <0-3> <mapa>).
@@ -1525,8 +1524,8 @@
 1370: Uso: ex. "@set PoringCharVarSTR$" exibe seu valor, Super Duper String.
 1370: Uso: ex. "@set PoringCharVarSTR$" exibe seu valor, Super Duper String.
 1371: Variáveis de NPC não podem ser usadas com @set.
 1371: Variáveis de NPC não podem ser usadas com @set.
 1372: Variáveis de instância não podem ser usadas com @set.
 1372: Variáveis de instância não podem ser usadas com @set.
-1373: %s valor agora é :%d
-1374: %s valor agora é :%s
+1373: %s valor agora é: %lld
+1374: %s valor agora é: %s
 1375: %s é vazia
 1375: %s é vazia
 //1376: free
 //1376: free
 
 
@@ -1556,7 +1555,7 @@
 1391: Você não possui um carrinho para remover
 1391: Você não possui um carrinho para remover
 1392: Carrinho Adicionado.
 1392: Carrinho Adicionado.
 
 
-// atcommand.c::is_atcommand
+// atcommand.cpp::is_atcommand
 1393: Você não pode utilizar comandos caso esteja morto.
 1393: Você não pode utilizar comandos caso esteja morto.
 
 
 // @clearstorage
 // @clearstorage

+ 6 - 7
conf/msg_conf/map_msg_rus.conf

@@ -43,7 +43,7 @@
 24: Уровень профессии повышен.
 24: Уровень профессии повышен.
 25: Уровень профессии снижен.
 25: Уровень профессии снижен.
 26: Подсказки для команд:
 26: Подсказки для команд:
-27: Подсказки для команд не доступны.
+//27: free
 28: Игроки не найдены.
 28: Игроки не найдены.
 29: Найден 1 игрок.
 29: Найден 1 игрок.
 30: Найдено %d игрока(ов).
 30: Найдено %d игрока(ов).
@@ -449,8 +449,7 @@
 // Сообщения команды @makehomun
 // Сообщения команды @makehomun
 450: У вас уже есть гомункулус
 450: У вас уже есть гомункулус
 
 
-// Возвращение питомца в яйцо
-451: Вы не можете вернуть питомца в яйцо, потому что ваш инвентарь забит.
+//451 free
 
 
 // @langtype
 // @langtype
 460: Введите существующий язык (Используйте: @langtype <язык>).
 460: Введите существующий язык (Используйте: @langtype <язык>).
@@ -881,7 +880,7 @@
 
 
 // @reloadatcommand
 // @reloadatcommand
 1036: Ошибка чтения файла groups.conf, перезагрузка не удалась.
 1036: Ошибка чтения файла groups.conf, перезагрузка не удалась.
-1037: Ошибка чтения файла atcommand_athena.conf, перезагрузка не удалась.
+//1037 free
 
 
 // @mapinfo
 // @mapinfo
 1038: Введите хотя бы один номер (Использование: @mapinfo <0-3> <локация>).
 1038: Введите хотя бы один номер (Использование: @mapinfo <0-3> <локация>).
@@ -1355,8 +1354,8 @@
 1370: Использование: прим. "@set PoringCharVarSTR$" будет иметь значение "Super Duper String".
 1370: Использование: прим. "@set PoringCharVarSTR$" будет иметь значение "Super Duper String".
 1371: Переменные НИП не могут быть использованы командой @set.
 1371: Переменные НИП не могут быть использованы командой @set.
 1372: Переменные групп не могут быть использованы командой @set.
 1372: Переменные групп не могут быть использованы командой @set.
-1373: %s значение :%d
-1374: %s значение :%s
+1373: %s значение: %lld
+1374: %s значение: %s
 1375: %s пусто
 1375: %s пусто
 //1376: free
 //1376: free
 
 
@@ -1386,7 +1385,7 @@
 1391: У вас нет телеги.
 1391: У вас нет телеги.
 1392: Телега добавлена.
 1392: Телега добавлена.
 
 
-// atcommand.c::is_atcommand
+// atcommand.cpp::is_atcommand
 1393: Вы не можете использовать команды когда мертвы.
 1393: Вы не можете использовать команды когда мертвы.
  
  
 // @clearstorage
 // @clearstorage

+ 10 - 7
conf/msg_conf/map_msg_spn.conf

@@ -41,7 +41,7 @@
 24: Has aumentado tu nivel de oficio.
 24: Has aumentado tu nivel de oficio.
 25: Has disminuido tu nivel de oficio.
 25: Has disminuido tu nivel de oficio.
 26: Ayuda sobre comandos:
 26: Ayuda sobre comandos:
-27: No hay ninguna ayuda disponible.
+//27: free
 28: No se ha encontrado ningún jugador.
 28: No se ha encontrado ningún jugador.
 29: Se ha encontrado 1 jugador.
 29: Se ha encontrado 1 jugador.
 30: Se han encontrado %d jugadores.
 30: Se han encontrado %d jugadores.
@@ -458,8 +458,7 @@
 // Mensajes de homúnculos
 // Mensajes de homúnculos
 450: Ya tienes un homúnculo.
 450: Ya tienes un homúnculo.
 
 
-// Mensaje al devolver la mascota al huevo
-451: No puedes devolver tu mascota al huevo porque tu inventario está lleno.
+//451 free
 
 
 // Sistema de mensajería
 // Sistema de mensajería
 460: Introduce un idioma válido (instrucciones: @langtype <idioma>)
 460: Introduce un idioma válido (instrucciones: @langtype <idioma>)
@@ -1018,7 +1017,7 @@
 
 
 // @reloadatcommand
 // @reloadatcommand
 1036: Ha ocurrido un error al cargar el archivo groups.conf.
 1036: Ha ocurrido un error al cargar el archivo groups.conf.
-1037: Ha ocurrido un error al cargar el archivo atcommand_athena.conf.
+//1037 free
 
 
 // @mapinfo
 // @mapinfo
 1038: Introduce un número de la lista (instrucciones: @mapinfo <0-3> <mapa>).
 1038: Introduce un número de la lista (instrucciones: @mapinfo <0-3> <mapa>).
@@ -1199,7 +1198,7 @@
 1193: No estás recogiendo ese objeto.
 1193: No estás recogiendo ese objeto.
 1194: Has eliminado '%s'/'%s' {%hu} de tu lista de recogida de objetos.
 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.
 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.
 1197: "@alootid reset" reiniciará tu lista de recogida de objetos.
 1198: Tu lista de recogida de objetos está vacía.
 1198: Tu lista de recogida de objetos está vacía.
 1199: Lista de objetos para recoger automáticamente:
 1199: Lista de objetos para recoger automáticamente:
@@ -1494,7 +1493,7 @@
 1370: Instrucciones: ej. "@set PoringCharVarSTR$" muestra su valor, cadena de texto.
 1370: Instrucciones: ej. "@set PoringCharVarSTR$" muestra su valor, cadena de texto.
 1371: Las variables de NPC no se pueden editar con @set.
 1371: Las variables de NPC no se pueden editar con @set.
 1372: Las variables de instancias no se pueden editar con @set.
 1372: Las variables de instancias no se pueden editar con @set.
-1373: El valor %s ahora es: %d
+1373: El valor %s ahora es: %lld
 1374: El valor %s ahora es: %s
 1374: El valor %s ahora es: %s
 1375: %s está vacío
 1375: %s está vacío
 
 
@@ -1527,7 +1526,7 @@
 1391: No tienes ningún carro.
 1391: No tienes ningún carro.
 1392: Ahora tienes un 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.
 1393: No puedes utilizar ningún comando porque estás muerto.
 
 
 // @clearstorage
 // @clearstorage
@@ -1667,5 +1666,9 @@
 1503: Has entrado en una zona PK.
 1503: Has entrado en una zona PK.
 1504: Has entrado en una zona PK (segura hasta el nivel %d).
 1504: Has entrado en una zona PK (segura hasta el nivel %d).
 
 
+// @changegm
+1513: No puedes delegar el liderazgo del clan durante el horario de WoE
+1514: Debes esperar un tiempo antes de poder designar un nuevo líder de clan
+
 //Traducciones personalizadas
 //Traducciones personalizadas
 import: conf/msg_conf/import/map_msg_spn_conf.txt
 import: conf/msg_conf/import/map_msg_spn_conf.txt

+ 5 - 6
conf/msg_conf/map_msg_tha.conf

@@ -45,7 +45,7 @@
 24: Job level à¾ÔèÁ¢Öé¹.
 24: Job level à¾ÔèÁ¢Öé¹.
 25: Job level Ŵŧ.
 25: Job level Ŵŧ.
 26: Help commands:
 26: Help commands:
-27: ¤ÓÊÑè§ help äÁèÊÒÁÒöãªéä´é.
+//27: free
 28: äÁ辺¼ÙéàÅè¹.
 28: äÁ辺¼ÙéàÅè¹.
 29: ¾º¼ÙéàÅè¹ 1 ¤¹.
 29: ¾º¼ÙéàÅè¹ 1 ¤¹.
 30: ¾º¼ÙéàÅè¹ %d ¤¹.
 30: ¾º¼ÙéàÅè¹ %d ¤¹.
@@ -447,8 +447,7 @@
 // Homunculus messages
 // Homunculus messages
 450: ¤Ø³ÁÕ Homunculus ÍÂÙèáÅéÇ.
 450: ¤Ø³ÁÕ Homunculus ÍÂÙèáÅéÇ.
 
 
-// Return pet to egg message
-451: ¤Ø³äÁèÊÒÁÒöà¡çºÊѵÇìàÅÕé§ä´éà¾ÃÒЪèͧà¡çº¢Í§ã¹µÑÇÅФÃàµçÁ.
+//451 free
 
 
 // Message System
 // Message System
 460: â»Ã´àÅ×Í¡ÀÒÉÒ·Õèµéͧ¡Òà (ÇÔ¸Õãªé: @langtype <ÀÒÉÒ>).
 460: â»Ã´àÅ×Í¡ÀÒÉÒ·Õèµéͧ¡Òà (ÇÔ¸Õãªé: @langtype <ÀÒÉÒ>).
@@ -874,7 +873,7 @@
 
 
 // @reloadatcommand
 // @reloadatcommand
 1036: à¡Ô´¢éͼԴ¾ÅҴ㹡ÒüèÒ¹ä¿Åì groups.conf, ¡ÒÃâËÅ´ãËÁèÅéÁàËÅÇ.
 1036: à¡Ô´¢éͼԴ¾ÅҴ㹡ÒüèÒ¹ä¿Åì groups.conf, ¡ÒÃâËÅ´ãËÁèÅéÁàËÅÇ.
-1037: à¡Ô´¢éͼԴ¾ÅҴ㹡ÒüèÒ¹ä¿Åì atcommand_athena.conf, ¡ÒÃâËÅ´ãËÁèÅéÁàËÅÇ.
+//1037 free
 
 
 // @mapinfo
 // @mapinfo
 1038: â»Ã´ÃкØàÅ¢ÍÂèҧ˹èÍÂ˹Ö觤èÒ¨Ò¡ÃÒ¡Òà (ÇÔ¸Õãªé: @mapinfo <0-3> <map>).
 1038: â»Ã´ÃкØàÅ¢ÍÂèҧ˹èÍÂ˹Ö觤èÒ¨Ò¡ÃÒ¡Òà (ÇÔ¸Õãªé: @mapinfo <0-3> <map>).
@@ -1348,7 +1347,7 @@
 1370: ÇÔ¸Õãªé: ex. "@set PoringCharVarSTR$" ¨ÐáÊ´§¼ÅÅѾ¸ìà»ç¹¤èÒ, Super Duper String.
 1370: ÇÔ¸Õãªé: ex. "@set PoringCharVarSTR$" ¨ÐáÊ´§¼ÅÅѾ¸ìà»ç¹¤èÒ, Super Duper String.
 1371: µÑÇá»Ã NPC äÁèÊÒÁÒöµÑ駤èÒä´é´éÇ @set ä´é.
 1371: µÑÇá»Ã NPC äÁèÊÒÁÒöµÑ駤èÒä´é´éÇ @set ä´é.
 1372: µÑÇá»Ã Instance äÁèÊÒÁÒöµÑ駤èÒä´é´éÇ @set ä´é.
 1372: µÑÇá»Ã Instance äÁèÊÒÁÒöµÑ駤èÒä´é´éÇ @set ä´é.
-1373: %s ÁÕ¤èÒ: %d
+1373: %s ÁÕ¤èÒ: %lld
 1374: %s ÁÕ¤èÒ: %s
 1374: %s ÁÕ¤èÒ: %s
 1375: %s äÁèÁÕ¤èÒã´æ.
 1375: %s äÁèÁÕ¤èÒã´æ.
 //1376: free
 //1376: free
@@ -1379,7 +1378,7 @@
 1391: ¤Ø³äÁèÁÕöà¢ç¹·Õè¨ÐźÍÍ¡.
 1391: ¤Ø³äÁèÁÕöà¢ç¹·Õè¨ÐźÍÍ¡.
 1392: µÔ´µÑé§Ã¶à¢ç¹àÃÕºÃéÍÂ.
 1392: µÔ´µÑé§Ã¶à¢ç¹àÃÕºÃéÍÂ.
 
 
-// atcommand.c::is_atcommand
+// atcommand.cpp::is_atcommand
 1393: ¤Ø³äÁèÊÒÁÒöãªé¤ÓÊÑè§ä´éã¹¢³ÐµÒÂÍÂØè.
 1393: ¤Ø³äÁèÊÒÁÒöãªé¤ÓÊÑè§ä´éã¹¢³ÐµÒÂÍÂØè.
 
 
 // @clearstorage
 // @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.)
 // Display debug reports (When something goes wrong during the report, the report is saved.)
 debug: no
 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)
 // How long can a socket stall before closing the connection (in seconds)
 stall_time: 60
 stall_time: 60
 
 
@@ -22,7 +35,7 @@ enable_ip_rules: yes
 
 
 order: deny,allow
 order: deny,allow
 // order: allow,deny
 // order: allow,deny
-// order: mutual-failture
+// order: mutual-failure
 
 
 // IP rules
 // IP rules
 //   allow : Accepts connections from the ip range (even if flagged as DDoS)
 //   allow : Accepts connections from the ip range (even if flagged as DDoS)
@@ -45,7 +58,7 @@ order: deny,allow
 ddos_interval: 3000
 ddos_interval: 3000
 
 
 // Consecutive attempts trigger
 // Consecutive attempts trigger
-// (default is 5 attemps)
+// (default is 5 attempts)
 ddos_count: 5
 ddos_count: 5
 
 
 // The time interval after which the threat of DDoS is assumed to be gone. (msec)
 // 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_option_checking
 enable_manager
 enable_manager
 enable_packetver
 enable_packetver
+enable_epoll
 enable_debug
 enable_debug
 enable_prere
 enable_prere
 enable_vip
 enable_vip
@@ -1338,7 +1339,8 @@ Optional Features:
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
   --enable-manager=ARG    memory managers: no, builtin, memwatch, dmalloc,
   --enable-manager=ARG    memory managers: no, builtin, memwatch, dmalloc,
                           gcollect, bcheck (defaults to builtin)
                           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)
   --enable-debug[=ARG]    Compiles extra debug code. (disabled by default)
                           (available options: yes, no, gdb)
                           (available options: yes, no, gdb)
   --enable-prere[=ARG]    Compiles serv in prere mode. (disabled by default)
   --enable-prere[=ARG]    Compiles serv in prere mode. (disabled by default)
@@ -1365,7 +1367,9 @@ Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
   --with-maxconn[=ARG]    optionally set the maximum connections the core can
   --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]
   --with-outputlogin[=ARG]
                           Specify the login-serv output name (defaults to
                           Specify the login-serv output name (defaults to
                           login-server)
                           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
 # debug
 #
 #
@@ -3418,22 +3471,11 @@ fi
 # Check whether --with-maxconn was given.
 # Check whether --with-maxconn was given.
 if test "${with_maxconn+set}" = set; then :
 if test "${with_maxconn+set}" = set; then :
   withval=$with_maxconn;
   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
 fi
 
 
 
 
@@ -5920,6 +5962,19 @@ if test -n "$enable_packetver" ; then
 fi
 fi
 
 
 
 
+#
+# Epoll
+#
+case $have_linux_epoll in
+	"yes")
+		CPPFLAGS="$CPPFLAGS -DSOCKET_EPOLL"
+		;;
+	"no")
+		# default value
+		;;
+esac
+
+
 #
 #
 # Debug
 # 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
 # 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(
 AC_ARG_WITH(
 	[maxconn],
 	[maxconn],
 	AC_HELP_STRING(
 	AC_HELP_STRING(
 		[--with-maxconn@<:@=ARG@:>@],
 		[--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
 		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
 		fi
 	],
 	],
 	[
 	[
-		CPPFLAGS="$CPPFLAGS -DMAXCONN=16384"
+		CPPFLAGS="$CPPFLAGS"
 	]
 	]
 )
 )
 
 
@@ -985,6 +1014,19 @@ if test -n "$enable_packetver" ; then
 fi
 fi
 
 
 
 
+#
+# Epoll
+#
+case $have_linux_epoll in
+	"yes")
+		CPPFLAGS="$CPPFLAGS -DSOCKET_EPOLL"
+		;;
+	"no")
+		# default value
+		;;
+esac
+
+
 #
 #
 # Debug
 # Debug
 #
 #

+ 0 - 227
db/abra_db.txt

@@ -1,227 +0,0 @@
-// Hocus-Pocus (Abracadabra) Castable Skills Database
-//
-// Structure of Database:
-// SkillID,DummyName,ProbabilityPerLvl
-//
-// 01. SkillID                  Skill ID to be casted by hocus pocus.
-// 02. DummyName                Name of the skill (informative, not used by server).
-// 03. ProbabilityPerLvl        Not a rate! Chance at which the skill is selected compared
-//                              with other entries probabilties
-//
-// NOTE:
-// - The skill is picked at random from the entire database and then tested for rate. If it
-//   does not succeed at that rate, another skill is picked and tested. This continues
-//   until a skill succeeds. Abracadabra-specific skills have a different chance to occur
-//   depending on skill level used. All other skills have an equal chance and appear from
-//   level 1 onward.
-// - To remove entry by importing, put "clear" (without quotes) in DummyName
-
-5,Bash,500
-6,Provoke,500
-7,Magnum Break,500
-8,Endure,500
-
-10,Sight,500
-11,Napalm Beat,500
-12,Safety Wall,500
-13,Soul Strike,500
-14,Cold Bolt,500
-15,Frost Diver,500
-16,Stone Curse,500
-17,Fire Ball,500
-18,Fire Wall,500
-19,Fire Bolt,500
-20,Lightning Bolt,500
-21,Thunder Storm,500
-
-24,Ruwach,500
-25,Pneuma,500
-26,Teleport,500
-27,Warp Portal,500
-28,Heal,500
-29,Increase AGI,500
-30,Decrease AGI,500
-31,Aqua Benedicta,500
-32,Signum Crucis,500
-33,Angelus,500
-34,Blessing,500
-35,Cure,500
-
-40,Item Appraisal,500
-41,Vending,500
-42,Mammonite,500
-
-45,Improve Concentration,500
-46,Double Strafe,500
-47,Arrow Shower,500
-
-50,Steal,500
-51,Hiding,500
-52,Envenom,500
-53,Detoxify,500
-
-54,Resurrection,500
-
-56,Pierce,500
-57,Brandish Spear,500
-58,Spear Stab,500
-59,Spear Boomerang,500
-60,TwoHand Quicken,500
-61,Counter Attack,500
-62,Bowling Bash,500
-
-66,Impositio Manus,500
-67,Suffragium,500
-68,Aspersio,500
-69,B.S Sacramenti,500
-70,Sanctuary,500
-71,Slow poison,500
-72,Status Recovery,500
-73,Kyrie Eleison,500
-74,Magnificat,500
-75,Gloria,500
-76,Lex Divina,500
-77,Turn Undead,500
-78,Lex Aeterna,500
-79,Magnus Exorcismus,500
-
-80,Fire Pillar,500
-81,Sightrasher,500
-//82,Fire Ivy,500
-83,Meteor Storm,500
-84,Jupitel Thunder,500
-85,Lord of Vermilion,500
-86,Water Ball,500
-87,Ice Wall,500
-88,Frost Nova,500
-89,Storm Gust,500
-90,Earth spike,500
-91,Heaven's Drive,500
-92,Quagmire,500
-93,Sense,500
-
-//108,Weapon Repair,500
-110,Hammer Fall,500
-111,Adrenaline Rush,500
-112,Weapon Perfection,500
-113,Power-Thrust,500
-114,Maximize Power,500
-
-115,Skid Trap,500
-116,Land Mine,500
-117,Ankle Snare,500
-118,Shockwave Trap,500
-119,Sandman,500
-120,Flasher,500
-121,Freezing Trap,500
-122,Blast Mine,500
-123,Claymore Trap,500
-124,Remove Trap,500
-125,Talkie box,500
-129,Blitz Beat,500
-130,Detect,500
-131,Spring Trap,500
-
-135,Cloaking,500
-136,Sonic Blow,500
-137,Grimtooth,500
-138,Enchant Poison,500
-139,Poison React,500
-140,Venom Dust,500
-141,Venom Splasher,500
-
-//---EP4.0 Skill---
-211,Mug,500
-212,Back Stab,500
-214,Sightless Raid,500
-215,Divest Weapon,500
-216,Divest Shield,500
-217,Divest Armor,500
-218,Divest Helm,500
-219,Snatch,500
-220,Scribble,500
-//221,Piece,500
-222,Remover,500
-
-249,Guard,500
-250,Smite,500
-251,Shield Boomerang,500
-252,Shield Reflect,500
-253,Holy Cross,500
-254,Grand Cross,500
-255,Sacrifice,500
-256,Resistant Souls,500
-257,Defending Aura,500
-258,Spear Quicken,500
-
-261,Summon Spirit Sphere,500
-262,Absorb Spirit Sphere,500
-264,Snap,500
-266,Occult Impact,500
-267,Throw Spirit Sphere,500
-268,Mental Strength,500
-269,Root,500
-270,Fury,500
-271,Asura Strike,500
-//272,Raging Quadruple Blow,500
-//273,Raging Thrust,500
-
-275,Cast Cancel,500
-276,Magic Rod,500
-277,Spell Break,500
-279,Hindsight,500
-280,Endow Blaze,500
-281,Endow Tsunami,500
-282,Endow Tornado,500
-283,Endow Quake,500
-285,Volcano,500
-286,Deluge,500
-287,Whirlwind,500
-288,Magnetic Earth,500
-289,Dispel,500
-
-// Abracadabra Derivation Skill
-291,Monocell,250:500:750:1000:1250:1200:1750:2000:2250:2500
-292,Class Change,0:0:0:0:10:10:20:20:30:30
-293,Summon Monster,100:200:300:400:500:600:700:800:900:1000
-294,Grampus Morph,0:0:0:0:0:0:0:10:50:100
-295,Grim Reaper,50:100:150:200:250:300:350:400:450:500
-//296,Gold Digger,50:100:150:200:250:300:350:400:450:500
-//297,Beastly Hypnosis,50:100:150:200:250:300:350:400:450:500
-298,Questioning,1000:800:600:400:200:0:0:0:0:0
-299,Gravity,0:0:0:0:0:0:0:20:50:100
-//300,Leveling,0:0:0:0:0:0:0:0:10:50
-301,Suicide,0:0:0:0:0:0:0:10:50:100
-302,Rejuvination,0:0:0:0:0:0:20:50:100:200
-303,Coma,0:0:0:0:100:200:300:400:500:600
-
-// Dancer / Bard commonness
-//304,Amp,500
-//305,Encore,500
-//306,Lullaby,500
-//307,Mental Sensing,500
-//308,Down Tempo,500
-//309,Battle Theme,500
-//310,Harmonic Lick,500
-//311,Classical Pluck,500
-//312,Power Chord,500
-//313,Acoustic Rhythm,500
-//314,Ragnarok,500
-
-// Bard skill
-316,Melody Strike,500
-//317,Unchained Serenade,500
-318,Unbarring Octave,500
-//319,Perfect Tablature,500
-//320,Impressive Riff,500
-//321,Magic Strings,500
-//322,Song of Lutie,500
-
-// Dancer skill
-324,Slinging Arrow,500
-//325,Hip Shaker,500
-326,Dazzler,500
-//327,Focus Ballet,500
-//328,Slow Grace,500
-//329,Lady Luck,500
-//330,Gypsy's Kiss,500

+ 326 - 0
db/abra_db.yml

@@ -0,0 +1,326 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2019 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Abracadabra Database
+###########################################################################
+#
+# Abracadabra Settings
+#
+###########################################################################
+# - Skill             Skill to be casted by Abracadabra.
+#   Probability:      Probability of skill compared to others in database (1 = 0.01%, 10000 = 100%). (Default: 500)
+#     - Level         Skill level.
+#       Probability   Probability at specific skill level (1 = 0.01%, 10000 = 100%). (Default: 0)
+###########################################################################
+
+Header:
+  Type: ABRA_DB
+  Version: 1
+
+Body:
+  - Skill: SM_BASH
+  - Skill: SM_PROVOKE
+  - Skill: SM_MAGNUM
+  - Skill: SM_ENDURE
+  - Skill: MG_SIGHT
+  - Skill: MG_NAPALMBEAT
+  - Skill: MG_SAFETYWALL
+  - Skill: MG_SOULSTRIKE
+  - Skill: MG_COLDBOLT
+  - Skill: MG_FROSTDIVER
+  - Skill: MG_STONECURSE
+  - Skill: MG_FIREBALL
+  - Skill: MG_FIREWALL
+  - Skill: MG_FIREBOLT
+  - Skill: MG_LIGHTNINGBOLT
+  - Skill: MG_THUNDERSTORM
+  - Skill: AL_RUWACH
+  - Skill: AL_PNEUMA
+  - Skill: AL_TELEPORT
+  - Skill: AL_WARP
+  - Skill: AL_HEAL
+  - Skill: AL_INCAGI
+  - Skill: AL_DECAGI
+  - Skill: AL_HOLYWATER
+  - Skill: AL_CRUCIS
+  - Skill: AL_ANGELUS
+  - Skill: AL_BLESSING
+  - Skill: AL_CURE
+  - Skill: MC_IDENTIFY
+  - Skill: MC_VENDING
+  - Skill: MC_MAMMONITE
+  - Skill: AC_CONCENTRATION
+  - Skill: AC_DOUBLE
+  - Skill: AC_SHOWER
+  - Skill: TF_STEAL
+  - Skill: TF_HIDING
+  - Skill: TF_POISON
+  - Skill: TF_DETOXIFY
+  - Skill: ALL_RESURRECTION
+  - Skill: KN_PIERCE
+  - Skill: KN_BRANDISHSPEAR
+  - Skill: KN_SPEARSTAB
+  - Skill: KN_SPEARBOOMERANG
+  - Skill: KN_TWOHANDQUICKEN
+  - Skill: KN_AUTOCOUNTER
+  - Skill: KN_BOWLINGBASH
+  - Skill: PR_IMPOSITIO
+  - Skill: PR_SUFFRAGIUM
+  - Skill: PR_ASPERSIO
+  - Skill: PR_BENEDICTIO
+  - Skill: PR_SANCTUARY
+  - Skill: PR_SLOWPOISON
+  - Skill: PR_STRECOVERY
+  - Skill: PR_KYRIE
+  - Skill: PR_MAGNIFICAT
+  - Skill: PR_GLORIA
+  - Skill: PR_LEXDIVINA
+  - Skill: PR_TURNUNDEAD
+  - Skill: PR_LEXAETERNA
+  - Skill: PR_MAGNUS
+  - Skill: WZ_FIREPILLAR
+  - Skill: WZ_SIGHTRASHER
+  - Skill: WZ_METEOR
+  - Skill: WZ_JUPITEL
+  - Skill: WZ_VERMILION
+  - Skill: WZ_WATERBALL
+  - Skill: WZ_ICEWALL
+  - Skill: WZ_FROSTNOVA
+  - Skill: WZ_STORMGUST
+  - Skill: WZ_EARTHSPIKE
+  - Skill: WZ_HEAVENDRIVE
+  - Skill: WZ_QUAGMIRE
+  - Skill: WZ_ESTIMATION
+  - Skill: BS_HAMMERFALL
+  - Skill: BS_ADRENALINE
+  - Skill: BS_WEAPONPERFECT
+  - Skill: BS_OVERTHRUST
+  - Skill: BS_MAXIMIZE
+  - Skill: HT_SKIDTRAP
+  - Skill: HT_LANDMINE
+  - Skill: HT_ANKLESNARE
+  - Skill: HT_SHOCKWAVE
+  - Skill: HT_SANDMAN
+  - Skill: HT_FLASHER
+  - Skill: HT_FREEZINGTRAP
+  - Skill: HT_BLASTMINE
+  - Skill: HT_CLAYMORETRAP
+  - Skill: HT_REMOVETRAP
+  - Skill: HT_TALKIEBOX
+  - Skill: HT_BLITZBEAT
+  - Skill: HT_DETECTING
+  - Skill: HT_SPRINGTRAP
+  - Skill: AS_CLOAKING
+  - Skill: AS_SONICBLOW
+  - Skill: AS_GRIMTOOTH
+  - Skill: AS_ENCHANTPOISON
+  - Skill: AS_POISONREACT
+  - Skill: AS_VENOMDUST
+  - Skill: AS_SPLASHER
+  - Skill: RG_STEALCOIN
+  - Skill: RG_BACKSTAP
+  - Skill: RG_RAID
+  - Skill: RG_STRIPWEAPON
+  - Skill: RG_STRIPSHIELD
+  - Skill: RG_STRIPARMOR
+  - Skill: RG_STRIPHELM
+  - Skill: RG_INTIMIDATE
+  - Skill: RG_GRAFFITI
+  - Skill: RG_CLEANER
+  - Skill: CR_AUTOGUARD
+  - Skill: CR_SHIELDCHARGE
+  - Skill: CR_SHIELDBOOMERANG
+  - Skill: CR_REFLECTSHIELD
+  - Skill: CR_HOLYCROSS
+  - Skill: CR_GRANDCROSS
+  - Skill: CR_DEVOTION
+  - Skill: CR_PROVIDENCE
+  - Skill: CR_DEFENDER
+  - Skill: CR_SPEARQUICKEN
+  - Skill: MO_CALLSPIRITS
+  - Skill: MO_ABSORBSPIRITS
+  - Skill: MO_BODYRELOCATION
+  - Skill: MO_INVESTIGATE
+  - Skill: MO_FINGEROFFENSIVE
+  - Skill: MO_STEELBODY
+  - Skill: MO_BLADESTOP
+  - Skill: MO_EXPLOSIONSPIRITS
+  - Skill: MO_EXTREMITYFIST
+  - Skill: SA_CASTCANCEL
+  - Skill: SA_MAGICROD
+  - Skill: SA_SPELLBREAKER
+  - Skill: SA_AUTOSPELL
+  - Skill: SA_FLAMELAUNCHER
+  - Skill: SA_FROSTWEAPON
+  - Skill: SA_LIGHTNINGLOADER
+  - Skill: SA_SEISMICWEAPON
+  - Skill: SA_VOLCANO
+  - Skill: SA_DELUGE
+  - Skill: SA_VIOLENTGALE
+  - Skill: SA_LANDPROTECTOR
+  - Skill: SA_DISPELL
+  - Skill: SA_MONOCELL
+    Probability:
+      - Level: 1
+        Probability: 250
+      - Level: 2
+        Probability: 500
+      - Level: 3
+        Probability: 750
+      - Level: 4
+        Probability: 1000
+      - Level: 5
+        Probability: 1250
+      - Level: 6
+        Probability: 1200
+      - Level: 7
+        Probability: 1750
+      - Level: 8
+        Probability: 2000
+      - Level: 9
+        Probability: 2250
+      - Level: 10
+        Probability: 2500
+  - Skill: SA_CLASSCHANGE
+    Probability:
+      - Level: 5
+        Probability: 10
+      - Level: 6
+        Probability: 10
+      - Level: 7
+        Probability: 20
+      - Level: 8
+        Probability: 20
+      - Level: 9
+        Probability: 30
+      - Level: 10
+        Probability: 30
+  - Skill: SA_SUMMONMONSTER
+    Probability:
+      - Level: 1
+        Probability: 100
+      - Level: 2
+        Probability: 200
+      - Level: 3
+        Probability: 300
+      - Level: 4
+        Probability: 400
+      - Level: 5
+        Probability: 500
+      - Level: 6
+        Probability: 600
+      - Level: 7
+        Probability: 700
+      - Level: 8
+        Probability: 800
+      - Level: 9
+        Probability: 900
+      - Level: 10
+        Probability: 1000
+  - Skill: SA_REVERSEORCISH
+    Probability:
+      - Level: 8
+        Probability: 10
+      - Level: 9
+        Probability: 50
+      - Level: 10
+        Probability: 100
+  - Skill: SA_DEATH
+    Probability:
+      - Level: 1
+        Probability: 50
+      - Level: 2
+        Probability: 100
+      - Level: 3
+        Probability: 150
+      - Level: 4
+        Probability: 200
+      - Level: 5
+        Probability: 250
+      - Level: 6
+        Probability: 300
+      - Level: 7
+        Probability: 350
+      - Level: 8
+        Probability: 400
+      - Level: 9
+        Probability: 450
+      - Level: 10
+        Probability: 500
+  - Skill: SA_QUESTION
+    Probability:
+      - Level: 1
+        Probability: 1000
+      - Level: 2
+        Probability: 800
+      - Level: 3
+        Probability: 600
+      - Level: 4
+        Probability: 400
+      - Level: 5
+        Probability: 200
+  - Skill: SA_GRAVITY
+    Probability:
+      - Level: 8
+        Probability: 20
+      - Level: 9
+        Probability: 50
+      - Level: 10
+        Probability: 100
+  - Skill: SA_INSTANTDEATH
+    Probability:
+      - Level: 8
+        Probability: 10
+      - Level: 9
+        Probability: 50
+      - Level: 10
+        Probability: 100
+  - Skill: SA_FULLRECOVERY
+    Probability:
+      - Level: 7
+        Probability: 20
+      - Level: 8
+        Probability: 50
+      - Level: 9
+        Probability: 100
+      - Level: 10
+        Probability: 200
+  - Skill: SA_COMA
+    Probability:
+      - Level: 5
+        Probability: 100
+      - Level: 6
+        Probability: 200
+      - Level: 7
+        Probability: 300
+      - Level: 8
+        Probability: 400
+      - Level: 9
+        Probability: 500
+      - Level: 10
+        Probability: 600
+  - Skill: BA_MUSICALSTRIKE
+  - Skill: BA_FROSTJOKER
+  - Skill: DC_THROWARROW
+  - Skill: DC_SCREAM
+
+Footer:
+  Imports:
+  - Path: db/pre-re/abra_db.yml
+    Mode: Prerenewal
+  - Path: db/import/abra_db.yml

+ 90 - 0
db/achievement_db.yml

@@ -0,0 +1,90 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2017 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Renewal Achievement Database
+###########################################################################
+#
+# Achievement Settings
+#
+###########################################################################
+# ID - Unique achievement ID.
+###########################################################################
+# Group - Achievement group type. Each achievement type calls a specific
+# objective check.
+# Valid groups:
+#  AG_ADD_FRIEND
+#  AG_ADVENTURE
+#  AG_BABY
+#  AG_BATTLE
+#  AG_CHATTING
+#  AG_CHATTING_COUNT
+#  AG_CHATTING_CREATE
+#  AG_CHATTING_DYING
+#  AG_EAT
+#  AG_GET_ITEM
+#  AG_GET_ZENY
+#  AG_GOAL_ACHIEVE
+#  AG_GOAL_LEVEL
+#  AG_GOAL_STATUS
+#  AG_HEAR
+#  AG_JOB_CHANGE
+#  AG_MARRY
+#  AG_PARTY
+#  AG_ENCHANT_FAIL
+#  AG_ENCHANT_SUCCESS
+#  AG_SEE
+#  AG_SPEND_ZENY
+#  AG_TAMING
+###########################################################################
+# Name - Achievement name. Used when sending rewards through RODEX.
+###########################################################################
+# Target - A list of monster ID and count values that the achievement
+# requires. The target count can also be used for achievements that keep
+# a counter while not being related to monster kills.
+# Capped at MAX_ACHIEVEMENT_OBJECTIVES.
+###########################################################################
+# Condition - A conditional statement that must be met for the achievement
+# to be considered complete.
+###########################################################################
+# Map - A map name that is used for the AG_CHATTING type which increments
+# the counter based on the player's map.
+###########################################################################
+# Dependent: - A list of achievement IDs that need to be completed before
+# this achievement is considered complete.
+###########################################################################
+# Reward - A list of rewards that are given on completion. All fields are
+# optional.
+#   ItemID: Item ID
+#   Amount:  Amount of Item ID (default 1)
+#   Script: Bonus Script
+#   TitleID: Title ID
+###########################################################################
+# Score - Achievement points that are given on completion.
+###########################################################################
+
+Header:
+  Type: ACHIEVEMENT_DB
+  Version: 1
+
+Footer:
+  Imports:
+  - Path: db/pre-re/achievement_db.yml
+    Mode: Prerenewal
+  - Path: db/re/achievement_db.yml
+    Mode: Renewal
+  - Path: db/import/achievement_db.yml

+ 40 - 0
db/achievement_level_db.yml

@@ -0,0 +1,40 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2019 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Achievement Level Database
+###########################################################################
+#
+# Achievement Level Settings
+#
+###########################################################################
+# Level - Achievement Level
+###########################################################################
+# Points - Required total scoring points to reach this level.
+###########################################################################
+
+Header:
+  Type: ACHIEVEMENT_LEVEL_DB
+  Version: 1
+
+Footer:
+  Imports:
+  - Path: db/pre-re/achievement_level_db.yml
+    Mode: Prerenewal
+  - Path: db/re/achievement_level_db.yml
+    Mode: Renewal
+  - Path: db/import/achievement_level_db.yml

+ 42 - 0
db/attendance.yml

@@ -0,0 +1,42 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2019 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Attendance Database
+###########################################################################
+#
+# Attendance Settings
+#
+###########################################################################
+# - Start                   Start date.
+#   End                     End date.
+#   Rewards:                List of rewards for each day.
+#     - Day                 Reward day.
+#       ItemId              Item ID.
+###########################################################################
+
+Header:
+  Type: ATTENDANCE_DB
+  Version: 1
+  
+Footer:
+  Imports:
+  - Path: db/pre-re/attendance.yml
+    Mode: Prerenewal
+  - Path: db/re/attendance.yml
+    Mode: Renewal
+  - Path: db/import/attendance.yml

+ 211 - 0
db/battleground_db.yml

@@ -0,0 +1,211 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2019 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Battleground Queue Database
+###########################################################################
+#
+# Battleground Queue Settings
+#
+###########################################################################
+# - Id                Unique ID for the battleground type.
+#   Name              Name of the battleground. Must be the exact same as in the client for players to be able to join.
+#   MinPlayers        Minimum number of players required on each team. (Default: 1)
+#   MaxPlayers        Maximum number of players on each team. (Default: MAX_BG_MEMBERS / 2)
+#   MinLevel          Minimum level required to join the battleground. (Default: 1)
+#   MaxLevel          Maximum level to join the battleground. (Default: MAX_LEVEL value)
+#   Deserter          Amount of time in seconds a player is marked deserter. (Default: 600)
+#   StartDelay        Amount of time in seconds once a queue is filled before players are warped. (Default: 0)
+#   Join:             Which application type is accepted. The entryqueuelist.lub can visually disable these options.
+#     Solo            Able to join a queue as an individual. (Default: true)
+#     Party           Able to join a queue as a party. (Default: true)
+#     Guild           Able to join a queue as a guild. (Default: true)
+#   JobRestrictions   List of jobs that are unable to join the battleground.
+#   Locations:        Battleground location settings.
+#     - Map           The map on which the battleground will be played.
+#       StartEvent    NPC event triggered when the battleground starts.
+#       TeamA:        TeamA settings.
+#         RespawnX    X coordinate for warping on death.
+#         RespawnY    Y coordinate for warping on death.
+#         DeathEvent  NPC event triggered when a player dies.
+#         QuitEvent   NPC event triggered when a player quits.
+#         ActiveEvent NPC event triggered when a player joints an active battleground.
+#         Variable    Name of BG ID variable used in the battleground script.
+#       TeamB:        TeamB settings.
+#         RespawnX    X coordinate for warping on death.
+#         RespawnY    Y coordinate for warping on death.
+#         DeathEvent  NPC event triggered when a player dies.
+#         QuitEvent   NPC event triggered when a player quits.
+#         ActiveEvent NPC event triggered when a player joints an active battleground.
+#         Variable    Name of BG ID variable used in the battleground script.
+###########################################################################
+
+Header:
+  Type: BATTLEGROUND_DB
+  Version: 1
+
+Body:
+  - Id: 1
+    Name: Tierra Gorge
+    MinPlayers: 6
+    MinLevel: 80
+    JobRestrictions:
+      Novice: true
+      SuperNovice: true
+      Novice_High: true
+      Baby: true
+      Super_Baby: true
+      Super_Novice_E: true
+      Super_Baby_E: true
+    Locations:
+      - Map: bat_a01
+        StartEvent: start#bat_a01::OnReadyCheck
+        TeamA:
+          RespawnX: 50
+          RespawnY: 374
+          QuitEvent: start#bat_a01::OnGuillaumeQuit
+          ActiveEvent: start#bat_a01::OnGuillaumeActive
+          Variable: $@TierraBG1_id1
+        TeamB:
+          RespawnX: 42
+          RespawnY: 16
+          QuitEvent: start#bat_a01::OnCroixQuit
+          ActiveEvent: start#bat_a01::OnCroixActive
+          Variable: $@TierraBG1_id2
+      - Map: bat_a02
+        StartEvent: start#bat_a02::OnReadyCheck
+        TeamA:
+          RespawnX: 50
+          RespawnY: 374
+          QuitEvent: start#bat_a02::OnGuillaumeQuit
+          ActiveEvent: start#bat_a02::OnGuillaumeActive
+          Variable: $@TierraBG2_id1
+        TeamB:
+          RespawnX: 42
+          RespawnY: 16
+          QuitEvent: start#bat_a02::OnCroixQuit
+          ActiveEvent: start#bat_a02::OnCroixActive
+          Variable: $@TierraBG2_id2
+  - Id: 2
+    Name: Flavius
+    MinPlayers: 6
+    MinLevel: 80
+    JobRestrictions:
+      Novice: true
+      SuperNovice: true
+      Novice_High: true
+      Baby: true
+      Super_Baby: true
+      Super_Novice_E: true
+      Super_Baby_E: true
+    Locations:
+      - Map: bat_b01
+        StartEvent: start#bat_b01::OnReadyCheck
+        TeamA:
+          RespawnX: 10
+          RespawnY: 290
+          QuitEvent: start#bat_b01::OnGuillaumeQuit
+          ActiveEvent: start#bat_b01::OnGuillaumeActive
+          Variable: $@FlaviusBG1_id1
+        TeamB:
+          RespawnX: 390
+          RespawnY: 10
+          QuitEvent: start#bat_b01::OnCroixQuit
+          ActiveEvent: start#bat_b01::OnCroixActive
+          Variable: $@FlaviusBG1_id2
+      - Map: bat_b02
+        StartEvent: start#bat_b02::OnReadyCheck
+        TeamA:
+          RespawnX: 10
+          RespawnY: 290
+          QuitEvent: start#bat_b02::OnGuillaumeQuit
+          ActiveEvent: start#bat_b02::OnGuillaumeActive
+          Variable: $@FlaviusBG2_id1
+        TeamB:
+          RespawnX: 390
+          RespawnY: 10
+          QuitEvent: start#bat_b02::OnCroixQuit
+          ActiveEvent: start#bat_b02::OnCroixActive
+          Variable: $@FlaviusBG2_id2
+  - Id: 3
+    Name: KVM (Level 80 and up)
+    MinPlayers: 5
+    MinLevel: 80
+    Locations:
+      - Map: bat_c01
+        StartEvent: KvM01_BG::OnStart
+        TeamA:
+          RespawnX: 52
+          RespawnY: 129
+          DeathEvent: KvM01_BG::OnGuillaumeDie
+          QuitEvent: KvM01_BG::OnGuillaumeQuit
+          ActiveEvent: KvM01_BG::OnGuillaumeActive
+          Variable: $@KvM01BG_id1
+        TeamB:
+          RespawnX: 147
+          RespawnY: 55
+          DeathEvent: KvM01_BG::OnCroixDie
+          QuitEvent: KvM01_BG::OnCroixQuit
+          ActiveEvent: KvM01_BG::OnCroixActive
+          Variable: $@KvM01BG_id2
+  - Id: 4
+    Name: KVM (Level 60~79)
+    MinPlayers: 5
+    MinLevel: 60
+    MaxLevel: 79
+    Locations:
+      - Map: bat_c02
+        StartEvent: KvM02_BG::OnStart
+        TeamA:
+          RespawnX: 52
+          RespawnY: 129
+          DeathEvent: KvM02_BG::OnGuillaumeDie
+          QuitEvent: KvM02_BG::OnGuillaumeQuit
+          ActiveEvent: KvM02_BG::OnGuillaumeActive
+          Variable: $@KvM02BG_id1
+        TeamB:
+          RespawnX: 147
+          RespawnY: 55
+          DeathEvent: KvM02_BG::OnCroixDie
+          QuitEvent: KvM02_BG::OnCroixQuit
+          ActiveEvent: KvM02_BG::OnCroixActive
+          Variable: $@KvM02BG_id2
+  - Id: 5
+    Name: KVM (Level 59 and below
+    MinPlayers: 5
+    MaxLevel: 59
+    Locations:
+      - Map: bat_c03
+        StartEvent: KvM03_BG::OnStart
+        TeamA:
+          RespawnX: 52
+          RespawnY: 129
+          DeathEvent: KvM03_BG::OnGuillaumeDie
+          QuitEvent: KvM03_BG::OnGuillaumeQuit
+          ActiveEvent: KvM03_BG::OnGuillaumeActive
+          Variable: $@KvM03BG_id1
+        TeamB:
+          RespawnX: 147
+          RespawnY: 55
+          DeathEvent: KvM03_BG::OnCroixDie
+          QuitEvent: KvM03_BG::OnCroixQuit
+          ActiveEvent: KvM03_BG::OnCroixActive
+          Variable: $@KvM03BG_id2
+
+Footer:
+  Imports:
+  - Path: db/import/battleground_db.yml

+ 42 - 5
db/const.txt

@@ -48,7 +48,7 @@ RDMOPT_ATTR_TOLERACE_SAINT	31
 RDMOPT_ATTR_TOLERACE_DARKNESS	32
 RDMOPT_ATTR_TOLERACE_DARKNESS	32
 RDMOPT_ATTR_TOLERACE_TELEKINESIS	33
 RDMOPT_ATTR_TOLERACE_TELEKINESIS	33
 RDMOPT_ATTR_TOLERACE_UNDEAD	34
 RDMOPT_ATTR_TOLERACE_UNDEAD	34
-RDMOPT_ATTR_TOLERACE_ALL	35
+RDMOPT_ATTR_TOLERACE_ALLBUTNOTHING	35
 RDMOPT_DAMAGE_PROPERTY_NOTHING_USER	36
 RDMOPT_DAMAGE_PROPERTY_NOTHING_USER	36
 RDMOPT_DAMAGE_PROPERTY_NOTHING_TARGET	37
 RDMOPT_DAMAGE_PROPERTY_NOTHING_TARGET	37
 RDMOPT_DAMAGE_PROPERTY_WATER_USER	38
 RDMOPT_DAMAGE_PROPERTY_WATER_USER	38
@@ -99,7 +99,7 @@ RDMOPT_BODY_ATTR_SAINT	82
 RDMOPT_BODY_ATTR_DARKNESS	83
 RDMOPT_BODY_ATTR_DARKNESS	83
 RDMOPT_BODY_ATTR_TELEKINESIS	84
 RDMOPT_BODY_ATTR_TELEKINESIS	84
 RDMOPT_BODY_ATTR_UNDEAD	85
 RDMOPT_BODY_ATTR_UNDEAD	85
-RDMOPT_BODY_ATTR_ALL	86
+//RDMOPT_BODY_ATTR_ALL	86
 RDMOPT_RACE_TOLERACE_NOTHING	87
 RDMOPT_RACE_TOLERACE_NOTHING	87
 RDMOPT_RACE_TOLERACE_UNDEAD	88
 RDMOPT_RACE_TOLERACE_UNDEAD	88
 RDMOPT_RACE_TOLERACE_ANIMAL	89
 RDMOPT_RACE_TOLERACE_ANIMAL	89
@@ -186,8 +186,8 @@ RDMOPT_HEAL_MODIFY_PERCENT	169
 RDMOPT_DEC_SPELL_CAST_TIME	170
 RDMOPT_DEC_SPELL_CAST_TIME	170
 RDMOPT_DEC_SPELL_DELAY_TIME	171
 RDMOPT_DEC_SPELL_DELAY_TIME	171
 RDMOPT_DEC_SP_CONSUMPTION	172
 RDMOPT_DEC_SP_CONSUMPTION	172
-RDMOPT_HP_DRAIN	173
-RDMOPT_SP_DRAIN	174
+//RDMOPT_HP_DRAIN	173
+//RDMOPT_SP_DRAIN	174
 RDMOPT_WEAPON_ATTR_NOTHING	175
 RDMOPT_WEAPON_ATTR_NOTHING	175
 RDMOPT_WEAPON_ATTR_WATER	176
 RDMOPT_WEAPON_ATTR_WATER	176
 RDMOPT_WEAPON_ATTR_GROUND	177
 RDMOPT_WEAPON_ATTR_GROUND	177
@@ -206,7 +206,44 @@ RDMOPT_MDAMAGE_SIZE_LARGE_TARGET	189
 RDMOPT_MDAMAGE_SIZE_SMALL_USER	190
 RDMOPT_MDAMAGE_SIZE_SMALL_USER	190
 RDMOPT_MDAMAGE_SIZE_MIDIUM_USER	191
 RDMOPT_MDAMAGE_SIZE_MIDIUM_USER	191
 RDMOPT_MDAMAGE_SIZE_LARGE_USER	192
 RDMOPT_MDAMAGE_SIZE_LARGE_USER	192
-//RDMOPT_ATTR_TOLERACE_ALL	193
+RDMOPT_ATTR_TOLERACE_ALL	193
+RDMOPT_RACE_WEAPON_TOLERACE_NOTHING	194
+RDMOPT_RACE_WEAPON_TOLERACE_UNDEAD	195
+RDMOPT_RACE_WEAPON_TOLERACE_ANIMAL	196
+RDMOPT_RACE_WEAPON_TOLERACE_PLANT	197
+RDMOPT_RACE_WEAPON_TOLERACE_INSECT	198
+RDMOPT_RACE_WEAPON_TOLERACE_FISHS	199
+RDMOPT_RACE_WEAPON_TOLERACE_DEVIL	200
+RDMOPT_RACE_WEAPON_TOLERACE_HUMAN	201
+RDMOPT_RACE_WEAPON_TOLERACE_ANGEL	202
+RDMOPT_RACE_WEAPON_TOLERACE_DRAGON	203
+//RDMOPT_RANGE_WEAPON_ATTACK_DAMAGE_TARGET	204
+//RDMOPT_RANGE_WEAPON_ATTACK_DAMAGE_USER	205
+RDMOPT_RACE_TOLERACE_PLAYER_HUMAN	206
+RDMOPT_RACE_TOLERACE_PLAYER_DORAM	207
+RDMOPT_RACE_DAMAGE_PLAYER_HUMAN	208
+RDMOPT_RACE_DAMAGE_PLAYER_DORAM	209
+RDMOPT_RACE_MDAMAGE_PLAYER_HUMAN	210
+RDMOPT_RACE_MDAMAGE_PLAYER_DORAM	211
+RDMOPT_RACE_CRI_PERCENT_PLAYER_HUMAN	212
+RDMOPT_RACE_CRI_PERCENT_PLAYER_DORAM	213
+RDMOPT_RACE_IGNORE_DEF_PERCENT_PLAYER_HUMAN	214
+RDMOPT_RACE_IGNORE_DEF_PERCENT_PLAYER_DORAM	215
+RDMOPT_RACE_IGNORE_MDEF_PERCENT_PLAYER_HUMAN	216
+RDMOPT_RACE_IGNORE_MDEF_PERCENT_PLAYER_DORAM	217
+//RDMOPT_REFLECT_DAMAGE_PERCENT	218
+RDMOPT_MELEE_ATTACK_DAMAGE_TARGET	219
+RDMOPT_MELEE_ATTACK_DAMAGE_USER	220
+//RDMOPT_ADDSKILLMDAMAGE_NOTHING	221
+//RDMOPT_ADDSKILLMDAMAGE_WATER	222
+//RDMOPT_ADDSKILLMDAMAGE_GROUND	223
+//RDMOPT_ADDSKILLMDAMAGE_FIRE	224
+//RDMOPT_ADDSKILLMDAMAGE_WIND	225
+//RDMOPT_ADDSKILLMDAMAGE_POISON	226
+//RDMOPT_ADDSKILLMDAMAGE_SAINT	227
+//RDMOPT_ADDSKILLMDAMAGE_DARKNESS	228
+//RDMOPT_ADDSKILLMDAMAGE_TELEKINESIS	229
+//RDMOPT_ADDSKILLMDAMAGE_UNDEAD	230
 
 
 SWORDCLAN	1
 SWORDCLAN	1
 ARCWANDCLAN	2
 ARCWANDCLAN	2

+ 0 - 30
db/guild_skill_tree.txt

@@ -1,30 +0,0 @@
-// Guild Skill Tree Database
-//
-// Structure of Database:
-// SkillID,MaxLv,Prerequisite SkillID1,Prerequisite SkillLv1,PrereqSkillID2,PrereqSkillLv2,PrereqSkillID3,PrereqSkillLv3,PrereqSkillID4,PrereqSkillLv4,PrereqSkillID5,PrereqSkillLv5	//GUILD SKILLNAME#Skill Name#
-//
-// 01. SkillID                  Skill ID of the guild skill.
-// 02. MaxLv                    Maximum level of the guild skill.
-// 03. Prerequisite SkillID     Guild skill required for the skill to become available.
-// 04. Prerequisite SkillLv     Level of the required guild skill.
-// ...
-//
-// NOTE: MAX_GUILD_SKILL_REQUIRE (typically 5) ID/Lv pairs must be specified.
-
-
-10000,1,0,0,0,0,0,0,0,0,0,0	//GD_APPROVAL#Official Guild Approval#
-10001,1,10000,1,0,0,0,0,0,0,0,0	//GD_KAFRACONTRACT#Contract with Kafra#
-10002,1,10000,1,0,0,0,0,0,0,0,0	//GD_GUARDRESEARCH#Guardian Research#
-10003,3,0,0,0,0,0,0,0,0,0,0	//GD_GUARDUP#Strengthen Guardians#
-10004,10,0,0,0,0,0,0,0,0,0,0	//GD_EXTENSION#Guild Extension#
-10005,0,0,0,0,0,0,0,0,0,0,0	//GD_GLORYGUILD#Guilds Glory#
-10006,5,0,0,0,0,0,0,0,0,0,0	//GD_LEADERSHIP#Great Leadership#
-10007,5,0,0,0,0,0,0,0,0,0,0	//GD_GLORYWOUNDS#Glorious Wounds#
-10008,5,10007,1,0,0,0,0,0,0,0,0	//GD_SOULCOLD#Cold Heart#
-10009,5,10006,1,0,0,0,0,0,0,0,0	//GD_HAWKEYES#Sharp Gaze#
-10010,1,10000,1,10004,2,0,0,0,0,0,0	//GD_BATTLEORDER#Battle Command#
-10011,3,10000,1,10004,5,10010,1,0,0,0,0	//GD_REGENERATION#Regeneration#
-10012,1,10011,1,0,0,0,0,0,0,0,0	//GD_RESTORE#Restoration#
-10013,1,10000,1,10002,1,10004,5,10010,1,10011,1	//GD_EMERGENCYCALL#Urgent Call#
-10014,1,0,0,0,0,0,0,0,0,0,0	//GD_DEVELOPMENT#Permanent Development#
-10016,5,0,0,0,0,0,0,0,0,0,0	//GD_GUILD_STORAGE#Guild Storage Expansion#

+ 44 - 0
db/guild_skill_tree.yml

@@ -0,0 +1,44 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2019 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Guild Skill Database
+###########################################################################
+#
+# Guild Skill Settings
+#
+###########################################################################
+# Id - Skill ID of the guild skill.
+###########################################################################
+# MaxLevel - Maximum level of the guild skill.
+###########################################################################
+# Required - A list of required skills for the skill to become available.
+#   Id: Skill ID of the required guild skill.
+#   Level: Level of the required guild skill.
+###########################################################################
+
+Header:
+  Type: GUILD_SKILL_TREE_DB
+  Version: 1
+
+Footer:
+  Imports:
+  - Path: db/pre-re/guild_skill_tree.yml
+    Mode: Prerenewal
+  - Path: db/re/guild_skill_tree.yml
+    Mode: Renewal
+  - Path: db/import/guild_skill_tree.yml

+ 10 - 10
db/homun_skill_tree.txt

@@ -89,31 +89,31 @@
 //Eira
 //Eira
 6048,8022,5,128,0,0,0,0,0,0,0,0,0,0,0 	//MH_LIGHT_OF_REGENE
 6048,8022,5,128,0,0,0,0,0,0,0,0,0,0,0 	//MH_LIGHT_OF_REGENE
 6048,8023,5,114,0,0,0,0,0,0,0,0,0,0,0	//MH_OVERED_BOOST
 6048,8023,5,114,0,0,0,0,0,0,0,0,0,0,0	//MH_OVERED_BOOST
-6048,8024,5,106,0,0,0,0,0,0,0,0,0,0,0	//MH_ERASER_CUTTER
-6048,8025,5,121,0,0,0,0,0,0,0,0,0,0,0 	//MH_XENO_SLASHER
+6048,8024,10,106,0,0,0,0,0,0,0,0,0,0,0	//MH_ERASER_CUTTER
+6048,8025,10,121,0,0,0,0,0,0,0,0,0,0,0 	//MH_XENO_SLASHER
 6048,8026,5,137,0,0,0,0,0,0,0,0,0,0,0 	//MH_SILENT_BREEZE
 6048,8026,5,137,0,0,0,0,0,0,0,0,0,0,0 	//MH_SILENT_BREEZE
 //Bayeri
 //Bayeri
-6049,8031,5,105,0,0,0,0,0,0,0,0,0,0,0 	//MH_STAHL_HORN
+6049,8031,10,105,0,0,0,0,0,0,0,0,0,0,0 	//MH_STAHL_HORN
 6049,8032,5,112,0,0,0,0,0,0,0,0,0,0,0 	//MH_GOLDENE_FERSE
 6049,8032,5,112,0,0,0,0,0,0,0,0,0,0,0 	//MH_GOLDENE_FERSE
 6049,8033,5,121,0,0,0,0,0,0,0,0,0,0,0 	//MH_STEINWAND
 6049,8033,5,121,0,0,0,0,0,0,0,0,0,0,0 	//MH_STEINWAND
-6049,8034,5,138,0,0,0,0,0,0,0,0,0,0,0	//MH_HEILIGE_STANGE
+6049,8034,10,138,0,0,0,0,0,0,0,0,0,0,0	//MH_HEILIGE_STANGE
 6049,8035,5,130,0,0,0,0,0,0,0,0,0,0,0	//MH_ANGRIFFS_MODUS
 6049,8035,5,130,0,0,0,0,0,0,0,0,0,0,0	//MH_ANGRIFFS_MODUS
 //Sera
 //Sera
 6050,8018,5,132,0,0,0,0,0,0,0,0,0,0,0 	//MH_SUMMON_LEGION
 6050,8018,5,132,0,0,0,0,0,0,0,0,0,0,0 	//MH_SUMMON_LEGION
-6050,8019,5,105,0,0,0,0,0,0,0,0,0,0,0 	//MH_NEEDLE_OF_PARALYZE
+6050,8019,10,105,0,0,0,0,0,0,0,0,0,0,0 	//MH_NEEDLE_OF_PARALYZE
 6050,8020,5,116,0,0,0,0,0,0,0,0,0,0,0 	//MH_POISON_MIST
 6050,8020,5,116,0,0,0,0,0,0,0,0,0,0,0 	//MH_POISON_MIST
-6050,8021,5,123,0,0,0,0,0,0,0,0,0,0,0 	//MH_PAIN_KILLER
+6050,8021,10,123,0,0,0,0,0,0,0,0,0,0,0 	//MH_PAIN_KILLER
 //Dieter
 //Dieter
 6051,8039,5,122,0,0,0,0,0,0,0,0,0,0,0 	//MH_MAGMA_FLOW
 6051,8039,5,122,0,0,0,0,0,0,0,0,0,0,0 	//MH_MAGMA_FLOW
 6051,8040,5,116,0,0,0,0,0,0,0,0,0,0,0 	//MH_GRANITIC_ARMOR
 6051,8040,5,116,0,0,0,0,0,0,0,0,0,0,0 	//MH_GRANITIC_ARMOR
-6051,8041,5,109,0,0,0,0,0,0,0,0,0,0,0 	//MH_LAVA_SLIDE
-6051,8042,5,131,0,0,0,0,0,0,0,0,0,0,0 	//MH_PYROCLASTIC
+6051,8041,10,109,0,0,0,0,0,0,0,0,0,0,0 	//MH_LAVA_SLIDE
+6051,8042,10,131,0,0,0,0,0,0,0,0,0,0,0 	//MH_PYROCLASTIC
 6051,8043,5,102,0,0,0,0,0,0,0,0,0,0,0 	//MH_VOLCANIC_ASH
 6051,8043,5,102,0,0,0,0,0,0,0,0,0,0,0 	//MH_VOLCANIC_ASH
 //Elanor
 //Elanor
 6052,8027,1,100,0,0,0,0,0,0,0,0,0,0,0 	//MH_STYLE_CHANGE
 6052,8027,1,100,0,0,0,0,0,0,0,0,0,0,0 	//MH_STYLE_CHANGE
 6052,8028,5,100,0,0,0,0,0,0,0,0,0,0,0 	//MH_SONIC_CRAW
 6052,8028,5,100,0,0,0,0,0,0,0,0,0,0,0 	//MH_SONIC_CRAW
-6052,8029,5,114,0,0,0,0,0,0,0,0,0,0,0 	//MH_SILVERVEIN_RUSH
-6052,8030,5,128,0,0,0,0,0,0,0,0,0,0,0 	//MH_MIDNIGHT_FRENZY
+6052,8029,10,114,0,0,0,0,0,0,0,0,0,0,0 	//MH_SILVERVEIN_RUSH
+6052,8030,10,128,0,0,0,0,0,0,0,0,0,0,0 	//MH_MIDNIGHT_FRENZY
 6052,8036,5,100,0,0,0,0,0,0,0,0,0,0,0 	//MH_TINDER_BREAKER
 6052,8036,5,100,0,0,0,0,0,0,0,0,0,0,0 	//MH_TINDER_BREAKER
 6052,8037,5,112,0,0,0,0,0,0,0,0,0,0,0 	//MH_CBC
 6052,8037,5,112,0,0,0,0,0,0,0,0,0,0,0 	//MH_CBC
 6052,8038,5,133,0,0,0,0,0,0,0,0,0,0,0 	//MH_EQC
 6052,8038,5,133,0,0,0,0,0,0,0,0,0,0,0 	//MH_EQC

+ 0 - 17
db/import-tmpl/abra_db.txt

@@ -1,17 +0,0 @@
-// Hocus-Pocus (Abracadabra) Castable Skills Database
-//
-// Structure of Database:
-// SkillID,DummyName,ProbabilityPerLvl
-//
-// 01. SkillID                  Skill ID to be casted by hocus pocus.
-// 02. DummyName                Name of the skill (informative, not used by server).
-// 03. ProbabilityPerLvl        Not a rate! Chance at which the skill is selected compared
-//                              with other entries probabilties
-//
-// NOTE:
-// - The skill is picked at random from the entire database and then tested for rate. If it
-//   does not succeed at that rate, another skill is picked and tested. This continues
-//   until a skill succeeds. Abracadabra-specific skills have a different chance to occur
-//   depending on skill level used. All other skills have an equal chance and appear from
-//   level 1 onward.
-// - To remove entry by importing, put "clear" (without quotes) in DummyName

+ 33 - 0
db/import-tmpl/abra_db.yml

@@ -0,0 +1,33 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2019 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Abracadabra Database
+###########################################################################
+#
+# Abracadabra Settings
+#
+###########################################################################
+# - Skill             Skill to be casted by Abracadabra.
+#   Probability:      Probability of skill compared to others in database (1 = 0.01%, 10000 = 100%). (Default: 500)
+#     - Level         Skill level.
+#       Probability   Probability at specific skill level (1 = 0.01%, 10000 = 100%). (Default: 0)
+###########################################################################
+
+Header:
+  Type: ABRA_DB
+  Version: 1

+ 3 - 1
db/import-tmpl/achievement_db.yml

@@ -77,4 +77,6 @@
 # Score - Achievement points that are given on completion.
 # Score - Achievement points that are given on completion.
 ###########################################################################
 ###########################################################################
 
 
-Achievements:
+Header:
+  Type: ACHIEVEMENT_DB
+  Version: 1

+ 32 - 0
db/import-tmpl/achievement_level_db.yml

@@ -0,0 +1,32 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2019 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Import Achievement Level Database
+###########################################################################
+#
+# Achievement Level Settings
+#
+###########################################################################
+# Level - Achievement Level
+###########################################################################
+# Points - Required total scoring points to reach this level.
+###########################################################################
+
+Header:
+  Type: ACHIEVEMENT_LEVEL_DB
+  Version: 1

+ 32 - 1
db/import-tmpl/attendance.yml

@@ -1,3 +1,34 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2019 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Attendance Database
+###########################################################################
+#
+# Attendance Settings
+#
+###########################################################################
+# - Start                   Start date.
+#   End                     End date.
+#   Rewards:                List of rewards for each day.
+#     - Day                 Reward day.
+#       ItemId              Item ID.
+###########################################################################
+
 Header:
 Header:
-  Type: ATTENDANCE_CONF
+  Type: ATTENDANCE_DB
   Version: 1
   Version: 1

+ 59 - 0
db/import-tmpl/battleground_db.yml

@@ -0,0 +1,59 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2019 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Battleground Queue Database
+###########################################################################
+#
+# Battleground Queue Settings
+#
+###########################################################################
+# - Id                Unique ID for the battleground type.
+#   Name              Name of the battleground. Must be the exact same as in the client for players to be able to join.
+#   MinPlayers        Minimum number of players required on each team. (Default: 1)
+#   MaxPlayers        Maximum number of players on each team. (Default: MAX_BG_MEMBERS / 2)
+#   MinLevel          Minimum level required to join the battleground. (Default: 1)
+#   MaxLevel          Maximum level to join the battleground. (Default: MAX_LEVEL value)
+#   Deserter          Amount of time in seconds a player is marked deserter. (Default: 600)
+#   StartDelay        Amount of time in seconds once a queue is filled before players are warped. (Default: 0)
+#   Join:             Which application type is accepted. The entryqueuelist.lub can visually disable these options.
+#     Solo            Able to join a queue as an individual. (Default: true)
+#     Party           Able to join a queue as a party. (Default: true)
+#     Guild           Able to join a queue as a guild. (Default: true)
+#   JobRestrictions   List of jobs that are unable to join the battleground.
+#   Locations:        Battleground location settings.
+#     - Map           The map on which the battleground will be played.
+#       StartEvent    NPC event triggered when the battleground starts.
+#       TeamA:        TeamA settings.
+#         RespawnX    X coordinate for warping on death.
+#         RespawnY    Y coordinate for warping on death.
+#         DeathEvent  NPC event triggered when a player dies.
+#         QuitEvent   NPC event triggered when a player quits.
+#         ActiveEvent NPC event triggered when a player joints an active battleground.
+#         Variable    Name of BG ID variable used in the battleground script.
+#       TeamB:        TeamB settings.
+#         RespawnX    X coordinate for warping on death.
+#         RespawnY    Y coordinate for warping on death.
+#         DeathEvent  NPC event triggered when a player dies.
+#         QuitEvent   NPC event triggered when a player quits.
+#         ActiveEvent NPC event triggered when a player joints an active battleground.
+#         Variable    Name of BG ID variable used in the battleground script.
+###########################################################################
+
+Header:
+  Type: BATTLEGROUND_DB
+  Version: 1

+ 0 - 13
db/import-tmpl/guild_skill_tree.txt

@@ -1,13 +0,0 @@
-// Guild Skill Tree Database
-//
-// Structure of Database:
-// SkillID,MaxLv,Prerequisite SkillID1,Prerequisite SkillLv1,PrereqSkillID2,PrereqSkillLv2,PrereqSkillID3,PrereqSkillLv3,PrereqSkillID4,PrereqSkillLv4,PrereqSkillID5,PrereqSkillLv5	//GUILD SKILLNAME#Skill Name#
-//
-// 01. SkillID                  Skill ID of the guild skill.
-// 02. MaxLv                    Maximum level of the guild skill.
-// 03. Prerequisite SkillID     Guild skill required for the skill to become available.
-// 04. Prerequisite SkillLv     Level of the required guild skill.
-// ...
-//
-// NOTE: MAX_GUILD_SKILL_REQUIRE (typically 5) ID/Lv pairs must be specified.
-

+ 36 - 0
db/import-tmpl/guild_skill_tree.yml

@@ -0,0 +1,36 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2019 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Custom Guild Skill Database
+###########################################################################
+#
+# Guild Skill Settings
+#
+###########################################################################
+# Id - Skill ID of the guild skill.
+###########################################################################
+# MaxLevel - Maximum level of the guild skill.
+###########################################################################
+# Required - A list of required skills for the skill to become available.
+#   Id: Skill ID of the required guild skill.
+#   Level: Level of the required guild skill.
+###########################################################################
+
+Header:
+  Type: GUILD_SKILL_TREE_DB
+  Version: 1

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

@@ -1,6 +0,0 @@
-// Instance Database
-//
-// Structure of Database:
-// ID,Name,LimitTime,IdleTimeOut,EnterMap,EnterX,EnterY,Map2,Map3,...,Map255
-//
-// EnterMap is considered as Map1

+ 40 - 0
db/import-tmpl/instance_db.yml

@@ -0,0 +1,40 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2019 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Instance Database
+###########################################################################
+#
+# Instance Settings
+#
+###########################################################################
+# - Id                Instance ID.
+#   Name              Instance Name.
+#   TimeLimit         Total lifetime of instance in seconds. (Default: 3600)
+#   IdleTimeOut       Time before an idle instance is destroyed in seconds. (Default: 300)
+#   Destroyable       Toggles the ability to destroy the instance using instance 'Destroy' button. (Default: true)
+#                     Note: the button is displayed based on parties. For any mode, it requires the party leader to be the instance owner to destroy it.
+#   Enter:            Instance entrance coordinates.
+#     Map             Map Name where players start.
+#     X               X Coordinate where players start.
+#     Y               Y Coordinate where players start.
+#   AdditionalMaps:   List of maps that are part of an instance. (Optional)
+###########################################################################
+
+Header:
+  Type: INSTANCE_DB
+  Version: 1

+ 4 - 3
db/import-tmpl/item_db.txt

@@ -25,7 +25,8 @@
 //5204,Event_Pierrot_Nose,Rudolf's Red Nose,4,20,,100,,0,,0,0xFFFFFFFF,63,2,1,,0,0,49,{ bonus2 bResEff,Eff_Blind,3000; bonus2 bAddMonsterDropItem,12130,30; },{},{}
 //5204,Event_Pierrot_Nose,Rudolf's Red Nose,4,20,,100,,0,,0,0xFFFFFFFF,63,2,1,,0,0,49,{ bonus2 bResEff,Eff_Blind,3000; bonus2 bAddMonsterDropItem,12130,30; },{},{}
 //5264,Aussie_Flag_Hat,Australian Flag Hat,4,20,,500,,4,,0,0xFFFFFFFF,63,2,256,,0,1,304,{ bonus bAllStats,2; },{},{}
 //5264,Aussie_Flag_Hat,Australian Flag Hat,4,20,,500,,4,,0,0xFFFFFFFF,63,2,256,,0,1,304,{ bonus bAllStats,2; },{},{}
 //5356,Pumpkin_Hat_H,Pumpkin Hat,4,20,,200,,2,,0,0xFFFFFFFF,63,2,256,,0,1,206,{ bonus bAllStats,2; bonus2 bSubRace,RC_Demon,5; bonus2 bMagicAddRace,RC_Demon,5; },{},{}
 //5356,Pumpkin_Hat_H,Pumpkin Hat,4,20,,200,,2,,0,0xFFFFFFFF,63,2,256,,0,1,206,{ bonus bAllStats,2; bonus2 bSubRace,RC_Demon,5; bonus2 bMagicAddRace,RC_Demon,5; },{},{}
-//5811,Santa_Beard,Santa Beard,4,20,,100,,5,,0,0xFFFFFFFF,63,2,1,,0,0,25,{ bonus2 bSubRace,RC_Brute,5; },{},{}
+//5384,Santa_Hat_1,Twin Pompom By JB,4,20,,200,,2,,1,0xFFFFFFFF,63,2,256,,20,1,390,{ bonus bLuk,3; bonus2 bResEff,Eff_Curse,2000; bonus bVariableCastrate,-2; bonus bAspdRate,4; bonus2 bAddMonsterDropItem,539,100; bonus2 bAddMonsterDropItem,529,200; bonus2 bAddMonsterDropItem,530,200; autobonus "{ bonus bCritical,10; }",10,5000; },{},{}
+//5811,Santa_Beard,Santa Beard,4,20,,100,,5,,0,0xFFFFFFFF,63,2,1,,0,0,25,{ bonus2 bSubRace,RC_Brute,5; bonus2 bSubRace,RC_Player_Doram,5; },{},{}
 
 
 //11702,Moon_Cookie,Moon Cookie,11,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_end SC_POISON; sc_end SC_SILENCE; sc_end SC_BLIND; sc_end SC_CONFUSION; sc_end SC_CURSE; sc_end SC_HALLUCINATION; itemskill "AL_BLESSING",7; },{},{}
 //11702,Moon_Cookie,Moon Cookie,11,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_end SC_POISON; sc_end SC_SILENCE; sc_end SC_BLIND; sc_end SC_CONFUSION; sc_end SC_CURSE; sc_end SC_HALLUCINATION; itemskill "AL_BLESSING",7; },{},{}
 //12131,Lucky_Potion,Lucky Potion,0,2,,100,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_LUKFOOD,180000,15; },{},{}
 //12131,Lucky_Potion,Lucky Potion,0,2,,100,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_LUKFOOD,180000,15; },{},{}
@@ -59,8 +60,8 @@
 
 
 // Old Tuxedo and Wedding Dress, will display the outfit when worn.
 // 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
 // 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
 //  8 - Item will be bound item when equipped
 // 16 - Special Broadcast: When item dropped by monster and player loot it, will be broadcasted!
 // 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'
 // 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
 // NOTE: For removing flag by import file, use "-" to remove the flag. Example, 604,-1 will removes flag 1 from Branch_Of_Dead_Tree

File diff suppressed because it is too large
+ 0 - 0
db/import-tmpl/job_exp.txt


+ 0 - 8
db/import-tmpl/magicmushroom_db.txt

@@ -1,8 +0,0 @@
-// Magic Mushroom Database
-// List of skills that are randomly used through Magic Mushroom status change.
-//
-// Structure of Database:
-// SkillID{,RemoveFlag}
-//
-// - To remove entry by importing, put 1 value on 'RemoveFlag'
-

+ 30 - 0
db/import-tmpl/magicmushroom_db.yml

@@ -0,0 +1,30 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2019 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Magic Mushroom Database
+###########################################################################
+#
+# Magic Mushroom Settings
+#
+###########################################################################
+# - Skill       Skill to be casted by Magic Mushroom.
+###########################################################################
+
+Header:
+  Type: MAGIC_MUSHROOM_DB
+  Version: 1

+ 0 - 16
db/import-tmpl/mob_avail.txt

@@ -1,16 +0,0 @@
-// Mob Availability and Alias Database
-//
-// Structure of Database:
-// MobID,SpriteID{,Equipment}
-//
-// 01. MobID        Mob ID to change.
-// 02. SpriteID     Mob ID which will be sent to the client instead of MobID.
-//                  If 0, the mob becomes unavailable for use.
-// 03. Equipment    Item ID of pet equipment (must be available for pet counterpart, or this will cause problems).
-//
-// To disguise a mob as a player:
-// MobID,SpriteID,Sex,Hair_Style,Hair_Color,Weapon,Shield,Head_Top,Head_Middle,Head_Bottom,Option,Dye_Color
-//
-// SpriteID is a job class value.
-// Weapon and Shield uses Item ID, while Head uses View ID.
-

+ 123 - 0
db/import-tmpl/mob_avail.yml

@@ -0,0 +1,123 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2019 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Mob Availability and Alias Database
+###########################################################################
+#
+# Mob Availability and Alias Settings
+#
+###########################################################################
+# - Mob                     Mob to adjust.
+#   Sprite                  Sprite which will be sent to the client instead of Mob.
+#   Sex                     Sex (if Sprite is a player). (Default: Female)
+#   HairStyle               Hair Style ID (if Sprite is a player). (Default: 0)
+#   HairColor               Hair Color ID (if Sprite is a player). (Default: 0)
+#   ClothColor              Cloth Color ID (if Sprite is a player). (Default: 0)
+#   Weapon                  Item name of weapon (if Sprite is a player). (Default: 0)
+#   Shield                  Item name of shield (if Sprite is a player). (Default: 0)
+#   HeadTop                 Item name of headgear (if Sprite is a player). (Default: 0)
+#   HeadMid                 Item name of headgear (if Sprite is a player). (Default: 0)
+#   HeadLow                 Item name of headgear (if Sprite is a player). (Default: 0)
+#   PetEquip                Item name of pet equipment (if Mob is a valid pet). (Default: 0)
+#   Options:                Set an option for an object. (Optional)
+#     <Option>: bool
+###########################################################################
+
+Header:
+  Type: MOB_AVAIL_DB
+  Version: 1
+
+#Body:
+  # Examples
+#  - Mob: PORING
+#    Sprite: BAPHOMET
+#  - Mob: E_OBEAUNE
+#    Sprite: PORING
+#    PetEquip: Backpack
+
+  # Easter Event Monsters
+#  - Mob: MOROCC_3
+#    Sprite: DOPPELGANGER
+#  - Mob: MOROCC_4
+#    Sprite: ECLIPSE
+
+  # rAthena Dev Team
+  # Valaris
+#  - Mob: BOW_GUARDIAN_
+#    Sprite: JOB_ASSASSIN_CROSS
+#    Sex: Male
+#    HairStyle: 1
+#    HairColor: 1
+#    ClothColor: 1
+#    Weapon: Jamadhar
+#    HeadTop: Sahkkat
+#    HeadMid: Sunglasses
+#    HeadLow: Cigar
+#    Options:
+#      Falcon: true
+  # Valaris Worshiper
+#  - Mob: E_CONDOR
+#    Sprite: JOB_THIEF
+#    Sex: Male
+#    HairStyle: 1
+#    HairColor: 1
+#    ClothColor: 1
+#    Weapon: Gladius
+#    Shield: Guard
+#    HeadTop: Sahkkat
+#    HeadMid: Sunglasses
+#    HeadLow: Cigar
+  # MC Cameri
+#  - Mob: E_TREASURE1
+#    Sprite: JOB_CRUSADER
+#    Sex: Male
+#    HairStyle: 6
+#    HairColor: 6
+#    ClothColor: 3
+#    Weapon: Sword
+#    Shield: Shield
+#    Options:
+#      Riding: true
+  # Poki#3
+#  - Mob: E_TREASURE2
+#    Sprite: JOB_SNIPER
+#    Sex: Male
+#    HairStyle: 21
+#    Weapon: Bow_Of_Rudra
+#    HeadTop: Boy's_Cap
+#    HeadMid: Takius_Blindfold
+#    HeadLow: Centimental_Leaf
+#    Options:
+#      Falcon: true
+  # Sentry
+#  - Mob: BOMBPORING
+#    Sprite: KNIGHT_GUARDIAN
+
+  # iRO Halloween Event 2009
+#  - Mob: EP14_MORS_BOSSB
+#    Sprite: ZOMBIE
+#  - Mob: EP14_MORS_MOB1
+#    Sprite: GHOUL
+#  - Mob: EP14_MORS_MOB2
+#    Sprite: ZOMBIE_MASTER
+
+  # iRO Halloween Event 2009
+#  - Mob: EP14_3_DEATH_B_MOB2
+#    Sprite: WHISPER
+#  - Mob: EP14_3_DEATH_B_MOB3
+#    Sprite: DARK_LORD

+ 0 - 60
db/import-tmpl/pet_db.txt

@@ -1,60 +0,0 @@
-// Pet Additional Database
-//
-// Structure of Database:
-// MobID,Name,JName,LureID,EggID,EquipID,FoodID,Fullness,HungryDelay,R_Hungry,R_Full,Intimate,Die,Capture,Speed,S_Performance,talk_convert_class,attack_rate,defence_attack_rate,change_target_rate,pet_script,loyal_script
-//
-// 01. MobID			Monster ID of the pet.
-// 02. Name			Name of the monster as defined in the database.
-// 03. JName			The display name of the monster when hatched.
-// 04. LureID			Pet Tame Item ID.
-// 05. EggID			Pet Egg ID.
-// 06. EquipID			Pet Accessory ID.
-// 07. FoodID			Pet Food ID.
-// 08. Fullness			The amount Hunger is decreased every [HungryDelay] seconds.
-// 09. HungryDelay		The amount of time it takes for hunger to decrease after feeding. (Default: 60 seconds)
-// 10. R_Hungry			Amount of Intimacy that is increased when fed.
-// 11. R_Full			Amount of Intimacy that is decreased when over-fed.
-// 12. Intimate			Amount of Intimacy the pet starts with.
-// 13. Die			Amount of Intimacy that is decreased when the pet owner dies.
-// 14. Capture			Capture succes rate (10000 = 100%)
-// 15. Speed			Pet's walk speed. (Defaul: 150)
-// 16. S_Performance		Special Performance. (Yes = 1, No = 0)
-// 17. talk_convert_class	Disables pet talk (instead of talking they emote  with /!.)
-// 18. attack_rate			Rate of which the pet will attack (requires at least pet_support_min_friendly intimacy).
-// 19. defence_attack_rate	Rate of which the pet will retaliate when master is being attacked (requires at least pet_support_min_friendly intimacy).
-// 20. change_target_rate	Rate of which the pet will change its attack target.
-// 21. pet_script		Script to execute when the pet is hatched.
-// 22. loyal_script		Script to execute when the pet is hatched (requires at least pet_equip_min_friendly intimacy, independent of pet_script).
-//NOTE: The max value (100%) of attack_rate, defense_rate & change_target_rate is 10000.
-
-//In theory you can use any valid script, but it is run only once upon pet
-//loading, so it is recommended you use the specific pet scripts:
-
-//petskillattack skillid, skilllv, rate, bonusrate
-//Skill attack that triggers while the pet is attacking. Rate is the base
-//chance of execution per attack. Bonusrate is an additional success rate when
-//intimacy reaches max.
-
-//petskillattack2 skillid, damage, hits, rate, bonusrate
-//Same as petskillattack, but the damage and number of hits is fixed
-//the damage specified is total, not per hit.
-
-//petskillsupport skillid, skilllv, delay, hp%, sp%
-//Casts a support skill when the health levels are below the specified hp% and
-//sp%. Delay is the minimum time in seconds before the skill can be cast again
-
-//petheal amount, delay, hp%, sp%
-//Similar to petskillsupport, but the skill is fixed to heal (28) and the
-//heal-amount is fixed to the value given.
-
-//petrecovery type, delay: Cures the "type" status effect after "delay" seconds
-
-//petskillbonus type, value, duration, delay
-//Gives bonus stats. Type is the stat to increase (bStr, bLuk), value is the
-//amount by which it is increased, duration signals how long the bonus lasts
-//delay is the time elapsed after the bonus ends and before it starts again.
-
-//A single pet can have petloot, petskillbonus, petskillattack (or
-//petskillattack2) and petskillsupport (or petheal) at the same time,
-//but only one of each.
-

+ 486 - 0
db/import-tmpl/pet_db.yml

@@ -0,0 +1,486 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2019 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Custom Pet Database
+###########################################################################
+#
+# Pet Settings
+#
+###########################################################################
+# - Mob                      Monster that can be used as pet
+#   TameItem                 Pet Tame Item.
+#   EggItem                  Pet Egg Item.
+#   EquipItem                Pet Accessory Item. (Default: 0)
+#   FoodItem                 Pet Food Item. (Default: 0)
+#   Fullness                 The amount of hunger is decreased every [HungryDelay] seconds.
+#   HungryDelay              The amount of time in seconds it takes for hunger to decrease after feeding. (Default: 60)
+#   HungerIncrease           The amount of hunger that is increased every time the pet is fed (Default: 20)
+#   IntimacyStart            Amount of Intimacy the pet starts with. (Default: 250)
+#   IntimacyFed              Amount of Intimacy that is increased when fed. (Default: 50)
+#   IntimacyOverfed          Amount of Intimacy that is increased when over-fed. (Default: -100)
+#   IntimacyHungry           Amount of Intimacy that is increased when the pet is hungry. (Default: -5)
+#   IntimacyOwnerDie         Amount of Intimacy that is increased when the pet owner dies. (Default: -20)
+#   CaptureRate              Capture success rate. (10000 = 100%)
+#   SpecialPerformance       If a pet has a Special Performance. (Default: true)
+#   AttackRate               Rate of which the pet will attack [requires at least pet_support_min_friendly intimacy]. (10000 = 100%)
+#   RetaliateRate            Rate of which the pet will retaliate when master is being attacked [requires at least pet_support_min_friendly intimacy]. (10000 = 100%)
+#   ChangeTargetRate         Rate of which the pet will change its attack target. (10000 = 100%)
+#   AllowAutoFeed            Allows turning automatic pet feeding on. (Default: false)
+#   Script                   Bonus script to execute when the pet is alive. (Default: null)
+#   SupportScript            Bonus script to execute when pet_status_support is enabled. (Default: null)
+#   Evolution:               Pet evolution settings. (Optional) (Default: null)
+#     - Target               Mob this pet can evolve to.
+#       ItemRequirements:      Item requirements for evolving this pet.
+#         - Item               Self-explanatory
+#           Amount
+###########################################################################
+
+Header:
+  Type: PET_DB
+  Version: 1
+
+#Body:
+#  - Mob: PORING
+#    AttackRate: 350
+#    RetaliateRate: 400
+#    ChangeTargetRate: 800
+#    SupportScript: >
+#      petloot 10;
+#  - Mob: DROPS
+#    AttackRate: 300
+#    RetaliateRate: 400
+#    ChangeTargetRate: 500
+#    SupportScript: >
+#      petloot 10;
+#  - Mob: POPORING
+#    AttackRate: 300
+#    RetaliateRate: 500
+#    ChangeTargetRate: 400
+#    SupportScript: >
+#      petloot 15;
+#  - Mob: LUNATIC
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 1000
+#    SupportScript: >
+#      petskillbonus bLuk,3,10,50;
+#  - Mob: PICKY
+#    AttackRate: 500
+#    RetaliateRate: 600
+#    ChangeTargetRate: 50
+#    SupportScript: >
+#      petskillbonus bStr,3,10,50;
+#  - Mob: CHONCHON
+#    AttackRate: 500
+#    RetaliateRate: 500
+#    ChangeTargetRate: 250
+#    SupportScript: >
+#      petskillbonus bAgi,4,10,50;
+#  - Mob: STEEL_CHONCHON
+#    AttackRate: 500
+#    RetaliateRate: 500
+#    ChangeTargetRate: 200
+#    SupportScript: >
+#      petskillbonus bAgiVit,4,20,40;
+#  - Mob: HUNTER_FLY
+#    AttackRate: 500
+#    RetaliateRate: 500
+#    ChangeTargetRate: 200
+#    SupportScript: >
+#      petskillattack2 "NPC_WINDATTACK",888,2,0,10;
+#  - Mob: SAVAGE_BABE
+#    AttackRate: 500
+#    RetaliateRate: 500
+#    ChangeTargetRate: 200
+#    SupportScript: >
+#      petskillbonus bVit,4,10,50;
+#  - Mob: DESERT_WOLF_B
+#    AttackRate: 400
+#    RetaliateRate: 400
+#    ChangeTargetRate: 400
+#    SupportScript: >
+#      petskillattack "SM_PROVOKE",1,0,5;
+#  - Mob: ROCKER
+#    AttackRate: 350
+#    RetaliateRate: 350
+#    ChangeTargetRate: 600
+#    SupportScript: >
+#      petskillbonus bAllStats,1,10,50;
+#  - Mob: SPORE
+#    AttackRate: 350
+#    RetaliateRate: 500
+#    ChangeTargetRate: 500
+#    SupportScript: >
+#      petrecovery SC_POISON,60;
+#  - Mob: POISON_SPORE
+#    AttackRate: 600
+#    RetaliateRate: 200
+#    ChangeTargetRate: 400
+#    SupportScript: >
+#      petskillattack "NPC_POISON",20,0,10;
+#  - Mob: PECOPECO
+#    AttackRate: 400
+#    RetaliateRate: 500
+#    ChangeTargetRate: 800
+#    SupportScript: >
+#      petskillbonus bSpeedRate,25,20,20;
+#  - Mob: SMOKIE
+#    AttackRate: 600
+#    RetaliateRate: 600
+#    ChangeTargetRate: 100
+#    SupportScript: >
+#      petskillbonus bPerfectHide,1,3600,0;
+#  - Mob: YOYO
+#    AttackRate: 300
+#    RetaliateRate: 800
+#    ChangeTargetRate: 400
+#    SupportScript: >
+#      petloot 20;
+#  - Mob: ORK_WARRIOR
+#    AttackRate: 600
+#    RetaliateRate: 200
+#    ChangeTargetRate: 300
+#    SupportScript: >
+#      petskillattack2 "NPC_PIERCINGATT",100,1,0,10;
+#  - Mob: MUNAK
+#    AttackRate: 300
+#    RetaliateRate: 750
+#    ChangeTargetRate: 300
+#    SupportScript: >
+#      petskillattack2 "NPC_DARKNESSATTACK",444,1,0,10;
+#  - Mob: DOKEBI
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#    SupportScript: >
+#      petskillattack "BS_HAMMERFALL",1,0,10;
+#  - Mob: SOHEE
+#    AttackRate: 100
+#    RetaliateRate: 1000
+#    ChangeTargetRate: 200
+#    SupportScript: >
+#      petskillsupport "AL_HEAL",5,60,33,100;
+#  - Mob: ISIS
+#    AttackRate: 650
+#    RetaliateRate: 450
+#    ChangeTargetRate: 150
+#    SupportScript: >
+#      petskillsupport "PR_MAGNIFICAT",2,60,50,50;
+#  - Mob: PETIT
+#    AttackRate: 800
+#    RetaliateRate: 400
+#    ChangeTargetRate: 100
+#    SupportScript: >
+#      petskillattack2 "WZ_HEAVENDRIVE",500,1,0,10;
+#  - Mob: DEVIRUCHI
+#    AttackRate: 800
+#    RetaliateRate: 200
+#    ChangeTargetRate: 100
+#    SupportScript: >
+#      petskillbonus bAgiDexStr,6,20,40;
+#  - Mob: BAPHOMET_
+#    AttackRate: 1000
+#    RetaliateRate: 100
+#    ChangeTargetRate: 200
+#    SupportScript: >
+#      petskillattack2 "NPC_DARKNESSATTACK",1776,4,0,5;
+#  - Mob: BON_GUN
+#    AttackRate: 600
+#    RetaliateRate: 200
+#    ChangeTargetRate: 400
+#    SupportScript: >
+#      petskillattack2 "NPC_DARKNESSATTACK",555,1,1,1;
+#  - Mob: ZHERLTHSH
+#    AttackRate: 1000
+#    RetaliateRate: 100
+#    ChangeTargetRate: 500
+#    SupportScript: >
+#      petskillattack "AS_SONICBLOW",1,0,3;
+#  - Mob: ALICE
+#    AttackRate: 100
+#    RetaliateRate: 1000
+#    ChangeTargetRate: 200
+#    SupportScript: >
+#      petskillsupport "AL_HEAL",5,60,25,100;
+#  - Mob: EVENT_RICECAKE
+#    AttackRate: 500
+#    RetaliateRate: 500
+#    ChangeTargetRate: 200
+#    SupportScript: >
+#      petskillsupport "CR_DEFENDER",3,240,50,100;
+#  - Mob: GOBLINE_XMAS
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#    SupportScript: >
+#      petskillattack "MG_SIGHT",5,5,5;
+#  - Mob: CHUNG_E
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#    SupportScript: >
+#      petskillattack "CR_SHIELDCHARGE",5,5,5;
+#  - Mob: ECLIPSE_P
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#    SupportScript: >
+#      petskillattack "TF_THROWSTONE",1,5,5;
+#  - Mob: GOBLIN_1
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#    SupportScript: >
+#      petskillattack "NPC_WINDATTACK",5,5,5;
+#  - Mob: GOBLIN_2
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#    SupportScript: >
+#      petskillattack "NPC_FIREATTACK",5,5,5;
+#  - Mob: GOBLIN_4
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#    SupportScript: >
+#      petskillattack "NPC_GROUNDATTACK",5,5,5;
+#  - Mob: DELETER_
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#    SupportScript: >
+#      petskillattack "SM_MAGNUM",5,5,5;
+#  - Mob: DIABOLIC
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#    SupportScript: >
+#      petskillattack "WZ_METEOR",2,5,5;
+#  - Mob: WANDER_MAN
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#    SupportScript: >
+#      petskillattack "NPC_UNDEADATTACK",5,5,5;
+#  - Mob: P_CHUNG_E
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#    SupportScript: >
+#      petskillattack "CR_SHIELDCHARGE",5,5,5;
+#  - Mob: GOLEM
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: MARIONETTE
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: MEDUSA
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: WHISPER
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: GOBLIN_LEADER
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: SUCCUBUS
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#    SupportScript: >
+#      bonus2 bHPDrainRate,10,5;
+#  - Mob: INCUBUS
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#    SupportScript: >
+#      bonus bMaxSPRate,3;
+#      bonus2 bSPDrainRate,10,1;
+#  - Mob: NIGHTMARE_TERROR
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: SHINOBI
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: MIYABI_NINGYO
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: WICKED_NYMPH
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: STONE_SHOOTER
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: DULLAHAN
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: LOLI_RURI
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: CIVIL_SERVANT
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: LEAF_CAT
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: BACSOJIN_
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: IMP
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: E_CRAMP
+#    AttackRate: 350
+#    RetaliateRate: 400
+#    ChangeTargetRate: 800
+#  - Mob: E_HYDRA
+#    AttackRate: 350
+#    RetaliateRate: 400
+#    ChangeTargetRate: 800
+#  - Mob: J_TAINI
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: XMAS_LUNATIC
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: TIKBALANG
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: MARIN
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: LITTLE_PORING
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: NINE_TAIL
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: GREMLIN
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: MUMMY
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: TEDDY_BEAR
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: MASTERING
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: METALLER
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: ANGELING
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: MOONLIGHT
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: SAVAGE
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: HIGH_ORC
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: CHOCO
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: ANCIENT_MUMMY
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: AM_MUT
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: CAT_O_NINE_TAIL
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: GRAND_PECO
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: HYEGUN
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: HODREMLIN
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: XM_TEDDY_BEAR
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: DR_EGGRING
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: DR_LUNATIC
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: LITTLE_ISIS
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: DIABOLIC2
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: DELETER_2
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800
+#  - Mob: SWEETS_DROPS
+#    AttackRate: 300
+#    RetaliateRate: 300
+#    ChangeTargetRate: 800

+ 0 - 7
db/import-tmpl/quest_db.txt

@@ -1,7 +0,0 @@
-// Quest Database
-//
-// Structure of Database:
-// Quest ID,Time Limit,Target1,Val1,Target2,Val2,Target3,Val3,MobID1,NameID1,Rate1,MobID2,NameID2,Rate2,MobID3,NameID3,Rate3,Quest Title
-//
-// The MobID*, NameID*, and Rate* reflect special values for quests that can drop an item at given rate from given mob.
-// If no MobID* is given, then any mob has a chance to drop the given ItemID*.

+ 54 - 0
db/import-tmpl/quest_db.yml

@@ -0,0 +1,54 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2019 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Quest Database
+###########################################################################
+#
+# Quest Settings
+#
+###########################################################################
+# - Id              Quest ID.
+#   Title           Quest title.
+#   TimeLimit       Amount of time before the quest expires. (Default: 0)
+#                   Use a number following by "d" for day(s), "h" for hour(s), "mn" for minute(s), and "s" for second(s).
+#                   Specify with "+" for how long until the quest expires.
+#                   Specify without "+" for the exact time the quest expires using "d" (optionnal), [0-23]"h" (required), [0-59]"mn" (optionnal), [0-59]"s" (optionnal) format.
+#                   Please note the number before "d" only shift the exact timer to the given day(s).
+#   Targets:        Quest objective target. (Default: null)
+#                   The target can be a couple of node Mob/Count or of Id/Race/Size/Element/MinLevel/MaxLevel.
+#                   If Mob is supplied, Count is required and the other fields are ignored.
+#                   If Id is supplied, at least one other field of Race/Size/Element/MinLevel/MaxLevel is required.
+#                   If Id is supplied, Count is required for each new entry.
+#     - Mob         Monster to kill (aegis monster name).
+#       Count       Amount of monsters to kill. Set to 0 to skip the target on import.
+#       Id          Unique target index for the quest Id. Requires a positive number.
+#       Race        Monster race target (default All). Valids race are Angel, Brute, DemiHuman, Demon, Dragon, Fish, Formless, Insect, Plant, Undead, All.
+#       Size        Monster size target (default All). Valids size are Small, Medium, Large, All.
+#       Element     Monster element target (default All). Valids elements are Dark, Earth, Fire, Ghost, Holy, Neutral, Poison, Undead, Water, Wind, All.
+#       MinLevel    Minimum monster level target. If not supplied but MaxLevel defined, MinLevel is 1. Set to 0 to ignore MinLevel on import. (Default: 0)
+#       MaxLevel    Maximum monster level target. Set to 0 to ignore MaxLevel on import. (Default: 0)
+#   Drops:          Quest item drop targets. (Default: null)
+#     - Mob         Monster to kill. 0 will apply to all monsters. (Default: 0)
+#       Item        Item to drop.
+#       Count       Amount of items that will drop. Non-stackable items default to 1. (Default: 1)
+#       Rate        Item drop rate. (10000 = 100%)
+###########################################################################
+
+Header:
+  Type: QUEST_DB
+  Version: 1

+ 0 - 7
db/import-tmpl/size_fix.txt

@@ -1,7 +0,0 @@
-// Size Fix Tables
-// Contains size fixes for weapon damage.
-//
-// Struture of Database:
-// Columns - Weapon type
-// Rows    - Target size
-

+ 33 - 0
db/import-tmpl/size_fix.yml

@@ -0,0 +1,33 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2019 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Size Fix Database
+###########################################################################
+#
+# Size Fix Settings
+#
+###########################################################################
+# - Weapon    Weapon type.
+#   Small     Small size modifier. (Default: 100)
+#   Medium    Medium size modifier. (Default: 100)
+#   Large     Large size modifier. (Default: 100)
+###########################################################################
+
+Header:
+  Type: SIZE_FIX_DB
+  Version: 1

+ 0 - 18
db/import-tmpl/skill_cast_db.txt

@@ -1,18 +0,0 @@
-// Skill Times Database
-//
-// Structure of Database:
-// SkillID,CastingTime,AfterCastActDelay,AfterCastWalkDelay,Duration1,Duration2,Cool Down,Fixed Casting Time
-//
-// CastingTime: time to cast this skill, in miliseconds
-// AfterCastActDelay: "normal" delay, character cannot use skills, in miliseconds
-// AfterCastWalkDleay: amount of time before character can move again, in miliseconds
-// Duration1/Duration2: usually the durations used by the skill, at special cases it is used to hold special data
-// Cool Down: amount of time until character can re-use this skill, in miliseconds
-// Fixed Casting Time: the skills fixed casting time (when 0, uses 20% of cast time and less than 0 means no fixed cast time)
-//
-// On all fields you can use ':' as a delimiter for level-specific values.
-// For example:
-// - Original: 6,0,0,0,30000,0,1000
-// - Modified: 6,0,0,0,30000,0,1000:2500:3000:...
-// Gives Level 1 1000ms cool down, Level 2 2500ms, Level 3 3000ms, and so on.
-

+ 0 - 16
db/import-tmpl/skill_castnodex_db.txt

@@ -1,16 +0,0 @@
-// <Skill id>,<Cast>,<Delay (optional)>
-//
-// Cast:  0 - everything affects the skill's cast time
-//        1 - skill's cast time is not affected by dex
-//        2 - skill's cast time is not affected by statuses (Suffragium, etc)
-//        4 - skill's cast time is not affected by item bonuses (equip, cards)
-//
-// Delay: 0 - everything affects the skill's delay
-//        1 - skill's delay is not affected by dex
-//        2 - skill's delay is not affected by Magic Strings / Bragi
-//        4 - skill's delay is not affected by item bonuses (equip, cards)
-//
-// Note: Values are bit fields, add them up to combine their effects.
-// Note: Delay setting '1' only makes sense when delay_dependon_dex is enabled.
-// Example: 46,1,1 = Double Strafe's cast time and delay is not affected by dex.
-

+ 0 - 52
db/import-tmpl/skill_copyable_db.txt

@@ -1,52 +0,0 @@
-// Copyable Skills Database
-// List of skills able to be copied by Intimidate/Plagiarism and Reproduce.
-//
-// Sources:
-// http://irowiki.org/wiki/Intimidate
-//    -> "Intimidate will copy any 2nd class skill"
-// http://irowiki.org/wiki/Reproduce/List_of_reproducible_skills
-//    -> "Players can reproduce 1-x, 2-x, and 3-x skills and Expanded Class,
-//        but cannot reproduce transcendent skills"
-//
-// Structure of Database:
-// SkillName,Option{,JobAllowed{,RequirementRemoved}}
-//
-// Option (bitmask) determines how a skill can be copied.
-//	1 = Plagiarism
-//	2 = Reproduce
-//
-// JobAllowed (bitmask) restricts copying the skill to certain classes.
-// By default, all jobs can copy the skill (0).
-//	 1 = Rogue
-//	 2 = Stalker
-//	 4 = Shadow Chaser
-//	 8 = Trans. Shadow Chaser
-//	16 = Baby Rouge
-//	32 = Baby Shadow Chaser
-//	
-// RequirementRemoved (bitmask) removes requirements when casting a copied skill.
-// See 'skill_require_db.txt' for specific skill requirements.
-//	   0 = uses original requirement(s)
-//	   1 = hp
-//	   2 = maxhptrigger
-//	   4 = sp
-//	   8 = hprate
-//	  16 = sprate
-//	  32 = zeny
-//	  64 = weapon type
-//	 128 = ammo (with the amount)
-//	 256 = state
-//	 512 = statuses
-//	1024 = spirit sphere
-//	2048 = items (with the amount)
-//	4096 = equipments
-//
-// Examples:
-// AS_SONICBLOW,2,63,64
-//	Sonic Blow can be copied by all jobs with only Plagiarism.
-//	To use the copied skill, a Katar is not needed (a Sonic Blow weapon type requirement).
-//
-// CR_ACIDDEMONSTRATION,3,10
-//	Acid Demonstration can only be copied by Stalker/Trans. Shadow Chaser with Plagiarism or Reproduce.
-//	This mode simulates the previous battle config, which allowed only Trans. classes to copy Trans. skills.
-

+ 9 - 9
db/import-tmpl/skill_damage_db.txt

@@ -4,12 +4,12 @@
 // SkillName,Caster,Map,Damage against Players{,Damage against Mobs{,Damage against Bosses{,Damage against Other}}}
 // SkillName,Caster,Map,Damage against Players{,Damage against Mobs{,Damage against Bosses{,Damage against Other}}}
 //
 //
 // Caster: The groups for which the adjustment takes effect. (bitmask)
 // Caster: The groups for which the adjustment takes effect. (bitmask)
-//		 1 = Player
-//		 2 = Monster
-//		 4 = Pet
-//		 8 = Homunculus
-//		16 = Mercenary
-//		32 = Elemental
+//		BL_PC = Player
+//		BL_MOB = Monster
+//		BL_PET = Pet
+//		BL_HOM = Homunculus
+//		BL_MER = Mercenary
+//		BL_ELEM = Elemental
 //
 //
 // Map:
 // Map:
 // 		1    - Normal (the maps that aren't classified as these maps below)
 // 		1    - Normal (the maps that aren't classified as these maps below)
@@ -31,7 +31,7 @@
 //  	Negative values decrease damage and positive values increase it (0 = no change).
 //  	Negative values decrease damage and positive values increase it (0 = no change).
 //
 //
 // Examples:
 // Examples:
-// MC_MAMMONITE,1,1,50 // In normal maps, players deal +50% damage to other players with Mammonite.
-// MO_EXTREMITYFIST,1,6,-50 // In PVP and GVG, players deal -50% (half) damage to other players with Asura Strike.
-// AB_ADORAMUS,1,6,50,0,10,15 // In PVP and GVG, players deal +50% damage to other players, +0% to mobs, +10% to bosses, and +15% to other with Adoramus.
+// MC_MAMMONITE,BL_PC,1,50 // In normal maps, players deal +50% damage to other players with Mammonite.
+// MO_EXTREMITYFIST,BL_PC,6,-50 // In PVP and GVG, players deal -50% (half) damage to other players with Asura Strike.
+// AB_ADORAMUS,BL_PC,6,50,0,10,15 // In PVP and GVG, players deal +50% damage to other players, +0% to mobs, +10% to bosses, and +15% to other with Adoramus.
 
 

+ 0 - 79
db/import-tmpl/skill_db.txt

@@ -1,79 +0,0 @@
-//id,range,hit,inf,element,nk,splash,max,list_num,castcancel,cast_defence_rate,inf2,maxcount,skill_type,blow_count,inf3,name,description
-// 01 ID
-// 02 range (combo skills do not check for range when used,
-//           if range is < 5, the skill is considered melee-range)
-// 03 hit (8- repeated hitting, 6- single-hit)
-// 04 inf (0- passive, 1- enemy, 2- place, 4- self, 16- friend, 32- trap)
-// 05 element (0 - neutral, 1 - water, 2 - earth, 3 - fire, 4 - wind, 5 - poison,
-//             6 - holy, 7 - dark, 8 - ghost, 9 - undead, -1 - use weapon element
-//             -2 - use endowed element, -3 - use random element.)
-// 06 nk (skill damage properties):
-//    0x01 - No damage skill
-//    0x02 - Has splash area
-//    0x04 - Damage should be split among targets
-//    0x08 - Skill ignores caster's % damage cards (misc type always ignores)
-//    0x10 - Skill ignores elemental adjustments
-//    0x20 - Skill ignores target's defense (misc type always ignores)
-//    0x40 - Skill ignores target's flee (magic type always ignores)
-//    0x80 - Skill ignores target's def cards
-// 07 splash/effect range
-//      -1 - for screen-wide
-//       0 - no splash
-//      all other values follow the formula: value * 2 + 1
-//       1 - 3x3
-//       2 - 5x5
-//       3 - 7x7
-// 08 MaxLv
-// 09 Number of hits (when positive, damage is increased by hits, 
-//    negative values just show number of hits without increasing total damage)
-// 10 Cast interrupted when hit?
-// 11 defense-reduction rate during cast.
-// 12 inf2 (skill information 2):
-//    0x00001 - quest skill
-//    0x00002 - npc skill
-//    0x00004 - wedding skill
-//    0x00008 - spirit skill
-//    0x00010 - guild skill
-//    0x00020 - song/dance
-//    0x00040 - ensemble skill
-//    0x00080 - trap
-//    0x00100 - skill that damages/targets yourself
-//    0x00200 - cannot be casted on self (if inf = 4, auto-select target skill)
-//    0x00400 - usable only on party-members (and enemies if skill is offensive)
-//    0x00800 - usable only on guild-mates (and enemies if skill is offensive)
-//    0x01000 - disable usage on enemies (for non-offensive skills).
-//    0x02000 - available skill for SC_AUTOSHADOWSPELL
-//    0x04000 - chorus skill
-//    0x08000 - skill that ignore bg reduction
-//    0x10000 - skill that ignore gvg reduction
-//    0x20000 - makes 'self'/'place' skill cannot be casted/placed when near NPC (see 'db/skill_nonearnpc_db.txt' for more options)
-//    0x40000 - skill that can hit trap-type skill (inf2 has 0x00080)
-// 13 maxcount: max amount of skill instances to place on the ground when
-//    player_land_skill_limit/monster_land_skill_limit is enabled. For skills
-//    that attack using a path, this is the path length to be used.
-// 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
-// 17 Name
-// 18 Description
-

+ 132 - 0
db/import-tmpl/skill_db.yml

@@ -0,0 +1,132 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2019 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Skill Database
+###########################################################################
+#
+# Skill Settings
+#
+###########################################################################
+# - Id                        Unique skill ID.
+#   Name                      Skill Aegis name.
+#   Description               Skill description.
+#   MaxLevel                  Max skill level.
+#   Type                      Skill type. (Default: None)
+#   TargetType                Skill target type. (Default: Passive)
+#   DamageFlags:              Skill damage properties.
+#   Flags:                    Skill information flags.
+#   Range:                    Skill range. (Default: 0)
+#     - Level                 Skill level.
+#       Size                  Range at specific skill level.
+#   Hit                       Skill hit type. (Default: Normal)
+#   HitCount:                 Skill hit count. (Default: 0)
+#     - Level                 Skill level.
+#       Count                 Number of hits at specific skill level.
+#   Element:                  Skill element. (Default: Neutral)
+#     - Level                 Skill level.
+#       Element               Element at specific skill level.
+#   SplashArea:               Skill splash area of effect. (Default: 0)
+#     - Level                 Skill level.
+#       Area                  Splash area at specific skill level.
+#   ActiveInstance:           Maximum amount of active skill instances that can be on the ground. (Default: 0)
+#     - Level                 Skill level.
+#       Max                   Active instances at specific skill level.
+#   Knockback:                Amount of tiles the skill knockbacks. (Default: 0)
+#     - Level                 Skill level.
+#       Amount                Knockback count at specific skill level.
+#   CopyFlags:                Determines if the skill is copyable. (Optional)
+#     Skill:                  Type of skill that can copy.
+#     RemoveRequirement:      Remove a requirement type. (Optional)
+#   NoNearNPC:                Determines if the skill can be used near a NPC. (Optional)
+#     AdditionalRange         Number of cells from an NPC where the skill can be cast. (Optional)
+#     Type:                   Type of NPC.
+#   CastCancel                Cancel cast when hit. (Default: true)
+#   CastDefenseReduction      Defense reduction rate during skill cast. (Default: 0)
+#   CastTime:                 Time to cast the skill in milliseconds. (Default: 0)
+#     - Level                 Skill level.
+#       Time                  Cast time at specific skill level in milliseconds.
+#   AfterCastActDelay:        Time the character cannot use skills in milliseconds. (Default: 0)
+#     - Level                 Skill level.
+#       Time                  After cast action delay at specific skill level in milliseconds.
+#   AfterCastWalkDelay:       Time before the character can move again in milliseconds. (Default: 0)
+#     - Level                 Skill level.
+#       Time                  After cast walk delay at specific skill level in milliseconds.
+#   Duration1:                Duration of the skill in milliseconds. (Default: 0)
+#     - Level                 Skill level.
+#       Time                  Skill duration at specific skill level in milliseconds.
+#   Duration2:                Duration of the skill in milliseconds. (Default: 0)
+#     - Level                 Skill level.
+#       Time                  Skill duration at specific skill level in milliseconds.
+#   Cooldown:                 Time before the character can use the same skill again in milliseconds. (Default: 0)
+#     - Level                 Skill level.
+#       Time                  Cooldown at specific skill level in milliseconds.
+#   FixedCastTime:            Time that is fixed during cast of the skill in milliseconds. (Default: 0)
+#     - Level                 Skill level.
+#       Time                  After cast action delay at specific skill level in milliseconds.
+#   CastTimeFlags:            Effects of the skill's cast time. (Optional)
+#   CastDelayFlags:           Effects of the skill's delay. (Optional)
+#   Requires:                 List of requirements to cast the skill. (Optional)
+#     HpCost:                 HP required to cast. (Default: 0)
+#       - Level               Skill level.
+#         Amount              HP required at specific skill level.
+#     SpCost:                 SP required to cast. (Default: 0)
+#       - Level               Skill level.
+#         Amount              SP required at specific skill level.
+#     HpRateCost:             HP rate required to cast. If positive, uses current HP, else uses Max HP. (Default: 0)
+#       - Level               Skill level.
+#         Amount              HP rate required at specific skill level.
+#     SpRateCost:             SP rate required to cast. If positive, uses current SP, else uses Max SP. (Default: 0)
+#       - Level               Skill level.
+#         Amount              SP rate required at specific skill level.
+#     MaxHpTrigger:           Maximum amount of HP to cast the skill. (Default: 0)
+#       - Level               Skill level.
+#         Amount              Maximum HP trigger required at specific skill level.
+#     ZenyCost:               Zeny required to cast. (Default: 0)
+#       - Level               Skill level.
+#         Amount              Zeny required at specific skill level.
+#     Weapon:                 Weapon required to cast. (Default: All)
+#     Ammo:                   Ammo required to cast. (Default: None)
+#     AmmoAmount:             Ammo amount required to cast. (Default: 0)
+#       - Level               Skill level.
+#         Amount              Ammo amount required at specific skill level.
+#     State                   Special state required to cast. (Default: None)
+#     Status:                 Status change required to cast. (Default: nullptr)
+#     SphereCost:             Spirit sphere required to cast. (Default: 0)
+#       - Level               Skill level.
+#         Amount              Spirit sphere required at specific skill level.
+#     ItemCost:               Item required to cast. (Default: 0)
+#       - Item                Item name.
+#         Amount              Item amount.
+#     Equipment:              Equipped item required to cast. (Default: nullptr)
+#   Unit:                     Skill unit values. (Optional)
+#     Id                      Skill unit ID.
+#     AlternateId:            Alternate skill unit ID. (Default: 0)
+#     Layout:                 Skill unit layout. (Default: 0)
+#       - Level               Skill level.
+#         Size                Unit layout at specific skill level.
+#     Range:                  Skill unit range. (Default: 0)
+#       - Level               Skill level.
+#         Size                Unit range at specific skill level.
+#     Interval                Skill unit interval in milliseconds. (Default: 0)
+#     Target                  Skill unit target type. (Default: All)
+#     Flag:                   Skill unit flags. (Default: None)
+###########################################################################
+
+Header:
+  Type: SKILL_DB
+  Version: 1

+ 0 - 8
db/import-tmpl/skill_improvise_db.txt

@@ -1,8 +0,0 @@
-// Improvise Database
-// Database for skills that can be summoned trough Randomize Spell/Improvised Song (Minstrel/Wanderer Skill).
-//
-// Structure of Database:
-// SkillID,Rate
-//
-// - To remove entry by importing, put 0 on 'Rate'
-

+ 0 - 28
db/import-tmpl/skill_nonearnpc_db.txt

@@ -1,28 +0,0 @@
-// Skill Distance-to-NPC Database
-// Prevents skills from being used near NPC types using INF2_NO_NEARNPC.
-//
-// Structure of Database:
-// SkillName,AdditionalRange{,NPC Type}
-//
-// AdditionalRange:
-//	Number of cells from an NPC where the skill can be cast.
-//	If zero, this will read the splash range value from skill_db;
-//	if that is also zero, range+layout's range from skill_unit_db will be used.
-//
-// NPC Type (bitmask):
-//	1 = warp portal, 2 = shop NPC, 4 = normal NPC script, 8 = tomb
-//
-// Examples:
-// MG_SAFETYWALL,2
-//	Safety Wall can't be placed within 2 ground cells of an NPC.
-//	(MG_SAFETYWALL doesn't have splash, layout range, and range value,
-//	so we must add the 'additional_range', or it will be pointless.)
-//
-// GS_DESPERADO,2
-//	Desperado can't be casted if the caster is standing within 5 cells of an NPC.
-//	(Why? GS_DESPERADO has 3 cells of splash range +2 'additional_range' here.)
-//
-// SC_CHAOSPANIC,0,1
-//	Chaos Panic can't be placed within 2 ground cells of a warp portal.
-//	(Because SC_CHAOSPANIC doesn't have splash range, it uses layout range.)
-

+ 0 - 33
db/import-tmpl/skill_require_db.txt

@@ -1,33 +0,0 @@
-// Skill Requirements Database
-//
-// Structure of Database:
-// SkillID,HPCost,MaxHPTrigger,SPCost,HPRateCost,SPRateCost,ZenyCost,RequiredWeapons,RequiredAmmoTypes,RequiredAmmoAmount,RequiredState,RequiredStatuses,SpiritSphereCost,RequiredItemID1,RequiredItemAmount1,RequiredItemID2,RequiredItemAmount2,RequiredItemID3,RequiredItemAmount3,RequiredItemID4,RequiredItemAmount4,RequiredItemID5,RequiredItemAmount5,RequiredItemID6,RequiredItemAmount6,RequiredItemID7,RequiredItemAmount7,RequiredItemID8,RequiredItemAmount8,RequiredItemID9,RequiredItemAmount9,RequiredItemID10,RequiredItemAmount10,RequiredEquipment
-//
-// If HP/SPratecost is positive, it is a percent of your current life, otherwise it is a percent of your max life.
-//
-// Legend for 'RequiredState' field:
-//  none = Nothing special
-//  hidden = Requires on hidden status by using Hiding, Cloaking, or maybe Chasewalk
-//  riding = Requires to ride either a peco or a dragon
-//  falcon = Requires a Falcon
-//  cart = Requires a Pushcart (for renewal can replace this state by SC_PUSH_CART in 'RequiredStatuses' field)
-//  shield = Requires a 0,shield equipped
-//  recover_weight_rate = Requires to be less than 50% weight
-//  move_enable = Requires to be able to move
-//  water = Requires to be standing on a water cell
-//  dragon = Requires to ride a Dragon
-//  warg = Requires a Warg
-//  ridingwarg = Requires to ride a Warg
-//  mado = Requires to have an active mado
-//  elementalspirit = Requires to have an Elemental Spirit summoned.
-//  peco = Requires riding a peco
-//
-// '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)
-//	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)
-

+ 0 - 29
db/import-tmpl/skill_unit_db.txt

@@ -1,29 +0,0 @@
-// Skill Unit Database
-//
-// Structure of Database:
-// ID,unit ID,unit ID 2,layout,range,interval,target,flag
-//
-// layout = -1:special, 0:1*1, 1:3*3, 2:5*5, up to 5:11*11
-// target = friend (party +guildmates +neutral players) / party / guild
-//          ally (party +guildmates) / all / enemy
-// flag 0x0001(UF_DEFNOTENEMY)		If 'defunit_not_enemy' is set, the target is changed to 'friend'
-//      0x0002(UF_NOREITERRATION)	Spell cannot be stacked
-//      0x0004(UF_NOFOOTSET)		Spell cannot be cast near/on targets
-//      0x0008(UF_NOOVERLAP)		Spell effects do not overlap
-//      0x0010(UF_PATHCHECK)		Only cells with a shootable path will be placed
-//      0x0020(UF_NOPC)				Spell cannot affect players.
-//      0x0040(UF_NOMOB)			Spell cannot affect mobs.
-//      0x0080(UF_SKILL)			Spell CAN affect skills.
-//      0x0100(UF_DANCE)			Dance skill
-//      0x0200(UF_ENSEMBLE)			Ensemble skill
-//      0x0400(UF_SONG)				Song skill
-//      0x0800(UF_DUALMODE)			Spell has effects both at an interval and when you step in/out
-//      0x2000(UF_RANGEDSINGLEUNIT)	Layout hack, use layout range propriety but only display center.
-// 	Example: 0x006 = 0x002+0x004 -> Cannot be stacked nor cast near targets
-//
-// Notes:
-//    0x89,0x8a,0x8b without indication
-//
-//    u1   u2 lay  r intr target  flag
-//
-

+ 0 - 9
db/import-tmpl/spellbook_db.txt

@@ -1,9 +0,0 @@
-// Reading Spellbook Preserve Points Database
-//
-// Structure of Database:
-// SkillID,PreservePoints,Required Book
-//
-// NOTE:
-// - To add more entries, increase MAX_SKILL_SPELLBOOK_DB in skill.h.
-// - To remove entry by importing, put 0 for 'PreservePoints'
-

+ 32 - 0
db/import-tmpl/spellbook_db.yml

@@ -0,0 +1,32 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2019 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Reading Spellbook Database
+###########################################################################
+#
+# Reading Spellbook Settings
+#
+###########################################################################
+# - Skill             Skill that is usable through a Spellbook.
+#   Book              Book item required to cast skill.
+#   PreservePoints    Amount of points required to preserve the skill into the book.
+###########################################################################
+
+Header:
+  Type: READING_SPELLBOOK_DB
+  Version: 1

+ 48 - 0
db/instance_db.yml

@@ -0,0 +1,48 @@
+# This file is a part of rAthena.
+#   Copyright(C) 2019 rAthena Development Team
+#   https://rathena.org - https://github.com/rathena
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+###########################################################################
+# Instance Database
+###########################################################################
+#
+# Instance Settings
+#
+###########################################################################
+# - Id                Instance ID.
+#   Name              Instance Name.
+#   TimeLimit         Total lifetime of instance in seconds. (Default: 3600)
+#   IdleTimeOut       Time before an idle instance is destroyed in seconds. (Default: 300)
+#   Destroyable       Toggles the ability to destroy the instance using instance 'Destroy' button. (Default: true)
+#                     Note: the button is displayed based on parties. For any mode, it requires the party leader to be the instance owner to destroy it.
+#   Enter:            Instance entrance coordinates.
+#     Map             Map Name where players start.
+#     X               X Coordinate where players start.
+#     Y               Y Coordinate where players start.
+#   AdditionalMaps:   List of maps that are part of an instance. (Optional)
+###########################################################################
+
+Header:
+  Type: INSTANCE_DB
+  Version: 1
+
+Footer:
+  Imports:
+  - Path: db/pre-re/instance_db.yml
+    Mode: Prerenewal
+  - Path: db/re/instance_db.yml
+    Mode: Renewal
+  - Path: db/import/instance_db.yml

+ 1 - 1
db/item_avail.txt

@@ -11,7 +11,7 @@
 // Think of it as a way to disguise items.
 // Think of it as a way to disguise items.
 // Don't sell the item in same shop with the source. Example, don't put 2240 & 2241 in same place!
 // Don't sell the item in same shop with the source. Example, don't put 2240 & 2241 in same place!
 
 
-2240,2241 //Beard - Grampa Beard
+//2240,2241 //Beard - Grampa Beard
 
 
 //Treasure Hunters Quest Items
 //Treasure Hunters Quest Items
 //use these aliases if your game client doesn't support them normally
 //use these aliases if your game client doesn't support them normally

+ 8 - 11
db/job_db2.txt

@@ -280,9 +280,9 @@
 // Baby Mechanic (Mado)
 // Baby Mechanic (Mado)
 4112,6,1,0,0,1,0,6,2,5,4,0,0,4,6,0,0,2,0,3,3,4,5,0,0,3,6,0,0,3,0,1,1,3,6,0,0,4,4,0,0,0,3,3,1,1,0,0,5,2,0,6,1,5,0,4,3,2,0,5,1
 4112,6,1,0,0,1,0,6,2,5,4,0,0,4,6,0,0,2,0,3,3,4,5,0,0,3,6,0,0,3,0,1,1,3,6,0,0,4,4,0,0,0,3,3,1,1,0,0,5,2,0,6,1,5,0,4,3,2,0,5,1
 // Super Novice (Expanded)
 // Super Novice (Expanded)
-4190,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0
+4190,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,4,5,0
 // Super Baby (Expanded)
 // Super Baby (Expanded)
-4191,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0
+4191,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,4,5,0
 // Kagerou
 // Kagerou
 4211,5,0,4,0,2,3,0,1,6,0,5,1,2,0,4,6,3,0,1,5,2,0,6,3,4,0,5,0,2,0,1,4,0,5,4,0,3,5,1,0,2,4,1,0,5,6,2,1,0,5
 4211,5,0,4,0,2,3,0,1,6,0,5,1,2,0,4,6,3,0,1,5,2,0,6,3,4,0,5,0,2,0,1,4,0,5,4,0,3,5,1,0,2,4,1,0,5,6,2,1,0,5
 // Oboro
 // Oboro
@@ -312,18 +312,15 @@
 // Baby Star Gladiator (Union)
 // Baby Star Gladiator (Union)
 4238,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2
 4238,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2
 //================================
 //================================
-// Note: Star Emperor and Soul Reaper bonus stats are unknown. Using Star Gladiator and Soul Linker's
-// bonus stats for now until I know the official ones.
-//
 // Star Emperor
 // Star Emperor
-4239,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2
+4239,1,5,0,0,2,0,4,1,6,0,5,1,2,0,4,6,3,0,1,5,2,0,1,3,4,0,5,0,2,5,1,0,0,5,2,6,3,5,1,0,2,3,1,0,5,0,2,1,0,5,0,0,0,0,0,1,0,0,2,0
 // Soul Reaper
 // Soul Reaper
-4240,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5
+4240,4,5,0,0,4,3,5,0,0,0,5,4,2,0,5,4,3,0,1,5,2,0,0,3,4,5,0,1,2,5,4,0,0,5,2,0,3,5,4,0,2,3,1,4,5,0,2,0,4,5,0,2,0,4,0,0,0,0,4,0
 // Baby Star Emperor
 // Baby Star Emperor
-4241,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2
+4241,1,5,0,0,2,0,4,1,6,0,5,1,2,0,4,6,3,0,1,5,2,0,1,3,4,0,5,0,2,5,1,0,0,5,2,6,3,5,1,0,2,3,1,0,5,0,2,1,0,5,0,0,0,0,0,1,0,0,2,0
 // Baby Soul Reaper
 // Baby Soul Reaper
-4242,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5
+4242,4,5,0,0,4,3,5,0,0,0,5,4,2,0,5,4,3,0,1,5,2,0,0,3,4,5,0,1,2,5,4,0,0,5,2,0,3,5,4,0,2,3,1,4,5,0,2,0,4,5,0,2,0,4,0,0,0,0,4,0
 // Star Emperor (Union)
 // Star Emperor (Union)
-4243,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2
+4243,1,5,0,0,2,0,4,1,6,0,5,1,2,0,4,6,3,0,1,5,2,0,1,3,4,0,5,0,2,5,1,0,0,5,2,6,3,5,1,0,2,3,1,0,5,0,2,1,0,5,0,0,0,0,0,1,0,0,2,0
 // Baby Star Emperor (Union)
 // Baby Star Emperor (Union)
-4244,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2
+4244,1,5,0,0,2,0,4,1,6,0,5,1,2,0,4,6,3,0,1,5,2,0,1,3,4,0,5,0,2,5,1,0,0,5,2,6,3,5,1,0,2,3,1,0,5,0,2,1,0,5,0,0,0,0,0,1,0,0,2,0

+ 0 - 31
db/magicmushroom_db.txt

@@ -1,31 +0,0 @@
-// Magic Mushroom Database
-// List of skills that are randomly used through Magic Mushroom status change.
-//
-// Structure of Database:
-// SkillID{,RemoveFlag}
-//
-// - To remove entry by importing, put 1 value on 'RemoveFlag'
-
-7	//SM_MAGNUM
-8	//SM_ENDURE
-10	//MG_SIGHT
-24	//AL_RUWACH
-32	//AL_CRUCIS
-33	//AL_ANGELUS
-45	//AC_CONCENTRATION
-61	//KN_AUTOCOUNTER
-74	//PR_MAGNIFICAT
-110	//BS_HAMMERFALL
-114	//BS_MAXIMIZE
-142	//NV_FIRSTAID
-150	//TF_BACKSLIDING
-151	//TF_PICKSTONE
-157	//MG_ENERGYCOAT
-249	//CR_AUTOGUARD
-256	//CR_PROVIDENCE
-261	//MO_CALLSPIRITS
-270	//MO_EXPLOSIONSPIRITS
-326	//DC_SCREAM
-500	//GS_GLITTERING
-527	//NJ_TATAMIGAESHI
-531	//NJ_UTSUSEMI

Some files were not shown because too many files changed in this diff