ReGameDLL_CS, Reverse-engineered mod CS

ReGameDLL_CS, Reverse-engineered mod CS 5.26.0.668

Автор
Совместимость с
Amx Mod X 1.9.0, Amx Mod X 1.10.0 dev
Благодарности
  • Проекту 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 полностью совместим с оригинальным модом 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:
  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.9.0 модуля для ReGameDLL (Этот модуль взят с официального источника amxmodx.org

  • Вопрос: У меня не работает модуль adminfreelook, можно это исправить?
  • Ответ: Используйте AMXX модуль ReFreeLook на 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) и добавьте строчку:

Как можно помочь?
Форкайте на гите проект, собирайте через gradle, он скомпилирует и проведет тесты.
Ищите баги (ошибки) и делайте пул реквесты :)
Команды
Command​
Description​
game version​
Will show GameDLL build version, date & URL.​
endround​
Args:
T force round end with Terrorists win.
CT force round end with Counter-Terrorists win.
or terminate round draw when called without arguments.​
swapteams​
Swap the teams and restart the game.​
give​
Give weapon command.
Args:
<weapon_name>
Usage:
give weapon_ak47
give weapon_usp

NOTE: sv_cheats 1 required.​
impulse 255​
Give all weapons.

NOTE: sv_cheats 1 required.​
Автор
Adidasman
Скачиваний
31,957
Просмотры
92K
Первый выпуск
Обновление
Оценка
4.56 звёзд 9 оценок

Другие ресурсы пользователя Adidasman

Последние обновления

  1. Обновление до версии 5.26.0.668

    ВНИМАНИЕ!!! ATTENTION!!! WARNING!!! эта версия совместима с версией reapi 5.24.0.300 и выше...
  2. Обновление до версии 5.22.0.593

    Add FreeGameRules hook, api util functions, player api functions by @fl0werD in #808 Fix...
  3. 5.21.0.576

    fix: update scoreboard attributes on defuser pickup by @wopox1337 in #770 Add an argument to...

Последние рецензии

Плохая физика у машин! :(
супер!
?
ac
Пока все супер
Очень годная тема. После фикса Object Boost бага просто восторг) Теперь не полетаешь на табуретке на Estate, она просто отталкивается. Спасибо за работу!
:)
Все полезный =)
ОТЛИЧНО!
Сверху Снизу