Объявления

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

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

Не запускается игра? Проблемы со звуком? Где, в конце концов, взять игру, скачать патчи, приложения и карты? Как установить все это? Все проблемы обсуждаем в этом разделе
offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5547
Зарегистрирован: 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)
Поблагодарили: 2162 раз.

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

Сообщение AlexSpl » 20 май 2014, 18:20

Вот информация, которая, безусловно, окажется полезной:

Код: Выделить всё
00000000 mon_info struc ; (sizeof=0x1A)
00000000 cost dw ?                               ; base 10
00000002 alpha dd ?                              ; base 10
00000006 beta db ?                               ; base 10
00000007 growth db ?                             ; base 10
00000008 health dw ?                             ; base 10
0000000A faction db ?                            ; base 10
0000000B speed db ?                              ; base 10
0000000C att db ?                                ; base 10
0000000D def db ?                                ; base 10
0000000E min_dmg db ?                            ; base 10
0000000F max_dmg db ?                            ; base 10
00000010 shots db ?                              ; base 10
00000011 sign db 5 dup(?)                        ; string(C)
00000016 prop dd ?                               ; base 2
0000001A mon_info ends

.data:004FA460 mon_info <20, 33, 17, 12, 1, 0, 2, 1, 1, 1, 1, 0, 'psnt', 0>
.data:004FA47A mon_info <150, 312, 21, 8, 10, 0, 2, 5, 3, 2, 3, 12, 'arch', 100b>
.data:004FA494 mon_info <200, 463, 23, 8, 10, 0, 4, 5, 3, 2, 3, 24, 'arch', 100b>
.data:004FA4AE mon_info <200, 639, 32, 5, 15, 0, 4, 5, 9, 3, 4, 0, 'pike', 0>
.data:004FA4C8 mon_info <250, 824, 33, 5, 20, 0, 5, 5, 9, 3, 4, 0, 'pike', 0>
.data:004FA4E2 mon_info <250, 1130, 45, 4, 25, 0, 4, 7, 9, 4, 6, 0, 'swdm', 0>
.data:004FA4FC mon_info <300, 1350, 45, 4, 30, 0, 5, 7, 9, 4, 6, 0, 'swdm', 0>
.data:004FA516 mon_info <300, 1830, 61, 3, 30, 0, 6, 10, 9, 5, 10, 0, 'cavl', 1>
.data:004FA530 mon_info <375, 2273, 61, 3, 40, 0, 7, 10, 9, 5, 10, 0, 'cavl', 1>
.data:004FA54A mon_info <600, 4704, 78, 2, 50, 0, 5, 11, 12, 10, 20, 0, 'pldn', 0>
.data:004FA564 mon_info <1000, 5822, 58, 2, 65, 0, 6, 11, 12, 10, 20, 0, 'pldn', 0>
.data:004FA57E mon_info <40, 109, 27, 10, 3, 1, 4, 3, 1, 1, 2, 0, 'gbln', 0>
.data:004FA598 mon_info <140, 299, 21, 8, 10, 1, 2, 3, 4, 2, 3, 8, 'elf_', 100b>
.data:004FA5B2 mon_info <175, 512, 29, 8, 15, 1, 3, 3, 4, 3, 4, 16, 'elf_', 100b>
.data:004FA5CC mon_info <200, 865, 43, 5, 20, 1, 6, 6, 2, 3, 5, 0, 'wolf', 1>
.data:004FA5E6 mon_info <300, 1065, 36, 4, 40, 1, 2, 9, 5, 4, 6, 0, 'ogre', 0>
.data:004FA600 mon_info <500, 2070, 41, 4, 60, 1, 4, 9, 5, 5, 7, 0, 'ogre', 0>
.data:004FA61A mon_info <600, 1921, 32, 3, 40, 1, 4, 10, 5, 5, 7, 8, 'trll', 100b>
.data:004FA634 mon_info <700, 2337, 33, 3, 40, 1, 5, 10, 5, 7, 9, 16, 'trll', 100b>
.data:004FA64E mon_info <750, 6074, 58, 2, 80, 1, 5, 12, 9, 12, 24, 0, 'cycl', 1000b>
.data:004FA668 mon_info <50, 129, 26, 8, 2, 2, 4, 4, 2, 1, 2, 0, 'sprt', 10b>
.data:004FA682 mon_info <200, 500, 25, 6, 20, 2, 2, 6, 5, 2, 4, 0, 'dwrf', 0>
.data:004FA69C mon_info <250, 716, 29, 6, 20, 2, 4, 6, 6, 2, 4, 0, 'dwrf', 0>
.data:004FA6B6 mon_info <250, 554, 22, 4, 15, 2, 4, 4, 3, 2, 3, 24, 'elf_', 100b>
.data:004FA6D0 mon_info <300, 658, 22, 4, 15, 2, 6, 5, 5, 2, 3, 24, 'elf_', 100b>
.data:004FA6EA mon_info <350, 1290, 37, 3, 25, 2, 5, 7, 5, 5, 8, 8, 'drui', 100b>
.data:004FA704 mon_info <400, 1428, 36, 3, 25, 2, 6, 7, 7, 5, 8, 16, 'drui', 100b>
.data:004FA71E mon_info <500, 2702, 54, 2, 40, 2, 5, 10, 9, 7, 14, 0, 'unic', 1>
.data:004FA738 mon_info <1500, 10114, 56, 1, 100, 2, 7, 12, 10, 20, 40, 0, 'phoe', 1011b>
.data:004FA752 mon_info <60, 154, 26, 8, 5, 3, 4, 3, 1, 1, 2, 8, 'cntr', 101b>
.data:004FA76C mon_info <200, 579, 29, 6, 15, 3, 6, 4, 7, 2, 3, 0, 'garg', 10b>
.data:004FA786 mon_info <300, 1101, 37, 4, 25, 3, 4, 6, 6, 3, 5, 0, 'grif', 11b>
.data:004FA7A0 mon_info <400, 1751, 44, 3, 35, 3, 4, 9, 8, 5, 10, 0, 'mino', 0>
.data:004FA7BA mon_info <500, 2252, 45, 3, 45, 3, 6, 9, 8, 5, 10, 0, 'mino', 0>
.data:004FA7D4 mon_info <800, 2878, 36, 2, 75, 3, 2, 8, 9, 6, 12, 0, 'hydr', 1>
.data:004FA7EE mon_info <3000, 18153, 55, 1, 200, 3, 4, 12, 12, 25, 50, 0, 'drgn', 1011b>
.data:004FA808 mon_info <3500, 22962, 68, 1, 250, 3, 5, 13, 13, 25, 50, 0, 'drgn', 1011b>
.data:004FA822 mon_info <4000, 28144, 74, 1, 300, 3, 6, 14, 14, 25, 50, 0, 'drgn', 1011b>
.data:004FA83C mon_info <50, 134, 27, 8, 3, 4, 3, 2, 1, 1, 3, 12, 'half', 100b>
.data:004FA856 mon_info <150, 493, 33, 6, 15, 4, 6, 5, 4, 2, 3, 0, 'boar', 1>
.data:004FA870 mon_info <300, 951, 19, 4, 30, 4, 2, 5, 10, 4, 5, 0, 'golm', 0>
.data:004FA88A mon_info <350, 1324, 24, 4, 35, 4, 3, 7, 10, 4, 5, 0, 'golm', 0>
.data:004FA8A4 mon_info <400, 1739, 43, 3, 40, 4, 4, 7, 7, 4, 8, 0, 'roc_', 11b>
.data:004FA8BE mon_info <600, 1935, 32, 2, 30, 4, 5, 11, 7, 7, 9, 12, 'mage', 100b>
.data:004FA8D8 mon_info <700, 2469, 35, 2, 35, 4, 6, 12, 8, 7, 9, 24, 'mage', 100b>
.data:004FA8F2 mon_info <2000, 9589, 42, 1, 150, 4, 4, 13, 10, 20, 30, 0, 'titn', 0>
.data:004FA90C mon_info <5000, 22933, 79, 1, 300, 4, 6, 15, 15, 20, 30, 24, 'titn', 100b>
.data:004FA926 mon_info <75, 203, 27, 8, 4, 5, 4, 4, 3, 2, 3, 0, 'skel', 10000000000b>
.data:004FA940 mon_info <150, 310, 21, 6, 15, 5, 2, 5, 2, 2, 3, 0, 'zomb', 10000000000b>
.data:004FA95A mon_info <200, 506, 25, 6, 20, 5, 4, 5, 2, 2, 3, 0, 'zomb', 10000000000b>
.data:004FA974 mon_info <250, 868, 35, 4, 25, 5, 4, 6, 6, 3, 4, 0, 'mumy', 10000000000b>
.data:004FA98E mon_info <300, 1056, 35, 4, 30, 5, 5, 6, 6, 3, 4, 0, 'mumy', 10000000000b>
.data:004FA9A8 mon_info <500, 1685, 42, 3, 30, 5, 4, 8, 6, 5, 7, 0, 'vamp', 10000000010b>
.data:004FA9C2 mon_info <650, 2461, 45, 3, 40, 5, 5, 8, 6, 5, 7, 0, 'vamp', 10000000010b>
.data:004FA9DC mon_info <750, 2069, 28, 2, 25, 5, 5, 7, 12, 8, 10, 12, 'lich', 10000000100b>
.data:004FA9F6 mon_info <900, 2625, 29, 2, 35, 5, 6, 7, 13, 8, 10, 24, 'lich', 10000000100b>
.data:004FAA10 mon_info <1500, 11744, 78, 1, 150, 5, 4, 11, 9, 25, 45, 0, 'drgn', 10000000011b>
.data:004FAA2A mon_info <50, 177, 35, 12, 4, 6, 5, 6, 1, 1, 2, 0, 'rogu', 0>
.data:004FAA44 mon_info <200, 805, 40, 4, 20, 6, 6, 7, 6, 2, 5, 0, 'nmad', 1>
.data:004FAA5E mon_info <1000, 1545, 62, 3, 20, 6, 5, 8, 7, 4, 6, 0, 'ghst', 10000000010b>
.data:004FAA78 mon_info <650, 5692, 60, 2, 50, 6, 6, 10, 9, 20, 30, 0, 'geni', 10b>
.data:004FAA92 mon_info <500, 1979, 40, 5, 35, 6, 4, 8, 9, 6, 10, 0, 'meds', 1>
.data:004FAAAC mon_info <500, 1732, 35, 3, 50, 6, 3, 8, 8, 4, 5, 0, 'eelm', 0>
.data:004FAAC6 mon_info <500, 1412, 28, 3, 35, 6, 6, 7, 7, 2, 8, 0, 'aelm', 0>
.data:004FAAE0 mon_info <500, 1501, 30, 3, 40, 6, 5, 8, 6, 4, 6, 0, 'felm', 0>
.data:004FAAFA mon_info <500, 1690, 34, 3, 45, 6, 4, 6, 8, 3, 7, 0, 'welm', 0>


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

P. S. Если не знаете, что означают эти числа, откройте исполняемый файл в UBP.

* * *

UPD: Оказывается "сигнатуры" монстров используются как часть имени файлов, содержащих звуки, издаваемые существом при атаке, ходьбе и т.д. Например, ELF_ATTK.82M, ELF_KILL.82M, ELF_MOVE.82M, ELF_SHOT.82M, ELF_WNCE.82M. Однако берутся префиксы всё равно не отсюда, т.к. иначе бы эльфы и орки звучали одинаково (для орков есть свои звуковые файлы с префиксом ORC_).
Последний раз редактировалось AlexSpl 27 янв 2015, 19:48, всего редактировалось 1 раз.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5547
Зарегистрирован: 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)
Поблагодарили: 2162 раз.

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

Сообщение AlexSpl » 20 май 2014, 20:11

Разобрался с "Заброшенным кораблём". Как и в Героях 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-эдиторе, ибо проще :)
Вернуться к началу

offlinelimiltless123  
Подмастерье
Подмастерье
 
Сообщения: 108
Зарегистрирован: 09 апр 2014, 15:28
Пол: Не указан
Поблагодарили: 15 раз.

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

Сообщение limiltless123 » 23 май 2014, 18:14

Цитата:
Как Вы успели догадаться, 200 - это количество скелетов (разделение на стеки происходит автоматически и зависит от координат клетки, на которой расположен объект), а 47 - это ID скелетов (см. мой предыдущий пост, там монстры расположены в порядке возрастания ID, начиная с 0 у Крестьян)


Поизучав таблицу...
А, то есть в ней нигде не указан id и для его определения надо посчитать в какой строке с веху прописана нужная сигнатура.
Например титаны прямо перед скелетами - тогда стало быть id титанов 46. Я верно мыслю, маster ?))
Вернуться к началу

offlinelimiltless123  
Подмастерье
Подмастерье
 
Сообщения: 108
Зарегистрирован: 09 апр 2014, 15:28
Пол: Не указан
Поблагодарили: 15 раз.

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

Сообщение limiltless123 » 23 май 2014, 18:28

Класс)) всё получилось :)
Осталось - скорректировать награду
( самое простое это изменить сумму денег )
я бы давал вместо 5 тыс - 100тыс
Это наверное тоже всё как то очень просто делается
так же как и в жизни) :D
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5547
Зарегистрирован: 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)
Поблагодарили: 2162 раз.

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

Сообщение AlexSpl » 24 май 2014, 01:54

Теперь давайте изменим награду за победу над стражами "Заброшенного корабля". Пусть наградой будет могущественный артефакт "Книга всезнания".

По умолчанию награда за победу над скелетами - оригинальными охранниками "Заброшенного корабля" - золото в количестве 5000 монет. Увидеть эту сумму можно во всё той же процедуре, реализующей функционал "Заброшенного корабля", - sub_44368D: перейдите по адресу 0044387E и Вы увидите там инструкцию push 1388h. Число 1388h, известное в народе как 5000, есть ни что иное, как число, отображаемое в диалоге с сообщением о победе. Если Вы всё-таки решите оставить наградой деньги, то учтите, что недостаточно изменить только это число: нужно ещё поменять и реальную сумму, добавляемую в казну королевства (см. аналогичную инструкцию чуть ниже: по адресу 00443895).

Чтобы получить в качестве награды артефакт, необходимо сделать две вещи: показать соответствующий диалог и добавить артефакт в рюкзак героя. Давайте проделаем это. Откройте игру в любом шестнадцатеричном редакторе и перейдите по адресу 0004387E. Заполните пустыми инструкциями nop фрагмент кода [0004387E .. 000438B6] так, как показано на картинке:

Изображение

Теперь пропишите в освобождённое место следующую последовательность байтов:

Изображение

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

Код: Выделить всё
push -1                      ; Эти две команды
push 0                       ; не трогаем
push -1
push 0                       ; количество золота или ID артефакта
push 7                       ; ID награды (6 - золото, 7 - артефакт)
mov edx, [ebp+msg]           ; сообщение при получении награды
push edx
push 1
push -1
mov ecx, [ebp+advManager]
call ShowMessage
push -1
push 1
mov edx, 0                   ; ID добавляемого в рюкзак артефакта
mov ecx, [ebp+HeroAddr]
call AddArtifact

Я специально написал код так, чтобы награду можно было легко изменить. Обратите внимание на подчёркнутые инструкции push 0 и mov edx, 0 на следующей картинке:

Изображение

Для того чтобы изменить получаемый в награду артефакт, достаточно просто поменять 0 на ID этого артефакта. Например, пусть вместо "Книги всезнания" герой получает "Призрачный щит" (ID = 16h). Для этого первую подчёркнутую команду меняем на 6A 16, а вторую - на BA 16 00 00 00.

ID любого артефакта можно найти здесь:

Код: Выделить всё
LM Oracle [Version 3.18.0.2 XE]
AlexSpl, 2008-2013

>> ART
010 | 16 | Artifact Name
====|====|==========================
000 | 00 | +12 Ultimate Book........
001 | 01 | +12 Ultimate Sword.......
002 | 02 | +12 Ultimate Cloak.......
003 | 03 | +12 Ultimate Wand........
004 | 04 | +12 Ultimate Shield......
005 | 05 | +12 Ultimate Staff.......
006 | 06 | +12 Ultimate Crown.......
007 | 07 | +10000 Golden Goose......
008 | 08 | +4 Arcane Necklace.......
009 | 09 | +2 Caster's Bracelet.....
010 | 0A | +2 Mage's Ring...........
011 | 0B | +3 Witch's Broach........
012 | 0C | +1 Medal of Valor........
013 | 0D | +1 Medal of Courage......
014 | 0E | +1 Medal of Honor........
015 | 0F | +1 Medal of Distinction..
016 | 10 | -2 Fizbin of Misfortune..
017 | 11 | +1 Thunder Mace..........
018 | 12 | +1 Armored Gauntlets.....
019 | 13 | +1 Defender Helm.........
020 | 14 | +1 Giant Flail...........
021 | 15 | +1 Ballista..............
022 | 16 | +2 Stealth Shield........
023 | 17 | +3 Dragon Sword..........
024 | 18 | +2 Power Axe.............
025 | 19 | +3 Divine Breastplate....
026 | 1A | +2 Minor Scroll..........
027 | 1B | +3 Major Scroll..........
028 | 1C | +4 Superior Scroll.......
029 | 1D | +5 Foremost Scroll.......
030 | 1E | +1000 Endless Sack.......
031 | 1F | +750 Endless Bag.........
032 | 20 | +500 Endless Purse.......
033 | 21 | +600 Nomad Boots.........
034 | 22 | +300 Traveler's Boots....
035 | 23 | +1 Rabbit's Foot.........
036 | 24 | +1 Golden Horseshoe......
037 | 25 | +1 Gambler's Coin........
038 | 26 | +1 Four-Leaf Clover......
039 | 27 | +500 True Compass........
040 | 28 | +1000 Astrolabe..........
041 | 29 | -50% Evil Eye............
042 | 2A | +2 Hourglass.............
043 | 2B | 200% Gold Watch..........
044 | 2C | -50% Skullcap............
045 | 2D | -50% Ice Cloak...........
046 | 2E | -50% Fire Cloak..........
047 | 2F | -50% Lightning Helm......
048 | 30 | +50% Evercold Icicle.....
049 | 31 | +50% Everhot Lava Rock...
050 | 32 | +50% Lightning Rod.......
051 | 33 | -50% Snake-ring..........
052 | 34 | 200% Ankh................
053 | 35 | 200% Book of Elements....
054 | 36 | -50% Elemental Ring......
055 | 37 | Holy Pendant.............
056 | 38 | Pendant of Free Will.....
057 | 39 | Pendant of Life..........
058 | 3A | Serenity Pendant.........
059 | 3B | Seeing-eye Pendant.......
060 | 3C | Kinetic Pendant..........
061 | 3D | Pendant of Death.........
062 | 3E | Wand of Negation.........
063 | 3F | Golden Bow...............
064 | 40 | +1 Telescope.............
065 | 41 | 10% Statesman's Quill....
066 | 42 | +10 Wizard's Hat.........
067 | 43 | +2 Power Ring............
068 | 44 | Ammo Cart................
069 | 45 | -250 Tax Lien............
070 | 46 | Hideous Mask.............
071 | 47 | +1 Pouch of Sulfur.......
072 | 48 | +1 Vial of Mercury.......
073 | 49 | +1 Pouch of Gems.........
074 | 4A | +1 Cord of Wood..........
075 | 4B | +1 Cart of Ore...........
076 | 4C | +1 Pouch of Crystal......
077 | 4D | +2 Spiked Helm...........
078 | 4E | +4 Spiked Shield.........
079 | 4F | +2 White Pearl...........
080 | 50 | +4 Black Pearl...........
081 | 51 | Magic Book...............
082 | 52 | Dummy 1..................
083 | 53 | Dummy 2..................
084 | 54 | Dummy 3..................
085 | 55 | Dummy 4..................
086 | 56 | Spell Scroll.............
087 | 57 | +3 Arm of the Martyr.....
088 | 58 | +5 Breastplate of Anduran
089 | 59 | -2 Broach of Shielding...
090 | 5A | Battle Garb..............
091 | 5B | Crystal Ball.............
092 | 5C | Heart of Fire............
093 | 5D | Heart of Ice.............
094 | 5E | +5 Helmet of Anduran.....
095 | 5F | +5 Holy Hammer...........
096 | 60 | +8 Legendary Scepter.....
097 | 61 | +2 Masthead..............
098 | 62 | Sphere of Negation.......
099 | 63 | +5 Staff of Wizardry.....
100 | 64 | +5 Sword Breaker.........
101 | 65 | +5 Sword of Anduran......
102 | 66 | Spade of Necromancy......

Также нужно не забыть поменять сообщение при получении награды. Сообщения, получаемые при посещении "Заброшенного корабля", находятся по адресу 000F6094. Будьте внимательны при их изменении. Длина Вашего сообщения не должна превышать длины оригинального сообщения (иногда есть 1-3 дополнительных символа из-за выравнивания строк, равного 4 байтам). Если Ваше сообщение оказалось меньше оригинального, не забудьте завершить его нулевым символом: 00, иначе увидите мусор, остающийся от старого сообщения.

Изображение

* * *
P. S. Вот, кстати, для справки ID монстров:

Код: Выделить всё
LM Oracle [Version 3.18.0.2 XE]
AlexSpl, 2008-2013

>> MON
10 | 16 | Creature Name
===|====|=================
00 | 00 | Peasant.........
01 | 01 | Archer..........
02 | 02 | Ranger..........
03 | 03 | Pikeman.........
04 | 04 | Veteran Pikeman.
05 | 05 | Swordsman.......
06 | 06 | Master Swordsman
07 | 07 | Cavalry.........
08 | 08 | Champion........
09 | 09 | Paladin.........
10 | 0A | Crusader........
11 | 0B | Goblin..........
12 | 0C | Orc.............
13 | 0D | Orc Chief.......
14 | 0E | Wolf............
15 | 0F | Ogre............
16 | 10 | Ogre Lord.......
17 | 11 | Troll...........
18 | 12 | War Troll.......
19 | 13 | Cyclops.........
20 | 14 | Sprite..........
21 | 15 | Dwarf...........
22 | 16 | Battle Dwarf....
23 | 17 | Elf.............
24 | 18 | Grand Elf.......
25 | 19 | Druid...........
26 | 1A | Greater Druid...
27 | 1B | Unicorn.........
28 | 1C | Phoenix.........
29 | 1D | Centaur.........
30 | 1E | Gargoyle........
31 | 1F | Griffin.........
32 | 20 | Minotaur........
33 | 21 | Minotaur King...
34 | 22 | Hydra...........
35 | 23 | Green Dragon....
36 | 24 | Red Dragon......
37 | 25 | Black Dragon....
38 | 26 | Halfling........
39 | 27 | Boar............
40 | 28 | Iron Golem......
41 | 29 | Steel Golem.....
42 | 2A | Roc.............
43 | 2B | Mage............
44 | 2C | Archmage........
45 | 2D | Giant...........
46 | 2E | Titan...........
47 | 2F | Skeleton........
48 | 30 | Zombie..........
49 | 31 | Mutant Zombie...
50 | 32 | Mummy...........
51 | 33 | Royal Mummy.....
52 | 34 | Vampire.........
53 | 35 | Vampire Lord....
54 | 36 | Lich............
55 | 37 | Power Lich......
56 | 38 | Bone Dragon.....
57 | 39 | Rogue...........
58 | 3A | Nomad...........
59 | 3B | Ghost...........
60 | 3C | Genie...........
61 | 3D | Medusa..........
62 | 3E | Earth Elemental.
63 | 3F | Air Elemental...
64 | 40 | Fire Elemental..
65 | 41 | Water Elemental.

Получить этот список можно, например, с помощью консоли LM Oracle, выполнив команду MON. Список артефактов можно получить командой ART.
Вернуться к началу

offlinelimiltless123  
Подмастерье
Подмастерье
 
Сообщения: 108
Зарегистрирован: 09 апр 2014, 15:28
Пол: Не указан
Поблагодарили: 15 раз.

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

Сообщение limiltless123 » 24 май 2014, 06:07

Спасибо, AlexSpl
Всё как всегда на высоте
и надеюсь с пользой
Вернуться к началу

offlinePuzakov73  
 
Сообщения: 3
Зарегистрирован: 27 янв 2015, 16:59
Пол: Не указан
Поблагодарили: 0 раз.

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

Сообщение Puzakov73 » 27 янв 2015, 17:06

А можно ли добавить своих героев, а не просто изменить иконки? Нет, я знаю что если уметь то можно, но я то не смогу. Да и почитав тему, вижу что есть люди которые разбираются хорошо. В общем, кто нибудь может такое сделать?
Вернуться к началу

offlineАватара пользователя
Orzie  
Ветеран
Ветеран
 
Сообщения: 698
Зарегистрирован: 12 сен 2013, 15:17
Откуда: Томск
Пол: Не указан
Награды: 3
Высшая медаль (1) 3 место 1 этапа по HMM1 (1) Бонусный шлем (1)
Поблагодарили: 457 раз.

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

Сообщение Orzie » 27 янв 2015, 19:30

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

Мы добились определённых успехов со встраиванием героя новой фракции. Однако, предстоит ещё довольно большое шаманство.

Изображение


Также не упущу случай прорекламировать другой проект с моим участием - The Succession Wars Mod, полная конверсия героев 3 в стиль героев 2 со своими особенностями и кучей нового.
Демонстрационное видео очень старой беты
Вернуться к началу

offlinePuzakov73  
 
Сообщения: 3
Зарегистрирован: 27 янв 2015, 16:59
Пол: Не указан
Поблагодарили: 0 раз.

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

Сообщение Puzakov73 » 20 фев 2015, 23:12

Orzie писал(а):

Подобная разработка ведётся в данный момент только в массивной модификации Project Ironfist

Это я знаю. Но можно ли как то обычный EXE файл изменить? Там много нулевых байт, может можно как то прописать новых героев?
Вернуться к началу

offlineАватара пользователя
Orzie  
Ветеран
Ветеран
 
Сообщения: 698
Зарегистрирован: 12 сен 2013, 15:17
Откуда: Томск
Пол: Не указан
Награды: 3
Высшая медаль (1) 3 место 1 этапа по HMM1 (1) Бонусный шлем (1)
Поблагодарили: 457 раз.

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

Сообщение Orzie » 21 фев 2015, 06:06

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

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

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

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

Пред.След.

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

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

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

cron