Перемещает юнит
objUnit в точку с координатами
(
x,
y) на высоту
h над поверхностью
земли. У этой команды есть несколько тонкостей: дело в том, что
ПЗ при определении возможности юнита перейти в некоторую
точку использует лишь двумерные координаты юнита, физическая же модель в
ПЗ отсутствует полностью. Иными словами
координата
z объекта используется исключительно для его рисования на нужной высоте.
Так что хотя вы и можете заставить юнит "взлететь" в воздух, для игры он будет по прежнему оставаться на уровне
земли - отличие будет только визуальным. Если
h отлично от нуля, то юнит так и продожит ходить
по воздуху. Для того, чтобы вернуть его к нормальному режиму перемещения,
h нужно задать
равной нулю.
По видимому, синоним
SetCPFast().
SetCPFast ( objUnit , x ,
y , h )
Перемещает юнит
objUnit в точку с координатами
(
x,
y) на высоту
h над поверхностью
земли.
По видимому, синоним
SetCP().
Stand ( objUnit )
Изменяет режим перемещения юнита
objUnit на шаг.
Синоним
Walk().
Sentry ( objUnit , x ,
y )
Юнит
objUnit охраняет точку (
x,
y),
атакуя врагов в области видимости. После уничтожения противника возвращается в указанную точку.
Синоним
UMSentry().
См. также
Guard().
UMAg ( objUnit , float )
Юнит
objUnit пытается избежать врагов (должно быть сброшено агрессивное поведение
при помощи
UMClear() ).
UMAggression ( objUnit )
Юнит
objUnit автоматически атакует цели в пределах видимости.
UMClear ( objUnit )
Для юнита
objUnit сбрасываются режимы поведения - он игнорирует
все. Юнит
игрока-человека все же сохраняет способность изменять способ передвижения при нажатии соответствующих клавиш
(по умолчанию -
Z,
X,
C,
V).
UMFollow ( objUnitA , objUnitB )
Юнит
objUnitA начинает следовать за юнитом
objUnitB.
См. также
Follow().
Примечание игрока
nexys:
Применяя процедуру Follow мы заставляем обьект двигаться за другим,
но после сражения или другой смены поведения он возвращается на круги
своя (в смысле к предыдущей команде, до follow), а после UMFollow он
будет идти за объектом неустанно :-)
UMPlayer ( objUnit )
Юнит
objUnit подчиняется своему игроку, не предпринимая самостоятельных действий
(монстры не атакуют). Этот режим используется для юнитов игрока-человека.
UMSuspection ( objUnit )
Юнит
objUnit идет к любому врагу в пределах области видимости, но не атакует его.
UMStandard ( objUnit )
Юнит
objUnit идет к любому врагу в пределах области видимости и атакует его.
Это режим по умолчанию для монстров.
UMSentry ( objUnit , x ,
y )
Юнит
objUnit охраняет точку (
x,
y),
атакуя врагов в области видимости. После уничтожения противника возвращается в указанную точку.
Синоним
Sentry().
См. также
Guard().
Walk ( objUnit )
Изменяет режим перемещения юнита
objUnit на шаг.
Синоним
Stand().
Процедуры изменения параметров юнита
-
GiveDexterity ( objUnit , flAmount )
Добавляет юниту
objUnit flAmount пунктов ловкости.
Отдавать команду следует вне магазина.
-
GiveIntelligence ( objUnit , flAmount )
Добавляет юниту
objUnit flAmount пунктов разума.
Отдавать команду следует вне магазина.
-
GiveSkill ( objUnit , strSkill ,
flAmount )
Добавляет юниту
objUnit flAmount пунктов в навыке
strSkill. Возможные значения строки
strSkill:
- melee - ближний бой
- archery - стрельба
- science - ловкость рук
- elemental - магия стихий
- sense - магия чувств
- astral - магия астрала
Отдавать команду следует вне магазина.
-
GiveStrength ( objUnit , flAmount )
Добавляет юниту
objUnit flAmount пунктов силы.
Отдавать команду следует вне магазина.
-
GodMode ( 0 , nMode )
Переключает режим "бога" для лидера команды игрока-человека. Возможные значения
nMode:
- 0 - отключить режим "бога"
- 1 - лидер неуничтожим, при беге мана не расходуется
- 2 - лидер неуничтожим, при беге мана не расходуется, все противники убиваются с одного удара
Дополнительные процедуры воздействия
-
AddMob ( strMob )
Загружает
.mob-файл
strMob из подкаталога
MAPS. Имя файла указывается с
расширением. В этих файлах в частности задаются юниты и их позиции на карте. При загрузке файла юниты появляются на карте.
Именно таким образом в
ПЗ реализуются засады - например, засада у главных ворот на сингл-карте "Портал".
-
CastSpellPoint ( strSpell , x1 ,
y1 , x2 , y2 )
Применяет спелл
strSpell из точки
(
x1,
y1) в точку
(
x2,
y2).
В данной процедуре могут использоваться только спеллы, действующие на область.
См. также
задание спеллов и
CastSpellUnit().
-
CastSpellUnit ( strSpell , x ,
y , objUnit )
Применяет спелл
strSpell из точки
(
x,
y) на юнит
objUnit. В данной
процедуре могут использоваться спеллы, действующие как на область, так и на цель.
См. также
задание спеллов и
CastSpellPoint().
-
InflictDamage ( objUnit , flAmount )
Наносит юниту
objUnit повреждения в
flAmount пунктов. При этом
учитываются показатели брони юнита и наложенные на него защиты.
-
KillUnit ( objUnit )
Наносит повреждения юниту
objUnit, убивая его.
-
RemoveUnitFromServer ( objUnit )
Удаляет юнит
objUnit с сервера. Эту процедуру не следует путать с консольными командами
ban и
kick:
при применении
RemoveUnitFromServer() для юнита игрока-человека исчезнет лишь юнит, но сам игрок
останется подключенным к серверу - довольно забавная ситуация.
Процедуры AI
-
SetDiplomacy ( nPlayerA , nPlayerB ,
flDiplomacy )
Изменяет дипломатию - кем является игрок
nPlayerB для игрока
nPlayerA. Возможные значения
flDiplomacy:
- 1 - союзник
- 0 - нейтрал
- -1 - враг
См. также
SetPlayer(),
GetDiplomacy() и
GetPlayer().
Примеры:
- SetDiplomacy(0,
-
SetPlayer ( objUnit , nPlayer )
Объявляет юнит
objUnit принадлежащим игроку
nPlayer.
См. также
SetDiplomacy(),
GetDiplomacy() и
GetPlayer().
Процедуры управления областями
-
AddRectToArea ( idArea , x1 ,
y1 , x2 , y2 )
Добавляет к области
idArea прямоугольник
(
x1,
y1)-(
x2.
-
AddRoundToArea ( idArea , x ,
y , rad )
Добавляет к области
idArea круг радиуса
rad с центром в точке
(
x,
y).
-
DeleteArea ( idArea )
Удаляет область
idArea.
Процедуры динамического задания целей квеста
-
QFinish ()
Завершает текущее перечисление целей.
См. также
QStart
-
QuestComplete ( nPlayer ,
strQuestName )
Заявляет квест
strQuestName выполненным (это не отражается в окнах квестов), см. *.mq .
-
QObjGetItem ( idItem )
Добавляет цель: получение предмета
idItem.
-
QObjUse ( strObject , bfState )
Добавляет цель: перевести "рычаг"
strObject в состояние
bfState.
Пример:
- QObjUse("GetObject(44456)",1) - включить "рычаг" с идентификатором
44456.
-
QObjKillGroup ( strGroupName )
Добавляет цель: уничтожить группу с именем
strGroupName.
-
QObjKillUnit ( strUnitName )
Добавляет цель: уничтожить юнит с именем
strUnitName.
Пример:
- QObjKillUnit("GetObject(1001936)") - убить юнит с идентификатором
1001936.
-
QObjSeeUnit ( strUnitName )
Добавляет цель: увидеть юнит с именем
strUnitName.
Пример:
- QObjSeeUnit("GetObject(4517)") - увидеть юнит с идентификатором
4517.
-
QObjArea ( idArea )
Добавляет цель: попасть в область с идентификатором
idArea.
-
QStart ( strQuestName )
Начинает перечисление целей для квеста
strQuestName.
См. также
QFinish
Различные процедуры воспроизведения
-
PlayAnimation ( objUnit , strAnimation )
Воспроизводит анимационно-звуковую последовательность модели для юнита
objUnit.
Названия последовательностей и их содержание различны для разных видов юнитов - см.
res\database.res\*.adb .
Пример:
- PlayAnimation(GetLeader(),"uattack01")
-
PlayCamera ( strName )
Воспроизводит последовательность перемещений камеры файла с именем
strName
из подкаталога
CAMERA. Имя файла указывается с расширением.
-
PlayCamera ( strName )
Воспроизводит видеоролик с именем
strName из подкаталога
MOVIES.
Имя файла указывается с расширением.
-
PlayMusic ( 0 , strName )
Начинает воспроизведение мелодии с именем
strName из подкаталога
MOVIES.
Имя файла указывается
без расширения.
Генерация предметов и заклинаний
-
EraseQuestItem ( 0 , idQItem )
Убирает из обоза игрока квестовый предмет с кодом
idQItem.
Список квестовых предметов и их кодов вы можете увидеть
здесь.
См. также
GiveQuestItem().
-
FixItems ()
Чинит все предметы в обозе и на юнитах команды игрока-человека.
-
GiveItem ( 0 , strItem )
Помещает в обоз предмет, описываемый строкой
strItem.
См. также
задание предметов.
-
GiveMoney ( 0 , flAmount )
Дает игроку
flAmount денег.
См. также
give.
-
GiveQuestItem ( 0 , strQItem )
Дает игроку квестовый предмет с именем
strQItem.
Список квестовых предметов вы можете увидеть
здесь.
См. также
EraseQuestItem().
-
GiveUnitSpell ( objUnit , strSpell )
Дает юниту
objUnit спелл, описываемый строкой
strSpell.
Спелл помещается не в обоз, а в набор активных спеллов - если он полон, то ничего не происходит. В магазине эта
процедура не действует, а в игровой зоне, хотя фактически спелл дается игроку, не обновляет набор спеллов.
См. также
задание спеллов.
Аудиовизуальные эффекты: источники частиц, освещение, молнии
-
CreateLightning ( id ,
x1 , y1 , z1 ,
x2 , y2 , z2 ,
flIntensity )
создает молнию с идентификатором
id, бьющую из точки
(
x1,
y1,
z1) в точку
(
x2,
y2,
z2).
При параметре
flIntensity отличном от нуля молния имеет вид спелла "молния" и бьет
с интенсивностью
flIntensity. Если же
flIntensity равно нулю,
то молния имеет вид спелла "стена молний" и интенсивность по умолчанию.
-
CreateParticleSource ( id ,
x , y , z ,
rad , strType )
Создает источник частиц типа
strType с радиусом
rad и
идентификатором
id в точке
(
x,
y,
z). Возможны следующие типы
источника частиц:
- transform
- portalstar
- portal
- mushroom
- nuke
- geyser
- poisonfog
- smoke
- fire
- lightningblast
- fireblast
- campfire
- fireball
- firearrow
-
CreatePointLight ( id ,
x , y , z ,
rad ,
flR , flG , flB )
Создает источник света с идентификатором
id, радиусом
rad и
цветом (
flR,
flG,
flB) в точке
(
x,
y,
z).
-
DeleteLightning ( id )
Удаляет молнию с идентификатором
id.
-
DeleteParticleSource ( id )
Удаляет источник частиц с идентификатором
id.
-
DeletePointLight ( id )
Удаляет источник света с идентификатором
id.
-
MoveParticleSource ( id ,
x , y , z ,
flTime , bfRemove )
Перемещает источник частиц с идентификатором
id в точку
(
x,
y,
z) за время
flTime (измеряется в 1/15 секунды). Если
bfRemove -
истина, то после перемещения удаляет источник.
-
MovePointLight ( id ,
x , y , z ,
flTime , bfRemove )
Перемещает источник света с идентификатором
id в точку
(
x,
y,
z) за время
flTime (измеряется в 1/15 секунды). Если
bfRemove -
истина, то после перемещения удаляет источник.
-
SetParticleSourceSize ( id , rad )
Изменяет радиус источника частиц с идентификатором
id на
rad.
Прочие процедуры
-
ConsoleString ( str )
Выводит в консоли строку
str.
См. также
$,
# и
ConsoleFloat().
-
ConsoleFloat ( fl )
Выводит в консоли число
fl. В качестве
fl может выступать
вызов скриптовой функции.
См. также
скриптовые функции,
$,
# и
ConsoleString().
-
FixWorldTime ( flTime )
Устанавливает текущее время внутриигровых суток в
flTime (измеряется в часах),
запрещая его ход.
См. также
GetWorldTime(),
IsNight(),
RunWorldTime().
-
LeaveToZone ( 0 , strZone , 0 )
Перемещает партию в локацию с именем
strZone.
Следует, однако, учитывать, что эта команда не взаимодействует с логикой квестов, поэтому ее использование
может привести к непредвиденным последствиям.
См. также
список локаций.
-
RunWorldTime ( flTime )
Устанавливает текущее время внутриигровых суток в
flTime (измеряется в часах),
разрешая его ход.
См. также
GetWorldTime(),
IsNight(),
FixWorldTime().
-
SetBackgroudColor ( flR , flG ,
flB )
Устанавливает фоновый цвет на карте в
(
flR,
flG,
flB)
(фон перекрывается текстурами неба, поэтому результат будет заметен лишь
в пещерных картах).