# Reunion [![C/C++ CI](https://github.com/s1lentq/reunion/actions/workflows/build.yml/badge.svg)](https://github.com/s1lentq/reunion/actions/workflows/build.yml) [![GitHub release (by tag)](https://img.shields.io/github/downloads/s1lentq/reunion/latest/total)](https://github.com/s1lentq/reunion/releases/latest) ![GitHub all releases](https://img.shields.io/github/downloads/s1lentq/reunion/total) [![Percentage of issues still open](http://isitmaintained.com/badge/open/s1lentq/reunion.svg)](http://isitmaintained.com/project/s1lentq/reunion "Percentage of issues still open") [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
Metamod plugin that allows protocol 47 and 48 non-steam clients to connect to ReHLDS servers.
Reunion is a continuation of the DProto project adapted for ReHLDS.
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
* [Release builds](https://github.com/s1lentq/reunion/releases)
* [Dev builds](https://github.com/s1lentq/reunion/actions/workflows/build.yml)
## Environment requirement
* ReHLDS API >= `3.10`
## Installation
Click to expand
1. Go to `
`
add this line at the beginning of the file
for windows
`win32 addons\reunion\reunion_mm.dll`
for linux
`linux addons/reunion/reunion_mm_i386.so`
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
If reunion doesn't work, meta list says this:
```
Currently loaded plugins:
description stat pend file vers src load unlod
[ 1] Reunion fail load reunion_mm_i386. v0.1.65 ini Start Never
```
Start server with `-console +log on +mp_logecho 1` parameters and look through console output.
You'll find the reason there.
Click to expand
* `Q` I configured `SteamIdHashSalt` as well as in the dproto, but players get a different steamids. Why?
`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.
* `Q` Is it possible to do something against steamid changers?
`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.
* `Q` Why some server monitorings can't receive the players list from server?
`A` They use an incorrect query format and must be rewritten using latest PHP-Source-Query script or equivalent.
* `Q` In dproto was option Game_Name, but in reunion it has not. How to change the game name?
`A` Use plugin.
* `Q` Why has `SmartSteamEmu3` support been removed?
`A` To open-source the Reunion project, we had to remove some sensitive components.
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.
Visual Studio 2015 (C++14 standard) and later#### Linux
cmake >= 3.10 GCC >= 4.9.2 (Optional) ICC >= 15.0.1 20141023 (Optional) LLVM (Clang) >= 6.0 (Optional)### 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)
-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) Definitions (-D) DEBUG - Enables debugging mode USE_STATIC_LIBSTDC - Enables static linking library libstdc++* ICC
./build.sh --compiler=intel* LLVM (Clang)
./build.sh --compiler=clang* GCC
./build.sh --compiler=gcc##### Checking build environment (Debian / Ubuntu)
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
1) sudo apt-get install -y gcc g++ 2) sudo apt-get install -y clang