- Автор
- s1lent
- Благодарности
- Проекту ReHLDS и всем кто участвовал в нём.
- Dreamstalker за предоставленный репозиторий.
Занялся s1lent этим делом в начале 2015 года, сначала пытался починить gamedll от вьетнамца cs16nd, но, сколько багов не фиксил, - находились новые, прогонка и анализ кода по IDA заставили бросить это дело.Ссылки:
Спустя несколько месяцев, появление ReHLDS дало второе дыхание, в этом проекте меня привлекли его метод реверс-инжиниринга и система проведения тестов.
Что это? Это результат реверс-инжиниринга оригинального mod CS to Half-Life (HLDS build 6153beta) с использованием отладочной информации DWARF, встроенной в линуксовую версию, cs.so.
Простыми словами, ReGameDLL это то, что отвечает за CS в целом.
В нём описана вся логика мода CS, а также работы оружия, поведения entities, взаимодействия команд и условия окончания раундов, и прочее.
Что нам это даст?
- Проект собирается современными компиляторами, что даст нам чуть больше производительности.
- Некоторые полезные или часто используемые вещи возможно будут добавлены сразу в мод, без надобности делать это через AMXX plugins.
- Возможность использовать расширенный ReGameDLL API для Metamod plugins или AMXX modules.
- Предоставить более расширенный API для модов и плагинов.
- Исправление багов.
- Оптимизация кода.
Все, что от вас требуется, это загрузить бинарные файлы ReGameDLL и заменить оригинальные mp.dll/cs.so
Директория архива bin содержит 2 поддиректории, 'bugfixed' и 'pure'.
- 'pure' рассчитана на работу в точности как оригинальный мод CS от valve.
- 'bugfixed' содержит некоторые исправления и улучшения.
Поддерживаемые версии Metamod:
- Metamod 1.21-am или 1.21p37 (Внимание: 1.20 и ниже Не рекомендуются)
Это означает, что плагины, делающие анализ бинарного кода (Orpheu например), вероятно, не будут работать с ReGameDLL.
Спойлер: Инструкции по сборке Regamedll_CS (опционально):
Спойлер: Известные проблемы и их решения
Как можно помочь?
Форкайте на гите проект, собирайте через gradle, он скомпилирует и проведет тесты.
Ищите баги (ошибки) и делайте пул реквесты :)
- Команды
game version Покажет версию GameDLL, дату и URL. endround Аргументы:
T - принудительно закончить раунд с победой Терористов.
CT - принудительно закончить раунд с победой Контер-Терористов.
или завершить раунд вничью, когда аргумент не указан.mp_swapteams Команды поменялись местами и перезапуск игры.