ReGameDLL ReGameDLL_CS - reverse engineered mod CS

Inline

Пользователь
Регистрация
8 Июн 2017
Сообщения
226
Симпатии
78
Пол
Мужской
#1
Первоисточник - 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

Цели:
  • Предоставить более расширенный API для модов и плагинов
  • Исправление багов
  • Внедрение оптимизации
Текущий статус:
  • CS 1.6 - [100%]
  • C:Zero - [100%]
Ссылки:
История изменений:
Дополнительное описание и перевод на русский язык присутствует, история ведеётся не сначала, но все равно полезна.
[EN] Commit № 201
[RU] Коммит № 201
  • Fix func_rotating · s1lentq/ReGameDLL_CS@1dc4849 · GitHub
  • Исправляет функцию func_rotating отвечающую за сбрасывание состояния энтити. Эта функция вызывается при начале нового раунда․ Обновление затрагивает вращающиеся объекты.
[EN] Commit № 202
[RU] Коммит № 202
[EN] Commit № 204
[RU] Коммит № 204
[EN] Commit № 205
[RU] Коммит № 205
30 Июн 2017
[EN] Commit № 206
[RU] Коммит № 206
[EN] Commit № 207
[RU] Коммит № 207
[EN] Commit № 208
[RU] Коммит № 208
5 Июл 2017
[EN] Commit № 209
[RU] Коммит № 209
5 Июл 2017
[EN] Commit № 210
[RU] Коммит № 210

Нововведения:
На данный момент в ReGameDLL_CS добавлен ряд новых настроек, находящихся в файле game.cfg:
C++:
//  Вкл./Выкл. режима "Каждый сам за себя" (FFA mode)
// 0 - выключить (значение по умолчанию)
// 1 - включить
// Значение по умолчанию: "0"
mp_freeforall 0

// Балансировка команд
// 0 - выключить
// 1 - Балансировка будет происходить через раунд (значение по умолчанию)
// 2 - Балансировка команд каждый раунд
// Значение по умолчанию: "1"
mp_autoteambalance 1

// Время закупки в каждом раунде. (в минутах
// -1 - нет ограничения по времени
//  0 - отключить закупку
// Значение по умолчанию: "1.5"
mp_buytime 1.5

// Максимальное кол-во денег
// Значение по умолчанию: "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 0

// Выдержка времени до начала нового раунда, после окончания текущего.
// Значение по умолчанию: "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 20

// Автоматическая перезарядка оружия после спавна
// 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 - means no limit
//
// Значение по умолчанию: "0"
mp_timelimit 20

// Автоматический респавн игрока после смерти
// 0  - выключить
// >0.00001 - время, после которого произойдет респавн игрока
//
// Значение по умолчанию: "0"
mp_forcerespawn 0

// Заложники получают урон.
// 0 - выключить
// 1 - От любой команды (Значение по умолчанию)
// 2 - От команды CT
// 3 - От команды T
mp_hostage_hurtable 1

// Отображение радио иконки над головой
// 0 - выключить
// 1 - включить (значение по умолчанию)
mp_show_radioicon 1

// Отладочная информация, для показа triggers.
// 0 - выключить (значение по умолчанию)
// 1 - включить
//
// Значение по умолчанию: "0"
showtriggers 0

//Когда игроки слышат друг друга.
// 0 - живые слышат живых в команде, но не слышат мертвых
// 1 - без ограничений
// 2 - товарищи по команде слышат друг друга
// 3 - аналогично 2, но зрители слышат всё
// 4 - живые слышат всех живых, мертвые слышат всех
//
// Значение по умолчанию "0"
sv_alltalk 0

//Время,через которое будут удаляться item'ы (Оружия),дропнутые игроком
//Значение по умолчанию "300"
mp_item_staytime 300

// Установка режима игры для zBot
// 0 - выключить
// 1 - включить поддержку режима Deathmatch и не выполнять сценарий карты
//
// Значение по умолчанию: "0"
bot_deathmatch 0

// Режим заполнения сервера ботами
// normal -  не зависит от кол-во игроков (значение по умолчанию)
// fill - сервер будет кикать количество ботов, равное кол-ву подключившихся игроков.
bot_quota_mode "normal"
Как использовать?
ReGameDLL_CS полностью совместим с оригинальным gamedll. Все, что от вас требуется, это загрузить бинарные файлы ReGameDLL_CS и заменить ими оригинальные mp.dll/cs.so
Скомпилированные файлы мода вы можете найти здесь (выберите .zip файл с датой последнего изменения). Директория архива bin содержит 2 поддиректории: bugfixed и pure
  • В папке "pure" файл мода, рассчитанный на работу в точности, как оригинальный gamedll
  • В папке "bugfixed" файл мода со всеми исправлениями и улучшениями ReGameDLL_CS
В архиве вы также найдете конфигурационный файл game.cfg, который содержит в себе новые квары, созданные в Regamedll. Во время его установки конфигурационный файл можно переместить в корневую папку сервера или в папку мода
Если установка ReGameDLL_CS была проведена правильно, то при вводе команды "game version" в консоль сервера должны быть отображены строки сообщающие об версии ReGameDLL_CS.[/SPOILER][/SPOILER]

Инструкция по добавлению ботов : Ссылка
Подробная информация о работе квара sv_alltalk : sv_alltalk
 
Последнее редактирование модератором:

Vesuvius

Пользователь
Регистрация
8 Июн 2017
Сообщения
233
Симпатии
68
Пол
Мужской
#4
ктото кидал мне ссилку на ботов на github, а я не сохранял.. думал завтра.. а завтра бил для форума денем-Х..
может ктонибуть дать?
 

Vesuvius

Пользователь
Регистрация
8 Июн 2017
Сообщения
233
Симпатии
68
Пол
Мужской
#6
создал на домашнем сервере ботов...
вроде получилось
подскажите.. можно както избавиться от Initialization перед началом каждой карти?
 

DashaKarma

Пользователь
Регистрация
8 Июн 2017
Сообщения
74
Симпатии
22
Пол
Женский
#7
Можно ли попросить модераторов о небольших заметках "что поменялось в новых версиях/что пофиксили/что добавили"... если не сложно? А то никакой конкретики явной... Заранее, спасибо.
 

REVO

Заблокированные
Пользователь
Регистрация
9 Июн 2017
Сообщения
278
Симпатии
68
Пол
Мужской
#9
при обновлении, надо еще что то обновлять?
 

REVO

Заблокированные
Пользователь
Регистрация
9 Июн 2017
Сообщения
278
Симпатии
68
Пол
Мужской
#11
Phantom, нужно мне плагины заного перекомпилировать?
или можно спокойно обновить dll и cfg, ?
 

REVO

Заблокированные
Пользователь
Регистрация
9 Июн 2017
Сообщения
278
Симпатии
68
Пол
Мужской
#13
небольшое уточнение! что лучше из этого будет?
до того как с форумом случилось неприятное, в теме статьи про rehlds описывалось что лучше использовать pure.
  • В папке "pure" файл мода, рассчитанный на работу в точности, как оригинальный gamedll
  • В папке "bugfixed" файл мода со всеми исправлениями и улучшениями ReGameDLL_CS
 

izzatillo

Пользователь
Регистрация
8 Июн 2017
Сообщения
254
Симпатии
78
Пол
Мужской
#14
REVO, я всегда обновляю из папки "bugfixed"
 

REVO

Заблокированные
Пользователь
Регистрация
9 Июн 2017
Сообщения
278
Симпатии
68
Пол
Мужской
#15
всем спасибо, обновился! полет нормальный.
 

Vesuvius

Пользователь
Регистрация
8 Июн 2017
Сообщения
233
Симпатии
68
Пол
Мужской
#16
REVO,
в теме статьи про rehlds описывалось что лучше использовать pure.
так вороде всегда описовалось что лучше ставить "bugfixed"
даже тут пишет
  • В папке "bugfixed" файл мода со всеми исправлениями и улучшениями ReGameDLL_CS
 

Inline

Пользователь
Регистрация
8 Июн 2017
Сообщения
226
Симпатии
78
Пол
Мужской
#17
[EN] Commit № 201
[RU] Коммит № 201
  • Fix func_rotating · s1lentq/ReGameDLL_CS@1dc4849 · GitHub
  • Исправляет функцию func_rotating отвечающую за сбрасывание состояния энтити. Эта функция вызывается при начале нового раунда․ Обновление затрагивает вращающиеся объекты.
 

sonyx

Пользователь
Регистрация
8 Июн 2017
Сообщения
496
Симпатии
240
#18
Inline, сударь, не сочтите за наглость)
Есть пару предложений))
1. Коммиты писать под спойлер в топикстарте
2. Коммиты писать тут только на русском, т.к. человек, знающий английский, прочтет все и на гите.
 

Inline

Пользователь
Регистрация
8 Июн 2017
Сообщения
226
Симпатии
78
Пол
Мужской
#19
sonyx, Так же можно и сказать, что смысла нет в первом посте, так как историю можно посмотреть на гитхабе)
Да и по сути это не просто changelog, там и небольшое описание приводится будет.