- •Часть 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: Юниты (Units Stuff)
В этом разделе речь пойдет о юнитах. А именно мы рассмотрим:
- Добавление в вашу карту местных жителей ( Locals)
- Добавление режима охоты (Hunt Mode)
- Как добавить более 32 AI
- Как добавить более 6 типов юнитов (Units Types)
Будет весело.
Часть 18. Добавление местных жителей (Locals) – третья команда (3rd Team)
Все они вам уже знакомы. Jawas на Tatooine, Большие Мерзопакостные Свиньи (Big Ugly Pigs) во дворце Джаббы (Jabba’s Palace), Geonosians на Geonosis, Gungans на Naboo, и т.д. Теперь я расскажу, как добавлять местных жителей на вашу карту. Допустим, вы захотите, чтобы по округе шныряли Wampas и убивали всех подряд. Да будет так.
В данном руководстве мы будем добавлять Гаморийских Стражей (Gamorrean Guards) (больших мерзопакостных свиней). Сначала откройте вашу карту в Zeroeditor. Надеюсь, с базовыми функциями вы уже разобрались. В данной части вам понадобиться знать, как создавать командный пост. Итак, создайте новый командный пост. Вместо обычных имен CP1, CP2, CP3, присвойте ему имя “Local_cp1”.
В левом окне введите следующее:
Local_capture1
Local_spawn1
Теперь создаем spawn path (маршрут размещения) и capture region (участок захвата).
ПРИМЕЧАНИЕ – Если хотите исключить возможность захвата командного поста (чтобы ваши аборигены сидели там до конца времен),тогда просто не создавайте участок захвата (capture region).
Готово.
Идите в ваш файл lua (data_MAP/common/scripts/MAP). Найдите вот такую часть:
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")
Помните, что задается этими командами? Загрузка юнитов - Loading the units. Запомните.
Мы добавляем Gamorreans, так что нужно их загрузить.
Идите в assets/sides. Найдите сторону под названием ‘gam’. Откройте файл req.
Вот что у него внутри:
ucft
{
REQN
{
"lvl"
"gam_inf_gamorreanguard"
}
}
Небольшой файл req, правдрь мы знаем кодовое имя для наших свиней: ‘gam_inf_gamorreanguard’.
Возвращаемся в файл lua. Скопируйет сторону cis (cis side), чтобы получилось вот так:
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")
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")
Вторую часть cis меняем на следующее:
ReadDataFile("SIDE\\gam.lvl",
"gam_inf_gamorreanguard")
Видите, что конкретно мы изменили? Теперь свиньи загружены.
Нужно добавить их командный пост. Идите в верхнюю часть вашего файла lua, отыщите такое место:
--Так задаются командные посты. Это должно произойти первым делом
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}
--Так устанавливается фактическая цель. Это должно случиться после того, как будут заданы командные посты (cp)
conquest = ObjectiveConquest:New{teamATT = ATT, teamDEF = DEF,
textATT = "game.modes.con",
textDEF = "game.modes.con2",
multiplayerRules = true}
--Так командные посты добавляются в число целей. Это должно случиться после того, как будет задана цель
conquest:AddCommandPost(cp1)
conquest:AddCommandPost(cp2)
conquest:AddCommandPost(cp3)
conquest:AddCommandPost(cp4)
Помните, как добавлять командные посты?
Нужно поработать с двумя частями:
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}
и
conquest:AddCommandPost(cp1)
conquest:AddCommandPost(cp2)
conquest:AddCommandPost(cp3)
conquest:AddCommandPost(cp4)
Первая часть добавляет командный пост в игру. Вторая часть добавляет его в число целей. Все командные посты, указанные во второй части, должны быть захвачены, чтобы запустить отчет таймера победного времени.
Добавьте свой командный пост. Помните, как он называется? “Local_cp1”.
Добавьте его в обе части. Но помните, что во второй части вы добавляете число. Так что не “local_cp1”, а “cp5”, потому что это пятый командный пост. Число (количество) указывается в первой части командного поста. Понятно? Должно выглядеть так:
cp5 = CommandPost:New{name = "local_cp1"}
То есть так сообщается BF2: “Эй, этот новый командный пост – это командный пост номер 5, а в редакторе zeroeditor, он называется ‘local_cp1’.”
Теперь эта часть файла lua должна выглядеть так:
--Так задаются командные посты. Это должно произойти первым делом
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}
cp5 = CommandPost:New{name = "local_cp1"}
--Так задается фактическая цель. Это должно случиться после того, как будут заданы командные посты
conquest = ObjectiveConquest:New{teamATT = ATT, teamDEF = DEF,
textATT = "game.modes.con",
textDEF = "game.modes.con2",
multiplayerRules = true}
-- Так командные посты добавляются в число целей. Это должно случиться после того, как будет задана цель
conquest:AddCommandPost(cp1)
conquest:AddCommandPost(cp2)
conquest:AddCommandPost(cp3)
conquest:AddCommandPost(cp4)
conquest:AddCommandPost(cp5)
ПРИМЕЧАНИЕ – Если хотите сделать свой пост неприступным, просто удалите эту строку:
conquest:AddCommandPost(cp5)
Хорошо, мы загружаем их в игру, и их командный пост у нас установлен. Нужно просто создать новую группу для них.
В своем файле lua перейдите к такому месту:
SetupTeams{
rep = {
team = REP,
units = 20,
reinforcements = 150,
soldier = { "rep_inf_ep3_rifleman",9, 25},
assault = { "rep_inf_ep3_rocketeer",1, 4},
engineer = { "rep_inf_ep3_engineer",1, 4},
sniper = { "rep_inf_ep3_sniper",1, 4},
officer = {"rep_inf_ep3_officer",1, 4},
special = { "rep_inf_ep3_jettrooper",1, 4},
},
cis = {
team = CIS,
units = 20,
reinforcements = 150,
soldier = { "cis_inf_rifleman",9, 25},
assault = { "cis_inf_rocketeer",1, 4},
engineer = { "cis_inf_engineer",1, 4},
sniper = { "cis_inf_sniper",1, 4},
officer = {"cis_inf_officer",1, 4},
special = { "cis_inf_droideka",1, 4},
}
}
Запомните, эта часть задает две команды по умолчанию.
Теперь под этой частью, но перед той частью, где мы задаем героев, мы добавляем новую часть. Я объясню.
SetTeamName (3, "pigs")
Здесь задается имя команды. Пишите, какое хотите. Я написал свиньи - pigs.
AddUnitClass (3, "gam_inf_gamorreanguard", 10,15)
Эта часть сообщает новой команде, какого юнита нужно включить. В данном случае, только наши Гаморрианские стражи (Gamorrean guard).
SetUnitCount (3, 15)
Здесь задается, сколько юнитов может одновременно находиться в игровом поле. Первое число – это минимальное допустимое количество, а второе – максимальное.
AddAIGoal(3, "Deathmatch", 100)
SetTeamAsEnemy(ATT,3)
SetTeamAsEnemy(3,ATT)
SetTeamAsEnemy(DEF,3)
SetTeamAsEnemy(3,DEF)
В этой части задается, к кому эта команда будет настроена дружественно. Здесь я установил всех, как врагов.
Первая строка определяет, будет ли сторона республики (rep)/империи (imp) относиться к ним дружелюбно.
Во второй строке определяется, будет ли эта команда относиться дружелюбно к команде республики (rep)/империи (imp).
В третьей строке определяется, будет ли команда конфедерации (cis)/общая команда (all) относиться к ним дружелюбно.
В четвертой строке определяется, будет ли эта команда относиться дружелюбно к команде повстанцев/общей команде.
Можно использовать “enemy” (враг) или “friend” (друг). Разрешается любая комбинация.
Хорошо, эта часть вашего файла lua должна выглядеть вот так:
SetupTeams{
rep = {
team = REP,
units = 20,
reinforcements = 150,
soldier = { "rep_inf_ep3_rifleman",9, 25},
assault = { "rep_inf_ep3_rocketeer",1, 4},
engineer = { "rep_inf_ep3_engineer",1, 4},
sniper = { "rep_inf_ep3_sniper",1, 4},
officer = {"rep_inf_ep3_officer",1, 4},
special = { "rep_inf_ep3_jettrooper",1, 4},
},
cis = {
team = CIS,
units = 20,
reinforcements = 150,
soldier = { "cis_inf_rifleman",9, 25},
assault = { "cis_inf_rocketeer",1, 4},
engineer = { "cis_inf_engineer",1, 4},
sniper = { "cis_inf_sniper",1, 4},
officer = {"cis_inf_officer",1, 4},
special = { "cis_inf_droideka",1, 4},
}
}
SetTeamName (3, "pigs")
AddUnitClass (3, "gam_inf_gamorreanguard", 10,15)
SetUnitCount (3, 15)
AddAIGoal(3, "Deathmatch", 100)
SetTeamAsEnemy(ATT,3)
SetTeamAsEnemy(3,ATT)
SetTeamAsEnemy(DEF,3)
SetTeamAsEnemy(3,DEF)
Ну, вот! Наша новая команда готова!
Сохраните изменения, и любуйтесь, как свиньи убивают всех вокруг!
А если хотите, чтобы все это происходило в эпоху GCW, нужно внести те же изменения в соответствующий файл lua.
Теперь, вы умеете добавлять местное население. Ты становишься, все искуснее в моддинге, мой юный ученик.
В следующей части вы узнаете, как добавлять в карту режим охоты (hunt mode)
