

Предыстория (Пишет 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
Скомпилированные файлы доступны Здесь (выберите .zip с наиболее свежей датой изменения).
Директория архива bin содержит 2 поддиректории, 'bugfixed' и 'pure'.
- 'pure' рассчитана на работу в точности как оригинальный мод CS от valve.
- 'bugfixed' содержит некоторые исправления и улучшения.
Конфигурационный файл game.cfg положить в корень сервера или в папку мода cstrike.

game.cfg
// Файл конфигурации ReGameDLL
// Стиль игрового процесса, где нет команд (режим FFA)
// 0 - отключено
// 1 - включен
//
mp_freeforall 0
// Автоматическая балансировка команд
// 0 - отключено
// 1 - после следующего раунда
// 2 - в следующем раунде
//
mp_autoteambalance 1
// Время закупки оружия в начале раунда в минутах
// -1 - означает ограничение по времени
// 0 - отключить покупку
//
mp_buytime 0.25
// Максимально допустимая сумма денег в игре
//
mp_maxmoney 16000
// Блокировки конца раунда.
// 0 - отключено
// 1 - включен
//
// Для большего интереса и разнообразия можно блокировать отдельные события конца раунда, используя флаги:
// a - заблокировать конец раунда по истечению времени
// b - заблокировать конец раунда при достижении определённого числа игроков
// c - заблокировать конец раунда при убийстве или спасении випа
// d - заблокировать конец раунда при побеге из тюрьмы
// e - заблокировать конец раунда при взрыве бомбы
// f - заблокировать конец раунда при убийстве одной из команд
// g - заблокировать конец раунда при спасении заложников
//
// Пример настройки: "ae" - заблокирует конец раунда по истечению времени и взрыва бомбы
mp_round_infinite 0
// Принудительное завершение раунда на картах, где нет определенной цели: установка бомбы, эвакуация заложников или вип.
// Пример работы квара: если установить значение "1", то, допустим, на карте 35hp_2 по истечению времени раунд завершится.
// Обычно по истечению времени раунд не завершался
//
// 0 - отключено
// 1 - включен
//
mp_roundover 0
// Количество секунд для задержки перед перезапуском раунда после победы.
//
mp_round_restart_delay 5
// Нанесения урона осколочной гранатой врагу, находящемуся за стеной
// 0 - отключено
// 1 - включен
//
mp_hegrenade_penetration 0
// Выпадение гранат после смерти игрока
// 0 - отключено
// 1 - уронить гранату
// 2 - бросить все гранаты
//
mp_nadedrops 0
// Время, спустя после начала раунда которого игрок не сможет заспавниться
//
mp_roundrespawn_time 20
// Автоматическая перезарядка всего оружия в новом раунде
// 0 - отключено
// 1 - включен
//
mp_auto_reload_weapons "0"
// Пополнение количества патронов рюкзака до макс.
// 0 - отключено
// 1 - Пополнить патроны рюкзака когда спавнится игрок
// 2 - Пополнить патроны рюкзака при покупке оружия
// 3 - Пополнить патроны рюкзака при каждой перезарядке оружия
//
mp_refill_bpammo_weapons 0
// Автоматически присоединяется к команде
// 0 - отключено
// 1 - включено (используется совместно с cvar people_join_team any / SPEC / CT / T)
//
mp_auto_join_team 0
// Максимальное количество убийств товарищей по команде перед наказанием кик
// При этом учитывается cvar mp_autokick "1"
// 0 - отключено
//
mp_max_teamkills 3
// Количество фрагов, при достижении которого игра на карте будет завершена
//
mp_fraglimit 0
// Длительность игры на одной карте в минутах
//
mp_timelimit 20
// Принудительный быстрый респаун для убитого клиента
// 0 - отключить
//
mp_forcerespawn 0
// Урона по заложникам
// 0 - отключено
// 1 - включено
mp_hostage_hurtable 1
// Огонь по своим между ботами
// 0 - отключено
// 1 - включить
//
bot_deathmatch 0
// Квар, с помощью которого можно заполнить сервер ботами. При этом, боты будут добавлены таким образом, чтобы вместе с реальными игроками сервер оказался полон
// normal
// fill
//
bot_quota_mode "normal"
// Отладочный редим Debug
// 0 - отключено
// 1 - включен
//
showtriggers 0
Внимание! Файлы
ReGameDLL бинарно несовместимы с оригинальным, так как скомпилированы другим компилятором.
Это означает, что плагины, делающие анализ бинарного кода (Orpheu например), вероятно, не будут работать с
ReGameDLL. Поддерживаемые версии Metamod:- Metamod 1.21-am или 1.21p37 (Внимание: 1.20 и ниже Не рекомендуются)
Благодарности:- Проекту ReHLDS и всем кто участвовал в нём.
- Dreamstalker за предоставленный репозиторий.
Известные проблемы и их решения:

Нажмите здесь чтобы увидеть полный текст
- Вопрос: Что делать если падает сервер и у меня amxmodx 1.8.2?
- Ответ Убедитесь что виноват модуль amxx cstrike, выключите все плагины использующий модуль cstrike, если сервер не падает, то вам нужно скачать специальную версию cstrike модуля для ReGameDLL (Архив прикреплён ниже)
- Вопрос: У меня не работает модуль 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) и добавьте строчку:
Источник:Dedicated-Server.ru