Закрома Родины |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
Закрома Родины |
17.09.2014, 16:27
Сообщение
#2901
|
|
И никаких няш-мяш! Репутация: 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.11.2014, 15:41
Сообщение
#2902
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 |
Да то же самое, только учитывай направление ствола оружия. Да, только это уже не просто Нарисовать вместо перекрестия точку с диаметром, зависящем от расстояния а куда более сложные вычисления. З.Ы. open Сообщение отредактировал Shadows - 10.11.2014, 15:46 -------------------- |
 
|
|
10.11.2014, 15:51
Сообщение
#2903
|
|
Почти Мастер Репутация: 311 Группа: Участник Сообщений: 1092 Награды: 5 Регистрация: 01.03.2011 |
|
 
|
|
10.11.2014, 17:20
Сообщение
#2904
|
|
Почти Игроман Репутация: 127 Группа: Участник Сообщений: 643 Награды: 3 Регистрация: 29.09.2012 |
K.D., ну так может поможешь нам, смертным, создать нормальный ЛЦУ?
|
 
|
|
10.11.2014, 18:52
Сообщение
#2905
|
|
Кандидат Игровых Наук Репутация: 2153 Группа: Участник Сообщений: 3488 Награды: 4 Регистрация: 27.07.2009 |
K.D., сложно сделать так, чтобы точка лазера (которая партиклом сделана на видео выше) с одной стороны всегда находилась максимально близко к перекрестию\центру экрана, а с другой корректно реагировала на анимации (двигалась за оружием при ходьбе, поворачивалась при перезарядке и так далее)
Проблема не в проекции точки (на видео выше так и сделано), а в том чтобы эта точка ещё и попадала в место, куда прилетит пуля. (центр экрана) Самое простое наверно решение, это при включённом ЛЦУ выпускать пули не в центр экрана, а в точку, но хз... там свои трудности. Сообщение отредактировал Shoкer - 10.11.2014, 18:54 -------------------- Мне просто нравятся синие буквы под сообщением.
|
 
|
|
10.11.2014, 21:23
Сообщение
#2906
|
|
Почти Мастер Репутация: 311 Группа: Участник Сообщений: 1092 Награды: 5 Регистрация: 01.03.2011 |
сложно сделать так Так я ж говорю - отслеживайте положение ствола. Нешто костей в оружии нет? Вот и точка будет двигаться вслед за анимациями. ну так может поможешь нам, смертным, создать нормальный ЛЦУ? Дак уже помог, не? Или _за_ вас надо сделать? Это извиняйте - сейчас ОГСЕ на мне висит, не до того. |
 
|
|
11.11.2014, 00:47
Сообщение
#2907
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 |
K.D., понять, как получить направление кости в мировых координатах, сделать рейтрейс и спроецировать точку на экран, используя матрицы могут не все, вернее не только лишь все, мало кто может это делать krovosnork это имел ввиду.
А если серьезно, то точку по двум осям достаточно двигать, а отдаленность от камеры имитировать через уменьшение размера статика-прицела. Т.е. работать в 3д-пространстве не обязательно. Сообщение отредактировал Shadows - 11.11.2014, 00:55 -------------------- |
 
|
|
11.11.2014, 01:18
Сообщение
#2908
|
|
Кандидат Игровых Наук Репутация: 2153 Группа: Участник Сообщений: 3488 Награды: 4 Регистрация: 27.07.2009 |
Scarabay, а они там так и работают. (если используется шейдер model\weapon) Нужно лишь на текстуре модели в альфа-канале залить белым нужные участки модели. Чем белее участок, тем сильнее там будет отрисовываться небо. Правда отражают не текущее небо, а лишь зарание готовый скайкуб, но это решаемо. Всё же я напутал. На динамике действительно не отражается небо в линзе при шейдере model\weapons Шейдер с отражением неба есть, но он под прозрачные поверхности и освещается соотв. плохо. -------------------- Мне просто нравятся синие буквы под сообщением.
|
 
|
|
12.11.2014, 20:31
Сообщение
#2909
|
|
Новичок Репутация: 10 Группа: Участник Сообщений: 9 Регистрация: 12.11.2014 |
Здравствуйте. Нуждаюсь в консультации.
Компиляция исходников ТЧ 1.0007rc1. Система Win XP SP3. VS 2005. Исходники и библиотеки ТЧ из шапки темы по ссылке "Сборка движка X-Ray 1.0007 RC1". Конфигурация Release. Проблем с компиляцией не возникает. Игра работает. Излагаю суть запроса. При генерации кода xrGame.dll в логе есть однотипные предупреждения, ссылающиеся на 5 файлов xrserver_objects_alife_items.cpp, xrserver_objects_abstract.cpp, xrserver_objects_alife.cpp, xrserver_objects_alife_monsters.cpp,xrserver_objects_alife_items.cpp такого содержания: s:\xr_3da\xrgame\xrserver_objects_alife_monsters.cpp(693) : warning C4702: unreachable code s:\xr_3da\xrgame\xrserver_objects_alife_monsters.cpp(694) : warning C4702: unreachable code s:\xr_3da\xrgame\xrserver_objects_alife_monsters.cpp(695) : warning C4702: unreachable code s:\xr_3da\xrgame\xrserver_objects_alife_monsters.cpp(604) : warning C4702: unreachable cod Предупреждение ссылается на однотипный код, например из xrServer_Objects_ALife_Monsters.cpp: void CSE_ALifeCustomZone::FillProps (LPCSTR pref, PropItemVec& items) { inherited::FillProps (pref,items); PHelper().CreateU32 (items,PrepareKey(pref,*s_name,"on/off mode\\Shift time (sec)"), &m_start_time_shift,0,100000); PHelper().CreateU32 (items,PrepareKey(pref,*s_name,"on/off mode\\Enabled time (sec)"), &m_enabled_time, 0,100000); PHelper().CreateU32 (items,PrepareKey(pref,*s_name,"on/off mode\\Disabled time (sec)"), &m_disabled_time, 0,100000); } Предупреждение генерируется, насколько я понял (возможно не прав), из-за PHelper(). который определяется (не уверен в терминологии) в двух файлах, это xrServer_Object_Base.cpp и xrEProps.h:: Код из файлов. xrServer_Object_Base.cpp: #ifndef XRSE_FACTORY_EXPORTS # include "xrEProps.h" IPropHelper &PHelper() { NODEFAULT; # ifdef DEBUG return(*(IPropHelper*)0); # endif } #endif xrEProps.h: #ifdef __BORLANDC__ extern "C" XR_EPROPS_API IPropHelper& PHelper (); #else extern IPropHelper &PHelper(); #endif Вопрос: Что и где необходимо исправить в коде, либо подключить что-либо в настройках компилятора, либо произвести какие-либо другие манипуляции, чтобы исправить ошибку (ошибку ли?) и компилятор не выдавал эти предупреждения? Буду благодарен за консультацию по существу. В теме информации не нашел. Спасибо. Сообщение отредактировал lvg_brest - 12.11.2014, 21:10 |
 
|
|
12.11.2014, 21:50
Сообщение
#2910
|
|
Игровой Эксперт Репутация: 407 Группа: Участник Сообщений: 2394 Награды: 5 Регистрация: 19.01.2009 |
можешь игнорировать.
это предупреждение о недосягаемом коде.Читай хабр,статья про doom3 PVS Studio,там все подробно расписано |
 
|
|
13.11.2014, 00:51
Сообщение
#2911
|
|
Кандидат Игровых Наук Репутация: 2153 Группа: Участник Сообщений: 3488 Награды: 4 Регистрация: 27.07.2009 |
Тут знатоки DirectX есть?
Возвращаясь к теме рендеринга, сейчас для работы своей задумки я через каждый кадр блокирую вызов IDirect3DDevice9->Present(...) дабы избежать обновления картинка на экране из бэкбуфера (в терминалогии не силён), грубо говоря чтобы на мониторе в этот момент застывала старая картинка с прошлого кадра. А какие могут быть альтернативы такому методу? Просто касательно сталкера, с ним есть несколько приемлимых но не очень приятных багов. Конкретно: Как сделать вызов Present(), чтобы при этом на мониторе картинка не обновилась. Делать это надо через каждый кадр. -------------------- Мне просто нравятся синие буквы под сообщением.
|
 
|
|
13.11.2014, 10:40
Сообщение
#2912
|
|
Новичок Репутация: 10 Группа: Участник Сообщений: 9 Регистрация: 12.11.2014 |
Tron. Прочитал, благодарю за информацию. Надеялся, что можно "научить" компилятор есть этот код без warning-ов, подключив какие-нибудь внешние библиотеки и пр. Ок, раз игра не валится с руганью на xrserver, будем считать, что код выполняется в игре корректно. Скорее всего в 1.0006 точно такой же код, вылетов по xrserver там так же не было. Вероятно у всех такие warning-и, только никто про них до меня не спрашивал. Значит #pragma warning(disable:C4702). Если у кого-то есть другие мысли по этому поводу, поделитесь своим личным опытом.
Сообщение отредактировал lvg_brest - 13.11.2014, 10:42 |
 
|
|
13.11.2014, 17:35
Сообщение
#2913
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 |
Ни у кого не было такого, что в один прекрасный момент студия начинает жестко тупить? Например, вместо того, чтобы перейти к определению нужной функции, студия начинает тупо искать по всему проекту слово с названием функции или отсутствие вообще какой-то реакции на ctrl+F7... А ещё хинты перестали всплывать, при наведении на вызовы функций и прочие подобные мелкие неудобства. Хотя в целом, проект компилируется и дебажится нормально.
З.Ы. VS2010 (rus). Сообщение отредактировал Shadows - 13.11.2014, 17:37 -------------------- |
 
|
|
13.11.2014, 17:44
Сообщение
#2914
|
|
Доктор Игровых Наук Репутация: 544 Группа: Участник Сообщений: 3657 Награды: 9 Регистрация: 12.07.2007 |
Shoкer, костылем например, в самом начале перед очисткой буфера поставить некий флаг типа boolean isSkip, если true то игнорить весь рендер кроме вывода буфера на экран и не чистить буфер, если false то все как обычно вначале чистим буфер и дальше в него рендрим. А где нибудь в конце перевертыша для isSkip. В directX сам не ковырялся, сужу по своим познаниям в openGL где вот такими костылями чаще всего у всех и реализуют такое
|
 
|
|
13.11.2014, 17:46
Сообщение
#2915
|
|
Продвинутый геймер Репутация: 106 Группа: Участник Сообщений: 239 Награды: 3 Регистрация: 13.12.2011 |
Shadows, у меня и на VS2013 такое бывает. Мне помогает перезапуск)
-------------------- |
 
|
|
13.11.2014, 17:48
Сообщение
#2916
|
|
Высший Игровой Бог Репутация: 1747 Группа: Супермодератор Сообщений: 12594 Награды: 15 Регистрация: 05.11.2009 |
Shadows, у меня такое часто бывало на 2012 студии, только я работал с другими проектами, не с исходниками сталкера. Меня в основном бесило когда переставали работать автодополнение и приходилось вручную, по памяти, писать имена функций и переменных. Помогал только перезапуск студии. В 2013-2014 версии уже не помню таких глюков.
-------------------- |
 
|
|
13.11.2014, 17:55
Сообщение
#2917
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 |
Помогал только перезапуск студии. Просто перезапуск? У меня такая шняга уже просто несколько дней, естественно комп выключался. Причем фишка в том, что я никуда там в настройки не лазил, никакие пути не менял... Просто взяло, и перестало работать -------------------- |
 
|
|
13.11.2014, 18:10
Сообщение
#2918
|
|
Высший Игровой Бог Репутация: 1747 Группа: Супермодератор Сообщений: 12594 Награды: 15 Регистрация: 05.11.2009 |
Помогал только перезапуск студии. Просто перезапуск? У меня такая шняга уже просто несколько дней, естественно комп выключался. Причем фишка в том, что я никуда там в настройки не лазил, никакие пути не менял... Просто взяло, и перестало работать Да, мне перезапуск помогал. В принципе можно попробовать проект перегрузить или почистить, но я всегда делал только перезапуск т.к. ничего другое не помогало. Просто взяло, и перестало работать Старая программерская шутка: Компилируем - возникают ошибки. Думаем над ошибками, понимаем что не можем их найти, и ничего не меняя компилируем ещё раз Оно компилируется и работает -------------------- |
 
|
|
13.11.2014, 18:30
Сообщение
#2919
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 |
STALKER2011x, подсовывание папки со старой ревизией помогло Теперь осталось выяснить, какие файлы подсунуть в последнюю ревизию.
-------------------- |
 
|
|
13.11.2014, 18:32
Сообщение
#2920
|
|
Ветеран Репутация: 5 Группа: Участник Сообщений: 82 Награды: 2 Регистрация: 11.07.2014 |
Доброго времени суток
Очень прошу в ЛС поделиться набором софта и прочего для компиляции сорцов Теней) Переустанавливал систему, диски заново размечал - ничего не осталось( -------------------- |
 
|
|
13.11.2014, 22:39
Сообщение
#2921
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Награды: 9 Регистрация: 24.09.2010 |
Подсунул XR_3DA_2007.sdf и XR_3DA_2007.suo из старых ревизий - всё заработало.
-------------------- |
 
|
|
Текстовая версия | Сейчас: 19.05.2024, 18:06 |