Редактирование движка X-Ray - Страница 80 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

Редактирование движка 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

Telegram-канал RayTwitty Space

 

 

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

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

 

 

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

 

 

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

 

 

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

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

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


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

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

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

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

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

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

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

 

 

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

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

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

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

andreyholkin.gif

rod_cccp.gif

 

@НаноБот, не думал, что кто-то в сторону авто копает. Полезно.

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

PNG Screenshots (SOC 1.0006)

 

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

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

 

http://rusfolder.com/44205472

  • Нравится 3

Telegram-канал RayTwitty Space

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

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

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

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

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

Войти

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

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

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...