Перейти к контенту
Rolan

Редактирование движка X-Ray

Рекомендуемые сообщения

 

 

Может не та программа или неправильно пользуюсь?

Либо пробовать/изучать IDA Pro, либо пересаживаться на 1.0007 RC1 и не мучаться с этими бинарниками

Ссылка на комментарий

Если имеется ввиду например визуал ГГ, то это - CScriptGameObject::SetVisualName. Но, я эту функцию недавно ковырял и выявил, что визуал по сути нормально меняется только для ГГ. Для других неписей или предметов, особенно у которых есть анимация - функция работает не совсем корректно. Видимо, надо перезагрузить анимации, коллизию и параметры повреждений, иначе будет такое

Помимо перезапуска анимации, перекалькулируй скелет и будет счастье)

  • Полезно 1
Ссылка на комментарий

О Великие Гуру двигоковыряния!!!

Направьте малоопытного новиса по пути мудрости!

Короче, задался я тут целью немного движок поковырять для ЗП, конкретно вот этот проект https://github.com/revolucas/xray-16

Студию, библиотеки, win/dx sdk скачал, установил, настроил и скопировал.

Попробовал собрать. Сборка прошла без ошибок с одним варнингом

 

Предупреждение	1	warning C4701: использована потенциально неинициализированная локальная переменная "plj"	e:\dev\libtheora-1.1.1\lib\quant.c	xrEngine

 

Но при запуске игры уже с новосозданными dll и exe ловлю вылет

post-39154-0-29890000-1441808071_thumb.jpg

post-39154-0-59973300-1441808089_thumb.jpg

и

 

-----loading c:\gam\s-cop_orig\gamedata\configs\system.ltx
-----loading c:\gam\s-cop_orig\gamedata\configs\system.ltx
Initializing Engine...
Starting INPUT device...
Loading DLL: xrRender_R2.dll
Loading DLL: xrRender_R3.dll
Loading DLL: xrRender_R4.dll
command line 
Executing config-script "user.ltx"...
! Cannot open script file [user.ltx]
Loading DLL: xrRender_R1.dll
 
FATAL ERROR
 
[error]Expression    : assertion failed
[error]Function      : CEngineAPI::Initialize
[error]File          : EngineAPI.cpp
[error]Line          : 141
[error]Description   : hRender
 

stack trace:

0023:00277113 xrCore.dll, xrDebug::fail(), e:\dev\xray-16-master\src\xrcore\xrdebugnew.cpp, 348
0023:00438181 xrEngine.exe, CObjectAnimator::Play()

 

 

Пните в нужном направлении, а?

Недостающие файлы от оригинала само собой в bin скопировал...


А, да, этот проект в 2013 студии собирается

Шаман - СисАдмин

Всяко-разно: для ЧН

Ссылка на комментарий

Недостающие файлы от оригинала само собой в bin скопировал...

Это какие? Их там всего два должно быть: wrap_oal и eax - остальные должен сам собирать.

 

По второй ошибке - xrrender*.dll не собрал.


Подарки

  • Ссылка на комментарий
    первый рендер собран

    Рендеры не собирал. Но они у меня есть от сборки этого же проекта от 25.05.2015, и с тех пор изменения в них не вносились. Или их при каждой компиляции собирать нужно?

     

     

    Это какие? Их там всего два должно быть: wrap_oal и eax - остальные должен сам собирать.

    Там ещё bugtrap.dll и dbghelp.dll не собираются, а копирются из сборки библиотек.

    При компиляции у меня вот это собралось

     

    luabind.beta7-devel.rc4.dll
    luabind.beta7-devel.rc4.pdb
    OpenAL32.dll
    xrAPI.dll
    xrAPI.pdb
    xrCDB.dll
    xrCDB.pdb
    xrCore.dll
    xrCore.pdb
    xrEngine.exe
    xrEngine.pdb
    xrNetServer.dll
    xrNetServer.pdb
    xrSound.dll
    xrSound.pdb
    

     

     

    В проекте есть файлик \src\engine.sln

    Вот с него я запустился, и ничего не меняя, запустил сборку.

    Просто для пробы, посмотреть, как соберётся.

    Единственно, я рендеры не сам собирал, а качал готовые в виде сборки движка с интернетов. Может быть в этом проблема?

    Изменено пользователем Romz

    Шаман - СисАдмин

    Всяко-разно: для ЧН

    Ссылка на комментарий

    @Romz, движок спецефичный. Ты собираешь не "чистый" X-Ray, а сборку от какого-то дяди (Call of Chernobyl). Я ее не собирал, но судя по вылету "Не найдена точка входа" та изменения носились не только в двиг, но и в структуру папок (файл system.ltx может теперь иметь какое-то другое расположение в отличие от дефолтного). И вопрос: ты запускал с Stalker-COP.exe из папки с игрой или с самого exe-шника, тобою собранного? Если с Stalker-COP.exe, то попробуй запустить с xrEngine и наоборот. Надеюсь, понятно расписал.

    Удачи.

    ps: ты качал собранные рендеры именно от этого проекта? Если запускаешь этот движок со стандартными собранными рендерами, то проблема может быть в этом.

    Изменено пользователем HESH
    Ссылка на комментарий

     

     

    Помимо перезапуска анимации, перекалькулируй скелет и будет счастье)

    Все куда прозаичнее. Но от "перекалькулирования" скелета я подпрыгнул на стуле ;), не могу не попросить раскрыть этот аспект подробнее.

    Ссылка на комментарий

     

     

    ловлю вылет

    Сей конфликт из-за сборки разными студиями (вероятно 2008 и 2013).

     

    Выход - пересобрать всё в новой студии.

    Ссылка на комментарий

    Помимо перезапуска анимации, перекалькулируй скелет и будет счастье)

    Делал уже, но разницы особой не заметил))

    Надо в первую очередь анимки перезагрузить, дамаг и все остальное. Кароче все то, что на колбеке onChangeVisual у актора. Надо аналогичные виртуальные функции добавить для всех остальных объектов.

     

    Сама функция для экспорта:

    void CScriptGameObject::SetVisualName(LPCSTR visual)
    {
    	shared_str visual_name = visual;
    
    	// для актора вызываем свою функцию
    	CActor* pActor = smart_cast<CActor*>(&object());
    	if (pActor) {
    		return pActor->ChangeVisual(visual_name);
    	}
    
    	if (!visual_name.size() || object().cNameVisual() == visual_name)
    		return;
    
    	object().cNameVisual_set(visual_name);
    
    	CKinematics* pKinematics = smart_cast<CKinematics*>(object().Visual());
    	if (pKinematics) {
    		pKinematics->CalculateBones_Invalidate();
    		pKinematics->CalculateBones();
    	}
    }
    Изменено пользователем RayTwitty
    • Полезно 1
    Ссылка на комментарий

     

     

    Надо аналогичные виртуальные функции добавить для всех остальных объектов.

    Я напрямую добавил например.

    Добавлено RayTwitty,

    Что значит напрямую?

    Ссылка на комментарий

     

     

    ты качал собранные рендеры именно от этого проекта

     

     

    они у меня есть от сборки этого же проекта от 25.05.2015

     

     

    Сей конфликт из-за сборки разными студиями (вероятно 2008 и 2013).

    Он и тогда, и сейчас собирается в 2013 студии, т.к. это форк вот этого проекта https://github.com/OpenXRay/xray-16

    А он под 2013 студию.


    Короче, попробую всё собрать заново

    Шаман - СисАдмин

    Всяко-разно: для ЧН

    Ссылка на комментарий

    ... Надо аналогичные виртуальные функции добавить для всех остальных объектов.

    Не совсем понял. Для каких ещё объектов нужно добавлять соответствующие функции?

    Код, что ты привёл, рабочий? Я не вижу в нём перезагрузки анимации и дамага.

    Добавлено RayTwitty,

    Рабочий для актора только. Для других объектов не будет перезагружаться анимация, коллизия, дамаг и т.п. В зависимости от объекта, набор действий при смене визуала будет разный.

    Ссылка на комментарий

    @Shredder, нет, он не рабочий, перезагрузку надо делать через CKinematicsAnimated, либо идти другим путем, он более простой, но визуализация хуже.

    Ссылка на комментарий

     

     

    Но они у меня есть от сборки этого же проекта от 25.05.2015, и с тех пор изменения в них не вносились. Или их при каждой компиляции собирать нужно?

    Желательно всё собирать самому, т.к. в процессе компиляции происходит неявное "прикручивание" DLL (тут могу отослать к MSDN), т.е. от библиотек создаются *.lib и *.exp файлы и они могут быть задействованы при сборке других проектов. Да и собирать рендеры (не xrGame же это) не так-то и долго. Грех и самому не собрать

    Ссылка на комментарий

    Shadows, кэлькулейт бонес ты сделал, но у гг было до этого кэлькулейта было еще переназначение активного стейта. Сейчас посмотреть не могу код, но смею преположить, что это переназначение стейта в дальнейшем вызывает сет энимейшн

    Добавлено RayTwitty,

    Возможно переназначение стейта действительно поможет с анимкой. Но коллизию и дамаги все равно придется перезагружать отдельно.

    Ссылка на комментарий

    @НаноБот, пошла работа. Хоть кому то это важно. Сейчас придёт "Тень" и меня покарает за флуд. :D

    Добавлено RayTwitty,

    Не "Тень" а "RT"! :D

    andreyholkin.gif

    rod_cccp.gif

     

    Ссылка на комментарий

    PNG Screenshots (SOC 1.0006)

     

    Описание: игра теперь делает качественные скриншоты в формате png.

    Установка: поместить библиотеки рендера в папку с программой и пропатчить.

     

    http://rusfolder.com/44205472

    • Нравится 3
    Ссылка на комментарий

    Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

    Комментарии могут оставлять только зарегистрированные пользователи

    Создать аккаунт

    Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

    Зарегистрировать новый аккаунт

    Войти

    Есть аккаунт? Войти.

    Войти
    • Недавно просматривали   1 пользователь

    AMK-Team.ru

    ×
    ×
    • Создать...