Оглавление | Сообщение об ошибках | Ваше мнение о проекте | E-Mail автору |
NOP
Нет операции.
<RetVar/IF> <Expression>
Данная функция выполняет несколько задач:
1. Создать новую переменную и присвоит ей значение или присвоить уже имеющейся переменной <RetVar> результат выражения/функции/команды <Expression>.
Пример:
001 $NewVar = 5
002 $Total = 3+2
003 $Total2 = $NewVar+$Total
004 $string = ‘Hello World.”
или вернуть значение, логического типа, выражения/функции/команды <Expression> для обработки в операторе сравнения <IF>.
Пример:
001 if $NewVar => 6
…
040 if not $Total
…
057 skip if $Total2
и тому подобные интерпретации. Также значение <Expression> при помощи данной инструкции модно передать оператору While при организации циклов.
005 while $NewVar <7
…
020 end
inc<RetVar>=
Увеличивает значение <RetVar> на 1 (инкремент). Функция выполняет операцию идентичную <RetVar>=<RetVar> + 1
dec<RetVar>=
Уменьшает значение <RetVar> на 1 (декремент). Функция выполняет операцию идентичную <RetVar>=<RetVar> - 1
@<RetVar/IF> wait <Var/Number> ms
Ожидать <Var/Number> ms. Возвращает количество прошедших ms. <Var/Number> или информацию о том происходило ли прерывание за время ожидания <IF>. Показатель ms приблизительный. Так как минимальное время ожидания не может быть меньше времени прогонки одного фрейма, то есть чтобы вычислить минимальную задержку нужно взять текущее количество фреймов в секунду и рассчитать по формуле <мин.задержка>= 1000/<fps>, получим количество ms за один фрейм это будет минимальное время задержки. Например, если fps = 35 то самое минимальное время задержки будет не менее 28 ms.
@<RetVar/IF> wait randomly from <Var/Number> to <Var/Number> ms
Ожидать случайное число ms. в диапазоне от <Var/Number> до <Var/Number> ms. Возвращает количество прошедших ms., или информацию о том происходило ли прерывание за время ожидания <IF>.
<Var> = Random value from 0 to <maximum> -1
Сгенерировать и присвоить переменной <Var> случайное число в диапазоне от 0 до < maximum > -1. Эту инструкцию очень удобно использовать для выбора из массива случайного элемента, где <maximum> размерность массива.
<Var> = Random value from <minimum> to <maximum> -1
Сгенерировать и присвоить переменной <Var> случайную величину в диапазоне от <minimum> до <maximum> -1.
* <Comment>
Комментарий. Любой текст не интерпретируемый ScE. Используется для того чтобы в листинге НС дать объяснения чего либо или выделить. Отображается серым цветом, за символом *
<RetVar>= script engine version
Возвращает версию ScE в переменную <RetVar> после версии 1.4 "X2 The Threat" версии ScE от 25 и выше. При помощи этой функции легко сделать проверку исключающую запуск скрипта на движке версией ниже той для которой он был написан. Наличие таких проверок в самом начале ваших скриптов, обеспечит их правильную работу.
Пример:
001 $EngineVersion = script engine version
002 skip if $EngineVersion >= 25
003 return null
… дальнейший код скрипта рассчитанный на ScE версии не ниже 25…
<RetVar> = get script priority
Вернуть приоритет текущего скрипта (того скрипта который выполнил эту инструкцию). Эта команда будет очень полезной при организации сложных взаимодействий скриптов. Пример такого взаимодействия рассмотрен в главе «Сигналы» => Раздел «ScE»
set script priority to <priority>
Установить приоритет скрипта равным <priority>. Значение должно быть в пределах от 0 до 10000. По умолчанию приоритет любого скрипта запущенного командой call или из скриптового редактора равен 0.
<RetVar/IF>is script prio <prio> on stack
Возвращает [TRUE] если в текущем стеке находится (выполняется в данный момент или стоит в очереди на выполнение) скрипт с приоритетом <prio>. Т.е. если эта команда вызвана из скрипта, запущенного в стеке Task 10, то будут проанализированы все скрипты, включая текущий, но запущенные только в этом же стеке Task 10 этого же объекта. Кстати, весьма полезная команда. На сегодня это единственная команда, с помощью которой извне (из другого скрипта) можно узнать а запущен ли такой-то скрипт в таком-то слоте такого-то корабля/станции. Эта функция может быть использована для определения какой сигнал был получен кораблем и выполняемые в текущий момент действия. Определяя находится ли в стеке этого корабля скрипт обработчик сигнала. Например: если при проверке находится ли в стеке скрипт с приоритетом 99, инструкция возвращает [TRUE], то это означает, что корабль подвергся нападению и оказывает сопротивление нападающему. В таблице указаны приоритеты скриптов обработчиков, назначенные им по умолчанию.
Prio |
Используется |
0 |
Все скрипты по умолчанию |
50 |
Бегство после обработки SIGNAL_ATTACKED |
99 |
Вооруженное сопративление после обработки SIGNAL_ATTACKED |
100 |
SIGNAL_ATTACKED |
150 |
SIGNAL_LEADERNEEDSHELP SIGNAL_FOLLOWERNEEDSHELP |
200 |
SIGNAL_FORMATIONLEADERCHANGED |
300 |
SIGNAL_CAPTURED |
10000 |
SIGNAL_KILLED |
<RefObj> start task <Var/Number1> with script <Script Name> and prio <Var/Number2>: arg1=<Value1> arg2=<Value2> arg3=<Value3> arg4=<Value4> arg5=<Value5>
Запускает скрипт <Script Name> в стеке Task <Var/Number1> объекта <RefObj> с приоритетом <Var/Number2> и параметрами <Value1> ... <Value5>, при этом вытеснив (удалив) все остальные скрипты из этого же стека.
Внимание! Командой start task <Var/Number> with script ни в коем случае нельзя запускать скрипт в текущем стеке! (т.е. на том же объекте и том же Task, где запускается команда start task) Если это сделать, скрипт повиснет.
Этот команда может быть использована для запуска скриптов турелей (Task с 1 по 6), слот дополнительных корабельных команд (Task с 10 по 11), слот команды станций ( Task 10 -19)
<RefObj> interrupt task <Var/Number1> with script <Script Name> and prio <Var/Number2>: arg1=<Value1> arg2=<Value2> arg3=<Value3> arg4=<Value4>
Формирует запрос на прерывание (см. IntReq в статистике объекта) скриптом <Script Name> в стеке Task <Var/Number1> объекта <RefObj> с приоритетом <Var/Number2> и параметрами <Value1> ... <Value4>, но только при условии, что в соответствующем стеке уже запущен хоть 1 скрипт и указанный приоритет <Var/Number2> выше приоритета активного в данном стеке скрипта. Если прерывания разрешены в данном стеке, то запуск скрипта <Script Name> фактически произойдет лишь в момент завершения первой встретившейся за командой interrupt прерываемой команды (т.е. помеченной "@"). И, если такой команды нет вплоть до return, то скрипт <Script Name> запущен не будет.
<RefObj> interrupt with script <Script Name> and prio <Var/Number2> : arg1=<Value1> arg2=<Value2> arg3=<Value3> arg4=<Value4>
Формируют запрос на прерывание текущего скрипта (см. IntReq в статистике объекта) скриптом <Script Name> в стеке Task 0 объекта <RefObj> с приоритетом <Var/Number2> и параметрами <Value1> ... <Value4>, но только при условии, что указанный приоритет <Var/Number2> выше приоритета текущего скрипта. Если прерывания разрешены в данном стеке, то запуск скрипта <Script Name> фактически произойдет лишь в момент завершения первой встретившейся за командой interrupt прерываемой команды (т.е. помеченной "@"). И, если такой команды нет вплоть до return, то скрипт <Script Name> запущен не будет.
<RefObj> interrupt with script <Script Name> and prio <Var/Number2>
Тоже самое что и предыдущая команда, используется в том случае если прерывающий скрипт не имеет аргументов.
<RetVar/IF>get task ID
Возвращает номер стека на объекте, в котором выполняется текущий скрипт. Когда вы пользуетесь командами из главного меню, «Торговые», «Навигационные», «Боевые» и т.д. то запускаемые скрипты имеют свой Task ID. Например: команда покупать или продавать товар будет иметь номер 0, команды управления турелями с 1-6, команды из дополнительного слота 10-11. Также в разделе "Script Task Infos" меню информации об объекте можно увидеть список всех активных стеков (задач) и какие скрипты и с каким приоритетом выполняются в каждом из них.
<RetVar/IF>get PID
Возвращает глобальный идентификатор задачи (PID). Глобальный идентификатор присваивается ScE любому запускаемому процессу и используется движком для внутренних ссылок на процесс, PID для каждого процесса строго индивидуален, это значит, что не может быть двух процессов имеющих одинаковый PID. Посмотреть PID можно в информационном окне объекта (при активированном скрипт-редакторе).
<RefObj> connect ship command/signal <Object Command/Signal> to script <Script Name> with prio <Var/Number>
Устанавливает связь команды/сигнала <Object Command/Signal> с определенным объектом <RefObj>, назначая обработчиком этой команды или сигнала скрипт <Script Name>, и устанавливает его приоритет равным <Var/Number>.
<RefObj> set ship command/signal <Object Command/Signal> to global default behaviour
Восстанавливает стандартный обработчик команды/сигнала <Object Command/Signal> для объекта <RefObj>.
<RefObj> ignore ship command/signal <Object Command/Signal>
Игнорировать команду/сигнал <Object Command/Signal> объектом <RefObj>. То есть после этой инструкции на объекте не будет запускаться обработчик этой команды, даже если он получит соответствующий сигнал или команду.
enable signal/interrupt handling: <Var/Number>
Включает/выключает (TRUE/FALSE) прерывания для всего текущего стека. По умолчанию прерывания разрешены. Команда полезна, если вам требуется исключить прерывание текущего скрипта.
<RetVar/IF> is signal/interrupt handling on
Возвращает состояние флага обработки сигналов/прерываний. [TRUE] если прерывания для текущего стека разрешены и [FALSE] если запрещены.
global script map: set: key=<Object Command/Signal>, class=<Var/Class>, race=<Var/Race>, script=<Script Name>, prio=<Var/Number>
Назначить для команды или сигнала <Object Command/Signal> скрипт обработчик. Установка производится глобально для всех объектов класса <Var/Class> принадлежащих расе <Var/Race> скрипт <Script Name> и установить для него приоритет <Var/Number>. (Назначить скрипт обработчиком команды).
global script map: remove: key=<Object Command/Signal>, class=<Var/Class>, race=<Var/Race>
Отменить (глобально) назначение скрипта обработчика для команды или сигнала <Object Command/Signal> всех объектов класса <Var/Class> принадлежащих расе <Var/Race> скрипта <Script Name>. (Удалить обработчик команды).
global script map: ignore: key=<Object Command/Signal>, class=<Var/Class>, race=<Var/Race>
Исключить обработку скрипта обработчика на объектах определенного типа. Параметры такие же как и у двух предыдущих команд. Пример: установив обработчик сигнала SIGNAL_ATTACKED для объектов класса «Корабль», нам требуется исключить объекты класса «Дрон» выглядеть это будет вот так:
001 global script map: set: key=SIGNAL_ATTACKED, class=Корабль, race=Player, script=скрипт_обработчик, prio=100
002 global script map: ignore: key=SIGNAL_ATTACKED, class=Дрон, race=Player
Теперь назначенный скрипт обработчик будет запускаться при поступлении сигнала SIGNAL_ATTACKED на любом объекте класса «Корабль» за исключением объектов класса «Дрон».
set script command upgrade: command=<Object Command/Signal> upgrade <Var/Ware>
Назначить апгрейд или товар <Var/Ware> который должен быть установлен на объекте для активации команды <Object Command/Signal> в меню объекта. При отсутствии данного апргейда или товара строка в командном меню объекта не отразится. Если <Var/Ware> указать [TRUE] то команда будет появляться всегда.
<RetVar>= get script command upgrade: command= <Object Command/Signal>
Получить в переменную <RetVar> необходимый апгрейд, для активации в командном меню команды <Object Command/Signal> . Если апгрейд не требуется возвращает [TRUE].
set script command <Object Command/Signal>
Установить командой для текущего скрипта команду <Object Command/Signal>.
<RetVar/IF> get script command
Получить команду <RetVar> установленную для текущего скрипта. Также, можно обрабатывать как логическое значение для оператора <IF> установлена [TRUE] не установлена [FALSE]
set script command target <Value>
Установить цель <Value> для команды текущего скрипта
<RetVar/IF> get script command target
Получить цель <RetVar> установленную для команды текущего скрипта или логическое значение [FALSE] если не установлена.
<RetVar> datatyp[ <Value> ]
Получить тип данных <RetVar> переменной <Value> описание типов данных в разделе «Введение в скриптописание Х2 => Переменные. Типы переменных».
<RetVar/IF> is datatyp[ <Value> ] == <Var/Script Data Type>
Получить результат проверки в виде логического [TRUE]|[FALSE] принадлежит или нет, переменная <Value> к типу данных <Var/Script Data Type>.
<RetVar> read text: page=<pageid> id=<textid>
Получить значение из основного языкового ресурса, со страницы <pageid> и идентификатора <textid>. Основной языковой файл загружается во время старта игры или загрузки сохраненной. Этот файл может быть изменен или дополнен дополнительными языковыми файлами подгружаемыми к основному командой load text: id=<languagefileid> и соответственно страницы и ID подгруженные из дополнительных файлов, сразу после догрузки станут доступны для этой команды, но не ранее того.
<RetVar>=sprintf: fmt=<Var/String>, <Value1>, <Value2>, <Value3>, <Value4>, <Value5>
Возвращает строку <Var/String> в которой все теги %s заменены соответствующими значениями параметров <Value>. Первый %s - <Value1>, второй - <value2> и т.д. Применяется для подстановки в заданный шаблон вычисляемых или изменяемых значений. Строка-шаблон вводится в скриптовом редакторе, теги %s вставляются в те места где должны быть вычисляемые значения. Более подробно использование тегов рассмотрено в главе «Языковые файлы XML в Х2».
<RetVar>=sprintf: pageid=<pageid> id=<textid>, <Value1>, <Value2>, <Value3>, <Value4>, <Value5>
То же самое, что и предыдущая функция, только строка-шаблон читается из основного языкового файла, страница <pageid>, строка <textid>
load text: id=<languagefileid>
эта команда на загрузку языкового файла описания с соответствующим ID (ID это номер языкового файла без кода страны, из папки "t"...например, для 70003 - id = 3). Фактически эта команда дополняет основной языковой файл (70001.xml) который загружается во время старта игры, учтите что если в загружаемом вами файле вносятся изменения на страницах и в текстовых идентификаторах которые используются в основном языковом файле, то старые значения будут заменены новыми из загружаемого вами файла. Делается это для того, чтобы вы могли изменять стандартные имена команд и описаний и т.п используемых в игре, а также указать имена и описания для новых товаров, команд и т.д., которые добавлены в игру, иначе мы получим read-text`ы в их описаниях.
<RetVar/IF> state of news article page=<Var/Number> id=<Var/Number>
Получить статус <RetVar/IF> статьи новостей из страницы <Var/Number> с идентификатором <Var/Number>. Эта команда предназначены для работы с BBS-engine отвечающую за формирование досок объявлений на станциях. Подробна работа BBS-engine рассмотрена в статье в разделе «Интерпретатор скриптовых команд».
set state of news article page=<Var/Number> id=<Var/Number> to <Var/Number>
Установить статус статьи новостей из страницы <Var/Number> с идентификатором <Var/Number> равным <Var/Number>. Эта команда предназначены для работы с BBS-engine отвечающую за формирование досок объявлений на станциях. Подробна работа BBS-engine рассмотрена в статье в разделе «Интерпретатор скриптовых команд».
<RetVar/IF>
system date is month=<month>
day=<day>
Возвращает [TRUE] если системная (не игровая!)
дата на компьютере совпадает с запрошенной и [FALSE] в противном случае. В
формате месяц, день.
<RetVar>=playing time
Возвращает текущее игровое время в секундах. Подразумевается время от момента, когда была начата текущая игра вообще, а не от последней загрузки.
Infinite loop detection enabled=<Var/Number>
Включает или выключает [TRUE/FALSE] механизм отслеживания и остановки бесконечных циклов. На практике срабатывает редко. Лучшей защитой служит использование инструкций wait в теле любых циклов.
set script command upgrade: command=<Object Command/Signal> upgrade <Var/Ware> script=<script name>
Эта команда работает идентично команде set script command upgrade с тем отличием, что данная инструкция анализирует флаг возвращаемый проверочным скриптом <script name> и позволяет производить многоуровневую проверку условий для активации команды в командном меню объекта. Проверочный скрипт запускается до того как производится установка в меню и возвращает результат в виде флага, сообщающего инструкции о том активировать команду или нет. Если возвращаемый флаг CmdConCheck.Disabled, то строка меню отражается серым цветом и недоступна для выбора, если CmdConCheck.Available, то строка меню становится доступной. Возвращаемое значение должно состоять из двух констант записанных через добавляющее ИЛИ “ | “. Первая константа сообщает инструкции как запускать проверочный скрипт. Эту функцию выполняют константы CmdConCheck.OneTime и CmdConCheck.Infinite они должны стоять первыми в возвращаемом выражении. Вторая часть возвращаемого значения может состоять из любой из четырех констант CmdConCheck.NeedHomeBase, CmdConCheck.NeedHomeStation, CmdConCheck.Available, CmdConCheck.Disabled.
Описание констант возвращаемых скриптом указаны в таблице:
Флаговая Константа |
Описание |
CmdConCheck.OneTime |
Проверочный скрипт запускается однажды во время отображения меню. Соответственно результат обрабатывается однажды, и во время отображения никакой реструктуризации меню не произойдет до тех пор пока меню не будет закрыто и открыто заново.
|
CmdConCheck.Infinite |
Проверочный скрипт будет запускаться циклически все время пока меню отражается. И соответственно реструктуризация может произойти во время отражения меню.
|
CmdConCheck.NeedHomeBase |
Корабль имеет базу приписки |
CmdConCheck.NeedHomeStation |
Корабль имеет базу приписки станцию а не корабль |
CmdConCheck.Available |
Команда выполняется |
CmdConCheck.Disabled |
Команда отключена |
В примере мы создадим строку в меню корабля в разделе CUSTOM которая должна запускать скрипт main.script.test только в том случае, когда на объекте имеется хотя бы одна ракета «Шелкопряд» в противном случае строка должна отразится серым цветом и стать недоступной для выбора:
Инициализирующий скрипт.
001 global script map: set: key=COMMAND_TYPE_CUSTOM_15, class=Корабль, race=Player,
script='main.script.test', prio=0
|
В строке 003 параметр upgrade указываем [TRUE], для того чтобы строка отобразилась в любом случае. Если в upgrade <Var/Ware> указать непосредственно товар то в случае его отсутствия у объекта строка в меню вообще не отобразится. Теперь создаем проверочный скрипт, единственный аргумент будет указывать на объект на котором открыта командное меню (корабль, станция):
Arguments
Source Text
001 $flag = [CmdConCheck.OneTime]
|
Обратите внимание на то, что если данная команда будет вызываться из инициализирующего скрипта init.<script name>, то проверочный скрипт при запуске будет записан в скрипткэш. Это означает что после изменений проверочного скрипта необходимо произвести реинициализацию из главного меню редактора Reinit Script Cahes.
<RefObj>set local variable: name=<Var/String> value=<Value>
Устанавливает значение локальной переменной объекта <Var/String> равным <Value>. Локальные переменные привязаны к определенному объекту и используются для обмена данными между скриптами. Локальные переменные доступны любому скрипту и имеют привязку только к конкретному объекту, но любой скрипт может использовать и изменять это значение независимо от того где он запущен, достаточно сослаться на нужный объект. Отменить установку переменной можно задав её значение в null.
<RetVar/IF><RefObj> get local variable: name=<Var/String>
Возвращает значение локальной переменной объекта <RefObj> с именем <Var/String>. Локальные переменные разных объектов независимы. Эта пара функций может применяться для обмена данными скриптами. Локальные переменные доступны любому скрипту и имеют привязку только к конкретному объекту, но любой скрипт может использовать и изменять это значение независимо от того где он запущен, достаточно сослаться на нужный объект.
set global variable: name=<Var/String> value=<Value>
<RetVar>=get global variable: name=<Var/String>
Пара функций аналогичная предыдущей, но работающая с глобальными переменными. Глобальные переменные не привязаны к какому-либо объекту, а являются общими для всех и доступны любому скрипту.
al engine: register script=<Script Name>
Регистрирует скрипт <Script Name> как плагин к AL (Artificial Life) Engine. Эта команда и три следующих относятся к набору команд для организации работы AL плагинов, т.е. скриптов отвечающих за «искусственную жизнь».
al engine: unregister script=<Script Name>
Снимает регистрацию скрипта <Script Name> как плагина к AL (Artificial Life) Engine.
al engine: set plugin <Var/String1> description to <Var/String2>
Устанавливает описание плагина с идентификатором <Var/String1>
равным <Var/String2>
al engine: set plugin <Var/String> timer interval to <Var/Number> s
Устанавливает интервал вызовов плагина <Var/String> по таймеру в <Var/Number> секунд
<RetVar>=get script version
Возвращает версию текущего скрипта
<RetVar>=get script name
Возвращает имя текущего скрипта
<RetVar/IF> is plot <plot> is state <stateflag>
Эта инструкция предназначена для отслеживания прохождения игроком сюжетной линии игры. Все миссии X2-Threat разделены на три основных группы называемые «входными точками», внутри каждой группы, каждая миссия имеет свой «флаг состояния», это цифровой код миссии внутри группы. Данная инструкция возвращает логическое значение [TRUE] в случае если игрок уже выполнил данную миссию, и соответственно [FALSE] в случае если данная миссия еще не выполнена. Описание миссий, «входных точек» и «флагов состояния» приведено в дополнении к данному учебнику в разделе «Точки входа и флаги состояния сюжетной линии».
<RetVar>=get random name: race=<Var/Race>
Возвращает случайно выбранное имя представителя расы <Var/Race> состоящие из имени и фамилии.
<RetVar>=get Khaak agression level
Возвращает текущий уровень агрессивности Хааков.
set Khaak agression level to <Var/Number>
Устанавливает уровень агрессивности Хааков. Значение может лежать в пределах от 0 до 100, стандартный уровень 15. Влияет на количество и размер кластеров в группах совершающих набеги на сектора.
end conditional
Конец условия или цикла. Любой цикл или условие должно завершаться этим оператором, иначе редактор при попытке сохранить скрипт выдаст ошибку.
Else
Оператор ИНАЧЕ располагается в теле условия IF…(операторы выполняющиеся если ИСТИНА)…ELSE…(операторы если ЛОЖЬ)…END. Если используется IF NOT то: IF NOT…(операторы выполняющиеся если ЛОЖЬ)…ELSE…(операторы если ИСТИНА)…END
Continue
Начать следующий виток цикла. Передает управление на начало выполняемого цикла, то есть на ближайший сверху оператор WHILE/
break
Прервать выполнение цикла. Передает управление в строку следующую за оператором END, завершающего выполняемый цикл.
goto label <Label>
Перейти к метке <label>.
define label <Label>
Определить метку для команды goto.
@<RetVar/IF/START> <RefObj> call script <Script Name>: <Parameter>
Запускает скрипт <Script Name> в стеке Task 0 объекта <RefObj> (либо в текущем стеке текущего объекта если не использован префикс START) с параметрами <Parameter> и приоритетом текущего скрипта. Возвращаемое скриптом значение присваивается переменной <RetVar> или анализируется в <IF>. Допускается игнорирование возвращаемого значения (отсутствие <RetVar/IF>). Если <RefObj> = null и использован префикс START, то скрипт будет запущен как глобальный. При запуске в текущем стеке (т.е. без префикса START) команда call script ничего не удаляет из текущего стека. В противном случае из стека Task 0 объекта <RefObj> будут удалены все остальные скрипты независимо от приоритетов. Указание префикса <START> означает продолжение выполнения текущего скрипта, без ожидания завершения вызванного. При этом скрипт будет запущен строго в стеке Task 0 объекта <RefObj>, удалив при этом все остальные скрипты из этого стека.
Внимание! Никогда не используйте @ START [THIS]->call script в скрипте, запущенном в Task 0 объекта! Скрипт не будет запущен, а текущий повиснет! Также будьте внимательны с запуском без префикса START и с <RefObj> отличным от [THIS], т.к. если объект <RefObj> будет уничтожен, вызванный скрипт сам остановлен при этом не будет, он будет продолжать выполняться на текущем объекте и может повиснуть.
return <Value>
Завершить выполнение скрипта и вернуть результат исполнения <Value> вызывавшему скрипту.
<RetVar>=array alloc: size=<Var/Number>
Создать массив размером <Var/Number> элементов и вернуть переменную <RetVar> типа массив. На самом деле возвращается указатель на массив, то есть ScE определяет область памяти под указанное количество элементов и возвращает указатель на него.
<RetVar/IF> <Var/Array>[<Var/Number>]
Присвоить переменной <RetVar/IF> значение, из элемента с индексом <Var/Number>, массива <Var/Array> .
<Var/Array>[<Var/Number>]=<Value>
Записать в элемент массива <Var/Array> с индексом <Var/Number> значение <Value>.
<RetVar>=size of array <Var/Array>
Получить в переменную <RetVar> размер массива <Var/Array>.
<RetVar>=clone array <Var/Array>: index <Var/Number> <Var/Number>
Создать копию массива <Var/Array> начиная с индекса <Var/Number> по индекс <Var/Number>, в другой области памяти и вернуть указатель на нее в переменную <RetVar>. Если вам нужна копия массива, то используйте именно эту команду, т.к. попытка скопировать массив при помощи конструкции $array2=$array1 не годится. Такая конструкция запишет в переменную $array2 указатель на область памяти где храниться массив array1, соответственно в памяти будет существовать один массив и обе переменные будут указывать на него. Подробно это описано в главе «Введение в скриптописание Х2».
copy array <Var/Array> index <Var/Number> <Var/Number> into array <Var/Array> at index <Var/Number>
Скопировать элементы массива <Var/Array> начиная с индекса <Var/Number> по индекс <Var/Number> в массив <Var/Array> начиная с индекса <Var/Number>. Если копируемый сегмент превысит размер массива-приемника, то размер массива-приемника будет увеличен на требуемое количество элементов.
insert <Value> into array <Var/Array> at index <Var/Number>
Вставить в массив <Var/Array> новый элемент <Value> на место элемента с индексом <Var/Number>. (Фактически изменить размер массива. Индексы всех элементов массива начиная с заданного увеличатся на 1).
append <Value> to array <Var/Array>
Добавить в конец массива <Var/Array> новый элемент <Value>. (Фактически изменить размер массива).
remove element from array <Var/Array> at index <Var/Number>
Удалить элемент с индексом <Var/Number> из массива <Var/Array>. (Фактически изменить размер массива. Индексы всех элементов начиная с заданного уменьшатся на 1).
resize array <Var/Array> to <Var/Number>
Установить размер массива <Var/Array> равной <Var/Number>. (Если размер массива уменьшается то «лишние» элементы окажутся обрезанными, если увеличивается то в массив добавляются пустые элементы).
Оглавление | Сообщение об ошибках | Ваше мнение о проекте | E-Mail автору |