Редактирование движка |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
Редактирование движка |
22.01.2016, 17:18
Сообщение
#4701
|
|
Игровой Бог Репутация: 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 |
 
|
|
|
|
28.02.2021, 19:15
Сообщение
#4702
|
|
Продвинутый геймер Репутация: 51 Группа: Участник Сообщений: 489 Награды: 3 Регистрация: 12.11.2012 |
А редактор погоды для тч 1.0006 или 1.0007 существует? Чтобы много раз не запускать игру после каждого редактирования конфигов.
Или сделать хотя бы перезагрузку конфигов погоды. Например, сделать консольную команду reset_weather, которая позволит обновить погоду, если конфиг был изменён. Это позволит свернуть игру, изменить параметры конфигов в текстовом редакторе, а потом вернуться в игру и ввести эту консольную команду. Конфиги можно будет на лету редактировать, когда игра запущена. -------------------- |
 
|
|
28.02.2021, 19:28
Сообщение
#4703
|
|
Почти Мастер Репутация: 1357 Группа: Участник Сообщений: 1155 Награды: 5 Регистрация: 28.05.2010 |
Нету редактора и не будет. Тебе проще набросать скрипт-заменяльщик параметров погоды и настроить её на другом движке, а потом преобразовать конфиг в тч-формат.
-------------------- Сверхнарод, не желающий кормить своего уицраора шаввой, будет кормить чужого гаввахом!
--------------- ------------ ---------- -------- ------ ---- -- |
 
|
|
28.02.2021, 20:15
Сообщение
#4704
|
|
Продвинутый геймер Репутация: 16 Группа: Участник Сообщений: 222 Награды: 3 Регистрация: 28.06.2016 |
Есть ли правленый движок, который совместим с тч 1.0006 и имеет поддержку 16-ти битных анимаций зп? А лучше 32 битных. Если нет, то сложно ли дописать движок 1.0007, чтобы он начал поддерживать 32 битные анимации? Можно убрать упаковку анимаций вообще, грузить прямо float'ы из анимок. Опыт есть, есть ли такие анимации у тебя? Очень интересно как их без сдк можно сохранить) |
 
|
|
28.02.2021, 20:29
Сообщение
#4705
|
|
Продвинутый геймер Репутация: 51 Группа: Участник Сообщений: 489 Награды: 3 Регистрация: 12.11.2012 |
Очень интересно как их без сдк можно сохранить) в блендере есть экспорт omf. Я могу в экспорте заменить short/byte на float. Опыт есть, есть ли такие анимации у тебя? я хочу создавать оружие. У меня будут hud модели с такими анимациями. А остальные анимации (персонажи, монстры и т. д.) будут использовать оригинальные omf. Сообщение отредактировал Pavel_Blend - 28.02.2021, 20:31 -------------------- |
 
|
|
28.02.2021, 21:21
Сообщение
#4706
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Регистрация: 24.09.2010 |
Pavel_Blend, если кто-то подскажет что нужно сделать или поможет, то можно попробовать Тут готовый диф (копипаста поддержки 16 битных). Нетрудно переделать под другие форматы. -------------------- |
 
|
|
01.03.2021, 21:09
Сообщение
#4707
|
|
Почти Мастер Репутация: 111 Группа: Участник Сообщений: 1158 Награды: 3 Регистрация: 07.08.2015 |
Слышали о глюке UI с курсором в центре экрана, при включенном браузере?
Странно, но такого бага нет, когда расширение в игре 800Х600. Даже на любом другом, кроме текущего размера экрана. Это что значит? Сообщение отредактировал Diesel - 01.03.2021, 21:31 |
 
|
|
02.03.2021, 10:19
Сообщение
#4708
|
|
Мастер Игры Репутация: 248 Группа: Участник Сообщений: 1363 Награды: 4 Регистрация: 08.03.2010 |
Слышали о глюке UI с курсором в центре экрана, при включенном браузере? Странно, но такого бага нет, когда расширение в игре 800Х600. Даже на любом другом, кроме текущего размера экрана. Это что значит? Значит индусское решение бага - переключить экран в 800х600 а потом обратно. -------------------- Набор шейдеров для S.T.A.L.K.E.R: Shadow of chernobyl: ECB-Shaderpack -
------ Продюсер электронной музыки в стиле Dark Ambient, автор саундтрека для Desowave S.T.A.L.K.E.R.: Lost Alpha. |
 
|
|
02.03.2021, 12:12
Сообщение
#4709
|
|
Почти Мастер Репутация: 111 Группа: Участник Сообщений: 1158 Награды: 3 Регистрация: 07.08.2015 |
cjayho, а как переключить? Там в настройки не попасть. Я это через user делаю.
|
 
|
|
02.03.2021, 19:32
Сообщение
#4710
|
|
Почти Игрок Репутация: 0 Группа: Участник Сообщений: 20 Регистрация: 30.01.2019 |
Здравствуйте, подскажите как реализовать перезарядку оружия чтобы к количеству патронов в магазине прибавлялся один из ствола. Думаю в CWeaponMagazined::ReloadMagazine() надо добавлять +1 патрон, но как именно пока не разобрался. В OpenXRay подобное вроде реализовано, но посмотрев в репозитории в CWeaponMagazined::ReloadMagazine() изменений не нашел, может это где то в другом месте делать надо. Как правильней реализовать это, подскажите.
|
 
|
|
03.03.2021, 15:10
Сообщение
#4711
|
|
Мастер Игры Репутация: 248 Группа: Участник Сообщений: 1363 Награды: 4 Регистрация: 08.03.2010 |
cjayho, а как переключить? Там в настройки не попасть. Я это через user делаю. в исходниках двигла, как же еще -------------------- Набор шейдеров для S.T.A.L.K.E.R: Shadow of chernobyl: ECB-Shaderpack -
------ Продюсер электронной музыки в стиле Dark Ambient, автор саундтрека для Desowave S.T.A.L.K.E.R.: Lost Alpha. |
 
|
|
16.03.2021, 03:32
Сообщение
#4712
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Регистрация: 24.09.2010 |
Столкнулся с очередной НЕХ в ТЧ:
Вывожу сообщение на худ с 3 строками*, все нормально: Код news_manager.send_tip(db.actor, [[str1\nstr2\nstr3]], 0, "bes", 5000) Вывожу сообщение на худ с 4 строками, оно на миллисекунду появляется и потом сразу исчезает: Код news_manager.send_tip(db.actor, [[str1\nstr2\nstr3\nstr4]], 0, "bes", 5000) Разрешение экрана 1920x1080. *На самом деле каждый раз там на одну строку больше, так как стандартная функция добавляет строчку "Сообщение". Но сути это не меняет. На FHD разрешении не выводится суммарно 5 строк текста. upd: Код UIGameLog.cpp if(! (visible_rect.in(r.x1, r.y1) && visible_rect.in(r.x2, r.y1) && visible_rect.in(r.x1, r.y2) && visible_rect.in(r.x2, r.y2))) toDelList.push_back(*it); Хм. А что если добавить перед ним это... Код r.shrink (3.0f, 3.0f); Под рукой пока студии нет, чтобы проверить. Сообщение отредактировал RayTwitty - 16.03.2021, 03:46 -------------------- |
 
|
|
17.03.2021, 02:00
Сообщение
#4713
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Регистрация: 24.09.2010 |
Продолжение расследования о непоявляющихся сообщениях на худе (ТЧ).
Используя стандартный метод вывода таких сообщений give_game_news, поочередно вывел на экран с разрешением 1920х1080 девять сообщений: в первом сообщении одна строка, во втором две и так далее. + Код "1" ... "1\\n2\\n3\\n4\\n5\\n6\\n7\\n8\\n9" Незамедлительно выяснилось, что выводятся все сообщения кроме сообщения с пятью строчками. На разрешении 1280х1024 без проблем вывелись все сообщения. Поскольку на той геймдате, на которой нужно исправить сию проблему нет возможности редактирования исходников, было решено попробовать забороть трабл по старинке методом тыка. И таки получилось! По крайней мере предварительные тесты на разрешениях 1920х1080 и 1280х1024 подтвердили работоспособность Итак, в чем суть фикса: находим файл в конфигах messages_window.xml, а в нем строку Код <sp_log_list x="15" y="365" width="800" height="270" always_show_scroll="0" vert_interval="3" inverse_dir="1"/> и заменяем ее на Код <sp_log_list x="15" y="365" width="800" height="270.4" always_show_scroll="0" vert_interval="3" inverse_dir="1"/> Изменение тут: height="270.4". Поскольку первичный анализ сырцов в блокноте указал на возможные проблемы с плавающим числом при расчете пересечений, то не сложно было предположить место, куда надо ткнуть. P.S. разумеется, при наличии под рукой собираемого движка, это нужно фиксить там и я даже предположил как (в первом посте). P.S2. проверил на следующих разрешениях: + Код 2560х1440 (2К) 1920х1200 1920х1080 (FHD) 1768х992 1680х1050 1440х900 1400х1050 1366х768 1280х1024 1280x720 1024х768 800х600 Все в порядке. Правда 4К (3840x2160) у меня игра почему-то ниасилила, но можно сказать что с большой вероятностью там тоже все ок. Сообщение отредактировал RayTwitty - 17.03.2021, 05:27 -------------------- |
 
|
|
17.03.2021, 10:11
Сообщение
#4714
|
|
Ветеран Репутация: 11 Группа: Участник Сообщений: 84 Награды: 3 Регистрация: 13.09.2011 |
Изменение тут: height="270.4". Еще в 2012 году решали эту проблему. Правда, еще правился и maingame_pda_msg.xml: |
 
|
|
17.03.2021, 13:42
Сообщение
#4715
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Регистрация: 24.09.2010 |
Правда, еще правился и maingame_pda_msg.xml: Пост на АМК maingame_pda_msg править не имеет смысла. maingame_pda_msg описывает единичный элемент скролл вьюва (CUIGameLog наследуется от него) и его статик растягивается автоматически под высоту текста, после чего добавляется в скролл. Сошлись на том, что все эти изменения нужны только для файлов широкоформатников (***_16.***). Проблема не в широкоформатниках, а в пересечениях выводимых окон между собой. В CUIGameLog сделана выгрузка статиков, которые вышли за пределы видимой части (что логично), но очевидно в алгоритме есть дефект, когда нижняя граница сообщения пересекает скролл вьюв хотя бы на значение епсилона, то статик удаляется. Именно поэтому в ЗП перед расчетом добавили костыль с "ужатием" сообщения на пару попугаев, чтобы проверка пересечений не сработала. Таким образом, проблема может быть на любом разрешении и именно поэтому временный фикс с изменением высоты я проверял на большой выборке -------------------- |
 
|
|
17.03.2021, 14:32
Сообщение
#4716
|
|
Босс Репутация: 257 Группа: Участник Сообщений: 4151 Награды: 4 Регистрация: 15.08.2008 |
А есть у вас список самых крутых штук, которые наредактировали в движке за 12 лет? Навеное архивы ломятся от изменений.
|
 
|
|
17.03.2021, 14:45
Сообщение
#4717
|
|
. Репутация: 750 Группа: Участник Сообщений: 7072 Награды: 4 Регистрация: 30.07.2010 |
|
 
|
|
17.03.2021, 14:54
Сообщение
#4718
|
|
Босс Репутация: 257 Группа: Участник Сообщений: 4151 Награды: 4 Регистрация: 15.08.2008 |
Чет слабенько. |
 
|
|
17.03.2021, 15:01
Сообщение
#4719
|
|
. Репутация: 750 Группа: Участник Сообщений: 7072 Награды: 4 Регистрация: 30.07.2010 |
Это не слабенько, это величайшие достижения некоторых лиц в жизни, а иногда и предмет серьёзных разборок.
|
 
|
|
17.03.2021, 16:30
Сообщение
#4720
|
|
Босс Репутация: 257 Группа: Участник Сообщений: 4151 Награды: 4 Регистрация: 15.08.2008 |
|
 
|
|
17.03.2021, 16:54
Сообщение
#4721
|
|
. Репутация: 750 Группа: Участник Сообщений: 7072 Награды: 4 Регистрация: 30.07.2010 |
Да. Тут недавно один школьник из команды мода Back to the STALKER пришел и сказал что это - говно, так его заминусили да ещё и тему мода прикрыли.
|
 
|
|
Текстовая версия | Сейчас: 09.05.2024, 09:57 |