Закрома Родины |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
Закрома Родины |
17.09.2014, 16:27
Сообщение
#1841
|
|
И никаких няш-мяш! Репутация: 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 |
 
|
|
|
|
15.08.2014, 15:19
Сообщение
#1842
|
|
Магистр Игры Репутация: 270 Группа: Участник Сообщений: 2620 Награды: 4 Регистрация: 26.03.2007 |
Уж лучше добавить 1 функцию в _G, чем пару десятков в game_object. каждый вызов глобальной ф-ии очень дорого обходится. Lua вынуждена производить поиск ф-ии снизу вверх в каждом локальном окружении, и чем больше вложенность, тем затратнее этот процесс. для этого и делается локальное кеширование, примерно так: Код -- вместо четырехкратного вызова глобального объекта local pos = db.actor:position() local dir = db.actor:direction() local vid = db.actor:level_vertex_id() local gvid = db.actor:game_vertex_id() -- он вызывается однократно local actor = db.actor local pos = actor:position() local dir = actor:direction() local vid = actor:level_vertex_id() local gvid = actor:game_vertex_id() (предполагается, что переменные pos/dir/etc используются более одно раза) теперь правильное применение вашей инициативы: Код local actor = get_actor_obj() local pos = actor:position() local dir = actor:direction() local vid = actor:level_vertex_id() local gvid = actor:game_vertex_id() и накой весь этот огород? по поводу остального вчера были умные мысли, но ночью форум упал и не дал возможность ими поделиться, а сейчас все с головы вылетело ;) |
 
|
|
15.08.2014, 16:33
Сообщение
#1843
|
|
Геймер Репутация: 19 Группа: Участник Сообщений: 130 Награды: 2 Регистрация: 24.05.2008 |
1. каждый вызов глобальной ф-ии очень дорого обходится. Lua вынуждена производить поиск ф-ии снизу вверх в каждом локальном окружении, и чем больше вложенность, тем затратнее этот процесс. для этого и делается локальное кеширование 2. теперь правильное применение вашей инициативы 1. Согласен со всем сказанным, только вот не уверен что обращение к get_actor_obj() дороже в сравнении с обращением к db.actor. Во втором случае приходится ещё и таблицу db проверять. Более того, я нигде не видел подобных оптимизаций: Код local client_obj = level.object_by_id for i = 1,65535 do local obj = client_obj(i) ... end Везде и всегда идет 65535 обращений к глобальной таблице level. 2. Все-бы хорошо, но get_actor_obj возвращает объект класса CActor, а не game_object. Подразумеваются несколько разные возможности и начинки классов. Дублировать стандартные функции я в CActor/CGameObject не решился. Сообщение отредактировал alpet - 15.08.2014, 16:48 |
 
|
|
15.08.2014, 18:12
Сообщение
#1844
|
|
Магистр Игры Репутация: 270 Группа: Участник Сообщений: 2620 Награды: 4 Регистрация: 26.03.2007 |
Во втором случае приходится ещё и таблицу db проверять. не приходится, поиск начинается с db, а actor вызывается уже после нахождения. разница ровно на одну инструкцию. > Везде и всегда идет 65535 обращений к глобальной таблице level. в оригинальных скриптах не нашел ничего подобного. а "мододелы" никогда не задумывались об оптимизациях, не говоря уже про вникание в механику Lua. стандартная Lua-практика по оптимизации hash lookup: Код local byte, char = string.byte, string.char local function foo(x) return char(byte(x)+1) end вот luajit выше второй версии прямо предупреждает в мануале, что он способен сам справится с подобными конструкциями и не надо ему мешать. любую глобальную таблицу любой вложенности можно смело вызывать напрямую (типа x = string.char(x):lower():byte()). ручное кеширование требуется только для ffi-вызовов внешних ф-ий напрямую из C–кода (но оно и понятно). если кто-нибудь разберется с исключениями и подключит таки luajit 2.0, то подобный вопрос уйдет сам собой. > get_actor_obj возвращает объект класса CActor, а не game_object ок, пример неудачен. однако принцип использования точно такой же, что-то глобальное один раз кешируется и для обращения к элементам используется уже локальная ссылка на это что-то. поэтому в скриптах никакой разницы не обнаружится, кроме роста глобального окружения. > Дублировать стандартные функции я в CActor/CGameObject не решился. а надо не дублировать, надо заменять все под одну гребенку ;) Сообщение отредактировал HikeR - 15.08.2014, 18:13 |
 
|
|
15.08.2014, 18:36
Сообщение
#1845
|
|
Геймер Репутация: 19 Группа: Участник Сообщений: 130 Награды: 2 Регистрация: 24.05.2008 |
1. не приходится, поиск начинается с db, а actor вызывается уже после нахождения. разница ровно на одну инструкцию. 2. а надо не дублировать, надо заменять все под одну гребенку 1. Что-то сомневаюсь я в такой простоте Скорее всего в таблицах Lua производится бинарный поиск, каждый раз с середины таблицы (или бинарного дерева, в случае boost::map). 2. Это как? В настоящее время я делаю экспорт свойств для самых основных объектов: артефакты, броня, оружие и т.п. И классов получается много больше будет доступно в скриптах, в сравнении с оригиналом. Сообщение отредактировал alpet - 15.08.2014, 18:50 |
 
|
|
16.08.2014, 00:50
Сообщение
#1846
|
|
Геймер Репутация: 19 Группа: Участник Сообщений: 130 Награды: 2 Регистрация: 24.05.2008 |
Ещё починил дамп файла lua_help. Однако теперь жирно получается с скриптовым API у меня, для базовых объектов основные функции и свойства готовы
Для просмотра вложение надо переименовать и распаковать как архив.
Прикрепленные файлы
|
 
|
|
16.08.2014, 23:58
Сообщение
#1847
|
|
Новичок Репутация: 1 Группа: Участник Сообщений: 13 Награды: 1 Регистрация: 18.02.2013 |
Sorry for posting in English, but I'm having one last hurdle in compiling the CS source.
Here is the error log from Visual Studio: It appears to be a problem with problem_solver.h. Feel free to reply in Russian as I can use Google Translator. *Edit* Found solution through Google but haven't tried it yet. Сообщение отредактировал jketiynu - 17.08.2014, 00:23 |
 
|
|
17.08.2014, 01:36
Сообщение
#1848
|
|
Новичок Репутация: 1 Группа: Участник Сообщений: 13 Награды: 1 Регистрация: 18.02.2013 |
Sorry again for the English.
I got everything to compile, but now it crashes with this error: I have no idea what I did wrong. I could upload the source if someone is willing to take a look at it.Loading DLL: xrRender_R2.dll CODE Loading DLL: xrGame.dll
FATAL ERROR [error]Expression : hGame [error]Function : CEngineAPI::Initialize [error]File : EngineAPI.cpp [error]Line : 101 [error]Description : Game DLL raised exception during loading or there is no game DLL at all stack trace: 0023:74268E37 xrCore.dll, xrDebug::fail(), c:\users\matthew\desktop\cs_source_again\stalker-clearsky-ad3574300e42\development\src\xrcore\xrdebugnew.cpp, 282 0023:00AD405B xrEngine.exe, CEffect_Rain::RenewItem() Сообщение отредактировал jketiynu - 17.08.2014, 01:45 |
 
|
|
17.08.2014, 08:12
Сообщение
#1849
|
|
Продвинутый геймер Репутация: 15 Группа: Участник Сообщений: 322 Награды: 3 Регистрация: 01.05.2014 |
jketiynu, точно всё на одной конфигурации собрано? Надеюсь вы понимаете по-русски, а то с английским не важно.
|
 
|
|
17.08.2014, 08:24
Сообщение
#1850
|
|
Новичок Репутация: 1 Группа: Участник Сообщений: 13 Награды: 1 Регистрация: 18.02.2013 |
jketiynu, точно всё на одной конфигурации собрано? Надеюсь вы понимаете по-русски, а то с английским не важно. Yes, it's the same configuration. I'm now wondering if it has to do with an error in xrNetServer. I tried to compile it, and it generated a .lib file for xrGame to use, but at the same time it would not compile the xrNetServer.dll because of the following errors: CODE 1>NET_Client.obj : error LNK2001: unresolved external symbol _IID_IDirectPlay8Client 1>NET_Client.obj : error LNK2001: unresolved external symbol _CLSID_DirectPlay8Client 1>NET_Client.obj : error LNK2001: unresolved external symbol _IID_IDirectPlay8Address 1>NET_Client.obj : error LNK2001: unresolved external symbol _CLSID_DirectPlay8Address 1>NET_Client.obj : error LNK2001: unresolved external symbol _CLSID_DP8SP_TCPIP 1>NET_Server.obj : error LNK2001: unresolved external symbol _IID_IDirectPlay8Server 1>NET_Server.obj : error LNK2001: unresolved external symbol _CLSID_DirectPlay8Server 1>..\..\..\binaries\xrNetServer.dll : fatal error LNK1120: 7 unresolved externals Since it generated the .lib though, I assumed it was okay to use the .lib to build xrGame.dll. Maybe those errors are what is causing the problem though? ---- *Edit* Solved the problem. I was using an older commit of the repo found here: It included DirectX SDK files, but they weren't the March 2008 version. I replaced them with the ones from March 2008, NetServer.dll compiled fine, then I added it to my bin folder and the game starts normally. The only problem I have now is that DX10 doesn't work. It gives me the error "Pixel shader 1.1 or higher required" when trying DX10. Сообщение отредактировал jketiynu - 17.08.2014, 08:41 |
 
|
|
17.08.2014, 11:11
Сообщение
#1851
|
|
Игровой Эксперт Репутация: 407 Группа: Участник Сообщений: 2394 Награды: 5 Регистрация: 19.01.2009 |
jketiynu,xrNetServer.dll is required for successful launch.
Цитата Solved the problem. I was using an older commit of the repo found here: This version is sucessfully works with dxsdk 2010 jule.just by default jule 2010 is not contains dplay8.lib. It's was moved from older version dxsdk.And is needed special defineIt included DirectX SDK files, but they weren't the March 2008 version. I replaced them with the ones from March 2008, NetServer.dll compiled fine, then I added it to my bin folder and the game starts normally. this repository is contains only 1.5.0.7. I not tested on 1.5.1.0. DX10 works,on "develop",it's main render in this repo Сообщение отредактировал Tron - 17.08.2014, 11:17 |
 
|
|
17.08.2014, 12:06
Сообщение
#1852
|
|
Новичок Репутация: 1 Группа: Участник Сообщений: 13 Награды: 1 Регистрация: 18.02.2013 |
jketiynu,xrNetServer.dll is required for successful launch. QUOTE Solved the problem. I was using an older commit of the repo found here: This version is sucessfully works with dxsdk 2010 jule.just by default jule 2010 is not contains dplay8.lib. It's was moved from older version dxsdk.And is needed special defineIt included DirectX SDK files, but they weren't the March 2008 version. I replaced them with the ones from March 2008, NetServer.dll compiled fine, then I added it to my bin folder and the game starts normally. this repository is contains only 1.5.0.7. I not tested on 1.5.1.0. DX10 works,on "develop",it's main render in this repo I didn't realize it was 1.5.0.7. I'm running with 1.5.1.0 scripts though and it's working. Any plans on adding a repo of 1.5.10 as well? I can't even get anything to load in Visual Studio 2010 with the original leaked code, it's all unavailable except for R3 and some 3rd party dll's for some reason. The only reason I'm not using "Develop" is because someone I'm working with is on XP and needs to be able to use DX9. Also, thanks to you and MegaNub. |
 
|
|
17.08.2014, 12:28
Сообщение
#1853
|
|
Игровой Эксперт Репутация: 407 Группа: Участник Сообщений: 2394 Награды: 5 Регистрация: 19.01.2009 |
Цитата Any plans on adding a repo of 1.5.10 as well? Maybe.Цитата I can't even get anything to load in Visual Studio 2010 with the original leaked code, it's all unavailable except for R3 and some 3rd party dll's for some reason. currently i cant nothing say about this(not tested building on vs2010.Older project files was deleted(*.vcproj),so convertion from vs2005->vs2010 is not possible) Сообщение отредактировал Tron - 17.08.2014, 12:56 |
 
|
|
18.08.2014, 23:32
Сообщение
#1854
|
|
Почти Игроман Репутация: 84 Группа: Участник Сообщений: 624 Награды: 5 Регистрация: 02.03.2009 |
Скажите, дамы и господа!
Кто-нибудь собирал уже проекты от 10.01.2007 и 28.02.2007, они, насколько понимаю, собирались под VS 2003. Хотелось бы собрать в нативном виде, без каких-либо правок, но при линковке постоянно выскакивает одна и та же ошибка: CODE Linking... Creating library x:\/xrCore.lib and object x:\/xrCore.exp Generating code Finished generating code Build log was saved at "file://x:\Xray\xrCore\Release\BuildLog.htm" xrCore - 0 error(s), 0 warning(s) ------ Build started: Project: xrCDB, Configuration: Release Win32 ------ Linking... LINK : fatal error LNK1104: cannot open file '\\xrCore.lib' Build log was saved at "file://x:\Xray\xrCDB\Release\BuildLog.htm" xrCDB - 1 error(s), 0 warning(s) Куда я только эту несчастную xrCore.lib не засовывал, какие только пути не прописывал, не видит её гадёныш, и всё тут... Подскажите, как можно сие исправить? Сообщение отредактировал Roden Croft - 18.08.2014, 23:34 -------------------- PC: CPU Intel Xeon E2690v2 x2, 128 GB RAM, Video Palit RTX2080
|
 
|
|
18.08.2014, 23:59
Сообщение
#1855
|
|
Магистр Игры Репутация: 270 Группа: Участник Сообщений: 2620 Награды: 4 Регистрация: 26.03.2007 |
в нативном виде, без каких-либо правок для проекта xrCDB параметры линкера такие:
Цитата /OUT:"x:\binaries\xrCDB.dll" /INCREMENTAL:NO /NOLOGO /DLL /MANIFEST /MANIFESTFILE:"x:\intermediate\Release\xrCDB\xrCDB.dll.intermediate.manifest" /DEBUG /PDB:"x:\binaries/xrCDB.pdb" /OPT:REF /OPT:ICF /LTCG /IMPLIB:"x:\libraries\xrCDB.lib" /ERRORREPORT:PROMPT kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib "x:\libraries\xrcore.lib" ищите у себя в коде откуда берется два слеша: Цитата LINK : fatal error LNK1104: cannot open file '\\xrCore.lib'
|
 
|
|
19.08.2014, 00:07
Сообщение
#1856
|
|
. Репутация: 750 Группа: Участник Сообщений: 7072 Награды: 4 Регистрация: 30.07.2010 |
Roden Croft, я собирал. Такие ошибки тоже были.
Смотри Linker->Advanced->Import Libary, в свойствах проекта, либу которого не может найти. Надо убрать слеш, он там лишний походу. Сообщение отредактировал Modera - 19.08.2014, 00:11 |
 
|
|
19.08.2014, 06:43
Сообщение
#1857
|
|
Почти Игроман Репутация: 84 Группа: Участник Сообщений: 624 Награды: 5 Регистрация: 02.03.2009 |
Спасибо большое!
С этой ошибкой удалось разобраться, но появилась новая: CODE ------ Build started: Project: xrLUA_JIT, Configuration: Release Win32 ------ Compiling... StdAfx.cpp Compiling... wrapper_base.cpp luabind\wrapper_base.cpp(24) : fatal error C1083: Cannot open include file: 'luabind/config.hpp': No such file or directory weak_ref.cpp luabind\weak_ref.cpp(26) : fatal error C1083: Cannot open include file: 'luabind/lua_include.hpp': No such file or directory stack_content_by_name.cpp luabind\stack_content_by_name.cpp(24) : fatal error C1083: Cannot open include file: 'luabind/lua_include.hpp': No such file or directory scope.cpp luabind\scope.cpp(24) : fatal error C1083: Cannot open include file: 'luabind/lua_include.hpp': No such file or directory ref.cpp luabind\ref.cpp(25) : fatal error C1083: Cannot open include file: 'luabind/config.hpp': No such file or directory pcall.cpp luabind\pcall.cpp(24) : fatal error C1083: Cannot open include file: 'luabind/detail/pcall.hpp': No such file or directory open.cpp luabind\open.cpp(24) : fatal error C1083: Cannot open include file: 'luabind/lua_include.hpp': No such file or directory object_rep.cpp luabind\object_rep.cpp(24) : fatal error C1083: Cannot open include file: 'luabind/detail/object_rep.hpp': No such file or directory object.cpp luabind\object.cpp(24) : fatal error C1083: Cannot open include file: 'luabind/lua_include.hpp': No such file or directory link_compatibility.cpp luabind\link_compatibility.cpp(23) : fatal error C1083: Cannot open include file: 'luabind/detail/link_compatibility.hpp': No such file or directory implicit_cast.cpp luabind\implicit_cast.cpp(24) : fatal error C1083: Cannot open include file: 'luabind/lua_include.hpp': No such file or directory function.cpp luabind\function.cpp(24) : fatal error C1083: Cannot open include file: 'luabind/lua_include.hpp': No such file or directory find_best_match.cpp luabind\find_best_match.cpp(24) : fatal error C1083: Cannot open include file: 'luabind/lua_include.hpp': No such file or directory error.cpp luabind\error.cpp(23) : fatal error C1083: Cannot open include file: 'luabind/error.hpp': No such file or directory create_class.cpp luabind\create_class.cpp(24) : fatal error C1083: Cannot open include file: 'luabind/lua_include.hpp': No such file or directory class_rep.cpp luabind\class_rep.cpp(24) : fatal error C1083: Cannot open include file: 'luabind/lua_include.hpp': No such file or directory class_registry.cpp luabind\class_registry.cpp(24) : fatal error C1083: Cannot open include file: 'luabind/lua_include.hpp': No such file or directory class_info.cpp luabind\class_info.cpp(24) : fatal error C1083: Cannot open include file: 'luabind/lua_include.hpp': No such file or directory class.cpp luabind\class.cpp(24) : fatal error C1083: Cannot open include file: 'luabind/lua_include.hpp': No such file or directory Build log was saved at "file://x:\Xray\xrLUA_JIT\Release\BuildLog.htm" xrLUA_JIT - 19 error(s), 0 warning(s) ---------------------- Done ---------------------- Build: 1 succeeded, 1 failed, 0 skipped Причём, пути я все прописывал и в самом проекте, а тотально пыталс, никак не хочет видеть.... -------------------- PC: CPU Intel Xeon E2690v2 x2, 128 GB RAM, Video Palit RTX2080
|
 
|
|
19.08.2014, 10:02
Сообщение
#1858
|
|
Продвинутый геймер Репутация: 15 Группа: Участник Сообщений: 322 Награды: 3 Регистрация: 01.05.2014 |
|
 
|
|
19.08.2014, 13:07
Сообщение
#1859
|
|
Кандидат Игровых Наук Репутация: 2153 Группа: Участник Сообщений: 3488 Награды: 4 Регистрация: 27.07.2009 |
Есть ли у кого возможность выложить собранную дебаг-версию ЧН с рабочим редактором погоды?
-------------------- Мне просто нравятся синие буквы под сообщением.
|
 
|
|
19.08.2014, 17:42
Сообщение
#1860
|
|
Игровой Эксперт Репутация: 407 Группа: Участник Сообщений: 2394 Награды: 5 Регистрация: 19.01.2009 |
У кого есть возможность:
Скиньте шейдера из ЗП(всех версий) R3,R4 Сообщение отредактировал Tron - 19.08.2014, 17:44 |
 
|
|
19.08.2014, 18:05
Сообщение
#1861
|
|
. Репутация: 750 Группа: Участник Сообщений: 7072 Награды: 4 Регистрация: 30.07.2010 |
|
 
|
|
Текстовая версия | Сейчас: 27.04.2024, 16:54 |