Город Джунов
Информация: Описание скриптовых команд. - Версия для печати

+- Город Джунов (https://www.gipat.ru/forum)
+-- Форум Аддон для Проклятых Земель (https://www.gipat.ru/forum/forum-20.html)
+--- Форум Программирование (https://www.gipat.ru/forum/forum-6.html)
+--- Темы: Информация: Описание скриптовых команд. (/thread-663.html)



Информация: Описание скриптовых команд. - sun - 21.02.2002

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