Оглавление Сообщение об ошибках Ваше мнение о проекте E-Mail автору

v    Команды работы с объектами  ( General object commands ).

 

<RetVar/IF> <object> get object class

Возвращает класс объекта <object> (схема классов в приложении «Иерархия объектов»).

 

<RetVar/IF> <object> get owner race

Возвращает расу владельца объекта <object>.

 

<RetVar/IF> <object> get environment

Возвращает окружение объекта <object>. Если объект пристыкован к станции или носителю, то инструкция вернет указатель на эту станцию или носитель, если объект находится в космосе, то вернет сектор в котором находиться объект.

 

<RetVar/IF> <object> get sector

Возвращает сектор, в котором находится объект <object>. Если объект пристыкован, то вернет сектор где находиться станция или носитель к которому пристыкован объект <object>.

 

<RetVar/IF> <ship> get homebase

Возвращает базу приписки корабля <ship> или null, если корабль не имеет приписки.

 

<RetVar/IF> <object> is of class <class>

Возвращает значение [TRUE], если объект <object> принадлежит к классу <class> и значение [FALSE], если нет. Эту инструкцию можно использовать для выбора объектов определенного класса. Например: корабль разведчик класса М3 войдя в сектор находит  там вражеский корабль, нам требуется определить класс вражеского корабля для определения дальнейших действий разведчика. Если вражеский корабль является «Большим кораблем», то разведчик отступает.

056     if $enemy -> is of class Большой корабль

057     …процедура отступления…

…        else

070     … процедура атаки…

…        end

Иерархия классов объектов в приложении «Иерархия объектов».

 

<RetVar/IF> <object> exists

Возвращает значение [TRUE], если объект <object> существует, [FALSE] если нет. Помните, что игровая вселенная все время меняется, объекты с которыми обращается ваш скрипт могли быть уничтожены. При помощи этой инструкции вы легко можете проверить существует ли объект к которому вы обращаетесь:

040     skip if $object -> exists                   …если объект жив, то пропустить строку 041

041     return null                                           … объект уничтожен. Выход из скрипта

…        продолжение выполнения скрипта, если объект существует…

            Всегда при создании скрипта, в самых первых строках, делайте проверку существования объекта с которым он должен работать. Это позволит избежать дальнейших ошибок.

 

<RetVar/IF> <object> get ware type code of object

Возвращает точный тип объекта. Результат данной функции можно, например, использовать, как аргумент для функции create, но учтите, содержит только тип объекта, так что вновь созданный объект не будет иметь апгрейдов установленных на <object>, их придется добавлять вручную, при помощи инструкции install и Add.

 

<RetVar/IF> <station> get serial name of station

Возвращает добавочный номер станции <object> в виде соответствующей ему буквы греческого алфавита (Альфа, Бета и т.д.). Эта инструкция не будет работать со станциями принадлежащими игроку. Описание греческого алфавита смотри в приложении Голосовые симплы.

 

<station> set serial name of station to <serial>

Устанавливает добавочный номер для станции в виде буквы греческого алфавита. Если использовать со станциями принадлежащими игроку, то работать не будет.

 

<RetVar/IF> find station in galaxy: startsector=<sector> class or type=<type> race=<race> flags=<flag> refobj=<object> serial=<serial> max.jumps=<maxjumps>

Инструкция для глобального поиска станции в галактике (не путайте с командами торгового поиска). Большинство параметров служат для уточнения параметров поиска. Все параметры кроме startsector и maxjumps могут быть установлены как null, что будет воспринято инструкцией как искать без ограничений по данному параметру. Например, если установить как null параметр race, то поиск будет производиться среди всех рас.

Используя инструкции глобального поиска в скриптах инициализации (имена Init. ), будьте осторожны и помните, что скрипты с именем init. загружаются до создания объектов в игровой галактике и инструкция почти наверняка вызовет зависание игры. Подробное описание всех параметров поиска в разделе «Особенности некоторых команд» глава «Организация глобального поиска объектов. Флаги поиска (Find)»

 

<RetVar/IF> <object> is of type <type>

Возвращает [TRUE], если  объект <object> является указанным типом <type> (станцией или кораблем), иначе вернет [FALSE].

 

<RetVar/IF> get jumps from sector <startsector> to sector <endsector>

Возвращает количество прыжков от сектора <startsector> до сектора <endsector>.

 

<RetVar/IF> get next sector on route from sector <startsector> to sector <endsector>

Возвращает следующий сектор по пути следования из сектора <startsector> в сектор <endsector>.

 

<object> set homebase to <newhome>

Приписать объект <object> к станции или носителю <newhome>.

 

<RetVar/IF> <object> get current shield strength

Возвращает текущий уровень щита объекта <object> к килловатах.

 

<RetVar/IF> <object> get maximum shield strength

Возвращает максимальный уровень щита объекта <object> в киловаттах. Складывается из суммы мощностей всех щитов указанной в мегаваттах умноженной на 1000.

 

<RetVar/IF> <object> get current laser strength

Каждая пушка имеет установочный уровень огневой мощи, после каждого выстрела из пушки он уменьшается и на восстановление уходит некоторое время. Эта инструкция возвращает текущий уровень огневой мощи объекта <object>.

 

<RetVar/IF> <object> get maximum laser strength

Возвращает максимально возможный уровень огневой мощи объекта <object>. Складывается из суммы установочной огневой мощи всех установленных на объекте пушек.

 

<RetVar/IF> <object> get max. laser strength in turret <turret>

Возвращает максимальную огневую мощь турели <turret> установленной на объекте <object>. Складывается из суммы установочной огневой мощи всех пушек установленных на данной турели.

 

<RetVar/IF> <object> get max. shield type that can be installed

Возвращает максимальный тип щита (1, 5, 25, 125 Мвт), который можно установить на объект <object>. Все щиты совместимы по принципу уменьшения, т.е. если максимальный тип щита 25 Мвт, то вы можете установить на объект любой из щитов каких как 25, 5, 1 Мвт.

 

<RetVar/IF> <object> get number of shield bays

Возвращает количество слотов для установки щитов (количество щитов которое технически возможно установить)  для объекта <object>. Общая мощность щитов объекта будет складываться из сумм установочной мощности всех установленных щитов.

 

<RetVar/IF> <object> get number of laser bays

Возвращает количество слотов для установки пушек для объекта <object>. Суммируются все слоты объекта (носовые орудия, турели).

 

<RetVar/IF> <object> get max. missile type that can be installed

Возвращает самый мощный тип ракет, который можно установить на объект <object>. Соответственно совместимы все ракеты меньшей мощности.

 

<RetVar/IF> <object> get relation to object <subject>

Возвращает отношение объекта <object> к объекту <subject>.

Возвращаемые значения:

Свой (Friendly)

Объекты принадлежащие собственной расе.

Нейтральный (Neutral)

Объекты принадлежащие другим расам не являющихся врагами.

Чужой (Enemy)

Объекты принадлежащие расе являющейся врагом

 

<RetVar/IF> <object> get relation to race <race>

Возвращает отношение объекта <object> к расе <race>. Возвращаемые значения: Свой (Friend), Нейтральный (Neutral), Чужой (Foe).

 

<RetVar/IF> <object> get notoriety to race <race>

<RetVar/IF> get notoriety from race <race> to race <anotherrace>

Не работает. Всегда возвращает ноль.

 

 

<RetVar/IF> <object> is <object> a enemy

<RetVar/IF> <object> is <object> a friend

<RetVar/IF> <object> is <object> neutral to me

Возвращает [TRUE], если объект является врагом\другом\нейтральным, в противном случае возвращает [FALSE].

 

<RetVar/IF> <object> get shield type in bay <slot>

Возвращает текущий тип щита, установленный в слоте <clot> (нумерация слотов с 0) объекта <object>.

 

<RetVar/IF> <object> get laser type in bay <slot>

Возвращает тип лазера установленного в слоте <slot> для объекта <object>. Нумерация слотов с 0, 0 – левое носовое орудие, 1- правое носовое орудие (если предусмотрено на данной модели корабля), далее идут слоты турелей.

 

<RetVar/IF> <object> has same environment as <subject>

Возвращает [TRUE] если <subject> находиться в той же среде, что и <object>. То есть, если и <object> и <subject> пристыкованы к одной станции или оба находятся в космосе в одном секторе. В противном случае инструкция вернет [FALSE].

 

<RetVar/IF> <object> is in same sector as <subject>

Возвращает [TRUE] если <subject> находиться в том же секторе, что и <object> и [FALSE] если нет. Также, можно использовать для проверки находиться ли объект в заданном секторе или нет (в космосе). Для этого <subject> должен являться указателем на сектор.

 

<RetVar/IF> <object> is landed

Возвращает [TRUE] если объект (должен принадлежать классу «Малые корабли») пристыкован к станции или носителю и [FALSE] если нет.

 

<RetVar/IF> <object> is docked

Возвращает [TRUE], если объект <object> находится в доке, это относиться как к объектам пристыкованым внутри станции, так и находящимся во внешнем доке (Большие корабли). В противном случае инструкция вернет [FALSE].

 

<RetVar/IF> <object> is docking possible of <ship>

Возвращает [TRUE], если корабль <ship> технически может пристыковаться к станции или носителю <object> (имеется ли стыковочный шлюз для больших кораблей) и [FALSE] если нет.

 

<RetVar/IF> <ship> is docking allowed at <target>

Возвращает [TRUE], если корабль <ship> теоретически был бы принят станцией или носителем, то есть проверка идет по двум условиям:

  1. <target> в принципе может принимать корабли (является станцией или носителем)
  2. <ship> не является врагом для <target>

Учтите, инструкция не проверяет технической возможности для стыковки (соответствия стыковочного дока размеру корабля, наличие в доке свободного места). [FALSE] возвращается в случае не соответствия любому из двух проверочных условий.

 

<RetVar/IF> <object> is in a sector

Возвращает [TRUE], если объект <object> не пристыкован к станции и находиться в секторе (в космосе).

 

<RetVar/IF> <object> get attacker

Если  объект <object> подвергается нападению, то инструкция вернет указатель на агрессора. Если объект не атакуется, инструкция вернет null.

 

<object> -> set attacker to <attacker>

Устанавливает указатель на объект <attacker> как на агрессора в отношении <object>, то есть делает тоже самое, что произошло бы автоматически, если бы <attacker> начал стрелять по объекту <object>.

 

<retvar>= get distance between <oneobject> and <anotherobject>

Возвращает расстояние (в метрах) между двумя объектами. Инструкция работает с объектами находящимися в одном секторе.

 

<retvar>= <object> -> get distance to: x=<x> y=<y> z=<z>

Возвращает расстояние в метрах между объектом и указанными координатами.

 

<retvar>= <object> -> get distance to: position array=<position>

Возвращает расстояние в метрах между объектом и координатами записанными в массиве <position>. В массив содержит три числа, порядок чисел соответствует X, Y, Z.

 

<retvar>= <object> -> get distance: position array1=<position1> position array2=<position2>

Возвращает расстояние в метрах между двумя точками координаты которых хранятся в двух массивах. Массивы содержат по три числа, порядок  чисел соответствует X, Y, Z.

 

<retvar>= create ship: type=<type> owner=<owner> addto=<target>

x=<x> y=<y> z=<z>

Инструкция создает новый корабль, с типом <type>, принадлежащий расе <race> по указанным пространственным координатам (указанных в метрах), в секторе указанном в параметре <target> (в случае если <target> - сектор). Если указать параметр <target> как станцию или носитель, то новый корабль будет добавлен непосредственно в док, а координаты проигнорированы. При размещении нового корабля по указанным координатам, эта инструкция осуществляет предварительную проверку заданных координат на наличие там других объектов и в случае, если место занято то новый корабль будет размещен в ближайшей безопасной точке пространства. Никогда создавайте корабль класса «Большой корабль» в доке станции, т.к. корабль будет помещен непосредственно внутрь и останется там навсегда, вылететь из стыковочного дока этот корабль никогда не сможет.

Параметр <type> может быть выбран из списка доступных кораблей, либо можно указать субтип корабля (посмотреть номер субтипа соответствующий требуемому кораблю можно в таблице в разделе «Приложение>Описание типов и субтипов” смотрите тип 7.) Соответственно команды :

$flag =  create ship: type=Argon Buster owner=Player addto=$sec x=$xcoord y=$ycoord z=$zcoord

и

$flag =  create ship: type=5 owner=Player addto=$sec x=$xcoord y=$ycoord z=$zcoord

создадут «Аргонский бастер».

Инструкция возвращает указатель на новый корабль, в случае если он был успешно создан. В противном случае вернет null.

 

<RetVar>=<object> get x position

<RetVar>=<object> get y position

<RetVar>=<object> get z position

Набор этих инструкций возвращает пространственную координату X, Y, Z (в метрах) для объекта <object>.

 

<RetVar>=<object> get position as array

Возвращает пространственную координату объекта <object> в виде массива, где координата по оси X индекс [0], Y индекс [1], Z индекс [2].

 

<RetVar>=get player ship

Возвращает указатель на  корабль игрока, в исключительных случаях может вернуть null (у игрока нет корабля, возможно только в начале стандартной игры пока Бен Данна не дал игроку корабль или при использовании в инициализирующих скриптах, когда галактика еще не создана). Более удобная в использовании альтернатива данной инструкции, это константа [PLAYERSHIP].

 

<object> -> set relation against <target> to <relation>

Установить отношение <relation> объекта <object> к объекту <target>. Параметр <relation> может принимать одно из трех значений: Свой (Friendly), Нейтральный (Neutral), Чужой (Enemy).

 

<retvar>= create station: type=<type> owner=<owner>

addto=<sector> x=<x> y=<y> z=<z>

Создать новую станцию и добавить ее в сектор <sector> по указанным координатам. Параметр <type> указывает на то, что это за станция (выбирается из списка возможных).  В параметре <owner> задается раса владелец станции. <sector>, <x>, <y>, <z> указывают сектор и координаты для размещения вновь созданной станции. Учтите, что эта инструкция не проверяет свободна ли точка по указанным координатами и в случае нахождения там какого либо объекта, он будет уничтожен.

Вновь созданная станция представляет из себя пустышку, т.е. для нее не установлены не выпускаемая продукция, не потребляемые ресурсы (команды add product/primary resource/ secondary resource). Так же, и сама станция не активирована (инструкция station trade and productions on). Для запуска станции необходимо произвести предварительные установки продукции и ресурсов и запустить процесс производства. Здесь вы вольны указать какой угодно вид продукции и используемых ресурсов, т.е. новая станция будет производить, то что вы ей укажите (add product), и из того, что будет установлено как первичные ресурсы (add primary resource).

            В случае если станция удачно создана, инструкция вернет указатель на созданную станцию, если по каким либо причинам не удалось создать станцию, то вернет null.

 

<retvar>= create gate: type=<type> addto=<sector> gateid=<id>

dstsecx=<sectorx> dstsecy=<sectory> dstgateid=<linkto> x=<x>

y=<y> z=<z>

Создать врата и связать из с другим сектором. Параметр type указывает на тип врат Северные /North/ (0), Южные /South/ (1), Западные /West/ (2), Восточные /East/ (3). Gateid это специальный цифровой идентификатор врат, для встроенных в игру врат он совпадает с параметром  type, задается в виде произвольного числа и служит для организации связи со вратами в другом секторе. Distsecx и Distsecy указывают соответственно на X и Y координаты сектора на карте галактики в который будет производится перемещение через новые врата. Далее следует идентификатор врат назначения, как уже говорилось он  для встроенных в игру врат совпадает с «type», в случае если вы пытаетесь связать врата с вратами созданными вами, то укажите идентификатор который вы указывали при создании этих врат. Последние параметры «X» «Y» «Z» указывают координаты в секторе, где установить новые врата.

            В случае если врата удачно созданы, инструкция вернет указатель на созданные врата, если по каким либо причинам не удалось создать врата, то вернет null.

 

<retvar>= create asteroid: type=<type> addto=<sector>

resource=<resource> yield=<yield> x=<x> y=<y> z=<z>

Создать новый астероид по указанным координатам в секторе <sector>. Параметр <type> указывает на визуальный образ астероида, всего в игре 10 возможных типов (визуальные образы смотри «Приложение=>типы астероидов»). Параметр ресурсы указывает на тип ресурсов содержащихся в новом астероиде:

Тип ресурсов

Наименование ресурса

0

Железная руда (ore)

1

Кремний (Silicon)

2

Нивидиум (Nividium)

Параметр yield указывает на насыщенность ресурсом астероида, влияет на скорость добычи.  Последние параметры «X» «Y» «Z» указывают координаты в секторе, где разместить созданный астероид. Эта инструкция как и create station не проверяет свободна ли точка по указанным координатам и в случае нахождения там какого либо объекта, он неминуемо будет уничтожен созданным астероидом.

            В случае если атероид удачно создан, инструкция вернет указатель на созданный астероид, если по каким либо причинам не удалось создать врата, то вернет null.

 

<station> -> add product to factory or dock: <ware>

В игре, при создании станции инструкцией create station новая станция будет создана в виде пустышки. Это подразумевает что изначально, список производимой продукции и первичных и вторичных ресурсов будет пуст. При помощи этой инструкции можно добавить номенклатурную позицию продукции производимой станцией (указать продукцию которую будет производить станция). Вы можете установить для фабрики любую продукцию, она отобразиться в списке продукция, и после запуска производственного процесса начнет производится (при наличии ресурсов).

            При помощи этой инструкции удобно добавлять новые позиции в доки и торговые станции. Но не забывайте, что эта команда не добавляет саму продукцию, а только номенклатурную позицию. Используйте для добавления самой продукции инструкцию add или наполняйте станции в игре при помощи транспортных кораблей.

 

<station> -> add primary resource to factory: <ware>

Добавить фабрике номенклатурную позицию первичных ресурсов <ware> объекту <station>. Принцип работы такой же, как инструкция add product.

 

<station> -> add second resource to factory: <ware>

Добавить фабрике номенклатурную позицию вторичных ресурсов <ware> объекту <station>. Принцип работы такой же, как инструкция add product. Станции игрока не используют вторичные ресурсы, т.е. в списке они отражаются и могут быть добавлены, но фабрика не будет им торговать или использовать их в производстве.

 

<station> -> remove product from factory or dock: <ware>

Удалить у фабрики или дока номенклатурную позицию из списка «Продукция». Вместе с номенклатурной позицией будет удален весь соответствующий ей товар находящийся на станции в данный момент.

 

<station> -> remove primary resource from factory: <ware>

Удалить у фабрики номенклатурную позицию первичный ресурс <ware> объекта <station>. Вместе с номенклатурной позицией будет удален весь соответствующий ей товар.

 

<station> -> remove second resource from factory: <ware>

Удалить у фабрики номенклатурную позицию вторичный ресурс <ware> объекта <station>. Вместе с номенклатурной позицией будет удален весь соответствующий ей товар.

 

<retvar>= create nebula: type=<type> addto=<sector> x=<x> y=<y> z=<z>

Создать туманность с типом <type> в секторе <sector> с указанными пространственными координатами X, Y, Z. Всего в игре существует 13 типов туманностей, которые могут быть созданы при помощи этой инструкции. Визуальные образы туманностей приведены в разделе «Приложение=>Описание туманностей»

 

<retvar>= create sun: subtype=<subtype> r=<red> g=<green> b=<blue> addto=<sector> x=<x> y=<y> z=<z>

Создать солнце с типом <subtype> в секторе <sector> по указанным пространственным координатам  X, Y, Z. Параметры r, g, b не влияют на цвет самого солнца, они отвечают за насыщенность определенным цветом солнечного света ( r - красный, g – зеленый, b – синий), изменяется от 0 до 255. Визуальные образы соответствующие типам солнца приведены в приложении раздел Описание тиров солнц. Созданное солнце не является масштабируемым объектом, т.е. независимо от того находитесь вы в десяти километрах или в ста, размер солнца будет одинаков, вы можете разместить его в любой точке сектора.

 

<retvar>= create planet: subtype=<subtype> addto=<sector> x=<x>

y=<y> z=<z>

Создать планету с типом <subtype> в секторе <sector> по указанным пространственным координатам X, Y, Z.  Создавая планету удаляйте ее минимум на 400 километров от центра цивилизации (скопления станций), иначе вы можете уничтожить всю жизнь в секторе раздавив их гравитационным полем планеты (этакая глобальная катастрофа). Визуальные образы планет в приложении «Описание типов планет».

 

<retvar>= create special: type=<type> addto=<sector> x=<x> y=<y> z=<z>

Создать специальный объект с типом <type> в секторе <sector> по указанным пространственным координатам X, Y, Z. При помощи этой инструкции создается все, что летает в космосе кроме объектов создаваемых инструкциями create planet|sun|nebula|station|ship|asteroid, т.е. обломки после разрушения станций, разрушенные врата, элементы кораблей и т.п. Всего существует 73 специальных объекта и учтите, что на многие спец.объекты гравилокатор корабля не реагирует.

Описание типов спец.объектов в приложении «Описание спец.объектов».

 

<retvar>= find ship: sector=<sector> class or type=<classtype> race=<race> flags=<flags> refobj=<refobj> maxdist=<maxdist> maxnum=<maxnum> refpos=<position>

Найти указанное количество <maxnum> (при установленном флаге [Find.Multiple]) кораблей класса или типа <classtype> в секторе <sector> расы <race>, максимальное расстояние поиска <maxdist>. Использование флагов поиска описано в разделе «Организация глобального поиска объектов. Флаги поиска (Find)» Параметры classtype, race могут быть установлены как null, для поиска без ограничений по этим параметрам. Параметр refpos представляет из себя массив содержащий координаты точки в секторе X, Y, Z и указывает на точку в секторе от которой будет вестись поиск.  Параметр refobj указывает на объект от которого будет производиться поиск. При организации поиска допускается использование какого-то одного параметра, либо refpos либо refobj (не используемый должен быть установлен как null)

Возвращает найденный корабль или массив кораблей, если подходящих кораблей не найдено возвращает null.

 

<retvar>= find asteroid: sector=<sector> resourcetype=<resource> min. yield=<yield> flags=<flags> refobj=<refobj> maxdist=<maxdist> maxnum=<maxnum> refpos=<position>

Найти указанное количество <maxnum> (при установленном флаге [Find.Multiple]) астероидов с типом ресурсов <resourse> (0 – руда, 1 – кремний, 2 – нивидиум) в секторе <sector> насыщенность не менее <yield>, максимальное расстояние поиска <maxdist>. Использование флагов поиска описано в разделе «Организация глобального поиска объектов. Флаги поиска (Find)». Параметр refpos представляет из себя массив содержащий координаты точки в секторе X, Y, Z и указывает на точку в секторе от которой будет вестись поиск.  Параметр refobj указывает на объект от которого будет производиться поиск. При организации поиска допускается использование какого-то одного параметра, либо refpos либо refobj (не используемый должен быть установлен как null)

Возвращает найденный астероид или массив астероидов, если подходящих астероидов не найдено возвращает null.

 

<retvar>= find flying ware: sector=<sector> maintype=<maintype> subtype=<subtype> flags=<flags> refobj=<refobj> maxdist=<maxdist> maxnum=<maxnum> refpos=<position>

Найти указанное количество <maxnum> (при установленном флаге [Find.Multiple]) контейнеров с товаром летающих в космосе в секторе <sector>. Все товары в Х2 разделены на группы maintype и подгруппы subtype, вы можете установить поиск по обоим этим параметрам или по одному из них (неиспользуемый установить как null) Максимальное расстояние поиска <maxdist>. Использование флагов поиска описано в разделе «Организация глобального поиска объектов. Флаги поиска (Find)». Параметр refpos представляет из себя массив содержащий координаты точки в секторе X, Y, Z и указывает на точку в секторе от которой будет вестись поиск.  Параметр refobj указывает на объект от которого будет производиться поиск. При организации поиска допускается использование какого-то одного параметра, либо refpos либо refobj (не используемый должен быть установлен как null)

Возвращает найденный контейнер с товаром или массив контейнеров, если подходящих контейнеров не найдено возвращает null.

 

<retvar>= find station: sector=<sector> class or type=<classtype> race=<race> flags=<flags> refobj=<refobj> maxdist=<maxdist> maxnum=<maxnum> refpos=<position>

Инструкция для поиска станции или станций. По работе похожа на инструкцию find station in galaxy, отличие в том, что эта инструкция ищет станцию в пределах указанного сектора, кроме того эта инструкция может возвращать массив станций при установленном флаге [Find.Multiple], количество искомых станций указывается в параметре maxnum. Все параметры как у предыдущих инструкций поиска.

 

<RetVar/IF> <spacefly> is disabled

Эта инструкция предназначена для работы с объектами класса «SpaceFly» (космомуха) и возвращает значение [TRUE]|[FALSE] в зависимости от того активна муха или нет. Это подразумевает под собой следующее: в игре вы можете на некоторое время оглушить муху при помощи Ion Disruptor, так вот при помощи этой инструкции можно определить в активном состоянии муха или оглушена. Инструкция работает только с объектами «SpaceFly».

Возвращаемые значения [TRUE] если муха находиться в оглушенном состоянии или [FALSE] если муха активна.

 

<object> -> station trade and production tasks: on=[TRUE]|[FALSE]

Эта команда предназначена для запуска (TRUE) или остановки (FALSE) процесса производства на фабриках. Основное применение, это все таки, запуск процесса производства на вновь созданных станциях (инструкцией create station). После создания, новая фабрика не имеет установленных ресурсов, а также не установлена и производимая продукция. Перед стартом производственного процесса необходимо произвести установку производимой продукции и используемых ресурсов (инструкции add product, add primary/secondary resource), и запустить производственный процесс. Если этого не сделать, то даже после доставки на станцию необходимого количества ресурсов производство не начнется. И указатели количества ресурсов необходимых для одного цикла (значение в квадратных скобках, под шкалой количества ресурсов на станции) и количества ресурсов производимых за один цикл будут показывать ноль. Запустив данную команду со значением TRUE, вы запустите процесс и начнется переработка, указатели установятся на нужные значения. Обратите внимание на то, что если на станции нет необходимого количества ресурсов, а процесс производства запущен, то после их доставки производство может начаться не сразу, а спустя пару минут.

 

<RetVar/IF> = <object> -> get SectorObject ID

Возвращает секторный идентификатор объекта <object>. Данный идентификатор получают только те объекты, которые находятся в одном секторе с кораблем игрока. Вообще в Х2 секторальными объектами являются совершенно все объекты находящиеся в секторе с кораблем игрока, также сам сектор является объектом имеющим ID. Фактически это визуальные модели объектов, то есть в момент входа корабля игрока в сектор, происходит формирование ID сектора, затем для солнц, туманностей, станций, кораблей и астероидов (создается сам визуальный образ сектора и каждый объект получает свой номер). После выхода корабля из сектора все ID удаляются и создаются для следующего сектора в который вошел игрок.

 

<RetVar>= <object> -> get ware type of SectorObject <sectorobject>

Возвращает тип товара связанного с объектом имеющим с идентификатором <sectorobject>.

 

<RetVar/IF> exists SectorObject <sectorobject>

Возвращает [TRUE], если  объект с идентификатором <sectorobject> существует и [FALSE] если объект не существует.

 

<RetVar/IF> get object from SectorObject <sectorobject>

Возвращает нормальный указатель на объект по соответствующему ID. Если вернуть указатель невозможно (объект уничтожен, неправильный ID) вернет null.

 

<object> destruct: show no explosion=[TRUE]|[FALSE]

Уничтожает объект <object>. Параметр explosion указывает, показывать взрыв [TRUE] или нет [FALSE].

 

<object> -> set position: x=<x> y=<y> z=<z>

Переместить объект <object> в точку пространства с указанными координатами X, Y, Z. Будьте аккуратны используя эту инструкцию, она не делает проверки находиться ли по этим координатам какой либо объект. И соответственно если по этим координатам будет находится, например станция, а вы поместите туда корабль, то он разобьется о корпус станции. 

 

<object> -> set rotation: alpha=<alpha> beta=<beta> gamma=<gamma>

Получает/устанавливает угол поворота объекта в системе координат X2

alpha - угол поворота в плоскости XZ (карта X2), направление на N = 0, W = 16384,S = 32768,E = -16384 = (32768+16384)

beta - угол подъема вектора корабля от плоскости XZ (тангаж), 0 - вектор в плоскости XZ, 16384 - нормаль XZ (параллелен оси Y) и т.д.

gamma - крен корабля - угол поворота плоскости корабля относительно положения вектора, заданного alpha и beta; определяет не столько ориентацию вектора, сколько способ модификации alpha и beta при управлении (изменяется клавишами <Q>,<W>), задается также в системе [-0xFFFF..0xFFFF] (65536), c направлением против часовой стрелке

 

set position of sector object <sectorobject>: x=<x> y=<y> z=<z>

Переместить объект <sectorobject> в точку пространства с указанными координатами X, Y, Z и вернуть указатель на этот объект. Тоже самое, что и set position, только работает с секторным ID.

 

set safe position of sector object <sectorobject>: x=<x> y=<y> z=<z>

Переместить объект с идентификатором <sectorobject> в точку пространства с указанными координатами X, Y, Z и вернуть указатель на этот объект. В отличии от предыдущей инструкции осуществляет проверку точки с заданными координатами на наличие там других объектов. В случае, если по указанным координатам находиться другой объект, то перемещаемый объект будет помещен в ближайшую свободную точку.

 

set rotation of sector object <sectorobject>: alpha=<alpha> beta=<beta> gamma=<gamma>

Установить углы вращения альфа, бета и гамма объекта <sectorobject>. Выполняет те же действия, что и предыдущая инструкция set rotation, только работает и ID объекта.

 

<retvar>= create sector object: maintype=<maintype> subtype=<subtype>

Разместить в памяти секторный объект с типом <maintype> и подтипом <subtype>. Модель объекта будет загружена в память, но в пространстве сектора новый объект не появится (т.е. визуальная модель объекта не будет отображена) до момента запуска объекта выполняемого инструкцией start sector object. Однако ScE будет считать, что объект присутствует в секторе.

Все инструкции для работы с секторальными объектами относятся к инструкциям низкого уровня, что подразумевает под собой низкоуровневое обращение к ScE. Используя эти инструкции можно легко повредить сейв-файл (сейв с неправильно созданными секторальными объектами не будет загружаться) или подвесить игру. В связи с этим старайтесь заменять эти инструкции инструкциями более высокого уровня, например вместо данной инструкции лучше использовать инструкции типа create ship|station|sun и т.д.

 

free sector object <sectorobject>

Удалить из сектора визуальную модель объекта с идентификатором <sectorobject>, все ссылки на объект остаются удаляется только модель, т.е. ScE считает, что объект находиться в секторе, так же он присутствует в списке объектов и на карте сектора.

Все инструкции для работы с секторальными объектами относятся к инструкциям низкого уровня, что подразумевает под собой низкоуровневое обращение к ScE. Используя эти инструкции можно легко повредить сейв-файл (сейв с неправильно созданными секторальными объектами не будет загружаться) или подвесить игру. В связи с этим старайтесь заменять эти инструкции инструкциями более высокого уровня, например вместо данной инструкции лучше использовать инструкции типа destruct ship|station|sun и т.д.

 

 

kill sector object <victim>: reason <reason>, killer sector object <killer>

Инструкция сообщающая ScE о том, что секторальный объект с ID <victim> уничтожен секторальным объектом имеющим ID  <killer>, уничтожение произошло в следствии одной из трех причин указанных в параметре <reason>.

Код причины уничтожения

Описание

2

Выстрел из пушки

3

Столкновение

5

Попадание ракетой

ScE в свою очередь запускает стандартную процедуру уничтожения, т.е. взрыв и удаление объекта <victim> и всех ссылок на него.

 

start sector object <sectorobject> in space <sectorid>

Разместить в пространстве сектора с идентификатором <sectorid>, визуальную модель секторального объекта имеющего ID <sectorobject>, ранее созданного инструкцией create sector object .

Все инструкции для работы с секторальными объектами относятся к инструкциям низкого уровня, что подразумевает под собой низкоуровневое обращение к ScE. Используя эти инструкции можно легко повредить сейв-файл (сейв с неправильно созданными секторальными объектами не будет загружаться) или подвесить игру. В связи с этим старайтесь заменять эти инструкции инструкциями более высокого уровня, например вместо данной инструкции лучше использовать инструкции типа create ship|station|sun и т.д.

 

 

<retvar>= create flying ware: maintype=<maintype> subtype=<subtype> count=<count> sector=<sector> x=<x> y=<y> z=<z> selfdestruct= <timedestruct>

Создать контейнер в пространстве сектора с товаром в количестве <count> с типом <maintype> и подтипом <subtype> в секторе <sector> в точке с указанными пространственными координатами X, Y, Z и временем самоуничтожения <timedestruct> указанном в миллисекундах. Перед размещением контейнера инструкция проверит точку по указанным координатам и в случае нахождения там какого либо объекта разместит контейнер в ближайшей свободной точке. Параметр selfdestruct устанавливает время в течении которого контейнер будет находится в космосе (от момента создания), по истечении заданного времени контейнер самоуничтожится. Если же, в этом параметре поставить значение null, то контейнер будет существовать неограниченно долго.

Возвращает указатель на созданный контейнер, в случае если контейнер удачно создан или null если не удалось создать контейнер.

 

<RetVar>=<object> get rot alpha

<RetVar>=<object> get rot beta

<RetVar>=<object> get rot gamma

Возвращает текущую ориентацию объекта в пространстве, соответственно углы:

 alpha - угол поворота в плоскости XZ (карта X2), направление на N = 0, W = 16384,S = 32768,E = -16384 = (32768+16384)

beta - угол подъема вектора корабля от плоскости XZ (тангаж), 0 - вектор в плоскости XZ, 16384 - нормаль XZ (параллелен оси Y) и т.д.

gamma - крен объекта- угол поворота плоскости корабля относительно положения вектора, заданного alpha и beta; определяет не столько ориентацию вектора, сколько способ модификации alpha и beta при управлении (изменяется клавишами <Q>,<W>), задается также в системе [-0xFFFF..0xFFFF] (65536), c направлением против часовой стрелке

 

<RetVar>=<object> get size of object

Возвращает размер объекта пространстве. Представляет из себя радиус воображаемой сферы, созданной вокруг объекта. Значение возвращается в юнитах, для перевода в метры разделите значение на 222.

 

<RetVar/IF> <object> get max upgrades for upgrade <ware>

Возвращает максимальное кол-во апгрейдов <ware>, которые можно установить на <object>.

 

<RetVar/IF> <object> get max speed

Возвращает максимальную скорость объекта без апгрейдов. Возвращаемое значение в игровых юнитах, для перевода в м/с разделите значение на 222.

Вот как можно "добыть" реальную макс. скорость корабля $Ship с учетом его текущих апгрейдов:

$speed = $Ship -> get max speed

$engine.upgrades = $Ship -> get amount of ware Engine Tuning in cargo bay

$speed = $speed * [ 10 + $engine.upgrades ] / 10

 

Получившаяся скорость $speed будет в игровых юнитах. Если желаете перевести ее в м/с, то $speed надо разделить на 222

 

<RetVar/IF> <object> get max hull

Получить максимальную величину корпуса <object>.

 

<RetVar/IF> <object> get hull

Получить текущую величину корпуса <object>, с учетом нанесенных повреждений.

 

<RetVar/IF> <object> get hull percent

Получить текущую величину корпуса <object> в процентах от максимального значения. Возвращается число от 0 до 100.

 

<RetVar/IF> <object> get shield percent

Получить текущую величину щита <object> в процентах. Возвращается число от 0 до 100.

 

<RetVar/IF> <object> get shield and hull percent

Возвращает значение = (Hull+Shield)*100/(MaxHull+MaxShield). Что является средним процентом состояния корабля. Удобно использовать когда для дальнейших действий необходимо выяснить в каком состоянии находиться корабль в текущий момент.

 

<RetVar/IF> <object> get max upgraded speed

Возвращаем максимальную скорость объекта при установленных полностью апгрейдах двигателей. Значение возвращается в юнитах, для перевода в метры разделите значение на 222. Обратите внимание на то, что возвращается максимальная скорость при максимальном количестве апгрейдов прописанном для корабле в самой игре, т.е. так называемое паспортное значение. Это означает что если вы используете какой либо скрипт увеличивающий скорость корабля, за счет добавления лишних апргрейдов двигателя, то эта инструкция не будет их учитывать.

 

<RetVar/IF> <object> get dock bay size

Возвращает максимальное количество кораблей, которые могут быть одновременно пристыкованы к объекту. Для станций это значение равно одному миллиону.

 

<RetVar/IF> <object> get number of landed ships

Возвращает количество кораблей пристыкованых в данный момент к объекту.

 

Player loses police licence for race <race>

Лишить игрока полицейской лицензии выданной расой  <race>.

 

<race> -> add notoriety: race=<subject> value=<value>

Добавить репутацию расе <subject> у расы <race> на <value> единиц. Значение <value> прибавляется к текущему значению репутации, если использовать отрицательное число, то значение соответственно отнимается и репутация уменьшается.

 

<spacefly>set ship disabled to [TRUE]|[FALSE]

Эта инструкция предназначена для работы с объектами класса «SpaceFly» (космомуха). При помощи этой инструкции можно деактивировать муху, т.е. оглушить ее (эффект выстрела из Ion Distruptor) значение [TRUE] или наоборот вывести ее из оглушенного состояния значение [FALSE]. Инструкция работает только с объектами «SpaceFly».

 

<object>put into environment <environment>

Поместить корабль в определенное окружение <environment>. Не путайте эту команду с навигационной командой fly to, т.к. эта инструкция просто перемещает объект в указанную среду. Средой для перемещения может являться сектор или станция, а объектом корабль. Будьте осторожны при работе с большими кораблями, их при помощи этой команды можно перемещать только в сектор, т.к. перемещаемый корабль помещается непосредственно в стыковочный док, а не в шлюз (то есть, внутрь станции). Если вы все таки попробуете переместить  большой корабль на станцию, то перемещение произойдет, но корабль никогда не сможет взлететь со станции. При перемещении объекта в сектор, он появиться по координатам в которых он находился в предыдущем секторе.

Обратите внимание на то, что эта команда не запускает механизма создания секторальных объектов (генерации 3D-объектов), из чего следует – нельзя применять эту команду к кораблю игрока, т.к. теоретически перемещение произойдет и все внутренние ссылки на Playership будут изменены, а визуальные 3D-модели сектора-назначения и всех находящихся в нем объектов созданы не будут (вокруг будет чернота, но на карте сектора ваш корабль будет присутствовать – и соответственно может быть убит кем нибудь), то есть ScE считает, что корабль игрока находиться внутри сектора, а сектор система будет считать удаленным.

 

<station> station send defend squad against ship <target>

Команда станции выслать корабли охраны (все корабли класса "истребитель", которые приписаны к этой станции, если каковые имеются) для атаки <target>.

 

<RetVar>= <object> get name

Возвращает строку имя обекта <object> в переменную <RetVar>

 

<object> set name to <name>

Установить объекту <object> имя указанное в строке <name>

 

<object> set owner race to <race>

Назначить объекту <object> владельцем расу <race>. Объектом может быть станция, корабль все что имеет расовую принадлежность. По-идее можно использовать для эмуляции захвата. Однако если таким образом захватывать станцию, следует позаботиться о приписанных к станции кораблях, т.к. после изменения расы владельца, приписанные корабли по прежнему будут считать эту станцию базой приписки, несмотря на то, что база принадлежит теперь другой расе.

 

<retvar>= <object> -> find ship: class or type=<classtype> race=<race> flags=<flags> refobj=<refobj> maxdist=<maxdist> maxnum=<maxnum> with homebase=<homebase>

Возвращает массив кораблей, находящихся на/в <object> в секторе <sector> имеющих расу "race", у которых база приписки "homebase", отсортированных и выбранных в соответствии с параметрами "flags" и объектом "refobj". Максимальное количество кораблей в возвращаемом массиве определяется параметром "maxnum".

Имейте ввиду, что в качестве "race" допустимо лишь указание конкретных рас или null (что означает любая раса). Для поиска врагов/нейтральных/друзей используйте соответствующие флаги и указывайте в качестве "refobj" объект по отношению к которому и будут определяться враг/друг.

А вот <object> должен быть либо сектором, либо станцией, либо кэрриером. В противном случае команда вернет null.

Обратите внимание на то, что абсолютно все команды поиска кораблей в секторе, никогда не возвращают корабли, пристыкованные к чему-либо, даже если эти корабли находятся в этом секторе!

 

<retvar>= find station in galaxy: startsector=<sector> class or type=<type> race=<race> flags=<flags> refobj=<object> serial=<serial> maxjumps=<maxjumps> num=<count>

Это второй вариант инструкции поиска станции в галактике find station in galaxy, с тем отличием, что эта инструкция возвращает массив из найденных станций. Максимальное количество станций указывается в параметре num, не используйте в этом параметре null, а то инструкция вернет null.

 

<RetVar>= <object> get ID code

Возвращает ID код данного объекта, не путайте с ID секторального объекта. ID код – это специальный оригинальный номер объекта состоящий из цифрового индекса в котором зашифрованы следующие данные:

1.      для объектов имеющих принадлежность - принадлежность объекта, его класс и номер (например: случайного Аргонского транспорта класса ТХ – ID   ATXRF-83) Первая буква индекс расы владельца. Две следующих класс объекта. Остальные код и номер.

2.      для объектов не имеющих принадлежности (врат, астероиды и т.п.) код короче на один символ . Для врат, первые две буквы обозначают расположение врат (SO – Южные, WE – Западные, EA – Восточные, NO – Северные). Для прочих объектов первые две буквы, это тип объекта. Для астероидов, контейнеров и т.п. первые два символа тип объекта.

 

<RetVar>= <ship> get pilot name

Возвращает имя пилота корабля <ship> как строку. Если корабль принадлежит игроку, то возвращается имя игрока.

 

<ship> set pilot name to <string>

Изменить имя пилота корабля <ship> на имя указанное в строке <string>. Эта инструкция ничего не изменит, если выбран корабль принадлежащий игроку.

 

<ship> -> set pilot speaker: voice=<voice>, face=<face>, Pirate subrace=<race>, Argon female=[TRUE]|[FALSE]

 Установить тип голоса пилота корабля <ship> в <voice>, тип лица пилота в <face>, расу пилота race (если это пират, если нет устанавливается значение null), а также признак "женский голос" если пилот - женщина расы Аргон. Типы лиц описаны в приложении «Визуальные образы пилотов». При параметрах voice и face равном 0, будет установлен тип лица и голоса пилота заданный данному короблю ScE при создании.

 


Оглавление Сообщение об ошибках Ваше мнение о проекте E-Mail автору
Сайт создан в системе uCoz