Coder Social home page Coder Social logo

rminderhoud / osirose-new Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dev-osrose/osirose-new

0.0 3.0 0.0 16.05 MB

Open Source ROSE online server

Home Page: http://forum.dev-osrose.com/

License: Apache License 2.0

Shell 0.89% CMake 16.28% Batchfile 0.16% XSLT 0.32% Python 0.18% PowerShell 0.19% C++ 22.31% Lua 59.66%

osirose-new's Introduction

osIROSE - Open Source International R.O.S.E Online Server

Build status

lin-badge win-badge cov-badge ccov-badge coverity-scan

Development and Community:

GitHub Repository Waffle Board Community Forum Join the chat in Discord

Issues and Status

GitHub issues Confirmed issues In-Progress

Project Info:

Language GitHub license

C++ Installation - Unix

If you get the source from github, you need to setup the build environment:

$ ./unix_env_setup.sh

This will install all of the tools and sources required to build the project.

"./unix_env_setup.sh" will require superuser privileges, as it calls apt-get install.

To build the servers, execute the following:

$ make

To install the servers to the system (not recommended), execute the following commands:

$ make install

"make install" may require superuser privileges.

If you installed the servers, to run the servers execute the following:

$ LoginServer&
$ CharServer&
$ MapServer&

If you opted to keep them in place, the server binaries are located in the bin folder inside the build directory. So from where you ran the command make, you will want to run the following:

$ ./bin/LoginServer&
$ ./bin/CharServer&
$ ./bin/MapServer&

After running for the first time, the servers will create a config file in the current directory.

C++ Installation - Windows

Programs required:

vis-studio cmake mysql python

After downloading and installing the above applications, to compile the servers run the following commands:

git submodule update --init --recursive
./ci/msvc_install.bat
cd build
cmake ..
cmake --build . --config Release

This will setup the build directories and compile. The compiled server will be in the bin folder created in the directory you ran cmake in (which should be the build folder).

After running for the first time, the servers will create a config file in the current directory that can be modified.

Server Configuration

The servers can be confired using a server.json file. This file is automatically generated if any server is started and no server.json file exists. It's recommended to generate this file before continuing with the project setup. Simply start any of the servers to generate the file.

Client Setup

The server is designed to work with the assets from the ROSE_112_112NA client. Using different assets may cause issues due to incompatibility. The client is available to download here.

Run the installer and install the game to a desired location. While this project uses the assets from that client it does not use the binaries. For full compatibility you will need to download the latest client binaries from the project's Releases Page

After downloading the client files, copy them to the ROSE_112_112NA installation directory (default: C:\Program Files (x86)\TriggerSoft\Rose Online) and overwrite the existing files.

Connecting to the server requires using a special command from the command line, like so:

trose.exe @TRIGGER_SOFT@ _server 127.0.0.1 (replace the IP if not running locally

For convenience, this command can be saved to a file with the extension .cmd in the same folder as trose.exe. Then, the game can be launched by double clicking this file.

Database Setup

The server requires a MySQL (or MariaDB) database server.

To setup the database, first create a new database (e.g. osirose). You will then need to execute the Database/osirose.sql script to generate the database schema and the Database/item_db.sql to populate the item database. This can be done using a database tool or from the command line like so:

mysql -u<user> -p<password> <database_name> < Database/osirose.sql
mysql -u<user> -p<password> <database_name> < Database/item_db.sql

NOTE: The item table was generated using client v112_112na. If you are using a different client, please generate your own table to match the information you need.

After setting up the database, two special users need to be created for the login and character servers. They can be created by executing the following SQL commands:

call create_account("login", "098f6bcd4621d373cade4e832627b4f6");
call create_account("char", "098f6bcd4621d373cade4e832627b4f6");
update accounts set account_type="system" where username="login";
update accounts set account_type="system" where username="char";

The value 098f6bcd4621d373cade4e832627b4f6 is an MD5 hash of the default server passwords created in the default server.json file. It should match the following sections:

    ...
    "charServer":  {
        ...
        "loginUser":         "login",
        "loginPassword":     "098f6bcd4621d373cade4e832627b4f6",
        ...
    },
    "mapServer":   {
        ...
        "charUser":     "char",
        "charPassword": "098f6bcd4621d373cade4e832627b4f6",
        ...
    },
    ...

To use your own password, generate an MD5 hash of your password and update the accounts database and the server.json file.

Finally, we need to create an account to join the game with. Run the create_account procedure again to create a user account, for example:

call create_account("admin", "21232f297a57a5a743894a0e4a801fc3" # Password is admin

Alternatively, automatic account creation can be enabled in the server config. This will automatically create an account if a user attempts to login to an account that exist. This is recommended as it is much more convenient than having to create password hashes and running sql commands. Simply, try to log in, fail, then try to login again with the same credentials!

To enable it modify server.json to enable createAccountOnFail:

"loginServer": {
    "createAccountOnFail": true,
    ...
},

Contributing

If you want to contribute, please read the code of conduct. You can find some documentation about the source code here. Don't hesitate to contribute!

osirose-new's People

Contributors

aerocoke avatar koevoetsfjm avatar l3nn0x avatar markmeson avatar n3f4s avatar ravenrandomz avatar ravenx8 avatar rminderhoud avatar shiroy avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.