Редактирование движка |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
Редактирование движка |
22.01.2016, 17:18
Сообщение
#2621
|
|
Игровой Бог Репутация: 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 |
 
|
|
|
|
16.08.2017, 00:19
Сообщение
#2622
|
|
Почти Игроман Репутация: 187 Группа: Участник Сообщений: 647 Награды: 4 Регистрация: 05.05.2007 |
Я использовал версию из исходников r8384, в Debug всё как надо, а в Release версии с ним какая-то аномалия, не работает luabind::detail::is_class_object. Там вроде куда-то пропадает метатаблица. Как оказалось, этот луабинд(и более старые тоже, кстати) работает как надо только если его собрать с stlport. Сообщение отредактировал saas - 16.08.2017, 00:20 |
 
|
|
16.08.2017, 10:24
Сообщение
#2623
|
|
Игровой Эксперт Репутация: 407 Группа: Участник Сообщений: 2394 Награды: 5 Регистрация: 19.01.2009 |
Получилось починить луабинд под х64... И никакой в нём проблемы не было... А была проблема в .vcxproj... Откуда-то непонятно откуда, в определениях препроцессора А че лол, то? 1ый ответ |
 
|
|
16.08.2017, 13:46
Сообщение
#2624
|
|
Геймер Репутация: 4 Группа: Участник Сообщений: 108 Награды: 3 Регистрация: 02.02.2016 |
Уважаемые, продолжаю мучать Вас вопросами про графы. Разъясните, пожалуйста, такие моменты:
1)game.graph содержит в себе информацию о всех существующих точках графа, каждая из которых имеет координаты (level_vertex,game_vertex)? 2)в этой системе координат какая из величин уникальна в пределах всего графа - level_vertex или game_vertex? Что я имею в виду - каждый level_vertex имеет массив game_vertex-ов, значения которых уникальны в пределах одного level_vertex и могут встречаться в массиве другого level_vertex. 3)может ли быть для одного уровня несколько level_vertex-ов? 4)ну или подскажите урл, где описана система координат сталкера... Сообщение отредактировал Winsor - 16.08.2017, 13:48 |
 
|
|
16.08.2017, 14:14
Сообщение
#2625
|
|
Продвинутый геймер Репутация: 36 Группа: Участник Сообщений: 267 Награды: 3 Регистрация: 09.03.2013 |
Tron, рано обрадовался Видимо, WIN32 не имело влияния.. Я до этого собирал в релизной конфигурации, а сейчас собрал в отладочной... В общем, выходит так, что мне какой-то код надо вытащить из-под #ifdef DEBUG, для того чтобы он на х64 заработал..
Сообщение отредактировал Xottab_DUTY - 16.08.2017, 14:25 -------------------- OpenXRay – Ориентир на новое, с памятью о старом. © Collector
|
 
|
|
16.08.2017, 14:25
Сообщение
#2626
|
|
Игровое Воплощение Репутация: 394 Группа: Участник Сообщений: 4791 Награды: 4 Регистрация: 27.04.2011 |
Tron, рано обрадовался Видимо, WIN32 не имело влияния.. Фух... Успокоил после вчерашнего WIN32 всегда под виндой должен стоять, это не признак архитектуры. Уважаемые, продолжаю мучать Вас вопросами про графы. Разъясните, пожалуйста, такие моменты: 1)game.graph содержит в себе информацию о всех существующих точках графа, каждая из которых имеет координаты (level_vertex,game_vertex)? Нет, гейм.граф только граф гейм.вертексов. Там есть еще 256 точек левел-вертексов для каждого гейм.вертекса. Как я понимаю, чтобы можно было указывать верные левел.вертексы для других локаций. Цитата 2)в этой системе координат какая из величин уникальна в пределах всего графа - level_vertex или game_vertex? Что я имею в виду - каждый level_vertex имеет массив game_vertex-ов, значения которых уникальны в пределах одного level_vertex и могут встречаться в массиве другого level_vertex. гейм-вертекс уникален в пределах всего гейм.графа. А левел-вертексы и левел.граф(аи-сетка) свои для каждого уровня. Есть еще левел.гцт - указывает какие левел-вертексы к какому гейм-вертексу относятся. Цитата 3)может ли быть для одного уровня несколько level_vertex-ов? Странный вопрос. На одном уровне порядка миллионов левел-вертексов и несколько десятков гейм-вертексов. Левел-вертекс, он же аи-нода, он же квадратик в ЛЕ. гейм-вертекс, он же граф-поинт, он же флажок в ЛЕ. |
 
|
|
16.08.2017, 14:27
Сообщение
#2627
|
|
Продвинутый геймер Репутация: 36 Группа: Участник Сообщений: 267 Награды: 3 Регистрация: 09.03.2013 |
Tron, рано обрадовался Видимо, WIN32 не имело влияния.. Фух... Успокоил после вчерашнего WIN32 всегда под виндой должен стоять, это не признак архитектуры. Да я сам вчера аж переобрадовался, думаю: как оно заработало если не должно было! Есть у кого какие подозрения, насчёт того, без какого куска кода не хочет работать? Сообщение отредактировал Xottab_DUTY - 16.08.2017, 14:41 -------------------- OpenXRay – Ориентир на новое, с памятью о старом. © Collector
|
 
|
|
17.08.2017, 16:42
Сообщение
#2628
|
|
Почти Игроман Репутация: 59 Группа: Участник Сообщений: 629 Награды: 1 Регистрация: 13.12.2016 |
Надо вообще убрать для скриптового спавна все эти lv и gv. Сделать для ф-ции название уровня и координаты x,y,z. Для простого пользователя так будет гораздо проще. Собственно, так и происходит в том же самом LE.
Сообщение отредактировал Zagolski - 17.08.2017, 16:44 |
 
|
|
17.08.2017, 17:15
Сообщение
#2629
|
|
Почти Игроман Репутация: 187 Группа: Участник Сообщений: 647 Награды: 4 Регистрация: 05.05.2007 |
|
 
|
|
18.08.2017, 14:02
Сообщение
#2630
|
|
Почти Мастер Репутация: 311 Группа: Участник Сообщений: 1092 Награды: 5 Регистрация: 01.03.2011 |
Кто подключал luajit 2.0.x, поделитесь мудростью подключения.
У меня при обновлении заметно и повторяемо снижается фпс по сравнению с 1.1.8. От аллокатора (родной, DL) не зависит. Может, что-то там надо сделать еще? Сам luajit собираю прилагаемым к нему батником отдельно от движка. x86. Сообщение отредактировал K.D. - 18.08.2017, 14:46 |
 
|
|
18.08.2017, 15:21
Сообщение
#2631
|
|
Игровое Воплощение Репутация: 394 Группа: Участник Сообщений: 4791 Награды: 4 Регистрация: 27.04.2011 |
|
 
|
|
18.08.2017, 15:43
Сообщение
#2632
|
|
Почти Мастер Репутация: 311 Группа: Участник Сообщений: 1092 Награды: 5 Регистрация: 01.03.2011 |
Папку lua рядом с длл положил? Да. Впрочем, от ее наличия или отсутствия ничего не меняется. Может jit не запустился? Модуль jit загружается, могу вывести версию в лог - 2.0.5, как полагается. Сообщение отредактировал K.D. - 18.08.2017, 15:43 |
 
|
|
18.08.2017, 16:25
Сообщение
#2633
|
|
Игровое Воплощение Репутация: 394 Группа: Участник Сообщений: 4791 Награды: 4 Регистрация: 27.04.2011 |
А что status, ... = jit.status() возвращает? Дебажную конфигурацию запускал? Может в логе какие-то ошибки будут. Сообщение отредактировал abramcumner - 18.08.2017, 16:26 |
 
|
|
18.08.2017, 16:40
Сообщение
#2634
|
|
Почти Мастер Репутация: 311 Группа: Участник Сообщений: 1092 Награды: 5 Регистрация: 01.03.2011 |
Статус - true. До дебага пока не добрался.
А ты замерял скорость со старым luajit и новым у себя? |
 
|
|
18.08.2017, 16:47
Сообщение
#2635
|
|
Игровое Воплощение Репутация: 394 Группа: Участник Сообщений: 4791 Награды: 4 Регистрация: 27.04.2011 |
|
 
|
|
18.08.2017, 17:12
Сообщение
#2636
|
|
Почти Мастер Репутация: 311 Группа: Участник Сообщений: 1092 Награды: 5 Регистрация: 01.03.2011 |
Может и замедления не заметишь - я сейчас запускаю на старом ноутбуке, тут и со старым-то луатджитом 25 фпс максимум. Сам факт скорее интересен.
Еще один момент - новый luajit вроде как может проигрывать в скорости старому, если в луа запускаются C functions, особенно в циклах. Может, луабинд обновить? У меня старый 0.7 до сих пор. Сообщение отредактировал K.D. - 18.08.2017, 17:13 |
 
|
|
18.08.2017, 17:40
Сообщение
#2637
|
|
Продвинутый геймер Репутация: 36 Группа: Участник Сообщений: 267 Награды: 3 Регистрация: 09.03.2013 |
K.D., при обновлении LuaBind скорее всего столкнёшься с проблемой, с которой столкнулся OpenXRay. Вкратце, если раньше, на старом 0.7, не синтаксические ошибки в скриптах приводили к тому, что отваливался сам кривой скрипт, то у нас из-за скрипт начал валить весь движок. Опять же, вкратце, Shoker
-------------------- OpenXRay – Ориентир на новое, с памятью о старом. © Collector
|
 
|
|
20.08.2017, 01:25
Сообщение
#2638
|
|
Игрок Репутация: 1 Группа: Участник Сообщений: 37 Награды: 1 Регистрация: 15.06.2017 |
где можно взять собираемые в BCB6 исходники SDK? Чтобы именно скачал (репо например) запустил BCB и собрал. могу подкинуть свои ченджсеты из старых репо Народ подскажите - имеется ли где описание по настройке сборки сдк в борланде? Пытаюсь собрать АЕ, из исходников ЛА, не выходит.( |
 
|
|
20.08.2017, 12:02
Сообщение
#2639
|
|
Грандмастер Репутация: 118 Группа: Участник Сообщений: 1788 Награды: 4 Регистрация: 04.04.2013 |
имеется ли где описание по настройке сборки сдк в борланде? Только то что Loxotron писал: https://www.gameru.net/forum/index.php?s=&a...t&p=1620040 -------------------- |
 
|
|
21.08.2017, 16:30
Сообщение
#2640
|
|
Почти Игроман Репутация: 91 Группа: Модератор Сообщений: 516 Награды: 4 Регистрация: 19.07.2015 |
Так, обсуждение репозиториев в прошлый раз закончилось таким результатом:
Цитата [SoC] () () () () () [CS] () () () () () [CoP] () () () () () () () () () () [2.0] () Есть у кого что добавить? Сообщение отредактировал Forser - 21.08.2017, 16:40 -------------------- В армии по 01.07.2020. |
 
|
|
22.08.2017, 13:34
Сообщение
#2641
|
|
Геймер Репутация: 9 Группа: Участник Сообщений: 110 Награды: 2 Регистрация: 21.09.2014 |
Но чтоб тормоза убрать все переделывать не нужно. Начать советую с ui_base.cpp, UIStaticItem.cpp и UICustomItem.cpp, и главное - переписать под базу класс CUIStatic. После этого все полетит. хватит уже в это верить с упорством монолитовца, совершенно не в этом дело, эти классы я уже давным давно перенес и ради тестов переделывал относительно крупные классы вроде драг дропа. в свое время мне популярно объяснили что таким образом я борюсь с ветряными мельницами (по отношению к тому вопросу который я задавал), дело тут в другом. Есть у кого что добавить? на тч точно побольше живых репозиториев, чем вот один, можно на гитхабе поискать. -------------------- Cocoa not Cocaine.
|
 
|
|
Текстовая версия | Сейчас: 29.04.2024, 00:03 |