ReHLDS: документація серверної залежності для HLDS
Про матеріал
Можливості
ReHLDS — результат зворотного аналізу оригінального HLDS збірок 6152/6153 із використанням налагоджувальних даних DWARF з Linux-версії engine_i486.so. У проєкті також виправлено виявлені дефекти й потенційні помилки. Його мета — стабільніша за офіційну версія виділеного сервера Half-Life та розширений API для модифікацій і плагінів. Оптимізацію продуктивності, зокрема за допомогою SSE для векторних обчислень, README називає майбутньою ціллю.
Залежність додає налаштування сервера для роботи з ресурсами, мережевим трафіком і командами гравців, а також команди для перегляду кешованих ресурсів і керування списком IP-адрес RCON.
Вимоги та сумісність
ReHLDS сумісний із дорічною версією HLDS, завантаженою через steamcmd, з версією рушія не вище 8684. Старі платформи гілки 5xxx і нижче, отримані через hldsupdatetool, не підтримуються. Для запуску бінарних файлів потрібні набори інструкцій SSE, SSE2 та SSE3; SSE4.1 і SSE4.2 можуть покращити роботу.
ReHLDS не має бінарної сумісності з оригінальним HLDS, оскільки зібраний іншими компіляторами. Плагіни, що аналізують машинний код, зокрема Orpheu, можуть не працювати.
Збирання з вихідного коду
У Windows потрібен Visual Studio 2015 з підтримкою C++14 або новіший. У Linux потрібен CMake версії 3.10 або новішої; GCC 4.9.2+, ICC 15.0.1 20141023+ та LLVM (Clang) 6.0+ наведені як необов’язкові компілятори. Це вимоги для збирання, а не підтвердження наявності готового плагіна чи бінарного файла в архіві.
Встановлення
README пропонує завантажити сумісний HLDS через steamcmd, а потім замінити оригінальний swds.dll або engine_i486.so відповідним бінарним файлом ReHLDS. У Windows можна також скопіювати swds.pdb з налагоджувальною інформацією.
app_set_config 90 mod cstrike
app_update 90 -beta steam_legacy validateУ README зазначені окремо збірки релізів і розробки. Для Linux-релізів також описана перевірка GPG-підпису: імпортувати ключ командою gpg --import 63547829004f07716f7be4856c32c4282e60fb67.asc, а після завантаження архіву та його файла .asc виконати gpg --verify some-rehlds.zip.asc some-rehlds.zip.
Налаштування
Документація перелічує такі параметри та початкові значення:
listipcfgfile— файл постійних IP-блокувань, типовий:listip.cfg;syserror_logfile— журнал системних помилок, типовий:sys_error.log.sv_auto_precache_sounds_in_models— автоматичне попереднє завантаження звуків моделей (0);sv_delayed_spray_upload— завантажувати спреї після входу в гру (0);sv_echo_unknown_cmd— повідомляти в консолі про невідому команду (0);sv_rcon_condebug— виводити налагодження RCON (1).sv_force_ent_intersection— примусове зіткнення SOLID_SLIDEBOX-сутностей для сторонніх плагінів (0);sv_rehlds_force_dlmax— встановлювати клієнтський cl_dlmax у 1024 (0);sv_rehlds_hull_centering— використовувати центр hull замість кута (0).sv_rehlds_movecmdrate_max_avg— середній поріг команд move (400);sv_rehlds_movecmdrate_avg_punish— тривалість покарання у хвилинах (5);sv_rehlds_movecmdrate_max_burst— поріг сплеску move-команд (2500);sv_rehlds_movecmdrate_burst_punish— тривалість покарання за сплеск (5). Значення покарання 0 означає постійний бан, від’ємне — кік.sv_rehlds_send_mapcycle— надсилати mapcycle.txt у serverinfo (0);sv_rehlds_stringcmdrate_max_avg— середній поріг string-команд (80);sv_rehlds_stringcmdrate_avg_punish— покарання за середній поріг (5);sv_rehlds_stringcmdrate_max_burst— поріг сплеску string-команд (400);sv_rehlds_stringcmdrate_burst_punish— покарання за сплеск (5).sv_rehlds_userinfo_transmitted_fields— ключі userinfo, що передаються клієнтам; порожнє значення означає передавання всіх полів, крім тих, що починаються з підкреслення (типове значення — порожній рядок). Ключі записуються з префіксом зворотної скісної риски, наприклад:namemodel*sid*hltvbottomcolortopcolor.sv_rehlds_attachedentities_playeranimationspeed_fix— виправлення швидкості gait-анімації гравця з приєднаними сутностями (0); документація попереджає про можливі затримки анімації за низького cl_updaterate.sv_rehlds_maxclients_from_single_ip— ліміт одночасних з’єднань з однієї IP-адреси (5);sv_rehlds_local_gametime— локальний ігровий час для зменшення затримок на довготривалій карті (0).sv_rehlds_allow_large_sprays— дозволити логотипи більші за 64×64 (1);sv_use_entity_file— режим файлів сутностей maps/[назва карти].ent: 0 використовує оригінальні сутності, 1 — наявний файл .ent, 2 — використовує його або створює, якщо файла немає.sv_usercmd_custom_random_seed— додаткове випадкове зерно сервера, незалежне від клієнта (0).sv_net_incoming_decompression— розпаковувати вхідні стиснені передачі файлів (1);sv_net_incoming_decompression_max_ratio— максимальне співвідношення стиснених і розпакованих даних, межі 0–100 (80.0);sv_net_incoming_decompression_max_size— максимальний розмір після розпакування, межі 16–65536 (65536 байтів).sv_net_incoming_decompression_min_failures— мінімум помилок до позначення з’єднання для можливого покарання (4);sv_net_incoming_decompression_max_failures— максимум помилок у часовому вікні (10);sv_net_incoming_decompression_min_failuretime— мінімальний інтервал відстеження в секундах (0.1);sv_net_incoming_decompression_punish— покарання за некоректні bzip2-фрагменти, у хвилинах (-1; від’ємне значення означає кік).sv_tags— необов’язкові теги сервера через кому (порожній рядок);sv_filterban— IP-фільтрація: -1 відхиляє всіх, 0 вимикає перевірки, 1 перевіряє IP-бани (типово 1).sv_rehlds_movecmd_max_ticks— максимум команд руху від гравця за кадр (24);sv_rehlds_movecmd_max_null_streak— максимум послідовних порожніх команд (0 вимикає перевірку);sv_rehlds_movecmd_clamp_interp— блокувати некоректний ex_interp (1);sv_rehlds_movecmdtime_samples— кількість кадрів для усереднення швидкості (120).sv_rehlds_movecmdtime_max_error— допустиме відхилення внутрішнього годинника клієнта в мілісекундах (300);sv_rehlds_movecmdtime_max_scaleіsv_rehlds_movecmdtime_min_scale— верхня та нижня межі швидкості гри (3.0 і 0.5);sv_rehlds_movecmdtime_max_warnings— ліміт попереджень до покарання (-1 вимикає виявлення);sv_rehlds_movecmdtime_punish— покарання за прискорення чи сповільнення (-1, кік).
Команди
rescountпоказує загальну кількість попередньо завантажених ресурсів.reslist <sound | model | decal | generic | event>виводить список ресурсів вибраного типу; команда допомагає контролювати обмеження GoldSrc на precache.rcon_adduser <ipaddress/CIDR>додає IP-адресу або діапазон до списку користувачів RCON із привілейованим доступом до консолі.rcon_deluser <ipaddress> {removeAll}вилучає адресу або діапазон;rcon_usersпоказує записи списку.
За README, за відсутності користувачів RCON доступ дозволений кожному, хто має правильний пароль. ReHLDS поширюється за ліцензією MIT; раніше проєкт мав GPLv3, а перехід відбувся в липні 2025 року.
Скріншоти плагіна

Завантаження
Версія: 3.15.0.896.
ZIP містить вихідні коди; перед встановленням може знадобитися компіляція. Файл плагіна: @dependency.
Коментарі (0)