2024-11-15 18:02:12 +03:00
# ReUnion [![C/C++ CI](https://github.com/rehlds/ReUnion/actions/workflows/build.yml/badge.svg)](https://github.com/rehlds/ReUnion/actions/workflows/build.yml) [![GitHub release (by tag)](https://img.shields.io/github/downloads/rehlds/ReUnion/latest/total)](https://github.com/rehlds/ReUnion/releases/latest) ![GitHub all releases](https://img.shields.io/github/downloads/rehlds/ReUnion/total) [![Percentage of issues still open](http://isitmaintained.com/badge/open/rehlds/reunion.svg)](http://isitmaintained.com/project/rehlds/reunion "Percentage of issues still open") [![GitHub license](https://img.shields.io/github/license/rehlds/reunion.svg?longCache=true&style=flat-square)](https://github.com/rehlds/ReUnion/blob/master/LICENSE) [![GitHub issues](https://img.shields.io/github/issues/rehlds/reunion.svg?longCache=true&style=flat-square)](https://github.com/rehlds/ReUnion/issues) [![GitHub forks](https://img.shields.io/github/forks/rehlds/reunion.svg?longCache=true&style=flat-square)](https://github.com/rehlds/ReUnion/network) [![GitHub stars](https://img.shields.io/github/stars/rehlds/reunion.svg?longCache=true&style=flat-square)](https://github.com/rehlds/ReUnion/stargazers)
2024-11-03 19:57:59 +03:00
2024-06-20 22:34:09 +07:00
2024-06-21 00:16:30 +07:00
Metamod plugin that allows protocol 47 and 48 non-steam clients to connect to ReHLDS servers.< br / >
2024-06-20 22:34:09 +07:00
Reunion is a continuation of the DProto project adapted for ReHLDS.< br / >
You can try playing on one of many servers that are using Reunion: [Game Tracker ](http://www.gametracker.com/search/?search_by=server_variable&search_by2=reu_version )
## Downloads
2024-11-15 18:02:12 +03:00
* [Release builds ](https://github.com/rehlds/ReUnion/releases )
* [Dev builds ](https://github.com/rehlds/ReUnion/actions/workflows/build.yml )
2024-06-20 22:34:09 +07:00
## Environment requirement
2024-06-21 00:16:30 +07:00
* ReHLDS API >= `3.10`
2024-06-20 22:34:09 +07:00
## Installation
< details >
< summary > Click to expand< / summary >
2024-06-21 00:16:30 +07:00
1. Go to `<gamedir>/addons/` and make new directory named `reunion` < br />
`<gamedir>` - its a game directory (cstrike for Counter-Strike, valve for Half-Life, etc)
2024-06-20 22:34:09 +07:00
2024-06-21 00:16:30 +07:00
2. Copy `reunion_mm.dll` or `reunion_mm_i386.so` to `<gamedir>/addons/reunion/`
2024-06-20 22:34:09 +07:00
2024-06-21 00:16:30 +07:00
3. Go to metamod installation directory (usually its `<gamedir>/addons/metamod/` ) and edit `plugins.ini` :< br />
add this line at the beginning of the file< br / >
for windows< br / >
2024-06-20 22:34:09 +07:00
`win32 addons\reunion\reunion_mm.dll` < br />
2024-06-21 00:16:30 +07:00
for linux< br / >
2024-06-20 22:34:09 +07:00
`linux addons/reunion/reunion_mm_i386.so` < br />
4. Copy `reunion.cfg` to server root or gamedir.
5. Start the server. When server loads, type `meta list` in console. You'll see something like this:
```
Currently loaded plugins:
description stat pend file vers src load unlod
[ 1] Reunion RUN - reunion_mm_i386. v0.1.58 ini Start Never
[ 2] AMX Mod X RUN - amxmodx_mm_i386. v1.8.1.3 ini Start ANY
2 plugins, 2 running
```
6. Ready to use
2024-06-21 00:16:30 +07:00
If reunion doesn't work, meta list says this:< br / >
```
2024-06-20 22:34:09 +07:00
Currently loaded plugins:
description stat pend file vers src load unlod
[ 1] Reunion fail load reunion_mm_i386. v0.1.65 ini Start Never
2024-06-21 00:16:30 +07:00
```
Start server with `-console +log on +mp_logecho 1` parameters and look through console output.< br />
You'll find the reason there.
2024-06-20 22:34:09 +07:00
< / details >
## FAQ
< details >
< summary > Click to expand< / summary >
2024-06-21 00:16:30 +07:00
* `Q` I configured `SteamIdHashSalt` as well as in the dproto, but players get a different steamids. Why?< br />
`A` Reunion uses an another hashing algorythm with improved security. Knowing of someones's steamid before enabling `SteamIdHashSalt` doesn't help to get same id after hashing.
2024-06-20 22:34:09 +07:00
* `Q` Is it possible to do something against steamid changers?< br />
2024-06-21 00:16:30 +07:00
`A` No, idchangers generates a correct authorization tickets and it's impossible on serverside identify that steamid was changed. You can only set a `SteamIdHashSalt` option to prevent a substitution to specific steamid of another player.
2024-06-20 22:34:09 +07:00
* `Q` Why some server monitorings can't receive the players list from server?< br />
`A` They use an incorrect query format and must be rewritten using latest < a href = "https://github.com/xPaw/PHP-Source-Query" > PHP-Source-Query</ a > script or equivalent.
* `Q` In dproto was option Game_Name, but in reunion it has not. How to change the game name?< br />
`A` Use plugin.
2024-06-21 00:16:30 +07:00
* `Q` Why has `SmartSteamEmu3` support been removed?< br />
2024-06-20 22:34:09 +07:00
`A` To open-source the Reunion project, we had to remove some sensitive components.< br />
This includes the `SmartSteamEmu3` emulator's authorization code.
Removing it won't significantly affect server online activity since this emulator is rare among non-steam clients.
< / details >
## Build instructions
### Checking requirements
There are several software requirements for building reunion:
#### Windows
< pre >
Visual Studio 2015 (C++14 standard) and later
< / pre >
#### Linux
< pre >
cmake >= 3.10
GCC >= 4.9.2 (Optional)
ICC >= 15.0.1 20141023 (Optional)
LLVM (Clang) >= 6.0 (Optional)
< / pre >
### Building
#### Windows
Use `Visual Studio` to build, open `msvc/Reunion.sln` and just select from the solution configurations list `Release` or `Debug`
#### Linux
* Optional options using `build.sh --compiler=[gcc] --jobs=[N] -D[option]=[ON or OFF]` (without square brackets)
< pre >
-c=|--compiler=[icc|gcc|clang] - Select preferred C/C++ compiler to build
-j=|--jobs=[N] - Specifies the number of jobs (commands) to run simultaneously (For faster building)
< sub > Definitions (-D)< / sub >
DEBUG - Enables debugging mode
USE_STATIC_LIBSTDC - Enables static linking library libstdc++
< / pre >
* ICC < pre > ./build.sh --compiler=intel</ pre >
* LLVM (Clang) < pre > ./build.sh --compiler=clang</ pre >
* GCC < pre > ./build.sh --compiler=gcc</ pre >
##### Checking build environment (Debian / Ubuntu)
< details >
< summary > Click to expand< / summary >
< ul >
< li >
Installing required packages
< pre >
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install -y gcc-multilib g++-multilib
sudo apt-get install -y build-essential
sudo apt-get install -y libc6-dev libc6-dev-i386
< / pre >
< / li >
< li >
Select the preferred C/C++ Compiler installation
< pre >
1) sudo apt-get install -y gcc g++
2) sudo apt-get install -y clang
< / pre >
< / li >
< / ul >
< / details >
### Credits
* [@Crock ](https://github.com/theCrock ), [@Lev ](https://github.com/LevShisterov ), and other people such as [@PRoSToTeM@ ](https://github.com/WPMGPRoSToTeMa ) who participated or helped with the development of [DProto ](https://cs.rin.ru/forum/viewtopic.php?f=29&t=55986 )
2024-06-21 00:16:30 +07:00
* [@Asmodai ](https://github.com/theAsmodai ) for contributions as Reunion project former maintainer
2024-06-20 22:34:09 +07:00
* [@dreamstalker ](https://github.com/dreamstalker ) for the rehlds project, as well as the contributors involved in this project
* [@NordicWarrior ](https://github.com/Nord1cWarr1or ) for testing and feedback
* [@kazakh758 ](https://github.com/kazakh758 ) for testing a fix of issue related to the client hanging on connect