- •Часть 1: Базовый моддинг
- •Часть 2. Создание карты
- •Часть 3. Редактор.
- •Часть 4. Командные посты
- •Часть 5. Объекты
- •Часть 6: Файл lua
- •Часть 7: Внесение изменений (munging)
- •Часть 2: Продвинутый моддинг
- •Часть 8. Техника
- •Часть 9. Проектирование/барьеры/подсказки (для mswf)
- •Часть 10. Локализация - Localizing
- •Часть 11. Небо - Sky
- •Часть 3: Что дальше
- •Часть 12. Пакетирование - Packaging
- •Часть 13. Как играть с картами, созданными другими людьми
- •Часть 4: Custom Sides – Личные настройки сторон
- •Часть 14. Главная идея
- •Часть 15. Выбор внешнего вида (шкурки)
- •Часть 16. Файлы lua – Настройка
- •Часть 17. Изменение вооружения
- •Часть 5: Юниты (Units Stuff)
- •Часть 18. Добавление местных жителей (Locals) – третья команда (3rd Team)
- •Часть 19. Добавляем Охоту (hunt)
- •Часть 20. Ubermode – Режим эпического сражения
- •Часть 21. Если нужно больше 6 классов
- •Часть 6: Возвращение джедая - The Return of the Jedi
Часть 5. Объекты
На хорошей карте должны быть объекты. Объекты очень важны, и сейчас вы научитесь их добавлять.
Сначала, выберите мир, из которого вы ходите взять объекты. Так как у нас ландшафт Endor, пусть это будет Endor. В папке с активами (assets folder), найдите worlds (миры) и нажмите END. В этот раз выделите ODF и MSH. Скопируйте их в вашу папку world1. Теперь в редакторе Zeroeditor выберите - объекты (objects) в режиме редактирования (Edit Mode). Убедитесь, что уровень (layer) установлен на базовый (BASE). Если вы добавите объекты только на уровне захвата, они не появятся в режимах CTF и тому подобных (позже расскажу об этом режиме подробнее). В общем, левое окно должно выглядеть так:
Щелкните Browse (поиск). Найдите свою папку world1, выберите папку odf. Появится много файлов. Это объекты из Endor. Например, вы хотите, чтобы ваш командный пост находился за деревьями. Найдите end_prop_leaftree. Щелкните. Теперь в окне, убедитесь, что в разделе Place (разместить) указано at the top (поверх). Теперь разместите деревья вокруг пятого командного поста. Это простейшая задача. Вы можете искать другие объекты, и вставлять, что хотите. Можете добавлять папки odf и msh из любого мира и размещать по своему усмотрению в собственном мире. С помощью Multi-Select (выбор нескольких объектов), вы можете выбирать несколько объектов сразу и copy(копировать)/paste(вставлять) их. Попрактикуйтесь с объектами. Это киты, на которых держится уровень. И еще пара советов:
- Убедитесь, что объекты закреплены на поверхности (не плавают).
- Убедитесь, что положение объекта выбрано разумно. Бункер в открытом поле выглядит странно. Также как десяток кораблей, уложенных штабелем один на другой.
- Используйте ящики (crates)/бочки (barrels) и т.д. Они послужат укрытием в ходе битвы.
Часть 6: Файл lua
Теперь, когда мы разобрались с редактором Zeroeditor, взглянем на сценарий программы (скрипт). В этой части мы научимся изменять героев для нашего уровня, и выполнять последний шаг по созданию командных постов.
Перейдите в data_MAP. Теперь загрузите обычную папку (common folder). Затем перейдите по адресу scripts\MAP. Вы должны увидеть 9 файлов. Нам нужно два:
MAPc_con
MAPg_con
Всего два типа файлов с такими именами – один lua, а другой bak. Не пытайтесь редактировать файлы типа bak, работаем только с файлами lua. Файлы, в начале имени которых стоит MAPc, предназначены для битвы клонов (clone wars). Файлы MAPg – для галактической гражданской войны (galactic civil war). Начнем с командного поста. Откройте MAPc_con при помощи блокнота Notepad. Программа Office Word здесь работать не будет, нужна программа типа блокнота Notepad. Вы увидите такое окно:
Это и есть файл LUA. Это то, что заставляет игру работать. Нам нужно изменить две части. Первая часть:
--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}
Здесь нужно добавить одну строку. Скопируйте последнюю строку, чтобы получилось вот так.
--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}
cp4 = CommandPost:New{name = "cp4"}
В последней строке измените cp4на сp5. В итоге должно получиться так:
--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}
cp5 = CommandPost:New{name = "cp5"}
Таким образом мы сообщаем игре, сколько командных постов будет использоваться. Эти действия нужно повторить во всех четырех файлах, которые перечислены. Есть еще одна часть. Прокрутите текст вниз, пока не найдете:
--This adds the CPs to the objective. This needs to happen after the objective is set up
conquest:AddCommandPost(cp1)
conquest:AddCommandPost(cp2)
conquest:AddCommandPost(cp3)
conquest:AddCommandPost(cp4)
Таким образом командные посты устанавливаются в качестве цели (objective), то есть вам нужно захватить их всех, чтобы выиграть. Как и в предыдущем примере скопируйте последнюю строку и замените значение на cp5. В итоге должно получиться следующее:
--This adds the CPs to the objective. This needs to happen after the objective is set up
conquest:AddCommandPost(cp1)
conquest:AddCommandPost(cp2)
conquest:AddCommandPost(cp3)
conquest:AddCommandPost(cp4)
conquest:AddCommandPost(cp5)
Теперь ваш командный пост добавлен. Повторите эти изменения во всех четырех файлах, перечисленных выше.
Теперь приступим к изменению героев. И вот какие изменения мы выполним:
Anakin Mace Windu
Darth Maul Jango Fett
Han Solo Chewbacca
Boba Fett Darth Vader
Теперь переходим в файл с цифровыми объектами (assets). Нужно отыскать закодированные имена этих героев. Перейдите в папку Сторон (sides folder), затем в rep (республика), потом odf. Здесь лежат все файлы республики. Запустите сортировку по имени, найдите раздел, где все указывается, как rep_hero_(hero name - имя героя). Настройка по умолчанию здесь: rep_hero_anakin. Нам нужен Mace Windu. Прокрутите вниз, пока не найдете его имя. Оно записано, как rep_hero_macewindu. Запишите себе где-нибудь. Теперь найдем Jango Fett. Перейдите в папку cis (папка конфедерации), потом в папку odf. Найдите cis_hero_jangofett. Это тоже запишите. А теперь, что касается общей папки со всеми героями (all folder). Найдите all_hero_chewbacca. Запишите. И последнее по очередности, но не по значению – папка империи (imp folder). Найдите imp_hero_darthvader. Итак, у нас есть кодовые имена нужных нам героев:
Rep_hero_macewindu
Cis_hero_jangofett
All_hero_chewbacca
Imp_hero_darthvader
Не так уж сложно, правда? Хорошо, теперь вернемся к файлам сценария (файлам скрипта) (ModID\common\scripts\ModID). Снова войдите в MAPc_con. Перейдите к следующему тексту:
ReadDataFile("SIDE\\rep.lvl",
"rep_inf_ep3_rifleman",
"rep_inf_ep3_rocketeer",
"rep_inf_ep3_engineer",
"rep_inf_ep3_sniper",
"rep_inf_ep3_officer",
"rep_inf_ep3_jettrooper",
"rep_hover_fightertank",
"rep_hero_anakin",
"rep_hover_barcspeeder")
ReadDataFile("SIDE\\cis.lvl",
"cis_inf_rifleman",
"cis_inf_rocketeer",
"cis_inf_engineer",
"cis_inf_sniper",
"cis_inf_officer",
"cis_inf_droideka",
"cis_hero_darthmaul",
"cis_hover_aat")
Так уровню сообщается, какой файл нужно загрузить для игры. Как видите, загружаются юниты (units), техника (vehicles), и герои (heroes). Но здесь указано ‘rep_hero_anakin’ и ‘cis_hero_darthmaul’. Нам нужны другие герои. Поэтому здесь вводим тех героев, которые нам требуются. Это должно выглядеть таким образом:
ReadDataFile("SIDE\\rep.lvl",
"rep_inf_ep3_rifleman",
"rep_inf_ep3_rocketeer",
"rep_inf_ep3_engineer",
"rep_inf_ep3_sniper",
"rep_inf_ep3_officer",
"rep_inf_ep3_jettrooper",
"rep_hover_fightertank",
"rep_hero_macewindu",
"rep_hover_barcspeeder")
ReadDataFile("SIDE\\cis.lvl",
"cis_inf_rifleman",
"cis_inf_rocketeer",
"cis_inf_engineer",
"cis_inf_sniper",
"cis_inf_officer",
"cis_inf_droideka",
"cis_hero_jangofett",
"cis_hover_aat")
Понятно? Теперь игре дается команды загрузить героев. Прокрутите текст до:
SetHeroClass(CIS, "cis_hero_darthmaul")
SetHeroClass(REP, "rep_hero_anakin")
Здесь игре указывается, кого назначить героями. Замените имена в строках на наших героев, итак здесь написано:
SetHeroClass(CIS, "cis_hero_jangofett")
SetHeroClass(REP, "rep_hero_macewindu")
Теперь этот файл готов. Переходим в Galactic Civil War One (первую гражданскую галактическую войну). Выполните те же действия, за исключением замены героев на mace windu и jango fett, замените их на Chewbacca и darth vader. Все делается по аналогии, кроме того, что исходные варианты, который мы меняем – это boba fett и han solo, а не Anakin и maul.
Когда закончите, считайте, мы разобрались с файлами LUA, оставим их на время. Не буду описывать более сложные операции с файлами LUA в этом руководстве. Файлы LUA помогают создавать стороны по желанию пользователя, добавлять цели для миссий и делать другие классные вещи.
