- Updated monster skill use behavior so monsters use skills the same way and at the same rhythm as official servers (bugreport:009326), the changes include: * Unified the "monster can't move by default" and the "monster trapped" code as it really should behave exactly the same * Fixed a bug that caused the "monster skill use" routine to be called 20 times more often than it should in some situations * When a monster attacks you and you run away from it, the monster will now check if it has a ranged skill on "attack" state before switching to chase state * Monsters will now always do a normal attack before using "attack" state skills * Fixed a bug that caused monsters to switch to idle mode and never use their chase skills when they get hit continuously * Changed default for skillrange_from_weapon from 30 (all but player) to 0 (none); monsters will now use all skills at the skill range and not at their own attack range, if they get tanked from farther away than skill range, they won't use these skills - Updated ranges to work as on official servers (bugreport:009326), the changes include: * Implemented new functions "check_distance_client" and "distance_client", that instead of the server-sided square range system use the circular one that the client uses; these functions should be used for units that send their commands via the client (players mostly) * Applied the new distance algorithm to some player-specific range checks, players will now have a circular attack range that reflects their attack range on the client; this makes it impossible to hack the client for more diagonal range * Removed the arbitrary +1 range bonus at range checks; as monsters now react fluently, they won't need it anymore, that means a monster with for example 4 attack range will now only attack targets within a 9x9 area around it, the moment you step out of this area, the attacks will stop (if the monster can move it will follow you); as for players, the extra cell attack range when on a linear line to the target now is integrated into the distance algorithm, that means a player with attack range 4 can attack from 5 cells away when directly on line with a monster, but no longer diagonally as range is circular for players now * Implemented a new "step action" feature to reflect official chase range behavior; when an attack or skill is used inside the attack range, it will act exactly as now, the skill is used once the signal from the client was received; however, if an attack or skill is used outside the attack range, the player should move into the chase area which is 1 cell inside the attack range border; the client actually sends us where to use the attack / skill from, but previously we just dropped that information the moment an attack request came; now instead of stopping the player instantly on an attack request, the player will continue moving to the target cell and then automatically use the command received earlier (it will be remembered); this change was absolutely necessary as the client sends the attack request slightly before attack range is reached, execution on official servers only takes place on every full cell moved; the new system copies this behavior - Implemented an improved hit-lock system (bugreport:007460), the changes include: * MVPs are no longer immune to being stopped by a hit unless they used Endure * When hitting any unit, it will stop for its "dMotion" interval, exactly at the end of "dMotion" it will continue walking (official behavior); this helps getting more "move" packets to be displayed * The unit that was hit will be immune to being stopped for another "dMotion" interval, this allows to slow down any units by hitting them frequently, but makes it almost impossible to completely stop them forever (depends a lot of ASPD and dMotion value); this does not affect special hit-lock properties (some skills and events should set delay anyway) * The unit that was hit will no longer be "pulled" to the next cell; this caused a lot of position lag, it should be much better now - Fixed Sightrasher missing its variable cast time in Renewal
rAthena
Table of Contents
- 1 What is rAthena?
- 2 Prerequisites
- 3 Installation
- 4 Troubleshooting
- 5 Helpful Links
- 6 More Documentation
- 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.
- 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 C++ ( http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express )
- TortoiseGIT ( http://code.google.com/p/tortoisegit/ )
- MSysGit ( http://msysgit.github.io/ or https://github.com/msysgit/git/releases )
-
Linux (names of packages may require specific version numbers on certain distributions)
- gcc
- make
- mysql
- mysql-devel
- mysql-server
- pcre-devel
- zlib-devel
- git
- 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 make mysql mysql-devel mysql-server pcre-devel zlib-devel rpm -Uvhhttp://repo.webtatic.com/yum/centos/5/latest.rpm yum install --enablerepo=webtatic git-all yum install --enablerepo=webtatic --disableexcludes=main git-all -
(For Debian)
apt-get install git make gcc 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 sql -
When you're ready, start the servers:
./athena-start start
-
- 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 scriptIf 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
logintable. -
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.
- Helpful Links
-
rAthena Forums
-
GIT Repository
-
Full Installation Instructions
-
rAthena IRC Channel
- irc://irc.rizon.net/rathena
- Web Chat: http://rathena.org/board/page/chat.html
-
rAthena Wiki http://rathena.org/board/index.php?app=ipbwiki
-
Fork and Pull Request Q&A http://rathena.org/board/topic/86913-pull-request-qa/
- 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.