Ссылки: Что это? Это результат реверс-инжиниринга оригинального mod CS to Half-Life (HLDS build 6153beta) с использованием отладочной информации DWARF, встроенной в линуксовую версию, cs.so.Занялся s1lent этим делом в начале 2015 года, сначала пытался починить gamedll от вьетнамца cs16nd, но, сколько багов не фиксил, - находились новые, прогонка и анализ кода по IDA заставили бросить это дело.
Спустя несколько месяцев, появление ReHLDS дало второе дыхание, в этом проекте меня привлекли его метод реверс-инжиниринга и система проведения тестов.
Простыми словами, 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 (опционально):
Требования к программному обеспечению для сборки Regamedll_CS:
JDK version
Windows
Linux
Visual Studio
ICC
Сборка и запуск тестов с помощью gradle
На Windows:
На Linux (ICC):
На Linux (Clang):
На Linux (GCC):
Скомпилированные бинарные файлы будут размещены в каталоге build/binaries/
Упрощенная постройка с использованием CMake 3.1 и более поздних версий.
На Windows:
Откройте решение
На Linux:
- Java Development Kit (JDK) 7+ (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
- For Windows: Visual Studio 2015 and later
- For Linux: GCC/Clang/Intel C++ Compiler 15 and later
JDK version
Windows
Код: Выделить всё
> %JAVA_HOME%\bin\javac -version
javac 1.8.0_25
Код: Выделить всё
$ javac -version
javac 1.7.0_65
Код: Выделить всё
Help -> About
Код: Выделить всё
$ icc --version
icc (ICC) 15.0.1 20141023
Сборка и запуск тестов с помощью gradle
На Windows:
gradlew --max-workers=1 clean buildRelease
- Для более быстрой сборки без тестирования используйте это:
gradlew --max-workers=1 clean buildFixes
На Linux (ICC):
./gradlew --max-workers=1 clean buildRelease
- Для более быстрой сборки без тестирования используйте это:
./gradlew --max-workers=1 clean buildFixes
На Linux (Clang):
./gradlew --max-workers=1 clean -PuseClang buildRelease
- Для более быстрой сборки без тестирования используйте это:
./gradlew --max-workers=1 clean -PuseClang buildFixes
На Linux (GCC):
./gradlew --max-workers=1 clean -PuseGcc buildRelease
- Для более быстрой сборки без тестирования используйте это:
./gradlew --max-workers=1 clean -PuseGcc buildFixes
Скомпилированные бинарные файлы будут размещены в каталоге build/binaries/
Упрощенная постройка с использованием CMake 3.1 и более поздних версий.
На Windows:
Откройте решение
msvc\ReGameDLL.sln
и соберите его.На Linux:
- Запустите скрипт regamedll/compile.sh
- Использование опций regamedll/compile.sh -D[option]=[ON or OFF] (без квадратных скобок)
Код: Выделить всё
DEBUG - Включает режим отладки
USE_INTEL_COMPILER - Заменить главный компилятор на ICC
USE_CLANG_COMPILER - Заменить главный компилятор на Clang
USE_STATIC_LIBSTDC - Включает поддержку статической линковки библиотеки libstdc++
Известные проблемы и их решения
- Вопрос: Что делать если падает сервер и у меня amxmodx 1.8.2?
- Ответ: Убедитесь, что виноват модуль amxx cstrike, выключите все плагины использующий модуль cstrike, если сервер не падает, то вам нужно скачать обновлённую версию cstrike 1.8.3 модуля для ReGameDLL (Этот модуль взят с официального источника amxmodx.org (Linux, Windows) от dev-версии 1.8.3 и вам необязательно обновлять целиком amxmodx до 1.8.3, достаточно одного cstrike модуля)
- Вопрос: У меня не работает модуль adminfreelook, можно это исправить?
- Ответ: Используйте AMXX плагин AdminFreeLook на ReGameDLL API, скачать здесь.
- Вопрос: Не работает AdminFreeLook, как исправить?
- Ответ: CVar's mp_forcecamera, mp_forcechasecam не должны равняться 0, а также mp_fadetoblack должен быть 0.
- Вопрос: Как узнать, работает ли ReGameDLL?
- Ответ: Вы можете узнать через команду game version.
- Вопрос: Не реагирует на команду game version, что делать?
- Ответ: Для начала нужно выполнить некоторые шаги:
- Вы должны убедиться что поместили mp.dll (Для Windows) или cs.so (Для Linux) в директорию gamedir/dlls/.
- Если у вас стоит Metamod, вы должны убедиться, что Metamod загружает именно вашу библиотеку mp.dll/cs.so, напишите команду meta game и увидите в "dll pathname" путь до библиотеки которую загрузил Metamod.
- В папке gamedir/dlls не должны быть cs_i386.so и бэкап оригинальной библиотеки cs.so, так или иначе Metamod их загрузит, так как считает их приоритетные чем ReGameDLL. (Совет: Вы можете прямо указать Metamod-у какую библиотеку грузить, для этого зайдите в папку Metamod-а (addons/metamod), откройте config.ini (если нету, создайте config.ini) и добавьте строчку: gamedll dlls/cs.so
Форкайте на гите проект, собирайте через gradle, он скомпилирует и проведет тесты.
Ищите баги (ошибки) и делайте пул реквесты