Test.CSM.Dev

OpenHLDS: an open-sourced HLDS

Описание
OpenHLDS - это open-source сервер игры Half-Life 1 и ее модификаций, включая Counter-Strike. Имеется поддержка 47-48 протоколов, а также лицензионных клиентов Steam. Существующие серверные аддоны, теоретически, должны работать без проблем. Начиная с обыкновенной адаптации структур оригинального HLDS от Valve, за 4 месяца разработки этот проект перерос в рабочий и играбельный сервер.

Компиляция
Возьмите готовые файлы из ./bin или скомпилируйте сервер самостоятельно. Любой компилятор Object Pascal кода должен это осуществить. Код предназначен для Delphi (начиная с версии 6), а также FPC (начиная с версии 2.x).

Скомпилированный исполняемый файл (hlds.exe) запускается так же, как и обыкновенный HLDS сервер. Например: hlds -game cstrike -port 27017 -maxplayers 11

Статус
Присутствует возможность использования на 64-разрядной платформе, однако это не было протестировано в связи с отсутствием 64-разрядных игровых библиотек. Исполняемые файлы Linux отсутствуют в данный момент.

Некоторый функционал сервера недоступен или всё еще не разработан. Этим функционалом является:

- Возможность кика/бана
- Фильтрация IP
- Удаленное управление (RCON)
- Парсер varargs; функции varargs могут получать только первый аргумент (называемый форматируемой строкой, или "fmt"). Форматированная строка будет отправлена движку такой, какой она является. Это не является большой проблемой, однако необходимо разработать более эффективный и простой алгоритм парсинга
- Пользовательский интерфейс (пока что это неблокирующая stdin/stdout обертка)
- Поиск файлов (FindFirst, FindNext): "maps *" команда не работает

Известные баги
Список содержит баги, которые уже известны, но еще не были исправлены.

- mapcycle (необходим парсер varargs)
- Список энтити не соответствует триггерам и moveents: это вызывает "дерганное" движение по лесницам и в воде.
- Падение @ g_pSoundent->* @ gamedll OnFrame обработчик
- mp_autokick (необходима команда "kick")
- Падение при roundend при использовании последней gamedll игры Counter-Strike, причина неизвестна
- Ошибка, связанная с делением на ноль в SV_ExtractFromUserInfo (спасибо одному парню из России за ее обнаружение). Исправлена, однако исправление будет выложено позже. Причиной тому была переменная sv_defaultupdaterate, которая не регистрировалась.
- Первый fullupdate всегда будет заблокирован, если фильтр включен. Исправлено, теперь фильтр намного упрощен.
- После отключения игрока от сервера, он все еще будет виден в таблице игроков
- Проблема, связанная с клиппингом на карте de_nuke (спаун CT). Вполне возможно, что это вообще не серверная неисправность
- Сбои в HPAK при смене карты; исправлено
- Эксплойт переполнения буфера (server reliable buffer); исправлено

Если вы обнаружили какой-либо баг, то вы можете пройти по ссылке, кликнуть "New Issue" и ввести информацию о найденной неисправности: текст из консоли, инструкция по вызову бага. Каждый кусочек информации может оказаться полезным.

Лицензия
Отсутствует на данный момент.

Также были включены сторонние компоненты:

- Библиотека BZip2, BSD
- Libc заголовки для Kylix, GPL версии 2
- Немного низкоуровнего программирования из проекта FastCode

Контактная информация и благодарности
Отсутствует на данный момент.

Ссылка на скачивание
https://github.com/unnamed10/openhlds