User_X.A.R26 261 Опубликовано 8 Сентября 2015 Поделиться Опубликовано 8 Сентября 2015 Может не та программа или неправильно пользуюсь? Либо пробовать/изучать IDA Pro, либо пересаживаться на 1.0007 RC1 и не мучаться с этими бинарниками Ссылка на комментарий
SkyLoader 53 Опубликовано 9 Сентября 2015 Поделиться Опубликовано 9 Сентября 2015 Если имеется ввиду например визуал ГГ, то это - CScriptGameObject::SetVisualName. Но, я эту функцию недавно ковырял и выявил, что визуал по сути нормально меняется только для ГГ. Для других неписей или предметов, особенно у которых есть анимация - функция работает не совсем корректно. Видимо, надо перезагрузить анимации, коллизию и параметры повреждений, иначе будет такое Помимо перезапуска анимации, перекалькулируй скелет и будет счастье) 1 Ссылка на комментарий
Romz 142 Опубликовано 9 Сентября 2015 Поделиться Опубликовано 9 Сентября 2015 О Великие Гуру двигоковыряния!!! Направьте малоопытного новиса по пути мудрости! Короче, задался я тут целью немного движок поковырять для ЗП, конкретно вот этот проект 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 ловлю вылет и -----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 студии собирается Шаман - СисАдмин Всяко-разно: для ЧН Ссылка на комментарий
SkyLoader 53 Опубликовано 9 Сентября 2015 Поделиться Опубликовано 9 Сентября 2015 Romz, первый рендер собран? Без ошибок? Ссылка на комментарий
abramcumner 1 157 Опубликовано 9 Сентября 2015 Поделиться Опубликовано 9 Сентября 2015 Недостающие файлы от оригинала само собой в bin скопировал...Это какие? Их там всего два должно быть: wrap_oal и eax - остальные должен сам собирать. По второй ошибке - xrrender*.dll не собрал. Ссылка на комментарий
Romz 142 Опубликовано 9 Сентября 2015 Поделиться Опубликовано 9 Сентября 2015 (изменено) первый рендер собран Рендеры не собирал. Но они у меня есть от сборки этого же проекта от 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 Вот с него я запустился, и ничего не меняя, запустил сборку. Просто для пробы, посмотреть, как соберётся. Единственно, я рендеры не сам собирал, а качал готовые в виде сборки движка с интернетов. Может быть в этом проблема? Изменено 9 Сентября 2015 пользователем Romz Шаман - СисАдмин Всяко-разно: для ЧН Ссылка на комментарий
HESH 64 Опубликовано 9 Сентября 2015 Поделиться Опубликовано 9 Сентября 2015 (изменено) @Romz, движок спецефичный. Ты собираешь не "чистый" X-Ray, а сборку от какого-то дяди (Call of Chernobyl). Я ее не собирал, но судя по вылету "Не найдена точка входа" та изменения носились не только в двиг, но и в структуру папок (файл system.ltx может теперь иметь какое-то другое расположение в отличие от дефолтного). И вопрос: ты запускал с Stalker-COP.exe из папки с игрой или с самого exe-шника, тобою собранного? Если с Stalker-COP.exe, то попробуй запустить с xrEngine и наоборот. Надеюсь, понятно расписал. Удачи. ps: ты качал собранные рендеры именно от этого проекта? Если запускаешь этот движок со стандартными собранными рендерами, то проблема может быть в этом. Изменено 9 Сентября 2015 пользователем HESH Ссылка на комментарий
Карлан 1 049 Опубликовано 9 Сентября 2015 Поделиться Опубликовано 9 Сентября 2015 Помимо перезапуска анимации, перекалькулируй скелет и будет счастье) Все куда прозаичнее. Но от "перекалькулирования" скелета я подпрыгнул на стуле , не могу не попросить раскрыть этот аспект подробнее. Ссылка на комментарий
-StalkMen- 159 Опубликовано 9 Сентября 2015 Поделиться Опубликовано 9 Сентября 2015 ловлю вылет Сей конфликт из-за сборки разными студиями (вероятно 2008 и 2013). Выход - пересобрать всё в новой студии. Ссылка на комментарий
RayTwitty 502 Опубликовано 9 Сентября 2015 Поделиться Опубликовано 9 Сентября 2015 (изменено) Помимо перезапуска анимации, перекалькулируй скелет и будет счастье)Делал уже, но разницы особой не заметил))Надо в первую очередь анимки перезагрузить, дамаг и все остальное. Кароче все то, что на колбеке 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(); } } Изменено 9 Сентября 2015 пользователем RayTwitty 1 Ссылка на комментарий
Карлан 1 049 Опубликовано 9 Сентября 2015 Поделиться Опубликовано 9 Сентября 2015 Надо аналогичные виртуальные функции добавить для всех остальных объектов. Я напрямую добавил например. Добавлено RayTwitty, 9 Сентября 2015 Что значит напрямую? Ссылка на комментарий
Romz 142 Опубликовано 9 Сентября 2015 Поделиться Опубликовано 9 Сентября 2015 ты качал собранные рендеры именно от этого проекта они у меня есть от сборки этого же проекта от 25.05.2015 Сей конфликт из-за сборки разными студиями (вероятно 2008 и 2013). Он и тогда, и сейчас собирается в 2013 студии, т.к. это форк вот этого проекта https://github.com/OpenXRay/xray-16 А он под 2013 студию. Короче, попробую всё собрать заново Шаман - СисАдмин Всяко-разно: для ЧН Ссылка на комментарий
Shredder 49 Опубликовано 9 Сентября 2015 Поделиться Опубликовано 9 Сентября 2015 ... Надо аналогичные виртуальные функции добавить для всех остальных объектов.Не совсем понял. Для каких ещё объектов нужно добавлять соответствующие функции? Код, что ты привёл, рабочий? Я не вижу в нём перезагрузки анимации и дамага. Добавлено RayTwitty, 9 Сентября 2015 Рабочий для актора только. Для других объектов не будет перезагружаться анимация, коллизия, дамаг и т.п. В зависимости от объекта, набор действий при смене визуала будет разный. Ссылка на комментарий
Карлан 1 049 Опубликовано 9 Сентября 2015 Поделиться Опубликовано 9 Сентября 2015 @Shredder, нет, он не рабочий, перезагрузку надо делать через CKinematicsAnimated, либо идти другим путем, он более простой, но визуализация хуже. Ссылка на комментарий
User_X.A.R26 261 Опубликовано 9 Сентября 2015 Поделиться Опубликовано 9 Сентября 2015 Но они у меня есть от сборки этого же проекта от 25.05.2015, и с тех пор изменения в них не вносились. Или их при каждой компиляции собирать нужно? Желательно всё собирать самому, т.к. в процессе компиляции происходит неявное "прикручивание" DLL (тут могу отослать к MSDN), т.е. от библиотек создаются *.lib и *.exp файлы и они могут быть задействованы при сборке других проектов. Да и собирать рендеры (не xrGame же это) не так-то и долго. Грех и самому не собрать Ссылка на комментарий
SkyLoader 53 Опубликовано 10 Сентября 2015 Поделиться Опубликовано 10 Сентября 2015 Shadows, кэлькулейт бонес ты сделал, но у гг было до этого кэлькулейта было еще переназначение активного стейта. Сейчас посмотреть не могу код, но смею преположить, что это переназначение стейта в дальнейшем вызывает сет энимейшн Добавлено RayTwitty, 11 Сентября 2015 Возможно переназначение стейта действительно поможет с анимкой. Но коллизию и дамаги все равно придется перезагружать отдельно. Ссылка на комментарий
Это популярное сообщение. НаноБот 742 Опубликовано 11 Сентября 2015 Это популярное сообщение. Поделиться Опубликовано 11 Сентября 2015 (изменено) Фикс вылета в ЧН и ЗП "смерть актора(ГГ) в машине". // Описание движковой правки // Функция void CCharacterPhysicsSupport::in_Hit( SHit &H, bool is_killing ) в файле CharacterPhysicsSupport.cpp // найти это: if(!m_pPhysicsShell&&is_killing) KillHit( H ); // и заменить на это: if(!m_pPhysicsShell && is_killing) { bool is_actor_holder = false; if( m_eType == etActor ) { CActor* A = smart_cast<CActor*>( &m_EntityAlife ); if( A->Holder() ) is_actor_holder = true; }; if( !is_actor_holder ) KillHit( H ); }; // Описание движковой правки // Функция void CCharacterPhysicsSupport::in_Die( ) в файле CharacterPhysicsSupport.cpp // найти это: ActivateShell( NULL ); // и заменить на это: bool is_actor_holder = false; if( m_eType == etActor ) { CActor* A = smart_cast<CActor*>( &m_EntityAlife ); if( A->Holder() ) is_actor_holder = true; }; if( !is_actor_holder ) ActivateShell( NULL ); Конечно это костыль, но в ТЧ актор то же не вываливается мёртвый из машины. Кто шарит, может совсем ликвидировать баг ПЫСов, ну что бы актор вываливался из авто. Ошибка происходит в функции CCharacterPhysicsSupport::EndActivateFreeShell при попытке вычисления адреса функции m_pPhysicsShell->SetGlTransformDynamic(mXFORM); Может кто тут особо одарённый лучше сделает. Только нет смысла это делать. Изменено 11 Сентября 2015 пользователем НаноБот 1 4 ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Ссылка на комментарий
Expropriator 2 118 Опубликовано 11 Сентября 2015 Поделиться Опубликовано 11 Сентября 2015 @НаноБот, пошла работа. Хоть кому то это важно. Сейчас придёт "Тень" и меня покарает за флуд. Добавлено RayTwitty, 11 Сентября 2015 Не "Тень" а "RT"! Ссылка на комментарий
Forser 47 Опубликовано 11 Сентября 2015 Поделиться Опубликовано 11 Сентября 2015 (изменено) @НаноБот, не думал, что кто-то в сторону авто копает. Полезно. Изменено 11 Сентября 2015 пользователем Forser Ссылка на комментарий
RayTwitty 502 Опубликовано 11 Сентября 2015 Поделиться Опубликовано 11 Сентября 2015 PNG Screenshots (SOC 1.0006) Описание: игра теперь делает качественные скриншоты в формате png. Установка: поместить библиотеки рендера в папку с программой и пропатчить. http://rusfolder.com/44205472 3 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти