Редактирование движка |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
Редактирование движка |
22.01.2016, 17:18
Сообщение
#2521
|
|
Игровой Бог Репутация: 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 |
 
|
|
|
|
03.07.2017, 16:45
Сообщение
#2522
|
|
Почти Игроман Репутация: 91 Группа: Модератор Сообщений: 516 Награды: 4 Регистрация: 19.07.2015 |
Это не все. )) Просто для своего проекта периодами ищу нужные правки в других, когда лень самому делать. Вот и накопил списочек. -------------------- В армии по 01.07.2020. |
 
|
|
03.07.2017, 21:42
Сообщение
#2523
|
|
Новичок Репутация: 0 Группа: Участник Сообщений: 3 Регистрация: 19.02.2017 |
Исходники от CoC. 1.4.22
Кто-нибудь замечал, что со звуком, есть один баг?) Вообщем, как мы знаем, у любого звука в игре есть комментарий, в нем : минимальная дистанция, максимальная дистанция, базовая громкость, и т.д. И вот ребята, проблема в чём. Казалось бы, есть максимальная дистанция, я как думал, что это окончание радиуса от источника звука. В принципе, так и есть, когда мы выходим за его пределы, у нас этот звук сразу пропадает. Однако, забавная ситуация. Звук не успевает затухнуть к этому окончанию. И вот как выглядит картина... Буквально один шаг вперед - у нас появляется звук, при этом на ГРОМКОСТИ 20-30%. Это уже является ошибкой. Должно быть как: входим в радиус звука -> громкость 0%, приближаемся к источнику, значит громкость += Еще, сам звук плавно меняется по громкости к источнику, но очень криво. Ведь, если было бы всё правильно, я это бы не писал . Сам я искал, но нашел только, где прописано в коде про максимальную дистанцию, что за её пределы, звук сразу режется. Если есть фикс, будьте добры, угостите. Если нет, то значит, нужно найти ошибку. Когда найдем, обязательно кидайте в репозитории. Ибо, такие фиксы, должны быть везде. Этот старый баг или эта недоработка, портит весь звук. |
 
|
|
03.07.2017, 22:02
Сообщение
#2524
|
|
Игровой Бог Репутация: 1690 Группа: Участник Сообщений: 7021 Награды: 11 Регистрация: 22.02.2006 |
LostAlphaRus, Многое зависит от настроек ogg-файлов, комбинаций тех самых настроек. Поставь "OLR 2.5 + FIXX17" или выше, там для бара специально настройки музонов подстраивались для плавного затухания, плюс EnvFX-библиотеки для EAX.
|
 
|
|
04.07.2017, 07:43
Сообщение
#2525
|
|
Грандмастер Репутация: 482 Группа: Участник Сообщений: 1851 Награды: 6 Регистрация: 22.08.2009 |
@Forser, мне просто любопытно стало. Не для чего ...
По ссылке в твоей подписи написано: "Целями данного репозитория являются: - Обновление стороннего API, используемого в X-Ray 1.6.02 - Исправление ошибок X-Ray Engine - Удаление ненужных владельцу/устаревших компонентов - Повышение собственного скилла" 1. А как ты обнаруживаешь ошибки? 2. А потом как проверяешь что некая ошибка исправлена? Это что каждый раз играть какое-то время нужно? Или как? Интересно стало как этот процесс на практике хоть примерно происходит |
 
|
|
04.07.2017, 08:46
Сообщение
#2526
|
|
Новичок Репутация: 0 Группа: Участник Сообщений: 3 Регистрация: 19.02.2017 |
macron, ну EAX редко кто использует. Пилить зоны, ради того, чтобы сделать плавное затухание) Разумнее сделать, как должно быть, а там уже другая картина пойдет с EAX.
|
 
|
|
04.07.2017, 12:04
Сообщение
#2527
|
|
Игровой Бог Репутация: 1690 Группа: Участник Сообщений: 7021 Награды: 11 Регистрация: 22.02.2006 |
Пилить зоны, ради того, чтобы сделать плавное затухание) Я не говорил, что конкретно зоны/EAX как-то связаны с затуханиями. Хотя и в самиx EnvFX-dll понапихано много интересных новых фич |
 
|
|
04.07.2017, 12:26
Сообщение
#2528
|
|
Почти Игроман Репутация: 91 Группа: Модератор Сообщений: 516 Награды: 4 Регистрация: 19.07.2015 |
1. А как ты обнаруживаешь ошибки? 2. А потом как проверяешь что некая ошибка исправлена? Это что каждый раз играть какое-то время нужно? Или как? Интересно стало как этот процесс на практике хоть примерно происходит Если не лень и слабое железо - то в игре. Если железо позволяет, то под деббагером. -------------------- В армии по 01.07.2020. |
 
|
|
11.07.2017, 23:56
Сообщение
#2529
|
|
Почти Игроман Репутация: 91 Группа: Модератор Сообщений: 516 Награды: 4 Регистрация: 19.07.2015 |
Кст, FRay Project совершил тестовую миграцию на GitHub. (https://github.com/ForserX/FRay-Git)
Где-то под конец августа репозиторий переедет окончательно. Пока что работа с ним будет вестись на bitbucket.org. -------------------- В армии по 01.07.2020. |
 
|
|
12.07.2017, 14:00
Сообщение
#2530
|
|
Почти Игроман Репутация: 91 Группа: Модератор Сообщений: 516 Награды: 4 Регистрация: 19.07.2015 |
Таки FRay переехал на гитхаб окончательно.
Сообщение отредактировал Forser - 12.07.2017, 14:01 -------------------- В армии по 01.07.2020. |
 
|
|
15.07.2017, 15:34
Сообщение
#2531
|
|
Почти Игрок Репутация: 1 Группа: Участник Сообщений: 28 Награды: 1 Регистрация: 31.05.2014 |
привет всем кто пот скажет для чего vs конфигураций решений такие как mixed debug
|
 
|
|
15.07.2017, 16:34
Сообщение
#2532
|
|
Почти Игроман Репутация: 91 Группа: Модератор Сообщений: 516 Награды: 4 Регистрация: 19.07.2015 |
привет всем кто пот скажет для чего vs конфигураций решений такие как mixed debug Debug -- отладочная, Mixed -- играбельная отладочная. -------------------- В армии по 01.07.2020. |
 
|
|
16.07.2017, 06:34
Сообщение
#2533
|
|
Почти Игрок Репутация: 1 Группа: Участник Сообщений: 28 Награды: 1 Регистрация: 31.05.2014 |
ну а если редактируешь движок чем его лучше собирать если не релиз
|
 
|
|
17.07.2017, 21:27
Сообщение
#2534
|
|
Опытный Геймер Репутация: 3 Группа: Участник Сообщений: 150 Награды: 3 Регистрация: 16.02.2014 |
Такой вопрос: где в движке формируется хит от химических аномалий ?
К примеру, для радиационных все понятно - в CRadioactiveZone::Affect(SZoneObjectInfo* O): ... CreateHit(GO->ID(),ID(),dir,power,BI_NONE,position_in_bone_space,impulse,ALife::eHitTypeRadiation); <- указан тип хита ... А вот для химических аномалий не могу понять\найти, где формируется хит с указанием типа "eHitTypeChemicalBurn". Вижу в аналогичной ф-ции в CAmebaZone::Affect(SZoneObjectInfo* O)(если я не ошибся, что CAmebaZone - это класс химических аномалий): ... CreateHit(pGameObject->ID(),ID(),hit_dir,power,0,position_in_bone_space,impulse,m_eHitTypeBlowout); ... вот только, ни как не нахожу где-же в m_eHitTypeBlowout записывается собственно eHitTypeChemicalBurn ? Подскажите... |
 
|
|
17.07.2017, 21:33
Сообщение
#2535
|
|
Почти Игроман Репутация: 91 Группа: Модератор Сообщений: 516 Награды: 4 Регистрация: 19.07.2015 |
ну а если редактируешь движок чем его лучше собирать если не релиз Mixed -------------------- В армии по 01.07.2020. |
 
|
|
20.07.2017, 18:32
Сообщение
#2536
|
|
Грандмастер Репутация: 118 Группа: Участник Сообщений: 1788 Награды: 4 Регистрация: 04.04.2013 |
Наткнулся на информацию, что в исходниках ТЧ 1.0007 RC1 существует баг, который вызывает вылет:
Код [error]Expression : assertion failed [error]Function : IReader::r [error]File : FS.cpp [error]Line : 317 [error]Description : Pos+cnt<=Size Может кому-то удалось разобраться в чём суть да дело? -------------------- |
 
|
|
21.07.2017, 08:34
Сообщение
#2537
|
|
Геймер Репутация: 4 Группа: Участник Сообщений: 108 Награды: 3 Регистрация: 02.02.2016 |
Сложно сказать. Данное сообщение является признаком того что движок пытается прочитать некую структуру данных, информация в заголовке которой не совпадает с фактическими данными (указатель на позицию чтения выходит за пределы размера элемента с данными). Это может быть например битый меш (чаще всего который редактировался не СДК а "вручную" ХЕКСредактором), неправильный формат заголовка файла постпроцесса, неверный формат файла погоды для уровня, битый игровой архив, неправильные заголовки анимаций, неправильно собранная библиотека материалов и это только некоторые проблемы, с которыми я сталкивался сам. Т.е., подводя итог - движок тут абсолютно не при чем, во всем виновата геймдата, и в большинстве случаев это следствие "ручного" редактирования бинарных файлов. Помогает только работа с геймдатой и визуал студией с исходниками , либо с движком, собранным с отладочной информацией. Тогда по стеку вызовов можно понять, какой элемент движка пытался через IReader прочитать неверный блок данных и что можно с этим сделать.
p.s. так что бред и порицание такому "багу"... p.s.s. - а, да... по поводу "на 1.006 все хорошо" - не хорошо там ничего... просто мы этого не видим, ибо судя по бинарникам движок 1.0006 собирался не в debug и половины проверок просто нет (#define VERIFY {}). иногда было даже смешно при разработке - грузим модель в 6 - работает, меш двигается, но как то ноги у моба неправильно передвигаются, коряво до ужаса, как на костылях. а в 7 - о! вылет! ибо в меше че то там в модели с костями перепутано, проверку сам переводил в режим постоянной. исправили - и о чудо - пошел на моб, передвигая лапками , сгибая их в коленях.. Так что еще не понятно что лучше - выпустить кривую модель с костылями, или словить вылет и исправить на нормально. Сообщение отредактировал Winsor - 21.07.2017, 08:40 |
 
|
|
21.07.2017, 10:42
Сообщение
#2538
|
|
Почти Игроман Репутация: 59 Группа: Участник Сообщений: 629 Награды: 1 Регистрация: 13.12.2016 |
Проблема возможно в партиклах. Т.е. где-то на болотах используются партиклы ЧН формата, которые ТЧ не переваривает.
|
 
|
|
21.07.2017, 12:24
Сообщение
#2539
|
|
Почти Игроман Репутация: 59 Группа: Участник Сообщений: 629 Награды: 1 Регистрация: 13.12.2016 |
Никак раньше с несколько месяцев не мог зайти сюда на форум, проблема была с РКН и провайдером. Вот, форум наконец заработал! И есть нужда вынести кое-какой вопрос на обсуждение, походу только здесь остались действительно профи.
Суть вот в чем. Задался вопросом создания оптического прицела по типу лупы, когда приближение происходит только в прицельном отверстии, а вне его приближения нет. Было бы интересно реализовать. Думаю, что многим другим этот вопрос был бы интересен. Есть кое-какие мысли на этот счет. Для реализации планируется использовать аналог линзы из главного меню, а точнее движковый класс CUIMMShniaga и его свойство m_magnifier. Разумеется, под это дело нужно свой класс специально под прицел создавать. Как оказалось, основа всего - текстура ui/ui_magnifier2.dds, в зависимости от красного канала которой можно делать очень интресные вещи. Так, можно создавать зеркальные проекции изображения на белом или черном цвете этого канала. В зависимости от альфа-канала (от 0 до 255 серого) удалось создать приближение, пока не слишком сильное, где-то в 2 раза. Вопросом этим занялся капитально, но не хватает знаний в этой области. Например, по какому принципу реализован подобный прицел у Sin! и Shoker. У кого-то есть какие идеи на этот счет? |
 
|
|
21.07.2017, 13:51
Сообщение
#2540
|
|
Грандмастер Репутация: 118 Группа: Участник Сообщений: 1788 Награды: 4 Регистрация: 04.04.2013 |
Сложно сказать Интересно. Передал автору "Золотого Шара" инфу. Надеюсь поможет. создания оптического прицела по типу лупы, когда приближение происходит только в прицельном отверстии Ты описал то, что уже реализовано в модах: GUNSLINGER Shoker Насколько мне известно, в GUNSLINGER они сделаны с помощью врезок в уже собранный двиг. А в Shoker 3.0, уже исходники двига пересобирались. Сообщение отредактировал aka_sektor - 21.07.2017, 13:52 -------------------- |
 
|
|
21.07.2017, 13:58
Сообщение
#2541
|
|
Геймер Репутация: 4 Группа: Участник Сообщений: 108 Награды: 3 Регистрация: 02.02.2016 |
создания оптического прицела по типу лупы, когда приближение происходит только в прицельном отверстии Цитата Ты описал то, что уже реализовано в модах: Насколько мне известно, в GUNSLINGER они сделаны с помощью врезок в уже собранный двиг. А в Shoker 3.0, уже исходники двига пересобирались. Идея отличная, но к сожалению авторы не первого, ни второго мода не выложили исходники таких изменений (я не с претензией, а просто констатация факта). так что для своих разработок видео бесполезно... Так что если человек это сделает, и расскажет хотя бы принцип реализации - цены не будет такой информации, намного полезнее чем видео с демонстрацией. |
 
|
|
Текстовая версия | Сейчас: 29.03.2024, 07:49 |