Ver Fonte

Merge branch 'master' into hotfix/issue2173

Aleos há 4 anos atrás
pai
commit
10e1b3a7fe
100 ficheiros alterados com 3632 adições e 1552 exclusões
  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
 # Trim trailing whitespace
+# Adjust character set
 [*]
 insert_final_newline = 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.
 [*.{yml,yaml}]

+ 2 - 1
.gitattributes

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

+ 7 - 2
.gitignore

@@ -29,6 +29,7 @@ Thumbs.db
 *.a
 *.vcxproj.user
 /char-server
+/csv2yaml
 /config.log
 /config.status
 /core
@@ -71,7 +72,7 @@ Thumbs.db
 /src/common/Makefile
 /src/common/obj_all
 /src/common/obj_sql
-/src/common/svnversion.h
+/src/common/version.hpp
 
 # /src/custom/
 /src/custom
@@ -83,7 +84,7 @@ Thumbs.db
 # /src/map/
 /src/map/Makefile
 /src/map/obj_sql
-/src/map/pcre.h
+/src/map/pcre.hpp
 
 # /src/tool/
 /src/tool/Makefile
@@ -112,6 +113,7 @@ Thumbs.db
 
 # bat tools
 /charserv.bat
+/csv2yaml.bat
 /logserv.bat
 /mapcache.bat
 /mapserv.bat
@@ -122,3 +124,6 @@ Thumbs.db
 /libmysql.dll
 /pcre8.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>
 Daegaladh <Daegaladh@users.noreply.github.com> <daegaladh@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 Deadly Silence <mail@deadly-silence.de> <deadlysilence@54d463be-8e91-2dee-dedb-b68131a5f0ec>
+Epoque1 <22254628+Epoque1@users.noreply.github.com> <epoque11@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 euphyy <euphy.raliel@rathena.org> <euphyy@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 flaviojs <flaviojs2005@gmail.com> <FlavioJS@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 flaviojs <flaviojs2005@gmail.com> <flaviojs2005@54d463be-8e91-2dee-dedb-b68131a5f0ec>
@@ -133,7 +134,6 @@ skotlex <skotlex@mailforce.net> <Skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 # mc_cameri <mc_cameri@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 # evera <evera@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 # SinSloth <SinSloth@54d463be-8e91-2dee-dedb-b68131a5f0ec>
-# epoque11 <epoque11@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 # DracoRPG <DracoRPG@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 # littlewolf <littlewolf@54d463be-8e91-2dee-dedb-b68131a5f0ec>
 # eaac <eaac@54d463be-8e91-2dee-dedb-b68131a5f0ec>

+ 2 - 2
.travis.yml

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

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

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

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

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

+ 1 - 0
AUTHORS

@@ -227,6 +227,7 @@ Sirius_White
 sk
 SketchyPhoenix
 Skotlex
+SnakeDrak
 spamrat
 SPDFMember
 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
 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/
 directory. These include detailed explanations of NPC script commands, atcommands (@),
 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
 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)!
+
+## 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
 clone_folder: c:\projects\rathena
 # We do not need the git history for our integration tests
@@ -8,10 +8,8 @@ pull_requests:
   do_not_increment_build_number: true
 environment:
   matrix:
-  - VisualStudioVersion: 14.0
-    Defines: "\"BUILDBOT\""
-  - VisualStudioVersion: 14.0
-    Defines: "\"BUILDBOT;PRERE\""
+  - Defines: "\"BUILDBOT\""
+  - Defines: "\"BUILDBOT;PRERE\""
 platform:
   - Win32
   - x64
@@ -26,8 +24,12 @@ build_script:
 services: mysql
 test_script:
 - cmd: >-
+    rem ========================================================================
+    
     rem Set up the environment variables we need
     
+    rem ========================================================================
+    
     set DB_HOST=127.0.0.1
     
     set DB_ROOT=root
@@ -44,53 +46,28 @@ test_script:
     
     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 ========================================================================
+    
     start /d tools\ci npc.bat
     
+    rem ========================================================================
+    
     rem Start the map server
     
+    rem ========================================================================
+    
     login-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 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
-//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary)
+//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
 //--------------------------------------------------------------
 
 // Who should have a baseatk value (makes str affect damage)? (Note 3)
-enable_baseatk: 9
+enable_baseatk: 0x9
+enable_baseatk_renewal: 0x29F
 
 // Who can have perfect flee? (Note 3)
 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 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
-//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
+//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
 //--------------------------------------------------------------
 
 // Melee damage adjustments (non skills) for Battleground maps (Note 2)
@@ -30,3 +30,7 @@ bg_flee_penalty: 20
 
 // Interval before updating the bg-member map mini-dots (milliseconds)
 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 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?
 // 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.
 // Official: Disabled.
 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)
 multi_level_up: no
 
+// Allow multi level up until a certain level?
+// This only triggers if multi_level_up is enabled.
+// Default: 0 (Unlimited)
+multi_level_up_base: 0
+multi_level_up_job: 0
+
 // Setting this can cap the max experience one can get per kill specified as a
 // % of the current exp bar. (Every 10 = 1.0%)
 // For example, set it to 500 and no matter how much exp the mob gives, 

+ 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 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
-//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
+//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
 //--------------------------------------------------------------
 
 // Buying store (Note 1)
@@ -59,6 +59,10 @@ feature.autotrade_sit: 1
 // Delay in miliseconds to open vending/buyingsotre after player logged in.
 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)
 // Requires: 2014-10-22bRagexe or later
 feature.roulette: on
@@ -67,14 +71,39 @@ feature.roulette: on
 // Requires: 2015-05-13aRagexe or later
 feature.achievement: on
 
+// Equipment Switch (Note 1)
+// Requires: 2017-02-08bRagexeRE or later
+feature.equipswitch: on
+
+// 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)
 // Requires: 2017-09-20bRagexeRE or later
-feature.homunculus_autofeed: off
+feature.homunculus_autofeed: on
+
+// At which rate should homunculus autofeeding trigger? (Note 2)
+// Default: 30
+//
+// NOTE:
+// This setting only applies, if your client side LUAs are bugged.
+// By default the client triggers the feeding packet itself once
+// it reaches the limit that is hardcoded in the client.
+feature.homunculus_autofeed_rate: 30
 
 // Attendance System (Note 1)
 // Requires: 2018-03-07bRagexeRE or later
-feature.attendance: off
+feature.attendance: on
 
 // Private Airship System (Note 1)
 // Requires: 2018-03-21aRagexeRE or later
-feature.privateairship: off
+feature.privateairship: on

+ 18 - 1
conf/battle/gm.conf

@@ -7,6 +7,17 @@
 // 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)
 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.
 ban_hack_trade: 5
 
-// requires RENEWAL_EXP or RENEWAL_DROP to be enabled (src/config/renewal.h)
+// requires RENEWAL_EXP or RENEWAL_DROP to be enabled (src/config/renewal.hpp)
 // modifies @mobinfo to display the users' real drop rate as per renewal_drop formula
 // modifies @iteminfo to not display the minimum item drop rate (since it can't tell the mob level)
 // modifies @whodrops to display the users' real drop rate as per renewal_drop formula
@@ -34,3 +45,9 @@ atcommand_mobinfo_type: 1
 // This option is for @baselevelup and @joblevelup
 // Default: 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.
 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)
 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 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
-//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
+//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
 //--------------------------------------------------------------
 
 // Homunculus setting (Note 3)
@@ -50,7 +50,7 @@ homunculus_auto_vapor: 80
 homunculus_max_level: 99
 
 // Max level for Homunculus S
-homunculus_S_max_level: 150
+homunculus_S_max_level: 175
 
 // Growth level for Homunculus S
 // 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) 
 // Official: 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 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
-//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
+//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
 //--------------------------------------------------------------
 
 // The highest value at which an item can be sold via the merchant vend skill. (in zeny)
@@ -133,3 +133,14 @@ broadcast_hide_name: 2
 
 // Enable to sell rental item to NPC shop? (Note 1)
 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 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
-//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
+//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
 //--------------------------------------------------------------
 
 // PK Server Mode.  Turns entire server pvp(excluding towns). Experience loss is doubled if killed by another player.
@@ -99,7 +99,7 @@ duel_only_on_same_map: no
 // Set to 0 for no cell stacking checks and free movement.
 // Custom - This variation will make every full cell to be considered a wall.
 // NOTE: For the custom setting to take effect you have to use a server compiled
-// with Cell Stack Limit support (see src/map/map.h)
+// with Cell Stack Limit support (see src/map/map.hpp)
 official_cell_stack_limit: 1
 custom_cell_stack_limit: 1
 
@@ -114,6 +114,9 @@ at_timeout: 0
 // Makes player cannot be attacked when autotrade? (turns player's state.monster_ignore) (Note 1)
 at_monsterignore: no
 
+// Should autotrade trigger OnPCLogout script events? (Note 1)
+at_logout_event: yes
+
 // Auction system, fee per hour. Default is 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 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
-//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
+//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
 //--------------------------------------------------------------
 
 // The HP rate of MVPs. (Note 2)
@@ -71,6 +71,7 @@ monster_chase_refresh: 3
 // 1: Enable mob-warping when standing on NPC-warps
 // 2: Enable mob-warping when standing on Priest Warp Portals
 // 4: Disable warping when the target map is a 'nobranch' map.
+// 8: Enable mob-warping when standing on Dimensional Door
 mob_warp: 0
 
 // 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
 // exploits and be notified about them, you can set this to yes.
 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 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
-//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
+//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
 //--------------------------------------------------------------
 
 // Rate for catching pets (Note 2)
@@ -21,11 +21,8 @@ pet_friendly_rate: 100
 // The rate at which a pet will become hungry. (Note 2)
 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)
+// These bonuses are unofficial and found in the import/pet_db.yml
 pet_equip_required: yes
 
 // 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%.
 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)
 // Note: Offensive pet skills need at least pet_attack_support or 
 // 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)
 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 2: Value is in percents (100 means 100%)
 // Note 3: Value is a bit field. If no description is given,
-//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
+//         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary, 128: NPC, 512: Elemental)
 //--------------------------------------------------------------
 
 // Players' maximum HP rate? (Default is 100)
@@ -244,9 +244,11 @@ fame_taekwon_mission: 1
 // Refined own forged weapon to +10
 fame_refine_lv1: 1
 fame_refine_lv2: 25
-fame_refine_lv3: 10000
+fame_refine_lv3: 1000
 // Success to forge a lv3 weapon with 3 additional ingredients
 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
 fame_pharmacy_3: 1
 fame_pharmacy_5: 3
@@ -270,8 +272,7 @@ fame_pharmacy_10: 50
 idletime_option: 0x1F
 
 // 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"
 //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
 
 // 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)
 // 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
 
 // 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
 
 // 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)
 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)
 player_skill_partner_check: yes
 
@@ -335,7 +343,7 @@ stormgust_knockback: yes
 // For RENEWAL_CAST (Note 2)
 // 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.
-// 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
 
 // 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).
 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)
 // 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

+ 1 - 1
conf/battle/status.conf

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

+ 4 - 4
conf/char_athena.conf

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

+ 2 - 1
conf/groups.conf

@@ -87,13 +87,13 @@ groups: (
 	inherit: ( /*empty list*/ )
 	commands: {
 		changedress: true
+		resurrect: true
 	}
 	permissions: {
 		/* without this basic permissions regular players could not 
 		trade or party */
 		can_trade: true
 		can_party: true
-		command_enable: true
 		attendance: true
 	}
 },
@@ -284,6 +284,7 @@ groups: (
 	permissions: {
 		can_trade: true
 		can_party: true
+		command_enable: true
 		all_skill: false
 		all_equipment: 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
 #     Name: "VIP Storage"
-#     Table: "vip_storage"
+#     Table: vip_storage
 #     Max: 300

+ 1 - 3
conf/inter_athena.conf

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

+ 26 - 14
conf/inter_server.yml

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

+ 17 - 2
conf/login_athena.conf

@@ -52,7 +52,8 @@ console_silent: 0
 console: off
 
 // 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?
 //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
 
 // How many characters are allowed per account?
-// You cannot exceed the limit of MAX_CHARS slots, defined in mmo.h, or chars_per_account
+// You cannot exceed the limit of MAX_CHARS slots, defined in mmo.hpp, or chars_per_account
 // will default to MAX_CHARS.
 // 0 will default to the value of MIN_CHARS. (default)
 chars_per_account: 0
@@ -110,6 +111,16 @@ start_limited_time: -1
 // NOTE: Will not work with clients that use <passwordencrypt>
 use_MD5_passwords: no
 
+// User count colorization on login window (requires PACKETVER >= 20170726)
+// Disable colorization and description in general?
+usercount_disable: no
+// Amount of users that will display in green
+usercount_low: 200
+// Amount of users that will display in yellow
+usercount_medium: 500
+// Amount of users that will display in red
+usercount_high: 1000
+
 // Ipban features
 ipban_enable: yes
 // Dynamic password failure ipban system
@@ -152,6 +163,10 @@ dnsbl_servers: bl.blocklist.de, socks.dnsbl.sorbs.net
 // Note: see 'doc/md5_hashcheck.txt' for more details.
 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
 // 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.

+ 0 - 2
conf/map_athena.conf

@@ -117,8 +117,6 @@ save_settings: 4095
 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.
-help_txt: conf/help.txt
-help2_txt: conf/help2.txt
 charhelp_txt: conf/charhelp.txt
 
 // 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.

+ 40 - 8
conf/msg_conf/map_msg.conf

@@ -41,7 +41,7 @@
 24: Job level raised.
 25: Job level lowered.
 26: Help commands:
-27: Commands help is not available.
+//27: free
 28: No player found.
 29: 1 player found.
 30: %d players found.
@@ -353,6 +353,12 @@
 // 334: Thirty-Four Castles
 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
 343: Name: %s
 344: (%s)
@@ -458,8 +464,7 @@
 // Homunculus messages
 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
 460: Please enter a valid language (usage: @langtype <language>).
@@ -855,7 +860,15 @@
 // Private Airship
 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
@@ -1042,7 +1055,7 @@
 
 // @reloadatcommand
 1036: Error reading groups.conf, reload failed.
-1037: Error reading atcommand_athena.conf, reload failed.
+//1037 free
 
 // @mapinfo
 1038: Please enter at least one valid list number (usage: @mapinfo <0-3> <map>).
@@ -1060,7 +1073,10 @@
 1050: Other Flags:
 1051: Other Flags2:
 1052: Skill Damage Adjustments:
-//1053-1064 free
+1053:  > [Map] %d%%, %d%%, %d%%, %d%% | Caster:%d
+1054:  > [Map Skill] Name : Player, Monster, Boss Monster, Other | Caster
+1055: Skill Duration Adjustments:
+//1056-1064 free
 1065:  No Exp Penalty: %s | No Zeny Penalty: %s
 1066: On
 1067: Off
@@ -1518,7 +1534,7 @@
 1370: Usage: ex. "@set PoringCharVarSTR$" outputs its value, Super Duper String.
 1371: NPC 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
 1375: %s is blank.
 
@@ -1551,7 +1567,7 @@
 1391: You do not possess a cart to be removed
 1392: Cart Added.
 
-// atcommand.c::is_atcommand
+// atcommand.cpp::is_atcommand
 1393: You can't use commands while dead.
 
 // @clearstorage
@@ -1691,5 +1707,21 @@
 1503: You've entered a PK Zone.
 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
 import: conf/msg_conf/import/map_msg_eng_conf.txt

+ 6 - 7
conf/msg_conf/map_msg_chn.conf

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

+ 6 - 7
conf/msg_conf/map_msg_frn.conf

@@ -45,7 +45,7 @@
 24: Job level augmenté.
 25: Job level baissé.
 26: Commandes d'aide:
-27: Commandes d'aide non-disponible.
+//27: free
 28: Aucun Joueur trouvé.
 29: 1 Joueur trouvé.
 30: %d Joueurs trouvés.
@@ -449,8 +449,7 @@
 // Homunculus messages
 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
 460: Entrez une langue (usage: @langtype <langue>).
@@ -880,7 +879,7 @@
 
 // @reloadatcommand
 1036: Erreur à la lecture de groups.conf, reload échoué.
-1037: Erreur à la lecture de atcommand_athena.conf, reload échoué.
+//1037 free
 
 // @mapinfo
 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.
 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.
-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
 //1376: free
 
@@ -1386,7 +1385,7 @@
 1391: Vous ne possédez pas de chariot.
 1392: Chariot ajouté.
 
-// atcommand.c::is_atcommand
+// atcommand.cpp::is_atcommand
 1393: Les morts ne pouvent pas utiliser de commande.
 
 // @clearstorage

+ 1 - 1
conf/msg_conf/map_msg_grm.conf

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

+ 5 - 6
conf/msg_conf/map_msg_idn.conf

@@ -41,7 +41,7 @@
 24: Job Level dinaikkan.
 25: Job Level diturunkan.
 26: Bantuan command:
-27: Bantuan command tidak tersedia.
+//27: free
 28: Pemain tidak ditemukan.
 29: 1 pemain ditemukan.
 30: %d pemain ditemukan.
@@ -459,8 +459,7 @@
 // Pesan-pesan untuk 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
 460: Harap masukkan tipe bahasa yang valid. (Penggunaan: @langtype <bahasa>).
@@ -970,7 +969,7 @@
 
 // @reloadatcommand
 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
 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.
 1371: Variabel pada NPC 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
 1375: %s kosong
 //1376: free
@@ -1477,7 +1476,7 @@
 1391: Kamu tidak memiliki keranjang yang akan dihapus.
 1392: Gerobak ditambahkan.
 
-// atcommand.c::is_atcommand
+// atcommand.cpp::is_atcommand
 1393: Kamu tidak bisa menggunakan perintah ini ketika mati.
 
 // @clearstorage

+ 6 - 7
conf/msg_conf/map_msg_por.conf

@@ -51,7 +51,7 @@
 24: Nível de classe acrescido.
 25: Nível de classe decrescido.
 26: Comandos de ajuda:
-27: Comandos de ajuda não disponível.
+//27: free
 28: Nenhum jogador encontrado.
 29: 1 jogador encontrado.
 30: %d jogadores encontrados.
@@ -468,8 +468,7 @@
 // Mensagens de 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
 460: Digite um idioma válido (uso: @langtype <idioma>).
@@ -1049,7 +1048,7 @@
 
 // @reloadatcommand
 1036: Erro na leitura do grups.conf, recarregamento falhou.
-1037: Erro na leitura do atcommand_athena.conf, recarregamento falhou.
+//1037 free
 
 // @mapinfo
 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.
 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.
-1373: %s valor agora é :%d
-1374: %s valor agora é :%s
+1373: %s valor agora é: %lld
+1374: %s valor agora é: %s
 1375: %s é vazia
 //1376: free
 
@@ -1556,7 +1555,7 @@
 1391: Você não possui um carrinho para remover
 1392: Carrinho Adicionado.
 
-// atcommand.c::is_atcommand
+// atcommand.cpp::is_atcommand
 1393: Você não pode utilizar comandos caso esteja morto.
 
 // @clearstorage

+ 6 - 7
conf/msg_conf/map_msg_rus.conf

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

+ 10 - 7
conf/msg_conf/map_msg_spn.conf

@@ -41,7 +41,7 @@
 24: Has aumentado tu nivel de oficio.
 25: Has disminuido tu nivel de oficio.
 26: Ayuda sobre comandos:
-27: No hay ninguna ayuda disponible.
+//27: free
 28: No se ha encontrado ningún jugador.
 29: Se ha encontrado 1 jugador.
 30: Se han encontrado %d jugadores.
@@ -458,8 +458,7 @@
 // Mensajes de homúnculos
 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
 460: Introduce un idioma válido (instrucciones: @langtype <idioma>)
@@ -1018,7 +1017,7 @@
 
 // @reloadatcommand
 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
 1038: Introduce un número de la lista (instrucciones: @mapinfo <0-3> <mapa>).
@@ -1199,7 +1198,7 @@
 1193: No estás recogiendo ese objeto.
 1194: Has eliminado '%s'/'%s' {%hu} de tu lista de recogida de objetos.
 1195: Puedes almacenar %d objetos en tu lista de recogida de objetos.
-1196: Para añadir un nuevo objeto a la lista utiliza @alootid <nombre/ID del objeto>. Para eliminar un objeto utiliza @alootid <nombre/ID del objeto>.
+1196: Para añadir un nuevo objeto a la lista utiliza @alootid +<nombre/ID del objeto>. Para eliminar un objeto utiliza @alootid -<nombre/ID del objeto>.
 1197: "@alootid reset" reiniciará tu lista de recogida de objetos.
 1198: Tu lista de recogida de objetos está vacía.
 1199: Lista de objetos para recoger automáticamente:
@@ -1494,7 +1493,7 @@
 1370: Instrucciones: ej. "@set PoringCharVarSTR$" muestra su valor, cadena de texto.
 1371: Las variables de NPC 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
 1375: %s está vacío
 
@@ -1527,7 +1526,7 @@
 1391: No tienes ningún carro.
 1392: Ahora tienes un carro.
 
-// atccomand.c::is_atcommand
+// atccomand.cpp::is_atcommand
 1393: No puedes utilizar ningún comando porque estás muerto.
 
 // @clearstorage
@@ -1667,5 +1666,9 @@
 1503: Has entrado en una zona PK.
 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
 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 à¾ÔèÁ¢Öé¹.
 25: Job level Ŵŧ.
 26: Help commands:
-27: ¤ÓÊÑè§ help äÁèÊÒÁÒöãªéä´é.
+//27: free
 28: äÁ辺¼ÙéàÅè¹.
 29: ¾º¼ÙéàÅè¹ 1 ¤¹.
 30: ¾º¼ÙéàÅè¹ %d ¤¹.
@@ -447,8 +447,7 @@
 // Homunculus messages
 450: ¤Ø³ÁÕ Homunculus ÍÂÙèáÅéÇ.
 
-// Return pet to egg message
-451: ¤Ø³äÁèÊÒÁÒöà¡çºÊѵÇìàÅÕé§ä´éà¾ÃÒЪèͧà¡çº¢Í§ã¹µÑÇÅФÃàµçÁ.
+//451 free
 
 // Message System
 460: â»Ã´àÅ×Í¡ÀÒÉÒ·Õèµéͧ¡Òà (ÇÔ¸Õãªé: @langtype <ÀÒÉÒ>).
@@ -874,7 +873,7 @@
 
 // @reloadatcommand
 1036: à¡Ô´¢éͼԴ¾ÅҴ㹡ÒüèÒ¹ä¿Åì groups.conf, ¡ÒÃâËÅ´ãËÁèÅéÁàËÅÇ.
-1037: à¡Ô´¢éͼԴ¾ÅҴ㹡ÒüèÒ¹ä¿Åì atcommand_athena.conf, ¡ÒÃâËÅ´ãËÁèÅéÁàËÅÇ.
+//1037 free
 
 // @mapinfo
 1038: â»Ã´ÃкØàÅ¢ÍÂèҧ˹èÍÂ˹Ö觤èÒ¨Ò¡ÃÒ¡Òà (ÇÔ¸Õãªé: @mapinfo <0-3> <map>).
@@ -1348,7 +1347,7 @@
 1370: ÇÔ¸Õãªé: ex. "@set PoringCharVarSTR$" ¨ÐáÊ´§¼ÅÅѾ¸ìà»ç¹¤èÒ, Super Duper String.
 1371: µÑÇá»Ã NPC äÁèÊÒÁÒöµÑ駤èÒä´é´éÇ @set ä´é.
 1372: µÑÇá»Ã Instance äÁèÊÒÁÒöµÑ駤èÒä´é´éÇ @set ä´é.
-1373: %s ÁÕ¤èÒ: %d
+1373: %s ÁÕ¤èÒ: %lld
 1374: %s ÁÕ¤èÒ: %s
 1375: %s äÁèÁÕ¤èÒã´æ.
 //1376: free
@@ -1379,7 +1378,7 @@
 1391: ¤Ø³äÁèÁÕöà¢ç¹·Õè¨ÐźÍÍ¡.
 1392: µÔ´µÑé§Ã¶à¢ç¹àÃÕºÃéÍÂ.
 
-// atcommand.c::is_atcommand
+// atcommand.cpp::is_atcommand
 1393: ¤Ø³äÁèÊÒÁÒöãªé¤ÓÊÑè§ä´éã¹¢³ÐµÒÂÍÂØè.
 
 // @clearstorage

+ 15 - 2
conf/packet_athena.conf

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

+ 73 - 18
configure

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

+ 54 - 12
configure.in

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

+ 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_TELEKINESIS	33
 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_TARGET	37
 RDMOPT_DAMAGE_PROPERTY_WATER_USER	38
@@ -99,7 +99,7 @@ RDMOPT_BODY_ATTR_SAINT	82
 RDMOPT_BODY_ATTR_DARKNESS	83
 RDMOPT_BODY_ATTR_TELEKINESIS	84
 RDMOPT_BODY_ATTR_UNDEAD	85
-RDMOPT_BODY_ATTR_ALL	86
+//RDMOPT_BODY_ATTR_ALL	86
 RDMOPT_RACE_TOLERACE_NOTHING	87
 RDMOPT_RACE_TOLERACE_UNDEAD	88
 RDMOPT_RACE_TOLERACE_ANIMAL	89
@@ -186,8 +186,8 @@ RDMOPT_HEAL_MODIFY_PERCENT	169
 RDMOPT_DEC_SPELL_CAST_TIME	170
 RDMOPT_DEC_SPELL_DELAY_TIME	171
 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_WATER	176
 RDMOPT_WEAPON_ATTR_GROUND	177
@@ -206,7 +206,44 @@ RDMOPT_MDAMAGE_SIZE_LARGE_TARGET	189
 RDMOPT_MDAMAGE_SIZE_SMALL_USER	190
 RDMOPT_MDAMAGE_SIZE_MIDIUM_USER	191
 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
 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
 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,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
 //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,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
 //Sera
 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,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
 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,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
 //Elanor
 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,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,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

+ 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.
 ###########################################################################
 
-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:
-  Type: ATTENDANCE_CONF
+  Type: ATTENDANCE_DB
   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; },{},{}
 //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; },{},{}
-//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; },{},{}
 //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.
 //==================================================================
-//2338,Wedding_Dress,Wedding Dress,4,43000,,500,,0,,0,0xFFFFFFFE,63,0,16,,0,1,0,{},{ sc_start SC_WEDDING,-1,0; },{ sc_end SC_WEDDING; }
-//7170,Tuxedo,Tuxedo,4,43000,,10,,0,,0,0xFFFFFFFE,63,1,16,,0,1,0,{},{ sc_start SC_WEDDING,-1,0; },{ sc_end SC_WEDDING; }
+//2338,Wedding_Dress,Wedding Dress,4,43000,,500,,0,,0,0xFFFFFFFE,63,0,16,,0,1,0,{},{ sc_start SC_WEDDING,INFINITE_TICK,0; },{ sc_end SC_WEDDING; }
+//7170,Tuxedo,Tuxedo,4,43000,,10,,0,,0,0xFFFFFFFE,63,1,16,,0,1,0,{},{ sc_start SC_WEDDING,INFINITE_TICK,0; },{ sc_end SC_WEDDING; }
 
 // Non-kRO Eden Group Mark effect
 //=============================================================

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

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

Diff do ficheiro suprimidas por serem muito extensas
+ 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}}}
 //
 // 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:
 // 		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).
 //
 // 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.
 // 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
 //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)
 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)
-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)
-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
 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
@@ -312,18 +312,15 @@
 // 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
 //================================
-// 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
-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
-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
-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
-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)
-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)
-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

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff