Редактирование движка |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
Редактирование движка |
22.01.2016, 17:18
Сообщение
#1641
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Регистрация: 24.09.2010 |
Редактирование собранного движка Проект Cut X-Ray Цель проекта - создание отдельных изменений движка игры с их последующей комбинацией с другими правками. Авторы: SkyLoader, _призрак_ Для платформ: ТЧ 1.0004 и 1.0006, ЧН 1.5.10, ЗП 1.6.02 Адрес проекта на Google Code: Страница на Moddb: Пак 1 1. Исправление вылета "can't find rank" для оружий. 2. Смерть от первого лица. Видео: 3. Collide Возвращена коллизия мертвых тел с неписями и актором, как она сделана в старой физике билдов. Видео: 4. Круглый прицел. Возвращен круглый прицел вместо перекрестья, как билдах. 5. Исправление вида от 3-го лица. Изменено положение камеры от 3-го лица (1). Стрельба идет по перекрестью, а не по направлению актора. Если включить вид от 3-го лица (1) и удерживать Shift, то ГГ будет автоматически целиться в ближайшего непися или монстра. Проблемы: Стрельба по перекрестью идет также при виде от 3-го лица (2). Если при автоматическом нацеливании непись/монстр удалится или перейдет в оффлайн, будет движковый безлоговый вылет. Я думал вырезать это нацеливание, но решил оставить. Пак 2 1. Luminosity progress (только ТЧ) Возвращение шкалы освещения вместо шкалы "заметности" ГГ, как в билдах. 2. Запрет на доставание оружия в машине (только ТЧ и ЧН) и на лестнице (ТЧ, ЧН, ЗП). 3. Руки на руле в машине. (только ТЧ и ЧН) Видео: 4. Отсутствие распознавания неписей перекрестием: При наведении на непися перекрестье имеет дефолтный цвет. Также не показывает информацию о неписе, если смотреть на него. 5. Bind_object: Возможность использовать скрипты в мультиплеере. 6. Из оружия на классе бинокля можно стрелять (только ТЧ) Пак 3 1. Включение некоторых команд без использования ярлыка. Можно патчить по отдельности. Команды: -smap_4096 (максимально улучшенные карты теней), -mblur (включение блюра). 2. Измененная анимация безоружного гг. 3. Увеличение дистанции диалога с неписями (для создания сценок на расстоянии) 4. Исправление вылета при использовании предметов из трупов неписей. В отличии от версии Kolmogor'а, здесь отключено само меню использования. 5. Возможность поднимать болты как обычные инвентарные предметы (комбинировать с модом Charsi "Заканчивающиеся болты") Правки от RayTwitty aka Shadows Geometry LOD fix (CS 1.5.10) – расширение диапазона консольной команды r__geometry_lod Camblu crosshair for build 1865 – замена перекрестия прицела на кружок в билде 1865 Vertex buffer fix for NC Project – исправление вылета по переполнению буфера в NC Project NO 100 sovetov fix (COP 1.6.02) – убирает надписи "100 советов" с экрана загрузки Demo Record fix (SOC 1.0006) – убирает красные надписи в режиме demo_record Weapon Bobbing Beta (SOC 1.0006) – раскачка оружия при ходьбе (бета-версия) Build Loadscreen (SOC 1.0006) – билдовский экран загрузки со статичным изображением Detail Density fix (SOC 1.0006) – расширение диапазона консольной команды r__detail_density Mipbias fix (SOC 1.0006) – расширение диапазона консольных команд r1_tf_mipbias и r2_tf_mipbias No Quick Use fix (SOC 1.0006) – запрет на использование аптечек и бинтов по быстрым клавишам Sun Near fix (SOC 1.0006) – расширение диапазона консольной команды r2_sun_near Target Font (SOC 1.0006) – замена шрифта под перекрестием прицела на шрифт DI Unload Magazine fix (SOC 1.0006) – фикс скриптовой функции unload_magazine - теперь патроны разряжаются в инвентарь PNG Screenshots (SOC 1.0006) – игра теперь делает качественные скриншоты в формате png Правки от K.D. Правки от macron Исправленный экзешник для SoC 1.0006 Доработанный и исправленный экзешник для ТЧ 1.0006 (на основе Steam-версии без защиты) Включает в себя исправления вылетов, а также очистку лога игры от засоряющих сообщений. Более подробное описание внутри архива. Ссылка: X-Ray extensions portable Портативная версия расширений движка "X-Ray extensions" Платформы: ТЧ 1.0006, ЧН 1.5.10, ЗП 1.6.02 Эта версия имеет все нужные библиотеки и патчеры, а также настроенные bat-файлы для успешной компиляции. Более подробное описание внутри архива. Ссылка: Правки от Kolmogor Правленный xrGame для SoC 1.0004 Изменения: 1. Добавлена консольная команда fov [5.0, 180.0] - изменяет глобальный FOV камеры. 2. Добавлена консольная команда k_ammo_on_belt [on\off] - включает\выключает использование патронов с пояса. 3. Артефакты работают из рюкзака, а пояс служит контейнером. Ссылка: Правки от Kontro-zzz Изменение значения hud_fov Правки фиксированных значений параметра hud_fov - 0.37 либо 0.53, Должно работать на GOG версии и no DVD. Редактирование исходников Репозитории [SoC] () () () () () () () () () () () [CS] () () () () () () [CoP] () () () () () () () () () () () () () [2.0] () () NDA GSC Оригинальные версии движков Могут понадобиться для восстановления оригинальных библиотек. Официальный мультиплеерный (невышедший) патч для SoC Уроки Изменение плотности травы и создание патча через IDA Pro Автор: _призрак_ edited by: RayTwitty aka Shadows Для редактирования нам понадобится программа IDA Pro. 1. Запускаем IDA Pro. 2. Загружаем бинарник рендера xrRender_R1.dll или xrRender_R2.dll. 3. Теперь необходимо найти, где регистрируется консольная команда. Жмем Ctrl+T и вводим r__detail_density. 4. Находим функцию и тщательно ее разбираем (я ее полностью разбирать не буду, только укажу, где задаются параметры: Код регистрации консольной команды Код fld ds:flt_10064400 -- нижнее ограничение равное 0.6 or dword_1007CACC, 8 sub esp, 8 fstp [esp+30h+var_2C] mov ecx, offset unk_1007CA9C fld ds:flt_10064380 -- верхнее ограничение равное 0.2 fstp [esp+30h+var_30] push offset aSs; "ЪЩЩ>" push offset aR__detail_dens; "r__detail_density" call ds:??0CCC_Float@@QAE@PBDPAMMM@Z; CCC_Float::CCC_Float(char const *,float *,float,float) push offset sub_1005E080; void (__cdecl *)() call _atexit add esp, 4 5. Нам нужно увеличить плотность травы: следовательно нужно изменить верхнее ограничение. Как это сделать? Есть три варианта: Первый и самый логичный вариант: изменить переменную. Но тут есть небольшой подвох на котором я попался - этой переменной может пользоваться не одна функция, а несколько. И не ясно, что вы можете сломать, поменяв одну циферку на другую. Второй: взять другую, уже существующую переменную с подходящим значением. Хороший вариант которым я и воспользовался. Но и тут есть недостаток - переменных в бинарнике не так уж и много и можно просто не найти нужную. Третий: создать переменную. Отличный вариант. Единственный минус - я не знаю как это сделать Я пошел по второму пути. Два раза щелкнув на ds:flt_10064380, IDA отправила меня в дебри под названием .rdata. Там я нашел переменную, которая называлась - flt_1006452C и которая имела значение 0.0720999. Насколько я понял, flt_1006452C - не является названием переменной, это сборка из двух показателей - (тип числа)_(смещение). В нашем случае это число типа float, которое находится по адресу 1006452C. Ну что же, приступим к редактированию! 6. Отправляемся в самое начало файла. Как? Сверху есть что-то типа статус-бара - строка состоящая из синего, серого, черного цвета. Нажимаем там в любом месте мышкой и ведем влево до конца. 7. Опять ищем r__detail_density. Находим в этой функции строку fld ds:flt_10064338. Дальше самое интересное - жмем на вкладку Hex View и там у нас выделяются какие-то цифры. Это наша переменная 10064338, только написано наоборот. Сравните: Код 38 43 06 10 Похоже, не правда ли? 10 06 43 38 8. Начинаем редактировать. Нам нужно поменять 4338 на 452C (т.е. заменить ссылку с одной переменной на другую). Жмем правой кнопкой мыши на этих цифрах и выбираем пункт Edit. Меняем 38 43 на 2С 45. Дальше жмем где-нибудь в коде (это нужно сделать обязательно!). 9. После этого жмем правой кнопкой мыши и выбираем commit changes. Таким образом, мы поменяли ссылку на переменную и теперь верхнее ограничение будет равно значению из другой переменной. Но IDA не меняет исходный файл. В нашем случае мы можем только создать файл изменений. Делается это так: File -> Produce file -> Create DIF file. Назовем его test. Этот файл можно открыть при помощи блокнота и посмотреть, что получилось. 10. Теперь необходимо внести изменения из этого файла в движок. Это можно сделать при помощи патчера bpatch. Качаем, смотрим и запускаем bpatch.cmd. Я думаю, что батник вы сможете изменить самостоятельно (настроить пути файлов и т.п.) - там все элементарно. 11. Все! Изменения внесены в движок, можно тестировать Огромное спасибо Kolmogor'у и malandrinus'у. Если бы не они, я бы ничего не сделал. Спасибо вам еще раз. Спасибо и Rolan'у, с которым я очень много беседовал и тоже узнал много чего Полезные ссылки Сборка движка X-Ray Сообщение отредактировал RayTwitty - 27.08.2021, 00:15 |
 
|
|
|
|
29.01.2016, 13:40
Сообщение
#1642
|
|
Игровое Воплощение Репутация: 394 Группа: Участник Сообщений: 4791 Награды: 4 Регистрация: 27.04.2011 |
|
 
|
|
29.01.2016, 13:54
Сообщение
#1643
|
|
Продвинутый геймер Репутация: 90 Группа: Участник Сообщений: 395 Награды: 3 Регистрация: 07.04.2014 |
Ещё осенью нашёл данный код в исходниках СДК ЧН/ЗП
Погода в сдк в чн/зп, однако, была просто заккоментирована CODE /* // append weathers CEnvironment::EnvsMapIt _I=g_pGamePersistent->Environment().WeatherCycles.begin(); CEnvironment::EnvsMapIt _E=g_pGamePersistent->Environment().WeatherCycles.end(); for (; _I!=_E; _I++){ mi = xr_new<TMenuItem>((TComponent*)0); mi->Caption = *_I->first; mi->OnClick = miWeatherClick; mi->RadioItem = true; miWeather->Add (mi); } */ -------------------- no more running
|
 
|
|
29.01.2016, 13:57
Сообщение
#1644
|
|
Доктор Игровых Наук Репутация: 544 Группа: Участник Сообщений: 3657 Награды: 9 Регистрация: 12.07.2007 |
sergy172, чтобы соответствовало реальности. И делают "чтобы красиво разваливалось" потому что физика сильно упрощена во всем. Нет учета центра тежести, соответсветно ускорение свободного падения поэтому упрощено, упрощены столкновения тел. Чтобы все это компенсировать (считай сколько не учитывается суммарно) прибавляют к константам примерно раза в 2 от реальных. Скажем чтобы сделать красивое падение регдола надо учесть импульс точки попадания, вес каждой конечности и ее центр массы, учесть вектор движения и скорость каждой конечности до включения регдола. Далее учесть ограничители углов каждой кости скелета, учесть среду в которой находится регдол(плотность воздуха, движение воздуха). И это только малая часть от необходимого. А теперь выкинь большую часть для разгрузки цп и прикинь на сколько конечный расчет изменится и на сколько примерно нужно домножить конечные коэфициенты изза погрешностей сведенных к золотой середине в этой формуле.
|
 
|
|
29.01.2016, 14:38
Сообщение
#1645
|
|
Почти Игроман Репутация: 187 Группа: Участник Сообщений: 647 Награды: 4 Регистрация: 05.05.2007 |
m_gravity = 19.6200008 .... Я думал у нас 9.81 гравитация... (ODE) Это уже сто лет известно. Цитата [wpn_rpg7_missile]:identity_immunities
... ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Свойства CustomRocket ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; engine_present = true ;присутствует ли в ракете двигатель engine_work_time = 3000 ;время работы двигателя (в милисекундах) engine_impulse = 300 engine_impulse_up = 133,906 ;137.34 ;137.34 = 2*9.81*7 - значение этого параметра (который является некой подъемной силой, вопреки названию), ;при котором ракета массой 7кг не опускается под дейсвием ;гравитации. 2*9.81=19.62 - ускорение свободного падения в мире сталкеров ;при меньших значениях ракета будет опускаться, при больших подниматься lights_enabled = true ;свет вокруг ракеты, во время полета trail_light_color = 0.6,0.5,0.3 trail_light_range = 15.0 engine_particles = weapons\rpg_trail_00 ;fly_particles = weapons\rpg_trail_01 force_explode_time = 30000; msec |
 
|
|
29.01.2016, 15:57
Сообщение
#1646
|
|
Ветеран Репутация: 5 Группа: Участник Сообщений: 82 Награды: 2 Регистрация: 11.07.2014 |
У кого нибудь получилось полноценно вернуть раскачку оружия (для ТЧ)? В принципе и движковую и анимационную сделали. Движковую можно взять или ЛА, только ее следует инвертировать, чтобы раскачивалась как в билдах. Анимационную сейчас скриптами сделать можно. Но это надо пилить все анимации к оружиям. А каким образом? Разве в седьмой патч переноcили функцию для проигрывания анимации худа из скрипта?) P.S. по поводу анимаций idle_moving на ТЧ. В моде РУК ХУД 3 во всех моделях при переносе с ЗП специально оставили на будущее) -------------------- |
 
|
|
29.01.2016, 17:16
Сообщение
#1647
|
|
Геймер Репутация: 0 Группа: Участник Сообщений: 112 Регистрация: 01.10.2014 |
всё очень плохо
|
 
|
|
29.01.2016, 18:14
Сообщение
#1648
|
|
Ветеран Репутация: 5 Группа: Участник Сообщений: 82 Награды: 2 Регистрация: 11.07.2014 |
Код [29.01.16 18:14:54.359] WARNING: CLocatorAPI::check_for_file not found file d:\games\stalker\shadow_of_chernobyl\gamedata\shaders\r2\deffer_base_bump_d_db-hq.ps in files list (size = 28642) [29.01.16 18:14:54.359] [29.01.16 18:14:54.359] FATAL ERROR [29.01.16 18:14:54.359] [29.01.16 18:14:54.359] [error]Expression : R [29.01.16 18:14:54.359] [error]Function : CResourceManager::_CreatePS [29.01.16 18:14:54.359] [error]File : ResourceManager_Resources.cpp [29.01.16 18:14:54.359] [error]Line : 273 [29.01.16 18:14:54.359] [error]Description : d:\games\stalker\shadow_of_chernobyl\gamedata\shaders\r2\deffer_base_bump_d_db-hq.ps В 193 ревизии, видимо, не хватает файлов. =) Сообщение отредактировал Vampir35 - 29.01.2016, 18:32 -------------------- |
 
|
|
29.01.2016, 18:35
Сообщение
#1649
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Регистрация: 24.09.2010 |
А этот параметр можно в конфиг вывести, поиграться? ph_gravity в консоли. Нет учета центра тежести, соответсветно ускорение свободного падения поэтому упрощено, упрощены столкновения тел. Вообще-то есть У каждой косточки можно настраивать этот самый центр тяжести. А у ODE есть какие то константы равные настоящим, что бы можно было перенастроить всё так что бы оно не "красиво разваливалось" а что бы полностью соответствовало реальности? Есть. Открываешь конфиги + 65535 моделей и настраиваешь каждую кость = реальная физика. -------------------- |
 
|
|
29.01.2016, 18:42
Сообщение
#1650
|
|
Доктор Игровых Наук Репутация: 544 Группа: Участник Сообщений: 3657 Награды: 9 Регистрация: 12.07.2007 |
|
 
|
|
29.01.2016, 18:50
Сообщение
#1651
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Регистрация: 24.09.2010 |
Всеравно будет недостаточно но однозначна лучше чем в оригинале сделано Да уже давно сделали, вроде ещё в 2007. Должно гуглиться по "реальный регдол для сталкер ТЧ". Сергий опять как с луны упал. -------------------- |
 
|
|
29.01.2016, 18:54
Сообщение
#1652
|
|
Ветеран Репутация: 5 Группа: Участник Сообщений: 82 Награды: 2 Регистрация: 11.07.2014 |
В движке с репозитория только у меня с вертикальными слотами какие-то чудеса творятся? Суть бага в том, что вся иконка корежится, растягивается, если только оружие не занимает одну клетку...
-------------------- |
 
|
|
30.01.2016, 21:18
Сообщение
#1653
|
|
Геймер Репутация: 0 Группа: Участник Сообщений: 112 Регистрация: 01.10.2014 |
ТЧ x64
Ставить поверх 1.0006 патча. Потом запустить, и играть) Отпишитесь о багах x64 которые найдёте. Ну и о крашах с логом и ситуацией при которой краш будет. |
 
|
|
30.01.2016, 22:32
Сообщение
#1654
|
|
Новичок Репутация: 2 Группа: Участник Сообщений: 10 Регистрация: 30.01.2016 |
У кого игра не запустится и выйдет окошко с отсутствием файла VCRUNTIME140.dll, необходимо будет скачать
В целом, фризит жутко, особенно в начале. Запускал на статике. Насчет пистолетов, анимацию у заклинившего ПБ на остальные пистолеты сделать и нормально будет. Сообщение отредактировал ANDrevenge - 30.01.2016, 22:59 |
 
|
|
30.01.2016, 23:04
Сообщение
#1655
|
|
Геймер Репутация: 0 Группа: Участник Сообщений: 112 Регистрация: 01.10.2014 |
У кого игра не запустится и выйдет окошко с отсутствием файла VCRUNTIME140.dll, необходимо будет скачать В целом, фризит жутко, особенно в начале. Запускал на статике. Насчет пистолетов, анимацию у заклинившего ПБ на остальные пистолеты сделать и нормально будет. клинит из-за физики. Она нормально материалы не может найти. По этому через кусты проходить не можешь. Скоро пофиксим. Это так, для пробежки демка. Могут ещё быть вылеты из-за звука, по этому играть с -nosound лучше) |
 
|
|
30.01.2016, 23:20
Сообщение
#1656
|
|
Новичок Репутация: 2 Группа: Участник Сообщений: 10 Регистрация: 30.01.2016 |
Цитата вылеты из-за звука Пока нет. Прошел первый квест, отстрел бандитов и освобождение Шустрого. Звук бывает начинает немного миксовать, будто "жует пластинку". Пристрелил псину, после чего та улетела в стену и началось: И безлоговый вылет при переходе на свалку. Сэйв не крашится, можно загрузиться с него. Сообщение отредактировал ANDrevenge - 31.01.2016, 00:11 |
 
|
|
31.01.2016, 02:40
Сообщение
#1657
|
|
Почти Игроман Репутация: 96 Группа: Участник Сообщений: 594 Награды: 3 Регистрация: 26.10.2012 |
В ЧН исходниках есть какой-то cs\engine\xrEngine\xrSASH.cpp, который повидимому давал юзать конфиг SASH.ltx, вроде для графических настроек, и видимо применялся в бенчмарке. Или я пишу бред ?
Тогда для чего он был нужен? -------------------- Будиш маму-папу слушать
Будиш ты канфеты кушать! © Операция «Ы» |
 
|
|
31.01.2016, 10:05
Сообщение
#1658
|
|
Новичок Репутация: 2 Группа: Участник Сообщений: 10 Регистрация: 30.01.2016 |
Nummer,
добавь файл в свою сборку expression : wave&&wave->length() Function : CSoundRender_Source::LoadWave File : SoundRender_Source_loader.cpp Line : 65 Description : Can't open wave file: Arguments : c:\games\s.t.a.l.k.e.r\gamedata\sounds\weapons\wpn_aks74\aks74_draw.ogg Когда оптимизированную версию представишь? Это невозможно тестировать. Вылет при переходе на Агропром. expression : fatal error Function : CScriptEngine::lua_error File : script_engine.cpp Line : 90 Description : <no expression> Arguments : LUA error: ...s\s.t.a.l.k.e.r\gamedata\scripts\task_manager.script:476: attempt to index local 'sel_task' (a nil value) stack traceback: Сообщение отредактировал ANDrevenge - 31.01.2016, 10:32 |
 
|
|
31.01.2016, 12:29
Сообщение
#1659
|
|
Геймер Репутация: 0 Группа: Участник Сообщений: 112 Регистрация: 01.10.2014 |
Nummer, добавь файл в свою сборку expression : wave&&wave->length() Function : CSoundRender_Source::LoadWave File : SoundRender_Source_loader.cpp Line : 65 Description : Can't open wave file: Arguments : c:\games\s.t.a.l.k.e.r\gamedata\sounds\weapons\wpn_aks74\aks74_draw.ogg Когда оптимизированную версию представишь? Это невозможно тестировать. Вылет при переходе на Агропром. expression : fatal error Function : CScriptEngine::lua_error File : script_engine.cpp Line : 90 Description : <no expression> Arguments : LUA error: ...s\s.t.a.l.k.e.r\gamedata\scripts\task_manager.script:476: attempt to index local 'sel_task' (a nil value) stack traceback: Уже правлю. Сейчас откатился обратно на x86, и листаю коммиты свои. Смотрю где я мог накосячить с оптимизацией. Про ошибки LUA знаю, ибо прикрутили обычный LUA. Он работает медленней, но зато под x64 собирается. Потом LuaJIT прикрутим новый. Думаю к 8 числу ближе будет стабильный x64) |
 
|
|
31.01.2016, 13:56
Сообщение
#1660
|
|
Ветеран Репутация: 5 Группа: Участник Сообщений: 82 Награды: 2 Регистрация: 11.07.2014 |
Цитата try_call_luafunc теперь может возвращать строковой результат для функции из скриптов. Соответственно колбек on_load_title может использоваться для выдачи произвольного текста на любом этапе загрузки (например, случайный совет как в ЗП). Смотрю в исходники и никак не пойму - откуда и как вызывать это? -------------------- |
 
|
|
02.02.2016, 04:14
Сообщение
#1661
|
|
Игровой Эксперт Репутация: 407 Группа: Участник Сообщений: 2394 Награды: 5 Регистрация: 19.01.2009 |
Уже правлю. Сейчас откатился обратно на x86, и листаю коммиты свои. Смотрю где я мог накосячить с оптимизацией. Про ошибки LUA знаю, ибо прикрутили обычный LUA. Он работает медленней, но зато под x64 собирается. Потом LuaJIT прикрутим новый. Думаю к 8 числу ближе будет стабильный x64) там не в этом косяк,я тебе уже это говорил |
 
|
|
Текстовая версия | Сейчас: 11.05.2024, 11:45 |