Опции HE:   A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Ресивер HE (опции героя)


!!HE#:XXXX; – герой с номером #. Герой - тип 34.
Каждый герой в игре имеет свой уникальный номер.
Расширение синтаксиса:
!!HE#1/#2/#3:XXXX; – герой в определённых координатах X Y L
!!HE-1:XXXX; – герой, активировавший триггер. Данная команда существенно упрощает скрипт, так как вам не нужно при каждом вызове ресивера HE сохранять координаты героя.
Используется для изменения характеристик, войск, инвентаря, навыков, местоположения и просто всего, что можно вообразить, над героем. Также позволяет наложить проклятье или благословение.
Комментарий: вы можете использовать косвенные ссылки на героев (копии информации):

См. также: триггер !?HE


A#
Получить/дать/убрать артефакт
        # – номер артефакта
Если # > 0, артефакт будет добавлен
Если # < 0, артефакт будет удалён из всех слотов.
Замечание: полученный этой командой артефакт не будет одет автоматически, а будет помещён в рюкзак. Если же рюкзак заполнен полностью (содержит 64 артефакта), то герой указанный командой артефакт не получит.
Пример (показать)

Комментарий (показать)


A1/$1/$2
Надеть артефакт
        $1 – номер артефакта
        $2 – позиция, куда надевать
Если слот занят, флаг 1 устанавливается на 0.
Чтобы узнать, какой артефакт размещён в определённом слоте, используйте синтаксис получения первого параметра ($1):
!!HE:A1/?@/x; - где @ - переменная для сохранения результата, x - номер проверяемого слота. Если артефакта нет, значение переменной равно -1.
Комментарий (показать)


A2/$1/?$2/?$3
Подсчитать кол-во артефактов (получить или проверить):
        $1 – номер артефакта
        $2 – получить кол-во артефактов $1 у героя (получить или проверить)
        $3 – получить кол-во артефактов $1, надетых на героя (получить или проверить)
Кол-во невозможно установить. При попытке установки кол-ва ничего не произойдёт.


A3/$1/$2/$3
Удалить несколько копий артефакта:
        $1 – номер артефакта 
        $2 – кол-во копий для удаления
        $3 – удалить сначала надетые (1) или в рюкзаке (0)
Комментарий (показать)

Пример от Algor'а:
Корректное удаление надетого свитка с заклинанием.
Заклинание у героя удалится, если оно давалось только этим свитком.


A4/#
Надеть артефакт #. Теперь вы можете добавлять заклинания артефактов автоматически. Также решена проблема заблокированных слотов. Фактически, здесь используется внутренняя функция получения артефакта. Если артефакт может быть надет, он надевается.


B0/$
Установить/получить имя героя
        $ - текстовая переменная.
Замечание: в биографии имя не изменится!


B1/$
Установить/получить биографию героя
        $ - текстовая переменная.
Если биография или имя героя такое же, как и по умолчанию, вы получите пустую текстовую переменную, а не стандартный текст.


B2/$
Установить/получить класс героя
        $ – класс (0..17)
Разделите полученное значение на 2 и вы получите тип города героя.
Дополнительно (показать)

Значение 18, 19, 20 установит внешний вид героя на лодку - тёмную, светлую и узкую соответственно. При значении 18 можно заходить в окно героя, в случае 19 и 20 это приведёт к критической ошибке (даже простая наводка курсора на изменённого героя), вступление в битву тоже вызовет критическую ошибку во всех трех формах. Класс 21,22 представляет собой след от движения лодки игрока, любые вызовы программы на получение класса героя закончатся вылетом игры (наведение курсора, заход в окно героя и т.п.). Класс выше 23 - почти то же, что и 21, но со следующим по номеру флагом игрока поверх флага текущего. В общем, идёт по DEF'ам из H3sprite.lod, добавляя/заменяя героя новой анимацией.
Пример: Давайте узнаем, отталкиваясь от класса героя, кто он по жизни ;-)

Стоит отметить, что существует возможность изменения названия классов героев, используя возможности ERA.
Вот пример готовой функции от igrik'а: (показать)


B3/?$
Получить оригинальную биографию героя в текстовую переменную (z).
Эта команда всегда будет получать текст по умолчанию, независимо от того, изменяли ли вы текст биографии или нет.
Вы можете использовать только синтаксис получения, как например:


C0/#1/$2/$3
Изменить монстров
        #1 – номер слота (0..6)
        $2 – тип монстра
        $3 – кол-во монстров


C1/#1/$2/$3
Изменить монстров: все монстры типа # будут изменены на
        $2 – тип монстра
        $3 – кол-во
Пример (показать)

Если использовать значение -1 в $2 или 0 в $3, все существа данного типа будут удалены из героя: Вы также можете получить кол-во ($3). Нахождение кол-ва позволяет быстро проверить, имеет ли герой существ данного типа, без использования циклов. Но, если герой имеет несколько отрядов, вы получите кол-во существ данного типа в последнем (!) слоте с такими монстрами.
Например, активный герой имеет такое войско:


Расширение синтаксиса для команд C0 и C1:
C#/#1/$2/$3/$4/$5
        $4 – кол-во опыта (по умолчанию 0)
        $5 – модификатор опыта (по умолчанию 0)

        Поддерживаемые значения для $5:
Мод 0 (показать)

Используйте этот мод для добавления существ, уже имеющих опыт. Новые существа будут иметь опыт в кол-ве $4, но старые существа (если вы "добавляете" монстров) сохранят свой опыт. Результат кол-ва опыта на существо можно подсчитать:

Опыт = [ОпытСтарых * кол-воСтарыхСуществ + ОпытНовых * кол-воНовых] / [кол-воСтарых + кол-воНовых]

  1. Скажем, вы имеет стек Монахов с 1000 опыта (здесь и далее - на существо) и хотите добавить 5 Монахов с опытом 3000.
    Результатом будет: (1000*10+300*5)/15=1666
  2. Если вы добавляете существ разных типов, учитывается только опыт новых существ.
    Так, если вы имеете 10 Грифонов с опытом 1000 и хотите добавить 5 Монахов с опытом 3000. Результатом будет 3000;
Это используется во избежание проблемы, когда вы сдвигаете стеки из одного слота в другой и опыт смешивается.
Скажем, вы помещаете стек Грифонов в слот 1 и затем изменяете их в Монахов, случайно забыв изменить опыт (так что это стек Монахов, хотя система думает, что это стек Грифонов). Теперь, добавляя Монахов, система будет думать, что вы изменили тип существ и возьмёт только опыт новых существ.
Исключение: если стек ещё не получил опыта, опыт будет усреднён, как будто вы добавили их без смены типа (как мод 1, см. ниже).
Замечание: не используйте параметр "d" для $4 с модом 0.

Мод 1 (показать)
Похож на мод 0, за исключением того, что здесь нет проверки на тип существа. Так что команда всегда работает в соответствии с формулой (выше), независимо от опыта и имеющихся у вас существ.
Пример:
Вы хотите установить существ в слоте как Копейщиков и они должны иметь опыт (на существо) предыдущих существ слота (кто бы они ни были) плюс 7 новых существ с 50 очками опыта. Замечание: не используйте параметр "d" для $4 с модом 1.

Мод 2 (показать)
Используйте этот мод для установки опыта для всего стека.
Стек будет иметь $4 опыта.
Пример: Замечание: если вы используете параметр "d" для $4 с модом 2, опыт будет добавлен к существующему (как мод 3, см. ниже).

Мод 3 (показать)
Используйте этот мод для добавления опыта стеку.
Пример: Новые существа примут опыт старых существ плюс $4. Опыт не распределяется.
Так, если вы имеете стек с 10 Монахами с 1000 опыта, хотите добавить 5 монахов и добавить 3000 опыта модом 3, результатом будет: 1000+3000=4000.
Пример: Вы также можете использовать этот мод для добавления существ к стеку без уменьшения опыта стека, либо изменения типа существ стека, сохраняя опыт неизменным.
Вы можете использовать этот модификатор для временного изменения типа существа, так как после возврата в обычное состояние он сохранит весь свой опыт.Пример: Замечание: если вы используете параметр "d" для $4 с модом 3, работа идёт так:
ОпытСтека = СтарыйОпыт+СтарыйОпыт+ДополнительныйОпыт.
Так, если вы имели стек с 2000 опыта, и добавите таким методом 1000 опыта, получится 2000+2000+1000=5000.
Затем, если вы добавите ещё 1000 опыта, получите 5000+5000+1000=11000.

Мод 4 (показать)
Используйте этот мод для добавления уровней опыта (рангов) стеку.
Новые существа получат опыт старых существ плюс опыт, равный рангу $4.
Опыт не распределяется.
Так, если вы имели стек из 10 Монахов с 1000 опыта и хотите добавить 5 Монахов и 3 уровня опыта, результат 1000+3ранга = ????
Используем следующие подсчёты:
 - мы имеет E опыта
 - получаем текущий уровень опыта стек L0
 - получаем кол-во опыта E0 для уровня L0
 - получаем: dE как E-E0
 - мы имеем бонус уровня L
 - получаем результирующий уровень L1 как L0+L
 - получаем кол-во опыта E1 для уровня L1
 - получаем финальный опыт E как E1+dE
Пример: Замечание: не используйте параметр "d" для $4 с модом 4.

Мод 5 (показать)
Используйте этот мод, если вы улучшаете существ.
Похож на мод 3, но опыт новых существ получается эквивалентным улучшению существ. Новый опыт будет старым опытом, помноженный на множитель улучшения плюс бонус опыта.
Пример: Замечание: не используйте параметр "d" для $4 с модом 5.

Мод 10 (показать)
Используйте этот мод для добавления дополнительных существ с уровнями (рангами) опыта.
Это похоже на мод 0, но $4 показывает дополнительные уровни (ранги) опыта новых существ.
Пример: Замечание: не используйте параметр "d" для $4 с модом 10.

Мод 11 (показать)
То же, что и мод 10, но независимый от типа существ.
Похож на мод 1, но вы добавляете существ с рангом опыта $4.
Пример:

Мод 12 (показать)
Используйте этот мод для установки уровня опыта (ранга) всему стеку.
Похож на мод 2, но $4 означает уровень опыта (ранг)
Пример:

Мод 13 (показать)
Используйте этот мод для установки эквивалентного процента опыта новому типу существ.
Похож на мод 3, но предполагает, что вы изменили тип существа и опыт новых существ берётся как процент имеющегося у старых существ.
Так, если вы имеет стек Монахов с X опыта и изменяете стек на Ангелов, новым опытом будет X*МаксАнгелов/МаксМонахов+dE, где МаксАнгелов это максимальный опыт Ангелов и МаксМонахов - максимальный опыт Монахов, dE - это добавляемый опыт.
Пример:
НовыйОпыт = [СтарыйОпыт]*[ОпытНовыхСуществНа10Ранге] / [ОпытСтарыхСуществНа10Ранге + ЭкстраОпыт].

Мод 14 (показать)
Похож на мод 13, но добавляет уровни опыта (ранги).
Пример:


C2/#1/#2/#3
Добавить новый стек монстров герою:
        #1 – тип монстра
        #2 – кол-во монстров
        #3 = 1 (спросить человека о присоединении, если все слоты заняты), = 0 (использовать ИИ, т.е. если все стеки заняты, заменить менее значимый автоматически)


C#1/#2/…/#14
Изменить монстров: дать игроку выбор монстров. Используется команда C с 14 параметрами:
        #1 – тип монстра 1 (-1 значит нет) 
        #2 – кол-во монстров 1
        #3 – тип монстра 2 (-1 значит нет)
        #4 – кол-во монстров 2
        #5 – тип монстра 3 (-1 значит нет)
        #6 – кол-во монстров 3
        #7 – тип монстра 4 (-1 значит нет)
        #8 – кол-во монстров 4
        #9 – тип монстра 5 (-1 значит нет)
        #10 – кол-во монстров 5
        #11 – тип монстра 6 (-1 значит нет)
        #12 – кол-во монстров 6
        #13 – тип монстра 7 (-1 значит нет)
        #14 – кол-во монстров 7
Пример (показать)

Это будет представлено в виде диалога для помещения существ на карту:


D
Вызвать диалог для улучшения армии героя (нет параметров)


E$
Установить/проверить/получить опыт героя в $
Таблица опыта героев


E$1/$2
Установить/проверить/получить опыт героя (дополнительный синтаксис)
        $1 – очки опыта
        $2 – уровень героя
Пример (показать)

E$1/$2/1
То же, что и HE:E$1/$2, но без обновления. Для стандартного синтаксиса происходит обновление, даже при простой проверке.


F$1/$2/$3/$4
Установить/проверить/получить первичные навыки
        $1 – атака
        $2 – защита
        $3 – сила магии
        $4 – знания


F?$1/?$2/?$3/?$4/1
Дополнительный синтаксис для проверки первичных навыков. Добавьте /1 в конец команды, и получите значения без влияний артефактов.
        $1 – атака
        $2 – защита
        $3 – сила магии
        $4 – знания
Вы можете использовать только синтаксис получения или проверки.
Пример (показать)

Команда отнимает только стандартные значения артефактов. Если артефакт был изменен с помощью скрипта, возможно некорректное получение значений.
Также вы можете установить значения, но ничего не произойдёт.


G$
Установить начальные очки передвижения героя
        $ – начальные очки передвижения
Если вы установите параметры HE:W и HE:G одинаковыми, вы сможете копать Грааль.


H$1/$2/$3/$4
Установить армию нанимаемого героя.
        $1 – номер слота (0, 1, 2)
        $2 – тип монстра (-1 – нет монстра)
        $3 – мин. кол-во монстров
        $4 – макс. кол-во монстров (может быть равно $3 для определённого числа)
Команда может установить армию героя, которого нет в таверне на данный момент ни у одного из игроков. В случае, если он находится в таверне, никаких изменений в его стартовой армии не произойдёт до следующей недели.
Пример (показать)


I$
Установить/проверить/получить кол-во маны.
Используйте параметр "d" для упрощения изменения, если вы хотите добавить или отнять ману.
Кол-во маны может быть отрицательным.
Пример (показать)

I$/1
То же, что и HE:I$, но без обновления. В стандартном синтаксисе вызывает обновление даже если вы делали проверку.


K
Немедленно убить героя (к примеру, при посещении колодца - упасть в него :) )

K1
То же, что и HE:K, но без обновления


L#^Портрет.pcx^
Установить портрет героя из внешних файлов
        # = 1 – установить маленький портрет – файл.pcx
        # = 2 – установить большой портрет – файл.pcx
Комментарии (показать)

Файл.pcx будет искаться в директории DATA, но вы можете изменить поддиректорию.
Например: ^p\name.pcx^ - в папке p директории DATA. Или ^..\maps\1.pcx^ - в директории Maps в игровой папке.
ВАЖНО! Полная длина имени файла не может иметь более 12 символов (вместе с путём к папке: точки и слэши учитываются).
Вы также можете установить портрет из файла DATA\H3bitmap.lod, просто указав полное имя портрета.
Примеры: Экран будет обновлен автоматически, если вы измените портрет героя.
Требования к картинке: 256 цветов; размеры:  58×64 (большой), 48×32 (малый)

Стоит отметить, что существует возможность получения портретов героя, используя возможности ERA.
Вот пример готовой функции для этого: (показать)


L0/$
Установить герою портрет, как у героя $


L3
Восстановить оригинальные портреты
Пример:


L4/$
Установить оба портрета из игры от героя $


L5/$1/$2
Установить портрет героя из переменной
        $1 – текстовая переменная (z) для большой картинки (0 – не менять)
        $2 – текстовая переменная (z) для маленькой картинки (0 – не менять)


M#1/$2
Установить/проверить/получить статус заклинания у героя
        #1 – заклинание
        $2 – значение (0 = удалить, 1 = дать (при проверке на присутствие 1 = есть, 0 = нет))
Комментарий (показать)

Для проверки, изучено/получено заклинание или именно изучено, существуют 2 метода:
  1. Вы можете проверить на заклинание, которое герой изучил ИЛИ имеет на свитке или артефакте с заклинанием, используя!!HE:M#/?$.
    В любом случае, переменная станет = 1, если герой имеет заклинание.
  2. Вы можете проверить на заклинание, которое выучено героем, но НЕ со свитка или артефакта, используя !!HE:M=#/1.
    Флаг 1 будет установлен на Истину (1), если герой изучил заклинание.
    Если герой знает заклинание благодаря свитку/артефакту, флаг 1 будет установлен на Ложь (0).


N?$
Проверить или получить номер героя.
Не пытайтесь установить номер героя. Это не сработает, или вызовет нестабильность.


O$
Установить/проверить/получить хозяина героя (0..7).
        $ – номер игрока, контролирующего героя.
Если героя нет на карте, или он не нанят, хозяин -1.
Комментарии (показать)

Если вы попытаетесь дать героя игроку, уже имеющему 8 активных героев, команда будет просто отменена. Проверьте героев игрока для гарантии того, что передача завершится успешно.
Используя второй фантомный параметр в этой команде (например, !!HE..:O5/1), вы мгновенно поменяете хозяина героя. Вы можете использовать это для установки незанятого героя для защиты нейтральных монстров, но убедитесь в возвращении к хозяину -1 после битвы. Если вы измените хозяина ненанятого героя путём временного хозяина (от 0 до 7), это может быть узнано через HE:O, но !!BA:O будет получать значение -1.


P$1/$2/$3
Установить/проверить/получить координаты героя (если установить координаты, это будет что-то вроде телепорта). Также вы можете "вытащить" в игру ненанятого героя, указав координаты его появления и затем назначив ему хозяина.
Расширение синтаксиса:
P$1/$2/$3/$4
Переместить героя противника (не вашего цвета) со звуком и операцией обновления:
        если $4<>0 – переместить героя со звуком и обновлением (аля Телепорт)
        если $4 = 0 – старый стиль (герой немедленно перемещается на точку)
Комментарии (показать)


R0/$
Установить/проверить/получить мораль героя (до следующей битвы)


R1/$
Установить/проверить/получить удачу героя (до следующей битвы)


R2/$
Установить/проверить/получить пол героя
        $ = 0 – мужчина
        $ = 1 – женщина


R3/$1
Установить/проверить/получить доступность героя в таверне для ВСЕХ игроков.
        $1 – разрешить (1) или запретить (0) героя для найма
Расширение синтаксиса:
R3/$1/$2
Установить/проверить/получить доступность героя в таверне для каждого игрока.
        $2 – игроки, которые могут нанять
$2 имеет значение, только если вы разрешили героя.


R4/$
Установить/проверить/получить возможность расстановки войск в начале боя при наличии тактики.
Пример команды - кнопка внизу справа в окне героя.
        $=1 – разрешить
        $=0 – запретить


R5/$
Установить максимум морали
        $ = 0 – не установлена
        $ = 1 – установлена


R6/$
Установить максимум удачи
        $ = 0 – максимальная удача не дана
        $ = 1 – максимальная удача дана


R7/$
Установить модификатор посещённого объекта, временно меняющего параметры героя.
        $ = двоичное слово, битовая маска
Комментарий (показать)

В большинстве случаев, установка или очистка этих бит не изменит удачу, мораль, очки хода или магии - она лишь установит (либо очистит) запись о посещении героем объекта в данном периоде, например, на этой неделе, до следующей битвы, и т.д. Команда установит или очистит текст, ассоциируемый с посещением этого объекта, если вы кликнете на удаче или морали в окне героя (например, "Посещение храма +1"), но вы по-прежнему будете должны установить временную удачу или мораль командами HE:R0 и HE:R1.


R#1/$/#2
Команда обновления (для всех команд HE:R)
        #1 – номер команды R
        $ – значение
        #2 – флаг обновления
             = 0 – нет (по умолчанию)
             = 1 – да
Экран приключений не обновляется автоматически после команд HE:R. Если вы хотите обновить его, используйте этот синтаксис с флагом "обновить" (#2 = 1)


S$
Установить/проверить кол-во вторич.навыков для показа.
        $ – кол-во навыков, которые будут показаны (0..8)
Если вы хотите показывать лишь один навык, сначала поменяйте его позицию в слот 1 и затем ограничьте кол-во показываемых навыков одним с помощью этой команды.


S#1/$2
Установить/проверить/получить вторичные навыки
        #1 – номер навыка
        $2 – уровень навыка (0 – нет, 1 – базовый, 2 – продвинутый, 3 – эксперт).
Вы можете установить все вторичные навыки (28) сразу, но показываться в экране героя будут только первые 8.
Дополнительно (показать)

Используя низкоуровневую команду UN:C мы может предоставить возможность программно изучать героем все 28 навыков:

Также, вы можете менять параметры навыка установкой иных значений от указанных в $2.
Расширенный синтаксис:
S$1/$2/1
        $1 – номер в окне навыков героя (0 = нет, 1..8 = номер слота)
        $2 – номер навыка (0..27)
Комментарий (показать)

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


T$1/$2/$3/$4/$5
Вызвать битву с одним типом монстров
        $1 – X
        $2 – Y
        $3 – L
        $4 – тип монстров
        $5 – кол-во монстров
X, Y и L используются только для типа почвы и соответствующих бонусов.


U$1/$2/$3
Установить/проверить/получить позицию и радиус патрулирования для ИИ. Центр патруля X = $1, Y = $2 (уровень фиксирован). Радиус будет установлен в $3 (освободить героя от патруля можно установкой $3 = -1)


V#1/$2
Установить/проверить/получить, посещал ли герой объекты типа #1 ($2 используется как битовая маска: 1 для первого объекта, 2 для второго, 4 для третьего и т.д.)
Расширение синтаксиса:
V#1/#2/$3
       
#1 – тип объекта
        #2 – номер объекта (0..31)
        $3 – посещено героем (1) или нет (0)
Пример (показать)


W$
Изменить/получить очки движения героя
         $ – очки для изменения (W0, Wd-10, W?i, W>=100…)
Комментарий (показать)

Это число не кол-во шагов, которые может совершить герой, а значительно бо́льшее число (обычно между 1500 и 2000, зависит от скорости войск), устанавливаемой игрой автоматически. Проблематично подсчитать варианты бонусов почв и пенальти (плюс Поиск Пути, Логистика, Сапоги-Скороходы и т.п.). На траве со смешанными существами 1 шаг равен 100 очкам движения героя.
В Дыхании Смерти и в WoG, герои компьютера получают дополнительные очки движения на высоких уровнях сложности. На Эксперте они получают 125 дополнительных очков, на Невозможном - 75.

W$/1
То же, что и HE:W$, но без обновления. В стандартном синтаксисе обновление вызывается даже если вы проводите проверку.


X#1/$2/$3/$4/$5/$6/$7
Изменить специальность героя. Установить/проверить/получить все спец. установки.
Типы специальностей (#1):
#1 = 0 – спец по вторичному навыку

     $2 – номер вторичного навыка
     $3…$7 игнорируются.

#1 = 1 – спец по существам
     $2 – тип существ    
     $3…$7 игнорируются

#1 = 2 – спец по ресурсам
     $2 – тип ресурса
     $3…$7 игнорируются

#1 = 3 – спец по заклинанию
     $2 – номер заклинания
     $3…$7 игнорируются

#1 = 4 – экстраспец по существам
     $2 – тип существа
     $3 – бонус атаки
     $4 – бонус защиты
     $5 – бонус урона
     $6…$7 игнорируются

#1 = 5 – скорость
     $2 = 2
     $3…$7 игнорируются

#1 = 6 – спец по улучшениям
     $2 – существо 1 для улучшения
     $6 – существо 2 для улучшения
     $7 – существо улучшенное
     $3…$5 игнорируются

#1 = 7 – спец по драконам
     $2 = 0
     $3 – бонус атаки
     $4 – бонус защиты
     $5…$7 игнорируются

#1 = 8 – экстра-ВоГ – специальность
    $2 =
            1 - Вуаль Тьмы
            2 - Строитель
    $3…$7 игнорируются


Комментарий (показать)
Вы можете использовать параметр "d" для игнорируемых или неизменяемых вами настроек: Для проверки текущих настроек используйте:


Y$1/$2/$3/$4
Благословения и проклятья.    
        $1 – номер благословения/проклятья (1..65)
        $2 – сила заклятья (не используется для слепоты и блокировки слота)
        $3 – продолжительность в днях
        $4 – что с ним сделать (0 – удалить, 1 – дать, 2 – добавить/убавить)
Комментарий (показать)

Каждый герой может иметь только одно заклятье каждого типа.
Так, когда вы добавляете или отнимаете (отнимание - добавление отрицательного значения), это означает, что сила и продолжительность будут изменены на сумму старого и нового значений. Если вы удаляете проклятье, параметр силы и продолжительности не имеет значения.
Проклятье заблокированного слота.
$2 - номер слота для блока (-1 = случайный слот).
Если слот содержит артефакт, он будет скрыт и появится на том же месте по окончанию действия проклятья. Но (!) при удалении проклятья "закрытый слот" не разблокируется. Если же использовать команду снятия всех проклятий, всё в порядке.
Таблица слотов непохожа ни на одну другую таблицу, результаты получены экспериментальным путём - номер слота
Если закрыть боевую машину, и она уже есть у героя, то закроется один из слотов разное (1..3) в зависимости от номера боевой машины. Причём внешне он будет выглядеть как пустой слот, но по окончанию проклятья артефакт вернётся. Если во время действия проклятья "поднять" машину в инвентаре, под ней появится замок, и вы не сможете установить её обратно.


Z?$
Команда возвращает адрес памяти структуры указанного героя.
Пример (показать)