Список скриптовых функций для игры "Проклятые Земли"

Функция Описание
ActivateTrap (
Trap: object, Activate: float)
Команда: ActivateTrap - деактивирует: Activate - 0 и активирует: Activate<>0 ловушку: Trap на игровой зоне. Например, на игровой зоне карты: Предгорья следует набрать в консоли команду: @ActivateTrap( GetObjectByID( '4515' ) , 1 ) будет активирована пирамида Орковского племени. Данная ловушка-Пирамида атакует только Дипломатическую группу - 0. Невозможно перенастроить дипломатию для объектов Ловушек с помощью команды: SetDiplomacy.
Add (
A: float, B: float): float
Функция: Add - возвращает сумму из двух чисел типа Float: A и В.
AddLoot (
nPlayer: float, PartyNameSend: string, PartyNameRecv: string)
Команда: AddLoot - добавляет предметы и деньги из обоза 'Партии': PartyNameSend в обоз НЕ текущей 'Партии': PartyNameRecv. Обе 'Партии' принадлежат 'Игроку': nPlayer. Не путать 'Обоз' и 'Рюкзак'. В случае если изменение текущей партии будет происходить на игровой зоне, то предметы из набора 'Рюкзак' всегда входящие в набор 'Обоза' будут так же скопированы в обоз 'Партии': PartyNameRecv. При выполнении команды: RedeployParty 'Рюкзак Партии': PartyNameSend обнулится. 'Рюкзак' новой партии будет так же пуст, хотя в инфоокне рюкзака останутся предметы, но на самом деле рюкзак предыдущей и текущей Партий будут пусты. Функция: GetLootItemsCount вернет значение 0.
AddMob (
FileNameMob: string)
Команда: AddMob - загружает файл 'Mob' с именем FileNameMob из подкаталога ...\MAPS\. Имя файла указывается с расширением и в кавычках. Файл должен иметь структуру Maps Object (*.mob) из проекта игры ПЗ. Принадлежность: Система.
AddObject (
grp: group, UnitMap: object)
Команда: AddObject - добавляет объект: Unit в 'Игровую' группу, инициализируя глобальную переменную: grp. Команду: AddObject нельзя применять из консоли, так как в ПЗ нет консольных команд создания глобальных переменных групп. Принадлежность: Игровые Группы.
AddRectToArea (
idArea: float, x1: float, y1: float, x2: float, y2: float)
Команда: AddRectToArea - добавляет принадлежность участка игровой зоны в квестовую область под кодом: idArea. Область описывается в виде прямоугольника, где (X1,Y1) и (X2,Y2) координаты его двух противоположных углов. (Левый - нижний и верхний - правый) (юго-западный и северо-восточный угол). Стороны прямоугольника всегда расположены параллельно к сторонам света. Если координаты второй точки меньше первой, то зоны не будет. На игровой зоне может существовать множество областей с одинаковым кодом: idArea. Например, команда: QObjArea может установить задачу 'Игроку' (команде Игроков): попасть в область под кодом: idArea - как одно из условий выполнения задания объявленного командой: QStart. В таком случае 'Игрок', должен попасть в любой из участков области с кодом: idArea.
AddRoundToArea (
idArea: float, x: float, y: float, rad: float)
Команда: AddRoundToArea - добавляет принадлежность участка игровой зоны в квестовую область под кодом: idArea. Участок области находится в точке: (x,y) с радиусом: rad. На игровой зоне может существовать множество областей с одинаковым кодом: idArea. Например, команда: QObjArea может установить задачу 'Игроку': попасть в область под кодом: idArea как одно из условий выполнения задания объявленного командой: QStart - в таком случае 'Игрок' должен попасть в любой из участков области с кодом: idArea.
AddUnitToParty (
nPlayer: float, 'PartyName::NamePersRes': string, NameUnitRes: string)
Команда: AddUnitToParty - добавляет игроку: nPlayer, в указанную партию: PartyName локализованного (озвученного) персонажа: NamePersRes из базы данных: texts.res. фактически добавляется персонаж: NameUnitRes из базы данных ресурсов игры. К текущей Партии можно добавить Персонаж без явного указания Партии: AddUnitToParty(nPlayer, NamePersRes : string, NameUnitRes : string). Не путать! Если нужно работать не с текущей группой или с вновь созданной, то всегда нужно указывать второй параметр как два параметра через делитель'PartyName::NamePersRes”.
AddUnitToServer (
NameUnitMap: string, NameUnitRes: string, NameUnitControl: string, x: float, y: float, z: float)
Команда: AddUnitToServer - устанавливает заготовку-объект: NameUnitRes на текущую карту в точку (x,y,z) из базы данных ресурсов игры. Объект будет иметь внутреннее имя: NameUnitMap и имя, отображаемое в инфоокнах: NameUnitControl. Большие и маленькие буквы внутреннего имени: NameUnitMap не различаются. Системная функция преобразования имени: (NameUnitMap : string) в код (idUnit : float) представляет все строчные символы имени как прописные - к верхнему регистру. Не рекомендуется возвращать код: idUnit от объекта добавленного на карту командой: AddUnitToServer с помощью функции: GetObjectId. Полученный на карте объект командой: AddUnitToServer будет иметь код - 10 символов, а команда: GetObjectId работает с ошибкой с десятизначными силами.
AddUnitUnderControl (
nPlayer: float, Unit: object)
Команда: AddUnitUnderControl - добавляет в контроль панель игрока: nPlayer иконку объекта: Unit. Не изменяет дипломатии в группах и не вызывает никаких изменений в присоединенном объекте: Unit. Игрок получает возможность выделить в коллекции управляемых объектов присоединенный объект: Unit. Видимо команда была предназначена для возможности захвата в плен на игровой зоне врагов, но не была реализована в игре.
AlarmPosX (
nAlarm: float): float
Функция: AlarmPosX - возвращает позицию точки тревоги по оси: x установленной командой: InvokeAlarm, для переменной: nAlarm.
AlarmPosY (
nAlarm: float): float
Функция: AlarmPosY - возвращает позицию точки тревоги по оси: y установленной командой: InvokeAlarm, для переменной: nAlarm.
AlarmTime (
nAlarm: float): float
Функция: AlarmTime - возвращает значение переменной: nAlarm. При активации переменной: nAlarm командой: InvokeAlarm, ей присваивается стартовое значение. Стартовое значение - есть сумма количества времени всех промежутков времени, между активаций и деактиваций всех предыдущих переменных: nAlarm с начала игры. Активным может быть только один номер переменной. В переменную: nAlarm после активации, постоянно добавляется значение счетчика времени (1/15 сек). Активируя следующий номер переменной: nAlarm командой: InvokeAlarm одновременно деактивируется предыдущая переменная, но не обнуляется. Номер переменной необязательно должен быть по порядку и можно повторно инициализировать тот же номер переменной. Чтобы сбросить все значения переменных: nAlarm в ноль и остановить счетчик в глобальной переменной, нужно вызвать команду: InvokeAlarm с первым параметром = 0 : InvokeAlarm(0,0,0)
Any (
GlobalVariable: object, grp: group, bool: float): float
Функция: Any - Теоретически: Возвращает истину или ложь, если в группе: grp какой-нибудь объект-юнит: Unit будет соответствовать условию сравнения в параметре: bool. Процедура работает как цикл, перебирая по очереди все объекты в группе: grp устанавливая в переменную: Unit экземпляр - объект из группы: grp. Параметр: grp может быть введен указатель на любой набор групп: Дипломатическая группа, Игровая или смешанная - командами: GroupAdd или GroupCross.
AttachParticles (
id: float, Object: object)
Команда: AttachParticles - присоединяет источник частиц с идентификатором: id к юниту: object . Источник будет двигаться с постоянным смещением от юнита. Это смещение равно координатам( x , y , z ) , взятым в процедуре CreateParticleSource при создании данного источника. Пример: @CreateParticleSource( 1
AttachParticleSource (
id: float, idObject: float)
Команда: AttachParticleSource - присоединяет источник частиц с идентификатором: id к юниту с идентификатором: idObject. Источник будет двигаться с постоянным смещением от юнита. Это смещение равно координатам( x , y , z ) , взятым в процедуре CreateParticleSource при создании данного источника .
Attack (
UnitA: object, UnitB: object)
Команда: Attack - заставляет юнит: UnitA атаковать юнит: UnitB.
BlockUnit (
Unit: object, Block: float)
Команда: BlockUnit - устанавливает режим управление Игроком персонажа: Unit. Персонаж не подчиняется Игроку: Block - 1, Персонаж подчиняется Игроку: Block - 0. По умолчанию: Персонажи доступны к управлению Игроком в момент добавления в партию. Устанавливать команду: BlockUnit на врагов бесполезно, так как враги не подчиняются Игроку.
Cast (
Unit: object, x: float, y: float)
Команда: Cast - заставляет объект: Unit применять активное заклинание, находящееся у объекта: Unit в точку: ( x , y ) на карте. Активное заклинание у объекта должно быть предназначено для места, а не для целей. Активное заклинание можно установить командой: SetSpellAggression.? В игре команда: Cast не используется. Для замены команды: Cast существуют расширенные команды аналоги: CastSpellPoint и CastSpellUnit.
CastSpellPoint (
constSpell: string, x1: float, y1: float, x2: float, у: float)
Команда: CastSpellPoint - применяет заклинание на местность игровой зоны. Заклинания: constSpell следует писать в кавычках, и только те, что действуют на область (не на цель). Конструкция заклинания: constSpell имеет такую же каноническую форму, как и в других местах игры, где применяется заклинания. Переменные: (x1,y1) указывают координаты на карте игровой зоны откуда будет стартовать визуальный эффект заклинания, переменные: (x2,у2) указывают координаты на карте игровой зоны, место на которое будет применено заклинание: constSpell.
CastSpellUnit (
constSpell: string, x: float, y: float, Unit: object)
Команда: CastSpellUnit - применяет заклинание на объект: Unit. Заклинания: constSpell следует писать в кавычках. Конструкция заклинания: constSpell имеет такую же каноническую форму, как и в других местах игры, где применяется заклинания. Переменные: (x, y) указывают координаты на карте игровой зоны откуда будет стартовать визуальный эффект заклинания: constSpell.
ConsoleFloat (
float)
Команда: ConsoleFloat - предназначена для отладки игры. Выводит в консоли число, возвращаемое функциями. Синоним #
ConsoleString (
string)
Команда: ConsoleString - предназначена для отладки игры. Выводит в консоли текстовые строки, возвращаемые функциями. Синоним $
CopyItems (
nPlayer: float, NameSendRES: string, 'PartyName::NameRecvRES': string)
Команда: CopyItems - копирует все снаряжение (не обоз и не рюкзак) объекта-юнита: NameSendRES из текущей партии в объект-юнит: NameRecvRES принадлежащий НЕ текущей Партии. Обе Партии принадлежат игроку под номером: nPlayer. Имена объектов-юнитов - это внутренние имена в партиях. В третьем параметре нужно явно указать принадлежность объекта: NameRecvRES к Партии: PartyName, указать в кавычках и с разделителем два двоеточия: 'PartyName::NameRecvRES'
CopyLoot (
nPlayer: float, PartyNameSend: string, PartyNameRecv: string)
Команда: CopyLoot - копирует обоз: PartyNameSend (предметы и деньги) в обоз НЕ текущей Партии: PartyNameRecv. При этой операции предварительно обоз: PartyNameRecv полностью обнуляется. Копирование происходит между партиями принадлежащим игроку под номером: nPlayer. Не путать обоз и рюкзак. В случае если изменение текущей партии будет происходить на игровой зоне, то предметы из набора Рюкзак всегда входящие в набор Обоза будут также скопированы в обоз Партии: PartyNameRecv. При выполнении команды: RedeployParty Рюкзак Партии: PartyNameSend обнулится. Рюкзак новой партии будет так же пуст, хотя в инфоокне рюкзака останутся предметы, но на самом деле рюкзак предыдущей и текущей Партий будут пусты. Функция: GetLootItemsCount вернет значение 0.
CopyStats (
nPlayer, PartyNameSend: string, PartyNameRecv: string)
Команда: CopyStats - копирует всю статистику (навыки, умения, параметры) объекта-юнита: NameSendRES из текущей партии в объект-юнит: NameRecvRES, который принадлежит НЕ текущей Партии. Обе Партии принадлежат игроку под номером: nPlayer. Имена объектов-юнитов - это внутренние имена в партиях. В третьем параметре нужно явно указать принадлежность объекта: NameRecvRES к Партии: PartyName, указать в кавычках и с разделителем два двоеточия: 'PartyName::NameRecvRES'
Crawl (
Unit: object)
Команда: Crawl - отдает команду объекту: Unit присесть.
CreateFX (
x: float, y: float, z: float, Volume: float, rad: float, NameWav: string)
Команда: CreateFX - один раз воспроизводит звук из WAV файла: NameWav в точке: (x,y,z) с радиусом слышимости: rad громкостью: Volume.
CreateFXSource (
id: float, x: float, y: float, z: float, Volume: float, rad: float, NameWav: string)
Команда: CreateFXSource - устанавливает зацикленный звуковой источник: NameWav под кодом: id в точке: (X,Y,Z) с радиусом слышимости: rad и громкостью: Volume. Зацикленный звук можно удалить с помощью команды: DeleteFXSource по его : id.
CreateLightning (
id: float, x1: float, y1: float, z1: float, x2: float, y2: float, z2: float, Intensity: float)
Команда: CreateLightning - создает постоянно действующую застывшую молнию, бьющую из точки: (x1,y1,z1) в (x2,y2,z2) с интенсивностью: Intensity. При положительном значении: Intensity точка: (x2,y2,z2) - представляет собой шар - как результат удара молнии в объект. При отрицательном значении: Intensity молния представляет собой застывшую молнию природного происхождения. При значении: Intensity = 0 молния представляет собой вид заклинания: Преграда из молний с интенсивностью (толщиной разрядов) по умолчанию. Значение интенсивность: Intensity отличное от нуля, графически представляется как толщина разрядов. Не следует устанавливать значение Intensity большее 20, так как это сильно замедляет игру на игровой зоне. Если установить значение: Intensity = 100, то получится как бы эффект северного сияния. Повторное создание молнии командой: CreateLightning с одинаковым кодом: id молнию не удаляет. Таким образом, можно создать множество молний на игровой зоне с одним и тем же кодом: id. Координаты точек: (x1,y1,z1) и (x2,y2,z2) в команде: CreateLightning находятся в МСК и не зависят от поверхности и рельефа игровой зоны, следует это учесть, устанавливая значение координат: z1 и z2. Удалить все подмножество молний с одинаковым кодом можно командой: DeleteLightning.
CreateParticleSource (
id: float, x: float, y: float, z: float, R: float, сonstParticleSource: string)
Команда: CreateParticleSource - создает источник частиц типа: constParticleSource с радиусом: R и идентификатором: id в точке (x,y,z) . При отрицательном значении радиуса источник частиц переворачивается по вертикали. На данный момент известны следующие константы источника частиц (в процедуре пишутся в кавычках): transform; portalstar; portal; mushroom; nuke; geyser; poisonfog; smoke; fire; lightningblast; fireblast; campfire; fireball; firearrow; teleport."
CreateParty (
nPlayer: float, PartyName: string)
Команда: CreateParty - создает новую Партию под именем: PartyName (или замещает существующую партию, с таким же именем) в наборе партий игрока под номером: nPlayer. Строчные и прописные буквы в имени партии: PartyName отличаются.
CreatePointLight (
id: float, x: float, y: float, z: float, rad: float, R: float, G: float, B: float)
Команда: CreatePointLight - создает источник света с идентификатором: id, радиусом: rad и цветом (R,G,B) в точке (x,y,z). С помощью этой команды можно установить освещение от костра или факела ночью или незначительное затемнение днем - густой лес. Положительное значение: rad - освещение, отрицательное значение - затемнение. Точку освещения по высоте: z нужно рассчитывать, относительно Мировой системы координат (МСК), а не с поверхности карты.
CreateRandomizedFXSource (
id: float, x1: float, x2: float, y1: float, y2: float, z1: float, z2: float, Volume: float, rad: float, NameWav: string)
Команда: CreateRandomizedFXSource -
DeleteArea (
idArea: float)
Команда: DeleteArea - удаляет все участки областей на карте с идентификатором: idArea.
DeleteFXSource (
id: float)
Команда: DeleteFXSource - удаляет все звуковые участки на игровой зоне имеющие идентификатор: id.
DeleteLightning (
id: float)
Команда: DeleteLightning - удаляет все молнии на игровой зоне имеющие идентификатор: id.
DeleteParticleSource (
id: float)
Команда: DeleteParticleSource - удаляет все источники частиц на игровой зоне имеющие идентификатор: id.
DeletePointLight (
id: float)
Команда: DeletePointLight - удаляет с игровой зоны множество источников света с идентификатором: id.
DistanceUnitPoint (
Unit: object, x: float, y: float): float
Функция: DistanceUnitPoint - возвращает прямое расстояние между объектом: Unit и точкой на карте: (x,y).
DistanceUnitUnit (
UnitA: object, UnitB: object): float
Функция: DistanceUnitUnit - возвращает прямое расстояние между объектами: UnitA и UnitB.
Div (
A: float, B: float): float
Функция: Div - возвращает результат деления числа: A деленное на B.
EnableLever (
Lever: object, Enable: float)
Команда: EnableLever - устанавливает доступность для игрока к управлению механизмом: Lever. Недоступно: Enable = 0 и доступно: Enable = 1. Доступность к использованию рычага отображаются графически изменением курсора на мацающую руку при наведении его на объект: Lever. На карте Предгорья можно установить доступ даже к выключенному рычагу от пирамиды: @EnableLever(GetObjectByID( '4636' ),1)
EraseQuestItem (
nPlayer: float, idQuestItem: float)
Команда: EraseQuestItem - удаляет из обоза игрока с номером: nPlayer квестовый предмет под кодом: id
Every (
GlobalVariable: object, grp: group, bool: float): float
Функция: Every - Теоретически: Возвращает истину или ложь, если в группе: grp все объекты-юниты: Unit будут соответствовать условию сравнения в параметре: bool. Процедура работает как цикл, перебирая по очереди все объекты в группе: grp устанавливая в переменную: Unit экземпляр - объект из группы: grp. Параметр: grp может быть введен указатель на любой набор групп: Дипломатическая группа, Игровая или смешанная - командами: GroupAdd или GroupCross.
FixItems (
)
Команда: FixItems - чинит все предметы в обозе, в рюкзаке, одежду на теле персонажа и оружие, но только у текущей Партии.
FixWorldTime (
Time: float)
Команда: FixWorldTime - устанавливает фиксированное время: Time на игровой зоне. Часы в ПЗ не идут.
Follow (
UnitA: object, UnitB: object)
Команда: Follow - одноразово отдает команду объекту: UnitA следовать за объектом: UnitB. После боя команда отменяется. Сходные свойства поведения у команды: UMFollow.
For (
GlobalVariable: object, grp: group)(Command)
Команда: For - безусловный перебор элементов объектов в игровой группе: grp. Каждый цикл инициализирует глобальную переменную, устанавливая в нее экземпляр: object из коллекции группы: grp. В теле цикла, безусловно, исполняется весь список команд: Command. Процедура работает как цикл, перебирая по очереди все объекты в группе: grp устанавливая в переменную: Unit экземпляр - объект из группы: grp. Параметр: grp может быть введен указатель на любой набор групп: Дипломатическая группа, Игровая или смешанная - командами: GroupAdd или GroupCross.
ForIf (
GlobalVariable: object, grp: group, condition: float)(Command)
Команда: ForIf -
GetAIClass (
Unit: object): float
Функция: GetAIClass - возвращает класс групп рас: AI для объекта: Unit. В ПЗ все объекты: Unit принадлежат к расам, расы группируются по классам. Значение принадлежности объектов к расам можно найти в таблице: RaceModels, по классам в поле: AI Class Stay. Для несуществующего объекта на карте результат всегда - (-1) ( минус один ).
GetBSZValue (
x: float, y: float): float
Функция: GetBSZValue - возвращает высоту местности на карте в точке с горизонтальными координатами: ( x , y ) . Отличие от команды: GetZValue в том, что если в точке: (х,у) находится незамёрзший водоём ( озеро лавы ), то выводится высота поверхности воды ( лавы ), а не дна. В остальных случаях выводимые значения совпадают с командой: GetZValue.
GetDiplomacy (
nDiplomacyGroupA: float, nDiplomacyGroupB: float): float
Функция: GetDiplomacy - возвращает тип дипломатии : кем является Дипломатическая группа юнитов под номер nDiplomacyGroupA для Дипломатической группы: nDiplomacyGroupB, в наборе Дипломатических групп на текущей игровой зоне. Возможные значения: 1 - союзник ; 0 - нейтрал ; -1 - враг."
GetFutureX (
UnitMap: object, Time: float): float
Функция: GetFutureX - возвращает значение координаты: Х объекта: UnitMap предсказанное через время: Time. Время: Time измеряется в единицах, равных 1/15 секунды на нормальной скорости игры. Чем меньше значение времени: Time тем точнее результат. В скриптах эта функция применяется для реалистичного отображения атаки заклинаниями у врагов. Враги могут ставить заклинания, атаковать на опережение. В движке ПЗ метод предсказания может быть использован в сетевой игре на слобопропускных каналах сети.
GetFutureY (
UnitMap: object, Time: float): float
Функция: GetFutureY - возвращает значение координаты: y объекта: UnitMap предсказанное через время: Time. Время: Time измеряется в единицах, равных 1/15 секунды на нормальной скорости игры. Чем меньше значение времени: Time тем точнее результат. В скриптах эта функция применяется для реалистичного отображения атаки заклинаниями у врагов. Враги могут ставить заклинания, атаковать на опережение. В движке ПЗ метод предсказания может быть использован в сетевой игре на слобопропускных каналах сети.
GetLeader (
): object
Функция: GetLeader - возвращает объект юнита - лидера команды текущей Партии. В сингле это будет Зак, а в мультиплеере - действующий персонаж игрока. Видимо в этой функции не хватает параметра: nPlayer.
GetLeverState (
Lever: object): float
Функция: GetLeverState - возвращает значение: float - 0, если механизм не приведен в действие и значение: float - 1, если механизм приведен в действие. Команда, устанавливающая состояние механизма: SwitchLeverState. На карте Предгорья можно проверить состояние рычага от Пирамиды: #GetLeverState(GetObjectByID( '4636' )).
GetLootItemsCount (
nPlayer: float): float
Функция: GetLootItemsCount - возвращает количество удачных краж и количество взятых бонусов (не денег, не всего предметов) найденных, украденных, снятых с врагов или трупов на игровой зоне, в то числе и квестовых предметов. Фактически показывает количество строк предметов в «Текстовом инфоокне» рюкзака на игровой зоне у текущей Партии, принадлежащих игроку под номером: nPlayer. Если в одиночной игре убить Атаманшу, у которой есть два предмета: руна «Усиление» и квестовый предмет: «Шило», в задании «Инструменты», предварительно не обворовывая её то, после поднятия трупа Атаманши функция: GetLootItemsCount вернет значение = 2, так как за один раз с трупа Атаманши будет снято два предмета. Если убить два одинаковых кабана и поднять два идентичных предмета: «Тонкая кожа» с каждого кабана, то после поднятия, функция: GetLootItemsCount так же вернет значение=2, хоть и предметы одинаковые. Новый вход на игровую зону обнуляет рюкзак и «Текстовое инфоокно». Если изменить текущую партию на игровой зоне, то количество строк предметов в «Текстовом инфоокне» не будет совпадать со значением возвращаемым функцией: GetLootItemsCount. В таком случае, функция: GetLootItemsCount будет возвращать значение меньшее, чем количество строк предметов в «Текстовом инфоокне». Так как смена текущей Партии очищает рюкзак, но не очищает «Текстовое инфоокно».
GetMercsNumber (
nPlayer: float): float
Функция: GetMercsNumber - возвращает число наемников в текущей Партии Игрока под номером: nPlayer не включает лидера текущей Партии.
GetMoney (
nPlayer: float): float
Функция: GetMoney - возвращает количество денег у текущей Партии игрока номер nPlayer. Фактически, команда показывает кошелек текущей 'Партий' игрока: nPlayer на игровой зоне. Кошелек текущей Партии на игровой зоне и в лагере - всегда равны. Можно сказать, что партия таскает с собой все свои деньги.
GetObject (
idObject: float): object
Функция: GetObject - возвращает экземпляр: object для объекта с идентификатором: idObject. Не работает с десятизначными числами. Если код: idObject десятизначное число, то следует использовать функцию: GetObjectByID.
GetObjectByID (
idObject: string): object
Функция: GetObjectByID - возвращает экземпляр: object для объекта с идентификатором: idObject , Цифровое значение: idObject должно быть заключено в кавычки. В отличие от функции: GetObject, функция: GetObjectByID допускает числовое значение, состоящее из десяти цифр.
GetObjectByName (
NameUnitMap: string): object
Функция: GetObjectByName - возвращает экземпляр: object для объекта с внутреигровым именем: NameUnitMap.
GetObjectID (
Object: object): float
Функция: GetObjectID - возвращает идентификатор объекта: idObject. К классу Objects относятся не только Units, но и предметы, например: сундуки, ящики....? Функция: GetObjectID - возвращает правильно только те идентификаторы объектов, которые имеют код: idObject не более 10 цифр, Так как системная функция ПЗ, при получения кода: idObject из внутреннего имени объекта, использует десятизначный, целочисленный формат. Нельзя использовать эту функцию для возврата идентификатора объекта-юнита созданного на карте с помощью команды: AddUnitToServer или не присвоенного в модуле файла: Maps Object (*.mob) кода: idUnit меньшего, чем 10 цифр - в этом случае функция: GetObjectID будет возвращать округленные значения.
GetPlayer (
Unit: object): float
Функция: GetPlayer - возвращает номер дипломатической группы, к которой принадлежит объект юнит: Unit.
GetPlayerUnits (
nDiplomacyGroup: float): group
Функция: GetPlayerUnits - возвращает Дипломатическую группу юнитов, состоящую в наборе Дипломатических групп под номером nDiplomacyGroup.
GetUnitOfPlayer (
nPlayer: float, nUnitInCurrentParty: float): object
Функция: GetUnitOfPlayer - возвращает экземпляр объекта персонажа из набора текущей Партии игрока: nPlayer. Выбор объекта происходит по номеру: nUnitInCurrentParty в наборе текущей Партии. Номер: nUnitInCurrentParty присваивается объекту по номеру очередности добавления в Партию и сортируется (сдвигается) в случае смерти или удаления юнитов с меньшим значением: nUnitInCurrentParty. Второй параметр: nUnitInCurrentParty функции: GetUnitOfPlayer - номер, а не код. Не путать Партию с Дипломатической группой или Игровой группой.
GetWorldTime (
): float
Функция: GetWorldTime - возвращает текущее время внутриигровых суток ( в часах ).
GetX (
Object: object): float
Функция: GetX - возвращает текущую координату: 'x', соответственно, для юнита или предмета (object) на карте относительно МСК системы координат. Во всех функциях ПЗ, системы координат МСК и ОСК по координате: 'x' совпадают.
GetY (
Object: object): float
Функция: GetY - возвращает текущую координату: 'y', соответственно, для юнита или предмета (object) на карте относительно МСК системы координат. Во всех функциях ПЗ, системы координат МСК и ОСК по координате: 'y' совпадают.
GetZ (
Object: object): float
Функция: GetZ - возвращает текущую координату: 'z', соответственно, для юнита или предмета (object) на карте относительно МСК системы координат. Системы координат МСК и ОСК по координате: z практически никогда не совпадают. Начало отсчета по координате: 'z' в ОСК - это точка на поверхности карты, где в данный момент находится объект.
GetZValue (
x: float, y: float): float
Функция: GetZValue - возвращает высоту твёрдой поверхности карты (независимо от наличия над ней слоя воды или лавы ) в точке с горизонтальными координатами( x , y ), но по команде в консоли: filter graphics 1 всегда выводится чуть меньшая третья координата. Функция: GetZValue несколько отличия от функции: GetBSZValue.
GiveDexterity (
Unit: object, Amount: float)
Команда: GiveDexterity - добавляет объекту юниту: Unit пунктов ловкости: Amount. Работает только на игровых зонах. Функция одинаково воздействует как на врагов, так и для персонажей игроков.
GiveIntelligence (
Unit: object, Amount: float)
Команда: GiveIntelligence - добавляет объекту юниту: Unit пунктов разума: Amount . Работает только на игровых зонах. Функция одинаково воздействует как на врагов, так и на персонажей в Партии Игрока.
GiveItem (
nPlayer: float, Item: string)
Команда: GiveItem - помещает игроку: nPlayer в Рюкзак (не только в обоз) текущей Партии предмет (не квестовый), описываемый строкой Items . Предмет описывается строкой одного из следующих форматов : '. [[ ]]' - для доспеха или оружия ( описание заклинания пишется в квадратных скобках, и эта часть строки необязательна ) ; 'instruction weapon . ' - для чертежа оружия ; 'instruction armor . ' - для чертежа доспеха ; 'instruction quick item . ' - для чертежа жезла ; 'prototype . ' - для основы заклинания ; 'rune . ' - для руны ; 'material . [[]] ' - для материала ( количество пишется в квадратных скобках, и эта часть строки необязательна ) ; Примеры : 'bone spear . dragon green bones' - копье из кости зеленого дракона ; 'crystal crossbow . diamond[weak{it;d2;d2;m2;m2;m2}]' - алмазный арбалет с ослаблением ; 'material . steel[25]' - 25 кусков стали."
GiveMoney (
nPlayer: float, Money: float)
Команда: GiveMoney - добавляет в кошелек объекта количество денег: Money. Команда: GiveMoney не работает в магазине. У объектов принадлежащих Партиям индивидуальный кошелек пуст.
GiveQuestItem (
nPlayer: float, QuestItem: strin)
Команда: GiveQuestItem - добавляет квестовый предмет в рюкзак текущей Партии Игрока. Рюкзак имеет четыре места. Переполнение квестовых предметов в рюкзаке не взывает ошибки, в случае переполнения рюкзака, квестовые предметы добавляются в обоз.
GiveSkill (
Unit: object, Skill: string, Amount: float)
Команда: GiveSkill - добавляет количество пунктов: Amount параметру навык: Skill объекту: Unit. Механизм добавления пунктов навыка командой: GiveSkill делится на три этапа: 1- вычисление необходимого количество опыта для текущего добавления пунктов навыка, 2 - добавление вычисленного количества опыта объекту: Unit (не Партии!). 3 - добавления навыка за счет добавленного опыта, тем самым увеличивается значения переменных объекта зависимых от количества опыта - это параметры: 'Здоровье' и 'Выносливость' объекта.
GiveStrength (
Unit: object, Amount: float)
Команда: GiveStrength - добавляет объекту юниту: Unit пунктов силы: Amount . Работает только на игровых зонах. Функция одинаково воздействует как на врагов, так и для персонажей игроков.
GiveUnitQuestItem (
Unit: object, QuestItem: string)
Команда: GiveUnitQuestItem - добавляет квестовый предмет под именем: QuestItem в рюкзак объекта: Unit (сундук). Если объект член 'Партии' Игрока, то квестовый предмет добавляется в обоз партии.
GiveUnitSpell (
Unit: object, sSpell: string)
Команда: GiveUnitSpell - дает объекту: Unit Заклинание, описанное строкой Spell. Заклинание помещается не в обоз, а в набор активных заклинаний - если он полон, то ничего не происходит. В магазине эта процедура не действует, а в игровой зоне, хотя фактически заклинание дается игроку, не обновляет набор заклинаний
GodMode (
nPlayer: float, Mode: float)
Команда: GodMode - устанавливает текущей партии игрока под номером: nPlayer режим: Mode - 0 значение по умолчанию, Mode - 1 партия неубиваемы при беге мана нерасходуется, Mode - 2 члены партии неубиваемы, при беге мана нерасходуется и любой юнит из партии убивает врага с одного удара.
GroupAdd (
grpA: group, grpB: group): group
Функция: GroupAdd - возвращает группу как набор, из объектов полученный в результате сравнения двух групп объектов, которые есть хотя бы в одной из групп: grpA или grpB. Работает с любыми экземплярами групп: 'Составными ', 'Дипломатическими' и 'Игровыми'. Для 'Игровых' групп можно использовать эту функцию только в скриптах на уровне модуля карты, так как параметры: grpA и grpB следует вводить только как глобальные переменные.?
GroupCross (
grpA: group, grpB: group): group
Функция: GroupCross - возвращает группу как набор из объектов пересечения групп объектов, которые есть как в группе: grpA, так и в группе: grpB. Работает с любыми экземплярами групп: 'Составными ', 'Дипломатическими' и 'Игровыми'. Для 'Игровых' групп можно использовать эту функцию только в скриптах на уровне модуля карты, так как параметры: grpA и grpB следует вводить только как глобальные переменные.?
GroupHas (
grp: group, Unit: object): float
Функция: GroupHas - возвращает значения: истину = 1 - если в группе: grp содержится объект: Unit. Работает с любыми экземплярами групп: 'Составными ', 'Дипломатическими' и 'Игровыми'. Для 'Игровых' групп можно использовать эту функцию только в скриптах на уровне модуля карты, так как параметры: grp следует вводить только как глобальные переменные.?
GroupSee (
grp: group): group
Функция: GroupSee - глаза какой-либо группы, возвращает группу как набор из объектов, видимый в текущий момент из глаз группы: grp. Члены группы::grp могут видеть друг друга. Соответственно, в этом случае в группу войдут и юниты из группы: grp. Если юниты из группы не видят друг друга и не видят никого, то функция возвращает пустое значение. Работает с любыми экземплярами групп: Составными , Дипломатическими и Игровыми. Для Игровых групп можно использовать эту функцию только в скриптах на уровне модуля карты, так как параметры: grp следует вводить только как глобальные переменные.?
GroupSize (
grp: group): float
Функция: GroupSize - возвращает число юнитов в группе: grp. Работает с любыми экземплярами групп: 'Составными ', 'Дипломатическими' и 'Игровыми'. Для 'Игровых' групп можно использовать эту функцию только в скриптах на уровне модуля карты, так как параметры: grp следует вводить только как глобальные переменные.?
GroupSub (
grpA: group, grpB: group): group
Функция: GroupSub - возвращает группу как набор из объектов, состоящую из тех юнитов группы grpA, которых нет в grpB. Работает с любыми экземплярами групп: 'Составными ', 'Дипломатическими' и 'Игровыми'. Для 'Игровых' групп можно использовать эту функцию только в скриптах на уровне модуля карты, так как параметры: grpA и grpB следует вводить только как глобальные переменные.?
GSDelVar (
nPlayer: float, Var: string)
Команда: GSDelVar - удаляет переменные с именем: Var у игрока номер: nPlayer.
GSGetVar (
nPlayer: float, Var: string): float
Функция: GSGetVar - возвращает значение переменной с именем: Var у игрока номер: nPlayer.
GSSetVar (
nPlayer: float, Var: string, nVar: float)
Команда: GSSetVar - устанавливает значение: nVar в переменную с именем: Var у игрока номер: nPlayer. ?
GSSetVarMax (
nPlayer: float, Var: string, nVar: float)
Команда: GSSetVarMax - устанавливает значение: nVar в переменную с именем: Var у игрока номер: nPlayer. ?
Guard (
Unit: object, x: float, y: float, rad: float)
Команда: Guard - отдает команду юниту: Unit, охранять территорию с радиусом: rad с центром в точке: (x,y). Юнит самостоятельно передвигается по указанной зоне, патрулируя ею.
HaveItem (
nPlayer: float, idQuestItem: float): float
Функция: HaveItem - возвращает истина: 1, если у Игрока под номером: nPlayer в обозе или в рюкзаке есть квестовых предмет под кодом: idQuestItem, в противном случае ложь - 0
HideObject (
Unit: object, Hide: float)
Команда: HideObject - работает только на брифинг зонах. Объект-юнит: Значение параметра: Hide - 1 делает: Unit невидимым на брифинг зоне, значение параметра: Hide - 0 делает объект: Unit видимым на брифинг зоне.
HP (
Unit: object): float
Функция: HP - возвращает текущее значение параметра: здоровье у объекта Unit. Это число учитывает эффекты заклинаний ослабления и усиления, наложенных на объект.
Idle (
Unit: object)
Команда: Idle -
InflictDamage (
Unit: object, Amount: float)
Команда: InflictDamage - наносит повреждения в количестве: Amount без учета показателя брони объекту-юниту: Unit. Если уничтожить врага с помощью этой команды, то опыт за убийство все равно достанется текущей партии и группе?
InvokeAlarm (
nAlarm, x: float, y: float)
Команда: InvokeAlarm - многофункциональная команда. Активирует переменную: nAlarm. Устанавливает значение переменной: nAlarm равной сумме времени всех предыдущих промежутков активаций и деактиваций этих переменных с момента начала игры. В переменную: nAlarm после активации, постоянно добавляется значение счетчика времени (1/15 сек). Активным может быть только один номер переменной. Активируя следующий номер переменной: nAlarm, команда: InvokeAlarm одновременно деактивируется предыдущую переменную, но не обнуляет ее. Номер следующей инициализируемой переменной необязательно должен быть по порядку, можно повторно инициализировать тот же номер переменной или предыдущий. Чтобы сбросить все значения переменных: nAlarm в ноль и остановить счетчик в глобальной переменной, нужно вызвать команду: InvokeAlarm с первым параметром = 0 : InvokeAlarm(0,0,0). Глобальная переменная не обнуляется. Так же эта команда устанавливает место на карте в точке: (x,y) с номером текущей, инициализируемой переменной. Этот указатель используется в различных заданиях, прописывается в свойство объектов, но только на уровне скриптмодуля. Привязать событие к объекту из консоли нельзя. Враг, реагирующий на событие с данным кодом (предустановлен, инициализирован?) подходит к этой точке и переходит в режим Guard. Если установить значение: nAlarm=0, тревога сбрасывается, и враги возвращаются к своему первоначальному месту и состоянию.
IsAlarm (
nAlarm: float): float
Функция: IsAlarm - возвращает значение истина=1, если переменная инициализирована, и ложь=0 в противном случае.
IsAlive (
Unit: object): float
Функция: IsAlive - возвращает истину=1, если юнит: Unit жив, и ложь=0 в противном случае.
IsCameraPlaying (
): float
Функция: IsCameraPlaying -
IsDead (
Unit: object): float
Функция: IsDead - возвращает истину = 1- если объект: Unit мертв, и ложь =0 - в противном случае. Если объект поднят? если объект не существует?, если ввести код предмета, например ключ от пирамиды?
IsEnemy (
Unit: object, nDiplomacyGroup: float): float
Функция: IsEnemy - возвращает истину или ложь. Если объект юнит: Unit врагом для Дипломатической группы номер: nDiplomacyGroup
IsEqual (
A: float, B: float): float
Функция: IsEqual - возвращает истину = 1, если число: A равно числу: B, и ложь=1 в противном случае.
IsEqualString (
A: string, B: string): float
Функция: IsEqualString - возвращает истину=1, если строка: A равна строке: B с учетом регистра, и ложь=0 в противном случае.
IsGreater (
A: float, B: float): float
Функция: IsGreater - возвращает истину=1, если число: A больше чем число: B, и ложь=0 в противном случае.
IsInArea (
idArea: float, x: float, y: float): float
Функция: IsInArea - возвращает истину=1, если точка: (x,y) находится в одной из области с идентификатором: idArea, и ложь=0 в противном случае.
IsInSquare (
x: float, y: float, x1: float, y1: float, x2: float, y2: float): float
Функция: IsInSquare - возвращает истину=1, если точка: (x,y) находится в прямоугольнике: (x1,y1)-(x2, y2), и ложь=0 в противном случае.
IsLess (
A: float, B: float): float
Функция: IsLess - возвращает истину=1, если число: A меньше чем число: B, и ложь=0 в противном случае.
IsNight (
): float
Функция: IsNight - возвращает значение в интервале чисел: 0 до 1 в зависимости от времени суток: от 20 до 0 часов - значение от 0.0
IsPlayerInDanger (
nPlayer: float): float
Функция: IsPlayerInDanger - возвращает значение ложь=0 - если текущая Партия игрока под номером: nPlayer находится в безопасности, или: истина=1, если хотя бы один из членов партии в опасности. IsPlayerInDanger( 0 ) = NOT( IsPlayerInSafety( 0 ) )
IsPlayerInSafety (
nPlayer: float): float
Функция: IsPlayerInSafety - возвращает значение ложь=0 - если текущая Партия игрока под номером: nPlayer находится в безопасности, или: истина=1, если хотя бы один из членов партии в опасности. IsPlayerInSafety( 0 ) = NOT( IsPlayerInDanger( 0 ) )
IsUnitBlocked (
Unit: object): float
Функция: IsUnitBlocked - возвращает истину=1, если юнит: Unit заблокирован, и ложь=0 в противном случае.
IsUnitInWater (
Unit: object): float
Функция: IsUnitInWater - возвращает истину=1, если юнит: Unit находится в воде, и ложь=0 в противном случае.?
IsUnitVisible (
Unit: object): float
Функция: IsUnitVisible - возвращает истину: 1, если юнит видим игроком на игровой зоне, в противном случае: 0 (не хватает параметра nPlayer). команда: HideObject не влияет на результат, возвращаемый этой функцией.
KillScript (
)
Команда: KillScript - работает только на уровне скриптмодуля карты!
KillUnit (
Unit: object)
Команда: KillUnit - убивает объект: Unit. Опыт за убийство никому не достается. Чтобы опыт за убийство: Unit достался текущей 'Партии' следует ввести команду: InflictDamage.
LeaveToZone (
nPlayer: float, MapZone: string, nEnterMap: float)
Команда: LeaveToZone - перемещает Игрока: nPlayer (все партии и обоз) на зону: MapZone в место: nEnterMap. Место: nEnterMap - это заранее предусмотренные места на карте где могут появляться Партии игроков. Каждый портал на карте имеет свой номер места: nEnterMap.
Lie (
Unit: object)
Команда: Lie - изменяет режим перемещения объекта: Unit, отдает команду: ляг.
Mana (
Unit: object): float
Функция: Mana - возвращает текущее значение параметра: выносливость у объекта: Unit.
MaxHP (
Unit: object): float
Функция: MaxHP - возвращает максимально возможное значение здоровье у объекта: Unit. Это число учитывает эффекты заклинаний ослабления и усиления, наложенных на объект.
MaxMana (
Unit: object): float
Функция: MaxMana - возвращает максимально возможное значение выносливости: Mana у объекта: Unit.
MoveParticleSource (
id: float, x: float, y: float, z: float, Time: float, Remove: float)
Команда: MoveParticleSource - перемещает источник частиц с идентификатором: id в точку: (x,y,z) за время: Time (измеряется в 1/15 секунды). Если параметр: Remove - истина, то после перемещения удаляет источник.
MovePointLight (
id: float, x: float, y: float, z: float, Time: float, Remove: float)
Команда: MovePointLight - перемещает источник света с идентификатором: id в точку: (x,y,z) за время: Time (измеряется в 1/15 секунды). Если параметр: Remove - истина, то после перемещения удаляет источник.
MoveToObject (
UnitA: object, UnitB: object)
Команда: MoveToObject - заставляет юнит: UnitA двигаться в текущем режиме перемещения к той точке, в которой на момент выполнения команды находился юнит UnitB.
MoveToPoint (
Unit: object, x: float, y: float)
Команда: MoveToPoint - отдает команду юниту: Unit следовать в точку: (x,y).
Mul (
A: float, B: float): float
Функция: Mul - возвращает произведение чисел: (A и B)
Not (
bool: float): float
Функция: Not - возвращает отрицание логического значения bool: истину=1, если: bool равно нулю, и ложь=0 в противном случае.
PlayAnimation (
Unit: object, Animation: string)
Команда: PlayAnimation - воспроизводит анимацию - движение частей тела и сопутствующие звуковые эффекты. Unit - юнит, который будет воспроизводить анимацию. Где брать anim: Сначала надо определиться с юнитом, который надо привести в движение. Потом в lmpdatabase\MapObjects\RaceModels.txt найти Name этого юнита. Теперь посмотрите, что стоит в колонке Mask name. Нам нужен файл с таким названием и расширением adb, он находится в res\database.res\ . Открываем этот файл блокнотом и видим среди мешанины значков некие связные элементы - это и есть anim'ы данного типа юнита. Я проверял на примере орка-шамана: Name = LMP Orc Male Tatoo Mask name = unorma Файл = res\database.res\unorma.adb Выковыренные оттуда anim'ы: uattack01..09 - Атака различным оружием. Юнит машет 'топором', натягивает 'тетиву', тыкает 'копьем'. udeath01..31 - Смерть. Падения вперед / назад / в сторону, на бегу / на ходу / при ползании, с агонией / резко / медленно. cidle01..09 - Оглядывание, переступание с ноги на ногу. То, что делает перс, когда долго стоит на месте. ucast01..04 - Колдование. Эффектов типа шарика стихии не появляется, только движение тела. uhit01..21 - Попадание по юниту. Также как и смерть, из любых положений. crun01..02 - Бег. Под ногами появляются следы. cwalk01..09 - Юнит идет, крадется. Есть анимации как бы раненой походки, усталой, хромой. ccrawl01 - Юнит ползет. ucross01..09 - Переходы между стоячим / крадущимся / лежачим положением юнита. scross01..09 - Одна фаза шагания / ползания etc. Полный шаг, либо один рывок в сторону. crest - Юнит садится отдыхать. Кроме них, в 'человеческом' файле unhuma.adb я нашел: (не проверял) ubriefing## - Движения во время диалогов. uspecial## - Отдает честь, кланяется, стоит по стойке смирно, etc. cspecial## - Некие занятия наподобие точения меча, сидения на бревне, etc. Первые буквы анимации - указатели: u - действие произойдет один раз, затем юнит вернется в исходное состояние с - действие повторяется непрерывно, юнит не реагирует на указание другой анимации. Если в это время ударить юнит или показаться на глаза (враждебному), он не станет реагировать. Если замороженный анимацией объект бить, он будет отшатываться и потом снова выполнять заданную командой анимацию. Если убить, умрет как обычно и ляжет трупом. s - аналогично u. При вводе неправильного anim не происходит ничего. Если юнит во время применения процедуры двигался, то он остановится, проиграет анимацию и потом пойдет дальше. (В случае анимации с буквой: 'с' он остановится навечно)
PlayCamera (
PlayName: string)
Команда: PlayCamera - запускает команду автоматического управления камерой вида игровой зоны. Последовательность перемещения камеры находится в файле: PlayName из каталога игры: ...\CAMERA\.
PlayerSee (
nPlayer: float): group
Функция: PlayerSee - глаза партии. Возвращает сборную группа юнитов, которых видит игрок под номером: nPlayer, - т.е., все те юниты, которые видны глазами юнитов (членов) партии игрока. Юниты также видят и друг друга в партии. НЕ Эквивалентно вызову GroupSee ( GetPlayerUnits ( nDiplomacyGroup ) )!.
PlayFX (
float, float, float, float, string)
Команда: PlayFX -
PlayMovie (
PlayName: string)
Команда: PlayMovie - воспроизводит видеоролик с именем PlayName из каталога игр: ...\MOVIES\.
PlayMusic (
nPlayer: float, PlayName: string)
Команда: PlayMusic - воспроизводит мелодию с именем PlayName из подкаталога: ...\STREAM\. Имя файла указывается без расширения.
Qfinish (
)
Команда: QFinish - объявляет выполненным задание, выдаваемое в МП командой: Qstart. При этом в инфоокне выводится текст задания, а в момент выполнения появляется дракончик. Если последовательность команд: Qstart, Qfinish была вызвана в одиночной игре, то за выполненный квест, достаются все полагающиеся бонусы и квестовые предметы. Вновь объявленное задание командой: QStart с тем же именем отменяет уже выполненные задачи. Например, если в теле объявления квеста была команда: QObjSeeUnit и группа игроков видела этого юнита, то вновь объявленный квест потребует повторного посмотреть на этот юнит.
QObjArea (
idArea: float)
Команда: QObjArea - предназначена для создания и выполнения динамических заданий на игровых зонах в МП. Как правило, область: idArea задается под кодом - 1. Область является неким виртуальным объектом на карте включающее в себя множество участков на игровой зоне с одинаковым ID.
QObjGetItem (
id: float)
Команда: QObjGetItem - предназначена для создания и выполнения динамических заданий на игровых зонах в МП. Добавляет задачу: получить квестовый предмет с кодом: id
QObjKillGroup (
'grp': string)
Команда: QObjKillGroup - предназначена для создания и выполнения динамических заданий на игровых зонах в МП. Добавляет задачу: уничтожить 'Игровую' группу под именем глобальной переменной: grp. Игровая группа создается в модуле игровой зоны как глобальная переменная и добавляет в свой набор объекты-юниты командой: AddObject. Параметр: grp - вводится как имя глобальной переменной. Команду: QObjKillGroup нельзя применять из консоли, так как нет функций возвращающих экземпляр 'Игровой' группы.?
QObjKillUnit (
UnitName: string)
Команда: QObjKillUnit - предназначена для создания и выполнения динамических заданий на игровых зонах в МП. Добавляет задачу: уничтожить объект с именем: UnitName.
QObjSeeObject (
ObjectName: string)
Команда: QObjSeeObject - предназначена для создания и выполнения динамических заданий на игровых зонах в МП. Добавляет задачу: увидеть объект (сундук, не юнит) с именем: objectName.
QObjSeeUnit (
UnitName: string)
Команда: QObjSeeUnit - предназначена для создания и выполнения динамических заданий на игровых зонах в МП. Добавляет задачу: увидеть объект-юнит с именем: UnitName.
QObjUse (
Lever: string, State: float)
Команда: QObjUse - применяется в процедуре описания задания и добавляет задачу - перевести рычаг(Lever) в состояние(State) Добавляет задачу: перевести 'рычаг': Lever в состояние: State в набор задач объявленных командой: Qstart
QStart (
QuestName: string)
Команда: QStart - динамически, во время игры или на брифинг-зоне, команда: QStart объявляет квест в МП на сервере игры ПЗ и открывает текущее перечисление целей. Закрывает текущее перечисление целей команда: QFinish. В теле Объявления задания (перечисление задач) находятся команды ставящее условия выполнения Задания. Очередность установления задач должна быть в прямой последовательности их выполнения и недолжна, нарушаться, так как подзадания в МП выдаются последовательно по мере их выполнения. Задание можно объявить и в одиночной игре, но это бессмысленно, так как последовательность получения заданий в одиночной игре предусмотрены заранее в таблице ресурсов.
QuestComplete (
nPlayer: float, QuestName: string)
Команда: QuestComplete - как и МП команда: QFinish объявляет квест выполненным и выдает опыт за выполнение задания, но сообщения о выполнении задания не выводятся в инфоокне игры.
Random (
Max: float): float
Функция: Random - возвращает псевдослучайное число в промежутке от: 0 до: Max.
RecalcMercBriefings (
)
Команда: RecalcMercBriefings -
RedeployParty (
nPlayer: float)
Команда: RedeployParty - завершает транзакцию установки текущей партии для выбранного игрока: nPlayer.
RemoveObject (
grp: group, Unit: object)
Команда: RemoveObject - удаляет принадлежность объекта: Unit к глобальной переменной 'Игровой группы': grp. Игровая группа создается в модуле игровой зоны как глобальная переменная и добавляет в свой набор объекты-юниты командой: AddObject. Параметр: grp - вводится как имя глобальной переменной. Команду: RemoveObject нельзя применять из консоли, так как нет функций возвращающих экземпляр 'Игровой' группы.?
RemoveObjectFromServer (
Object: object)
Команда: RemoveObjectFromServer - удаляет объект с сервера (сундук, механизм...)
RemoveParty (
nPlayer: float, PartyName: string)
Команда: RemoveParty - удаляет партию по имени: PartyName из набора партий игрока под номером: nPlayer.
RemoveQuestItem (
Unit: object, id: float)
Команда: RemoveQuestItem - удаляет квестовый предмет из обоза (рюкзак?) текущей группы. (У врагов из рюкзака?) Кол-во удалений одинаковых квестовых предметов у игрока?
RemoveUnitFromControl (
nPlayer: float, Unit: object)
Команда: RemoveUnitFromControl - удаляет иконку юнита: Unit из контроль панели игрока: nPlayer на игровой зоне.
RemoveUnitFromParty (
nPlayer: float, NamePersRes: string)
Команда: RemoveUnitFromParty - удаляет из текущей партии персонаж: NamePersRes принадлежащий игроку под номером: nPlayer. Можно ли удалить персонаж не из текущей партии, используя обычный указатель принадлежности к партии через двоеточие.
RemoveUnitFromServer (
Unit: object)
Команда: RemoveUnitFromServer - удаляет юнит с сервера. Теряется ли рюкзак, обоз при восстановлении персонажа?
ResetTarget (
Unit: object)
Команда: ResetTarget - сбрасывает все режимы: охраны, патрулирования и агрессивности. Перед тем как набрать список команд патрулирования и охраны следует сделать сброс этой командой. Эта самая молодая команда в ПЗ. в версии игры 1.0 её нет. Она появилась в сервис пакете 1.02, для того чтобы знаменитым вопросом: '…почему Циклоп не уходит' больше не мучили разработчиков.
Rest (
Unit: object)
Команда: Rest - юнит: Unit отдыхает, если это возможно, то усаживается на землю.
RotateTo (
Unit: object, x: float, y: float)
Команда: RotateTo - поворачивает объект: Unit лицом по направлению к точке( X , Y ). Сразу после вызова команды: AddUnitToServer команда: RotateTo не работает, нужно время, чтобы Юнит появился на карте, но выполнить задержку командой: Sleep из консоли нельзя. Команда: Sleep работает только на уровне Скриптмодуля карты.
Run (
Unit: object)
Команда: Run - переключает объект-юнит: Unit в режим 'бег'
RunWorldTime (
Hour: float)
Команда: RunWorldTime - переустанавливает текущее время: Hour в ПЗ.
SendEvent (
float, flaot)
Команда: SendEvent -
SendStringEvent (
float, string)
Команда: SendStringEvent -
Sentry (
Unit: object, x: float, y: float)
Команда: Sentry - отдает команду юниту: Unit охранять точку: (x,y), атакуя врагов в области видимости. После уничтожения противника возвращается в указанную точку.
SetBackgroudColor (
R: float, G: float, B: float)
Команда: SetBackGroundColor - устанавливает фоновый цвет на карте в режиме: (R,G,B). Фон перекрывается текстурами неба, поэтому результат будет заметен лишь на пещерных картах.
SetCameraOrientation (
float)
Команда: SetCameraOrientation -
SetCameraPosition (
float, float, float)
Команда: SetCameraPosition -
SetCP (
Object: object, x: float, y: float, z: float)
Команда: SetCP - переносит объект: object на карте, (не только юнит) в точку: (x,y). На карте Предгорья можно перенести Рычаг от пирамиды: @setcp( GetObjectByID( '4636' ), 22 , 140, 0)
SetCPFast (
Object: object, x: float, y: float, z: float)
Команда: SetCPFast - переносит объект: object на карте, (не только юнит) в точку: (x,y). На карте Предгорья можно перенести Рычаг от пирамиды: @setcp( GetObjectByID( '4636' ), 22 , 140, 0)
SetCurrentParty (
nPlayer: float, PartyName: string)
Команда: SetCurrentParty - устанавливает текущую партию: PartyName из набора партии игрока под номером: nPlayer.
SetDiplomacy (
nDiplomacyGroupA: float, nDiplomacyGroupB: float, Diplomacy: float)
Команда: SetDiplomacy - изменяет дипломатические отношения между группами объектов. Группы: nDiplomacyGroupA и nDiplomacyGroupB представлены по номерам. Дипломатическая группа 'Партии' 'Игрока' всегда принадлежит номер дипломатической группировки = 0. Возможные значения: Diplomacy: 1 - союзник 0 - нейтрал -1 - враг
SetDirectionToObject (
nUnit: float)
Команда: SetDirectionToObject -
SetEnemy (
Unit: object, id: float)
Команда: SetEnemy -
SetParticleSourceSize (
id: float, rad: float)
Команда: SetParticleSourceSize - изменяет радиус источника частиц с идентификатором: id на: rad.
SetPlayer (
Unit: object, nDiplomacyGroup: float)
Команда: SetPlayer - устанавливает юниту: Unit, принадлежность к дипломатической группе номер: nDiplomacyGroup.
SetPlayerAggression (
float, float)
Команда: SetPlayerAggression -
SetScience (
object, float, float, float, float, float, float)
Команда: SetScience -
SetSpellAggression (
Unitobject, Aggression: float)
Команда: SetSpellAggression -
SetSunLight (
sunlightR: float, sunlightG: float, sunlightB: float, ambientR: float, ambientG: float, ambientB: float, skyR: float, skyG: float, skyB: float)
Команда: SetSunLight -
SetWaterLevel (
idWBassein: float, Level: float, delay: float)
Команда: SetWaterLevel - устанавливает уровень: Level воды: idWBassein с задержкой: delay относительно дна водоема. Уровень водоема не влияет на проходимость зон вброд Персонажами.
SetWind (
float, float, float, float)
Команда: SetWind -
ShowBitmap (
float, Bitmap: string)
Команда: ShowBitmap -
ShowCredits (
string)
Команда: ShowCredits -
Sleep (
Sleep: float)
Команда: Sleep - устанавливает паузу: Sleep в теле вызываемой процедуры на уровне Скриптмодуля карты.
SleepUntil (
bool: float)
Команда: SleepUntil -
SleepUntilIdle (
Unit: object)
Команда: SleepUntilIdle -
Standt (
Unit: object)
Команда: Stand - изменяет режим перемещения объекта: Unit на шаг.
StartAnimation (
Unit: object, PathAnimation: string)
Команда: StartAnimation -
Sub (
A: float, B: float): float
Функция: Sub - возвращает разность чисел А и В.
Sum (
GlobalVariable: object, grp: group, operation: float): float
Функция: Sum - применяет operation ко всем объектам из группы и складывает результаты.
SwitchLeverState (
Lever: object, State: float)
Команда: SwitchLeverState - устанавливает механизм (рычаг): Lever в исходное положение выключено: State - 0 и в положение включено: State - 1. Соответственно, визуально отображаются положения рычагов на игровых зонах. Функция: GetLeverState - возвращает состояние механизма.
SwitchLeverStateEx (
Lever: object, State: float, Delay: float)
Команда: SwitchLeverStateEx - устанавливает механизм (рычаг): Lever в исходное положение выключено: State = 0 и в положение включено: State = 1. Соответственно, визуально отображаются положения рычагов на игровых зонах. Дополнительный параметр: Delay позволяет установить время задержки мультипликации механизма. Функция: GetLeverState - возвращает состояние механизма.
UMAg (
Unit: object, Ag: float)
Команда: UMAg - отдает команду юниту: Unit избегать врагов, должно быть сброшено агрессивное состояние у объекта.
UMAggression (
Unit: object)
Команда: UMAggression - отдает команду юниту: Unit атаковать врагов в пределах видимости.
UMClear (
Unit: object)
Команда: UMClear - удаляет все директивы самостоятельного поведения юнита: Unit.
UMCorpseWatcher (
Unit: object)
Команда: UMCorpseWatcher -
UMFear (
Unit: object, Fear: float)
Команда: UMFear - устанавливает поведение 'испуг' юниту: Unit. При этом юнит теряет способность атаковать врагов и пытается скрыться от врагов. Поведение по умолчанию у нейтральных зверей. Параметр: Fear - номер дипломатической группы?
UMFollow (
UnitA: object, UnitB: object)
Команда: UMFollow - отдает команду объекту: UnitA постоянно следовать за объектом: UnitB . После боя команда не отменяется. Сходные свойства поведения у команды: Follow.
UMGuard (
Unit: object, x: float, y: float, rad: float)
Команда: UMGuard - заставляет объект: Unit охранять точку (x,y) с радиусом: rad.
UMGuardEx (
Unit: object, x: float, y: float, rad: float, Delay: float)
Команда: UMGuardEx - заставляет объект: Unit охранять точку (x,y) с радиусом: rad и задержкой: Delay в точках случайного останова объекта: Unit.
UMPatrol (
Unit: object)
Команда: UMPatrol - Команда вызывает ошибку выполнения! Чтобы установить режим патрулирования следует, применит команду: ResetTarget перед набором списка патрульных команд.
UMPatrolAddPoint (
Unit: object, x: float, y: float)
Команда: UMPatrolAddPoint - указывает новую точку наблюдения: (x,y) в которую переместится объект при патрулировании. Для задержки объекта в точке наблюдения и ориентировки объекта в сторону наблюдения, нужно использовать за командой: UMPatrolAddPoint команду: UMPatrolAddPointLook.
UMPatrolAddPointLook (
Unit: object, x: float, y: float, Delay: float)
Команда: UMPatrolAddPointLook - указывает объекту: Unit точку (x,y) в которую будет смотреть объект: Unit и насколько долго: Delay объект задержится в этом положении.
UMPatrolClear (
Unit: object)
Команда: UMPatrolClear - удаляет все директивы патрулирования установленные командами: UMPatrolAddPointLook, UMPatrolAddPoint. Аналогичное действие команды: ResetTarget, но ResetTarget сбрасывает все команды UM*.
UMPlayer (
Unit: object)
Команда: UMPlayer - подчиняет юнит: Unit игроку. Не изменяет принадлежность юнита к дипломатической группе. Действует дипломатия как на уровне Партии.?
UMRevenge (
Unit: object)
Команда: UMRevenge - эта команда устанавливает объекту: Unit страх от дипломатической группы - 0. Объект: Unit будет стараться убежать и не видеть юнита из дипломатической группы - 0. Чтобы сразиться с врагом в таком состоянии, нужно ранить его или загнать в тупик.
UMSentry (
Unit: object, x: float, y: float)
Команда: UMSentry - устанавливает режим для юнита: Unit охранять точку: (x,y), атакуя врагов в области видимости. После уничтожения врага, юнит возвращается в указанную точку.
UMStandard (
Unit: object)
Команда: UMStandard - отдает команду юниту: Unit атаковать любого ближайшего врага в области видимости юнита: Unit. Стандартный режим для объектов врагов.
UMSuspection (
Unit: object)
Команда: UMSuspection - отдает команду юниту: Unit идти к любому ближайшему врагу в области видимости юнита: Unit, но не атакует его?
UnitInSquare (
Unit: object, x1: float, y1: float, x2: float, y2: float): float
Функция: UnitInSquare - возвращает истину=1, если юнит: Unit находится в прямоугольнике: (x1,y1)-(x2, y2).
UnitSee (
Unit: object): group
Функция: UnitSee - возвращает группу как набор из объектов, состоящую из тех юнитов которых видит юнит: Unit. Юнит не видит самого себя: GroupSize(UnitSee( GetLeader()))
WaitEndAnimation (
)
Команда: WaitEndAnimation -
WaitSegment (
float)
Команда: WaitSegment -
Walk (
Unit: object)
Команда: Walk - отдает команду юниту: Unit перейти на шаг.
WasLooted (
Unit: object): float
Функция: WasLooted - возвращает значение - 0, если рюкзак объекта: Unit пуст. Рюкзак (обоз) у объекта может быть обворован или обыскан его труп.