Объявления

Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru.
Я оторву свою задницу от всех дел и обязательно Вас активирую! :smile10:
Добро пожаловать на геройский форум! :smile25:

Редактирование ресурсов и кода игры

Не запускается игра? Проблемы со звуком? Где, в конце концов, взять игру, скачать патчи, приложения и карты? Как установить все это? Все проблемы обсуждаем в этом разделе
offlinePuzakov73  
 
Сообщения: 3
Зарегистрирован: 27 янв 2015, 16:59
Пол: Не указан
Поблагодарили: 0 раз.

Re: Heroes2 - вставляем свои аватары

Сообщение Puzakov73 » 27 фев 2015, 17:49

Orzie писал(а):

Я и говорю - это возможно в Project Ironfist, поскольку эта модификация позволяет делать с игрой теоретически что угодно.

Готового инструмента пока нет, но я мотивировал программиста графикой (старая схема), так что мы работаем над новой фракцией. Разработки, как можно понять, подразумевают добавление новых объектов карты приключений, новых героев, новых существ (инструмент для этого в моде уже есть, кстати).

Также по поводу вставки аватаров (хотя бы на замену существующим) консультироваться лучше со мной, поскольку в Героях 2 очень строгие требования по палитре и не все инструменты одинаково хорошо позволяют её контролировать. Таки да, спасибо Алексу за mtpaint :)

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

Просто дело в том, что в Project Ironfist EXE английский, и русский текст не видит.
На счет замены, то проблем вообще не возникло. Переделать фото под нужною палитру очень и очень просто, как по мне. Так же, имя любому герою тоже можно легко заменить через HEX редактор.
В принципе, это я и сделал. Но хотелось что бы и оригинальный герой был, + хотелось бы засунуть героев из первой части, которых нет во второй. :smile1:
Вернуться к началу

offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Heroes2 - вставляем свои аватары

Сообщение t800 » 08 авг 2015, 12:36

AlexSpl писал(а):

Разобрался с "Заброшенным кораблём". Как и в Героях 1, здесь присутствует баг: человеку всегда предлагается сразиться с максимальной охраной за награду в 5000 золотых монет. На самом деле, этот объект интереснее ;)

Всего существует 4 варианта:
1) 25 скелетов и 500 монет;
2) 50 скелетов и 1000 монет;
3) 100 скелетов и 2000 монет;
4) 200 скелетов и 5000 монет.

Скорее всего, для компа, как и в Героях 1, этот объект работает, как и задумано. См. процедуру sub_44368D, чтобы убедиться во всём самостоятельно.

Теперь изменим охрану. Перейдите по адресу 00443861 в IDA и Вы увидите там инструкцию push 0C8h, за которой следует инструкция push 2Fh. Установите курсор на первое число и нажмите клавишу "H". То же самое проделайте со вторым числом. Должно получиться следующее:

Код: Выделить всё
push 200
push 47

Как Вы успели догадаться, 200 - это количество скелетов (разделение на стеки происходит автоматически и зависит от координат клетки, на которой расположен объект), а 47 - это ID скелетов (см. мой предыдущий пост, там монстры расположены в порядке возрастания ID, начиная с 0 у Крестьян). Осталось только заменить 200 и 47 на другие значения, и Вы поменяете охрану. Вот так всё просто. Машинный код первой инструкции: 68 С8 00 00 00, машинный код второй - 6A 2F.

Кстати, патчить игру можно прямо из IDA, но для этого необходимо сначала немного изменить конфигурационный файл, чтобы отобразились скрытые пункты меню. Для этого откройте файл idagui.cfg в папке cfg и пропишите YES вместо NO так:

Код: Выделить всё
DISPLAY_PATCH_SUBMENU    = YES

Теперь Вам будет доступен пункт меню Edit -> Patch program. Затем скачайте скрипты за авторством Atli Gudmundsson здесь (см. PE Scripts) и распакуйте их в папку idc. Откройте базу данных IDA и запустите скрипт pe_sections. Для этого выберите пункт меню File -> IDC File... и выполните (откройте) файл pe_sections.idc, который создаст недостающие секции, в т.ч. секцию-заголовок HEADER. Далее, чтобы пропатчить игру, сперва закройте её, если она была окрыта (соответственно, перед этим не забудьте выбрать пункт меню Debugger -> Detach from process, если Вы приаттачились к игре). Затем перейдите по адресу 00443861, выберите пункт меню Edit -> Patch program -> Change byte... и замените последовательность байтов 68 С8 00 00 00 6A 2F на нужную Вам. Например, пусть "Заброшенный корабль" будут охранять Титаны в количестве 5 шт.: 68 05 00 00 00 6A 2E, где 2Eh (46) - это ID Титанов. Результат Вы увидите сразу же:

Код: Выделить всё
push 5
push 2Eh

Остался последний штрих: внесённые изменения нужно сохранить. Для этого запустите pe_write.idc, который пропишет все изменения в исполняемый файл игры. Сразу предупреждаю, что размер экзешника в этом случае сократится на 73 байта (именно столько занимает мусор в конце файла). Если же описанный вариант показался Вам сложным, делайте по старинке: с помощью любого шестнадцатеричного редактора. Сам я патчу в hex-эдиторе, ибо проще :)


Здравстуйте! Я попробую делать как вы мне сказали. Но у меня не получается :smile7:
Сперва установил IDA Free. Скачал тут https://www.hex-rays.com/products/ida/s ... ware.shtml
Потом запустил и в IDA файл Heroes2.exe в который играю в Вosbox
При открытии файла IDA о чем то заругалась

Изображение

Изображение

Изображение

Изображение

Затем я попробовал сделать переход по адресу 00443861 как вы сказали. IDA перешла, но там почему то совсем другое.

Нет никаких никаких push 0C8h и push 2Fh а что-то совсем другое.

Изображение

Изображение

И что делать? :smile7:
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: Heroes2 - вставляем свои аватары

Сообщение AlexSpl » 08 авг 2015, 12:50

Всё дело в том, что Вы пытаетесь следовать инструкции, которая предназначена только для локализованной версии Героев 2 для Windows от компании "Бука". К сожалению, универсального решения не существует :smile7:
Вернуться к началу

offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Heroes2 - вставляем свои аватары

Сообщение t800 » 08 авг 2015, 13:25

AlexSpl писал(а):

Всё дело в том, что Вы пытаетесь следовать инструкции, которая предназначена только для локализованной версии Героев 2 для Windows от компании "Бука". К сожалению, универсального решения не существует :smile7:


Понятно. А вы не подскажите почему у меня IDA ругается при открытии файла Heroe2.exe и насколько это серьезно? :smile22:
И очень смущаяет, что адреса у нее почему то все такие странные seg001: 0000 seg002:0000

И если можно еще вопрос я сейчас открыл Heroes2.exe в Debuger BosBox-а
И дал команду установить BP по указанному вами адресу 0044:3861 чтобы проверить какая команда там будет в Debuger
И Debuger сказал что поставил BP по адресу 0044:3861 но почему то в окошке команд видно что BP он установил не на 0044:3861 а на 03CD:2382 :smile8:

Изображение
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: Heroes2 - вставляем свои аватары

Сообщение AlexSpl » 08 авг 2015, 13:43

Это всего лишь способ структурировать физическую память, используемый 16-разрядными процессорами Intel. Сначала идёт адрес сегмента, потом оффсет внутри сегмента. Но к теме это не относится. Если хотите разобраться, начните с основ.
Вернуться к началу

offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Heroes2 - вставляем свои аватары

Сообщение t800 » 08 авг 2015, 13:52

AlexSpl писал(а):

Это всего лишь способ структурировать физическую память, используемый 16-разрядными процессорами Intel. Сначала идёт адрес сегмента, потом оффсет внутри сегмента. Но к теме это не относится. Если хотите разобраться, начните с основ.


Сейчас просто хочу сделать так чтобы вместо крестьян у меня вербовались кабаны :smile1:

А вот эта ругань при открывании IDА файла Heroes2.exe она очень смертельна?

The input file has extra information at the end (tail 16F0E6h loaded F274h), continue?

А потом она еще несколько раз ругается

Can't move the segment "seg0003" start from 00009910 to 00003309
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: Heroes2 - вставляем свои аватары

Сообщение AlexSpl » 08 авг 2015, 14:08

Давайте сделаем так. Вы переходите на версию 2.1 от "Буки", и я показываю Вам, как нанимать кабанов (Boars) в порядке исключения :smile1:
Вернуться к началу

offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Heroes2 - вставляем свои аватары

Сообщение t800 » 08 авг 2015, 18:07

AlexSpl писал(а):

Давайте сделаем так. Вы переходите на версию 2.1 от "Буки", и я показываю Вам, как нанимать кабанов (Boars) в порядке исключения :smile1:


Здравстуйте я в VirtualBox поставил версию от Буки для Windows

Открыл в IDA, адреса действительно другие

Изображение

И действительно по адресу 00443861 Располагается push 0C8h и push 2Fh

Изображение


Пожалуйста покажите как нанимать кабанов в хижине крестьян :smile1:

И если возможно так чтобы я потом сам тоже мог сделать и для Dos версии для
DosBox-а потому что в VirtueBox и Wine у меня игра тормозит :smile24:
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: Heroes2 - вставляем свои аватары

Сообщение AlexSpl » 08 авг 2015, 19:48

Откройте исполняемый файл HMM2PL.exe в шестнадцатеричном редакторе и перейдите по адресу 43EDB. Замените машинную команду C7 45 DC 00 00 00 00 на C7 45 DC 27 00 00 00. Разумеется, придётся исправить все тексты, чтобы они соответствовали тому факту, что к армии героя присоединяются не крестьяне, а боровы.
Вернуться к началу

offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Heroes2 - вставляем свои аватары

Сообщение t800 » 09 авг 2015, 04:17

AlexSpl писал(а):

Откройте исполняемый файл HMM2PL.exe в шестнадцатеричном редакторе и перейдите по адресу 43EDB. Замените машинную команду C7 45 DC 00 00 00 00 на C7 45 DC 27 00 00 00. Разумеется, придётся исправить все тексты, чтобы они соответствовали тому факту, что к армии героя присоединяются не крестьяне, а боровы.



Спасибо! :smile1: Сделал как вы сказали.

Окрыл файл HMM2PL.exe в В HexEditor по адресу 43EDB заменил C7 45 DC 00 00 00 00 на C7 45 DC 27 00 00 00. Потом тут же в редакторе исправил текты Хижина крестьян на Загон кабанов и в резульатете в игре получил все как на скриншотах.

Изображение

Изображение

Изображение

Вопрос, а как вы узнали этот адрес? Я понял что 00 это крестьяне, а 27 это кабаны. Но как вы узнали место где нужно менять. Я попробовал в Dоs-вском файле Heroes2.exe найтие строку C7 45 DC 00 00 00 00 ее там нет :smile24:
Вернуться к началу

Пред.След.

Вернуться в Техническая часть

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron