diff --git a/.editorconfig b/.editorconfig index 69754d3221..2f755a9d5e 100644 --- a/.editorconfig +++ b/.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}] diff --git a/.gitattributes b/.gitattributes index 0966454ca4..cae443c670 100644 --- a/.gitattributes +++ b/.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 diff --git a/.gitignore b/.gitignore index 25be51957b..35d42bb676 100644 --- a/.gitignore +++ b/.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/ diff --git a/.mailmap b/.mailmap index 5ac5453587..be206a1bef 100644 --- a/.mailmap +++ b/.mailmap @@ -25,6 +25,7 @@ brianluau Daegaladh Deadly Silence +Epoque1 <22254628+Epoque1@users.noreply.github.com> euphyy flaviojs flaviojs @@ -133,7 +134,6 @@ skotlex # mc_cameri # evera # SinSloth -# epoque11 # DracoRPG # littlewolf # eaac diff --git a/.travis.yml b/.travis.yml index 423c6e0668..4c4b4f5a88 100644 --- a/.travis.yml +++ b/.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 diff --git a/3rdparty/libconfig/libconfig.vcxproj b/3rdparty/libconfig/libconfig.vcxproj index e0cbb32ac3..1277142bb6 100644 --- a/3rdparty/libconfig/libconfig.vcxproj +++ b/3rdparty/libconfig/libconfig.vcxproj @@ -106,7 +106,7 @@ Level3 Disabled - YY_USE_CONST;LIBCONFIG_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + YY_USE_CONST;LIBCONFIG_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_LIB;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions) MultiThreadedDebug @@ -120,7 +120,7 @@ Level3 Disabled - YY_USE_CONST;LIBCONFIG_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG;_LIB;%(PreprocessorDefinitions) + YY_USE_CONST;LIBCONFIG_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG;_LIB;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions) MultiThreadedDebug diff --git a/3rdparty/yaml-cpp/yaml-cpp.vcxproj b/3rdparty/yaml-cpp/yaml-cpp.vcxproj index 98944cd640..d41866543c 100644 --- a/3rdparty/yaml-cpp/yaml-cpp.vcxproj +++ b/3rdparty/yaml-cpp/yaml-cpp.vcxproj @@ -95,7 +95,7 @@ ProgramDatabase Disabled $(SolutionDir)3rdparty\yaml-cpp\include\;$(SolutionDir)3rdparty\yaml-cpp\src\; - WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions) + WIN32;_WINDOWS;_DEBUG;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions) MultiThreadedDebug @@ -107,7 +107,7 @@ $(SolutionDir)3rdparty\yaml-cpp\include\;$(SolutionDir)3rdparty\yaml-cpp\src\; Disabled - WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions) + WIN32;_WINDOWS;_DEBUG;_ITERATOR_DEBUG_LEVEL=0;%(PreprocessorDefinitions) MultiThreadedDebug diff --git a/AUTHORS b/AUTHORS index b925a0edb6..21335d1844 100644 --- a/AUTHORS +++ b/AUTHORS @@ -227,6 +227,7 @@ Sirius_White sk SketchyPhoenix Skotlex +SnakeDrak spamrat SPDFMember spira diff --git a/README.md b/README.md index 7d647d44f1..a2e89c9461 100644 --- a/README.md +++ b/README.md @@ -1,205 +1,72 @@ -rAthena -======= + -Build Status: [![Build Status](https://travis-ci.org/rathena/rathena.png?branch=master)](https://travis-ci.org/rathena/rathena) [![Build status](https://ci.appveyor.com/api/projects/status/8574b8nlwd57loda/branch/master?svg=true)](https://ci.appveyor.com/project/rAthenaAPI/rathena/branch/master) [![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) +# 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. -Table of Contents ---------- -1. What is rAthena? -2. Prerequisites -3. Installation -4. Troubleshooting -5. Helpful Links -6. More Documentation -7. How to Contribute +[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/) +--------|--------|--------|--------|--------|-------- -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. +### 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) -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. +## 1. Prerequisites +Before installing rAthena there are certain tools and applications you will need which +differs between the varying operating systems available. -* 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/ ) +### Hardware +Hardware Type | Minimum | Recommended +------|------|------ +CPU | 1 Core | 2 Cores +RAM | 1 GB | 2 GB +Disk Space | 300 MB | 500 MB -* 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 +### 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/) -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). +### 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) -* 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: +### Optional Applications +Application | Name +------|------ +Database | [MySQL Workbench 5 or newer](http://www.mysql.com/downloads/workbench/) - 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 +## 2. Installation -* Linux - * Type: - * (For CentOS) +### 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) - yum install gcc g++ make mysql mysql-devel mysql-server pcre-devel zlib-devel git - * (For Debian) +## 3. Troubleshooting - 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. +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. -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. - )! - - 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) diff --git a/appveyor.yml b/appveyor.yml index c71645d3e0..c840d7db53 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -26,8 +26,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 +48,28 @@ test_script: cd C:\projects\rathena - rem TODO should be replace with tools\ci\sql.bat as soon as possible + rem ======================================================================== + rem MySQL database setup - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% -e "CREATE DATABASE %DB_NAME%;" + rem ======================================================================== - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\main.sql" + call tools\ci\sql.bat - %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" - - %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" - - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\mob_skill_db2_re.sql" - - %MYSQL% -u %DB_ROOT% -p%DB_ROOTPW% %DB_NAME% -e "source sql-files\roulette_default_data.sql" - - %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 diff --git a/branding/logo.png b/branding/logo.png new file mode 100644 index 0000000000..0af2fdb5ba Binary files /dev/null and b/branding/logo.png differ diff --git a/conf/atcommand_athena.conf b/conf/atcommand_athena.conf deleted file mode 100644 index 53eff8088b..0000000000 --- a/conf/atcommand_athena.conf +++ /dev/null @@ -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 - : ["", ...] -*/ - -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" -} diff --git a/conf/atcommands.yml b/conf/atcommands.yml new file mode 100644 index 0000000000..b50eaad76e --- /dev/null +++ b/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 . +# +########################################################################### +# Atcommand Database +########################################################################### +# +# Atcommand Settings +# +########################################################################### +# - Command Command name. +# Aliases: Aliases for the command. (Optional) +# - +# Help Help message for the command. (Optional) +########################################################################### + +Header: + Type: ATCOMMAND_DB + Version: 1 + +Body: + - Command: help + Aliases: + - h + Help: | + Params: + 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: + Displays normal text as a message in this format: *name message* (like /me in mIRC). + - Command: fakename + Help: | + Params: + Changes your name to your choice temporarily. + - Command: npctalk + Aliases: + - npctalkc + Help: | + Params: + Forces a NPC to display a message in normal chat. + - Command: broadcast + Help: | + Params: + Broadcasts a message with your name (in yellow). + - Command: kami + Help: | + Params: + Broadcasts a message without your name (in yellow). + - Command: kamib + Help: | + Params: + Broadcasts a message without your name (in blue). + - Command: localbroadcast + Help: | + Params: + 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: + Shows monster info (stats, exp, drops etc). + - Command: iteminfo + Aliases: + - ii + Help: | + Params: + Shows item info (type, price etc). + - Command: whodrops + Help: | + Params: + Shows who drops an item (monster with highest drop rates). + - Command: version + Help: | + Displays SVN version of the server. + - Command: email + Help: | + Params: + Changes your account e-mail address. + - Command: where + Help: | + Params: + 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: + Shows the location of a certain mob on the current map. + - Command: who + Aliases: + - whois + Help: | + Params: [] + Shows a list of online players and their party and guild. + - Command: who2 + Help: | + Params: [] + Shows a list of online players and their job. + - Command: who3 + Help: | + Params: [] + 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: - You will receive all messages of the guild channel (Chat logging must be enabled) + - Command: partyspy + Help: | + @partyspy - 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: + 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: + Warps you to selected character. + - Command: follow + Help: | + Params: + 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: + 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: - 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: [ ] + Warps you to the selected map and position. + - Command: jump + Help: | + Params: [ []] + Randomly warps you like a flywing. + - Command: jobchange + Aliases: + - job + Help: | + Params: + 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: (stackable) (stackable) + Adds different visual effects on or around your character. + + 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: [ ] + Heals the desired amount of HP and SP. No value specified will do a full heal. + - Command: dye + Aliases: + - ccolor + Help: | + Params: + Changes your characters clothes color. + - Command: hairstyle + Aliases: + - hstyle + Help: | + Params: + Changes your hair style. + - Command: haircolor + Aliases: + - hcolor + Help: | + Params + 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: [] + Give an effect to your character. + - Command: dropall + Help: | + Params: [] + 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: + Look up a skill by name + - Command: useskill + Help: | + Params: + Use a skill on target + - Command: skilltree + Help: | + Params: + Prints the skill tree needed to get a skill for the target player. + - Command: marry + Help: | + Params: + 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: + Raises your base level the desired number of levels. + - Command: jlvl + Aliases: + - jlevel + - joblvl + - joblvup + - joblevel + - joblvlup + Help: | + Params: + Raises your job level the desired number of levels. + - Command: allskill + Aliases: + - allskills + - skillall + - skillsall + Help: | + Give you all skills. + - Command: stpoint + Help: | + Params: - Gives you the desired number of stat points. + - Command: skpoint + Help: | + Params: - Gives you the desired number of skill points. + - Command: zeny + Help: | + Params: - Gives you desired amount of Zeny. + - Command: cash + Help: | + Params: - Gives you the specified amount of cash points. + - Command: points + Help: | + Params: - Gives you the specified amount of Kafra Points. + - Command: str + Help: | + Params: + Raises STR by given amount. + - Command: agi + Help: | + Params: + Raises AGI by given amount. + - Command: dex + Help: | + Params: + Raises DEX by given amount. + - Command: vit + Help: | + Params: + Raises VIT by given amount. + - Command: int + Help: | + Params: + Raises INT by given amount. + - Command: luk + Help: | + Params: + Raises LUK by given amount. + - Command: allstats + Aliases: + - allstat + - statall + - statsall + Help: | + Params: + Adds value in all stats (maximum if no value). + - Command: addwarp + Help: | + Params: + - Command: killmonster2 + Help: | + Kills all monsters of your map (without drops). + - Command: monster + Aliases: + - spawn + Help: | + Params: [ [ [ []]]] + @monster2 [ [ []]] + @spawn/@monster/@summon/@monster2 "desired monster name" [ [ []]] + @spawn/@monster/@summon/@monster2 "desired monster name" [ [ []]] + Spawns the desired monster with any desired name. + - Command: monstersmall + Help: | + Params: + Spawns a smaller version of a monster. + - Command: monsterbig + Help: | + Params: + Spawns a larger version of a monster. + - Command: killmonster + Help: | + Params: + Kill all monsters of the map (they drop) + - Command: autoloot + Help: | + Params: + Makes items go straight into your inventory. + - Command: autotrade + Aliases: + - at + Help: | + Allows you to vend while you are offline. + - Command: changegm + Help: | + Params: + Changes the leader of your guild (You must be guild leader) + - Command: changeleader + Help: | + Params: + Changes the leader of your party (You must be party leader) + - Command: request + Help: | + Params: + Sends a message to all connected GMs (via the gm whisper system) + - Command: sound + Help: | + Params: + Plays a sound from the data folder or GRF file located on the client. + - Command: clone + Help: | + Params: + Spawns a supportive clone of the given player. + - Command: slaveclone + Help: | + Params: + Spawns a supportive clone of the given player that follows the creator around. + - Command: evilclone + Help: | + Params: + 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: + Search all items that name have part_of_item_name + - Command: refine + Help: | + Params: <+/- amount> + - Command: produce + Help: | + Params: <# 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: + Gives you the desired item. + - Command: item2 + Help: | + Params: + 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: + Create a party. + - Command: guild + Help: | + Params: + 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: + Warps all online characters of a guild to you. + - Command: partyrecall + Help: | + Params: + Warps all online characters of a party to you. + - Command: petrename + Help: | + Re-enable pet rename + - Command: pettalk + Help: | + Params: + 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: + Gives pet egg for monster number in pet DB + - Command: kick + Help: | + Params: + Kicks specified character off the server + - Command: unjail + Aliases: + - discharge + Help: | + Params: + Discharges specified character/prisoner + - Command: kill + Aliases: + - die + Help: | + Kills player. + - Command: recall + Help: | + Params: + Warps target character to you. + - Command: raise + Aliases: + - revive + Help: | + Params: + Revives target character. + - Command: block + Help: | + Params: + Permanently blocks an account. + - Command: unblock + Help: | + Params: + Unblocks an account. + - Command: ban + Aliases: + - banish + Help: | + Params: