Первоисточник - Dedicated-Server.ru
In english - Regamedll_CS, Reverse-engineered mod CS - AlliedModders
Предыстория:
s1lent занялся реверсом мода CS в начале 2015 года, сначала попытавшись починить gamedll от вьетнамца cs16nd,
но как оказалось - безуспешно. Cколько багов ни фиксил, находились новые, прогонка и анализ кода по IDA заставили бросить это дело.
Спустя несколько месяцев, появление ReHLDS дало второе дыхание работе над проектом. В этом проекте s1lent'a привлекли его метод реверс-инжиниринга и система проведения тестов
Теперь подробнее:
ReGameDLL_CS - это результат реверс-инжиниринга оригинального мода CS (build 6153beta) с использованием отладочной информации DWARF, встроенной в линуксовую версию движка cs.so
Цели:
История изменений:
Настройки:
Как использовать?
ReGameDLL_CS полностью совместим с оригинальным gamedll. Все, что от вас требуется, это загрузить бинарные файлы ReGameDLL_CS и заменить ими оригинальные mp.dll/cs.so
Скомпилированные файлы мода вы можете найти здесь (выберите .zip файл с датой последнего изменения). Директория архива bin содержит 2 поддиректории: bugfixed и pure
Если установка ReGameDLL_CS была проведена правильно, то при вводе команды "game version" в консоль сервера должны быть отображены строки сообщающие об версии ReGameDLL_CS
Инструкция по добавлению ботов : Ссылка
Подробная информация о работе квара sv_alltalk : sv_alltalk
In english - Regamedll_CS, Reverse-engineered mod CS - AlliedModders
Предыстория:
s1lent занялся реверсом мода CS в начале 2015 года, сначала попытавшись починить gamedll от вьетнамца cs16nd,
но как оказалось - безуспешно. Cколько багов ни фиксил, находились новые, прогонка и анализ кода по IDA заставили бросить это дело.
Спустя несколько месяцев, появление ReHLDS дало второе дыхание работе над проектом. В этом проекте s1lent'a привлекли его метод реверс-инжиниринга и система проведения тестов
Теперь подробнее:
ReGameDLL_CS - это результат реверс-инжиниринга оригинального мода CS (build 6153beta) с использованием отладочной информации DWARF, встроенной в линуксовую версию движка cs.so
Цели:
- Предоставить более расширенный API для модов и плагинов
- Исправление багов
- Внедрение оптимизации
- CS 1.6 - [100%]
- C:Zero - [100%]
История изменений:
Дополнительное описание и перевод на русский язык присутствует, история ведеётся не сначала, но все равно полезна.
[EN] Commit № 201
- Fix func_rotating · s1lentq/ReGameDLL_CS@1dc4849 · GitHub
- Fixes the func_rotating function responsible for dropping the state of the entity. This function is called when a new round starts. The update affects rotating objects.
- Fix func_rotating · s1lentq/ReGameDLL_CS@1dc4849 · GitHub
- Исправляет функцию func_rotating отвечающую за сбрасывание состояния энтити. Эта функция вызывается при начале нового раунда․ Обновление затрагивает вращающиеся объекты.
[EN] Commit № 202
- ReGameDLL API: Implement API for StartDeathCam (#162) · s1lentq/ReGameDLL_CS@efea014 · GitHub
- Adds C++ API for StartDeathCam and increments version to 5.3.0.XXX
- ReGameDLL API: Implement API for StartDeathCam (#162) · s1lentq/ReGameDLL_CS@efea014 · GitHub
- Добавляет C++ API для StartDeathCam и увеличивает версию до 5.3.0.XXX.
[EN] Commit № 203
[RU] Коммит № 203
[RU] Коммит № 203
- Move StartDeathCam() to the end. (#165) · s1lentq/ReGameDLL_CS@bca47a9 · GitHub
- Исправляет падение сервера
[EN] Commit № 204
- Fix typo, related to a5dac3c267d13e60c64b1c6704611871b9027a53 (#166) · s1lentq/ReGameDLL_CS@80a9c17 · GitHub
- Fixes bugfixed version behavior in case of player death camera start
- Fix typo, related to a5dac3c267d13e60c64b1c6704611871b9027a53 (#166) · s1lentq/ReGameDLL_CS@80a9c17 · GitHub
- Исправляет поведение bugfixed версии в случае старта камеры смерти․
[EN] Commit № 205
[EN] Commit № 206
- Fix CSprayCan position relative to player (#167) · s1lentq/ReGameDLL_CS@a34740e · GitHub (description of the bugs by Arkshine)
- Fixes bug, when spraying at the distance limit didn't create decals
- Fixes bug, when spraying below something, sometimes didn't create sound
- Fix CSprayCan position relative to player (#167) · s1lentq/ReGameDLL_CS@a34740e · GitHub (автор описания Arkshine)
- Исправляет баг, когда спрея на лимите дистанции, спрей не проявлялся
- Исправляет баг, когда спрея под чем-то, иногда не воспроизводился звук
30 Июн 2017
- Fix fall sound bug (#169) · s1lentq/ReGameDLL_CS@63e16f7 · GitHub
- Fixes bug, when fall damage sound was played, if player received 0 damage
- Fix fall sound bug (#169) · s1lentq/ReGameDLL_CS@63e16f7 · GitHub
- Исправляет баг, когда звук урона от падения воспроизводился, если игрок получил 0 урона
[EN] Commit № 207
- Code cleanup · s1lentq/ReGameDLL_CS@5756bfc · GitHub
- Hookers refactoring
- Removed __MAKE_VHOOK
- Fix compilation under linux with ICC 17 (GCC 6.2)
- Code cleanup · s1lentq/ReGameDLL_CS@5756bfc · GitHub
- Рефакторинг хукеров
- __MAKE_VHOOK удалён
- Исправлена компиляция под Linux с ICC 17 (6CC 6.2)
[EN] Commit № 208
[EN] Commit № 209
[EN] Commit № 210
- CZBot: Fix crash when there is no phrase from BotChatter.db or no exi… · s1lentq/ReGameDLL_CS@b4bc385 · GitHub
- CZBot: Fix crash when there is no phrase from BotChatter.db or file itself is deleted
- Minor refactoring
- CZBot: Fix crash when there is no phrase from BotChatter.db or no exi… · s1lentq/ReGameDLL_CS@b4bc385 · GitHub
- CZBot: Исправление краша, когда нет фразы в BotChatter.db или нет того файла
- Незначительный рефакторинг
5 Июл 2017
- trigger_push: reworked reset · s1lentq/ReGameDLL_CS@7fddff5 · GitHub
- trigger_push: reworked reset
- func_rot_button: reset entity on start round
- trigger_push: reworked reset · s1lentq/ReGameDLL_CS@7fddff5 · GitHub
- trigger_push: переработано сбрасывание
- func_rot_button: теперь будет сбрасывать энтити в начале нового раунда
5 Июл 2017
- func_wall_toggle: reset entity on start round · s1lentq/ReGameDLL_CS@f0409ce · GitHub
- func_wall_toggle: reset entity on start round
- func_wall_toggle features: added spawnflags not solid
- Update regamedll-cs.fgd
- func_wall_toggle: reset entity on start round · s1lentq/ReGameDLL_CS@f0409ce · GitHub
- func_wall_toggle: теперь энтити будет сбрасывать в начале нового раунда
- func_wall_toggle возможности: добавлено spawnflags свойство not solid
- Обновлён файл regamedll-cs.fgd
[EN] Commit № 211
[EN] Commit № 212 - 213
- env_render: reset entity on start round · s1lentq/ReGameDLL_CS@721624b · GitHub
- env_render: reset entity on start round
- env_render: reset entity on start round · s1lentq/ReGameDLL_CS@721624b · GitHub
- env_render: сбрасывание состояния энтити в начале нового раунда
[EN] Commit № 212 - 213
- Optimize PlayerBlind (#171) · s1lentq/ReGameDLL_CS@09e714e · GitHub
- Optimize CBasePlayer::SendWeatherInfo (#159) · s1lentq/ReGameDLL_CS@419603f · GitHub
- Minor optimizations
Настройки:
C++:
// ReGameDLL Configuration File
echo Executing ReGameDLL Configuration File
// Вкл./Выкл. режима "Каждый сам за себя" (FFA mode)
// 0 - выключить (значение по умолчанию)
// 1 - включить
// Значение по умолчанию: "0"
mp_freeforall 0
// Балансировка команд
// 0 - выключить
// 1 - Балансировка будет происходить через раунд (значение по умолчанию)
// 2 - Балансировка команд каждый раунд
// Значение по умолчанию: "1"
mp_autoteambalance 1
// Время закупки в каждом раунде. (в минутах
// -1 - нет ограничения по времени
// 0 - отключить закупку
// Значение по умолчанию: "1.5"
mp_buytime 0.25
// Максимальное кол-во денег
// Значение по умолчанию: "16000"
mp_maxmoney 16000
// Блокировка окончания раунда
// 0 - выключить (значение по умолчанию)
// 1 - включить (раунд не кончается)
//
// Дополнительные флаги настройки (выбрать столько, сколько нужно)
// a - Заблокировать окончание раунда если время истекло
// b - Заблокировать окончание раунда если на сервере есть хотябы по 1 игроку в каждой команде
// c - Заблокировать окончание раунда при убийстве или спасении VIP
// d - Заблокировать окончание раунда при побеге из тюрьмы
// e - Заблокировать окончание раунда если бомба взорвана
// f - Заблокировать окончание раунда при убийстве команды соперника
// g - Заблокировать окончание раунда если заложники спасены
//
// Пример: "ae" - Заблокирует окончание раунда по истечению времени и взрыву бомбы
// Значение по умолчанию: "0"
mp_round_infinite 0
// Принудительное завершение раунда, по истечению времени, на картах без сценария
// 0 - выключить (значение по умолчанию)
// 1 - включить
// Значение по умолчанию: "0"
mp_roundover 1
// Выдержка времени до начала нового раунда, после окончания текущего.
// Значение по умолчанию: "5"
mp_round_restart_delay 5
// Блокировка урона осколочной гранаты через стены
// 0 - выключено (урон проходит)
// 1 - включить
// Значение по умолчанию: "0"
mp_hegrenade_penetration 0
// Выбрасывать гранаты на землю, после смерти игрока
// 0 - выключено
// 1 - выбросить первую гранату (Если у игрока было 1 HE, 2 Flash, 1 Smoke, то на землю упадет только 1 HE)
// 2 - выбросить все гранаты
// Значение по умолчанию: "0"
mp_nadedrops 0
// Время, после начала раунда, когда игрок не сможет заспавниться и будет ждать нового раунда
//
// Значение по умолчанию: "20"
mp_roundrespawn_time 2
// Автоматическая перезарядка оружия после спавна
// 0 - выключить (значение по умолчанию)
// 1 - включить
//
// Значение по умолчанию: "0"
mp_auto_reload_weapons "0"
// Пополнение патронов
// 0 - выключено (значение по умолчанию)
// 1 - пополнять запас патронов после спавна
// 2 - пополнять запас патронов после спавна и полная обойма, при покупке оружия
// 3 - пополнять запас патронов после каждой перезарядки ( Полезно для модов DeathMatch, GunGame, ZombieMod.)
//
// Значение по умолчанию: "0"
mp_refill_bpammo_weapons 0
// Автоматическое присоединение к команде
// 0 - выключить
// 1 - включить (Используйте настройки humans_join_team any/CT/T)
//
// Значение по умолчанию: "0"
mp_auto_join_team 0
// Максимальное число убийств товарищей по команде, после чего последует kick
// Используйте, когда включен mp_autokick.
// 0 - выключить
//
// Значение по умолчанию: "3"
mp_max_teamkills 3
// Покажет кол-во фрагов в консоли, если включена настройка mp_fraglimit
mp_fragsleft
// Когда игрок наберет заданое число фрагов-карта сменится
// 0 - отключить настройку
//
// Значение по умолчанию: "0"
mp_fraglimit 0
// Время, между сменой карт
// 0 - нет ограничений
//
// Значение по умолчанию: "0"
mp_timelimit 25
// Автоматический респавн игрока после смерти
// 0 - выключить
// >0.00001 - время, после которого произойдет респавн игрока
//
// Значение по умолчанию: "0"
mp_forcerespawn 0
// Заложники не получают урон.
// 0 - выключить
// 1 - От любой команды (Значение по умолчанию)
// 2 - От команды CT
// 3 - От команды T
mp_hostage_hurtable 1
// Отображение радио иконки над головой
// 0 - выключить
// 1 - включить (значение по умолчанию)
mp_show_radioicon 1
// Проигрывать звук "Bomb has been defused" вместо "Counter-Terrorists win", когда бомбу разминировали
// 0 - выключить (стандартное поведение в hlds от valve)
// 1 - включить
//
// Значение по умолчанию: "1"
mp_old_bomb_defused_sound 1
// Установка режима игры для zBot
// 0 - выключить
// 1 - включить поддержку режима Deathmatch и не выполнять сценарий карты
//
// Значение по умолчанию: "0"
bot_deathmatch 0
// Режим заполнения сервера ботами
// normal - не зависит от кол-во игроков (значение по умолчанию)
// fill - сервер будет кикать количество ботов, равное кол-ву подключившихся игроков.
bot_quota_mode "normal"
// Отладочная информация, для показа triggers.
// 0 - выключить (значение по умолчанию)
// 1 - включить
//
// Значение по умолчанию: "0"
showtriggers 0
//Как игроки слышат друг друга. Further explanation: https://github.com/s1lentq/ReGameDLL_CS/wiki/sv_alltalk
// 0 - живые не слышат мертвых и соперников
// 1 - без ограничений
// 2 - товарищи по команде слышат друг друга
// 3 - аналогично 2, но зрители слышат всех
// 4 - живые слышат всех живых, мертвые слышат живых и мертвых
//
// Значение по умолчанию "0"
sv_alltalk 0
// Время (секунды) для удаления предмета, который выбросил игрок
// Значение по умолчанию "300"
mp_item_staytime 300
// Устаревшая обработка касания для func_bomb_target. Новый подход более строгий.
// 0 - Новое поведение
// 1 - Устаревшее
//
// Значение по умолчанию: "1"
mp_legacy_bombtarget_touch "1"
// Указывает время защиты игроков после респауна. (в секундах).
// 0 - отключено
//> 0.00001 - временная задержка для удаления защиты
// Значение по умолчанию: "0"
mp_respawn_immunitytime "0"
ReGameDLL_CS полностью совместим с оригинальным gamedll. Все, что от вас требуется, это загрузить бинарные файлы ReGameDLL_CS и заменить ими оригинальные mp.dll/cs.so
Скомпилированные файлы мода вы можете найти здесь (выберите .zip файл с датой последнего изменения). Директория архива bin содержит 2 поддиректории: bugfixed и pure
- В папке "pure" файл мода, рассчитанный на работу в точности, как оригинальный gamedll
- В папке "bugfixed" файл мода со всеми исправлениями и улучшениями ReGameDLL_CS
Если установка ReGameDLL_CS была проведена правильно, то при вводе команды "game version" в консоль сервера должны быть отображены строки сообщающие об версии ReGameDLL_CS
- Вопрос: Что делать если падает сервер и у меня 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) и добавьте строчку:
gamedll dlls/cs.so
Инструкция по добавлению ботов : Ссылка
Подробная информация о работе квара sv_alltalk : sv_alltalk
Последнее редактирование модератором: