Цитата
Мало ли, вдруг реализация несложная или уже есть наработки
Кое-по-чему есть, но надо их привести к ERM-виду.
Итак, пока тестовая дллка:
https://dl.dropbox.com/u/61759222/HoMM/pearl.dllСобытия:
!?FU4074010 - изменить существо, поднимаемое в результате некромантии.
Параметры: x1 - номер героя (сам герой доступен через HE-1), x2 - указатель на номер существа (получить - UN:Cx2/4/?y1, задать - UN:Cx2/4/y1), x3 - указатель на структуру героя (скорее всего, он никому не понадобится, но про запас пусть будет)
!?FU4074011 - изменить процентовку некромантии.
Параметры:
x1 - номер героя
x2 - указатель на процентовку (получить - UN:Cx2/4/?y1, задать - UN:Cx2/4/y1, значение - именно проценты, т.е 30 - для 30%)
x3 - адрес структуры героя
x4 - игнорируемый служебный флаг - в оригинале он позволял включить/отключить обрезку по 100%
!?FU4074012 - количество восстанавливаемых очков маны
Параметры:
x1 - номер героя
x2 - указатель на количество восстанавливаемой маны (с учетом мистицизма и артов)
x3 - адрес структуры героя
!?FU4074013 - радиус обзора
Параметры:
x1 - номер героя
x2 - указатель на радиус обзора
x3 - адрес структуры героя
!?FU4074014 - дневной доход
Параметры:
x1 - номер героя
x2 - указатель на дневной доход (Estates+спецуха на 350 золота)
x3 - адрес структуры героя
!?FU4074015 - бонус к длительности чар
Параметры:
x1 - номер героя
x2 - указатель на величину бонуса (сумма от бонусов всех артефактов)
x3 - адрес структуры героя
!?FU4074016 - навык нападения
Параметры:
x1 - номер героя
x2 - указатель на величину навыка в процентах
x3 - адрес структуры героя
Аналогично:
!?FU4074017 - орлоглаз
!?FU4074018 - дипломатия
!?FU4074019 - сопротивление
!?FU4074020 - обучение
!?FU4074021 - интеллект
!?FU4074022 - первая помощь
!?FU4074023 - стрельба
!?FU4074024 - броня
Во всех этих случаях используется актуальное значение навыка (e.g. 0.25 для первой ступени интеллекта), домноженное на 100 - т.е. значение навыка в процентах.
!?FU4074025 - установка запаса хода героя
x1 - номер героя
x2 - указатель на количество мувпойнтов
x3 - адрес структуры героя
x4 - 1 - если герой на море, 0 - если герой на суше
!?FU4074026 - уровень заклинания (никакой-базовый-продвинутый-эксперт). Не проверено.
x1 - номер героя
x2 - указатель на уровень заклинания
x3 - адрес структуры героя
x4 - номер заклинания
x5 - биты школ магии
!?FU4074027 - цена заклинания. Не проверено.
x1 - номер героя
x2 - указатель на цену заклинания (нельзя сбить ниже 1)
x3 - адрес структуры героя
x4 - номер заклинания
x5 - адрес структуры армии героя
x6 - биты школ магии
Пример поднятия вампиров некромантами:
Код
ZVSE
!?FU4074010;
!!UN:Cx2/4/63;
Еще пример: экспертная молитва при отсутствии магии воды:
Код
!?FU4074026;
!!UN&x4=48:Cx2/4/3;