Перейти в начало страницы

Здравствуйте, гость ( Авторизация | Регистрация )

Gameru.net останавливает работу в связи с вторжением армии РФ в Украину. Следите за дальнейшими анонсами.
Support Gameru!

> Помощь по разделу

Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов

> Закрома Родины
fen1x
сообщение 17.09.2014, 16:27
Сообщение #1301


И никаких няш-мяш!
**************************

Репутация:   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
Перейти в начало страницы
 
191 страниц V  « < 64 65 66 67 68 > »   
Начать новую тему
Ответов
Astalker375
сообщение 06.07.2014, 22:36
Сообщение #1302


Игровой Эксперт
***************

Репутация:   268  
Группа: Участник
Сообщений: 2135
Награды: 4
Регистрация: 21.10.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Alex Ros @ 06.07.2014, 22:56) *
Вроде бы понятно движок-исходники, но все таки что именно делаете?

Присоединяюсь. Тут какой-то междусобойчик. Вроде что-то делается, а стороннему человеку вообще не понятно ничего. Интересно было бы увидеть список того, что исправили и что еще хотим получить на данный момент. Может быть свести всё воедино в шапку и тогда было бы понятно всем, а тем кто в теме проще помогать друг-другу.
Перейти в начало страницы
 
hi_flyer
сообщение 06.07.2014, 22:40
Сообщение #1303


Мастер Игры
************

Репутация:   232  
Группа: Друзья GM
Сообщений: 1299
Награды: 4
Регистрация: 05.03.2012




Вставить ник Цитировать выделенное в форуму быстрого ответа


Alex Ros,
https://xp-dev.com/wiki/pages/210311


--------------------
Перейти в начало страницы
 
Kontro-zzz
сообщение 06.07.2014, 22:42
Сообщение #1304


Почти Игроман
*********

Репутация:   96  
Группа: Участник
Сообщений: 594
Награды: 3
Регистрация: 26.10.2012




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата
не понятно ничего

https://xp-dev.com/sc/history/204486/HEAD/?page=0
там же описаны ревизии.


--------------------
Будиш маму-папу слушать
Будиш ты канфеты кушать!
© Операция «Ы»
Перейти в начало страницы
 
Alex Ros
сообщение 06.07.2014, 22:52
Сообщение #1305


Грандмастер
**************

Репутация:   482  
Группа: Участник
Сообщений: 1851
Награды: 6
Регистрация: 22.08.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Все очень понятно и удобно. Однажды когда был молодой и сдавал проектик мне старший товарищ сказал: "Работай так чтобы если завтра ты помрешь, на твое место придет другой человек и всё поймет". Запомнил это на всю жизнь. И вот именно так на вики и сделано, по крайней мере мне так кажется, может кого иного и не устроит.

Было бы здорово это https://xp-dev.com/wiki/pages/210311 в шапку повесить, а то ведь потеряется пост господина hi_flyer.

Заодно следующий вопрос. Правильно я понял, осмотревшись коротко на вики, что в целом нет ничего касающегося ЗПшной версии движка? В том числе здесь https://xp-dev.com/wiki/210311/Список правок из X-RAY Extensions#tabs-1 X-RAY Extensions имеется в виду строго ТЧ? Правильно неправильно? Или же где то припрятался раздел строго по 1.6.0.2?

Сообщение отредактировал Alex Ros - 06.07.2014, 22:59
Перейти в начало страницы
 
HikeR
сообщение 06.07.2014, 23:04
Сообщение #1306


Магистр Игры
****************

Репутация:   270  
Группа: Участник
Сообщений: 2620
Награды: 4
Регистрация: 26.03.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Alex Ros @ 06.07.2014, 23:52) *
Все очень понятно и удобно.

когда изменения, исправления и дополнения валяются в одной куче — это не понятно и не удобно.

хотя может кто объяснит доступно, как быстро и без проблем получить ветку:
- собираемую без ругани
- без вмешательства в звуковую подсистему
- с новыми графическими фишками
- со старым lua/luabind-ом

??
Перейти в начало страницы
 
alpet
сообщение 06.07.2014, 23:06
Сообщение #1307


Геймер
******

Репутация:   19  
Группа: Участник
Сообщений: 130
Награды: 2
Регистрация: 24.05.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(HikeR @ 06.07.2014, 23:08) *
1. используя консоль?? окститесь, есть же lua(jit) с разблокированными файловыми операциями (даже в оригинальных исходниках включается двумя строками), есть элемент интерфейса типа Memo, нужный скрипт загрузил, изменил, записал.
2. опять же, зачем это при наличии исходников? собсно, и без их наличия скрипты и функции прекрасно запускались. с поиском места для их запуска были затруднения, это да, но "стандартное" Esc+F1 для вызова самописного интерфейса хоть со встроенным блокнотом решало.

1. В идеале потом можно будет редактор и на основе полноценного UI. А в случае моей библиотеки, даже удаленный редактор с Web-интерфейсом и отладчиком в одном флаконе. Была-бы только потребность smile.gif
2. Это любопытно, как в таком случае выполнялись скрипты с серьёзными ошибками, приводящими в том числе к эксепшенам? У меня скрипты выполняются в изолированной ВМ (песочнице), что позволяет перехватить разные сбои и вывести кучу отладочной информации. Так что с большинством ошибок я справляюсь без вылета из игры, и соответственно потерь времени на перезагрузку. Впрочем боюсь вам не понять, ведь есть исходники и при наличии десятков часов лишнего времени все кто-то реализует прямо в движке smile.gif Остается только ждать... В то время как мой инструментарий универсален для всей линейки движков Xray, соответственно не нужны исходники для ЧН и ЗП. Более того, его наверняка можно к другим движкам использующим Lua приспособить.

Сообщение отредактировал alpet - 06.07.2014, 23:08
Перейти в начало страницы
 
hi_flyer
сообщение 06.07.2014, 23:07
Сообщение #1308


Мастер Игры
************

Репутация:   232  
Группа: Друзья GM
Сообщений: 1299
Награды: 4
Регистрация: 05.03.2012




Вставить ник Цитировать выделенное в форуму быстрого ответа


Alex Ros,
Слили только ТЧ сорцы, поэтому эта СВН ветка ТЧ онли.


--------------------
Перейти в начало страницы
 
HikeR
сообщение 06.07.2014, 23:18
Сообщение #1309


Магистр Игры
****************

Репутация:   270  
Группа: Участник
Сообщений: 2620
Награды: 4
Регистрация: 26.03.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(alpet @ 07.07.2014, 00:06) *
как в таком случае выполнялись скрипты с серьёзными ошибками, приводящими в том числе к эксепшенам?

как и в самой игре, зеленожучно.

подавляющее большинство игровых скриптом отладить без запуска игры невозможно, можно лишь на этапе сохранения скормить их Lua для поиска банальных синтаксических ошибок (что-то вроде require("наш_пакет_модуль")), или тестовым запуском функции (типа if pcall(function () ... end) then ... else ...). плюс тотальная проверка входных данных, этого вполне достаточно чтобы игра не вылетала.

вспомните, (опять же) подавляющее большинство патчей содержало тучу if value ~= nil ..., ибо разработчики проверками озаботились только потом.

Цитата(alpet @ 07.07.2014, 00:06) *
Впрочем боюсь вам не понять, ведь есть исходники

поэтому нужно перестраиваться ;)
Перейти в начало страницы
 
alpet
сообщение 07.07.2014, 00:31
Сообщение #1310


Геймер
******

Репутация:   19  
Группа: Участник
Сообщений: 130
Награды: 2
Регистрация: 24.05.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(HikeR @ 07.07.2014, 00:18) *
подавляющее большинство игровых скриптом отладить без запуска игры невозможно

Так вот, и у меня все в игре отлаживается. Без перезапуска самой игры - скрипты перезагружаю из консоли, пространство имен поправляется вручную. Единственно пока не получается так взаимодействовать с теми скриптами, где описываются классы lua-bind (и соответственно живут объекты от этих классов).
Суть в том, что если где-то в другом месте происходит серьёзный сбой, у меня не только все стеки выводятся, но и набор отладочных переменных. По адресам из двоичных стеков и регистров процессора, находятся подсказки в виде указаний на известные объекты. В дальнейшем его думаю переделать в эквивалент Watches для Lua.

Сообщение отредактировал alpet - 07.07.2014, 00:31
Перейти в начало страницы
 
HikeR
сообщение 07.07.2014, 00:53
Сообщение #1311


Магистр Игры
****************

Репутация:   270  
Группа: Участник
Сообщений: 2620
Награды: 4
Регистрация: 26.03.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(alpet @ 07.07.2014, 01:31) *
не получается так взаимодействовать с теми скриптами, где описываются классы lua-bind

которые и составляют "подавляющее большинство". то есть ваш продукт предназначен только для сторонних lua-функций? так их и в оригинале можно было использовать по требованию и, переключившись в оконный режим, исправлять/изменять в нормальном внешнем редакторе.

Цитата(alpet @ 07.07.2014, 01:31) *
у меня не только все стеки выводятся, но и набор отладочных переменных. По адресам из двоичных стеков и регистров процессора, находятся подсказки в виде указаний на известные объекты.

круто, здорово. и что? юзеркейс какой-нить сделайте, иначе назначение всего этого совершенно неясно.
Перейти в начало страницы
 
Antnigm
сообщение 07.07.2014, 10:40
Сообщение #1312


Опытный Геймер
*******

Репутация:   41  
Группа: Участник
Сообщений: 198
Награды: 2
Регистрация: 29.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(hi_flyer @ 07.07.2014, 00:07) *
Alex Ros,
Слили только ТЧ сорцы, поэтому эта СВН ветка ТЧ онли.

Прикрутить разделение худа на руки/оружие, инверсную кинематику npc, dx11, намокание, лучики, всякую другую приблуду и получится ЗП.
Перейти в начало страницы
 
alpet
сообщение 07.07.2014, 10:46
Сообщение #1313


Геймер
******

Репутация:   19  
Группа: Участник
Сообщений: 130
Награды: 2
Регистрация: 24.05.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(HikeR @ 07.07.2014, 01:53) *
1. которые и составляют "подавляющее большинство". то есть ваш продукт предназначен только для сторонних lua-функций? так их и в оригинале можно было использовать по требованию и, переключившись в оконный режим, исправлять/изменять в нормальном внешнем редакторе.
2. круто, здорово. и что? юзеркейс какой-нить сделайте, иначе назначение всего этого совершенно неясно.

1. Поэтому заметная часть логики мода NLC6 сейчас реализуется вне классов. Чисто структурное программирование.
2. Было дело, когда находились поврежденные объекты в сейвах, ссылки на которые обнаруживались в логе. Отладочные переменные помогают ещё чаще, ведь в них содержится информация о текущей/последней выполняемой задаче в скриптах (подразумеваются задачи запланированные в апдейт task_smart_upd.script).


[update]
Сегодня сделал обновление репозитория до ревизии 75, выложил новую сборку перехватчика и обновил скрипты для него.
Теперь должна нормализоваться прямая работа с памятью движка. Это актуально при использовании реестра игровых объектов, посредством функций InvokeRegistry, UpdateRegistry (и вообще функций в registry.script) для оптимизированной выборки нужных id.

Сообщение отредактировал alpet - 07.07.2014, 10:48
Перейти в начало страницы
 
HikeR
сообщение 07.07.2014, 11:18
Сообщение #1314


Магистр Игры
****************

Репутация:   270  
Группа: Участник
Сообщений: 2620
Награды: 4
Регистрация: 26.03.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


поясняю позицию.

как-то понадобился двухпанельный список с кнопками переносящими элементы туда–обратно (типа слева убитые в хлам объекты, справа список того, что можно разобрать для починки выделенного объекта), пришлось делать огромный костыль из пары UIListBox-ов, xml-описателя и скриптов, плюс обвязка для вставки/удаления элементов.
когда появились исходники ради интереса соорудил исконно MVC-шный контрол на сях, с прокруткой, бегунком динамического размера и все такое. это оказалось даже проще, чем тот ужас на скриптах.

ваш "перехватчик" родом из времен, когда без костылей было не обойтись. но сейчас вы продолжаете использовать этот костыль вместо более логичных "нативных" методов. собсно вопрос, зачем?
Перейти в начало страницы
 
Shoкer
сообщение 07.07.2014, 11:18
Сообщение #1315


Кандидат Игровых Наук
******************

Репутация:   2153  
Группа: Участник
Сообщений: 3488
Награды: 4
Регистрация: 27.07.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Извините за небольшой оффтоп.

alpet, для ЗП кстати версию обновлять не будешь? (если там не много возни) Почему то в один момент у меня и у моего знакомого (возможно и у других игроков) при выходе из игры с вкл. перехватчиком она закрывается на ~10 секунд дольше. (просто чёрный экран висит) Видимо luacap.dll не выгружается сразу.

И ещё по diff файлам - можешь пож-ста дать пример одного любого (патч травы например) - мне на синтаксис посмотреть, в текущей версии для ЗП ты вроде бы ввёл их поддержку, правда не знаю работает ли она или нет.

Сообщение отредактировал Shoкer - 07.07.2014, 11:25


--------------------
Мне просто нравятся синие буквы под сообщением.
Перейти в начало страницы
 
alpet
сообщение 07.07.2014, 12:46
Сообщение #1316


Геймер
******

Репутация:   19  
Группа: Участник
Сообщений: 130
Награды: 2
Регистрация: 24.05.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(HikeR @ 07.07.2014, 12:18) *
ваш "перехватчик" родом из времен, когда без костылей было не обойтись. но сейчас вы продолжаете использовать этот костыль вместо более логичных "нативных" методов. собсно вопрос, зачем?

Мод NLC6 будет универсальным для оригинального 1.0006 и модифицированного 1.0007+. Потом в библиотеке очень много наработано функционала с целью оптимизации и упрощения работы с движком. Переписывать все это на С++ у меня нет никакой мотивации. Тем более что я состоялся больше как программист на Delphi, и могу отдельные фишки куда быстрее добавлять в dll. Во многих отношениях моя библиотека не отличается от остальных движковых, так что совсем уж костылем она не является.

Shocker
Выложить конечно могу, но собственно все текущие наработки касаются лишь совместимости с 1.0007. Что-же до патчей, то сейчас более удобным решением является модификация исполняемого кода в памяти, смотри примеры в xray_patch.script .
Перейти в начало страницы
 
RayTwitty
сообщение 07.07.2014, 13:16
Сообщение #1317


Игровой Бог
**********************

Репутация:   648  
Группа: Участник
Сообщений: 5354
Награды: 9
Регистрация: 24.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


alpet, юзай дефайны. Не всем нужны лишние либы и перехватчики. Кому надо, пусть отдельно включает.


--------------------
Перейти в начало страницы
 
alpet
сообщение 07.07.2014, 13:20
Сообщение #1318


Геймер
******

Репутация:   19  
Группа: Участник
Сообщений: 130
Награды: 2
Регистрация: 24.05.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Shadows @ 07.07.2014, 14:16) *
alpet, юзай дефайны. Не всем нужны лишние либы и перехватчики. Кому надо, пусть отдельно включает.

Сделаю. Но оно по умолчанию использоваться не будет в любом случае, если не загрузить dll с помощью ланчера.
Перейти в начало страницы
 
Shoкer
сообщение 07.07.2014, 13:38
Сообщение #1319


Кандидат Игровых Наук
******************

Репутация:   2153  
Группа: Участник
Сообщений: 3488
Награды: 4
Регистрация: 27.07.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(alpet @ 07.07.2014, 12:46) *
Выложить конечно могу, но собственно все текущие наработки касаются лишь совместимости с 1.0007. Что-же до патчей, то сейчас более удобным решением является модификация исполняемого кода в памяти, смотри примеры в xray_patch.script .


Я так и делаю, чтобы изменить существующий код, но таким образом трудновато делать крупные врезки.
Код надо писать байтами (что не очень удобно) + нету функций для выделения новой памяти.
Для крупных врезок в код нужно пустое место в коде движка искать, а функции перехватчика для выделения буферов памяти (GetTempBuffer кажется) в ЗП версии перехватчика, как оказалось, нету.
Хорошо если бы была возможность произвольного выделения нужного кол-ва памяти (malloc), с возвратом её адреса.

Эт в принципе всё не проблемы а просто пожелания.

diff-ы, я так полагаю, пишутся чисто на asm-е, или там тоже какой то особый синтаксис?
Если да, то с ними крупные врезки просто будет попроще делать.
Хотя если будет функция выделения памяти, тогда можно и напрямую в скриптах.

Цитата(alpet @ 07.07.2014, 12:46) *
Выложить конечно могу


Ну только если будет свободное время, то не откажусь. Мне на самом деле интересно почему вдруг игра стала закрываться с перехватчиком долго, думаю может новая версия это исправила бы.

Сообщение отредактировал Shoкer - 07.07.2014, 13:42


--------------------
Мне просто нравятся синие буквы под сообщением.
Перейти в начало страницы
 
alpet
сообщение 07.07.2014, 16:31
Сообщение #1320


Геймер
******

Репутация:   19  
Группа: Участник
Сообщений: 130
Награды: 2
Регистрация: 24.05.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Shoкer @ 07.07.2014, 14:38) *
diff-ы, я так полагаю, пишутся чисто на asm-е, или там тоже какой то особый синтаксис?


Нет, это обычный выход от утилиты fc с параметром /b. Все существующие патчи для этого подхода я получил сравнивая разные версии Render*.dll.
Думается мне правильнее в таком случае написать отдельную dll, в которой будут просто куски двоичного кода под замену (как в XrayExtensions), чем выделять куски памяти. Загружать вспомогательные библиотеки можно настроив параметр
UserDLLs в luaicp.conf.

Обновил архив с сегодняшней сборкой luaicp, и сделал сборку под SCoP, правда пока не тестировал. Сам я не часто выхожу из игры традиционным способом, обычно использую сочетание клавиш Ctrl+Alt+End (dll должна уничтожать процесс моментально). С другой стороны можно использовать вызов ExitProcess('message') в скриптах для обработки выхода из меню.

Перейти в начало страницы
 
X_Starter_X
сообщение 07.07.2014, 16:35
Сообщение #1321


Игрок
***

Репутация:   3  
Группа: Участник
Сообщений: 31
Награды: 3
Регистрация: 18.06.2014




Вставить ник Цитировать выделенное в форуму быстрого ответа


Уважаемые, здравствуйте smile.gif ! Прошу сильно не ругать за данный пост, прибыл недавно на форум, пишу первое сообщение.
Данная тема давно интересует меня. Имею желание научиться разбираться в движке, и самостоятельно редактировать его.
Помогите чем можете:
-Есть ли уроки? Можете на них направить?
-Есть ли пост или мануальчик по сборке исходника в рабочее приложение? Можете направить?
-Существует ли стол заказов? Можете направить?

Надеюсь я не ошибся с темой и пишу по адресу.
Заранее благодарен за помощь!

Сообщение отредактировал X_Starter_X - 07.07.2014, 16:35


--------------------
1. Надёжность
2. Простота
3. Точность
Перейти в начало страницы
 

191 страниц V  « < 64 65 66 67 68 > » 
Тема закрытаНачать новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 20.05.2024, 01:32