Закрома Родины |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
Закрома Родины |
17.09.2014, 16:27
Сообщение
#1761
|
|
И никаких няш-мяш! Репутация: 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 |
 
|
|
|
|
12.08.2014, 11:07
Сообщение
#1762
|
|
. Репутация: 750 Группа: Участник Сообщений: 7072 Награды: 4 Регистрация: 30.07.2010 |
Попробуйте какой-нибудь спаун для теста собрать. Желательно родным xrAI из сорцев.
Если не запустится, то плохо дело |
 
|
|
12.08.2014, 16:01
Сообщение
#1763
|
|
Мастер Игры Репутация: 232 Группа: Друзья GM Сообщений: 1299 Награды: 4 Регистрация: 05.03.2012 |
При компиляции xrEngine.exe с конфигурацией "Release" на стадии линковки выдает сообщение:
fatal error C1047: The object or library file '..\..\sdk\libraries\oalibmt.lib' was created with an older compiler than objects; rebuild old objects and libraries На конфигурации "Mixed" полностью компилируется и даже запускается. Компилирую восьмой студией, экспресс версией. Подскажите, как решить эту проблему. -------------------- |
 
|
|
12.08.2014, 16:17
Сообщение
#1764
|
|
Доктор Игровых Наук Репутация: 544 Группа: Участник Сообщений: 3657 Награды: 9 Регистрация: 12.07.2007 |
hi_flyer,
Цитата was created with an older compiler than objects; rebuild old objects and libraries По логике перекомпилировать эту либу но возможно устанавливаются неправильные флаги компиляции для либы этой(если она компилится каждый раз). Попробуй вызвать полный ребилд проекта. |
 
|
|
12.08.2014, 16:30
Сообщение
#1765
|
|
Магистр Игры Репутация: 270 Группа: Участник Сообщений: 2620 Награды: 4 Регистрация: 26.03.2007 |
OpenAutomate (либа автотестов от нвидии) лет 5 уже как публичная, если GCS не использовали какие-то закрытые тестовые версии, то действительно, проще всего пересобрать ее
а пляски со статическими либами собранными древними компиляторами и реакция на них компиляторов сегодняшних уже обсуждались ;) |
 
|
|
12.08.2014, 16:55
Сообщение
#1766
|
|
Ветеран Репутация: 17 Группа: Участник Сообщений: 92 Награды: 2 Регистрация: 14.07.2013 |
|
 
|
|
12.08.2014, 18:18
Сообщение
#1767
|
|
Ветеран Репутация: 17 Группа: Участник Сообщений: 92 Награды: 2 Регистрация: 14.07.2013 |
Впрочем, давайте ход мыслей озвучу сейчас. Но работоспособность не гарантирую. Пока что именно правки сорс-файлов, с игровыми скриптами сложностей не возникнет + детально прокомментирую в полном туторе, если такой будет.
Взять, к примеру, предложение Стартера - добавить коллбек на попадание броника в слот. Попробуем сделать коллбек на попадание в свой слот любого предмета. Нужные файлы из директории xrGame: - InventoryOwner.cpp - script_game_object_script.cpp - game_object_space.h Текст 1. Открываем game_object_space.h. По идее, здесь идет перечисление движковых названий коллбеков. В таблицу (перечисление?) enum ECallbackType добавляем вниз новый движковый коллбек: Код eOnItemInSlot, 2. Дальше идем в script_game_object_script.cpp. Тут движковые коллбеки приобретают свои скриптовые название (те, что мы можем видеть в lua_help.script). После этого: Код value("map_location_added", int(GameObject::eMapLocationAdded)) ставим запятую, ниже дописываем value нашего коллбека. В целом выглядит так: Код value("map_location_added", int(GameObject::eMapLocationAdded)), value("on_item_in_slot", int(GameObject::eOnItemInSlot)) 3. Теперь переходим к InventoryOwner.cpp, где инициализируются различные инвентарные действия относительно ГГ. Находим void OnItemSlot. В нем, насколько я понимаю, айтем "цепляется" в слоте. Добавим туда некоторые элементы, войд будет выглядеть так: Код void CInventoryOwner::OnItemSlot (CInventoryItem *inventory_item, EItemPlace previous_place) { CGameObject *object = smart_cast<CGameObject*>(this); VERIFY (object); object->callback(GameObject::eOnItemSlot)(inventory_item->object().lua_game_object()); attach (inventory_item); } --------------------- Как-то так. Сразу говорю, что это чуть больше, чем просто метод тыка, основанный на изучении шаблонов других коллбеков. Особыми знаниями C++ не обладаю, как и глубокими знаниями движка. Сообщение отредактировал FantomICW - 12.08.2014, 18:18 |
 
|
|
12.08.2014, 19:17
Сообщение
#1768
|
|
Продвинутый геймер Репутация: 90 Группа: Участник Сообщений: 395 Награды: 3 Регистрация: 07.04.2014 |
Уважаемые будет добры! Дайте ссыль на скомпилированные исходники ТЧ 1.0007 без правок.
Сообщение отредактировал Mcbeat7 - 12.08.2014, 19:21 -------------------- no more running
|
 
|
|
12.08.2014, 19:22
Сообщение
#1769
|
|
Ветеран Репутация: 5 Группа: Участник Сообщений: 82 Награды: 2 Регистрация: 11.07.2014 |
FantomICW, так калбек на попадание в слот имеется, на попадание в рюкзак тоже, следовательно снятие/одевание костюма этими калбеками отловить можно
Вот вопрос другой, калбек на нажатие контакта в ПДА нужен, попытавшись найти откуда ноги растут я потерпел неудачу) Вроде бы вызываться должно там, где выводится биография, которую восстановил товарищ Shadows, если бы еще туда вкатить калбек, который передаст клиентский объект непися, было бы здорово) -------------------- |
 
|
|
12.08.2014, 19:28
Сообщение
#1770
|
|
Ветеран Репутация: 17 Группа: Участник Сообщений: 92 Награды: 2 Регистрация: 14.07.2013 |
калбек на попадание в слот имеется Vampir35, покажи мне такой коллбек из данной таблицы Callback Код C++ class callback { const action_animation = 21; const action_movement = 18; const action_object = 24; const action_particle = 23; const action_removed = 20; const action_sound = 22; const action_watch = 19; const actor_sleep = 25; const article_info = 12; const death = 8; const helicopter_on_hit = 27; const helicopter_on_point = 26; const hit = 16; const inventory_info = 11; const inventory_pda = 10; const level_border_enter = 7; const level_border_exit = 6; const map_location_added = 14; const on_item_drop = 29; const on_item_take = 28; const patrol_path_in_point = 9; const script_animation = 30; const sound = 17; const take_item_from_box = 34; const task_state = 13; const trade_perform_operation = 3; const trade_sell_buy_item = 2; const trade_start = 0; const trade_stop = 1; const trader_global_anim_request = 31; const trader_head_anim_request = 32; const trader_sound_end = 33; const use_object = 15; const weapon_no_ammo = 35; const zone_enter = 4; const zone_exit = 5 }; Сообщение отредактировал FantomICW - 12.08.2014, 19:29 |
 
|
|
12.08.2014, 19:36
Сообщение
#1771
|
|
Ветеран Репутация: 5 Группа: Участник Сообщений: 82 Награды: 2 Регистрация: 11.07.2014 |
Уважаемые будет добры! Дайте ссыль на скомпилированные исходники ТЧ 1.0007 без правок. А как без правок? В том-то и дело, что тут тема правок, и с правками багов меньше, а если что-то не требуется, то можно не использовать или скомпилить, отключив дефайны. Есть билд от KD: P.S Если возникла необходимость, могу скомпилить чистую ревизию с нужными вам дефайнами) -------------------- |
 
|
|
12.08.2014, 19:36
Сообщение
#1772
|
|
Ветеран Репутация: 17 Группа: Участник Сообщений: 92 Награды: 2 Регистрация: 14.07.2013 |
|
 
|
|
12.08.2014, 19:51
Сообщение
#1773
|
|
Ветеран Репутация: 5 Группа: Участник Сообщений: 82 Награды: 2 Регистрация: 11.07.2014 |
калбек на попадание в слот имеется Vampir35, покажи мне такой коллбек из данной таблицы Callback Код C++ class callback { const action_animation = 21; const action_movement = 18; const action_object = 24; const action_particle = 23; const action_removed = 20; const action_sound = 22; const action_watch = 19; const actor_sleep = 25; const article_info = 12; const death = 8; const helicopter_on_hit = 27; const helicopter_on_point = 26; const hit = 16; const inventory_info = 11; const inventory_pda = 10; const level_border_enter = 7; const level_border_exit = 6; const map_location_added = 14; const on_item_drop = 29; const on_item_take = 28; const patrol_path_in_point = 9; const script_animation = 30; const sound = 17; const take_item_from_box = 34; const task_state = 13; const trade_perform_operation = 3; const trade_sell_buy_item = 2; const trade_start = 0; const trade_stop = 1; const trader_global_anim_request = 31; const trader_head_anim_request = 32; const trader_sound_end = 33; const use_object = 15; const weapon_no_ammo = 35; const zone_enter = 4; const zone_exit = 5 }; Стал копаться в движке, калбек все-таки имеется, помнил же вроде видел таким он будет в скрипте bind_stalker: "on_item_slot" Сообщение отредактировал Vampir35 - 12.08.2014, 19:51 -------------------- |
 
|
|
12.08.2014, 19:52
Сообщение
#1774
|
|
Ветеран Репутация: 17 Группа: Участник Сообщений: 92 Награды: 2 Регистрация: 14.07.2013 |
Vampir35, так где ты его нашел?
|
 
|
|
12.08.2014, 19:56
Сообщение
#1775
|
|
Ветеран Репутация: 5 Группа: Участник Сообщений: 82 Награды: 2 Регистрация: 11.07.2014 |
таблица Код value("trade_start", int(GameObject::eTradeStart)), value("trade_stop", int(GameObject::eTradeStop)), value("trade_sell_buy_item", int(GameObject::eTradeSellBuyItem)), value("trade_perform_operation", int(GameObject::eTradePerformTradeOperation)), value("trader_global_anim_request", int(GameObject::eTraderGlobalAnimationRequest)), value("trader_head_anim_request", int(GameObject::eTraderHeadAnimationRequest)), value("trader_sound_end", int(GameObject::eTraderSoundEnd)), value("zone_enter", int(GameObject::eZoneEnter)), value("zone_exit", int(GameObject::eZoneExit)), value("level_border_exit", int(GameObject::eExitLevelBorder)), value("level_border_enter", int(GameObject::eEnterLevelBorder)), value("death", int(GameObject::eDeath)), value("patrol_path_in_point", int(GameObject::ePatrolPathInPoint)), value("inventory_pda", int(GameObject::eInventoryPda)), value("inventory_info", int(GameObject::eInventoryInfo)), value("article_info", int(GameObject::eArticleInfo)), value("use_object", int(GameObject::eUseObject)), value("hit", int(GameObject::eHit)), value("sound", int(GameObject::eSound)), value("action_movement", int(GameObject::eActionTypeMovement)), value("action_watch", int(GameObject::eActionTypeWatch)), value("action_animation", int(GameObject::eActionTypeAnimation)), value("action_sound", int(GameObject::eActionTypeSound)), value("action_particle", int(GameObject::eActionTypeParticle)), value("action_object", int(GameObject::eActionTypeObject)), value("actor_sleep", int(GameObject::eActorSleep)), value("helicopter_on_point", int(GameObject::eHelicopterOnPoint)), value("helicopter_on_hit", int(GameObject::eHelicopterOnHit)), value("on_item_take", int(GameObject::eOnItemTake)), value("on_item_drop", int(GameObject::eOnItemDrop)), value("script_animation", int(GameObject::eScriptAnimation)), value("task_state", int(GameObject::eTaskStateChange)), value("take_item_from_box", int(GameObject::eInvBoxItemTake)), value("map_location_added", int(GameObject::eMapLocationAdded)), value("on_item_in_slot", int(GameObject::eOnItemInSlot)) /************************************************** added by Ray Twitty (aka Shadows) START **************************************************/ // клавиатура/мышь value("on_key_press", int(GameObject::eonKeyPress)), value("on_key_release", int(GameObject::eOnKeyRelease)), value("on_key_hold", int(GameObject::eOnKeyHold)), value("on_mouse_move", int(GameObject::eonMouseMove)), value("on_mouse_wheel", int(GameObject::eonMouseWheel)), // инвентарь value("on_item_belt", int(GameObject::eOnItemBelt)), value("on_item_slot", int(GameObject::eOnItemSlot)), value("on_item_ruck", int(GameObject::eOnItemRuck)), // фонарь value("switch_torch", int(GameObject::eSwitchTorch)), /*************************************************** added by Ray Twitty (aka Shadows) END ***************************************************/ // Added by Cribbledirge Start value("on_mouse_press", int(GameObject::eOnMousePress)), value("on_mouse_release", int(GameObject::eOnMouseRelease)), value("on_mouse_hold", int(GameObject::eOnMouseHold)), value("on_actor_weapon_fire", int(GameObject::eOnActorWeaponFire)), value("on_actor_weapon_reload", int(GameObject::eOnActorWeaponReload)), value("on_actor_weapon_jammed", int(GameObject::eOnActorWeaponJammed)), value("on_actor_weapon_empty", int(GameObject::eOnActorWeaponEmpty)), value("on_actor_weapon_zoom_in", int(GameObject::eOnActorWeaponZoomIn)), value("on_actor_weapon_zoom_out", int(GameObject::eOnActorWeaponZoomOut)) -------------------- |
 
|
|
12.08.2014, 20:14
Сообщение
#1776
|
|
Ветеран Репутация: 17 Группа: Участник Сообщений: 92 Награды: 2 Регистрация: 14.07.2013 |
Vampir35, а, ну ясно. Я ковыряю чистые сорсы, а ты - ревизию Шэдоуса
|
 
|
|
12.08.2014, 20:20
Сообщение
#1777
|
|
Ветеран Репутация: 5 Группа: Участник Сообщений: 82 Награды: 2 Регистрация: 11.07.2014 |
Vampir35, а, ну ясно. Я ковыряю чистые сорсы, а ты - ревизию Шэдоуса Просто я обычно ковыряю последнюю ревизию) в ней сделано больше -------------------- |
 
|
|
12.08.2014, 20:44
Сообщение
#1778
|
|
Босс Репутация: 950 Группа: Участник Сообщений: 4230 Награды: 2 Регистрация: 27.09.2010 |
В сурсах лежат контакты разрабов)
-------------------- I NEED A BRAAAAAAAAAAAAAAAAAAAAAAP!!!!11
|
 
|
|
12.08.2014, 20:49
Сообщение
#1779
|
|
Продвинутый геймер Репутация: 90 Группа: Участник Сообщений: 395 Награды: 3 Регистрация: 07.04.2014 |
Vampir35, кинь ссыль на 108 ревизию
Кстати, кто-нибудь уже сделал выгрузку текстур из G буфера и динамических моделей в сорцах ЧН? -------------------- no more running
|
 
|
|
12.08.2014, 20:53
Сообщение
#1780
|
|
Ветеран Репутация: 5 Группа: Участник Сообщений: 82 Награды: 2 Регистрация: 11.07.2014 |
Vampir35, кинь ссыль на 108 ревизию Кстати, кто-нибудь уже сделал выгрузку текстур из G буфера и динамических моделей в сорцах ЧН? Так она через СВН обновляется) Ссылки для svn у меня к сожалению нету -------------------- |
 
|
|
12.08.2014, 21:00
Сообщение
#1781
|
|
Продвинутый геймер Репутация: 90 Группа: Участник Сообщений: 395 Награды: 3 Регистрация: 07.04.2014 |
Vampir35, там код, а мне скомпилированный билд надо.
вот ссылка на репозиторий Сообщение отредактировал Mcbeat7 - 12.08.2014, 21:02 -------------------- no more running
|
 
|
|
Текстовая версия | Сейчас: 19.04.2024, 00:33 |