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

X-Ray extensions


Malandrinus

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

KD87,

экзешник может грузиться по любому адресу, он имеет такую же таблицу релокаций, как и dll. Будет ли грузиться по одному и тому-же адресу, зависит от версии винды и настроек системы. Начиная с висты появилась такая штука как "Address Space Layout Randomization". Т.е. винда специально грузит абы как, типа из соображений большей безопасности.

 

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

 

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

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

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

 

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


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

Akella-96,

будь лаской, не сочти за труд прочесть десяток предыдущих сообщений.

  • Нравится 1
 

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

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

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

 

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


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

sealis,

10 в данном случае - это номер версии сборки masm32 (последняя кажется 11). При этом сам ассемблер ml.exe в этих сборках имеет версию 6 с чем-то, т.е. не годится. Нужен ml.exe от Visual Studio не меньше 10-й.

 

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

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

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

 

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


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

В сотрудничестве с Shadows добавил макрос для регистрации консольной команды для чтения/записи логических значений. Использовать также, как и прочие в файле console_commands_reg_fix.asm

REGISTER_CC_FLAG g_test_flags, 20h, "test_flag_6"

g_test_flags - переменная с флажками 32 бита

20h - значение маски, которая задаёт конкретный бит (в данном случае шестой по счёту, начиная счёт с единицы)

"test_flag_6" - имя консольной команды

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

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

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

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

 

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


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

Залил недостающие файлы.

 

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

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

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

 

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


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

Shadows,

здесь ты не место врезки выбираешь, а вид макроса и значение его аргумента. На основании чего они были выбраны?

 

Артём Карпенко,

я бы попробовал частично сделать это скриптами.

1. Делаешь специальную гранату с беззвучным и невидимым взрывом с визуалом и иконкой болта.

2. Следишь за её фейковой частью и при её пропадании (взрыве), спавнишь на уровне новый болт, который уже можно будет подобрать.

 

Задачи, которые останется решить:

1. сделать так, чтобы неписи этого болта не шугались

2. заблокировать спавн в инвентарь движкового болта, что тоже потребует лезть в движок, но это уже проще, чем править движковый болт. Может даже без этого получится, если попробовать просто удалять болт из инвентаря.

 

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

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

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

 

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


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

Что за подскакивание?

 

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

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

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

 

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


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

Значит спавнишь криво.

 

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

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

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

 

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


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

Shadows,

Смотрел по аналогии как определялась машина,

Тебе надо найти функцию get_helicopter, там и будет адрес нужного значения. Макрос ты выбрал верно.

 

На шестом патче адрес аргумента и соответственно заглушки в xrgame_stubs.asm будет 1054F02C.

 

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

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

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

 

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


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

Kontro-zzz,

в смысле каждая правка в строках добавляет новый слот?

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

последняя строка в corrections_list.txt закомментирована чтоли:
;0x10438A36 5 ; скрывание миникарты

Да в таком виде правка деактивирована. Если включена, то скрывание управляется функциями level.hide_minimap() и level.show_minimap().

 

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

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

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

 

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


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

Shredder, проверь в батниках пути до каталога tools.

 

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

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

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

 

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


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

S.t.A.l.K.e.Z,

Не уверен, но тени возможно выключены консольной командой.

 

плюшки все

 

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

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

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

 

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


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

С рендерными делами не ко мне. Этим занимается в основном KD87.

 

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

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

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

 

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


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

Вампир35, судя по неполному логу, ты используешь какой-то средневековый ассемблер, который не распознаёт некоторые инструкции.

 

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

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

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

 

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


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

тот что в masm32 не годится, нужен от MS Visual Studio не младше 10-й версии.

 

Сам пользуюсь- никаких проблем.

ColR_iT

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

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

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

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

 

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


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

@S.t.A.l.K.e.Z,

Я так понимаю ассемблерный код не должен отличаться

Неправильно понимаешь. Как раз таки ассемблерный код может отличаться даже от патча к патчу того-же ТЧ. При переносе правки с ТЧ на, скажем, ЧН измениться может вообще всё. Фактически, надо повторять большую часть работы заново. Это если конкретно это место движка не изменилось по смыслу. В случае со слотами же ситуация такова, что менялось и сильно. Там надо не только делать, но и разбираться по-новой.

 

В corection_list список врезок. Смысл в каждой строке имеют только первые два числа: адрес врезки в hex формате и длина врезки как десятичное число. Этот файл нужен для работы патчера, который переносит кусочки кода из файла правок в целевой файл. Файл правок собирается таким образом, чтобы по разметке строго соответствовать целевому, так что при переносе фрагменты ложатся на своё место.

 

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

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

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

 

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


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

@Kontro-zzz,

В данный момент под ЧН ничего не планируется.

 

Что имеется в виду под вращением камеры?

 

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

 

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

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

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

 

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


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

У меня работает. Какой версии ml.exe ?



Kontro-zzz,

Вращение мышкой, после смерти гг

Сейчас вряд ли этим займусь. Не то, чтобы не хотелось. Просто нет времени.
 

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

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

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

 

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


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

Оригинальный файл присутствует? Должен иметь имя xrGame_orig.dll и, если правильный файл, то размер должен быть 7258816 байт.

 

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

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

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

 

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


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

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

 

Вот ещё такой момент. Зависит ли просадка фпс от игрового времени?

 

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

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

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

 

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


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

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