Закрома Родины |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
Закрома Родины |
17.09.2014, 16:27
Сообщение
#1401
|
|
И никаких няш-мяш! Репутация: 5029 Группа: Участник Сообщений: 28157 Регистрация: 04.02.2003 |
Сборка движка X-Ray 1.0007 RC1 Сборка движка ЗП от Shoker 0) Устанавливаем Visual Studio 2008 SP1 (Proffesional или Team, я собирал в первой), сервис пак из архива engine.vc2008.fixed.rar подходит только к английской версии студии, для русской нужно будет скачать отдельно. ______________________________________________ 1) Создаём на диске папку, в ней ещё одну папку. 2) В эту папку помещаем только папку engine.vc2008 из архива "engine.vc2008.fixed - фикшенный мною проект vs2008", папку SDK от туда не трогаем. 3) Папку SDK берём из архива "stasvn\sources\engine.vc2005-2008(~1.6.02 бенчмарк) - март 2010", из под-папки sources. Помещаем её в одну папку к engine.vc2008 4) Вот теперь поверх неё докладываем папку SDK из архива engine.vc2008.fixed.rar, соглашаемся на замену всех файлов 5) Качаем с сайта майкрософт два DirectX SDK - 2009 March и 2010 June. (Вес каждой около 500 мб), можно использовать только версию 2009, но тогда не сможете собрать xrRender_R4. (LINK : fatal error LNK1181: cannot open input file 'd3d11.lib'), а если будете использовать только 2010 - игра с R4 не запустится. После установки двух DX SDK убедитесь что они прописали свои пути в студию, файлы 2010-го СДК должны быть после 2009-го, как показано на рисунке: Аналогично для разделов Executable files и Include files. Если возникнут вопросы, ищите информацию в гугле по словам "подключение directx sdk visual studio 2008" При неправильных версиях СДК (или его не-подключении) в логе будет ругань на отсутствие файлов типа d3dXX.lib\.h) Перемещать папки из уже установленного DirectX SDK никуда не нужно. Достаточно прописать к ним пути глобально для студии (или для каждого проекта вручную) Комментарий от loxotron: достаточно скопировать и переименовать d3d11_beta.lib в d3d11.lib в папке с директовским сдк, а еще лучше скачать и поставить DX SDK August 2009 и не париться с неподходящими версиями. 6) На всякий случаи можно установить ещё SDK\OpenALwEAX.exe, но не уверен что он критически необходим. 7) Запускаем проект через ..\CoP\Project\engine.vc2008\engine.sln. Когда он загрузится, вверху студии режим сборки с Debug_Dedicated (или любой другой) меняем на Release. Далее слева\справа будет список папок с файлами движка, нам нужна, в первую очередь, папка 3rd_party - жмём на неё правой кнопкой мыши и выбираем Build\Построить. Если всё будет правильно, то в конце лог внизу напишет об 11 успешных проектах (или число будет меньше, если некоторые проекты уже были собраны до этого, лог об этом тоже сообщит "пропущены\up to date") Главное чтобы Ошибок\Fatal везде было 0 У меня собрались полностью все проекты без ошибок. (warning за полноценные ошибки не считаются) 8) По аналогии, сверху вниз, можно собрать другие Dll-ки, папки editor\dedicated\utils\plugins собирать не обязательно - к движку они не относятся. Дольше всего будет собираться xrGame.dll. Остальные достаточно быстро. Собирать все Dll-ки к слову не обязательно. Можно лишь нужные. Когда они будут готовы - создать чистую папку bin в папке с игрой. Закинуть туда все созданные dll файлы (можно вместе с .pdb). При необходимости, можно докинуть отсутствующие файлы из оригинальной bin ЗП (2-ой патч), если игра будет их требовать. (Навроде wrap_oal.dll) Игру я запускал с оригинального Stalker-COP.exe Если всё верно, то в логе\консоли игры в первых строчках будет указан билд игры и дата построения. Сообщение отредактировал RayTwitty - 22.01.2016, 17:03 |
 
|
|
|
|
10.07.2014, 19:15
Сообщение
#1402
|
|
Игровой Эксперт Репутация: 407 Группа: Участник Сообщений: 2394 Награды: 5 Регистрация: 19.01.2009 |
|
 
|
|
10.07.2014, 20:04
Сообщение
#1403
|
|
Игрок Репутация: 3 Группа: Участник Сообщений: 31 Награды: 3 Регистрация: 18.06.2014 |
Tron, посмотрел, понял
--- Товарищи, благодарю за 81 ревизию . Тут был лог. Вот вылезло при компиляции xrCore Код 1>------ Build started: Project: xrCore, Configuration: Mixed Win32 ------ 1>Build started 10.07.2014 23:03:11. 1>InitializeBuildStatus: 1> Touching "x:\intermediate\Mixed\xrCore\xrCore.unsuccessfulbuild". 1>ClCompile: 1> All outputs are up-to-date. 1> log.cpp 1>log.cpp(7): fatal error C1083: Cannot open include file: '../../build_config_defines.h': No such file or directory 1> 1>Build FAILED. 1> 1>Time Elapsed 00:00:00.34 ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== Такого build_config_defines.h в архиве не нашёл вообще. Сообщение отредактировал X_Starter_X - 10.07.2014, 20:58 -------------------- 1. Надёжность
2. Простота 3. Точность |
 
|
|
10.07.2014, 20:17
Сообщение
#1404
|
|
Геймер Репутация: 19 Группа: Участник Сообщений: 130 Награды: 2 Регистрация: 24.05.2008 |
|
 
|
|
10.07.2014, 21:41
Сообщение
#1405
|
|
Игрок Репутация: 3 Группа: Участник Сообщений: 31 Награды: 3 Регистрация: 18.06.2014 |
alpet, благодарю , быстро нашли решение проблемы. Спасибо за 82 ревизию!
Всё скомпилировал кроме xrGame. Вот такой некрасивый вылез Код 1>ui\UIInventoryWnd3.cpp(34): error C2065: 'SLOT_QUICK_ACCESS_0' : undeclared identifier
1>ui\UIInventoryWnd3.cpp(34): error C2051: case expression not constant 1>ui\UIInventoryWnd3.cpp(36): error C2065: 'SLOT_QUICK_ACCESS_1' : undeclared identifier 1>ui\UIInventoryWnd3.cpp(36): error C2051: case expression not constant 1>ui\UIInventoryWnd3.cpp(38): error C2065: 'SLOT_QUICK_ACCESS_2' : undeclared identifier 1>ui\UIInventoryWnd3.cpp(38): error C2051: case expression not constant 1>ui\UIInventoryWnd3.cpp(40): error C2065: 'SLOT_QUICK_ACCESS_3' : undeclared identifier 1>ui\UIInventoryWnd3.cpp(40): error C2051: case expression not constant 1>ui\UIInventoryWnd3.cpp(42): warning C4060: switch statement contains no 'case' or 'default' labels 1> UIOutfitSlot.cpp 1> UITradeWnd.cpp 1> UIPdaAux.cpp 1> UIPdaContactsWnd.cpp 1> UIPdaListItem.cpp 1> UIPdaWnd.cpp 1> map_hint.cpp 1> map_spot.cpp 1> UIMap.cpp 1> UIMapWnd.cpp 1> UIMapWndActions.cpp 1> UITalkDialogWnd.cpp 1> UITalkWnd.cpp 1> UIDiaryWnd2.cpp 1> UIEncyclopediaArticleWnd.cpp 1> Compiling... 1> UIEncyclopediaWnd.cpp 1> UINewsItemWnd.cpp 1> UINewsWnd.cpp 1> UIArtefactPanel.cpp 1> UICarPanel.cpp 1> UIMainIngameWnd.cpp 1>ui\UIMainIngameWnd.cpp(1003): error C2509: 'script_register' : member function not declared in 'CUIMainIngameWnd' 1> s:\xray\xr_3da\xrgame\ui\UIMainIngameWnd.h(30) : see declaration of 'CUIMainIngameWnd' -------------------- 1. Надёжность
2. Простота 3. Точность |
 
|
|
10.07.2014, 21:51
Сообщение
#1406
|
|
Геймер Репутация: 19 Группа: Участник Сообщений: 130 Награды: 2 Регистрация: 24.05.2008 |
alpet, благодарю , быстро нашли решение проблемы. Спасибо за 82 ревизию! Всё скомпилировал кроме xrGame. Вот такой некрасивый вылез Видимо надо раскомментировать дефайн INV_NEW_SLOTS_SYSTEM в build_config_defines.h, хотя странное это дело - дефайны должны отключать фичи, а не компилируемость проекта вовсе ) |
 
|
|
10.07.2014, 22:06
Сообщение
#1407
|
|
Игрок Репутация: 3 Группа: Участник Сообщений: 31 Награды: 3 Регистрация: 18.06.2014 |
alpet, похоже на то. По крайней мере помогло. А вот эта ошибка всё же осталась.
Код 1> UIMainIngameWnd.cpp 1>ui\UIMainIngameWnd.cpp(1003): error C2509: 'script_register' : member function not declared in 'CUIMainIngameWnd' 1> s:\xray\xr_3da\xrgame\ui\UIMainIngameWnd.h(30) : see declaration of 'CUIMainIngameWnd' 1> UIMessagesWindow.cpp -------------------- 1. Надёжность
2. Простота 3. Точность |
 
|
|
10.07.2014, 22:34
Сообщение
#1408
|
|
Геймер Репутация: 19 Группа: Участник Сообщений: 130 Награды: 2 Регистрация: 24.05.2008 |
alpet, похоже на то. По крайней мере помогло. А вот эта ошибка всё же осталась. Начинаю посыпать голову пеплом, опять не закоммитил измененный файл. Обнови до ревизии 83. [edited] Добавил ещё пару функций для работы с текстурами. Теперь можно извлекать ссылки на текстуры из визуалов объектов. Вот пример скрипта: Код local obj = level.object_by_id(0) if obj then for i = 0, 15 do local tex = texture_from_visual(obj, i) if tex then wprintf(" texture %02d = %s ", i, texture_get_name(tex) or "nope") end end end Выдает такой дамп для моего актора: Код texture 00 = act\act_green_stalker1 texture 01 = act\act_green_stalker_bump texture 02 = act\act_green_stalker_bump# texture 03 = act\act_stalker_face texture 04 = act\act_stalker_face_bump texture 05 = act\act_stalker_face_bump# Пока ещё не понятно, как сделать объект визуала уникальной копией, а не общим ресурсом из пула моделей. Так что остается только глобальная замена текстур в игре. Сообщение отредактировал alpet - 10.07.2014, 23:03 |
 
|
|
10.07.2014, 23:03
Сообщение
#1409
|
|
Игрок Репутация: 3 Группа: Участник Сообщений: 31 Награды: 3 Регистрация: 18.06.2014 |
alpet, оставь голову в порядке , ещё пригодиться. За такой труд благодарю! Уже обновился, но не скомпилировал.
Hет повести печальнее на свете, чем повесть о заклинившем ... Код 1>Link: 1> damage_manager.obj : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance 1> Creating library x:\libraries\xrGame.lib and object x:\libraries\xrGame.exp 1>xrServer_Objects_ALife.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) void __cdecl LogXrayOffset(char const *,void *,void *)" (__imp_?LogXrayOffset@@YAXPBDPAX1@Z) 1>x:\binaries\xrGame.dll : fatal error LNK1120: 1 unresolved externals 1> 1>Build FAILED. 1> 1>Time Elapsed 00:06:47.43 ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== Может я такой дурак? Оставим до завтра? Уже спать пора . --- Забыл написать. Поправка: в файле "X:\trunk\xray\xr_3da\Environment.cpp" 26 строку заменить на такую Код #include "../../build_config_defines.h"
Сообщение отредактировал X_Starter_X - 10.07.2014, 23:17 -------------------- 1. Надёжность
2. Простота 3. Точность |
 
|
|
10.07.2014, 23:42
Сообщение
#1410
|
|
Игровой Эксперт Репутация: 407 Группа: Участник Сообщений: 2394 Награды: 5 Регистрация: 19.01.2009 |
Цитата Может я такой дурак? Оставим до завтра? Уже спать пора . С макросами намудрил-не включил макрос экспорта. ищи по коду __declspec(dllimport) или __declspec(dllexport) там будет конструкция вида #ifdef BLAHBLAH #define BLAH_API __declspec(dllexport) #else #define BLAH_API __declspec(dllimport) #endif В препроцессоре добавь BLAHBLAH и вообще ошибка тривиальная |
 
|
|
11.07.2014, 16:52
Сообщение
#1411
|
|
Игрок Репутация: 3 Группа: Участник Сообщений: 31 Награды: 3 Регистрация: 18.06.2014 |
Долго я искал и __declspec(dllimport) и __declspec(dllexport), пока не сравнил старый файл и новый X:\trunk\xray\xr_3da\xrGame\xrServer_Objects_ALife.cpp в котором происходит ошибка.
Разница была только в этом коде Код static bool _saved = false; if (!_saved) { _saved = true; LogXrayOffset("CSE_AlifeObject.story_id", this, &this->m_story_id); LogXrayOffset("CSE_AlifeObject.spawn_sid", this, &this->m_spawn_story_id); } Файл был исправлен на 75 ревизии. Цитата alpet: + Добавлено логирование смещений для работы библиотеки luaicp напрямую с памятью движка (трассировки указателей). + исправлена проблема в рендере, приводящая к сбою Закоментировал строки, после чего всё нормально откомпилировалось. При запуске выдал ошибку на рендер 2: Решил проверить, не было ли ревизий в xrRender_R2. Оказывается был в X:\trunk\xray\xr_3da\xrRender_R2\r2_rendertarget.cpp. Попробовал загрузится на статическом освещении. Вроде даже начал грузится, но тут же выпрыгнул: А после кнопки продолжить вот такой: -------------------- 1. Надёжность
2. Простота 3. Точность |
 
|
|
11.07.2014, 17:01
Сообщение
#1412
|
|
Игровой Эксперт Репутация: 407 Группа: Участник Сообщений: 2394 Награды: 5 Регистрация: 19.01.2009 |
Ну правильно,ты проблему то не исправил.
Ищи определение CODE LogXrayOffset
|
 
|
|
11.07.2014, 17:12
Сообщение
#1413
|
|
Магистр Игры Репутация: 270 Группа: Участник Сообщений: 2620 Награды: 4 Регистрация: 26.03.2007 |
1> damage_manager.obj : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance а зачем у xrGame отключили LTCG? Ну правильно,ты проблему то не исправил. Ищи определение хех, это не его проблема. LogXrayOffset в заголовке прописан без ifdef-а, если LUAICP_COMPAT не определен, то и определения найти негде. |
 
|
|
11.07.2014, 17:18
Сообщение
#1414
|
|
Геймер Репутация: 19 Группа: Участник Сообщений: 130 Награды: 2 Регистрация: 24.05.2008 |
хех, это не его проблема. LogXrayOffset в заголовке прописан без ifdef-а, если LUAICP_COMPAT не определен, то и определения найти негде. Точнее без определения LUAICP_COMPAT функция LogXrayOffset создается пустой, что на несколько байт увеличивает размер бинарников (имхо не смертельно). У меня просто исчезла смелость проставлять в глобальных хедерах зависимости от дефайнов, т.к. это реально требует пересборки всего солюшена. Моя ошибка в том, что более свежий log.c не залил опять-же на репозиторий. Код void LogXrayOffset(LPCSTR key, LPVOID base, LPVOID pval) { #ifdef LUAICP_COMPAT .... #endif Сообщение отредактировал alpet - 11.07.2014, 17:21 |
 
|
|
11.07.2014, 17:30
Сообщение
#1415
|
|
Магистр Игры Репутация: 270 Группа: Участник Сообщений: 2620 Награды: 4 Регистрация: 26.03.2007 |
пустой, не пустой... в xrServer_Objects_ALife.cpp ifdef-ов совсем нет, без дефайна LUAICP_COMPAT определение функции импорта есть, а реализации нет. вот LNK2001 и вылез.
более свежий log.c не залил опять-же на репозиторий. я извиняюсь, зачем ифдефить тело функции, а не всю её целиком? не проще в таком случае сделать один раз Код #ifndef LUAICP_COMPAT
#define LogXrayOffset void #else void LogXrayOffset(LPCSTR key, LPVOID base, LPVOID pval) { //... |
 
|
|
11.07.2014, 19:47
Сообщение
#1416
|
|
Ветеран Репутация: 5 Группа: Участник Сообщений: 82 Награды: 2 Регистрация: 11.07.2014 |
Доброго всем времени суток
Есть у меня пара вопросов по исходникам, которые лежат на репозитории. Их кто-то вообще хоть немного тестирует? Они же должны компилироваться. Уже даже при компиляции второй по счету dll у меня начинает в лог валиться множество fatal error с отсутствующими файлами, при этом в окошке, в котором обозначены нужные для компиляции файлы нет ни одной галочки, следовательно файлы должны собираться без проблем, но этого почему-то не происходит, а ведь по идее все дополнительные директории для инклудов сохраняются в проекте, ну да ладно, прописать инклуды полбеды. Когда вылезают такие приблуды: Цитата 1>Link: 1> damage_manager.obj : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance 1> Creating library x:\libraries\xrGame.lib and object x:\libraries\xrGame.exp 1>xrServer_Objects_ALife.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) void __cdecl LogXrayOffset(char const *,void *,void *)" (__imp_?LogXrayOffset@@YAXPBDPAX1@Z) 1>x:\binaries\xrGame.dll : fatal error LNK1120: 1 unresolved externals 1> 1>Build FAILED. 1> 1>Time Elapsed 00:06:47.43 ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== хочется лезть на стенку. Я непременно уважаю труд всех тех людей, которые делают правки движка, улучшают его для модмейкеров и простых игроков, но если вдруг я увидел нужную мне для скрипта возможность и просто не могу скомпилить исходники, которые в идеале должны нормально компилится, как-то обидно становится, честное слово. Просьба к тем, кто разбирается в структуре движка как-то привести его в порядок, иначе практического толку от такого проекта я лично не вижу... -------------------- |
 
|
|
11.07.2014, 19:59
Сообщение
#1417
|
|
Геймер Репутация: 19 Группа: Участник Сообщений: 130 Награды: 2 Регистрация: 24.05.2008 |
Vampir35
Отправил исправленный log.c в репозиторий xp-dev. Походу мне нужно придумывать механизм обновления файлов там понадежнее. Слишком много я изменяю, но не все необходимо загружать и чаще приходится вообще мержить отдельные строки. Впредь обещаю тестировать компилируемость со всеми отключенными дефайнами. |
 
|
|
11.07.2014, 20:09
Сообщение
#1418
|
|
Магистр Игры Репутация: 270 Группа: Участник Сообщений: 2620 Награды: 4 Регистрация: 26.03.2007 |
|
 
|
|
11.07.2014, 20:26
Сообщение
#1419
|
|
Геймер Репутация: 19 Группа: Участник Сообщений: 130 Награды: 2 Регистрация: 24.05.2008 |
не надо придумывать, Предлагаете лить все подряд в свою ветку, а там кому надо пускай извлекает и мержит с транком? ) [edited] Тем временем провел изнурительную работу, по поиску рецепта подмены текстур и визуалов для отдельных объектов. Наконец получилось хоть что-то: Сообщение отредактировал alpet - 11.07.2014, 20:33 |
 
|
|
11.07.2014, 20:36
Сообщение
#1420
|
|
Ветеран Репутация: 5 Группа: Участник Сообщений: 82 Награды: 2 Регистрация: 11.07.2014 |
Прекрасная новость, но, надеюсь, подмена текстуры во всех визуалах тоже останется, просто тоже вещь очень нужная
-------------------- |
 
|
|
11.07.2014, 20:41
Сообщение
#1421
|
|
Геймер Репутация: 19 Группа: Участник Сообщений: 130 Награды: 2 Регистрация: 24.05.2008 |
Прекрасная новость, но, надеюсь, подмена текстуры во всех визуалах тоже останется, просто тоже вещь очень нужная Никуда оно не делось Осталось добить индивидуальную замену визуала для hud-модели оружия, чтобы перекрашивать видимое в руках гг оружие (а не только брошенное). Как это может быть использовано? Побродили немного по болоту, и у вас пушка вся в грязевых пятнах. Теперь вот думаю как правильно коммит устроить: глобально везде переменную IRender_Visual::shader переименовал, чтобы не путаться в исследованиях. Довольно приличное число файлов задето... ради удобства только. |
 
|
|
Текстовая версия | Сейчас: 04.05.2024, 03:40 |