001 ActivateTrap( Trap : object , Activate : float ) 
001_ Команда: ActivateTrap - деактивирует: Activate - 0 и активирует: Activate<>0 ловушку: Trap на игровой зоне. Например, на игровой зоне карты: Предгорья следует набрать в консоли команду: @ActivateTrap( GetObjectByID( "4515" ) , 1 ) будет активирована пирамида Орковского племени. Данная ловушка-Пирамида атакует только Дипломатическую группу - 0. Невозможно перенастроить дипломатию для объектов Ловушек с помощью команды: SetDiplomacy. 
002 Add( A : float , B : float ) : float 
002_ Функция: Add - возвращает сумму из двух чисел типа Float: A и В. 

003 AddLoot( nPlayer : float , PartyNameSend : string , PartyNameRecv : string ) 
003_ Команда: AddLoot - добавляет предметы и деньги из обоза "Партии": PartyNameSend в обоз НЕ текущей "Партии": PartyNameRecv. Обе "Партии" принадлежат "Игроку": nPlayer. Не путать "Обоз" и "Рюкзак". В случае если изменение текущей партии будет происходить на игровой зоне, то предметы из набора "Рюкзак" всегда входящие в набор "Обоза" будут так же скопированы в обоз "Партии": PartyNameRecv. При выполнении команды: RedeployParty "Рюкзак Партии": PartyNameSend обнулится. "Рюкзак" новой партии будет так же пуст, хотя в инфоокне рюкзака останутся предметы, но на самом деле рюкзак предыдущей и текущей Партий будут пусты. Функция: GetLootItemsCount вернет значение 0. 

004 AddMob( FileNameMob : string ) 
004_ Команда: AddMob - загружает файл "Mob" с именем FileNameMob из подкаталога …\MAPS\. Имя файла указывается с расширением и в кавычках. Файл должен иметь структуру Maps Object (*.mob) из проекта игры ПЗ. \Принадлежность: Система. 

005 AddObject( grp : group , UnitMap : object ) 
005_ Команда: AddObject - добавляет объект: Unit в "Игровую" группу, инициализируя глобальную переменную: grp. Команду: AddObject нельзя применять из консоли, так как в ПЗ нет консольных команд создания глобальных переменных групп. \Принадлежность: Игровые Группы. 

006 AddRectToArea( idArea : float , x1 : float , y1 : float , x2 : float , y2 : float ) 
006_ Команда: AddRectToArea - добавляет принадлежность участка игровой зоны в квестовую область под кодом: idArea. Область описывается в виде прямоугольника, где (X1,Y1) и (X2,Y2) координаты его двух противоположных углов. (Левый - нижний и верхний - правый) (юго-западный и северо-восточный угол). Стороны прямоугольника всегда расположены параллельно к сторонам света. Если координаты второй точки меньше первой, то зоны не будет. На игровой зоне может существовать множество областей с одинаковым кодом: idArea. Например, команда: QObjArea может установить задачу "Игроку" (команде Игроков): попасть в область под кодом: idArea - как одно из условий выполнения задания объявленного командой: QStart. В таком случае "Игрок", должен попасть в любой из участков области с кодом: idArea. 

007 AddRoundToArea( idArea : float , x : float , y : float , rad : float ) 
007_ Команда: AddRoundToArea - добавляет принадлежность участка игровой зоны в квестовую область под кодом: idArea. Участок области находится в точке: (x,y) с радиусом: rad. На игровой зоне может существовать множество областей с одинаковым кодом: idArea. Например, команда: QObjArea может установить задачу "Игроку": попасть в область под кодом: idArea как одно из условий выполнения задания объявленного командой: QStart - в таком случае "Игрок" должен попасть в любой из участков области с кодом: idArea. 

008 AddUnitToParty(nPlayer : float , “PartyName::NamePersRes" : String , NameUnitRes : String ) 
008_ Команда: AddUnitToParty - добавляет игроку: nPlayer, в указанную партию: PartyName локализованного (озвученного) персонажа: NamePersRes из базы данных: texts.res. фактически добавляется персонаж: NameUnitRes из базы данных ресурсов игры. К текущей Партии можно добавить Персонаж без явного указания Партии: AddUnitToParty(nPlayer, NamePersRes : String, NameUnitRes : String). Не путать! Если нужно работать не с текущей группой или с вновь созданной, то всегда нужно указывать второй параметр как два параметра через делитель“PartyName::NamePersRes”. 

009 AddUnitToServer( NameUnitMap : string , NameUnitRes : string , NameUnitControl : string , x : float , y : float , z : float ) 
009_ Команда: AddUnitToServer - устанавливает заготовку-объект: NameUnitRes на текущую карту в точку (x,y,z) из базы данных ресурсов игры. Объект будет иметь внутреннее имя: NameUnitMap и имя, отображаемое в инфоокнах: NameUnitControl. Большие и маленькие буквы внутреннего имени: NameUnitMap не различаются. Системная функция преобразования имени: (NameUnitMap : string) в код (idUnit : float) представляет все строчные символы имени как прописные - к верхнему регистру. Не рекомендуется возвращать код: idUnit от объекта добавленного на карту командой: AddUnitToServer с помощью функции: GetObjectId. Полученный на карте объект командой: AddUnitToServer будет иметь код - 10 символов, а команда: GetObjectId работает с ошибкой с десятизначными силами. 

010 AddUnitUnderControl( nPlayer : float , Unit : object ) 
010_ Команда: AddUnitUnderControl - добавляет в контроль панель игрока: nPlayer иконку объекта: Unit. Не изменяет дипломатии в группах и не вызывает никаких изменений в присоединенном объекте: Unit. Игрок получает возможность выделить в коллекции управляемых объектов присоединенный объект: Unit. Видимо команда была предназначена для возможности захвата в плен на игровой зоне врагов, но не была реализована в игре. 

011 AlarmPosX( nAlarm : float ) : float 
011_ Функция: AlarmPosX - возвращает позицию точки тревоги по оси: x установленной командой: InvokeAlarm, для переменной: nAlarm. 

012 AlarmPosY( nAlarm : float ) : float 
012_ Функция: AlarmPosY - возвращает позицию точки тревоги по оси: y установленной командой: InvokeAlarm, для переменной: nAlarm. 

013 AlarmTime( nAlarm : float ) : float 
013_ Функция: AlarmTime - возвращает значение переменной: nAlarm. При активации переменной: nAlarm командой: InvokeAlarm, ей присваивается стартовое значение. Стартовое значение - есть сумма количества времени всех промежутков времени, между активаций и деактиваций всех предыдущих переменных: nAlarm с начала игры. Активным может быть только один номер переменной. В переменную: nAlarm после активации, постоянно добавляется значение счетчика времени (1/15 сек). Активируя следующий номер переменной: nAlarm командой: InvokeAlarm одновременно деактивируется предыдущая переменная, но не обнуляется. Номер переменной необязательно должен быть по порядку и можно повторно инициализировать тот же номер переменной. Чтобы сбросить все значения переменных: nAlarm в ноль и остановить счетчик в глобальной переменной, нужно вызвать команду: InvokeAlarm с первым параметром = 0 : InvokeAlarm(0,0,0) 

014 Any( GlobalVariable : object , grp : group , bool : float ) : float 
014_ Функция: Any - Теоретически: Возвращает истину или ложь, если в группе: grp какой-нибудь объект-юнит: Unit будет соответствовать условию сравнения в параметре: bool. Процедура работает как цикл, перебирая по очереди все объекты в группе: grp устанавливая в переменную: Unit экземпляр - объект из группы: grp. Параметр: grp может быть введен указатель на любой набор групп: Дипломатическая группа, Игровая или смешанная - командами: GroupAdd или GroupCross. 

015 AttachParticles( id : float , Object : object ) 
015_ Команда: AttachParticles - присоединяет источник частиц с идентификатором: id к юниту: Object . Источник будет двигаться с постоянным смещением от юнита. Это смещение равно координатам( x , y , z ) , взятым в процедуре CreateParticleSource при создании данного источника. Пример: @CreateParticleSource( 1234 , 1 , -2 , 2 , -1 , "fire" ) ; @AttachParticles( 1234 , GetLeader( ) ) ; Перевёрнутый вверх тормашками огонь радиусом 1 будет перемещаться около Зака на расстоянии 1 по: x , -2 по: y и 2 по: z . \Принадлежность: Спецэффекты. 

016 AttachParticleSource( id : float , idObject : float ) 
016_ Команда: AttachParticleSource - присоединяет источник частиц с идентификатором: id к юниту с идентификатором: idObject. Источник будет двигаться с постоянным смещением от юнита. Это смещение равно координатам( x , y , z ) , взятым в процедуре CreateParticleSource при создании данного источника . 

017 Attack( UnitA : object , UnitB : object ) 
017_ Команда: Attack - заставляет юнит: UnitA атаковать юнит: UnitB. 

018 BlockUnit( Unit : object , Block : float ) 
018_ Команда: BlockUnit - устанавливает режим управление Игроком персонажа: Unit. Персонаж не подчиняется Игроку: Block - 1, Персонаж подчиняется Игроку: Block - 0. По умолчанию: Персонажи доступны к управлению Игроком в момент добавления в партию. Устанавливать команду: BlockUnit на врагов бесполезно, так как враги не подчиняются Игроку. 

019 Cast( Unit : object , x : float , y : float ) 
019_ Команда: Cast - заставляет объект: Unit применять активное заклинание, находящееся у объекта: Unit в точку: ( x , y ) на карте. Активное заклинание у объекта должно быть предназначено для места, а не для целей. Активное заклинание можно установить командой: SetSpellAggression.? В игре команда: Cast не используется. Для замены команды: Cast существуют расширенные команды аналоги: CastSpellPoint и CastSpellUnit. 

020 CastSpellPoint( constSpell : string , x1 : float , y1 : float , x2 : float , у : float ) 
020_ Команда: CastSpellPoint - применяет заклинание на местность игровой зоны. Заклинания: constSpell следует писать в кавычках, и только те, что действуют на область (не на цель). Конструкция заклинания: constSpell имеет такую же каноническую форму, как и в других местах игры, где применяется заклинания. Переменные: (x1,y1) указывают координаты на карте игровой зоны откуда будет стартовать визуальный эффект заклинания, переменные: (x2,у2) указывают координаты на карте игровой зоны, место на которое будет применено заклинание: constSpell. 

021 CastSpellUnit( constSpell : string , x : float , y : float , Unit : object ) 
021_ Команда: CastSpellUnit - применяет заклинание на объект: Unit. Заклинания: constSpell следует писать в кавычках. Конструкция заклинания: constSpell имеет такую же каноническую форму, как и в других местах игры, где применяется заклинания. Переменные: (x, y) указывают координаты на карте игровой зоны откуда будет стартовать визуальный эффект заклинания: constSpell. 

022 ConsoleFloat( float ) 
022_ Команда: ConsoleFloat - предназначена для отладки игры. Выводит в консоли число, возвращаемое функциями. Синоним # 

023 ConsoleString( string ) 
023_ Команда: ConsoleString - предназначена для отладки игры. Выводит в консоли текстовые строки, возвращаемые функциями. Синоним $ 

024 CopyItems(nPlayer : float , NameSendRES : String , “PartyName::NameRecvRES" : String ) 
024_ Команда: CopyItems - копирует все снаряжение (не обоз и не рюкзак) объекта-юнита: NameSendRES из текущей партии в объект-юнит: NameRecvRES принадлежащий НЕ текущей Партии. Обе Партии принадлежат игроку под номером: nPlayer. Имена объектов-юнитов - это внутренние имена в партиях. В третьем параметре нужно явно указать принадлежность объекта: NameRecvRES к Партии: PartyName, указать в кавычках и с разделителем два двоеточия: "PartyName::NameRecvRES" 

025 CopyLoot( nPlayer : float , PartyNameSend : string , PartyNameRecv : string ) 
025_ Команда: CopyLoot - копирует обоз: PartyNameSend (предметы и деньги) в обоз НЕ текущей Партии: PartyNameRecv. При этой операции предварительно обоз: PartyNameRecv полностью обнуляется. Копирование происходит между партиями принадлежащим игроку под номером: nPlayer. Не путать обоз и рюкзак. В случае если изменение текущей партии будет происходить на игровой зоне, то предметы из набора Рюкзак всегда входящие в набор Обоза будут также скопированы в обоз Партии: PartyNameRecv. При выполнении команды: RedeployParty Рюкзак Партии: PartyNameSend обнулится. Рюкзак новой партии будет так же пуст, хотя в инфоокне рюкзака останутся предметы, но на самом деле рюкзак предыдущей и текущей Партий будут пусты. Функция: GetLootItemsCount вернет значение 0. 

026 CopyStats( nPlayer , PartyNameSend : string , PartyNameRecv : string ) 
026_ Команда: CopyStats - копирует всю статистику (навыки, умения, параметры) объекта-юнита: NameSendRES из текущей партии в объект-юнит: NameRecvRES, который принадлежит НЕ текущей Партии. Обе Партии принадлежат игроку под номером: nPlayer. Имена объектов-юнитов - это внутренние имена в партиях. В третьем параметре нужно явно указать принадлежность объекта: NameRecvRES к Партии: PartyName, указать в кавычках и с разделителем два двоеточия: "PartyName::NameRecvRES" 

027 Crawl( Unit : object ) 
027_ Команда: Crawl - отдает команду объекту: Unit присесть. 

028 CreateFX( x : float , y : float , z : float , Volume : float , rad : float , NameWav : string ) 
028_ Команда: CreateFX - один раз воспроизводит звук из WAV файла: NameWav в точке: (x,y,z) с радиусом слышимости: rad громкостью: Volume. 

029 CreateFXSource( id : float , x : float , y : float , z : float , Volume : float , rad : float , NameWav : string ) 
029_ Команда: CreateFXSource - устанавливает зацикленный звуковой источник: NameWav под кодом: id в точке: (X,Y,Z) с радиусом слышимости: rad и громкостью: Volume. Зацикленный звук можно удалить с помощью команды: DeleteFXSource по его : id. 

030 CreateLightning( id : float , x1 : float , y1 : float , z1 : float , x2 : float , y2 : float , z2 : float , Intensity : float ) 
030_ Команда: 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. 

031 CreateParticleSource( id : float , x : float , y : float , z : float , R : float , сonstParticleSource : string ) 
031_ Команда: CreateParticleSource - создает источник частиц типа: constParticleSource с радиусом: R и идентификатором: id в точке (x,y,z) . При отрицательном значении радиуса источник частиц переворачивается по вертикали. На данный момент известны следующие константы источника частиц (в процедуре пишутся в кавычках): transform; portalstar; portal; mushroom; nuke; geyser; poisonfog; smoke; fire; lightningblast; fireblast; campfire; fireball; firearrow; teleport. 

032 CreateParty( nPlayer : float , PartyName : string ) 
032_ Команда: CreateParty - создает новую Партию под именем: PartyName (или замещает существующую партию, с таким же именем) в наборе партий игрока под номером: nPlayer. Строчные и прописные буквы в имени партии: PartyName отличаются. 

033 CreatePointLight( id : float , x : float , y : float , z : float , rad : float , R : float , G : float , B : float ) 
033_ Команда: CreatePointLight - создает источник света с идентификатором: id, радиусом: rad и цветом (R,G,B) в точке (x,y,z). С помощью этой команды можно установить освещение от костра или факела ночью или незначительное затемнение днем - густой лес. Положительное значение: rad - освещение, отрицательное значение - затемнение. Точку освещения по высоте: z нужно рассчитывать, относительно Мировой системы координат (МСК), а не с поверхности карты. 

034 CreateRandomizedFXSource( id : float , x1 : float , x2 : float , y1 : float , y2 : float , z1 : float , z2 : float , Volume : float , rad : float , NameWav : string ) 
034_ Команда: CreateRandomizedFXSource - 

035 DeleteArea( idArea : float ) 
035_ Команда: DeleteArea - удаляет все участки областей на карте с идентификатором: idArea. 

036 DeleteFXSource( id : float ) 
036_ Команда: DeleteFXSource - удаляет все звуковые участки на игровой зоне имеющие идентификатор: id. 

037 DeleteLightning( id : float ) 
037_ Команда: DeleteLightning - удаляет все молнии на игровой зоне имеющие идентификатор: id. 

038 DeleteParticleSource( id : float ) 
038_ Команда: DeleteParticleSource - удаляет все источники частиц на игровой зоне имеющие идентификатор: id. 

039 DeletePointLight( id : float ) 
039_ Команда: DeletePointLight - удаляет с игровой зоны множество источников света с идентификатором: id. 

040 DistanceUnitPoint( Unit : object , x : float , y : float ) : float 
040_ Функция: DistanceUnitPoint - возвращает прямое расстояние между объектом: Unit и точкой на карте: (x,y). 

041 DistanceUnitUnit( UnitA : object , UnitB : object ) : float 
041_ Функция: DistanceUnitUnit - возвращает прямое расстояние между объектами: UnitA и UnitB. 

042 Div( A : float , B : float ) : float 
042_ Функция: Div - возвращает результат деления числа: A деленное на B. 

043 EnableLever( Lever : object , Enable : float ) 
043_ Команда: EnableLever - устанавливает доступность для игрока к управлению механизмом: Lever. Недоступно: Enable = 0 и доступно: Enable = 1. Доступность к использованию рычага отображаются графически изменением курсора на мацающую руку при наведении его на объект: Lever. На карте Предгорья можно установить доступ даже к выключенному рычагу от пирамиды: @EnableLever(GetObjectByID( "4636" ),1) 

044 EraseQuestItem( nPlayer : float , idQuestItem : float ) 
044_ Команда: EraseQuestItem - удаляет из обоза игрока с номером: nPlayer квестовый предмет под кодом: id 

045 Every( GlobalVariable : object , grp : group , bool : float ) : float 
045_ Функция: Every - Теоретически: Возвращает истину или ложь, если в группе: grp все объекты-юниты: Unit будут соответствовать условию сравнения в параметре: bool. Процедура работает как цикл, перебирая по очереди все объекты в группе: grp устанавливая в переменную: Unit экземпляр - объект из группы: grp. Параметр: grp может быть введен указатель на любой набор групп: Дипломатическая группа, Игровая или смешанная - командами: GroupAdd или GroupCross. 

046 FixItems( ) 
046_ Команда: FixItems - чинит все предметы в обозе, в рюкзаке, одежду на теле персонажа и оружие, но только у текущей Партии. 

047 FixWorldTime( Time : float ) 
047_ Команда: FixWorldTime - устанавливает фиксированное время: Time на игровой зоне. Часы в ПЗ не идут. 

048 Follow( UnitA : object , UnitB : object ) 
048_ Команда: Follow - одноразово отдает команду объекту: UnitA следовать за объектом: UnitB. После боя команда отменяется. Сходные свойства поведения у команды: UMFollow. 

049 For( GlobalVariable : object , grp : group ) ( Command ) 
049_ Команда: For - безусловный перебор элементов объектов в игровой группе: grp. Каждый цикл инициализирует глобальную переменную, устанавливая в нее экземпляр: object из коллекции группы: grp. В теле цикла, безусловно, исполняется весь список команд: Command. Процедура работает как цикл, перебирая по очереди все объекты в группе: grp устанавливая в переменную: Unit экземпляр - объект из группы: grp. Параметр: grp может быть введен указатель на любой набор групп: Дипломатическая группа, Игровая или смешанная - командами: GroupAdd или GroupCross. 

050 (цикл) 
050_ Команда: ForIf - 

051 GetAIClass( Unit : object ) : float 
051_ Функция: GetAIClass - возвращает класс групп рас: AI для объекта: Unit. В ПЗ все объекты: Unit принадлежат к расам, расы группируются по классам. Значение принадлежности объектов к расам можно найти в таблице: RaceModels, по классам в поле: AI Class Stay. Для несуществующего объекта на карте результат всегда - (-1) ( минус один ). 

052 GetBSZValue( x : float , y : float ) : float 
052_ Функция: GetBSZValue - возвращает высоту местности на карте в точке с горизонтальными координатами: ( x , y ) . Отличие от команды: GetZValue в том, что если в точке: (х,у) находится незамёрзший водоём ( озеро лавы ), то выводится высота поверхности воды ( лавы ), а не дна. В остальных случаях выводимые значения совпадают с командой: GetZValue. 

053 GetDiplomacy( nDiplomacyGroupA : float , nDiplomacyGroupB : float ) : float 
053_ Функция: GetDiplomacy - возвращает тип дипломатии : кем является Дипломатическая группа юнитов под номер nDiplomacyGroupA для Дипломатической группы: nDiplomacyGroupB, в наборе Дипломатических групп на текущей игровой зоне. Возможные значения: 1 - союзник ; 0 - нейтрал ; -1 - враг. 

054 GetFutureX( UnitMap : object , Time : float ) : float 
054_ Функция: GetFutureX - возвращает значение координаты: Х объекта: UnitMap предсказанное через время: Time. Время: Time измеряется в единицах, равных 1/15 секунды на нормальной скорости игры. Чем меньше значение времени: Time тем точнее результат. В скриптах эта функция применяется для реалистичного отображения атаки заклинаниями у врагов. Враги могут ставить заклинания, атаковать на опережение. В движке ПЗ метод предсказания может быть использован в сетевой игре на слобопропускных каналах сети. 

055 GetFutureY( UnitMap : object , Time : float ) : float 
055_ Функция: GetFutureY - возвращает значение координаты: y объекта: UnitMap предсказанное через время: Time. Время: Time измеряется в единицах, равных 1/15 секунды на нормальной скорости игры. Чем меньше значение времени: Time тем точнее результат. В скриптах эта функция применяется для реалистичного отображения атаки заклинаниями у врагов. Враги могут ставить заклинания, атаковать на опережение. В движке ПЗ метод предсказания может быть использован в сетевой игре на слобопропускных каналах сети. 

056 GetLeader( ) : object 
056_ Функция: GetLeader - возвращает объект юнита - лидера команды текущей Партии. В сингле это будет Зак, а в мультиплеере - действующий персонаж игрока. Видимо в этой функции не хватает параметра: nPlayer. 

057 GetLeverState( Lever : object ) : float 
057_ Функция: GetLeverState - возвращает значение: float - 0, если механизм не приведен в действие и значение: float - 1, если механизм приведен в действие. Команда, устанавливающая состояние механизма: SwitchLeverState. На карте Предгорья можно проверить состояние рычага от Пирамиды: #GetLeverState(GetObjectByID( "4636" )). 

058 GetLootItemsCount( nPlayer : float ) : float 
058_ Функция: GetLootItemsCount - возвращает количество удачных краж и количество взятых бонусов (не денег, не всего предметов) найденных, украденных, снятых с врагов или трупов на игровой зоне, в то числе и квестовых предметов. Фактически показывает количество строк предметов в «Текстовом инфоокне» рюкзака на игровой зоне у текущей Партии, принадлежащих игроку под номером: nPlayer. 
Если в одиночной игре убить Атаманшу, у которой есть два предмета: руна «Усиление» и квестовый предмет: «Шило», в задании «Инструменты», предварительно не обворовывая её то, после поднятия трупа Атаманши функция: GetLootItemsCount вернет значение = 2, так как за один раз с трупа Атаманши будет снято два предмета. Если убить два одинаковых кабана и поднять два идентичных предмета: «Тонкая кожа» с каждого кабана, то после поднятия, функция: GetLootItemsCount так же вернет значение=2, хоть и предметы одинаковые. Новый вход на игровую зону обнуляет рюкзак и «Текстовое инфоокно». Если изменить текущую партию на игровой зоне, то количество строк предметов в «Текстовом инфоокне» не будет совпадать со значением возвращаемым функцией: GetLootItemsCount. В таком случае, функция: GetLootItemsCount будет возвращать значение меньшее, чем количество строк предметов в «Текстовом инфоокне». Так как смена текущей Партии очищает рюкзак, но не очищает «Текстовое инфоокно». 

059 GetMercsNumber( nPlayer : float ) : float 
059_ Функция: GetMercsNumber - возвращает число наемников в текущей Партии Игрока под номером: nPlayer не включает лидера текущей Партии. 

060 GetMoney( nPlayer : float ) : float 
060_ Функция: GetMoney - возвращает количество денег у текущей Партии игрока номер nPlayer. Фактически, команда показывает кошелек текущей "Партий" игрока: nPlayer на игровой зоне. Кошелек текущей Партии на игровой зоне и в лагере - всегда равны. Можно сказать, что партия таскает с собой все свои деньги. 

061 GetObject( idObject : float ) : object 
061_ Функция: GetObject - возвращает экземпляр: object для объекта с идентификатором: idObject. Не работает с десятизначными числами. Если код: idObject десятизначное число, то следует использовать функцию: GetObjectByID. 

062 GetObjectByID( idObject : string ) : object 
062_ Функция: GetObjectByID - возвращает экземпляр: object для объекта с идентификатором: idObject , Цифровое значение: idObject должно быть заключено в кавычки. В отличие от функции: GetObject, функция: GetObjectByID допускает числовое значение, состоящее из десяти цифр. 

063 GetObjectByName( NameUnitMap : string ) : object 
063_ Функция: GetObjectByName - возвращает экземпляр: object для объекта с внутреигровым именем: NameUnitMap. 

064 GetObjectID( Object : object ) : float 
064_ Функция: GetObjectID - возвращает идентификатор объекта: idObject. К классу Objects относятся не только Units, но и предметы, например: сундуки, ящики....? Функция: GetObjectID - возвращает правильно только те идентификаторы объектов, которые имеют код: idObject не более 10 цифр, Так как системная функция ПЗ, при получения кода: idObject из внутреннего имени объекта, использует десятизначный, целочисленный формат. Нельзя использовать эту функцию для возврата идентификатора объекта-юнита созданного на карте с помощью команды: AddUnitToServer или не присвоенного в модуле файла: Maps Object (*.mob) кода: idUnit меньшего, чем 10 цифр - в этом случае функция: GetObjectID будет возвращать округленные значения. 

065 GetPlayer( Unit : object ) : float 
065_ Функция: GetPlayer - возвращает номер дипломатической группы, к которой принадлежит объект юнит: Unit. 

066 GetPlayerUnits( nDiplomacyGroup : float ) : group 
066_ Функция: GetPlayerUnits - возвращает Дипломатическую группу юнитов, состоящую в наборе Дипломатических групп под номером nDiplomacyGroup. 

067 GetUnitOfPlayer( nPlayer : float , nUnitInCurrentParty : float ) : object 
067_ Функция: GetUnitOfPlayer - возвращает экземпляр объекта персонажа из набора текущей Партии игрока: nPlayer. Выбор объекта происходит по номеру: nUnitInCurrentParty в наборе текущей Партии. Номер: nUnitInCurrentParty присваивается объекту по номеру очередности добавления в Партию и сортируется (сдвигается) в случае смерти или удаления юнитов с меньшим значением: nUnitInCurrentParty. Второй параметр: nUnitInCurrentParty функции: GetUnitOfPlayer - номер, а не код. Не путать Партию с Дипломатической группой или Игровой группой. 

068 GetWorldTime( ) : float 
068_ Функция: GetWorldTime - возвращает текущее время внутриигровых суток ( в часах ). 

069 GetX( Object : object ) : float 
069_ Функция: GetX - возвращает текущую координату: "x", соответственно, для юнита или предмета (Object) на карте относительно МСК системы координат. Во всех функциях ПЗ, системы координат МСК и ОСК по координате: "x" совпадают. 

070 GetY( Object : object ) : float 
070_ Функция: GetY - возвращает текущую координату: "y", соответственно, для юнита или предмета (Object) на карте относительно МСК системы координат. Во всех функциях ПЗ, системы координат МСК и ОСК по координате: "y" совпадают. 

071 GetZ( Object : object ) : float 
071_ Функция: GetZ - возвращает текущую координату: "z", соответственно, для юнита или предмета (Object) на карте относительно МСК системы координат. Системы координат МСК и ОСК по координате: z практически никогда не совпадают. Начало отсчета по координате: "z" в ОСК - это точка на поверхности карты, где в данный момент находится объект. 

072 GetZValue( x : float , y : float ) : float 
072_ Функция: GetZValue - возвращает высоту твёрдой поверхности карты (независимо от наличия над ней слоя воды или лавы ) в точке с горизонтальными координатами( x , y ), но по команде в консоли: filter graphics 1 всегда выводится чуть меньшая третья координата. Функция: GetZValue несколько отличия от функции: GetBSZValue. 

073 GiveDexterity( Unit : object , Amount : float ) 
073_ Команда: GiveDexterity - добавляет объекту юниту: Unit пунктов ловкости: Amount. Работает только на игровых зонах. Функция одинаково воздействует как на врагов, так и для персонажей игроков. 

074 GiveIntelligence( Unit : object , Amount : float ) 
074_ Команда: GiveIntelligence - добавляет объекту юниту: Unit пунктов разума: Amount . Работает только на игровых зонах. Функция одинаково воздействует как на врагов, так и на персонажей в Партии Игрока. 

075 GiveItem( nPlayer : float , Item : string ) 
075_ Команда: 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 кусков стали. 

076 GiveMoney( nPlayer : float , Money : float ) 
076_ Команда: GiveMoney - добавляет в кошелек объекта количество денег: Money. Команда: GiveMoney не работает в магазине. У объектов принадлежащих Партиям индивидуальный кошелек пуст. 

077 GiveQuestItem( nPlayer : float , QuestItem : strin ) 
077_ Команда: GiveQuestItem - добавляет квестовый предмет в рюкзак текущей Партии Игрока. Рюкзак имеет четыре места. Переполнение квестовых предметов в рюкзаке не взывает ошибки, в случае переполнения рюкзака, квестовые предметы добавляются в обоз. 

078 GiveSkill( Unit : object , Skill : string , Amount : float ) 
078_ Команда: GiveSkill - добавляет количество пунктов: Amount параметру навык: Skill объекту: Unit. Механизм добавления пунктов навыка командой: GiveSkill делится на три этапа: 1- вычисление необходимого количество опыта для текущего добавления пунктов навыка, 2 - добавление вычисленного количества опыта объекту: Unit (не Партии!). 3 - добавления навыка за счет добавленного опыта, тем самым увеличивается значения переменных объекта зависимых от количества опыта - это параметры: "Здоровье" и "Выносливость" объекта. 

079 GiveStrength( Unit : object , Amount : float ) 
079_ Команда: GiveStrength - добавляет объекту юниту: Unit пунктов силы: Amount . Работает только на игровых зонах. Функция одинаково воздействует как на врагов, так и для персонажей игроков. 

080 GiveUnitQuestItem( Unit : object , QuestItem : string ) 
080_ Команда: GiveUnitQuestItem - добавляет квестовый предмет под именем: QuestItem в рюкзак объекта: Unit (сундук). Если объект член "Партии" Игрока, то квестовый предмет добавляется в обоз партии. 

081 GiveUnitSpell( Unit : object , sSpell : string ) 
081_ Команда: GiveUnitSpell - дает объекту: Unit Заклинание, описанное строкой Spell. Заклинание помещается не в обоз, а в набор активных заклинаний - если он полон, то ничего не происходит. В магазине эта процедура не действует, а в игровой зоне, хотя фактически заклинание дается игроку, не обновляет набор заклинаний 

082 GodMode( nPlayer : float , Mode : float ) 
082_ Команда: GodMode - устанавливает текущей партии игрока под номером: nPlayer режим: Mode - 0 значение по умолчанию, Mode - 1 партия неубиваемы при беге мана нерасходуется, Mode - 2 члены партии неубиваемы, при беге мана нерасходуется и любой юнит из партии убивает врага с одного удара. 

083 GroupAdd( grpA : group , grpB : group ) : group 
083_ Функция: GroupAdd - возвращает группу как набор, из объектов полученный в результате сравнения двух групп объектов, которые есть хотя бы в одной из групп: grpA или grpB. Работает с любыми экземплярами групп: "Составными ", "Дипломатическими" и "Игровыми". Для "Игровых" групп можно использовать эту функцию только в скриптах на уровне модуля карты, так как параметры: grpA и grpB следует вводить только как глобальные переменные.? 

084 GroupCross( grpA : group , grpB : group ) : group 
084_ Функция: GroupCross - возвращает группу как набор из объектов пересечения групп объектов, которые есть как в группе: grpA, так и в группе: grpB. Работает с любыми экземплярами групп: "Составными ", "Дипломатическими" и "Игровыми". Для "Игровых" групп можно использовать эту функцию только в скриптах на уровне модуля карты, так как параметры: grpA и grpB следует вводить только как глобальные переменные.? 

085 GroupHas( grp : group , Unit : object ) : float 
085_ Функция: GroupHas - возвращает значения: истину = 1 - если в группе: grp содержится объект: Unit. Работает с любыми экземплярами групп: "Составными ", "Дипломатическими" и "Игровыми". Для "Игровых" групп можно использовать эту функцию только в скриптах на уровне модуля карты, так как параметры: grp следует вводить только как глобальные переменные.? 

086 GroupSee( grp : group ) : group 
086_ Функция: GroupSee - глаза какой-либо группы, возвращает группу как набор из объектов, видимый в текущий момент из глаз группы: grp. Члены группы: : grp могут видеть друг друга. Соответственно, в этом случае в группу войдут и юниты из группы: grp. Если юниты из группы не видят друг друга и не видят никого, то функция возвращает пустое значение. Работает с любыми экземплярами групп: Составными , Дипломатическими и Игровыми. Для Игровых групп можно использовать эту функцию только в скриптах на уровне модуля карты, так как параметры: grp следует вводить только как глобальные переменные.? 

087 GroupSize( grp : group ) : float 
087_ Функция: GroupSize - возвращает число юнитов в группе: grp. Работает с любыми экземплярами групп: "Составными ", "Дипломатическими" и "Игровыми". Для "Игровых" групп можно использовать эту функцию только в скриптах на уровне модуля карты, так как параметры: grp следует вводить только как глобальные переменные.? 

088 GroupSub( grpA : group , grpB : group ) : group 
088_ Функция: GroupSub - возвращает группу как набор из объектов, состоящую из тех юнитов группы grpA, которых нет в grpB. Работает с любыми экземплярами групп: "Составными ", "Дипломатическими" и "Игровыми". Для "Игровых" групп можно использовать эту функцию только в скриптах на уровне модуля карты, так как параметры: grpA и grpB следует вводить только как глобальные переменные.? 

089 GSDelVar( nPlayer : float , Var : string ) 
089_ Команда: GSDelVar - удаляет переменные с именем: Var у игрока номер: nPlayer. 

090 GSGetVar( nPlayer : float , Var : string ) : float 
090_ Функция: GSGetVar - возвращает значение переменной с именем: Var у игрока номер: nPlayer. 

091 GSSetVar( nPlayer : float , Var : string , nVar : float ) 
091_ Команда: GSSetVar - устанавливает значение: nVar в переменную с именем: Var у игрока номер: nPlayer. ? 

092 GSSetVarMax( nPlayer : float , Var : string , nVar : float ) 
092_ Команда: GSSetVarMax - устанавливает значение: nVar в переменную с именем: Var у игрока номер: nPlayer. ? 

093 Guard( Unit : object , x : float , y : float , rad : float ) 
093_ Команда: Guard - отдает команду юниту: Unit, охранять территорию с радиусом: rad с центром в точке: (x,y). Юнит самостоятельно передвигается по указанной зоне, патрулируя ею. 

094 HaveItem( nPlayer : float , idQuestItem : float ) : float 
094_ Функция: HaveItem - возвращает истина: 1, если у Игрока под номером: nPlayer в обозе или в рюкзаке есть квестовых предмет под кодом: idQuestItem, в противном случае ложь - 0 

095 HideObject( Unit : object , Hide : float ) 
095_ Команда: HideObject - работает только на брифинг зонах. Объект-юнит: Значение параметра: Hide - 1 делает: Unit невидимым на брифинг зоне, значение параметра: Hide - 0 делает объект: Unit видимым на брифинг зоне. 

096 HP( Unit : object ) : float 
096_ Функция: HP - возвращает текущее значение параметра: здоровье у объекта Unit. Это число учитывает эффекты заклинаний ослабления и усиления, наложенных на объект. 

097 Idle( Unit : object ) 
097_ Команда: Idle - 

098 InflictDamage( Unit : object , Amount : float ) 
098_ Команда: InflictDamage - наносит повреждения в количестве: Amount без учета показателя брони объекту-юниту: Unit. Если уничтожить врага с помощью этой команды, то опыт за убийство все равно достанется текущей партии и группе? 

099 InvokeAlarm( nAlarm , x : float , y : float ) 
099_ Команда: InvokeAlarm - многофункциональная команда. Активирует переменную: nAlarm. Устанавливает значение переменной: nAlarm равной сумме времени всех предыдущих промежутков активаций и деактиваций этих переменных с момента начала игры. В переменную: nAlarm после активации, постоянно добавляется значение счетчика времени (1/15 сек). Активным может быть только один номер переменной. Активируя следующий номер переменной: nAlarm, команда: InvokeAlarm одновременно деактивируется предыдущую переменную, но не обнуляет ее. Номер следующей инициализируемой переменной необязательно должен быть по порядку, можно повторно инициализировать тот же номер переменной или предыдущий. Чтобы сбросить все значения переменных: nAlarm в ноль и остановить счетчик в глобальной переменной, нужно вызвать команду: InvokeAlarm с первым параметром = 0 : InvokeAlarm(0,0,0). Глобальная переменная не обнуляется. Так же эта команда устанавливает место на карте в точке: (x,y) с номером текущей, инициализируемой переменной. Этот указатель используется в различных заданиях, прописывается в свойство объектов, но только на уровне скриптмодуля. Привязать событие к объекту из консоли нельзя. Враг, реагирующий на событие с данным кодом (предустановлен, инициализирован?) подходит к этой точке и переходит в режим Guard. Если установить значение: nAlarm=0, тревога сбрасывается, и враги возвращаются к своему первоначальному месту и состоянию. 

100 IsAlarm( nAlarm : float ) : float 
100_ Функция: IsAlarm - возвращает значение истина=1, если переменная инициализирована, и ложь=0 в противном случае. 

101 IsAlive( Unit : object ) : float 
101_ Функция: IsAlive - возвращает истину=1, если юнит: Unit жив, и ложь=0 в противном случае. 

102 IsCameraPlaying( ) : float 
102_ Функция: IsCameraPlaying - 

103 IsDead( Unit : object ) : float 
103_ Функция: IsDead - возвращает истину = 1- если объект: Unit мертв, и ложь =0 - в противном случае. Если объект поднят? если объект не существует?, если ввести код предмета, например ключ от пирамиды? 

104 IsEnemy( Unit : object , nDiplomacyGroup : float ) : float 
104_ Функция: IsEnemy - возвращает истину или ложь. Если объект юнит: Unit врагом для Дипломатической группы номер: nDiplomacyGroup 

105 IsEqual( A : float , B : float ) : float 
105_ Функция: IsEqual - возвращает истину = 1, если число: A равно числу: B, и ложь=1 в противном случае. 

106 IsEqualString( A : string , B : string ) : float 
106_ Функция: IsEqualString - возвращает истину=1, если строка: A равна строке: B с учетом регистра, и ложь=0 в противном случае. 

107 IsGreater( A : float , B : float ) : float 
107_ Функция: IsGreater - возвращает истину=1, если число: A больше чем число: B, и ложь=0 в противном случае. 

108 IsInArea( idArea : float , x : float , y : float ) : float 
108_ Функция: IsInArea - возвращает истину=1, если точка: (x,y) находится в одной из области с идентификатором: idArea, и ложь=0 в противном случае. 

109 IsInSquare( x : float , y : float , x1 : float , y1 : float , x2 : float , y2 : float ) : float 
109_ Функция: IsInSquare - возвращает истину=1, если точка: (x,y) находится в прямоугольнике: (x1,y1)-(x2, y2), и ложь=0 в противном случае. 

110 IsLess( A : float , B : float ) : float 
110_ Функция: IsLess - возвращает истину=1, если число: A меньше чем число: B, и ложь=0 в противном случае. 

111 IsNight( ) : float 
111_ Функция: IsNight - возвращает значение в интервале чисел: 0 до 1 в зависимости от времени суток: от 20 до 0 часов - значение от 0.0001 до 1. от 0 до 8 часов утра значение = 1, от 8 до 20 часов = 0. 

112 IsPlayerInDanger( nPlayer : float ) : float 
112_ Функция: IsPlayerInDanger - возвращает значение ложь=0 - если текущая Партия игрока под номером: nPlayer находится в безопасности, или: истина=1, если хотя бы один из членов партии в опасности. IsPlayerInDanger( 0 ) = NOT( IsPlayerInSafety( 0 ) ) 

113 IsPlayerInSafety( nPlayer : float ) : float 
113_ Функция: IsPlayerInSafety - возвращает значение ложь=0 - если текущая Партия игрока под номером: nPlayer находится в безопасности, или: истина=1, если хотя бы один из членов партии в опасности. IsPlayerInSafety( 0 ) = NOT( IsPlayerInDanger( 0 ) ) 

114 IsUnitBlocked( Unit : object ) : float 
114_ Функция: IsUnitBlocked - возвращает истину=1, если юнит: Unit заблокирован, и ложь=0 в противном случае. 

115 IsUnitInWater( Unit : object ) : float 
115_ Функция: IsUnitInWater - возвращает истину=1, если юнит: Unit находится в воде, и ложь=0 в противном случае.? 

116 IsUnitVisible( Unit : object ) : float 
116_ Функция: IsUnitVisible - возвращает истину: 1, если юнит видим игроком на игровой зоне, в противном случае: 0 (не хватает параметра nPlayer). команда: HideObject не влияет на результат, возвращаемый этой функцией. 

117 KillScript( ) 
117_ Команда: KillScript - работает только на уровне скриптмодуля карты! 

118 KillUnit( Unit : object ) 
118_ Команда: KillUnit - убивает объект: Unit. Опыт за убийство никому не достается. Чтобы опыт за убийство: Unit достался текущей "Партии" следует ввести команду: InflictDamage. 

119 LeaveToZone( nPlayer : float , MapZone : string , nEnterMap : float ) 
119_ Команда: LeaveToZone - перемещает Игрока: nPlayer (все партии и обоз) на зону: MapZone в место: nEnterMap. Место: nEnterMap - это заранее предусмотренные места на карте где могут появляться Партии игроков. Каждый портал на карте имеет свой номер места: nEnterMap. 

120 Lie( Unit : object ) 
120_ Команда: Lie - изменяет режим перемещения объекта: Unit, отдает команду: ляг. 

121 Mana( Unit : object ) : float 
121_ Функция: Mana - возвращает текущее значение параметра: выносливость у объекта: Unit. 

122 MaxHP( Unit : object ) : float 
122_ Функция: MaxHP - возвращает максимально возможное значение здоровье у объекта: Unit. Это число учитывает эффекты заклинаний ослабления и усиления, наложенных на объект. 

123 MaxMana( Unit : object ) : float 
123_ Функция: MaxMana - возвращает максимально возможное значение выносливости: Mana у объекта: Unit. 

124 MoveParticleSource( id : float , x : float , y : float , z : float , Time : float , Remove : float ) 
124_ Команда: MoveParticleSource - перемещает источник частиц с идентификатором: id в точку: (x,y,z) за время: Time (измеряется в 1/15 секунды). Если параметр: Remove - истина, то после перемещения удаляет источник. 

125 MovePointLight( id : float , x : float , y : float , z : float , Time : float , Remove : float ) 
125_ Команда: MovePointLight - перемещает источник света с идентификатором: id в точку: (x,y,z) за время: Time (измеряется в 1/15 секунды). Если параметр: Remove - истина, то после перемещения удаляет источник. 

126 MoveToObject( UnitA : object , UnitB : object ) 
126_ Команда: MoveToObject - заставляет юнит: UnitA двигаться в текущем режиме перемещения к той точке, в которой на момент выполнения команды находился юнит UnitB. 

127 MoveToPoint( Unit : object , x : float , y : float ) 
127_ Команда: MoveToPoint - отдает команду юниту: Unit следовать в точку: (x,y). 

128 Mul( A : float , B : float ) : float 
128_ Функция: Mul - возвращает произведение чисел: (A и B) 

129 Not( bool : float ) : float 
129_ Функция: Not - возвращает отрицание логического значения bool: истину=1, если: bool равно нулю, и ложь=0 в противном случае. 

130 PlayAnimation( Unit : object , Animation : string ) 
130_ Команда: 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 не происходит ничего. Если юнит во время применения процедуры двигался, то он остановится, проиграет анимацию и потом пойдет дальше. (В случае анимации с буквой: "с" он остановится навечно) 

131 PlayCamera( PlayName : string ) 
131_ Команда: PlayCamera - запускает команду автоматического управления камерой вида игровой зоны. Последовательность перемещения камеры находится в файле: PlayName из каталога игры: ...CAMERA\. 

132 PlayerSee( nPlayer : float ) : group 
132_ Функция: PlayerSee - глаза партии. Возвращает сборную группа юнитов, которых видит игрок под номером: nPlayer, - т.е., все те юниты, которые видны глазами юнитов (членов) партии игрока. Юниты также видят и друг друга в партии. НЕ Эквивалентно вызову GroupSee ( GetPlayerUnits ( nDiplomacyGroup ) )!. 

133 PlayFX( float , float , float , float , string ) 
133_ Команда: PlayFX - 

134 PlayMovie( PlayName : string ) 
134_ Команда: PlayMovie - воспроизводит видеоролик с именем PlayName из каталога игр: ...MOVIES\. 

135 PlayMusic( nPlayer : float , PlayName : string ) 
135_ Команда: PlayMusic - воспроизводит мелодию с именем PlayName из подкаталога: ...\STREAM\. Имя файла указывается без расширения. 

136 Qfinish( ) 
136_ Команда: QFinish - объявляет выполненным задание, выдаваемое в МП командой: Qstart. При этом в инфоокне выводится текст задания, а в момент выполнения появляется дракончик. Если последовательность команд: Qstart, Qfinish была вызвана в одиночной игре, то за выполненный квест, достаются все полагающиеся бонусы и квестовые предметы. Вновь объявленное задание командой: QStart с тем же именем отменяет уже выполненные задачи. Например, если в теле объявления квеста была команда: QObjSeeUnit и группа игроков видела этого юнита, то вновь объявленный квест потребует повторного посмотреть на этот юнит. 

137 QObjArea( idArea : float ) 
137_ Команда: QObjArea - предназначена для создания и выполнения динамических заданий на игровых зонах в МП. Как правило, область: idArea задается под кодом - 1. Область является неким виртуальным объектом на карте включающее в себя множество участков на игровой зоне с одинаковым ID. 

138 QObjGetItem( id : float ) 
138_ Команда: QObjGetItem - предназначена для создания и выполнения динамических заданий на игровых зонах в МП. Добавляет задачу: получить квестовый предмет с кодом: id 

139 QObjKillGroup( "grp" : string ) 
139_ Команда: QObjKillGroup - предназначена для создания и выполнения динамических заданий на игровых зонах в МП. Добавляет задачу: уничтожить "Игровую" группу под именем глобальной переменной: grp. Игровая группа создается в модуле игровой зоны как глобальная переменная и добавляет в свой набор объекты-юниты командой: AddObject. Параметр: grp - вводится как имя глобальной переменной. Команду: QObjKillGroup нельзя применять из консоли, так как нет функций возвращающих экземпляр "Игровой" группы.? 

140 QObjKillUnit( UnitName : string ) 
140_ Команда: QObjKillUnit - предназначена для создания и выполнения динамических заданий на игровых зонах в МП. Добавляет задачу: уничтожить объект с именем: UnitName. 

141 QObjSeeObject( ObjectName : string ) 
141_ Команда: QObjSeeObject - предназначена для создания и выполнения динамических заданий на игровых зонах в МП. Добавляет задачу: увидеть объект (сундук, не юнит) с именем: ObjectName. 

142 QObjSeeUnit( UnitName : string ) 
142_ Команда: QObjSeeUnit - предназначена для создания и выполнения динамических заданий на игровых зонах в МП. Добавляет задачу: увидеть объект-юнит с именем: UnitName. 

143 QObjUse( Lever : string , State : float ) 
143_ Команда: QObjUse - применяется в процедуре описания задания и добавляет задачу - перевести рычаг(Lever) в состояние(State) Добавляет задачу: перевести "рычаг": Lever в состояние: State в набор задач объявленных командой: Qstart 

144 QStart( QuestName : string ) 
144_ Команда: QStart - динамически, во время игры или на брифинг-зоне, команда: QStart объявляет квест в МП на сервере игры ПЗ и открывает текущее перечисление целей. Закрывает текущее перечисление целей команда: QFinish. В теле Объявления задания (перечисление задач) находятся команды ставящее условия выполнения Задания. Очередность установления задач должна быть в прямой последовательности их выполнения и недолжна, нарушаться, так как подзадания в МП выдаются последовательно по мере их выполнения. Задание можно объявить и в одиночной игре, но это бессмысленно, так как последовательность получения заданий в одиночной игре предусмотрены заранее в таблице ресурсов. 

145 QuestComplete( nPlayer : float , QuestName : string ) 
145_ Команда: QuestComplete - как и МП команда: QFinish объявляет квест выполненным и выдает опыт за выполнение задания, но сообщения о выполнении задания не выводятся в инфоокне игры. 

146 Random( Max : float ) : float 
146_ Функция: Random - возвращает псевдослучайное число в промежутке от: 0 до: Max. 

147 RecalcMercBriefings( ) 
147_ Команда: RecalcMercBriefings - 

148 RedeployParty( nPlayer : float ) 
148_ Команда: RedeployParty - завершает транзакцию установки текущей партии для выбранного игрока: nPlayer. 

149 RemoveObject( grp : group , Unit : object ) 
149_ Команда: RemoveObject - удаляет принадлежность объекта: Unit к глобальной переменной "Игровой группы": grp. Игровая группа создается в модуле игровой зоны как глобальная переменная и добавляет в свой набор объекты-юниты командой: AddObject. Параметр: grp - вводится как имя глобальной переменной. Команду: RemoveObject нельзя применять из консоли, так как нет функций возвращающих экземпляр "Игровой" группы.? 

150 RemoveObjectFromServer( Object : object ) 
150_ Команда: RemoveObjectFromServer - удаляет объект с сервера (сундук, механизм...) 

151 RemoveParty( nPlayer : float , PartyName : string ) 
151_ Команда: RemoveParty - удаляет партию по имени: PartyName из набора партий игрока под номером: nPlayer. 

152 RemoveQuestItem( Unit : object , id : float ) 
152_ Команда: RemoveQuestItem - удаляет квестовый предмет из обоза (рюкзак?) текущей группы. (У врагов из рюкзака?) Кол-во удалений одинаковых квестовых предметов у игрока? 

153 RemoveUnitFromControl( nPlayer : float , Unit : object ) 
153_ Команда: RemoveUnitFromControl - удаляет иконку юнита: Unit из контроль панели игрока: nPlayer на игровой зоне. 

154 RemoveUnitFromParty( nPlayer : float , NamePersRes : string ) 
154_ Команда: RemoveUnitFromParty - удаляет из текущей партии персонаж: NamePersRes принадлежащий игроку под номером: nPlayer. Можно ли удалить персонаж не из текущей партии, используя обычный указатель принадлежности к партии через двоеточие. 

155 RemoveUnitFromServer( Unit : object ) 
155_ Команда: RemoveUnitFromServer - удаляет юнит с сервера. Теряется ли рюкзак, обоз при восстановлении персонажа? 

156 ResetTarget( Unit : object ) 
156_ Команда: ResetTarget - сбрасывает все режимы: охраны, патрулирования и агрессивности. Перед тем как набрать список команд патрулирования и охраны следует сделать сброс этой командой. Эта самая молодая команда в ПЗ. в версии игры 1.0 её нет. Она появилась в сервис пакете 1.02, для того чтобы знаменитым вопросом: "…почему Циклоп не уходит" больше не мучили разработчиков. 

157 Rest( Unit : object ) 
157_ Команда: Rest - юнит: Unit отдыхает, если это возможно, то усаживается на землю. 

158 RotateTo( Unit : object , x : float , y : float ) 
158_ Команда: RotateTo - поворачивает объект: Unit лицом по направлению к точке( X , Y ). Сразу после вызова команды: AddUnitToServer команда: RotateTo не работает, нужно время, чтобы Юнит появился на карте, но выполнить задержку командой: Sleep из консоли нельзя. Команда: Sleep работает только на уровне Скриптмодуля карты. 

159 Run( Unit : object ) 
159_ Команда: Run - переключает объект-юнит: Unit в режим "бег" 

160 RunWorldTime( Hour : float ) 
160_ Команда: RunWorldTime - переустанавливает текущее время: Hour в ПЗ. 

161 SendEvent( float , flaot ) 
161_ Команда: SendEvent - 

162 SendStringEvent( float , string ) 
162_ Команда: SendStringEvent - 

163 Sentry( Unit : object , x : float , y : float ) 
163_ Команда: Sentry - отдает команду юниту: Unit охранять точку: (x,y), атакуя врагов в области видимости. После уничтожения противника возвращается в указанную точку. 

164 SetBackgroudColor( R : float , G : float , B : float ) 
164_ Команда: SetBackGroundColor - устанавливает фоновый цвет на карте в режиме: (R,G,B). Фон перекрывается текстурами неба, поэтому результат будет заметен лишь на пещерных картах. 

165 SetCameraOrientation( float ) 
165_ Команда: SetCameraOrientation - 

166 SetCameraPosition( float , float , float ) 
166_ Команда: SetCameraPosition - 

167 SetCP( Object : object , x : float , y : float , z : float ) 
167_ Команда: SetCP - переносит объект: Object на карте, (не только юнит) в точку: (x,y). На карте Предгорья можно перенести Рычаг от пирамиды: @setcp( GetObjectByID( "4636" ), 22 , 140, 0) 

168 SetCPFast( Object : object , x : float , y : float , z : float ) 
168_ Команда: SetCPFast - переносит объект: Object на карте, (не только юнит) в точку: (x,y). На карте Предгорья можно перенести Рычаг от пирамиды: @setcp( GetObjectByID( "4636" ), 22 , 140, 0) 

169 SetCurrentParty( nPlayer : float , PartyName : string ) 
169_ Команда: SetCurrentParty - устанавливает текущую партию: PartyName из набора партии игрока под номером: nPlayer. 

170 SetDiplomacy( nDiplomacyGroupA : float , nDiplomacyGroupB : float , Diplomacy : float ) 
170_ Команда: SetDiplomacy - изменяет дипломатические отношения между группами объектов. Группы: nDiplomacyGroupA и nDiplomacyGroupB представлены по номерам. Дипломатическая группа "Партии" "Игрока" всегда принадлежит номер дипломатической группировки = 0. Возможные значения: Diplomacy: 1 - союзник 0 - нейтрал -1 - враг 

171 SetDirectionToObject( nUnit : float ) 
171_ Команда: SetDirectionToObject - 

172 SetEnemy( Unit : object , id : float ) 
172_ Команда: SetEnemy - 

173 SetParticleSourceSize( id : float , rad : float ) 
173_ Команда: SetParticleSourceSize - изменяет радиус источника частиц с идентификатором: id на: rad. 

174 SetPlayer( Unit : object , nDiplomacyGroup : float ) 
174_ Команда: SetPlayer - устанавливает юниту: Unit, принадлежность к дипломатической группе номер: nDiplomacyGroup. 

175 SetPlayerAggression( float , float ) 
175_ Команда: SetPlayerAggression - 

176 SetScience( object , float , float , float , float , float , float ) 
176_ Команда: SetScience - 

177 SetSpellAggression( Unit object , Aggression : float ) 
177_ Команда: SetSpellAggression - 

178 SetSunLight( sunlightR : float , sunlightG : float , sunlightB : float , ambientR : float , ambientG : float , ambientB : float , skyR : float , skyG : float , skyB : float ) 
178_ Команда: SetSunLight - 

179 SetWaterLevel( idWBassein : float , Level : float , delay : float ) 
179_ Команда: SetWaterLevel - устанавливает уровень: Level воды: idWBassein с задержкой: delay относительно дна водоема. Уровень водоема не влияет на проходимость зон вброд Персонажами. 

180 SetWind( float , float , float , float ) 
180_ Команда: SetWind - 

181 ShowBitmap( float , Bitmap : string ) 
181_ Команда: ShowBitmap - 

182 ShowCredits( string ) 
182_ Команда: ShowCredits - 

183 Sleep( Sleep : float ) 
183_ Команда: Sleep - устанавливает паузу: Sleep в теле вызываемой процедуры на уровне Скриптмодуля карты. 

184 SleepUntil( bool : float ) 
184_ Команда: SleepUntil - 

185 SleepUntilIdle( Unit : object ) 
185_ Команда: SleepUntilIdle - 

186 Standt( Unit : object ) 
186_ Команда: Stand - изменяет режим перемещения объекта: Unit на шаг. 

187 StartAnimation( Unit : object , PathAnimation : string ) 
187_ Команда: StartAnimation - 

188 Sub( A : float , B : float ) : float 
188_ Функция: Sub - возвращает разность чисел А и В. 

189 Sum (цикл) 
189_ Команда: Sum - 

190 SwitchLeverState( Lever : object , State : float ) 
190_ Команда: SwitchLeverState - устанавливает механизм (рычаг): Lever в исходное положение выключено: State - 0 и в положение включено: State - 1. Соответственно, визуально отображаются положения рычагов на игровых зонах. Функция: GetLeverState - возвращает состояние механизма. 

191 SwitchLeverStateEx( Lever : object , State : float , Delay : float ) 
191_ Команда: SwitchLeverStateEx - устанавливает механизм (рычаг): Lever в исходное положение выключено: State = 0 и в положение включено: State = 1. Соответственно, визуально отображаются положения рычагов на игровых зонах. Дополнительный параметр: Delay позволяет установить время задержки мультипликации механизма. Функция: GetLeverState - возвращает состояние механизма. 

192 UMAg( Unit : object , Ag : float ) 
192_ Команда: UMAg - отдает команду юниту: Unit избегать врагов, должно быть сброшено агрессивное состояние у объекта. 

193 UMAggression( Unit : object ) 
193_ Команда: UMAggression - отдает команду юниту: Unit атаковать врагов в пределах видимости. 

194 UMClear( Unit : object ) 
194_ Команда: UMClear - удаляет все директивы самостоятельного поведения юнита: Unit. 

195 UMCorpseWatcher( Unit : object ) 
195_ Команда: UMCorpseWatcher - 

196 UMFear( Unit : object , Fear : float ) 
196_ Команда: UMFear - устанавливает поведение "испуг" юниту: Unit. При этом юнит теряет способность атаковать врагов и пытается скрыться от врагов. Поведение по умолчанию у нейтральных зверей. Параметр: Fear - номер дипломатической группы? 

197 UMFollow( UnitA : object , UnitB : object ) 
197_ Команда: UMFollow - отдает команду объекту: UnitA постоянно следовать за объектом: UnitB . После боя команда не отменяется. Сходные свойства поведения у команды: Follow. 

198 UMGuard( Unit : object , x : float , y : float , rad : float ) 
198_ Команда: UMGuard - заставляет объект: Unit охранять точку (x,y) с радиусом: rad. 

199 UMGuardEx( Unit : object , x : float , y : float , rad : float , Delay : float ) 
199_ Команда: UMGuardEx - заставляет объект: Unit охранять точку (x,y) с радиусом: rad и задержкой: Delay в точках случайного останова объекта: Unit. 

200 UMPatrol( Unit : object ) 
200_ Команда: UMPatrol - Команда вызывает ошибку выполнения! Чтобы установить режим патрулирования следует, применит команду: ResetTarget перед набором списка патрульных команд. 

201 UMPatrolAddPoint( Unit : object , x : float , y : float ) 
201_ Команда: UMPatrolAddPoint - указывает новую точку наблюдения: (x,y) в которую переместится объект при патрулировании. Для задержки объекта в точке наблюдения и ориентировки объекта в сторону наблюдения, нужно использовать за командой: UMPatrolAddPoint команду: UMPatrolAddPointLook. 

202 UMPatrolAddPointLook( Unit : object , x : float , y : float , Delay : float ) 
202_ Команда: UMPatrolAddPointLook - указывает объекту: Unit точку (x,y) в которую будет смотреть объект: Unit и насколько долго: Delay объект задержится в этом положении. 

203 UMPatrolClear( Unit : object ) 
203_ Команда: UMPatrolClear - удаляет все директивы патрулирования установленные командами: UMPatrolAddPointLook, UMPatrolAddPoint. Аналогичное действие команды: ResetTarget, но ResetTarget сбрасывает все команды UM*. 

204 UMPlayer( Unit : object ) 
204_ Команда: UMPlayer - подчиняет юнит: Unit игроку. Не изменяет принадлежность юнита к дипломатической группе. Действует дипломатия как на уровне Партии.? 

205 UMRevenge( Unit : object ) 
205_ Команда: UMRevenge - эта команда устанавливает объекту: Unit страх от дипломатической группы - 0. Объект: Unit будет стараться убежать и не видеть юнита из дипломатической группы - 0. Чтобы сразиться с врагом в таком состоянии, нужно ранить его или загнать в тупик. 

206 UMSentry( Unit : object , x : float , y : float ) 
206_ Команда: UMSentry - устанавливает режим для юнита: Unit охранять точку: (x,y), атакуя врагов в области видимости. После уничтожения врага, юнит возвращается в указанную точку. 

207 UMStandard( Unit : object ) 
207_ Команда: UMStandard - отдает команду юниту: Unit атаковать любого ближайшего врага в области видимости юнита: Unit. Стандартный режим для объектов врагов. 

208 UMSuspection( Unit : object ) 
208_ Команда: UMSuspection - отдает команду юниту: Unit идти к любому ближайшему врагу в области видимости юнита: Unit, но не атакует его? 

209 UnitInSquare( Unit : object , x1 : float , y1 : float , x2 : float , y2 : float ) : float 
209_ Функция: UnitInSquare - возвращает истину=1, если юнит: Unit находится в прямоугольнике: (x1,y1)-(x2, y2). 

210 UnitSee( Unit : object ) : group 
210_ Функция: UnitSee - возвращает группу как набор из объектов, состоящую из тех юнитов которых видит юнит: Unit. Юнит не видит самого себя: GroupSize(UnitSee( GetLeader())) 

211 WaitEndAnimation( ) 
211_ Команда: WaitEndAnimation - 

212 WaitSegment( float ) 
212_ Команда: WaitSegment - 

213 Walk( Unit : object ) 
213_ Команда: Walk - отдает команду юниту: Unit перейти на шаг. 

214 WasLooted( Unit : object ) : float 
214_ Функция: WasLooted - возвращает значение - 0, если рюкзак объекта: Unit пуст. Рюкзак (обоз) у объекта может быть обворован или обыскан его труп. 
