Опции UN:   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

Ресивер UN (универсальная команда)


!!UN:XXXX; - универсальная команда. Используется для изменений в карте и/или игре.


A#/$
Установить/проверить/получить доступность артефакта на карте:

        # – номер артефакта
        $ = 1 – артефакт запрещён
	$ = 0 – артефакт разрешён

Комментарий: запрет не работает при генерировании артефакта на карте (взамен "случайного" артефакта). Однако, можно попробовать запретить через !#UN:A#/3/0;


A#1/#2/$
Установить/проверить/получить информацию про артефакт.

        #1 – номер артефакта
        #2 – тип информации
	= 1 – цена
	= 2 – позиция на теле
	= 3 – тип (класс)
	= 4 – номер комбо-артефакта
	= 5 – часть комбо-артефакта
	= 7 – артефакт WoG
	= 8 – даёт заклинание или нет
	= 9 – имя артефакта
	= 10 – описание артефакта
        $ - значение
Комментарий (показать)
  1. Цена: Артефакт можно продать у торговцев артефактами за 1/5 установленной цены, если вы не обладаете дополнительными торговцами. Грааль и новые WoG-артефакты имеют цену 0.
  2. Позиция на теле: если вы помещаете артефакт на некорректную позицию с помощью ERM, дополнительные параметры никуда не исчезнут. Например, вы установили, что Сандалии Святого надевают на голову вместо ног, вы получите все параметры +2 (и потеряете их, когда снимите).
    Если герой имеет уже надетый артефакт и вы измените слот артефакта через ERM, артефакт останется полностью функциональным до его снятия, далее его одеть можно будет только в изменённый слот.
  3. Тип: Это значение определяет класс артефакта – нет класса (книга заклинаний, боевые машины и Грааль) (1), сокровище (2), ценный (4), важный (8) и реликт (16), которые включают комбо-артефакты и три новых ВоГ-артефакта. Другие значения могут быть установлены для получения смешанного класса (или своего).
  4. Номер комбо-артефакта: каждая комбинация имеет свой номер. Первый комбо-артефакт, Альянс Ангелов, имеет номер 0, и последний, Рог Изобилия - 11. Не-комбо-артефакты имеют значение -1.
    Внимание: если вы ставите стандартным сборным артефактам (вроде Альянса Ангелов) это значение на -1 (что это НЕ комбо-артефакт), то они не будут добавлять что-либо к параметрам героя, но сохранят свои дополнительные свойства (вроде Молитвы или иммунитета к магии до 4го уровня)
  5. Часть комбо-артефакта: если артефакт – один из составных частей, значение будет номером комбо-артефакта. И если артефакт не часть комбо, значение будет -1.
  6. НЕ ИСПОЛЬЗУЕТСЯ.
  7. Артефакт WoG: данный параметр установлен на 0 у всех артефактов, кроме 141, 142 и 143, у которых он равен 1.
  8. Даёт заклинание: это значение установлено на 0 для большинства артефактов, и на 1 для артефактов типа Томов магии, Шляпы оратора, Шляпы капитана – то, что по умолчанию даёт заклинания. Сейчас невозможно проверить, какое заклинание добавляется, однако, небольшая проверка всех заклинания героя перед экипировкой и после позволяет их вычислить.
    Установка этого значения на 0 (если по умолчанию 1) отменяет получение заклинаний.
  9. Имя артефакта: этим можно установить имя артефакта. $ - номер z-переменной, содержащей имя артефакта. Значение 0 восстанавливает оригинально название. Часто используемый трюк с этой опцией - переименование артефактов и использование их картинок с другим описанием в диалоговых окнах.
  10. Описание артефакта: этим можно установить описание артефакта. $ - номер z-переменной, содержащей описание артефакта. Значение = 0 восстанавливает оригинальное описание.


A#/$/#1/#2[/#3/#4/#5/#6/#7/#8/#9/#10/#11/#12/#13/#14]
Менеджер комбо-артефактов.
Построить/удалить комбо артефакт:
         # – номер комбо (0..31)
         $ – установить/проверить/получить номер комбо-артефакта
         #1 – часть 1
         #2 – часть 2
         #3 – часть 3 (опционально)
         …
         …
         #14 – часть 14 (опционально)
Результат: комбо-артефакт создан. Если успешно, флаг 1 устанавливается на 1.
Комментарий (показать)


B#/$
Провести операции над новыми сундуками и Мифрилом.

        # – тип
	0 – Мифрил
	1..6 – новые сундуки
	7..10 – камни Силы
        $ – действие (0 = стандартое, 1 = особое)

Давайте рассмотрим подробнее каждый тип по отдельности:
Новый ресурс (показать)

Мифрил – тип 79 / подтип 7.
Для мифрила стандартная операция означает, что когда вы (или ИИ) возьмёте его, вы получите случайный ресурс, кроме дерева и руды и в кол-ве, установленном в редакторе (для золота, как всегда, *100).
Расширенное действие для мифрила означает, что он будет добавляться к имеющемуся кол-ву Мифрила игрока.
Вы можете установить или проверить кол-во мифрила командой !!OW:R#/7/$; Оба действия работают и для ИИ, и для человека. ИИ считает мифрил золотом, вне зависимости, берёт он его или нет.

Новые сундуки (показать)
тип 101, подтип 1 тип 101, подтип 4
тип 101, подтип 2 тип 101, подтип 5
тип 101, подтип 3 тип 101, подтип 6

Для всех новых сундуков стандартная операция означает стандартный сундук сокровищ.
Расширенное действие ничего не даёт герою-посетителю. В любом случае, сундук исчезает после его посещения.

Камни Силы (показать)
       
тип 101
подтип 7
тип 101
подтип 8
тип 101
подтип 9
тип 101
подтип 10

Камни силы работают так:

  1. Не-WoG'ифицированная wog-карта без ERM, включенные WoG-опции: Командиры отключены, *или* Не-WoG'ифицированная карта с опцией "Командиры", включенной с помощью ERM, Камни силы отключены через ERM: *Или* WoG'ифицированная карта с отключенными командирами через WoG-опции, Камни силы разрешены или запрещены.
    Результат: Камни силы работают, как обычные сундуки сокровищ.
  2. Не-WoG'ифицированная wog-карта без ERM, включенные WoG-опции: "Командиры разрешены", *или* Не-WoG'ифицированная wog-карта с помощью ERM- разрешёнными командирами  (!#UN:P3/0;), Камни силы включены через ERM или НЕ отключены ERM (!#UN:B7/1; и т.д.) *или WoG'ифицированная карта с разрешёнными командирами в WoG-опциях, Камни силы разрешены или запрещены.
    Результат, если командир героя жив: командир получает бонус от Камня силы.
    Результат, если командир героя мёртв: вопрос о разрушении камня.
  3. Не-WoG'ифицированная wog-карта с отключенными командирами с помощью ERM, (!#UN:P3/1;).
    Результат: Камни силы работают как более ценные сундуки сокровищ (до 7500 золота/7000 опыта)


C#1/#2/$
Команда производит запись/чтение напрямую по адресам оперативной памяти:

        #1 – базовый адрес
        #2 – кол-во байт (1, 2, 4)
         $ – значение
Расширение синтаксиса:
C#1/#2/#3/$
        #1 – базовый адрес (всегда используется GetRealAddr)
        #2 – смещение в байтах
        #3 – кол-во байт
         $ – значение
Комментарий (показать)
Структуры – массивы данных в памяти игры, для удобного хранения информации и чтения/записи программным кодом. Большинство ERM-команд изменяют данные внутри этих структур (таблиц).
UN:C автоматически поддерживает перемещённые структуры, то есть структуры, которые плагины перенесли в другое место памяти. Для этого нужно всегда указывать начало структуры в качестве базового адреса и корректное смещение (прибавить/убавить). Команда подставит новый базовый адрес и прибавит смещение.
Структуры описаны в исходном коде WoG 3.58f

См. также: Работа с памятью, Готовые решения с использованием команды, Библиотека нестандартных ф-ций.


D#1/#2/#3
Сделать квадрат воды доступным для героя.
         #1 – X
         #2 – Y
         #3 – L
Расширение синтаксиса:
D#1/#2/#3/$
Поместить/удалить путь (бревна) на воде
         $ = 1 – поместить (добавить проходимость пешком)
         $ = 0 – не помещать (удалить проходимость пешком)
Комментарий (показать)

Квадрат с бревном недоступен для лодки, но доступен для ходьбы. Если не поместить бревно, квадрат становится обычным (т.е. доступным для лодки). Если выставить проходимость для лодки (x/y/l/0) квадрату-не-воде, игра выходит в чёрный экран. Если установить проходимость пешком на квадрате-не-воде, вместо него появится квадрат с водой и плавающим на ней бревном. В его описании будет написано "Болото (можно копать)", и при раскопке на нём появится болотистая ямка.
На данный момент единственная ERM-команда, которая опускаемый четвёртый параметр принимает как значение 1 (хотя все другие как 0).


E#1/#2/#3
Проверить, можно ли поместить объект в координаты
         #1 – X
         #2 – Y
         #3 – L
Осуществляет проверку на возможность помещения одноклеточного объекта в эти координаты. Если возможно, флаг 1 будет равен лжи, если нет, истине.
Пример (показать)


F$1/$2/$3/$4/$5
Вызвать пожар (если возможно)
         $1 – X координата
         $2 – Y координата
         $3 – L (0-поверхность, 1-подземелье)
         $4 – dX
         $5 – dY
dX, dY: имеем прямоугольник.
Если верхний левый угол с координатами x и y…
А нижний правый, допустим, x2 и y2… Тогда
dX=x2-x
dY=y2-y
Комментарий (показать)

Пока что данная команда возможна лишь для одного объекта - дерева. Этот объект можно найти в редактор карт → Замки → последний элемент. Вы можете увидеть действие этого скрипта, когда разрушите город Горыныча. Деревья около замка автоматически загораются при его разрушении.
WoG-Team: «Мы хотели сделать больше таких объектов (больше деревьев), но не успели. Мы можем сделать динамическую анимацию горения деревьев, затопления и чего-либо ещё. Всё готово, но объектов нет.«


G0/#1/#2/#3
Установить текст вторичного навыка.

        #1 – номер навыка (0..27)
        #2 – тип текста (0..3)
	0 – имя навыка
	1 – базовый уровень (описание)
	2 – продвинутый уровень (описание)
	3 – экспертный уровень (описание)
        $3 – номер z-переменной (1..1000)
	0 – восстановить оригинальный текст
Комментарий (показать)
похоже на изменение имени и описания артефакта.
Вы должны установить z-переменную с соответствующим текстом (вы можете использовать только глобальные z-переменные z1…z1000). Если вы измените текст использованной здесь z-переменной, он немедленно станет новым текстом навыка. Так что не используйте эти переменные для других дел.
Пример: Данный скрипт установит имя и описание навыка Логистики на новые, если вы посетите локальное событие 7/5/0. Оригинальное описание базового уровня Логистики будет восстановлено после посещения локального события в 8/5/0.


G1/#1/#2/$
Изменить имя монстра.

        #1 – номер монстра
        #2 – тип текста
	0 – имя монстра в ед.ч.
	1 – имя монстра во мн.ч.
	2 – специальный текст (описание)
        $ - z-переменная (или её номер), содержащая новый текст
	0 – восстановить исходный текст (по умолчанию)


G2/#1/#2/#3
Позволяет вам установить текст и картинку специализации героя.

        #1 – номер героя
        #2 – что установить
	1 - малую картинку (видна в окне встречи героев, и т.п)
	2 – описание
	3 – картинку
        #3 – это:
	– номер z-переменной (0 – восстановить по умолчанию), если #2 = 2
	– номер картинки (0..356), если #2 = (1 или 3)


H#1/#2/#3/#4/#5
Скрыть часть карты (область – круг)
         #1 – X
         #2 – Y
         #3 – L (уровень)
         #4 – игрок
         #5 – радиус
Комментарий (показать)

Область будет скрыта для всех, кроме указанного игрока. Проверки на корректность номера игрока нет, т.е. игра обрабатывает значения вроде ±5678765 без ошибок (результат - закрытый участок для всех игроков 0..7).


I#1/#2/#3/#4/#5/#6
Поместить объект.

        #1 – X
        #2 – Y
        #3 – L (уровень)
        #4 – тип объекта
        #5 – подтип объекта
        #6 – обновить?
	1 – да (по умолчанию)
	0 – нет

Эта команда очень полезна, но есть несколько ограничений. Некоторые объекты нельзя поставить этой командой, т.к. они нуждаются в предварительной настройке в редакторе, а некоторые вообще не будут работать и могут вызвать нестабильность игры.
Дополнительный синтаксис:
I#1/#2/#3/#4/#5/#6/#7/#8/#9

        #1…#5 – см. выше
        #6 – тип объекта 2
        #7 – подтип объекта 2
        #8 – почва
        #9 – обновить?
	1 – да (по умолчанию)
	0 – нет

Это означает, что появится объект/подтип, который будет выглядеть как объект2/подтип2. Используйте эту команду с указанием нужной почвы для помещения объектов, сделанных под почву.
Дополнительно о команде UN:I (показать)

Перед тем, как проверять, ставится ли на карту объект при помощи ERM, нужно удостовериться, что его def-файл есть в Lod'е, а объект прописан в zobjcts.txt. Впрочем, для теста можно просто поменять тип и подтип какому-нибудь объекту. Тип для ВСЕХ объектов может лежать в пределах 4 байт (-2147483648…+2147483647), а подтип - в пределах 2 байт (-32768…32767). Установка подсказок работает нормально на отрицательных подтипах. Если превысить значение подтипа, то возможны два варианта: Если поставить инструкцией, то на карте появится случайный монстр в случайном кол-ве. :-) Если пост-инструкцией или позднее - то случайный монстр из редактора карт (тип=71, подтип=0, со входом, активен, но не монстр - ерунда, в общем).

Список объектов, которые будут работать корректно без дополнительных настроек. Многие могут быть настроены специальным ресивером объекта, при желании.

· Артефакт (тип=5, подтип=0..143) - ресивер !!AR
· Лодка (тип=8, подтип=0..2)
· Вуаль Тьмы (тип=15, подтип = 0)
· Жилище существ (тип=17, подтип=0..88 и 20, подтип=0..1) - ресивер !!DW
· Гарнизон (тип=33, подтип=0 (обычный), =1 (антимагический), =2 (перпендикулярный), =3 (антимагический перпендикулярный) - ресивер !!GR

Подтипов 2 и 3 нет в стандартной игре. Для помещения будет верно:
 · Обычный - 33/0
 · Обычный перпендикулярный - 219/0
 · Антимагический - 33/1
 · Антимагический перпендикулярный - 219/1
Все гарнизоны помещаются нормально. Тип 219 неактивен при помещении, однако достаточно сменить тип на 33 (см. OB:T) и всё будет в порядке.
Сама игра меняет тип перпендикулярным гарнизонам при загрузке карты, а тип 219 ей нужен для инициализации.
Гарнизоны с подтипом > 1 воспринимаются как обычные.

· Грааль (тип=36, подтип=0) - при помещении нескольких Граалей, учитывается только последний помещённый, таким методом можно обойти ограничение в 9 клеток от края карты.
· Маяк (тип=42, подтип=0..7 для цвета игрока или -1 для нейтрального) - ресивер !!MN (как и для шахт)
· Башня Марлетто (тип=23, подтип=0)
· Двусторонний монолит (тип=45, подтип=0..7)
· Шахта (тип=53, подтип=0..7) - ресивер !!MN
· Монстр (тип=54, подтип=0..196) - ресивер !!MO
· Океанская бутыль (тип=59, подтип=0) - ресивер !!SG (как для знаков)
· Обсерватория красного дерева (тип=58, подтип=0)
· Ресурс (тип=79, подтип=0..6) - ресивер !!AR (как для артефактов)
· Святилище (тип=80, подтип=0)
· Верфь (тип=87, подтип=0..7 по цвету игрока или -1 для нейтрального) - ресивер !!SY
· Знак (тип=91, подтип=0) - ресивер !!SG
· Свиток заклинания (тип=93, подтип=0..69) - ресивер !!AR
· Замок (тип=98, подтип=0..8) - ресивер !!CA
· Университет (тип=104, подтип=0) - ресивер !!UR
· Хижина ведьмы (тип=113, подтип=0..27) - ресивер !!WH

Эти объекты потребуют дополнительной настройки через определённый ресивер для корректной работы:

· Костёр покинутого лагеря (тип=12, подтип=0) - ресивер !!FR (при помещении ресурс не задан)
· Лебединое озеро (тип=14, подтип=0) - ресивер !!SW (имеет нулевой номер при помещении)
· Скелет (труп) (тип=22, подтип=0) - ресивер !!SK (при помещении не имеет артефакта?)
· Событие (тип=26, подтип=0) - ресивер !!LE - если событие помещено командой UN:I, оно будет разрешено для всех игроков и НЕ будет отменено после посещения.
· Навес (погреб) (тип=39, подтип=0) - ресивер !!LN (при помещении не имеет ресурса)
· Камень знаний (тип=100, подтип=0) - ресивер !!ST (имеет нулевой номер при помещении)
· Святыня магии (тип=88..90, подтип=0) - ресивер !!SR (при помещении учат заклинанию "Вызов корабля")
· Магический источник (тип=48, подтип=0) - ресивер !!SP (считается посещённым при помещении)
· Мистический сад (тип=55, подтип=0) - ресивер !!GD (считается посещённым при помещении)
· Обелиск (тип=57, подтип=0) - ресивер !!MT (имеет нулевой номер при помещении)
· Пирамида (тип=63, подтип=0)  - ресивер !!PM (считается посещённым при помещении)
· Учёный (тип=81, подтип=0) - ресивер !!SC (при помещении учит +1 атаки)
· Потерпевший кораблекрушение (тип = 86, подтип=0) (используйте OB:C для настройки артефакта, при помещении у него Книга Заклинаний)
· Сундук сокровищ (тип=101, подтип=0) - ресивер !!CH (значение CH:B0 при помещении)
· Древо знаний (тип=102, подтип=0) - ресивер !!KT (учит бесплатно, имеет нулевой номер при помещении)
· Телега (тип=105, подтип=0) - ресивер !!WG (при помещении находка не задана)
· Гробница воина (тип=108, подтип=0) - ресивер !!WT (при помещении артефакт не задан)
· Водяная мельница (тип=109, подтип=0) - ресивер !!WM (при помещении не имеет золота)
· Ветряная мельница (тип=112, подтип=0) - ресивер !!ML (при помещении не имеет ресурса)

Эти объекты НЕ будут работать корректно и могут вызвать нестабильность игры, вылет карты или другие проблемы при помещении:

· Пустышка (тип = 1) - игра вылетит при попытке помещения объекта
· Якорь (тип = 3) - ресивер !!PA (игра вылетит при попытке помещения объекта)
· Ящик Пандоры (тип=6) - игра вылетит при посещении объекта
· Чёрный рынок (тип=7) - игра вылетит при посещении объекта
· Герой (тип=34) - используйте команду HE:P для помещения героя на карту
· Тип 50 - объект изначально отсутствует в игре
· Тюрьма (тип=62) - видимых проблем не создаёт, при посещении объявляется, что герой был освобождён королём, и тюрьма исчезает.
· Хижина провидца (тип=83) - игра вылетает при наведении мышью на объект или при посещении, НО вы можете корректно поместить объект (см. ниже)
· Страж прохода (тип=215)
· Гарнизон (тип = 219) - гарнизон просто не работает (см. выше о причине)

Некоторые объекты имеют разные модели для разной почвы. Для их помещения используйте синтаксис… где x/y/l - координаты, T - тип объекта, S - подтип, tr - почва, на которой находится нужный объект.
Пример:

· Костёр покинутого лагеря (тип = 12) - имеет вариации для песка, снега, подземелья, лавы.
· Лебединое озеро (тип = 14) - имеет вариации для грязи, травы и болота
· Фонтан удачи (тип = 30) - имеет заснеженную вариацию
· Форт на холме (тип = 35) - имеет заснеженную вариацию
· Волшебный колодец (тип = 49) - имеет заснеженную вариацию
· Шахты (тип = 53) - имеют вариации для разных почв
· Обелиск (тип = 57) - имеет вариации цвета для каждой почвы
· Обсерватория красного дерева (тип = 58) - имеет снежную вариацию
· Хижина провидца (тип = 83, подтип 0-2) - с помощью данного синтаксиса вы можете поместить её, но она будет заброшена провидцем, почва не влияет на внешний вид.
· Склеп (тип = 84) - имеет вариацию со снегом (по умолчанию) и без
· Знак (тип = 91) - имеет вариации для разных почв
· Рынок (тип = 99) - имеет вариации для грязи, скал
· Водяная мельница (тип = 109) - имеет вариации для травы и для снега (по умолчанию)
· Ветряная мельница (тип = 112) - имеет вариации для травы (по умолчанию) и для снега


J#
J0/#/$

Запретить заклинание.

        # – номер заклинания (0..69)
        $ – разрешить (0) или запретить (1)
Комментарий (показать)
Этот запрет работает только для гильдий магов и пирамид, но вы можете проверить значение, установленное здесь, для любого ERM-скрипта. Так как магические гильдии и пирамиды генерируют заклинание в начале карты (перед полной загрузкой), мы советуем использовать эту команду как инструкцию.
Для Святынь магии запрет не работает, т.к. используются другие внутренние механизмы. Однако вы можете изменить заклинание Святыни проверкой через ресивер !!SR.


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

Опыт автоматически устанавливается для этого уровня.
Пример:

Если вам необходимо убрать в игре сообщение об ограничении опыта, используйте следующий код:


J2/$
Установить/проверить/получить сложность, выбранную игроком (0..4)


J3
Эта команда позволяет вам установить путь к файлу, содержащему настройки WoG'ификации.
Пример (показать)

Путь может содержать папку или абсолютный путь, как эти:
          ^МоиОпции.xxx^ - файл в папке героев
          ^maps\опции.yyy^ - файл в папке Maps
          ^C:\xxx.yyy^ - файл на диске C:

Расширение синтаксиса:
J3/^:clear:^
Отключает все WoG-опции и устанавливает игровое правило "Использование правил, отмеченных ниже".


J4/$
Установить/проверить/получить радиус «раздумий» ИИ
         $ = 32000 в Дыхании Смерти по умолчанию
            = 4096 – текущее в WoG
Комментарий (показать)

Это не кол-во квадратов, анализируемых ИИ. Это общий радиус ИИ, основанный на его очках хода и почве. Для травы, один квадрат тратит 100 очков. Значение не сохраняется при сохранении игры. Если значение слишком мало, герой ИИ будет просто стоять на месте, не двигаясь вообще.


J5/$
Разрешить/запретить «автосохранение»
         $ = 1 – разрешить
         $ = 0 – запретить
Комментарий (показать)

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


J6/#/$
Генерировать случайный артефакт определённого уровня.

        # – установить класс
	= -1 – случайный
	= 1 – внеклассовый (Грааль и WoG-артефакты)
	= 2 – сокровище
	= 4 – ценный
	= 8 – важный
	= 16 – реликт
        $ – получить/проверить номер артефакта.
Комментарий (показать)
Функция генерирует только разрешённые артефакты. Артефакты 1го класса включают в себя Грааль, Книгу заклинаний, Свиток заклинания и все боевые машины.
Вы можете генерировать артефакт из нескольких классов, например 18 = реликты и сокровища. Сгенерированные артефакты в одном и том же триггере НЕ повторятся.
Пример:


J7/#/$
Установить/проверить/получить артефакт, продаваемый у торговца артефактами.
         # – номер слота (0..6)
         $ – номер артефакта в слоте
Комментарий (показать)

Вы можете установить, получить или проверить артефакт («-1» значит отсутствие артефакта).
Пример: Данная команда не работает для Чёрного рынка. Для этого вам придётся прибегнуть к использованию UN:C…


J8/$1/$2
J8/$1/^Текст^

Команда, проверяющая существование внешних файлов
         $1 – место поиска

	0 – в папке героев
	1 – в Data
	2 – в Maps
	3 – в Random maps
	4 – в Games
	5 – в Data/S
	6 – в Data/P
	7 – в Data/ZVS/LIB1.res
	8 – в Data/ZVS/CMP.res
	9 – в ERM_HELP
	10 – полный путь, указанный в z-переменной либо в ^…^
         $2 – номер z-переменной или ^…^ с именем файла.
Флаг 1 установится на истину, если файл существует, иначе - на ложь.


J9/$1/$2
Команда копирует путь к папке героев
         $1 – место назначения (см. UN:J8)
         $2 – номер z-переменной, куда его записать.
Пример: скопируем путь в z10. Пусть Герои у нас установлены в C:\HOMM\WOG, команда !!UN:J9/2/10;
Получаем в z10 следующий текст:


J10
Занести переменные в WOGERMLOG.TXT
Эту команду можно использовать в любое время (записать все ненулевые переменные в файл)


J11/$
Установить/проверить/получить поведение мыши при клике на вражеском стеке в бою.
       $ = 0 – окно остаётся на экране (WoG-style).
       $ = 1 – окно закрывается при отпускании кнопки мыши (SoD-style)
Информация о команде сохраняется в игре.


J13/$
Обнуление командиров (в зависимости от текущего состояния WoG-опций 3 и 6).


K#/$
Установить параметры «Новой недели»
K1/$ – запретить ($ = 1) все «Неделя …» (монстров/бесов) или разрешить ($ = 0)
K2/$ – установить сообщение при наступлении новой недели в текстовую переменную $
Комментарий (показать)

Эта команда НЕ отменяет появление недели/месяца Бесов, если в Инферно построен Грааль. Однако, это можно обойти, применив следующий код:


L#1/#2/#3/#4
Переместить взгляд на позицию
         #1 – X
         #2 – Y
         #3 – L
         #4 – время ожидания (1000 = 1 секунда)
Комментарий (показать)

Пример использования команды - обычный Глаз Мага, открывающий карту, но данная команда лишь переносит взгляд. Также, если вы используете эту команду в триггере объекта, имеющего стандартные, не ERM функции, может открыться окно обмена между героем и его фантомным клоном. Во избежание этого отключайте свойства объекта командой OB:S, и после выполнения этого ресивера включайте обратно (если нужно).


L#1/#2/$
Установить/проверить/получить посещён ли обелиск?

        #1 – номер игрока (0..7)
	-2 = для всех
	-1 = для текущего
        #2 – номер обелиска (0..47; -1 = все)
        $ – обелиск посещён (1) или нет (0)

См. также: ресивер !!MT


M#[/$]
Установить параметры «Месяц …»
M0 – обычный, неизменённый месяц
M1 – запретить месяца монстров *2 и /2
M2/$ – установить месяц монстра $*2
M3 – установить месяц чумы (все существа /2)
Замечание: месяц Беса, если в Инферно построен Грааль, эта команда НЕ отменяет (но есть иной выход - см. здесь).


N…
Узнать название:
N0/z#/$ – имя артефакта ($ = номер)
N1/z#/$ – имя заклинания ($ = номер)
N2/z#/$1/$2имя здания ($2) в городе $1 (0..8)
N3/z#/$1/$2 – имя монстра ($1) (одиночного: $2=0, нескольких: $2 = 1)
N4/z#/$ – имя вторичного навыка ($ = номер)
Эта команда позволяет вам получить имя артефакта, заклинания, строения, монстра или вторичного навыка по его номеру и занести его в z-переменную для дальнейшего использования в сообщениях.
Пример (показать)

N5/#1/#2/#3/#4
Записать z-переменную в общую секцию INI-файла:

        #1 – номер z-переменной для записи
        #2 – номер опции (любое положительное значение)
        #3 – опциональный параметр - номер z-переменной для записи в пользовательскую секцию
        #4 – опциональный параметр - номер z-переменной, хранящей имя файла (без части ".INI"), можно с абсолютным путём.
Примечание: если вы используете параметр #4, вы должны использовать параметр #3.

N6/#1/#2//#3/#4
Прочитать z-переменную из общей секции INI-файла:

        #1 – номер z-переменной для сохранения текста
        #2 – номер опции (любое положительное значение)
        #3 – опциональный параметр - номер z-переменной для использования пользовательской секции вместо общей.
        #4 – опциональный параметр - номер z-переменной, хранящей имя файла (без части ".INI"), можно с абсолютным путём.
Примечание: если вы используете параметр #4, вы должны использовать параметр #3.

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

Вы можете сохранять и загружать глобальные или местные z-переменные. Номер опции должен быть уникален для процедуры сохранения или загрузки (один номер опции на z-переменную). Так, если вы сохранили z-переменную как опцию 123456, вы можете загрузить сохранённое значение в любую другую z-переменную, используя ту же опцию 123456.
Значение не сохраняется при сохранении игры, но записывается во внешнем INI файле (wog,ini, если параметр 4 опущен). Вы можете использовать эту команду без проблем как инструкцию. Так, для записи переменной z-1, названной "Главная_переменная", в файл Мой.var в папку GAMES (секция "MyLocalSettings") с опцией 4, используйте:


O$1/$2/$3
Удалить объект

        $1 – X
        $2 – Y
        $3 – L (уровень)
Дополнительный синтаксис:
O$1/$2/$3[/#4/#5]
Удалить объект в X/Y/L и описание (если было установлено)
        #4 – удалить описание?
	1 – да
	0 – нет (по умолчанию)
        #5 - обновить?
	1 – да (по умолчанию)
	0 – нет
Комментарий (показать)
В обоих случаях X/Y/L означает правый нижний угол объекта.
Существует несколько таблиц для каждого объекта на карте. И перекрёстные ссылки не всегда существуют. Обычно Герои используют поиск по координатам. Когда вы удаляете объект, некоторые таблицы остаются (храня информацию об удалённом объекте). Если вы затем добавляете новый объект в то же место, новая информация будет добавлена в таблицу. Но затем, когда игре понадобится получить информацию об этом новом объекте, она начнёт поиск в таблице по позиции. Очевидно, что сначала будет найдена информация о старом (удалённом) объекте.
Я рекомендую настроить старый объект, удалить его, поместить новый и снова настроить.
Помните, что эта проблем возможна для объектов одного типа и не в каждом случае.


P$
Установить поведение жилищ 8го уровня
         $ = 1 – жилище 8го уровня (после найма не работает)
         $ = 0 – как обычное
Комментарий (показать)

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


P#/$
Установка WoG-опций
         # - номер опции
         $ - статус опции
Некоторые опции:
                   # = 0 – поведение жилищ 8го уровня (см. выше)
                   # = 1 – опыт стрелковых башен: как в SoD (1) или как в WoG (0)
                   # = 2 – можно оставлять монстров на карте (1 – нельзя, 0 – можно)
                   # = 3 – командиры: 1 – запретить, 0 – разрешить.
Комментарий (показать)

Сейчас, если карта имеет внутренние скрипты и не имеет команды !#UN:P3/#, карта запускается в условиях WoG 3.56 (без командиров и т.п.). Но если карта имеет данную команду (не важно, !#UN:P3/0 или !#UN:P3/1), карта принимается как новая и запускается в условиях WoG 3.57 (так, все внутренние особенности WoG устанавливаются из файла настроек WoG'ификации или командами UN:P). Сейчас исправлена проблема с невозможностью включить командиров инструкцией !#UN:P3/0 при использовании в триггере таймера.
                   # = 4 – разрушение замков: запретить (1) или разрешить (0)
                   # = 5 – WoGифицировать: нет (0), все карты формата WoG (1), все карты любого формата (2)
                   # = 6 – герои начинают с командирами или нет (0 – с, 1 – без (должен быть нанят)
Комментарий (показать)
Чтобы командир нанимался в городе за 100 золотых, вместо автоматического получения героем в начале игры, нужно использовать UN:P6/1 перед командой UN:P3/0.
                   # = 7 – жилища копят существ: 0 – нет, 1 – да
                   # = 8 – жилища копят охранников: 0 – нет, 1 – да
                   # = 9 – создание Сильванских Кентавров: 1 - разрешено, 0 - нет
Комментарий (показать)
Если опция включена, Сильванские кентавры могут быть бесплатно созданы с помощью нажатия Ctrl + по отряду Капитанов-Кентавров или Благородных Эльфов в ОКНЕ ГЕРОЯ (!). Равное число кентавров и эльфов будет заменено равным кол-вом Сильванских кентавров.
Т.е. 10 Благородных Эльфов плюс 10 Капитанов-Кентавров = 10 Сильванских кентавров.
Замечание: Сильванские кентавры не сохраняют никакого опыта от имеющегося у кентавров или эльфов перед слиянием.
                   # = 10 – оставленные отряды будут присоединятся обратно (1) или нет (0)
Комментарий (показать)
Если активно, отряды, оставленные правым кликом, присоединятся обратно к герою, если он нападет на них.
Замечание: весь опыт отряда будет потерян при оставлении существ.

WoGифицированные и не WoGифицированные WoG карты без скриптов будут использовать опции WoG выше.
Не-WoGифицированные WoG-карты со скриптами будут иметь отключенных командиров по умолчанию. Для их включения вы должны использовать !!UN:P3/0 после начала карты. Установка этой команды инструкцией - !#UN:P3/0 - НЕ разрешит командиров на этой карте.
Для установки командиров-наёмников за 1000 золота используйте команду UN:P6/1 перед командой UN:P3/0. Вы можете вставить обе команды в одну строку:
                   # = 900 – опыт стеков: 0 – выключен, 1 – включен
                   # = 901 – система опыта стеков:
                       0 – каждое существо получает полное кол-во опыта;
                       1 – высокое деление: существа малого уровня получают больше опыта, чем существа большого уровня;
                       2 - низкое деление: существа высокого уровня получают больше опыта, чем существа малого уровня;
                       3 - делится поровну между всеми существами
Комментарий (показать)

Сейчас система опыта по умолчанию 0. Другие опции были использованы ранее, для нахождения лучшей для использования. Хоть и отвергнутые, они остались в игре, так что любой может поэкспериментировать с данной опцией. Если вы решили использовать альтернативную систему, возможно, понадобится также установить более высокий множитель командой EA:H для игроков-людей, и EA:A (также, возможно, EA:S и/или EA:T) для игроков-компьютеров, т.к. опыт начнёт делиться между всеми существами в бою, и будет существенно меньше.

                   # = 902 – можно выбрасывать артефакты на карту: 0 – нет, 1 – да
Комментарий (показать)

Вы можете использовать старую опцию 2 и новую 902 вместе:

Номер опции

Эффект

Статус

2

902  
0 0 можно оставлять войска
0 1 можно оставлять войска или артефакты
1 0 нельзя оставлять ничего
1 1 можно оставлять артефакты

                   # = 903 – чит-коды и чит-меню: 0 – разрешить, 1 – запретить
Комментарий (показать)

Отключает читы и чит-меню (если разрешены). Если включается чит-меню, оно будет показано, даже если отключено этой опцией, но не будет производить какого-либо эффекта.
Примечание: хотя коды и отключены в сетевой игре, эта опция позволит предотвратить использование игроками читов при загрузке через одиночную игру.

                   # = 904, 905 – установки появлений сообщений об ошибке. Если 1, любое сообщение об ошибке не будет появляться, но опция 905 в любом случае установится на 1. Если опция 904 = 0, сообщение будет показано, и опция 905 установится на 1. Более того, если сообщение отменено, выполнение скрипта не будет прекращено (в секции текущего триггера). Так, вы можете использовать "рискованные" команды. Пример (показать)

                   # = 906 – получение существами опыта: 0 – могут получить, 1 – не могут.
Примечание: если вы установите эту опцию на 1, а система опыта будет включена, существа не будут получать опыт в битвах, но вы сможете установить опыт через ERM.


Q#
Выиграть или проиграть игру для ТЕКУЩЕГО игрока
         # = 0 – проиграть
         # = 1 – выиграть
Расширенный синтаксис:
Q#/1
Если вы используете второй фантомный параметр, победа или проигрыш игры выполняется другими функциями.
Используйте в случае неработоспособности предыдущего.
Пример (показать)


R#
Обновить экран
         # = 1 – обновить карту и экран героя (всё с правой стороны)
         # = 2 – обновить строку ресурсов
         # = 3 – обновить внутри окна героя. Подробнее

!!UN:R3/#; - обновить экран героя # (-1 – для текущего).
Команда работает ТОЛЬКО пока открыто окно героя (т.е. внутри триггера !?CM2).
Попытка использовать эту команду в другом месте вызовет вылет игры.
         # = 4 – обновить экран города (не используйте вне экрана города!)
Комментарий (показать)
К сожалению, в базовом ERM нет команды для обновления экрана встречи героев.
Однако, существует готовое решение для ERA - команда SN:D.


R5/$1/$2
Установить вид курсора
         $1 – тип курсора
         $2 – подтип курсора
Комментарий (показать)

Покажите любой диалог для обратного превращения курсора в стрелку. Если вы установили любой курсор, он будет возвращён на обычный после команды UN:R7.


R6/$
Ждать
         $ – время в мс (1000 = 1 секунда)


R7/$1/$2
R7/$1

Курсор мыши: скрытие и деактивирование
         $1 – показать (0) или скрыть (1) курсор
         $2 – разрешить (0) или запретить (1) изменения курсора
Комментарий (показать)

Когда вы посещаете любой объект (например, рыболовный колодец), триггер !?OB начинает работу, курсор исчезает. Так что, если ваш скрипт достаточно длинный, вы можете настроить курсор в виде песочных часов вручную. Затем, чтобы вернуть курсор по умолчанию, нужно сделать что-либо следующее:
         - начать новую игру
         - загрузить игру
         - любое сообщение (можно с ERM)
         - любой расширенный диалог WoG


S#1/#2/#3/#4/#5
Открыть (показать) часть карты (область – круг)
         #1 – X
         #2 – Y
         #3 – L (уровень)
         #4 – игрок
         #5 – радиус
Замечание: НЕ используйте эту команду для показа подземелья в одноуровневой карты (это повлечёт за собой критические ошибки в прорисовке)


T#1/#2/#3/$
Установить монстра для найма в замке
         #1 – тип города (0..8)
         #2 – уровень (0..6)
         #3 – базовый (0) или улучшенный (1)
         $ – тип монстра
Комментарий (показать)

Команда работает во всех городах, включительно ИИ. Вы можете установить команду как инструкцию. Помните, что вы можете усилить "важность" существа для ИИ установкой ИИ значения командой !!MA:I. Дополнительные ресурсы предполагаются только для жилища 7го уровня.


U#1/#2/?$
Сосчитать все объекты на карте
         #1 – тип объекта
         #2 – подтип объекта (-1 – любой)
         $ – кол-во объектов типа #1, подтипа #2 (только проверить или получить)
Комментарий (показать)

Если вы подсчитываете города, то помните, что в начале игры счётчик не учитывает случайные города (т.к. они имеют тип 77, а не 98). Будьте внимательны.
Пример:


U#1/#2/#3/#4
Получить координаты объекта
         #1 – тип объекта
         #2 – подтип объекта (-1 – любой)
         #3 – номер объекта (1…последний объект; -1 – с первого объекта, -2 – с последнего объекта)
         #4 – v-переменная с коодинатами: v[#4]=X; v[#4+1] = Y; v[#4+2] = L
Пример: Комментарий (показать)

Все объекты считаются так: слева направо, сверху вниз; поверхность, а потом подземелье.
0136
247
58
9
Техника быстрого поиска (показать)
Если вы используете синтаксис поиска объекта UN:Uтип/подтип/номер/номер_переменной, вы можете установить номер на -1. Это означает, что поиск объекта будет вестись, основываясь на координатах предыдущего найденного объекта того же типа.
В стандартном синтаксисе (номер = 1…) UN:U проверяет все объекты такого типа до нахождения искомого номера. Это долгий процесс на больших картах, особенно если это часто встречающийся объект.
С новым синтаксисом (номер = -1) координаты возвращаются в v[номер_переменной]/v[номер_переменной+1]/v[номер_переменной+2], и поиск следующего объекта ведётся не с начала карты, а с последнего найденного. Поясняю - процесс идёт быстрее, но требует вашего НЕ вмешательства в переменные с координатами последнего найденного объекта.
Пример 1 (показать)
  • Этот скрипт работает нормально
  • Этот скрипт работает неправильно! v1 была изменена
  • Этот скрипт работает нормально
  • Этот скрипт работает нормально
Пример 2 (показать)
Скрипт прокрутит перед вами все банки существ в обычном и обратном порядке.


V?$1/?$2
Получить версию WoG и используемого ERM.
         $1 – версия WoG (3.58 = 358)
         $2 – версия ERM (2.81 = 281)
Замечание: для ERA версия игры = 400, версия ERM = [версия ERA] × 1000
Комментарий (показать)

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


V?$1/?$2/?$3/?$4/?$5
Получить версию WoG и используемого ERM. Продвинутый синтаксис:

        $1 – версия WoG
        $2 – версия используемого ERM
        $3 – один или более людей в игре
	= 1 – человек один
	= 2 – больше одного
        $4 – один или более ПК в игре
	= 0 – один ПК
	= 1 – больше одного
        $5 – тип игры
	= 0 – один игрок
	= 1 – IPX
	= 2 – TCP/IP
	= 3 – Hot Seat
	= 4 – Direct Connect
	= 5 – модем
Расширенный синтаксис:
V?$1/?$2/$?3/?$4/?$5/?$6/?$7
        $1…$5 – см. выше
        $6 – чит-меню: активировано (1) или отключено (0)
        $7 – использование читов: было (1) или нет (0)
Комментарий (показать)
Вы не можете включить или отключить статус использования читов, но можете узнать его.
В мультиплеере коды не работают. Если вы отменили коды, это сработает для кодов с клавиатуры и для чит-меню (даже если оно было включено)


W#1/#2/#3/#4/#5
Сделать линию воды доступной для героя, но не для лодки.
         #1 – X1
         #2 – Y1
         #3 – X2
         #4 – Y2
         #5 – L (уровень)
Дополнительный синтаксис:
W#X1/#Y1/#X2/#Y2/#L/$
Поместить/удалить путь (бревна) на воде
         $ – поместить (1) или убрать (0)


X?$1/?$2
Получить размер карты
         $1 – номер переменной, куда занесётся размер (X=Y)
         $2 – равно 0 (один уровень) и 1 (подземелье/поверхность).
Можно только проверить или получить.
Пример (показать)