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
|
• | Текст сообщений храниться в языковом файле (см."Языковые файлы"<доделать>). Если играющий не отключил показ субтитров то, при воспроизведении голосового сообщения в нижней части экрана будут отражены субтитры (текст взятый с соответствующей страницы и идентификатора), соответственно субтитры будут на языке локализации. Если сообщение имеет связанный с ним аудио компонент, то он будет тоже проигран. |
• | Приоритет ( 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], сообщение будет отображено, но не сохранится в бортовом журнале. |
• | Сообщение может поступить только от корабля находящегося в том же секторе что и игрок. |
|