ReGameDLL_CS, Reverse-engineered mod CS

1.jpg
ReGameDLL_CS, Reverse-engineered mod CS
2 МБ
Первоисточник





  • ДобавилHost-v • 12 мар 2022, 11:35
  • Авторs1lent
  • Версия5.21.0.556
  • Статистика 823 просмотра • 0 комментариев • 7 скачиваний
Занялся 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 полностью совместим с оригинальным модом CS
Все, что от вас требуется, это загрузить бинарные файлы ReGameDLL и заменить оригинальные mp.dll/cs.so

Директория архива bin содержит 2 поддиректории, 'bugfixed' и 'pure'.
  • 'pure' рассчитана на работу в точности как оригинальный мод CS от valve.
  • 'bugfixed' содержит некоторые исправления и улучшения.
Конфигурационный файл game.cfg положить в корень сервера или в папку мода cstrike.

Поддерживаемые версии Metamod:
  • Metamod 1.21-am или 1.21p37 (Внимание: 1.20 и ниже Не рекомендуются)
Внимание: Файлы ReGameDLL бинарно несовместимы с оригинальным, так как скомпилированы другим компилятором.
Это означает, что плагины, делающие анализ бинарного кода (Orpheu например), вероятно, не будут работать с ReGameDLL.

Инструкции по сборке Regamedll_CS (опционально):
Требования к программному обеспечению для сборки Regamedll_CS:
  1. Java Development Kit (JDK) 7+ (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
  2. For Windows: Visual Studio 2015 and later
  3. For Linux: GCC/Clang/Intel C++ Compiler 15 and later
Проверка требований:
JDK version

Windows

Код: Выделить всё

> %JAVA_HOME%\bin\javac -version
javac 1.8.0_25
Linux

Код: Выделить всё

$ javac -version
javac 1.7.0_65
Visual Studio

Код: Выделить всё

Help -> About
ICC

Код: Выделить всё

$ 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 (LinuxWindowsот dev-версии 1.8.3 и вам необязательно обновлять целиком amxmodx до 1.8.3, достаточно одного cstrike модуля)

  • Вопрос: У меня не работает модуль adminfreelook, можно это исправить?
  • Ответ: Используйте AMXX плагин AdminFreeLook на ReGameDLL API, скачать здесь.

  • Вопрос: Не работает AdminFreeLook, как исправить?
  • Ответ: CVar's mp_forcecameramp_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, он скомпилирует и проведет тесты.
Ищите баги (ошибки) и делайте пул реквесты :)

Кто сейчас на конференции

Зарегистрированные пользователи: D3m0H10ra641