Вы не вошли.

Уважаемый гость, добро пожаловать на форум: CRYMOD.NET - Портал сообщества CryENGINE. Если вы здесь впервые, то, пожалуйста, прочитайте раздел Помощь. В этом разделе можно подробно ознакомится с функционалом данной системы. Что бы использовать все возможности системы, необходимо зарегистрироваться. Для этого пройдите по ссылке и узнайте подробнее о процессе регистрации. В случае если вы уже зарегистрировались – войдите под своей учётной записью.

1

Четверг, 20 Январь 2011, 20:54

Создание простых миссий для SandBox2

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 пропишите свои задания, например:

Это сообщение было отредактировано 1 раз(а), последнее редактирование в "Don92" (20 Январь 2011, 21:02)


2

Четверг, 20 Январь 2011, 21:23

Всё правильно, ну за исключением этого:

Для архивации можно использовать обычный WinRar, выставляя метод компрессии "zip", после проста заменить в названии файла ".zip" на ".pak".
Файлы, вытащенные из стандартных архивов и далее изменённые, никогда нельзя вставлять обратно. Для этого нужно сделать новый .pak файл с названием "zz_mypak.pak" (или вроде этого) и вставить туда модифицированный файл, сохраняя структуру папок.
Legacy of the Yods



Silverman

Новичок

  • "Silverman" мужчина

Сообщений: 98

Место жительства: г.БЛАГОВЕЩЕНСК

Профессия: студент АмГУ

3

Понедельник, 25 Апрель 2011, 02:51

Большое спасибо!

4

Суббота, 13 Октябрь 2012, 22:29

Exel

Мой ексель не хочет сохранять документ XML в нужном формате а если и сохраняет то в геймплее пропадает HUD (менял только задания в HUD не лазял) Может ты сталкивался с этим ни че не подскажешь? Заранее спасибо)

AndreyFilantrop

Супер Моддер

  • "AndreyFilantrop" мужчина

Сообщений: 1,905

Место жительства: Россия, Москва

Профессия: медицина

5

Суббота, 13 Октябрь 2012, 22:52

Всегда можно открыть текстовым редактором.
АУРАЯМА, AURAYAMA (Crydev.net)–мистический эзотерический шутер от первого лица
AndreyFilantrop портфолио на deviantART

6

Суббота, 13 Октябрь 2012, 23:50

Сохранять надо не как книгу, это точно. Там есть несколько вариантов, и надо смотреть, в каком из них excel сохранит под тот формат, который принимает CryENGINE.
Legacy of the Yods