Разбор скриптовых команд.
#1
002 Add ( flA : float , flB : float ): float
Возвращает сумму чисел flA и flB.

003 AddLoot ( fl : float , strA: string , strB: string )
Назначение пока неизвестно. Строка strA, видимо, обозначает партию.

004 AddMob ( strMob : string )
Загружает .mob-файл strMob из подкаталога MAPS. Имя файла указывается с расширением.

005 AddObject ( grp : group , obj : object )
Назначение пока неизвестно.

006 AddRectToArea ( idArea : float , x1: float , y1: float , x2 : float , y2 : float )
Добавляет к области idArea прямоугольник c диагональю(x1,y1)-(x2,y2). (информация Чейза)
Что такое "область" и зачем к ней что-то добавлять, пока неясно.

007 AddRoundToArea ( idArea : float , x : float , y : float , rad : float )
Добавляет к области idArea круг радиуса rad с центром в точке (x,y).
(информация Чейза)
Что такое "область" и зачем к ней что-то добавлять, пока неясно.

009 AddUnitToServer ( intName : string , typeUnit : string , visName : string , x : float , y : float , z : float)
Добавляет на карту юнит типа typeUnit с отображаемым названием visName и внутренним именем intName в точку с горизонтальными координатами (x, y) на высоте z над поверхностью. Если в точке (x,y) находится водоём (озеро лавы), то левитирующие юниты устанавливаются на данной высоте относительно поверхности воды (лавы), а остальные - относительно поверхности дна. В дальнейшем юнит всегда будет перемещаться на данной высоте относительно твёрдой поверхности или поверхности воды (для левитирующего). В игре все юниты установлены с параметром z=0.
Юниты добавляются в текстурированном виде, если они относятся к группе помощников в таблице Pers базы данных игры, а остальные - без текстур. Некоторые параметры нового юнита фиксированы: Здоровье - 1, Запас сил - 0, Броня - 0. Остальные определяются значением typeUnit, причём для юнитов, не относящихся к помощникам, эти параметры будут такими же, как и в игре.

015 AttachParticles ( idSource : float , objUnit : object)
Присоединяет источник частиц с идентификатором idSource к юниту objUnit. Источник будет двигаться c постоянным смещением от юнита. Это смещение равно координатам (x , y , z), взятым в процедуре CreateParticleSource при создании данного источника.
Пример:
@CreateParticleSource(1234,1,-2,2,-1,"fire")
@AttachParticles(1234, GetLeader())

Перевёрнутый вверх тормашками огонь радиусом 1 будет перемещаться около Зака на расстоянии 1 по X, -2 по Y и 2 по Z.

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

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


038 DeleteParticleSource ( idSource : float )
Удаляет источник частиц с идентификатором idSource.

051 GetAIClass ( objUnit : object ): float
Возвращает тип AI для юнита objUnit. Что обозначает этот тип, пока неясно. Но для несуществующего юнита результат всегда -1 (минус один), а для Зака - 3 (три), как, например, для орков в Предгорьях и для скелетов в МГ.

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

053 GetDiplomacy ( nPlayerA : float , nPlayerB : float ): float
Возвращает тип дипломатии: кем является игрок номер nPlayerA для игрока номер nPlayerB. Возможные значения:
1 - союзник
0 - нейтрал
-1 - враг

054 GetFutureX ( objUnit : object, flTime : float ): float

055 GetFutureY ( objUnit : object , flTime : float ): float

Экстраполируют координаты х и y, соответственно, юнита objUnit через время flTime, основываясь на его текущем направлении движения и скорости.
Время flTime измеряется в единицах, равных 1/15 секунды (на нормальной скорости игры).
Если точка назначения юнита близка к текущей позиции, то экстраполяция с достаточно большим временем даёт координаты точки назначения. При большИх значениях flTime (порядка 200) функции перестают выдавать правильный результат.

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

057 GetLeverState ( objLever : object ): bool
Возвращает истину, если "рычаг" objLever "включен", и ложь в противном случае.
(Данные CHaSE, как проверить, не знаю.)

058 GetLootItemsCount ( nPlayer : float ): float
Возвращает количество поднятых трупов с предметами (не с деньгами) на текущей игровой зоне игроком номер nPlayer.
В мультиплейере с самого начала зоны это число может быть не нулём, поэтому там ситуация не вполне ясна.

059 GetMercsNumber ( nPlayer : float ): float
Возвращает число наемников у игрока номер nPlayer (не включает лидера).

060 GetMoney ( nPlayer : float ): float
Возвращает количество денег у игрока номер nPlayer.

061 GetObjectID ( objUnit : object ): float
Возвращает идентификатор объекта objUnit.

211 GetObject ( idObject : float ): object
Возвращает экземпляр object для объекта с идентификатором idObject.
При больших значениях idObject (например, у героя он немного больше миллиарда) не работает.

212 GetObjectByID ( strID : string ): object
Возвращает экземпляр object для объекта с идентификатором idObject, еcли строка strID имеет вид "idObject".

213 GetObjectByName ( strName : string ): object
Возвращает экземпляр object для объекта с именем strName.

062 GetPlayer ( objUnit : object ): float
Возвращает номер игрока для юнита objUnit.
Персонажи, управляемые человеком, всегда относятся к игроку 0.

063 GetPlayerUnits ( nPlayer : float ): group
Возврашает группу юнитов игрока номер nPlayer.

064 GetUnitOfPlayer ( nParty : float , nUnit : float ): object
При nParty=0 возвращает экземпляр object для юнита номер nUnit команды игрока-человека.
Юнит номер 0 - это Зак, члены команды имеют номера 1 и 2. В мультиплейере юнит номер 0 - свой персонаж.

065 GetWorldTime (): float
Возвращает текущее время внутриигроых суток (в часах).

066 GetX ( objUnit : object ): float

067 GetY ( objUnit : object ): float

068 GetZ ( objUnit : object ): float

Возвращают текущие координаты x,y и z, соответственно, юнита objUnit.

069 GetZValue( x : float , y : float ): float
Возвращает высоту твёрдой поверхности земли (независимо от наличия над ней слоя воды или лавы) в точке с горизонтальными координатами (x,y).
(Но по команде filter graphics 1 всегда выводится чуть меньшая третья координата.)
Про отличия от GetBSZValue см. выше.

070 GiveDexterity ( objUnit : object , flAmount : float )
Добавляет юниту objUnit flAmount пунктов ловкости. Работает только вне магазина. Если objUnit - вражеский юнит, то единственным эффектом будет то, что у него обнулится здоровье всех частей тела и максимальный уровень энергии. Впоследствии юнит может быть вылечен или регенерирует сам.

071 GiveIntelligence ( objUnit : object , flAmount : float )
Добавляет юниту objUnit flAmount пунктов разума. Работает только вне магазина. Если objUnit - вражеский юнит, то единственным эффектом будет то, что у него обнулится здоровье всех частей тела и максимальный уровень энергии. Впоследствии юнит может быть вылечен или регенерирует сам.

072 GiveItem ( fl : float , strItem : string )
При fl=0 помещает в обоз предмет, описываемый строкой strItem.

Предмет описывается строкой одного из следующих форматов:
"<название чертежа>.<название материала>[[ <описание спелла>]]" - для доспеха или оружия (описание спелла пишется в квадратных скобках, и эта часть строки необязательна)
"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 GiveStrength ( objUnit : object , flAmount : float )
Добавляет юниту objUnit flAmount пунктов силы. Работает только вне магазина. Если objUnit - вражеский юнит, то единственным эффектом будет то, что у него обнулится здоровье всех частей тела и максимальный уровень энергии. Впоследствии юнит может быть вылечен или регенерирует сам. Персонаж из команды тоже теряет часть здоровья при использовании этой команды (но не умирает, даже если оно в результате становится нулём).

По мере проверки буду добавлять в это сообщение описания новых команд.

[ 01 февраля 2002: Изменил: Vasya ]</p>


Сообщения в этой теме
Разбор скриптовых команд. - от Vasya - 26.01.2002, 02:08

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)