ReUnion/README.md
2024-06-21 00:17:00 +07:00

6.3 KiB

Reunion C/C++ CI GitHub release (by tag) GitHub all releases Percentage of issues still open License: GPL v3

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

Downloads

Environment requirement

  • ReHLDS API >= 3.10

Installation

Click to expand
  1. Go to <gamedir>/addons/ and make new directory named reunion
    <gamedir> - its a game directory (cstrike for Counter-Strike, valve for Half-Life, etc)

  2. Copy reunion_mm.dll or reunion_mm_i386.so to <gamedir>/addons/reunion/

  3. Go to metamod installation directory (usually its <gamedir>/addons/metamod/) and edit plugins.ini:
    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
  1. 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.

FAQ

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.

Build instructions

Checking requirements

There are several software requirements for building reunion:

Windows

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)
Click to expand
  • Installing required packages
    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
    
  • Select the preferred C/C++ Compiler installation
    1) sudo apt-get install -y gcc g++
    2) sudo apt-get install -y clang
    

Credits

  • @Crock, @Lev, and other people such as @PRoSToTeM@ who participated or helped with the development of DProto
  • @Asmodai for contributions as Reunion project former maintainer
  • @dreamstalker for the rehlds project, as well as the contributors involved in this project
  • @NordicWarrior for testing and feedback
  • @kazakh758 for testing a fix of issue related to the client hanging on connect