Разделы:   1 2 3 4 5 6

Библиотека функций UN:C

Команда UN:C работает с памятью. Используя её, можно редактировать даже те области героев, которые казались за гранью достижимого. Здесь приведено несколько полезных функций, не являющихся стандартными. Пользуйтесь!

Контроль типа нанимаемого в Портале Вызова существа

Вызов: #1:     № города (-1 = текущий)
$:        тип существа. -1 – значит нет Портала, или ещё не сгенерирован тип (сгенерируется при заходе в окно замка).
#2:     0 - установить $, любое другое значение - получить $.

Контроль кол-ва нанимаемых в Портале Вызова существ

Вызов: #1:     № города (-1 = текущий)
$:     кол-во существ
#2:     0 - установить $, любое другое значение - получить $.
Примечание - если на первой неделе в город ни разу не заходили (или нет Портала), тип и кол-во существ ещё не сгенерированы, и кол-во будет выдавать всякий мусор.

Прочтение результатов диалога HE:C

Позволяет после команды HE:C посмотреть, что осталось в верхних (добавляемых) слотах, и использовать её не только для добавления существ, но и для оставления, без особых трудностей. Для WoG 3.58f и TE.
Вызов: ?1,?3…?13 - типы существ в слотах 1..7 соответственно,
?2,?4…?14 - их кол-во.

 

Функция для работы со строками на низком уровне

Иногда при работе с !!UN:C требуется работать со строками. Приходится писать для этого функции. Написать их несложно, и я решил поделиться:

Получение адреса z-переменной номер x1 (возврат в x2)
Поддерживаются версии: 3.58f, TE

А теперь сразу же полезный скрипт, использующий их.

Проигрывание любой анимации на юните в бою


Данный скрипт позволяет проигрывать любую анимацию (из DEF) на любом юните в бою (т. е. не только из списка анимаций). Требует наличия функции 12925 для работы (см. выше).
Использование функции:
x1 - номер стека в бою
x2 - номер z-переменной, в которой хранится имя def-файла для проигрывания
Примечание: Для работы требуется функция 12925 из функций работы со строками
x3 - позиция относительно монстра:
0: Нижняя часть анимации совпадает с нижней частью существа (например, молитва)
1: Центр анимации совпадает с центром существа (например, инферно)
2: Анимация находится сверху существа (пример в голову не лезет)
3: Анимация находится спереди существа (срабатывание гномского сопротивления)
4: Анимация находится в углу возле атакующего героя
x4 - Полупрозрачность (0 - нету, т.е. анимация непрозрачна, 1 - анимация полупрозрачна)
К примеру, полупрозрачность - как молитва, воскрешение, лечение, страх, …
Непрозрачное: Мораль, проклятие, старость, болезнь, …

Работают любые def-файлы, хоть с карты приключений, любые. Анимация проигрывается один раз, после чего пропадает.

К сожалению скрипт сейчас лучше не использовать, т.к. имеют место некоторые проблемы с кешированием. "Хорошее" решение этой проблемы, к сожалению, найти не удалось…

Получение адресов переменных ВоГа

При работе с UN:C бывает нужно получить адрес какой-то Z-переменной.
Вот скрипт, записывающий адрес z1 в v4138.
Для WoG 3.58f и TE