All Projects → HerculesWS → Hercules

HerculesWS / Hercules

Licence: gpl-3.0
Hercules 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. Hercules is a continuation of the original Athena project.

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Hercules

Core Framework
This repository holds the Open RuneScape Classic game framework
Stars: ✭ 143 (-78.62%)
Mutual labels:  hacktoberfest, mmorpg
Rathena
rAthena is an open-source cross-platform MMORPG server.
Stars: ✭ 1,793 (+168.01%)
Mutual labels:  hacktoberfest, mmorpg
Azerothcore Wotlk
Complete Open Source and Modular solution for MMO
Stars: ✭ 1,330 (+98.8%)
Mutual labels:  hacktoberfest, mmorpg
Openmu
This project aims to create an easy to use, extendable and customizable server for a MMORPG called "MU Online".
Stars: ✭ 243 (-63.68%)
Mutual labels:  hacktoberfest, mmorpg
Graphenex
Automated System Hardening Framework
Stars: ✭ 665 (-0.6%)
Mutual labels:  hacktoberfest
Concourse
Concourse is a container-based continuous thing-doer written in Go.
Stars: ✭ 6,070 (+807.32%)
Mutual labels:  hacktoberfest
Calamares
Distribution-independent installer framework
Stars: ✭ 654 (-2.24%)
Mutual labels:  hacktoberfest
Gameproject3
游戏服务器框架,网络层分别用SocketAPI、Boost Asio、Libuv三种方式实现, 框架内使用共享内存,无锁队列,对象池,内存池来提高服务器性能。还包含一个不断完善的Unity 3D客户端,客户端含大量完整资源,坐骑,宠物,伙伴,装备, 这些均己实现上阵和穿戴, 并可进入副本战斗,多人玩法也己实现, 持续开发中。
Stars: ✭ 655 (-2.09%)
Mutual labels:  mmorpg
Usbguard
USBGuard is a software framework for implementing USB device authorization policies (what kind of USB devices are authorized) as well as method of use policies (how a USB device may interact with the system)
Stars: ✭ 668 (-0.15%)
Mutual labels:  hacktoberfest
Ruby jard
Just Another Ruby Debugger. Provide a rich Terminal UI that visualizes everything your need, navigates your program with pleasure, stops at matter places only, reduces manual and mental efforts. You can now focus on real debugging.
Stars: ✭ 669 (+0%)
Mutual labels:  hacktoberfest
Awesome Checker Services
✅ List of links to the various checkers out there on the web for sites, domains, security etc.
Stars: ✭ 662 (-1.05%)
Mutual labels:  hacktoberfest
Gitql
💊 A git query language
Stars: ✭ 5,854 (+775.04%)
Mutual labels:  hacktoberfest
Hermes
Fast and reliable message broker built on top of Kafka.
Stars: ✭ 665 (-0.6%)
Mutual labels:  hacktoberfest
Clean Code Persian
ترجمه گروهی کتاب کدتمیز
Stars: ✭ 659 (-1.49%)
Mutual labels:  hacktoberfest
Ios
📱 Home Assistant for Apple platforms
Stars: ✭ 667 (-0.3%)
Mutual labels:  hacktoberfest
Rpg Js
Create your browser RPG and MMORPG in your browser !
Stars: ✭ 656 (-1.94%)
Mutual labels:  mmorpg
Free Tshirts Stickers And Swag For Developers
List of free tshirts, stickers and swags available for developers
Stars: ✭ 661 (-1.2%)
Mutual labels:  hacktoberfest
Plots2
a collaborative knowledge-exchange platform in Rails; we welcome first-time contributors! 🎈
Stars: ✭ 666 (-0.45%)
Mutual labels:  hacktoberfest
Zarr Python
An implementation of chunked, compressed, N-dimensional arrays for Python.
Stars: ✭ 658 (-1.64%)
Mutual labels:  hacktoberfest
Material Shell
A modern desktop interface for Linux. Improve your user experience and get rid of the anarchy of traditional desktop workflows. Designed to simplify navigation and reduce the need to manipulate windows in order to improve productivity. It's meant to be 100% predictable and bring the benefits of tools coveted by professionals to everyone.
Stars: ✭ 6,189 (+825.11%)
Mutual labels:  hacktoberfest

Hercules

Build Status: Build Status AppVeyor Build Status Coverity Scan Build Status GitLab Build Status Coverage Report Code Quality: Cpp Total Alerts

Issues and pull requests: Open Issues Open Pull Requests

Development and Community: GitHub Repository Community Forum IRC Discord Twitter

Project Info: Release Language License GitHub contributors

Table of Contents

  1. What is Hercules?
  2. Prerequisites
  3. Installation
  4. Troubleshooting
  5. Helpful Links
  6. More Documentation

What is Hercules?


Hercules 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. Hercules is a continuation of the original Athena project.

Prerequisites


Before installing Hercules, you will need to install certain tools and applications. This differs between the varying Operating Systems available, so the following list is broken down into Windows and Unix (incl. Linux) prerequisites.

For a list of supported platforms, please refer to the Supported Platforms wiki page.

Windows

Unix/Linux/BSD (names of packages may require specific version numbers on certain distributions)

  • git
  • gcc or clang (version 4.5 or newer, recommended 5.0 or newer)
  • GNU make
  • MySQL (mysql-server) or MariaDB
  • libmysqlclient (mysql-devel)
  • zlib (zlib-devel)
  • libpcre (pcre-devel)
  • Optional dependencies for development only
    • perl (required to rebuild the HPM Hooks and HPMDataCheck)
      • requires the XML::Simple module, which in turn requires libexpat-dev
    • Doxygen (required to rebuild the HPM Hooks and HPMDataCheck)

Mac OS X

  • Xcode or the Xcode command-line tools.
  • MySQL-compatible server (installation of mysql or mariadb through Homebrew is recommended)
  • PCRE library (installation of pcre through Homebrew is recommended)
  • Optional dependencies for development only
    • Doxygen (required to rebuild the HPM Hooks and HPMDataCheck)

Optional, useful tools

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

Easy installation
  1. Install the prerequisites.
  2. Clone the Hercules repository using a git client, into a new folder.
    • If you do not want to use the command line, you can instead clone with GitHub Desktop.
  3. Run mariadb.bat to automatically install and configure MariaDB.
  4. Start Visual Studio and load the provided solution:
    • Compile and run the three projects, login-server, char-server, map-server.
Manual installation
  1. Install the prerequisites.
  2. Install a MySQL-compatible server, such as MariaDB (recommended) or MySQL Community Edition
  3. Clone the Hercules repository Hercules repository using a git client, into a new folder.
  4. Connect to the MySQL server as root:
    • Create a database (hercules): CREATE DATABASE hercules;
    • Create a user (hercules): CREATE USER 'hercules'@'localhost' IDENTIFIED BY 'password';.
    • Give permissions (GRANT SELECT,INSERT,UPDATE,DELETE) to the user: GRANT SELECT,INSERT,UPDATE,DELETE ON hercules.* TO 'hercules'@'localhost';
  5. Connect to the MySQL server as the new user:
    • Import the .sql files in /sql-files/ into the new database.
  6. Start Visual Studio and load the provided solution:
    • Compile and run the three projects, login-server, char-server, map-server.

Unix

  1. Install the prerequisites through your distribution's package manager
    • (Red Hat compatible / CentOS) yum install gcc make mysql mysql-devel mysql-server pcre-devel zlib-devel git
    • (Debian compatible) apt-get install gcc make libmysqlclient-dev zlib1g-dev libpcre3-dev mysql-server git
    • (FreeBSD) pkg install clang35 gmake mysql56-server mysql-connector-c pcre git
    • (Mac OS X):
      • Install Xcode through the Mac App Store
      • Initialize the build tools through the Terminal xcode-select --help
      • Install Homebrew as described on the project page
      • Install the other prerequisites: brew install mysql pcre
  2. Clone the Hercules repository git clone https://github.com/HerculesWS/Hercules.git ~/Hercules
  3. Configure the MySQL server and start it.
  4. Connect to the MySQL server as root:
    • Create a database (hercules): CREATE DATABASE hercules;
    • Create a user (hercules): CREATE USER 'hercules'@'localhost' IDENTIFIED BY 'password';.
    • Give permissions (GRANT SELECT,INSERT,UPDATE,DELETE) to the user: GRANT SELECT,INSERT,UPDATE,DELETE ON hercules.* TO 'hercules'@'localhost';
  5. Connect to the MySQL server as the new user:
    • Import the .sql files in /sql-files/ into the new database.
  6. Enter the Hercules directory and configure/build Hercules
    • ./configure
    • make clean && make sql (on FreeBSD, replace make with gmake)
  7. Start the three servers login-server, char-server, map-server.

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 than not, all support issues can be solved simply by looking at the error messages given.

Examples:

  • You get an error on your map-server_sql 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=2_F_MAGICMASTER,{
        * 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/password (gender 'S')
[Notice]: and then edit your user/password in conf/map-server.conf (or conf/import/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 says 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


The following list of links point to various help files within the repository, articles or pages on the Wiki or topics within the Hercules forum.

More Documentation


Hercules has a large collection of help files and sample NPC scripts located in /doc/

Scripting

It is recommended to look through /doc/script_commands.txt for help, pointers or even for ideas for your next NPC script. Most script commands have a usage example.

@commands

In-game, Game Masters have the ability to use Atcommands (@) to control players, create items, spawn mobs, reload configuration files and even control the weather. For an in-depth explanation, please see /doc/atcommands.txt

Permissions

The Hercules emulator has a permission system that enables certain groups of players to perform certain actions, or have access to certain visual enhancements or in-game activity. To see what permissions are available, they are detailed in /doc/permissions.md

Others

There are more files in the /doc/ directory that will help you to create scripts or update the mapcache, or even explain how the job system and item bonuses work. Before posting a topic asking for help on the forums, we recommend that all users take the time to look over this directory.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].