Общие команды. Аудио команды. Команды бортжурнала / X3 Terran Conflict (Земной конфликт)
X3 Terran Conflict / X3 Земной конфликт
 
X3 Terran conflict / Команды ScE / Общие команды. Аудио команды. Команды бортжурнала  
 

На сайте онлайн (человек): 49



 



Общие команды. Аудио команды. Команды бортжурнала

Автор: Макс aka Malstrime

Скрипты.
 Что это и с чем их едят.


<< Команды ScE.




Основные команды.


  1. <RetVar/IF><Expression>

Пожалуй, самая используемая команда. С ее помощью обычно задаются условия циклы, создаются условия, с ее помощью работают с переменными. Основа основ. По сути, это Основа.


  1. inc <RetVar>

Увеличить <RetVar> на 1.


  1. dec <RetVar>

Уменьшить <RetVar> на 1.


  1. @ <RetVar/IF> wait <Var/Number> ms

Подождать <Var/Number> миллисекунд. К слову говоря, минимальная задержка составляет вовсе не 1 секунду. Чтобы узнать размер минимальной задержки, возьмите кол-во скриптов, исполняющихся в данный момент и поделить это число на 1000.


  1. @ <RetVar/IF> wait randomly from <Var/Number1> to <Var/Number2> ms

Тоже самое, что и команда сверху, только время здесь задается в диапазоне от <Var/Number1> до <Var/Number2>. В переменную возвращается то кол-во миллисекунд, которое "прождала" команда.


  1. <RetVar/IF> = random value from 0 to <Var/Number> - 1

Вернуть в переменную <RetVar> рандомное число в диапазоне от 0 до <Var/Number>-1


  1. <RetVar> = random value from <Var/Number> to <Var/Number> - 1

Тоже самое, что и выше, только вместо нуля Вы можете указать любое число.


  1. * <Comment>

Комментарий. Скриптом не обрабатывается, служит для удобства редактирования сторонним человеком.


  1. <RetVar> = script engine version

Возвращает версию ScE, в которой написан скрипт.


  1. <RetVar> = get script version

Возвращает версию скрипта, которая задается в самом его верху.


  1. <RetVar/IF> is a new script version available

Возвращает 1 или 0 в зависимости от того, доступна ли новая версия скрипта (???).


  1. <RetVar> = get script name

Возвращает имя исполняемого скрипта.


  1. <RetVar> = get script priority

Возвращает приоритет исполняемого скрипта.


  1. set script priority to <Var/Number>

Устанавливает приоритет текущего скрипта равным <Var/Number>, которое должно принимать значение от 0 до 10000. Вообще, эта команда вкупе с предыдущей - очень мощный инструмент для взаимодействия. Очень часто используется Сигналами.


  1. infinite loop detection enabled=<Var/Number>

Этот переключатель служит для отслеживания бесконечных циклов. Если цикл бесконечен, то он его останавливает, а управление передается в строку, следующую сразу после цикла. На самом деле, для этого гораздо больше подходит команда wait, но на вкус и цвет... ;)

  1. <RetVar/IF> is script with prio <Var/Number> on stack

Возвращает [TRUE] если в текущем стеке находится (выполняется в данный момент или стоит в очереди на выполнение) скрипт с приоритетом <prio>. Т.е. если эта команда вызвана из скрипта, запущенного в стеке Task 10, то будут проанализированы все скрипты, включая текущий, но запущенные только в этом же стеке Task 10 этого же объекта. Кстати, весьма полезная команда. На сегодня это единственная команда, с помощью которой извне (из другого скрипта) можно узнать а запущен ли такой-то скрипт в таком-то слоте такого-то корабля/станции. Эта функция может быть использована для определения какой сигнал был получен кораблем и выполняемые в текущий момент действия. Определяя находится ли в стеке этого корабля скрипт обработчик сигнала. Например: если при проверке находится ли в стеке скрипт с приоритетом 99, инструкция возвращает [TRUE], то это означает, что корабль подвергся нападению и оказывает сопротивление нападающему.


  1. <RetVar/IF> get task ID

Получить номер таска, в котором выполняется скрипт.


  1. <RetVar/IF> get PID

Получить номер процесса, отвечающего за исполняемый скрипт.


  1. enable signal/interrupt handling: <Var/Number>

Разрешить (0)/Запретить (1) прерывание данного скрипта.


  1. <RetVar/IF> is signal/interrupt handling on

Получить состояние, в котором находится "прерываемость" скрипта (см. команду выше).


  1. <RefObj> -> set local variable: name=<Var/String> value=<Value>

Присвоить локальной переменной <Var/String>, привязанной к объекту <RefObj>, значение <Value>.


  1. <RetVar/IF> <RefObj> -> get local variable: name=<Var/String>

Получить значение переменной <Var/String>, принадлежащей объекту <RefObj>.


  1. set global variable: name=<Var/String> value=<Value>

Присвоить глобальной переменной <Var/String> значение <Value>


  1. <RetVar/IF> get global variable: name=<Var/String>

Получить значение глобальной переменной <Var/String>.


  1. <RetVar> = datatyp[<Value>]

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


  1. <RetVar/IF> is datatyp[<Value>] == <Var/Script Data Type>

Команда возвращает 0 или 1 в зависимости от того, соответствует ли тип данных в переменной <Value> типу <Var/Script Data Type>.


  1. <RetVar> = read text: page=<Var/Number1> id=<Var/Number2>

Команда возвращает текст с id <Var/Number2>, находящийся на странице <Var/Number1>.


  1. <RetVar/IF> read text: page id=<Var/Number1>, from <Var/Number2> to <Var/Number3> to array, include empty=<Var/Number4>

Команда возвращает текст со страницы <Var/Number1>, состоящий из идущих подряд кусков текста, начиная с id <Var/Number2>,  заканчивая id <Var/Number3>. <Var/Number4> - флаг, отвечающий за то, что стоит ли включать пустые текстовые id, находящиеся в заданном диапазоне.


  1. <RetVar/IF> read text: page id=<Var/Number1>, id=<Var/Number2> exists

Команда возвращает 1 или 0 в зависимости от того, существует (1) текст <Var/Number2> на странице <Var/Number1> или нет (0).


  1. <RetVar> = sprintf: fmt=<Var/String>, <Value>, <Value>, <Value>, <Value>, <Value>

  1. <RetVar> = sprintf: pageid=<Var/Number1> textid=<Var/Number2>, <Value>, <Value>, <Value>, <Value>, <Value>

Форматирует строку <Var/String> или текст <Var/Number2> со страницы <Var/Number1>, подставляя вместо соответствующих %s (если они там имеются) соответствующие Value.


  1. load text: id=<Var/Number>

Дополнить основной языковой файл пользовательским языковым файлом с номером <Var/Number>. Действует только на время данной игры (при старте новой или загрузки сохранения изменения не сохранятся, но записываются в сейв, если сохранить текущую игру).


  1. <RetVar/IF> state of news article: page=<Var/Number> id=<Var/Number>

  1. set state of news article page=<Var/Number> id=<Var/Number> to <Var/Number>

Доски объявлений убраны в Х3ТС.


  1. <RetVar/IF> system date is month=<Var/Number1>, day=<Var/Number2>

Команда проверяет текущую СИСТЕМНУЮ дату на соответствие Месяц <Var/Number1> - День <Var/Number2>.


  1. <RetVar> = playing time

Возвращает время в секундах, прошедшее с момента начала игры (то есть самого начала, а не загрузки сохранения).


  1. <RetVar/IF> is plot <Var/Number> state flag <Var/Number>

Раньше эта команда служила для проверки состояния основной сюжетной линии (а неосновных и не было :).  В Х3ТС сюжетных линий много, и написаны они в MD.


  1. <RetVar> = register hotkey <Var/String> to call script <Script Name>
  2. <RetVar> = register hotkey <Var/String> to call script name <Var/String>

Команды для регистрации горячей клавиши с названием <Var/String>, вызывающей скрипт <Script Name> или <Var/String>. В переменную возвращается id горячей клавиши, который может пригодиться в команде ниже.
*Примечание. Эта команда только добавляет возможность назначить горячую клавишу. Назначить же ее саму можно в меню интерфейса (листать вниз до упора).


  1. unregister hotkey <Var/Number>

Убрать горячую клавишу с id <Var/Number>.


  1. <RetVar> = last load time

Возвращает время, прошедшее с прошлой загрузки.



  1. <RetVar/IF> <RefObj> -> get local variables: regular expression=<Var/String>
  2. <RetVar/IF> get global variables: regular expression=<Var/String>

Возвращает массив с именами глобальных_переменных/локальных_переменных_объекта_<RefObj>, имена которых удовлетворяют регулярному выражению, заданному в regular expression=<Var/String>

  1. <RetVar/IF> <RefObj> -> get all local variable keys, starting with=<Var/String>
  2. <RetVar/IF> get all global variable keys, starting with=<Var/String>

Возвращает массив с именами глобальных_переменных/локальных_переменных_объекта_<RefObj>, имена которых начинаются со строки <Var/String>.


  1. <RetVar> = get maximum, <Var/Number>, <Var/Number>, <Var/Number>, <Var/Number>, <Var/Number>

Получить максимальное из пяти значений <Var/Number>.




Управление исполнением
цикла.


  1. end conditional

Оператор, обозначающий окончание условия или цикла.


  1. else

Оператор, обозначающий ИНАЧЕ.
То есть:
  1. if <Выражение>
  2.   <кусок кода, исполняемый, если выражение истинно>
  3. else
  4.   <кусок кода, исполняемый, если выражение ложно>/
  5. end



  1. continue

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


  1. break

Натыкаясь на эту команд, цикл прерывается, и начинается выполнение команд, идущих после него.


  1. goto label <Label>

Безусловный переход к метке <Label>.


  1. gosub <Label>

Выполнить код, начиная с метки <Label>, заканчивая оператором endsub. Стандартная процедура.


  1. define label <Label>

Эта строка по сути и есть "метка". То есть в месте, где Вы ее создадите, появится метка <Label>.


  1. endsub

Оператор, завершающий процедуру (см. gosub).




Вызовы скриптов.


  1. @ <RetVar/IF/START><RefObj> call script <Script Name> : <Parameter>

Вызвать скрипт <Script Name> в нулевом таске объекта <RefObj> с параметрами <Parameter> (их может быть несколько). Команда, завершающая скрипт - return <Value>, вернет <Value> в <RetVar>.


  1. <RefObj> interrupt with script <Script Name> and prio <Var/Number>: arg1=<Value> arg2=<Value> arg3=<Value> arg4=<Value>
  2. <RefObj> -> interrupt with script <Script Name> and prio <Var/Number>

Прервать скрипт скриптом <Script Name> в нулевом таске объекта <RefObj>, если приоритет <Var/Number> выше приоритета исполняемого в таске скрипта. Прерывание в отличие от вышеописанной команды произойдет, когда в текущем скрипте не исполнится какая-либо прерываемая команда, то бишь команда со значком "@", например команда wait. Возможно выбрать до пяти параметров в первом случае.



  1. <RefObj> interrupt task <Var/Number> with script <Script Name> and prio <Var/Number>: arg1=<Value> arg2=<Value> arg3=<Value> arg4=<Value>

Команда, аналогичная предыдущей, но с возможностью выбрать таск <Var/Number>, в котором произойдет прерывание.


  1. <RefObj> start task <Var/Number> with script <Script Name> and prio <Var/Number>: arg1=<Value> arg2=<Value> arg3=<Value> arg4=<Value> arg5=<Value>

Удалить все скрипты (выполнение скриптов остановится в момент поступления команды), исполняющиеся в таске <Var/Number>. Вместо них там запустится скрипт <Script Name>. Остальное, я думаю, уже понятно.


  1. return <Value>

Безоговорочно завершить выполнение скрипта и вернуть в вызвавший данный скрипт родительский скрипт значение <Value>, если таковой имеется.


  1. <RetVar/IF> <RefObj> -> is script <Script Name> on stack of task=<Var/Number>

Проверяет наличие выполняющейся копии скрипта <Script Name> в таске <Var/Number> объекта <RefObj>. Возвращает 1, если таковая копия действительно выполняется в данном таске, или 0, если нет.


  1. <RetVar/IF> <RefObj> -> is task <Var/Number> in use

Проверяет наличие каких-либо исполняющихся скриптов в таске <Var/Number> объекта <RefObj>. Возвращает 1, если в данном таске запущен какой-либо скрипт(ы), или 0, если нет.


  1. <RetVar/IF> <RefObj> -> call named script: script=<Var/String>, <Value>, <Value>, <Value>, <Value>, <Value>

Команда, аналогичная самой первой, но вместо выбора конкретного скрипта можно указать его имя в <Var/String>.


  1. <RefObj> -> start named script: task=<Var/Number> scriptname=<Var/String> prio=<Var/Number>, <Value>, <Value>, <Value>, <Value>, <Value>

Команда, аналогичная start task, но с тем же отличием, что и выше.


  1. <RetVar> = <RefObj> -> get next available task: starting=<Var/Number>

Проверяет таски объекта <RefObj> на "свободность", начиная с таска <Var/Number>. Возвращает первый незанятый таск.





Массивы.


  1. <RetVar> = array alloc: size=<Var/Number>
  2. <RetVar> = create new array, arguments=<Value>, <Value>, <Value>, <Value>, <Value>

Команды для создания массивов. <RetVar> - ссылка на созданный массив, вторая команда позволяет сразу добавить несколько элементов в массив.


  1. <RetVar/IF><Var/Array>[<Var/Number>]

Возвращает элемент массива <Var/Array> с индексом <Var/Number>.


  1. <Var/Array>[<Var/Number>] = <Value>

Записать в элемент массива <Var/Array> с индексом <Var/Number> значение <Value>.


  1. <RetVar/IF><Var/Array>[<Var/Number>][<Var/Number>]
  2. <Var/Array>[<Var/Number>][<Var/Number>] = <Value>

Задатки двумерных массивов, насколько я понимаю.


  1. <RetVar/IF> size of array <Var/Array>

Возвращает размер массива <Var/Array>.

  1. <RetVar> = clone array <Var/Array>: index <Var/Number1> ... <Var/Number2>

Возвращает копию массива <Var/Array>, начиная с индекса <Var/Number1>, заканчивая <Var/Number2>.


  1. copy array <Var/Array> index <Var/Number1> ... <Var/Number2> into array <Var/Array> at index <Var/Number3>

Скопировать элементы массива <Var/Array> начиная с индекса <Var/Number1> по индекс <Var/Number2> в массив <Var/Array> начиная с индекса <Var/Number3>. Если копируемый сегмент превысит размер массива-приемника, то размер массива-приемника будет увеличен на требуемое количество элементов.


  1. insert <Value> into array <Var/Array> at index <Var/Number>

Вставить в массив <Var/Array> новый элемент <Value> на место элемента с индексом <Var/Number> (фактически изменить размер массива. Индексы всех элементов массива начиная с заданного увеличатся на 1).


  1. append <Value> to array <Var/Array>

Добавить в конец массива <Var/Array> новый элемент <Value>.


  1. remove element from array <Var/Array> at index <Var/Number>

Удалить из массива <Var/Array> элемент <Var/Number>. Индексы всех следующих элементов уменьшатся на 1.


  1. resize array <Var/Array> to <Var/Number>

"Отрезать" часть массива <Var/Array>, начиная с элемента <Var/Number>. То есть в массиве останутся элементы с 0 до <Var/Number>.


  1. <RetVar> = get index of <Value> in array <Var/Array> offset=<Var/Number> + 1

Получить индекс элемента со значением <Value> в массиве <Var/Array> со смещением <Var/Number>+1. Если таковой элемент отсутствует, вернет null.


  1. <Var/Array1>[<Var/Number1>] = <Var/Array2>[<Var/Number2>]

Задать элементу массива <Var/Array2> с индексом <Var/Number2> значение, равное элементу массива <Var/Array1> с индексом <VAr/Number1>.


  1. <RetVar> = sort array <Value>
  2. <RetVar> = sort array: data=<Value> sort values=<Value>

Команды для сортировки массива. Как-то очень кривоработающие.


  1. <RetVar/IF> find <Value1> in array: <Value2>

Команда проверяет наличие <Value1> в массиве <Value2>. Возвращает 1, если находит, и 0, если нет.


  1. <RetVar/IF> reverse array <Value>

"Перевернуть" массив. Первый элемент становится последним, второй предполследним и так далее.


  1. <RetVar/IF> arrays <Value> and <Value> are equal

Проверить два массива на эквивалентность (размер, содержание). 1, если эквивалентны, 0, если нет.




Строки.


  1. <RetVar/IF> get length of string <Var/String>

Команда возвращает длину строки <Var/String> в байтах. Символы юникода (в том числи русские буквы) считаются за 2 байта, а не за 1.


  1. <RetVar> = find position of pattern <Var/String1> in <Var/String2>

Команда возвращает позицию первого вхождения подстроки <Var/String1> в строку <Var/String2>. Если подстрока не найдена - вернет -1.


  1. <RetVar> = get substring of <Var/String> offset=<Var/Number1> length=<Var/Number2>

Команда возвращает подстроку  из строки <Var/String>, которя начинается с позиции <Var/Number1> и имеет длину <Var/Number2>. Следует учитывать, что элементы строки нумеруются с 0. Если в качества длины строки указать значение null - то будет скопирована подстрока от заданной позиции offset=<Var/Number1> до конца исходной строки.


  1. <RetVar> = string <Var/String> to integer
  2. <RetVar> = convert number <Var/Number> to string

Команды для конвертации строки <Var/String> в число или или числа <Var/Number> в строку соответственно.


  1. <RetVar> = substitute in string <Var/String>: pattern <Var/String> with <Var/String>

Команда производит замену всех вхождений подстроки, заданной в параметре pattern <Var/String>, в исходной строке string <Var/String>, на подстроку заданную в параметре with <Var/String>.


  1. <RetVar> = format time: <Var/Number>

Форматирует время <Var/Number> (число в секундах) в текстовую строку формата хх:yy:zz, где хх - часы, yy - минуты, а zz - секунды.


  1. <RetVar/IF> match regular expression: <Var/String> to string <Var/String>

  1. <RetVar/IF> get string font length: <Var/String>

???




Вычисления.


  1. <RetVar> = = fixed sin <Var/Number>

Вычислить синус <Var/Number>. Возвращается число от -65535 до 65535.


  1. <RetVar> = = fixed cos <Var/Number>

Вычислить косинус <Var/Number>. Возвращается число от -65535 до 65535.


  1. <RetVar> = square root of <Var/Number>

Вычислить квадратный корень из <Var/Number>.




Команды/Сигналы.

  1. <RefObj> -> connect ship command/signal <Object Command/Signal> to script <Script Name> with prio <Var/Number>

Команда устанавливает связь объектной команды/сигнала <Object Command/Signal> с определенным объектом <RefObj>, назначая обработчиком этой команды или сигнала скрипт <Script Name>, и устанавливает его приоритет равным <Var/Number>


  1. <RefObj> -> set ship command/signal <Object Command/Signal> to global default behaviour

Команда восстанавливает стандартный обработчик объектной команды/сигнала <Object Command/Signal> для объекта <RefObj>.


  1. <RefObj> -> ignore ship command/signal <Object Command/Signal>

Команда отключает обработку объектных команд/сигналов <Object Command/Signal> объектом <RefObj>. То есть после этой инструкции на объекте не будет запускаться обработчик этой команды, даже если он получит соответствующий сигнал или команду.


  1. <RefObj> -> add secondary signal: signal=<Object Signal>, script=<Script Name>, prio=<Var/Number>, name=<Var/String>

  1. <RefObj> -> remove secondary signal: signal=<Object Signal>, name=<Var/String>

  1. global secondary signal map: add signal=<Object Signal> race=<Var/Race> class=<Var/Class> script=<Script Name> prio=<Var/Number> name=<Var/String>

  1. global secondary signal map: remove signal=<Object Signal> race=<Var/Race> class=<Var/Class> name=<Var/String>

Теоретически, эти команды позволяют задать обработчик вторичного сигнала (или вторичный обработчик) <Object Signal>. Последние 3 аналогичны трем командам, идущим ниже.


  1. 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>.


  1. global script map: remove: key=<Object Command/Signal>, class=<Var/Class>, race=<Var/Race>

Команда отменяет назначение скрипта-обработчика объектной команды/сигнала <Object Command/Signal> для всех объектов класса <Var/Class> принадлежащих расе <Var/Race> скрипта <Script Name>.


  1. global script map: ignore: key=<Object Command/Signal>, class=<Var/Class>, race=<Var/Race>

Команда отключает обработку объектной команды/сигналы на объектах определенного типа. Параметры такие же как и у двух предыдущих команд.


  1. set script command upgrade: command=<Object Command/Signal> upgrade=<Var/Ware>

Команда задает апгрейд или товар <Var/Ware>, который должен быть установлен на объекте для активации объектной команды <Object Command/Signal> в меню объекта. При отсутствии данного апргейда или товара строка в командном меню объекта не отразится. Если <Var/Ware> указать [TRUE], то команда будет появляться всегда.


  1. <RetVar> = get script command upgrade: command=<Object Command/Signal>

Команда возвращает в переменную <RetVar> необходимый апгрейд или товар, необходимый для активации в командном меню объектной команды <Object Command/Signal> . Если апгрейд не требуется возвращает 1.


  1. set script command upgrade: command=<Object Command/Signal> upgrade=<Var/Ware> script=<Script Name>

Команда  работает идентично команде set script command upgrade: command=<Object Command/Signal> upgrade=<Var/Ware>, с тем отличием, что данная инструкция анализирует флаг возвращаемый проверочным скриптом <Script name> и позволяет производить многоуровневую проверку условий для активации команды в командном меню объекта.


  1. set ship command preload script: command=<Object Command/Signal> script=<Script Name>

Описание.


  1. global script map for wings: key=<Var/Wing Command> race=<Var/Race> script=<Script Name> prio=<Var/Number>

Описание.


  1. set script command upgrade: wing command=<Var/Wing Command> upgrade=<Var/Ware>

Описание.


  1. set script command upgrade: wing command=<Var/Wing Command> upgrade=<Var/Ware> script=<Script Name>

Описание.


  1. set wing command preload script: wing command=<Var/Wing Command> script=<Script Name>

Описание.


  1. add ship custom command: id=<Var/Number>

Описание.


  1. remove ship custom command: id=<Var/Number>

Описание.


  1. <RetVar> = ship custom command exists: id=<Var/Number>

Описание.


  1. set script command: <Object Command/Signal>

Связать команду <Object Command/Signal> с исполняемым скриптом.


  1. <RetVar/IF> get script command

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


  1. set script command target: <Value>

Команда устанавливает <Value> в качестве цели для команды текущего скрипта.


  1. <RetVar/IF> get script command target

Описание.


  1. <RefObj> -> connect wing command/signal <Object Command/Signal> to script <Script Name> with prio <Var/Number>

Описание.





Аудио команды.


  1. play sample <Var/Number>

Команда проигрывает звуковой файл с именем <Var/Number>.WAV.  Звуковые файлы в папке "s" игры и имеют формат WAV.  Это всякого рода простые звуки, например открытия люка, звук от выстрела и т.п.


  1. play sample: incoming transmission <Var/Number>, from object <Value>

Команда проигрывает стандартное звуковое сообщение, задаваемое параметром transmission <Var/Number>. Для задания значения параметра  используются константы вида:  IncomingMessage.XXXX.  Работа команды заключается в произнесении голосом бортового компьютера фразы в зависимости от аргумента.


  1. <RefObj> -> send audio message <Var/Number> to player

Игроку посылается аудио/видео сообщение от объекта <RefObj>, объектом должен являться корабль. В качестве параметра <Var/Number> используются константы Comm.XXXX. Видео изображение пилота от которого пришло сообщение формируется в зависимости от расы владельца <object>. Сообщение может поступить только от корабля находящегося в том же секторе что и игрок.


  1. send incoming message <Var/String> to player: display it=<Var/Number>

Послать игроку сообщение с текстом <Var/String>. Число <Var/Number> отвечает за то отображается ли оно принудительно, при этом не сохранившись в бортовом журнале, или придет "конвертиком", сохранившись в бортовом журнале. Из-за бага, непофиксенного еще с Х2, рекомендуется ставить задержку в 200 ms (команда wait).


  1. <RefObj> -> send incoming message: text=<Var/String> temporary=<Var/Boolean>

Команда тоже присылает сообщение с текстом <Var/String> от корабля <RefObj> (если он не существует, сообщение не придет), если он находится в одном секторе с игроком (иначе - сообщение не придет). <Var/Number> играет ту же роль, что и в предыдущей команде.


  1. send incoming question <Var/String> to player: callback=<Script Name>

Отправить вопрос <Var/String> игроку в качестве сообщения. Результат ответа возвращается аргументами скрипта <Script Name> (скрипт, соответственно, немедленно запускается). С этой командой тесно связан тег [select='текст_возвращаемый_в_первый_аргумент']Текст, который будет отображен в сообщении в качестве варианта ответа.[/select]. Таких тегов может быть несколько, обычно не меньше двух, но тут есть целое поле для фантазии, учитывая, что возвращаемые значения можно перечислять через запятую (первое значение - первый аргумент, второе - второй и так далее), а еще их можно задавать спецсимволом %s (подробнее об этом символе в статье Языковые файлы).


  1. send incoming question <Var/String> to player: callback=<Script Name> flags=<Var/Number>

Тоже, что и выше, но, видимо, с возможностью установки максимального числа аргументов <Var/Number>, но это лишь предположение.


  1. <RetVar> = <RefObj> -> serialise object

Возвращает ссылку на объект <RefObj> в качестве строки.


  1. <RetVar/IF/START> speak text: page=<Var/Number> id=<Var/Number> priority=<Var/Number>

Воспроизвести текст на соответствующей странице с соответствующим ай-ди с заданным приоритетом (если вдруг уже произносит текст с приоритетом выше указанного, текст не будет произнесен, в противном случае данный текст перебьет уже произносимый.


  1. display subtitle text: text=<Var/String> duration=<Var/Number> ms

Показать субтитры <Var/String> с задержкой <Var/Number> миллисекунд.


  1. <RetVar/IF> <RefObj> -> get object name array

Команда возвращает массив со строками, из которых состоит имя объекта <RefObj>. То есть если в названии, скажем, Меркурия, содержится не "Меркурий", а, например Арг. Меркурий Тяжеловоз, то будет возвращен массив из трех элементов: "Арг.", "Меркурий" и "Тяжеловоз". Позже этот массив можно будет использовать, например, в команде speak array.


  1. <RetVar/IF> get text id: ware=<Var/Ware>

Получить текстовое id товара <Var/Ware> (субтипом может быть не субтип товара, но какого-либо корабля или станции). Все названия хранятся на странице 17.


  1. <RetVar/IF/START> speak array: <Value> prio=<Var/Number>

Произнести массив <Value> из текстовых строк с приоритетом <Var/Number>.





Команды бортжурнала.


  1. write to player logbook <Value>

Добавить запись <Value> в бортовой журнал.


  1. write to player logbook: printf: fmt=<Var/String>, <Value>, <Value>, <Value>, <Value>, <Value>

Добавить запись <Var/String> в бортовой журнал. Отличие от вышеописанной команды заключается в том, что есть возможность подставлять в текст значения %s с помощью соответствующих <Value>. Подробнее - в статье Языковые файлы.


  1. write to player logbook: printf: pageid=<Var/Number> textid=<Var/Number>, <Value>, <Value>, <Value>, <Value>, <Value>

Тоже, что и вышеидущая команда, но текст подгружается из языкового файла.


  1. <RefObj> -> write to logbook <Value>

Можно предположить, что <Value> записывается в бортовой журнал корабля <RefObj>, но... Но бортовой журнал есть только у игрока и привязки к кораблю не имеет.


  1. write to log file <Var/Number1> append=<Var/Number2> value=<Value>

  1. write to log file <Var/Number1> append=<Var/Number2> printf: fmt=<Var/String>, <Value>, <Value>, <Value>, <Value>, <Value>

  1. write to log file <Var/Number1> append=<Var/Number2> printf: pageid=<Var/Number> textid=<Var/Number>, <Value>, <Value>, <Value>, <Value>, <Value>

То же самое, что write to player logbook, но запись производится в лог-файл с номером <Var/Number1>, находящегося в папке \Мои документы\Egosoft\X3TC. В зависимости от <Var/Number2> запись добавляется в конец файла (1) или файл перезаписывается (0).

Команды ScE

Автор: Макс aka Malstrime
Добавил(а): Макс aka Malstrime
Создано: 15.09.2011
Изменено: 23.09.2011
Количество изменений: 6
Просмотров: 4527

Оценка: 4,5
Голосов: 6

Ссылка на эту страницу:
<a href="https://x3tc.net/obschie-komandy-audio-komandy-komandy-bortzhurnala_130.html">Общие команды. Аудио команды. Команды бортжурнала</a>

BBCode:
[url=https://x3tc.net/obschie-komandy-audio-komandy-komandy-bortzhurnala_130.html]Общие команды. Аудио команды. Команды бортжурнала[/url]

Список игр