Dedicated-Server.RU  


Ответ
 
Опции темы Опции просмотра
Старый 30.06.2015, 20:41   #1
с доступом к форуму безопасности
 
Регистрация: 23.02.2014
Адрес: Томск-7
Сообщений: 311
Сказал спасибо: 102
Поблагодарили 1,013 раз(а) в 176 сообщениях
ReGameDll Regamedll_CS, Reverse-engineered mod CS


Предыстория

Занялся я этим делом в начале текущего (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.


Внимание: Файлы 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) и добавьте строчку:
      Цитата:
      gamedll dlls/cs.so

[свернуть]


Как можно помочь?
Форкайте на гите проект, собирайте через gradle, он скомпилирует и проведет тесты.
Ищите баги (ошибки) и делайте пул реквесты :)
Вложения
Тип файла: zip cstrike_amxx_1_8_2_fix.zip (70.8 Кб, 996 просмотров)

Последний раз редактировалось s1lent; 14.01.2017 в 18:31.
s1lent вне форума   Ответить с цитированием
38 пользователей сказали cпасибо:
Показать/Скрыть список поблагодаривших
Старый 01.07.2015, 10:49   #2
с доступом к форуму безопасности
 
Регистрация: 13.10.2012
Адрес: Владивосток
Сообщений: 221
Сказал спасибо: 118
Поблагодарили 83 раз(а) в 47 сообщениях
MyAC User
По умолчанию

Цитата:
сколько багов не фиксил, - находились новые

Нажмите здесь чтобы увидеть полный текст

[свернуть]

всё время хотел написать в топике ре-хлдс что-нибудь типа "ещё бы геймдлл реверснули для полноты картины", ну вот и свершилось :) очередная хорошая новость.
__________________
Gamepolis.ru
shaid вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 09.07.2015, 12:16   #3
с доступом к форуму безопасности
 
Регистрация: 13.10.2012
Адрес: Владивосток
Сообщений: 221
Сказал спасибо: 118
Поблагодарили 83 раз(а) в 47 сообщениях
MyAC User
По умолчанию

что-то на заводится на линухе. сразу сегфолт, даже начать прогружаться не успевает.

Нажмите здесь чтобы увидеть полный текст

[свернуть]
__________________
Gamepolis.ru
shaid вне форума   Ответить с цитированием
Старый 10.07.2015, 16:21   #4
с доступом к форуму безопасности
 
Регистрация: 23.02.2014
Адрес: Томск-7
Сообщений: 311
Сказал спасибо: 102
Поблагодарили 1,013 раз(а) в 176 сообщениях
По умолчанию

Цитата:
Сообщение от shaid Посмотреть сообщение
что-то на заводится на линухе. сразу сегфолт, даже начать прогружаться не успевает.

Нажмите здесь чтобы увидеть полный текст

[свернуть]
стоп-стоп, как ты пытаешься завести?

p.s он не предназначен для боевого сервера (там еще много дел), к тому же он запустится только если mp.dll/cs.so с 6153beta, т.к в filesystem_stdio.dll/so ищутся функции/глобалки не по сигнатуре, а по оффсету.
s1lent вне форума   Ответить с цитированием
Старый 11.07.2015, 08:34   #5
с доступом к форуму безопасности
 
Регистрация: 13.10.2012
Адрес: Владивосток
Сообщений: 221
Сказал спасибо: 118
Поблагодарили 83 раз(а) в 47 сообщениях
MyAC User
По умолчанию

Цитата:
Сообщение от s1lent Посмотреть сообщение
стоп-стоп, как ты пытаешься завести?

p.s он не предназначен для боевого сервера (там еще много дел), к тому же он запустится только если mp.dll/cs.so с 6153beta, т.к в filesystem_stdio.dll/so ищутся функции/глобалки не по сигнатуре, а по оффсету.
ре-хлдс + 6153бета геймдлл. на винде завелось, на линуксе нет)
__________________
Gamepolis.ru
shaid вне форума   Ответить с цитированием
Старый 11.07.2015, 08:41   #6
с доступом к форуму безопасности
 
Регистрация: 23.02.2014
Адрес: Томск-7
Сообщений: 311
Сказал спасибо: 102
Поблагодарили 1,013 раз(а) в 176 сообщениях
По умолчанию

Цитата:
Сообщение от shaid Посмотреть сообщение
ре-хлдс + 6153бета геймдлл. на винде завелось, на линуксе нет)
а подключал как?
оригинальный filesystem_stdio.dll/so от HLDS переименовал в filesystem_stdio2.dll/so?
s1lent вне форума   Ответить с цитированием
Старый 11.07.2015, 08:54   #7
с доступом к форуму безопасности
 
Регистрация: 13.10.2012
Адрес: Владивосток
Сообщений: 221
Сказал спасибо: 118
Поблагодарили 83 раз(а) в 47 сообщениях
MyAC User
По умолчанию

да. всё по гайду.
__________________
Gamepolis.ru
shaid вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 11.07.2015, 09:30   #8
с доступом к форуму безопасности
 
Регистрация: 23.02.2014
Адрес: Томск-7
Сообщений: 311
Сказал спасибо: 102
Поблагодарили 1,013 раз(а) в 176 сообщениях
По умолчанию

Цитата:
Сообщение от shaid Посмотреть сообщение
да. всё по гайду.
на lin давно не запускал, т.к провожу реверс в основном на win, где есть тесты с демками.

проверю.
s1lent вне форума   Ответить с цитированием
Старый 05.12.2015, 23:29   #9
с доступом к форуму безопасности
 
Регистрация: 23.02.2014
Адрес: Томск-7
Сообщений: 311
Сказал спасибо: 102
Поблагодарили 1,013 раз(а) в 176 сообщениях
По умолчанию

Для информации:
Сегодня был завершен реверс мода CS 1.6.
Скомпилированные файлы мода которые включают в себя только CS 1.6 можно скачать здесь
s1lent вне форума   Ответить с цитированием
8 пользователей сказали cпасибо:
Показать/Скрыть список поблагодаривших
Старый 06.12.2015, 10:41   #10
Не проверенный
 
Регистрация: 05.06.2013
Адрес: Тирасполь
Сообщений: 27
Сказал спасибо: 8
Поблагодарили 3 раз(а) в 3 сообщениях
По умолчанию

спавн перестал хукатся
ex3m777 вне форума   Ответить с цитированием
Старый 06.12.2015, 10:58   #11
Проверенный
 
Регистрация: 12.05.2015
Адрес: Город
Сообщений: 218
Сказал спасибо: 31
Поблагодарили 46 раз(а) в 31 сообщениях
По умолчанию

ex3m777, уточняй, что ham
Phantom вне форума   Ответить с цитированием
Старый 06.12.2015, 12:07   #12
Не проверенный
 
Регистрация: 05.06.2013
Адрес: Тирасполь
Сообщений: 27
Сказал спасибо: 8
Поблагодарили 3 раз(а) в 3 сообщениях
По умолчанию

Упал с такой ошибкой

FATAL ERROR (shutting down): User Msg 'BarTime': 4 bytes written, expected 2

Segmentation fault
ex3m777 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 06.12.2015, 12:41   #13
с доступом к форуму безопасности
 
Регистрация: 23.02.2014
Адрес: Томск-7
Сообщений: 311
Сказал спасибо: 102
Поблагодарили 1,013 раз(а) в 176 сообщениях
По умолчанию

Цитата:
Сообщение от ex3m777 Посмотреть сообщение
Упал с такой ошибкой
FATAL ERROR (shutting down): User Msg 'BarTime': 4 bytes written, expected 2
Segmentation fault
фиксед
s1lent вне форума   Ответить с цитированием
Старый 06.12.2015, 13:20   #14
Проверенный
 
Регистрация: 19.01.2014
Адрес: Томск
Сообщений: 79
Сказал спасибо: 9
Поблагодарили 81 раз(а) в 30 сообщениях
По умолчанию

Падает сервер при коннекте, если запущен cstrike модуль. Никакой ошибки нет, просто "Программа HLDS Launcher не работает"
Win7 x64, rehlds 601, mm 1.21p37, amxx 1.8.2
Mistrick вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 07.12.2015, 18:57   #15
Не проверенный
 
Регистрация: 14.12.2014
Адрес: Казань
Сообщений: 14
Сказал спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
По умолчанию

Падает сервер с такой ошибкой
***** Программа сервера выполнила недопустимую операцию и была завершена *****
Feanaro вне форума   Ответить с цитированием
Ответ

Метки
cssdk, regamedll, regamedll_cs, reverse, reverse-engineered


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 12:09. Часовой пояс GMT +3.


Лицензия принадлежит Dedicated-Server.Ru