1.Составь на клочке бумаге список миссий который ты хочешь видеть в игре.
например:
Задание1. Направляйся к лагерю наёмников
Описание: Будь предельно внимателен. Вокруг лагеря полно снайперов.
Вторичное задание: Уничтожь склад с боеприпасами.
Точка на радаре: Лагерь наёмников
Итак вы поняли что миссия состоит из 4-х компонентов:
Название задания
Описание
Название вторичного задания
Место определяемое на карте
Впрочем этими 4-мя компонентами вы можете варьировать. То есть быть вторичному заданию или нет выбирать вам. То же касается и названия точки на карте. В общем всё делается для того
что бы облегчить жизнь игроку, или наоборот усложнить.
2. Скачайте архиватор поддерживающий расширение .PAK
3. Зайдите в папку с игрой, например: D:\ИГРЫ 2\Crysis\Game и скопируйте паку GameData.pak и поместите копию за пределами папки с игрой. То же самое проделайте с папкой Localized. Всё это делается для того что бы избежать фатальных ошибок, вернув назад отдублированные папки на место и восстановив прежние настройки.
4. Распакуйте ALZIPом папку GameData.pak в пустую папку под названием например «Миссии». Её можно расположить там же где находится GameData.pak
Папка «Миссии» необходима вам для того что бы использовать её в качестве черновика для обработки миссий.
5.Зайдите в папку Localized в ней вы увидите архив english.pak. Выполните ту же операцию что описана в пункте 4. Папку можно назвать например «Руссификация»
6.Перейдите к директории D:\ИГРЫ 2\Crysis\Game\Миссии\Libs\UI. То есть вы уже поняли, необходимо зайти в папку в которой распакована наша GameData.pak . В папке UI найдите документ Objectives_new.xml. В нём вы будете программировать ваши миссии. В прочем этот документ нужно тоже отдублировать что бы обезопасить себя от фатальных сбоев.
7. Через контекстное меню (нажать правой кнопкой мыши) выбрать Objectives_new.xml. В Атрибутах снять галочку «Только чтение», применить, ок . Открыть документ Objectives_new.xml при помощи Блокнота.
В конце программного кода после последней миссии прописываем свой код (естественно вы вставляете свою карту и свои задания). Пишем латиницей так как русский шрифт будет иметь в игре не читабельный вид :
<Sergis>
<Objective_01Name="@Sergis_Task_Napravlaisa_k_lagery_naemnikov" Description="@Sergis_Task_Napravlaisa_k_lagery_naemnikov_Text" MapLabel="@Sergis_Task_Napravlaisa_k_lagery_naemnikov_Loc" />
<Objective_02
Name="@Sergis_Task_Unichtozh_tanki_i_vozdushniu_transport_protivnika" Secondary=”true”
MapLabel="@Tanki_Loc" />
</Root>
_Text,– этот текст является описанием задания,
_Loc- этот текст является указанием точки на карте
Незабывайте ставить перед каждым предложением знак @, а между словами знак «_»
Итак , если бы у нас была одна карта в которой 2 миссии то наш код выглядел бы так:
Код:
<Root>
<Название карты>
<Objective_01 Name="Название задания" Description="Описание задания_Text" />
MapLabel="Название точки отображаемой на карте_Loc" />
<Objective_02 Name="Название второстепенного задания" Description="Описание второстепенного задания_Text" Secondary="true" />
MapLabel="Название точки отображаемой на карте_Loc" />
</Название карты>
</Root>
Теперь вы понимаете почему перед <Sergis> я не ставлю <Root> , так как перед нашей картой находится ещё множество карт, а <Root> как вы поняли, ставиться в начале первой карты основной игры, и для того чтобы задания этих карт были доступны они должны сохранять неизменный вид. Наша карта завершает код, поэтому в конце мы ставим </Root>
Всё, можно сохранить документ и перейти следующему пункту.
8. Переходим к директории: D:\ИГРЫ 2\Crysis\Game\Localized\Руссификация\Languages (см.пункт 5), т.е туда куда мы распаковали english.pak
Проверяем через контекстное меню документ game_text_messages.xml, снимаем галочку, если она есть с «Только чтение», применить, ок.
Открываем документ game_text_messages.xml через Microsoft Exel (Важно!)
Необходимо найти место где прописываются русифицированные официальные задания, выглядит примерно так:
Открываем документ Objectives_new.xml из дериктории D:\ИГРЫ 2\Crysis\Game\Миссии\Libs\UI, где находится код наших миссий. Сворачиваем в трей. Код нам понадобится для того чтобы копировать наши задания в руссификатор
Итак у нас активно окно game_text_messages.xml. Мы уже нашли где прописываются задания и соответственный их перевод. Копируем официальный участок кода Например:
переходим до упора в низ откуда начинаются пустые строки , у меня это строка 552, и вставляем туда этот участок кода предварительно выделив всю строку 552, для того чтобы весь текст поместился нужно растянуть строку в области где находится цифра 552. Затем выделяем скопированный участок кода, нажимаем правую кнопку мыши, выбираем «Очистить содержимое».
Можно просто создать пустую строку, без копирования официального текста: для этого необходимо выделить полностью строку 552 и нажать правую кнопку мыши, выбрать «Вставить» (только не путать с простой вставкой которая обозначена конвертиком, необходимая нам вставка находится ниже) , затем появится окошко:
И выбрать «строку»
Затем копируем шаблон нашей первой строки и вставляем её на следующую строку 553. И так далее. Допустим у нас 3 позиции. Значит нам нужно создать 3 строки. Затем нам необходимо объединить эти строки чтобы они смотрелись как одно задание, для этого выделить необходимые строки, правой кнопкой открыть контекстное меню, Формат ячеек, Граница, Внешние, ок.
Всё, теперь в ячейки этих строк можно вставлять текст нашего кода.
Делаем активным окно документа Objectives_new.xml. Копируем текст первого задания (Sergis_Task_Napravlaisa_k_lagery_naemnikov) и вставляем его в строку 552 документа game_text_messages.xml. Текст прописывается в этом поле, предварительно необходимо выделить соответственную ячейку
Тоже самое делаем с описанием первого задания : Sergis_Task_Napravlaisa_k_lagery_naemnikov_Text
Тоже самое делаем с Названием точки отображаемой на карте_:
Sergis_Task_Napravlaisa_k_lagery_naemnikov_Loc
Напротив каждой позиции пишем перевод на русском, это будет выглядеть так:
Если необходимо прописать вторичное задание то в среднюю ячейку необходимо прописать: Secondary
Естественно в вашем коде в документе
Objectives_new.xml должно быть отображено что это задание является вторичным.
Всё. С русификацией наших миссий мы закончили. Сохраняем документ.
9. Теперь необходимо произвести замену Objectives_new.xml который находится в архиве GameData.pak на Objectives_new.xml который находится в папке «Миссии»
Открыть нераспакованный архив GameData.pak (по умолчанию он должен открыться архиватором ALZIP, если нет то выберете ALZIP для его открытия). Перейдём по уже известной директории D:\ИГРЫ 2\Crysis\Game\ GameData.pak \Libs\UI
Удалить через контекстное меню Objectives_new.xml
Зайти обратно в папку UI и нажать кнопочку «Добавить» в панели инструментов ALZIP.
Через появившейся браузер перейти к дериктории D:\ИГРЫ 2\Crysis\Game\Миссии\Libs\UI
Выбрать
Objectives_new.xml и нажать кнопочку «добавить». В дериктории D:\ИГРЫ 2\Crysis\Game\ GameData.pak \Libs\UI появится обновлённый
Objectives_new.xml с нашими заданиями
11. Запускаем SandBox2. Открываем нашу карту. Создаём Mission objective каталога Entity
И погружаем его на карту. В его свойствах выбираем:
Нажмите на кнопочку
Выберете из доступных миссий свои:
Выберете посредством чего будут активироваться ваши задания. При помощи AreaTrigger или Proximity Trigger решать вам.
Например вы решились на AreaTrigger:
Поместить на карту AreaTrigger из Entity\triggers\areatrigger
Создать область при помощи Area \ Shape
Связать AreaTrigger c Областью (Shape)
- выделить уже созданную область на карте, зайти в ее свойства и выбрать Pick:
Затем на карте выбрать AreaTrigger и между областью и триггером протянется линия, а в поле Target Свойств области пропишется AreaTrigger. Таким образом установится связь меду областью и триггером. То есть если мы попадём в зону области то сработает триггер.
12.При помощи Flow Graph создаём сценарий
В свойствах триггера выбрать
Нажать New и в появившемся окошке дать название скрипту. Например «Zadania»
В Flow Graph пропишите свои задания, например: