Военный конструктор. Редактор Operation Flashpoint: 1985 Cold War Crisis. Часть вторая: Справочник генерала, раздел "Как инструктировать подчиненных"
Где взять: встроен в игру Возможности: 40% игровых После прочтения данной статьи и с учетом предыдущих: 80% игровых Сложность освоения: в зависимости от вашего желания. От очень легкого до экстремально сложного
Приветствую всех, кто неравнодушен к феноменальному Flashpoint! Надеюсь, вы уже разобрались в тоннах информации, вылившейся на вашу голову в предыдущих двух номерах, и смогли вытащить из этих тонн нужное именно вам. И на основе этого полезного создали свою миссию. Возможно, даже не одну. Как насчет того, чтобы продолжить банкет? Я в этом и не сомневался. Сегодня я расскажу о работе с внешними файлами, отвечающими за описание миссии (брифинги, установки и т.п.). Знаю, что обещал больше (звуки, музыку и анимацию), но размеры статьи не позволили. Кстати, по поводу обещаний: полный перечень команд для Flashpoint, обещанный в прошлом номере, ищите на диске. Его автором был Lusty Pooh, сайт которого, как вы помните, закрылся. Давно обещанный FAQ тоже вполне реален и находится перед вами (ищите его на врезках). Вопросов пока немного, но главное — они есть. Ведь все только начинается, у большинства-то и самого OFP нет. Пишите, на все вопросы всегда отвечу.
Внешние файлы
Под внешними файлами понимаются файлы, помещаемые в директорию миссии. Миссии не в финальном варианте (.pbo), а в исходном (X:\Operation Flashpoint\Users\ваше имя\missions\имя миссии.название территории). Все файлы создаются в обычном "Блокноте" (Notepad). Далее пойдет описание структуры каждого из подобных файлов, с объяснением назначения, естественно. Файл overview.html Данные файлы отвечают за то, как выглядит ваша миссия в общем списке. Здесь содержится та информация, которая высвечивается на правой странице блокнота, когда вы кликаете мышкой по названию миссии. Как вы уже поняли, файл представляет собой обычный гипертекстовый документ, так что, если вы знакомы с простейшими командами HTML, разобраться во всем вам не составит труда. Ниже приводится пример, в соответствии с которым вы можете создавать все подобные файлы.
[Здесь пишутся записи солдата, которые доступны в блокноте в закладке Note.]
There shouldn't be any armor around, just some Red infantry. And if I keep my head down, I'll have the element of surprise...
[Cам брифинг — то, что отображается в закладке Plan.]
Intel reports that a high-ranking Russian officer, in possession of some highly sensitive documents, is visiting troops in La Trinite.
You're near the town of La Trinite. [текст — так выглядит ссылка на определенный участок карты (см. ниже). В данном примере при клике на слово near карта передвинется к маркеру Start. Маркеры наносятся с помощью редактора.]
Take the car and report to your commander in Dourdan Этот пример показывает описание задания с ссылкой. Задание — это как раз то, что нужно выполнить игроку. Самое первое задание должно обозначаться как текст, а последующие будут нумероваться OBJ_1,OBJ_2 и т.д. О том, что задание под определенным номером выполнено, должен сообщить определенный activation у триггеров и вейпоинтов в игре (подробнее читайте в сентябрьском номере). Для этого должна быть дана команда "номер задания (цифра)" ObjStatus "Done". Далее приводится несколько примеров использования "заданий". Внимание! Примеры приведены в варианте исходника, т.е. так, как они пишутся в файле mission.sqm, а не в окошках редактора. Если же вы пишете в редакторе, то по названиям и так все понятно (одно примечание: в редакторе все значения пишутся в обычных кавычках, а не двойных).
Закончить игру, если выполнены все задания: class item5 { position[]={5583,8,4065}; timeoutMin=6; timeoutMid=6; timeoutMax=6; age="UNKNOWN"; type="END1"; — первый вариант завершения миссии; их может быть несколько. expCond="objective0 and objective1 and objective2"; expActiv="aP sideChat ""Objectives all complete"""; class Effects { }; synchronizations[]={}; };
Задание 1 выполнено, если убиты все снайперы: class item2 { position[]={8165,8,3160}; —позиция не имеет значения. age="UNKNOWN"; expCond="count units sniperFodderGrp == ""not alive _x"" count units sniperFodderGrp"; expActiv="aP globalChat ""Nice work Bravo, they are all dead.""; ""0"" objstatus ""DONE""; class Effects { }; synchronizations[]={}; }; [В принципе, вы можете сделать любое условие сами, используя команды из прошлого номера.]
The operation was successful, and the documents are ours. [Здесь записывается де брифинг — то, что появляется в блокноте после выполнения или провала миссии. Может быть несколько вариантов миссии. В данном случае пример обозначается End2 — значит, этот текст появится, если игрок закончит миссию по второму варианту.]
Теперь рассмотрим то, что не было затронуто в данном большом примере. Например, назначение основных (Primary) и побочных (Secondary) заданий. Можно назначить те задания, которые игрок должен выполнить обязательно, и те, за которые он просто получит дополнительные очки. Пишется это так: Primary/Secondary : Kill all snipers in the surrounding area Также было не затронуто назначение очков за выполненное задание. Для этого используется команда addRating в поле activation. Пример: aP addRating 1000"; — aP получит 1000 очков. С написанием брифингов разобрались, но теперь стоит вспомнить об обещании, данном еще в сентябрьском номере: о разборе последнего раздела редактора под названием Marker, который не был описан. Время настало.
Marker
Данный раздел редактора предназначен для нанесения специальных пометок на карту. Пометки используются как при просмотре карты (визуально видны), так и при составлении брифингов. Нажмите F6 и кликните два раза на нужном участке карты. Появится окно Insert Marker: Name — имя маркера. Имя используется для ссылки на маркер — например, в брифинге. Затем нужно задать тип маркера. Существует несколько типов маркеров, разберем их подробно. Icon Маркеры в виде иконки. Objective — прицел, обычно обозначает одно из заданий. Flag — флаг, просто флаг. Dot — точка. Destroy — прицел с двойной обводкой. Start — кружок со стрелкой, направленной от круга; обычно так обозначают стартовую позицию. End — кружок со стрелкой, направленной в круг. Так обычно обозначают место окончания миссии. Warning — восклицательный знак — опасная зона. Join — кружок с двумя стрелками, обозначает точку сбора. Pick Up — кружок со стрелкой внутри, обозначает точку подбора. Unknown — вопросительный знак — неизвестная зона. Marker — крест. Нужно ли что-то отметить. Arrow — стрелка. Используется для обозначения передвижений войск. Empty — перечеркнутый круг. Rectangle Маркеры в виде квадрата. Поскольку квадрат — он и в Африке квадрат, то под видом маркера данного типа понимают заполнение квадрата. Solid — полное заполнение. Horizontal — горизонтальные полосы. Vertical — вертикальные полосы. Grid — сетка. Forward diagonal — диагонали слева направо. Backward diagonal — диагонали справа налево. Grid diagonal — сетка из диагоналей. Cross — кресты. Ellipse Эллипсы также различаются заполнением. Тут все понятно: заполнение обозначается цветом, которым оно будет сделано. Color — цвет маркера; Default — по умолчанию; Black — черный; Red — красный; Red Transparent — красный прозрачный; Green — зеленый; Green Transparent — зеленый прозрачный; Blue — синий; Yellow — желтый; White — белый. Размеры маркера устанавливаются тремя параметрами. Axis A — по горизонтали. Значение параметра означает, во сколько раз маркер будет больше стандартного. Например, если стоит цифра 5, то маркер будет в пять раз больше оригинального по горизонтали. Axis B — то же самое, только по вертикали. Angle — угол поворота маркера. Как у юнитов Азимут. Причем, как и юниты, маркеры можно вращать с помощью мышки, предварительно зажав Shift. Text — текст, который пишется на карте рядом с маркером. Все, теперь вы умеете наносить маркеры, но один недостаток во всем этом вы уже могли заметить. Какой? Подскажу ответ: они статичны. Что, если на миссии вдруг что-то произойдет и игроку нужно дать команду отступить к определенной позиции? Ведь не показывать же маркер экстренной эвакуации на карте в начале миссии, когда в списке задач значится бравая атака, а вовсе не трусливый забег на несколько километров от превосходящих сил противника! На помощь в таких случаях приходят динамические изменения маркеров. Динамическое изменение маркера осуществляется командой SetMarkerType в поле activation: синтаксис "имя маркера" SetMarkerType "тип маркера". Пример: Marker1" SetMarkerType "Destroy" — маркер Marker1 приобрел тип Destroy. С помощью этой команды можно сделать появление нового маркера, о чем я и говорил выше. Для этого нужно создать пустой маркер (Empty), а затем изменить его на что-нибудь другое. Также можно маркеры перемещать: "Marker1" SetMarkerPos [3400,5500,4] — маркер Marker1 переместится в координаты 3400 по оси Х и 5500 по оси Y. 4 — высота расположения, но для маркера она не имеет значения. С маркерами и брифингами разобрались — флаг вам в руки.
Файл description.ext
В данном файле прописываются установки для всей структуры миссии. Данные установки прописываются только в случае, если они вам нужны. Можете вообще не создавать этот файл... Как и остальные, собственно... Параметры загрузки onLoadIntro="Watch intro" — надпись, которая появляется перед Intro (при условии существования такового). onLoadMission="Central part of Malden, near the Russian airbase in Lolisse" — надпись во время загрузки миссии, обычно используется для обозначения места действия. onLoadIntroTime = true — показывать полоску загрузки (true) или нет (false). Параметры начисления очков minScore=200 — минимальное количество; avgScore=2500 — среднее; maxScore=6000 — максимальное. Параметры респавна Используется преимущественно в мультиплеерных миссиях. respawn="BASE" — тип респавна (примечание: респавнятся только юниты с установкой playable). NONE — респавн отсутствует; BIRD — игрок вселяется в птицу (по умолчанию); INSTANT — после смерти игрок появляется на том же месте; BASE — после смерти игрок появляется возле указанного маркера. Маркер должен быть формы эллипса (ellipse) и называться Respawn_West (НАТО), Respawn_East (СССР), Respawn_Guer (повстанцы) и Respawn_Civi (мирные жители); SIDE — игрок после смерти вселяется в любого из оставшихся в живых дружественных солдат, но только если им, живым, управляет компьютер; GROUP — игрок после смерти вселяется в любого из оставшихся в живых дружественных солдат в его отряде, но только если им, живым, управляет компьютер. respawndelay=5 — задержка во времени между смертью и появлением в точке респавна. Параметры отображения debriefing = 1 — отображать (1) или нет (0) блокнот с де брифингом после завершения миссии. showWatch = 1 — присутствуют у игрока часы (1) или нет (0). showCompass = 1 — присутствует у игрока компас (1) или нет (0). showRadio = 1 — показывать радиосообщения (1) или нет (0). showWarrant = 1 — показывать приказы старшего по подразделению (1) или нет (0). showNotepad = 1 — показывать блокнот с заданием (брифингом) во время миссии (1) или нет (0). showGPS = 1 — отображать GPS во время миссии (1) или нет (0). showMap = 1 — отображать карту во время миссии (1) или нет (0). Создание уникального юнита class CfgIdentities — данный класс определяет уникальность юнита. class Officer — имя данного класса обращается в mission.sqm к юниту Officer. name = "My Soldier"; — назначенное имя юнита. face = "Face33"; — номер текстуры лица. glasses = "none"; — есть ли на нем очки: none — отсутствуют; spectacles — обычные очки;sunglasses— солнечные очки. speaker = "Adam"; — голос юнита: Adam, Dan, George, Greg, John, Jonah, Marc, Patrick, Paul, Peter, Rich, Rob, Ted, Tom. pitch = 1.00; — тональность голоса: 1.0 — стандартный; <1.0 — ниже; >1.0 — выше. Параметры времени Только мультиплеер. titleParam1 = "Time:"; — установка времени до завершения игры. valuesParam1[] = {10000, 300, 600, 900, 1200, 1500, 1800, 2700, 3600, 7200}; — возможные значения в секундах. defValueParam1 = 1800; — значение по умолчанию. textsParam1[] = {"Unlimited", "5 min", "10 min", "15 min", "20 min", "25 min", "30 min", "45 min", "1 hour", "2 hours"}; — описание для каждого значения. Параметры счета Только мультиплеер. titleParam2 = "Score to win:"; — установка очков для завершения игры. valuesParam2[] = {10000, 5, 7, 10, 15, 20, 25, 30}; — возможные значения. defValueParam2 = 5; — значение по умолчанию. textsParam2[] = {"Unlimited", 5, 7, 10, 15, 20, 25, 30}; — описание значений. Параметры доступного оружия Определяет доступность оружия перед миссией (закладка снаряжения в блокноте). Полный список оружия смотрите в предыдущем номере. {class M16{count = 1;— количество (в штуках). {class Magazines {count = 1; — то же самое с магазинами. На описании этого крайне полезного файла можно закончить. Правда, одна тема в данном контексте не была затронута — собственные звуки и музыка. Все потому, что сия тема требует более внимательного рассмотрения. Мы бы с удовольствием поместили информацию в этот номер, но журнал не резиновый, приходится с этим мириться. Итак, в следующем номере ждите: добавление звука и музыки, создание анимации и нанесение на карту недокументированных объектов. На диске вы найдете описание всех команд (см. предыдущий номер) и миссию-пример на тему описания брифингов с исходниками. Для того чтобы посмотреть действие файлов с описанием брифинга, загрузите исходники в редактор и выберите Export to single missions, затем зайдите в Single Player и выберите соответствующую миссию. Жмите Play и смотрите.
Flashpoint Mission Editor FAQВ: Достала 60 Hz развертка в Operation Flashpoint! Когда играешь, оно незаметно в движении, но когда сидишь в этом монотонном редакторе, глаза очень быстро утомляются. Можно как-нибудь повысить частоту? О: Безвыходных ситуаций не бывает, и в данной ситуации выход тоже имеется. Данные инструкции применимы не только к OFP. Я встречал многих людей, которые маялись с подобной проблемой в других играх, но ничего с этим поделать не могли. Они просто не знали простейших вещей. Внимание! Я не отвечаю за какие-либо последствия, к которым могут привести перечисленные ниже действия. Ничего страшного, по идее, произойти не должно, но на всякий случай предупредил. Итак, перво-наперво вам нужно знать, какую максимальную развертку поддерживает ваша карта в данном разрешении и, что немаловажно, поддерживает ли такие же параметры ваш монитор. Далее, идете в X:\Windows\System\ и ищете программку под названием DxDiag. Это составная часть DirectX, предназначенная для его диагностики (то есть проверки работоспособности). Среди появившихся закладок открываем More Help ("Если ничего не помогло" — для русских "Виндов") и там жмем кнопку Override ("Перекрыть"). Здесь можно перекрыть частоту обновления для Direct Draw. Снимаем отметку с Default ("По умолчанию") и выставляем нужное значение (например, 100 для 100 Hz). Все, можете больше не беспокоиться за состояние ваших глаз. В: Подскажите, пожалуйста, какие-нибудь идеи для создания миссий для "Флешпоинта". О: Вот с чем-чем, а с этим я помогать вам не буду. Создание миссии — это дело сугубо личное. Прежде всего — ваша мысль, а потом уже ее техническое воплощение. С последним я вам помогаю по мере сил, а вот мысли — они ваши. Научиться тыкать кнопки каждый может, а создать, используя свои знания, что-нибудь стоящее — увы и ах. Тут важно живое воображение и банальное чувство вкуса. Все. Остальное приложится. Главное — начать, а там идеи сами пойдут в голову. В: Подскажите сайт по редактированию миссий, пожалуйста. О: Тут нужно ориентироваться на то, что вам нужно — информация или ее понятность. Ели первое, то вы можете пойти на очень хороший англоязычный ресурс Operation Flashpoint Editing Center (www.concept-5.com/ofp/), который продолжает славное дело Lusty Pooh'а. Тут опубликованы материалы старого сайта, с дополнениями, а также регулярно появляются новые. Одним словом, рекомендую. Те, кому важны понятность и доступность информации, отправляются на http://flashpoint.xaos.ru, где лежат русские переводы сайта Lusty. Но беда в том, что переводы там именно того, самого первого сайта: многое устарело и не предоставляет полной информации. К тому же у самого сайта бывают некоторые проблемы с доступностью. Другими словами, в даун иногда уходит. И все же из Рунета рекомендую именно этот сайт. Еще вы можете посетить www.flashpoint.ru — там очень хороший форум по редактированию, где вы всегда можете задать свои вопросы.
1436 Прочтений • [Военный конструктор. Редактор Operation Flashpoint: 1985 Cold War Crisis. Часть вторая: Справочник генерала, раздел "Как инструктировать подчиненных"] [19.05.2012] [Комментариев: 0]