Malandrinus 624 Опубликовано 31 Июля 2012 KD87, экзешник может грузиться по любому адресу, он имеет такую же таблицу релокаций, как и dll. Будет ли грузиться по одному и тому-же адресу, зависит от версии винды и настроек системы. Начиная с висты появилась такая штука как "Address Space Layout Randomization". Т.е. винда специально грузит абы как, типа из соображений большей безопасности. С API всё конечно решаемо, просто мне крайне лень этим заниматься в ассемблере. К тому же, мне вроде особенно и не надо. И да, ты прав, про функции, уже имеющиеся в таблице импорта я как-то не подумал. В конечном счёте, можно получить любые функции системы динамически, вообще не имея ничего. Но ещё раз, проще всего это всё делается за пределами ассемблера. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 624 Опубликовано 10 Августа 2012 Akella-96, будь лаской, не сочти за труд прочесть десяток предыдущих сообщений. 1 Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 624 Опубликовано 24 Августа 2012 sealis, 10 в данном случае - это номер версии сборки masm32 (последняя кажется 11). При этом сам ассемблер ml.exe в этих сборках имеет версию 6 с чем-то, т.е. не годится. Нужен ml.exe от Visual Studio не меньше 10-й. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 624 Опубликовано 1 Сентября 2012 (изменено) В сотрудничестве с Shadows добавил макрос для регистрации консольной команды для чтения/записи логических значений. Использовать также, как и прочие в файле console_commands_reg_fix.asm REGISTER_CC_FLAG g_test_flags, 20h, "test_flag_6" g_test_flags - переменная с флажками 32 бита 20h - значение маски, которая задаёт конкретный бит (в данном случае шестой по счёту, начиная счёт с единицы) "test_flag_6" - имя консольной команды Изменено 1 Сентября 2012 пользователем malandrinus Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 624 Опубликовано 7 Октября 2012 Залил недостающие файлы. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 624 Опубликовано 12 Ноября 2012 Shadows, здесь ты не место врезки выбираешь, а вид макроса и значение его аргумента. На основании чего они были выбраны? Артём Карпенко, я бы попробовал частично сделать это скриптами. 1. Делаешь специальную гранату с беззвучным и невидимым взрывом с визуалом и иконкой болта. 2. Следишь за её фейковой частью и при её пропадании (взрыве), спавнишь на уровне новый болт, который уже можно будет подобрать. Задачи, которые останется решить: 1. сделать так, чтобы неписи этого болта не шугались 2. заблокировать спавн в инвентарь движкового болта, что тоже потребует лезть в движок, но это уже проще, чем править движковый болт. Может даже без этого получится, если попробовать просто удалять болт из инвентаря. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 624 Опубликовано 12 Ноября 2012 Что за подскакивание? Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 624 Опубликовано 12 Ноября 2012 Значит спавнишь криво. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 624 Опубликовано 15 Ноября 2012 Shadows, Смотрел по аналогии как определялась машина, Тебе надо найти функцию get_helicopter, там и будет адрес нужного значения. Макрос ты выбрал верно. На шестом патче адрес аргумента и соответственно заглушки в xrgame_stubs.asm будет 1054F02C. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 624 Опубликовано 12 Марта 2013 Kontro-zzz, в смысле каждая правка в строках добавляет новый слот? нет, это одна правка из нескольких частей. Впрочем, там есть недоделки. Количество слотов увеличивается, но это криво вписывается в интерфейс. В чём именно там была проблема уже не помню. Давно делал. последняя строка в corrections_list.txt закомментирована чтоли:;0x10438A36 5 ; скрывание миникарты Да в таком виде правка деактивирована. Если включена, то скрывание управляется функциями level.hide_minimap() и level.show_minimap(). Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 624 Опубликовано 15 Марта 2013 Shredder, проверь в батниках пути до каталога tools. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 624 Опубликовано 2 Мая 2013 S.t.A.l.K.e.Z, Не уверен, но тени возможно выключены консольной командой. плюшки все Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 624 Опубликовано 2 Мая 2013 С рендерными делами не ко мне. Этим занимается в основном KD87. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 624 Опубликовано 2 Мая 2013 Вампир35, судя по неполному логу, ты используешь какой-то средневековый ассемблер, который не распознаёт некоторые инструкции. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 624 Опубликовано 3 Мая 2013 (изменено) тот что в masm32 не годится, нужен от MS Visual Studio не младше 10-й версии. Сам пользуюсь- никаких проблем. ColR_iT Изменено 3 Мая 2013 пользователем ColR_iT Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 624 Опубликовано 6 Мая 2013 @S.t.A.l.K.e.Z, Я так понимаю ассемблерный код не должен отличатьсяНеправильно понимаешь. Как раз таки ассемблерный код может отличаться даже от патча к патчу того-же ТЧ. При переносе правки с ТЧ на, скажем, ЧН измениться может вообще всё. Фактически, надо повторять большую часть работы заново. Это если конкретно это место движка не изменилось по смыслу. В случае со слотами же ситуация такова, что менялось и сильно. Там надо не только делать, но и разбираться по-новой. В corection_list список врезок. Смысл в каждой строке имеют только первые два числа: адрес врезки в hex формате и длина врезки как десятичное число. Этот файл нужен для работы патчера, который переносит кусочки кода из файла правок в целевой файл. Файл правок собирается таким образом, чтобы по разметке строго соответствовать целевому, так что при переносе фрагменты ложатся на своё место. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 624 Опубликовано 10 Мая 2013 @Kontro-zzz, В данный момент под ЧН ничего не планируется. Что имеется в виду под вращением камеры? "Скрестить" классы невозможно. Известный фикс с биноклем основан на том, что сам класс бинокля образован на основе пистолета, на основе которого делаются снайперки. Там разблокируют биноклю возможность стрелять, и получается "суперснайперка". При наличии ряда правок такое можно сделать и без этого фикса. Нужны следующие фишки: определение состояния прицеливания оружия, колбеки на клавиши (точнее на ролик мыши) и динамическое изменение FOV. В ТЧ всё это добавлялось, а в ЧН уже не помню. Если прицел с изменяемым FOV не нужен, то тогда и вовсе можно обойтись одними скриптами, поскольку рамки вокруг целей нарисовать можно и так, а состояние прицеливания можно грубо определить на основе изменения FOV. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 624 Опубликовано 16 Мая 2013 У меня работает. Какой версии ml.exe ? Kontro-zzz,Вращение мышкой, после смерти ггСейчас вряд ли этим займусь. Не то, чтобы не хотелось. Просто нет времени. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 624 Опубликовано 16 Мая 2013 Оригинальный файл присутствует? Должен иметь имя xrGame_orig.dll и, если правильный файл, то размер должен быть 7258816 байт. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение
Malandrinus 624 Опубликовано 16 Мая 2013 По поводу теней от травы. Отрисовка теней - вообще ресурсоёмкая операция, потому вероятно и отключили отрисовку теней для каждой травинки. Рекомендую проверить настройки дальности отрисовки травы и плотности травы. Также надо проверить качество размытия теней. Снижение фпс конечно будет по-любому, но при разумном балансе всех параметров снижение будет в разумных пределах. Вот ещё такой момент. Зависит ли просадка фпс от игрового времени? Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Поделиться этим сообщением Ссылка на сообщение