Аудио команды (Audio Commands)

На главную  Назад  Вперед

play sample <Var/Number>

engine v. 32

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

Дополнение от пилота AlexYar:

Добавлять новые звуки в х3 можно почти неограниченно, но совершенно иначе, нежели в х2, и с обязательной прописью звуков в файле types\sounds.txt, где и прописываются параметры к каждому звуковому файлу. Однако при проигрывании командой play sample все настройки флагов и эффектов не учитываются (учитывается только максимальная громкость звучания).

 

 

 


play sample: incoming transmission <Var/Number>, from object <RefObj>

engine v. 32

Команда проигрывает стандартное звуковое сообщение, задаваемое параметром transmission <Var/Number>. Для задания значения параметра  используются константы вида:  IncomingMessage.XXXX (см. справочник констант <доделать>).  Работа команды заключается в произнесении голосом бортового компьютера фразы в зависимости от аргумента. Аргумент <RefObj> - по идее должен указывать источник сообщения, но в версии 1.4 эта функция не работает. (как это в Х3?). <доделать>

 

 

 


<RefObj> send audio message <Var/Number> to player

engine v. 32

Команда посылает аудио/видео сообщение от объекта <RefObj>, объектом должен являться корабль. В качестве параметра <Var/Number> используется идентификатор текста <Var/Number> из текстовой страницы, заданной в параметре voice=<Value> команды set pilot speaker. Видео изображение и голос пилота так же определяется командой set pilot speaker.

 

Примеры

См. также


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

engine v. 32

Команда посылает сообщение <Var/String> игроку. Если display it=[TRUE], то сообщение сразу же отображается на экране, если [FALSE] - записывается в журнал, игрок получает уведомление "Пришло новое сообщение".
Правила и примеры форматирования сообщений смотрите в дополнении "Общение с игроком"<доделать>

Дополнение от пилота AlexYar:

Для нормальной работы этой команды необходимо перед ней ставить задержку в минимум 200 мс. Из-за бага в скриптовом движке, тянущегося еще с х2, эта команда не срабатывает, если скрипт запускается с активного меню (из консоли корабля или с другого меню). Соответственно следует перед данной командой вставить задержку командой wait.

[****]

 

Примеры

См. также


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

engine v. 32

Команда посылает сообщение запрос <Var/String> игроку. Результат выбора будет возвращен в первый аргумент скрипта с именем <Script Name>.
Правила и примеры форматирования сообщений запросов смотрите в дополнении "Общение с игроком".

Дополнение от пилота Andrei [<>Ace]:

Аргумент скрипта (в который будет передан результат) может быть либо строкой (STRING), либо целым числом (INT). Если будет введен другой тип данных (DATATYPE), он будет приведен к вышеупомянутым типам, причем преимущество имеет DATATYPE_INT.
Отсюда нюанс - если передать число как текст (тип данных DATATYPE_STRING), скрипт примет его как число (тип данных DATATYPE_INT).

Дополнение от пилота ULiX:

Подробнее рассмотрим тег [select value="Answer"]Message[/select]. А точнее параметр Answer. Через данный параметр можно в скрипт <Script Name> передать не один, а несколько параметров. Достаточно перечислить эти параметры через запятую. Параметры будут помещены в соответствующий по порядку аргументы скрипта <Script Name>.
Например можно создать шаблон [select value="%s,%s,%s"]Message[/select]. И передавать вызываемому скрипту три параметра.
А самое важное, что вызываемому скрипту можно передать указатель на любой объект, будь это корабль, станция, или даже массив. Для этой цели может быть использована команда: <RetVar> = <RefObj> serialise object. Если в качестве одного из передаваемых параметров полученное данной командой значение, то скрипт обработчик ответа пилота получит в аргументе сам объект. Очень полезное дополнение, когда, скажем при выборе пилота, обработчик ответа должен точно знать, о каком именно корабле станции или объекте идет речь.

 

 

 


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

engine v. 32

Команда воспроизводит голосовое сообщение. Работа данной команды схожа с командой play sample: incoming transmission <Var/Number>, from object <Value> , отличие заключается в том, что место нахождения сообщения указывается пользователем. Также эта команда может проиграть голосовой клип как команда <RefObj> send audio message <Var/Number> to player, только не будет отражаться видео.
Текст сообщений храниться в языковом файле (см."Языковые файлы"<доделать>). Если играющий не отключил показ субтитров то, при воспроизведении голосового сообщения в нижней части экрана будут отражены субтитры (текст взятый с соответствующей страницы и идентификатора), соответственно субтитры будут на языке локализации. Если сообщение имеет связанный с ним аудио компонент, то он будет тоже проигран.
Приоритет  ( priority ) задается значениями в диапазоне от 0 до 99. Все приоритеты больше 99 считаются равноправными. Таким образом сообщение с приоритетом 200 всё равно будет перебитото сообщением с приоритетом 100 или 110. Но не будет перебито сообщением с приоритетом, скажем 90.
Использование команды возможно с префиксом START, который означает, что скрипт не будет ожидать конца текста, а продолжит выполнение. Если в момент озвучивания текста приходит запрос на воспроизведение голосового сообщения с таким же или большим приоритетом - озвучиваемый текст перебивается запросом. Если приоритет меньше - запрос игнорируется. (Все сообщения Х3 имеющие аудио/видео компонент, описаны в разделе "Голосовые фразы"<доделать>)
Для данной команды имеется возможность составлять сложные сообщения из отдельных фраз. Делается это при помощи языкового файла. На любую свободную страницу и идентификатор помещаются ссылки на строки состоящие из голосовых фраз, (см. "Голосовые фразы"<доделать>). Сложная фраза составляется с помощью специального тега позволяющий избежать многократных повторений некоторых одинаковых фрагментов фраз (удобно использовать не только с данной командой) {page id,text id} , более подробную информацию и примеры можно найти в разделе "Языковые файлы"<доделать>.

 

 

 


<RefObj> send incoming message: text=<Var/String> temporary=<Var/Number>

engine v. 32

Команда посылает сообщение <Var/String> игроку от имени объекта <RefObj>, объектом должен являться корабль (им может быть и текущий корабль игрока, задаваемый константой [PLAYERSHIP]).  Если указанный объект не существует - сообщение не будет выведено.
В параметре temporary=<Var/Number> ([TRUE]/[FALSE]) задается признак того, что сообщение является "временным", т.е. признак необходимости занесения его текста в бортовой журнал. Таким образом, при задании параметра temporary=[TRUE], сообщение будет отображено, но не сохранится в бортовом журнале.
Сообщение может поступить только от корабля находящегося в том же секторе что и игрок.