Skip to content

Commit

Permalink
Merge branch 'master' into feature/cart_config
Browse files Browse the repository at this point in the history
  • Loading branch information
cydh committed Oct 16, 2019
2 parents 990ed04 + 9da3ad1 commit 98d30fd
Show file tree
Hide file tree
Showing 122 changed files with 6,320 additions and 3,244 deletions.
6 changes: 6 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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}]
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -124,3 +124,6 @@ Thumbs.db
/libmysql.dll
/pcre8.dll
/zlib.dll

# CMakeFiles
/CMakeFiles/
255 changes: 61 additions & 194 deletions README.md
Original file line number Diff line number Diff line change
@@ -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) [![Total alerts](https://img.shields.io/lgtm/alerts/g/rathena/rathena.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/rathena/rathena/alerts/) [![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/rathena/rathena.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/rathena/rathena/context:cpp)

Table of Contents
---------
1. 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)
51 changes: 15 additions & 36 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 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
Expand Down
Binary file added branding/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion conf/battle/battle.conf
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
//--------------------------------------------------------------

// Who should have a baseatk value (makes str affect damage)? (Note 3)
enable_baseatk: 0x29F
enable_baseatk: 0x9
enable_baseatk_renewal: 0x29F

// Who can have perfect flee? (Note 3)
enable_perfect_flee: 1
Expand Down
3 changes: 0 additions & 3 deletions conf/battle/guild.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
1 change: 1 addition & 0 deletions conf/battle/pet.conf
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ pet_friendly_rate: 100
pet_hungry_delay_rate: 100

// 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)
Expand Down
Loading

0 comments on commit 98d30fd

Please sign in to comment.