Перейти к контенту

X-Ray extensions


Malandrinus

Рекомендуемые сообщения

, я сформулирую иначе. Если надо сделать что-то для того, чтобы сэкономить кому-то сколько-то времени (а здесь именно такой случай), то нет смысла тратить на это что-то больше времени, чем кому-то сэкономишь. На самом деле своё время ценишь гораздо больше чужого, и разумное соотношение мой потраченное / чужое сэкономленное видится мне далеко не один к одному.

 

В данном случае время на данную правку не то что сопоставимо, а гораздо больше, нежели время интеграции в свой мод любого из уже доступных скриптовых средств телепорта или вообще написания с нуля примерного скриптового эквивалента. По этой самой причине я этим заниматься не буду и другим не советую.

  • Согласен 1
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

, Даже при наличии движка удобный интерфейс имеет смысл, а интерфейс имеет смысл делать в скриптах. В движке - максимум функция или консольная команда для перехода.

PS: мне кажется, ты просто не видел наш телепорт.

PPS: Вообще же, вопрос, что должно быть в движке, а что в скриптах (или точнее что в части движка написанной на C++, а что - в части движка на Lua) - это вопрос отдельный и заслуживает отдельного разговора. Правда не здесь.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

Зашибись! Гугл прикрывает лавочку с гуглкодом. До лета надо будет перегнать проект на другую платформу. Впрочем, у меня есть сильное желание не делать ничего просто потому, что проект себя изжил.

 

Что думаете?

  • Согласен 1
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

Можете такую же в будущем и для r1 запилить?

А что-то мне казалось, что на r1 самосвечение и так отлично работает. Но даже если нет, то я бы на твоём месте не рассчитывал на эту правку. На ассемблере это дюже муторно, а вот в исходниках тоже самое сделать - плёвое дело. Так что смотри лучше в эту сторону.
  • Согласен 1
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

 

 

А про jump_speed забудь. Не меняется он с помощью x-ray extensions. Точнее, поменять не сложно, но это изменение никакого эффекта не оказывает.

Не совсем так. Если поставить jump_speed в 0, то прыгать всё-таки не будет, т.е. позволяет решить проблему обездвиживания. С другой стороны действительно факт, что любое значение, отличное от нуля, в итоге приводит к тому, что скорость прыжка просто остаётся постоянной из конфига. Если глянуть исходники, то там скорость прыжка при загрузке копируется куда-то в менеджер физики актора и видимо там уже используется. Поэтому и эффекта от перезаписи нет. При этом и то первое поле в самом объекте актора тоже в одном месте читается и используется, видимо поэтому нулевое значение всё-таки влияет. Короче, разработчики пыс тут в своём репертуаре, запутали и накосячили.


 

 

камера все-равно будет дрыгаться при ходьбе, как при обычном движении

Не будет, я проверил. Эффект покачиваения (боббинг) походу начинается с какого-то порога скорости.

  • Спасибо 1
  • Нравится 1
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

Я как-то пропустил тот факт, что в ассемблере уже сделаны определённые попытки конфигурирования. Это хорошо, что сделаны, но есть замечания, которые излагаю ниже.

 

 

Можно ли использовать уже существующие дефайны, которые лежат в defines.asm (например OGSE_BUILD), для corrections_list?

 

Разный синтаксис дефайнов, так что наверное затруднительно. Да и ни к чему это, как мне кажется. Список отключаемых элементов в списке патчей и в файлах ассемблера совершенно никак не связаны, поэтому лучше сделать выбор глобальной конфигурации путём выбора исполняемого файла для сборки, а там уже по отдельности включать конфигурации ассемблера и патчера.

В ассемблере, к слову сказать, я бы сделал примерно по такой же схеме, как и в патчере. Т.е. делать условные блоки конкретных фрагментов не на основе принадлежности к моду, а конкретно для каждой фишки. А уже набор для мода формировать в некоем файле конфигурации по более глобальному условию выбора конфигурации. Поскольку как сейчас выходит, что какая-то фишка включается только в составе общего пакета фишек для мода, а если кому-то нужно включить её по отдельности, то опять надо лезть в основной код, чего хотелось бы избежать.

 

Вот ещё к этому вопросу. В ассемблере ml.exe, как и в препроцессоре gpp, можно в аргументах командной строки определять символы препроцессора. Как-то так /DOGSE_BUILD. Так что выбор конфигурации тоже можно делать, не меняя код.

 

имена дефайнов должны быть написаны, хотя бы с разделением на слова:

 

Согласен, уродливо получилось, руки дойдут - поправлю. Вообще-то здесь "длинных_мнемоничных_имён" не напасёшься. Более продуктивно будет комментировать опции в файле конфигурации.

 

 

стоит убрать файлы конфигов в подпапку configs (3312_shoc_10006\configs\), дабы не искать постоянно их в списке всех файлов.

 

Ну, тогда уж надо выносить в отдельную папку все файлы, связанные с билдом: список патчей, заготовку под dll и diff-файл, все батники и прочее. Лично у меня уже батник для сборки не найти, поскольку список исходников сильно длиннее окна TC.


Именно этот модуль я и использовал. Никакого эффекта. В OGSE он не используется, т.ч. я даже не могу быть уверен, что в нём нет каких-нибудь ошибок или неточностей.

Так а что мешает подключить и посмотреть на эффект?

Изменено пользователем Malandrinus
  • Полезно 1
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

 

 

Все выполняется, но в окне торговли и обыска никакой раскраски я не увидел.

Да, это кто-то закомментил правки на этот счёт, поэтому скриптовые действия, которые только ставят флажки с помощью хаков общего назначения, не работали. Я правки раскомментил, внёс в конфигурацию OGSE. Сейчас должно работать. У меня по крайней мере работает.

 

Вот кстати зачем вообще было кому-то комментить эти правки? Я спецом сделал так, что без скриптовых манипуляций они никому не мешают, и всё ведёт себя по дефолту. В отличие от врезок, по большей части лишний ассемблерный код в дополнительной секции никому не мешает. Я бы и вовсе не заморачивался на его конфигурирование без крайней нужды.

 

Ещё, создал там же батник для ассемблирования под конфигурацию ogse. Компилировать надо именно им, иначе немало всякого не попадёт в сборку.


 

 

ничего там не изменилось с правовым статусом link.exe и ml.exe?

 

Я этого не знаю. Сомневаюсь, что что-то изменилось.

  • Спасибо 1
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

 

 

конкретно эта правка без скриптовой обвязки ведет к неправильному отображению списка в окне торговли\обыска

Сдаётся мне, что ты это проверял очень давно. Там есть глобальные флажки, которые, если не включены, сводят код к его движковой версии. По умолчанию флажки все отключены, и без скрипта включить их некому.

 

 

И кстати.

 

 

Не самая идеальная реализация

А как бы сделал ты?


 

 

Если я правильно понял идею проекта, то его главная особенность именно в скриптовых расширениях, а уже потом в каких-то точечных геймплейных правках, которые зачастую, нужны только определенному моду.

Хм. Да там половину незакомменченных правок можно отнести ко второй категории, да и по части "нужности" - это дело индивидуальное. Мне однако вообще непонятно ранжирование правок. Проект для всего. Что хотим, то и добавляем. Главное - друг другу не мешать.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

@RayTwitty,

ага, нашёл косяк. Спасибо за наводку. Хоть логика фильтрации и раскраски и отключена, но цвет подсветки по умолчанию всё равно берётся из первого элемента пользовательского массива цветов, а массив инитился из скрипта, т.е. там были нули (и соответственно полностью прозрачный цвет). Поэтому "покрасневшие" предметы были невидимы. Сейчас я там заполнил первый элемент, так что покрасневшие предметы не пропадают.

 

 

 

Я про скрипт говорил

Так и я про скрипт. Заметны какие-то косяки?

  • Спасибо 1
  • Полезно 1
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

обновление флагов для предметов достаточно делать в трех случаях - на событиях take\drop (при открытом окне обыска\торговли) и при открытии окна инвентаря\обыска\торговли для всех предметов сразу

 

Фильтрация и подсветка зависит от положения предметов внутри инвентаря, а оно может измениться и после открытия. Поэтому делается глобальная обработка при открытии трупа/тайника и начале диалога, и также на каждый акт перемещения между частями инвентаря. Всё это в сущности разовые операции, да и сами операции - просто установки флажков, поэтому нет ничего криминального, если это случится два раза.

 

 

остался нерешенным вопрос с правкой

 

Здесь ситуация такая, что я сам понятия не имею, что реально делает эта правка. Помнится, долго ломал голову, как починить солнце, искал концы, наткнулся на странный фрагмент, который выглядел как некая заплатка. Методом научного тыка этот фрагмент вырезал, и вдруг солнце починилось. Насчёт косяков вполне допускаю. В ОГСЕ они, вроде как, не критичны, поскольку там погода в каждый момент контролируется скриптом. Технически установлена одна погода навсегда с одним единственным кадром, который динамически перемещается во времени, и динамически же устанавливаются его параметры интерполяции. Поэтому, даже если описанные косяки и присутствуют, то они вроде как не влияют, поскольку от движка остаётся только интерполяция погоды на текущем кадре, а остальное побоку. Что он там сохраняет/загружает всё равно будет переписано скриптом.

 

Короче, эту правку как раз надо убирать из "не ОГСЕ" конфигураций.

 

 

Возможно, как-то связано с функцией set_ignore_game_state_update() которая вызывается в OGSE, но непонятно для чего

 

Эта функция идёт как затычка к механизму прокрутки времени, который в ОГСЕ используется для сна. Я обнаружил, что после прокрутки времени происходят косяки с пересчётом состояний актора. Подробностей уже не помню, но лечилось это разовым игнорированием соответствующего обновления сразу после приращения времени. Для установки этого разового игнора и предназначена эта функция. Вполне допускаю, хотя уже и не помню точно, что вместе с актором пропускается обновление чего-то ещё. В любом случае, это не используется нигде больше, кроме как в реализации сна.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

Значит придумать, как исправить баг, а эту правку в топку

Сдаётся мне, что если и поймёшь, как это исправить, то вряд ли сможешь это перенести в виде патча. Рациональней будет уже забить на XE и мутить дальше из исходников.

 

как ты относишься к Mercurial репозиториям?

Я мало про них знаю. Ну вот открываю вики, читаю слова:

"разработанная для эффективной работы с очень большими репозиториями кода"

"является распределённой (децентрализованной) системой контроля версий"

"поддерживает полностью децентрализованную работу, ветвление"

 

Это всё замечательно, но конкретно этот проект - полная противоположность этих требований. XE - проект на самом деле очень маленький (особенно если рассматривать каждый подпроект по отдельности). Количество разработчиков - также очень небольшое. Ветвление - может где-то и полезно, но конкретно в этом проекте, IMHO, фича вредная. Сам проект XE вертится вокруг предельно конкретных DLL, правки обычно сугубо локальные и никак не могут, точнее не должны, вести к созданию изолированных сборок. Более того, форки в контексте нашего проекта вообще противоречат его изначальной задумке аккумулировать все правки. Вот конфигурирование проекта - дело полезное, но ветки для этого не нужны.

 

Поэтому нам больше подходит система контроля версий централизованная и желательно как можно более простая, типа SVN.

 

ЗЫ: Я всё же хочу уточнить на всякий случай, что "git - отстой" я имел в виду только в том смысле, что "для этого проекта - отстой". Так-то наверное замечательная система.

Изменено пользователем Malandrinus
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

 

 

не которые классы оружия можно спокойно вырезать

В целом не могу не согласиться. Не знаю насчёт полусотни багов, упомянутых RayTwitty (звучит как некоторое преувеличение), но ОО архитектура оружия в движке действительно корявая. Согласно канонам ООП, новый класс вводится тогда, когда необходимо создать новое поведение, а большинство стволов никаким принципиально отличным от других стволов поведением не отличаются. В принципе, ничто не мешает создать один универсальный класс оружия, который всецело бы настраивался конфигами: сколько стволов, чем они стреляют, в каком режиме, есть ли на каждый ствол режим отсечки, затворная задержка и т.п. Это всё спокойно можно настроить конфигами. И аддоны можно было бы сделать динамические, а не зафиксировать только три. Вот только это вряд ли можно сделать в рамках ассемблерных правок.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение
Тебе все 50 назвать? :D

Ну-у, назвался груздем... =)

 

Один из моих знакомых, насколько я знаю уже реализовал это на ЗП.

 

А кто и в каком проекте?

Изменено пользователем Malandrinus
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

Что-то развели оффтопик.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

@НаноБот,

а не затруднит ли тебя в таком случае сделать конфигурационный параметр, чтобы включать/выключать все правки? Наверно это подразумевает также группировку всех правок в коде. И также было бы неплохо прокомментировать там в коде эту группировку, взаимозависимости и этот параметр на предмет "целиком / не целиком". Поскольку мало кто сходу поймёт, что конкретная правка - твоя, да ещё имеет зависимость от какой-то другой.

  • Согласен 2
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

@НаноБот,

ты обозначил проблему:

Компилить надо целиком, ... Иначе работоспособность совсем не гарантируется.

 

По мне так именно настоящая проблема. Как люди узнают, что некие правки - твои, и что они зависят от неких других, тоже твоих, правок?

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

Да, без правок работать не будет. Худ и сцена отрисовываются в двух разных очередях и при этом с разным FOV (из-за этого и смещение вперёд). Разрабы ТЧ сделали так, что шейдер самосвечения всегда срабатывает в очереди сцены, даже если принадлежит худовой модели. Свинтусы они, разрабы эти. Косяк в исходниках лечится парой строк, а так вышла одна из самых мерзких и нудных правок.

  • Спасибо 1
  • Полезно 1
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

@macron, а это разве не чисто шейдерная правка?

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

@macron, по сути правки конечно надо у KD уточнять, но почему её для r1 нет вполне понятно. Правки делались в рамках OGSE, а первый рендер мы оттуда убрали.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...