Форум РЕДАКТОР - ArmA 2 Основное Все о briefing.html (Руководство по написанию Брифинга) |
Все о briefing.html |
› Четверг
› 18.08.2011
› 20:09
› Сообщение #
О брифинге
Брифинг является неотъемлемой частью любой миссии. Обычно он представляет собой резюме, содержащее информацию о том, что нужно сделать, чтобы завершить миссию. Сегодня мы познакомимся с тем КАК создавать брифинг, и несколько способов его реализации. До Arma 2, брифинги писались при помощи файла Briefing.html Брифинг в Arma 2 Для начала разберем способ касающийся именно Arma 2, а все довольно просто: Создаем файл формата SQS или же SQF и называем его briefing. Добавление заметок Пример: player createDiaryRecord ["Diary", ["Situation", "Things are looking bad."]]; Добавляет в дневнике раздел с меткой "Situation", щелкнув на который на экране появляется сообщение: Things are looking bad. Добавление заданий tskExample1 = player createSimpleTask [localize " Task Message"]; - создает задание, под Key ID -"STRD_Task1" в stringtable (т.е брифинг обращается к stringtable по заданному ID чтобы извлечь оттуда информацию, которая выведется в брифинге.) tskExample1 setSimpleTaskDescription [localize " Task Message", localize " Task Title", localize " Task HUD Title"]; - все это выводит в брифинг описания задания первой задачи, все описание берется из stringtable tskExample1 setSimpleTaskDestination markerpos "mark1";// - данная строка позволяет заданию указать точку выполнения задания, в данном случае это маркер на карте с названием marker1. В итоге вы увидите, полупрозрачный круглый маркер, который загорается, когда вы ставите задачу в положение "активный" . В вашем дневнике, " Task Title" отображается для каждой задачи, которую вы установили и при нажатии на задание, появляется " Task Message" ,которое содержит описание. И наконец последнее localize " Task HUD Title"]; Это то, что отображается на HUD (Heads-Up Display т.е термин в компьютерных играх, который обозначает часть графического интерфейса пользователя, служащего для отображения важной информации непосредственно во время игрового процесса.) Мы можем изменять состояние задач в ходе миссии на следующие варианты: tskExample1 setTaskState "SUCCEEDED"; // Миссия выполнена успешно. Появляется зеленый флажок tskExample1 setTaskState "FAILED"; // Миссия провалена. Появляется красный флажок tskExample1 setTaskState "CANCELED"; // Задание отменено, появляется сера косая линия. tskExample1 setTaskState "CREATED"; // Создание только что создано. Вы можете показать состояние задачи при помощи taskHint команды. TaskHint является Бисовской командой очень сложной в использовании для начинающих сценаристов так как он требует определенный формат , RGBA и имя иконки для использования. Для того чтобы теперь все это было в миссии, пишем в инициализации у юнита: [] exec. briefing.sqs" или же n=[] execvm "briefing.sqf" если вы делали в формате SQF Как создать эту функцию? Скопируйте это в ваш SQF: // Создать taskHint // Используйте: [tskExample] call mk_fTaskHint; // Получает статус задания и выводит его на экран. mk_fTaskHint = compile (preprocessFileLineNumbers "fTaskHint.sqf"); ** Примечание: Вам нужно всего лишь скопировать и вставить из этого шаблона. Как использовать данную функцию? Эта функция будет работать только с задачами, которые вы создали, и данная команда будет выводить текущее состояние задачи. Так же о данной команде есть еще пару слов на Бисовском сайте: Описание: Отображает информацию о новых, измененных или проваленных заданиях. В синтаксис включается такой символ \n он используется чтобы обозначить конец. Синтаксис: taskHint [hintText, [r, g, b, a], icon] Параметры: [hintText, [r, g, b, a], icon]: Array hintText: String [r, g, b, a]: Array - format Color icon: String - возможные значения: taskNew, taskDone, taskFailed, taskCurrent Пример: taskhint ["Task failed!\nBad job!", [1, 0, 0, 1], "taskFailed"] Форматирование ссылок для задания и заметок • Есть много ссылок форматирования, которые могут быть включены в строки для задания и заметки: • Чтобы добавить ссылку на маркер: <marker name='obj1'>Ссылка на маркер</marker> • Чтобы показать изображения: <img image='somePic.jpg'/> • Регулируйте ширину и высоту изображения так: <img height='200'/> width='200' image='somePic.jpg' Briefing.html простой HTML-файл, расположенный в папке с миссией. Вы должны создать этот файл вручную, а он в свою очередь будет загружаться автоматически, когда запустится миссия. Для SP миссий и кампаний, briefing.html сопровождается overview.html. Брифинг разбит на 4 основных раздела: ДНЕВНИК План Цели Концовка Для предварительного просмотра брифинге в редакторе, необходимо удерживать клавишу SHIFT и кликнуть на "предварительный просмотр". ArmA 2: В ArmA 2 briefing.html используется только для подведения итогов текста. Дневник. В разделе ДНЕВНИК брифинг дает дополнительную информацию игроку о миссии. Вы можете указать цель миссии более подробно, дать некоторые намеки или добавить другую справочную информацию. В некоторых миссиях игрок в разделе ДНЕВНИК может видеть один и тот же брифинг не зависимо от принадлежности к стороне. План и Цели. Раздел брифинга ПЛАН в Briefing.html используется как формальное введение в нашу миссии. План миссии является единственной интерактивной часть брифинга - вы можете изменить его изнутри миссии в любое время. Вы можете иметь так много целей в плане миссии, как вы хотите, но каждая цель должна иметь свою собственную небольшую секцию .Название раздела "OBJ_ID", где ID является произвольной идентификации цели - но рекомендуется использовать цифры. (Например, первой целью должна быть "OBJ_1", второй "OBJ_2" и др.) Вы можете изменить статус цели в любой момент с помощью команды objStatus. Просто напишите "ID" objStatus "Статус" в скрипте или триггере. Статус может быть активным (видимое задание), Hidden (скрытое задание), Failed (проваленное задание ) или Done (задание завершено). Когда игрок находится в режима новичка и изменяет статус на "Завершено" того или иного задания, появляется сообщение "Задание завершено". Если вы измените его на любой другой тип, появится текст на экране "План миссии обновлен" Концовки Последней частью брифинга является подведения итогов ( или же дебрифинг, как еще принято называть) . Вы можете иметь до шести концовок в вашей миссии, и все они нуждаются в собственном подведении итогов. Просто выберите соответствующий раздел ("end1" и "end2" секций), измените "TITLE" и напишите свое собственное описание концовки. Опять же место не ограничено, пишите сколько вам заблагорассудится. Так же окончание миссии контролируется определенной вкладкой в триггере. ( End # 1, End #2 и т.д.). Простой пример: Briefing.html Расширенные возможности брифингов: В оригинальный стиль брифинги BIS включено небольшое количество информации о миссии, которую предоставляется для игры, давая игроку только самые основные сведенья из разведки, необходимые для завершения своей задачи. Блокнот BIS обычно имеет форму дневниковой записи, и хотя эти методы, безусловно, являются стандартными для всех, есть и другой способ, написания брифингов. Расширенные брифинги имеют письменную форму и позволяют вывести сам брифинг как элемент игры на новый уровень. Здесь возможно использование ссылок и изображений, которые могут создать гораздо более подробный и эстетический эффект, который позволит вам поделиться с игроком, стольким количеством информации, скольким вы пожелаете. Несколько страниц позволит вам осветить различные стороны вашего брифинга. Например, вы можете разбить ваш брифинг на следующие этапы: Sitrep (Situation Report) -Отчет о ситуации Orders - Задачи Insertion - Вставка Target -Цель Exfiltration -Эксфильтрация (антоним инфильтрации) Friendly Forces - Дружественный силы Enemy Forces SITREP (Отчет о ситуации) -Вражеские силы С различными ссылками это легко достижимо. Кроме того, вы можете внести определенные звуки для брифинга в разделе CfgSounds , что в файле description.ext, и активировать их в верхней части файла описания с помощью: onBriefingGear = "SoundName" onBriefingPlan = "SoundName" onBriefingGroup = "SoundName" Другие возможности: Маркеры: Вы можете добавить ссылки на маркер в свой брифинг. Взгляните на эту строку из приведенного ниже примера: <a href="marker:MarkerName "> ссылка </> В этом коде "MarkerName" это имя маркера в вашей миссии. Текст в теге ("ссылки" в данном случае) будет иметь другой цвет, - и если игрок нажимает на данный тэг, экран сфокусируется на центре маркера (под названием "MarkerName"). Пользовательские разделы Если вы хотите, вы можете создавать свои собственные разделы в брифинге, как здесь: Как вы видите, вы должны создать новый раздел в HTML-коде. Он начинается с имени (<a name="…">) и заканчивается <hr>. Этот тег имеет особое значение в ОФП, он делит разделы брифинге. В этом примере, " your own section " является ссылкой на раздел, " Section name " является заголовок. (Если это не помогает и название нет - попробуйте следующее: <a name="MySection"> </> </ h2>.) Картинки Изображения могут быть добавлены в брифинги, просто при помощи этой IMG-ссылки: <p align="center"><img src="PictureName.jpg" width="128" height="64"></p> В этом примере "PictureName.jpg" это название вашей картинки. Она должна быть в нужной папке миссии. Ее максимальное разрешение составляет 256x256 пикселей, а ширина и высота должны иметь кратную степень (то есть обе стороны должны быть 2, 4, 8, 16, 32, 64, 128 или 256 пикселей). "Ширина" и "Высота" являются новой шириной и высотой изображения; то есть, как это будет видно на экране. "Выравнивание" определяет, будет ли картина в центре или нет. Вы можете установить ее в положении "выравнивание влево", "выравнивание вправо" или "выравнивание по центру". Тип шрифта: Вы можете использовать различные шрифты в брифинге. Обратите внимание <p> и </ P> теги до и после текста - если вы замените их на "другой" тег, текст будет в другом формате. Список существующих тэгов: Большой заголовок - <h1> Малый заголовок - <h2> Обычный текст - <p> или <h3> Строчный текст - <h4> Жирный шрифт - <h5> Курсив - <h6> Многоязычные брифинги Существует возможность сделать брифинг многоязычным. На данный момент есть поддержка: чешского, английского, французского, немецкого, итальянского, польского, русского и испанского языков. При отсутствии локализованных доступных версий, будет показан поддерживаемый "briefing.html" , содержащий родной английский контент. Для того чтобы специальные символы отображались правильно в локализованной версии брифинга - должен быть предусмотрен в миссии специальный каталог. Например, чтобы использовать немецкий "Umlaute" (ä, ü, ö, и т.д.) Создают дополнительный "briefing.German.html". Примечание: Специальные символы не отображаются в обычном "briefing.html" ArmA: Для того чтобы использовать специальные символы необходимо сохранить в формате UTF-8 (блокнот "сохранить как ..." варианты) __________________________________________________________________________ Статья написана Mikezar как руководство к использованию в редакторе Arma Cписок используемой литературы: http://community.bistudio.com http://www.ofpec.com/forum/index.php?topic=33768.0 Официальная группа сообщества 2Seconds from HEll Сообщение отредактировал Mikezar - Четверг, 18.08.2011, 23:36
|
› Четверг
› 18.08.2011
› 23:38
› Сообщение #
Quote (Mikezar) Концовки Чуток подправлю, также существуют концовки: Code CONTINUE KILLED LOSER А сам материал очень хороший, очень полезное дело делаешь! Я кой что новое узнал тут, вот и думаю: Что это за расширенные возможности? Да и вообще, я до этого всегда делал stringtable и сам файл с брифингом, а тут, кажется, надо через briefing.html делать, а я его раньше только для концовок использовал! Сообщение отредактировал leh2012 - Пятница, 19.08.2011, 11:37
|
› Пятница
› 19.08.2011
› 09:52
› Сообщение #
Ну тут видишь пишется о том, что в Arma 2 его используют только для концовок. Я думаю что по сути можно вообще не ссылаться на стрингтэйбл, и делать все в брифинге. Т.е можно поэксперементировать с этим.
|
› Пятница
› 19.08.2011
› 10:54
› Сообщение #
Mikezar, ну, мне кажется что stringtable.xml нужен в миссии, как минимум, по двум причинам:
1 Формат SQS не воспринимает русский язык, даже в UTF8 происходит сбой и первая строчка не читается(в SQF работает) 2 Удобно хранить все тексты сразу в одном месте, облегчается проверка текста Сообщение отредактировал leh2012 - Пятница, 19.08.2011, 11:36
|
› Пятница
› 19.08.2011
› 11:17
› Сообщение #
Quote (leh2012) Формат sqs не воспринимает русский язык, даже в UTF8 происходит сбой и первая строчка не читается(в sqf работает) Брифинг можно сделать многоязычным, как я понимаю, т.е что то вроде briefing.Russia.html Quote (leh2012) Удобно хранить все тексты сразу в одном месте, облегчается проверка текста Я согласен, лично мне удобно так делать Ну а вообще тут просто предлагается множество способов создания и вывода статуса задач. Ну а кому как делать, уже решить создателю Сообщение отредактировал Mikezar - Пятница, 19.08.2011, 11:18
|
› Пятница
› 19.08.2011
› 11:32
› Сообщение #
Quote (Mikezar) Брифинг можно сделать многоязычным Тут суть в том, что можно сделать поддержку нескольких языков в stringtable.xml Вот пример ячейки stringtable из моей миссии(ENG версия еще не вышла!): Code <Key ID="STRD_badsay3"> <Russian>Поехали!</Russian> <Original>Let's go!</Original> </Key> Соответственно, в русской версии отобразиться строчка 2, а в английской строчка 3. Перевод миссии подготовил stick, за что ему огромное спасибо! Сообщение отредактировал leh2012 - Пятница, 19.08.2011, 11:34
|
› Пятница
› 19.08.2011
› 19:54
› Сообщение #
Кстате говоря просмотрел твой Брифинг-пример. Оказывается по нему-таки я и учился создавать брифинги
|
› Пятница
› 19.08.2011
› 20:37
› Сообщение #
|
› Пятница
› 19.08.2011
› 23:00
› Сообщение #
Прошел сегодня миссию "Взять живым", так вот в ней автор использовал stringtable только для задач и дневника. Используя инфо выше, думаю спокойно можно вообще отказаться от этого файла
|
› Пятница
› 19.08.2011
› 23:06
› Сообщение #
Quote (Mikezar) "Взять живым" Отличная миссия, правда, озвучка немного хромает, из-за того, что записывали на диктофон мобильника! |
› Суббота
› 20.08.2011
› 12:04
› Сообщение #
Как быть если нужно вписать Стрингтейбл в Config.cpp?
#include stringtable.xml Думаю прокатит!? |
› Суббота
› 20.08.2011
› 19:23
› Сообщение #
Mikezar, конечно спасибо за перевод, но половину статьи можно удалить сразу, ибо это не актуально сейчас.
Quote (Mikezar) tskExample1 = player createSimpleTask [localize " Task Message"]; Поправка, команда localize вытягивает из стрига ИД, а в стриге ид должен начинаться с STR, тоесть Task Message не покатит, в таком случае надо делать просто как буржуи: tskExample1 = player createSimpleTask [localize " Task Message"]; Quote (Mikezar) taskHint Про эту команду можно просто сказать, без всех этих кодов лишних и прочего, а просто: Code Хинты на задание: pioneer = [objNull, ObjNull, task1, "CREATED"] execVM "CA\Modules\MP\data\scriptCommands\taskHint.sqf" выполнено\провал pioneer = [objNull, ObjNull, task1, "SUCCEEDED"] execVM "CA\Modules\MP\data\scriptCommands\taskHint.sqf"; pioneer = [objNull, ObjNull, task1, "FAILED"] execVM "CA\Modules\MP\data\scriptCommands\taskHint.sqf"; Где task1 - название задачи, вот и всё. Quote (Mikezar) Для начала разберем способ касающийся именно Arma 2, а все довольно просто: Создаем файл формата SQS или же SQF и называем его briefing. Активация брифинга происходит просто командами и назвать скрипт можно хоть vasa, или даже взять и активировать прямо в инцилизацию юнита. Quote (Mikezar) Брифинг разбит на 4 основных раздела: ДНЕВНИК План Цели Концовка Можно создать хоть десять пунктом и на заметку, что Концовка это девбрифинг. Quote (Mikezar) Exfiltration -Эксфильтрация (антоним инфильтрации) Переведи пожалуйста. Quote (Mikezar) Например, чтобы использовать немецкий "Umlaute" (ä, ü, ö, и т.д.) Создают дополнительный "briefing.German.html". О многоязычности уже говорилось, но скажу что многоязычность в описании Оверью (которое пишется прям там, из-за глюков) нужно делать конфингом. Quote (Mikezar) Чтобы показать изображения: <img image='somePic.jpg'/> А вот самая пикантная новость. Не читайте и не смотрите как делают задание буржуи заграничные, мой вам совет. Они о файле стригентейбле вообще ничерта не знают, ибо ихнию кодировку ANSI понимает игра в полной мере, а русский текст в анси не воспринимается, только в кодировке UTF-8, которая в стандарте идет в missions.sqm и в стриге, но скриптом sqf она не воспринимается, тут и порадокс. Поэтому мы все и делаем через стриг, а англичане нет. Тоже касается и кодировки различных выводов картинок, размеры, гиперссылки и прочие, если вы в стриге напишите: <img image='somePic.jpg'/>, <h1> , <a href="marker:MarkerName "> ссылка </> - это работать не будет! Т.к. вы пишете всё это в стриге (если в самой команде - пожалуйста, только если вы делаете миссию на английском), ибо он не поймет что это за код и соответственно не изобразит текст как надо. А надо вот так: Можете скачать любую миссию заграничную и ради любопытства посмотреть как они там делают, кстати они делают её через прогу, которая для нас бесполезна. Quote (leh2012) 1 Формат SQS не воспринимает русский язык, даже в UTF8 происходит сбой и первая строчка не читается(в SQF работает) Эта правда, но в точности до наоборот. Оба формата понимают, UTF-8, но если sqs вам ничего не скажет, то sqf будет ссылаться на ошибку |#| - это первая строчка. Quote (Mikezar) Ну тут видишь пишется о том, что в Arma 2 его используют только для концовок. Я думаю что по сути можно вообще не ссылаться на стрингтэйбл, и делать все в брифинге. Т.е можно поэксперементировать с этим. Для концовок и всё, ибо толку от этого файла именно в арма-2 уже нет, кстати в представленном примере нет Loser. Стригентейбл нужно делать всегда, это очень удобно и практично, ибо ты запаришься с кодировкой скриптов, которая при постоянных изменений меняется на ANSI - гемор полнейший. Если ты конечно не будешь использовать внешние файлы как класс - можно и без него обойтись, но тут же встает вопрос о озвучке, ибо нужно будет классы писать в дескрипшене и .bikb файлах ид стрига, ибо они тоже utf кодировку не понимают - вылет из игры обеспечен. Качайте мою платформу для создания миссий, там всё это есть. Сообщение отредактировал PIONEER - Суббота, 20.08.2011, 19:25
|
› Суббота
› 20.08.2011
› 21:03
› Сообщение #
Quote (PIONEER) Эта правда, но в точности до наоборот. Оба формата понимают, UTF-8, но если sqs вам ничего не скажет, то sqf будет ссылаться на ошибку |#| - это первая строчка. PIONEER, ты чего-то путаешь. Это в SQS при использовании UTF-8, со включеным SnowScriptErrors вылезает ошибка, а в SQF никакой ошибки не появляется и можно спокойно UTF-8 использовать! Quote (PIONEER) дескрипшене Description.ext спокойно кушает UTF-8, можешь раскрыть мою миссию и посмотреть! Quote (PIONEER) Стригентейбл нужно делать всегда, это очень удобно и практично Согласен, но некоторые надписи, всё же, делаю посредством UTF-8(Названия Actionов и имена персонажей, например) Quote (PIONEER) Качайте мою платформу для создания миссий, там всё это есть. Ну, я всё-же считаю, что чем больше туториалов, тем лучше! И для меня, этот туториал оказался кой-чем полезным PS: Вот ссылка на мою миссию, там UTF-8 спокойно используется в SQF и Description.ext Сообщение отредактировал leh2012 - Суббота, 20.08.2011, 21:10
|
› Суббота
› 20.08.2011
› 21:26
› Сообщение #
PIONEER, интересное начало
Quote (PIONEER) Mikezar, конечно спасибо за перевод, но половину статьи можно удалить сразу, ибо это не актуально сейчас. а чего не всю? Quote (leh2012) Поправка, команда localize вытягивает из стрига ИД, а в стриге ид должен начинаться с STR, тоесть Task Message не покатит, в таком случае надо делать просто как буржуи: tskExample1 = player createSimpleTask [localize " Task Message"]; Вообщем вырвав цитату из текста, вы закончили ею же. не ясно. Quote (PIONEER) taskHint Про эту команду можно просто сказать, без всех этих кодов лишних и прочего, а просто: Да можно в принцице вообще половину всего в кратце написать и народ не поймет откуда что и взято. Quote (PIONEER) Качайте мою платформу для создания миссий, там всё это есть. В следующий раз обязательно начну статью с того, что просто скопирую ссылку на платформу и сошлюсь на нее. Делал я статью для тех, кто многого не знал, не значит что она обязательно должна служить средством к применению. Актуальна это или нет - не важно, взято это с сообщества на сайте BI, так что это по сути является основным в Arma 2. В начале было РУССКИМ ЯЗЫКОМ написано что briefing.html используется в Arma 2 только для концовок. Все. Вообщем еще раз отмечу начало вашего сообщения очень "порадовало". Сообщение отредактировал Mikezar - Суббота, 20.08.2011, 21:34
|
› Воскресенье
› 21.08.2011
› 12:49
› Сообщение #
Quote (leh2012) PIONEER, ты чего-то путаешь. Это в SQS при использовании UTF-8, со включеным SnowScriptErrors вылезает ошибка, а в SQF никакой ошибки не появляется и можно спокойно UTF-8 использовать! Хм, сам попробовал и правда, но я думаю, что это последствие патчей, ибо когда я делал миссии, то постоянно жаловались на первую строчку ошибкой |#| в sqf и скрипт работал и миссия работала как надо, но ошибку выводило, сейчас же в sqs скрипт не работает вовсе, тоесть ссылается на ошибку, причем сразу же выводит первую строчку, на просто |#| + первая строчка. Да и мы уже играем на OA + A2, а не на A2 старых патчей, могло поменяться всё. Поэтому извиняюсь.. Об этом еще топик есть на флешпоинт ру. Quote (leh2012) Description.ext спокойно кушает UTF-8, можешь раскрыть мою миссию и посмотреть! А писать в него кириллический текст удобно? Классы например для озвучки и прочие? Mikezar, на bis wiki информацию предают хорошо, но не всегда она актуальна для нас, просто текст никому не нужен, точнее нужен но не понятен, особенно если начинающим давать информацию времен ОФП которую они могут прочитать в старых справочниках от Ринзы и СМЕРШа, в заблуждение людей вводить не надо. Есть отличный пример брифинга от Leh2012 + пояснения к нему, вот например: http://web-pioneer.at.ua/forum/18-293-1#861 http://web-pioneer.at.ua/forum/18-318-1#951 Я сам научился просто распаковав русскую миссию и посмотрел как там, а то что забугорщина делает вообще не понять. Quote (Mikezar) Поправка, команда localize вытягивает из стрига ИД, а в стриге ид должен начинаться с STR, тоесть Task Message не покатит, в таком случае надо делать просто как буржуи: tskExample1 = player createSimpleTask [localize " Task Message"]; Поправка: в таком случае надо делать просто как буржуи: tskExample1 = player createSimpleTask ["Task Message"] Забыл команду удалить. Quote (Mikezar) В следующий раз обязательно начну статью с того, что просто скопирую ссылку на платформу и сошлюсь на нее. Я лично считаю, что не надо писать одно и тоже по 20 раз только разными словами, ИМХО. Quote (Mikezar) Делал я статью для тех, кто многого не знал, не значит что она обязательно должна служить средством к применению. Просто смотреть на неё что-ли? Пишутся статьи для того, чтоб люди почитав её смогли сами что-то сделать, а не для галочки, или я не прав? "Сделай это проще" |
| |||
Чат сайта |