Объявления
Поздравляем
Roman2211


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

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

Не запускается игра? Проблемы со звуком? Где, в конце концов, взять игру, скачать патчи, приложения и карты? Как установить все это? Все проблемы обсуждаем в этом разделе
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 » 21 апр 2014, 17:56

Цитата:
.1.Это реально ?

Да, конечно.

Цитата:
.2. Если, тот к кому применили модифицированное проклятие - использует такие заклинания как -лечение, антимагия, снятие чар, то их не придется править, чтобы они убирала дополнительное воздействие модифицированного проклятия ?

По идее, за снятие конкретного заклинания должна отвечать одна-единственная функция, и неважно каким образом заклинание было снято: естественным образом (после того, как время действия заклинания истекло) или с помощью другого заклинания. Можно, на всякий случай, проверить, возвращается ли урон отряда к базовым значениям после снятия модифицированной "Жажды крови" кастом "Снятия магии", например.

Цитата:
зы: Или ВОЗМОЖНО сделать урон меньше минимума ???? - что тогда получается будет самый простой вариант
Простенько, но со вкусом ))))))))

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

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

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

Сообщение limiltless123 » 21 апр 2014, 18:30

Цитата:
Цитата:
зы: Или ВОЗМОЖНО сделать урон меньше минимума ???? - что тогда получается будет самый простой вариант
Простенько, но со вкусом ))))))))

Можно, к примеру, суммировать не минимальные базовые уроны для каждого воина в отряде, а половинки этих уронов. Реализация будет простейшая, а урон упадёт очень даже прилично (чуть более чем в два раза).[/quote]

Это было бы не плохо) :roll: :lol:
Вернуться к началу

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

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

Сообщение limiltless123 » 21 апр 2014, 19:23

Давайте я попробую сам сколько смогу, а вы дальше подскажите, если что

На текущий момент я сделал сейв -где я, зная магию проклятие,чародеем нападаюна армию чернокнижника с гаргулями
Открыл WinHex, сделал дамб оперативки и нашел гаргулей ( к которым собираюсь применить магию )
Вычисляю строку которая имеет отношение к минимальному урону гаргулей - получаю 02B58920 + B, что если я не ошибаюсь равно 02B5892B
Открываю IDA, прицепляюсь к игре, открываю окно дизассемблера для поиска по данной строке. Нажимаю G, ввожу 02B5892B
Нахожу строку и вешаю на неё брейкпоинт) записываю адрес на всяк случай 0x02B5892B.
Возвращаюсь в Игру (F9).
Применяю магию - проклятие на гаргулей, но ничего не происходит. Даю им сделать ход.

ИДА уловила мой брейкпоинт ( к сожалению Чернокнижник тоже применил магию проклятие, надеюсь это ни на что не повлияет )
Вот, а дальше я не знаю что надо делать
Вложения
1234.jpg
1234.jpg (146.2 КБ) Просмотров: 572
Вернуться к началу

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

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

Сообщение limiltless123 » 21 апр 2014, 19:32

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

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

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

Сообщение limiltless123 » 21 апр 2014, 19:44

Если перечитать, форум (а у меня плохо с памятью) то можно понять что так мы уже делали, на это вы мне ответили

Цитата:
Есть прогресс :D Перед Вами блок-схема фрагмента, отвечающего за генерацию базового урона отряда. Если Вы возьмёте чуть выше, увидите блок, где происходит проверка, находится ли отряд под "Благословением". Чуть ниже - блок с проверкой, находится ли отряд под "Проклятием". А нижние три блока отвечают собственно за определение урона в каждом конкретном случае. Левый блок выполняется, если отряд находится под "Благословением" (тогда берётся только максимальный урон воинов), средний - если отряд находится под "Проклятием" (тогда берётся минимальный урон воинов) и правый - если на отряде нет ни "Благословения", ни "Проклятия" (тогда берётся случайный урон из диапазона [минимальный_урон .. максимальный_урон]). Нас, разумеется, интересует средний блок, а также блок над ним. Хотя можно записать адрес инструкций, отвечающих за "Благословение", на будущее. Ищите инструкции cmp, которые выполняют проверку условий. Например, cmp eax, 3 сравнит содержимое регистра eax с числом 3 (на самом деле, будет произведено вычитание, но это пока неважно). За инструкциями cmp следуют инструкции условного перехода (такие, как, например, jz и jnz). Они-то и передают управление в нужное место в зависимости от результата сранения.

Да, совсем забыл: сравнение с нулём выполняется инструкцией test [регистр], [регистр]. Возможно, имеет смысл разобрать приведённый Вами фрагмент кода в части четвёртой статьи?


Думаю Стоит разобраться, что тут и куда вставлять 8-)
Из данного текста я только понял что нас интересует центральный блок, а так же блок над ним
Вернуться к началу

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

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

Сообщение limiltless123 » 21 апр 2014, 20:31

Патаюсь разобраться:
Вот вы написали -
Цитата:
Ищите инструкции cmp, которые выполняют проверку условий. Например, cmp eax, 3 сравнит содержимое регистра eax с числом 3
За инструкциями cmp следуют инструкции условного перехода (такие, как, например, jz и jnz). Они-то и передают управление в нужное место в зависимости от результата сранения.


Вопросы вот возникли. Тот блок в котором, синим выделена строка - это что за блок ?
- блок с проверкой, находится ли отряд под "Проклятием"
- блок с определением урона ( при условии что отряд находится под проклятием)
- или ещё что то

Далее, в каком из блоков искать инструкции cmp ?
Вернуться к началу

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

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

Сообщение limiltless123 » 21 апр 2014, 20:44

Минимальный урон у гаргулей 2

Нашлась у меня вот такая инструкция - она наверное
( но это намного ниже того места где синим выделена строка )
Вложения
12.jpg
12.jpg (114.1 КБ) Просмотров: 570
Вернуться к началу

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

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

Сообщение limiltless123 » 21 апр 2014, 20:57

После этой проверки переходим сюда
Это блок в котором нужно произвести правку ?
Вложения
1.jpg
1.jpg (26.44 КБ) Просмотров: 570
Вернуться к началу

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

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

Сообщение limiltless123 » 21 апр 2014, 21:00

А потом наверное сюда:
Вложения
2.jpg
2.jpg (38.79 КБ) Просмотров: 570
Вернуться к началу

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 » 21 апр 2014, 22:05

Чтобы понять, какие инструкции выполняются при суммировании базового урона воинов в отряде и в какой последовательности они выполняются, сразу после срабатывания брейкпоинта понажимайте клавишу F8 несколько раз (перед этим лучше убрать установленный брейкпоинт, чтобы не мешал). При каждом нажатии клавиши F8 будет выполняться ровно одна инструкция. Если в отряде, для которого вычисляется урон, будет достаточное количество воинов, через некоторое время Вы заметите некоторую закономерность :) В процессе полезно понаблюдать за значениями регистров процессора (см. окно General rigisters), а также за значениями регистров математического сопроцессора (для того, чтобы увидеть это окно, выберите пункт меню Debugger -> FPU registers).

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

Пред.След.

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

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

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