Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Star_Wars_Battlefront_modding_tutorial_3.5 ПЕРЕВОД.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
28.14 Mб
Скачать

Часть 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)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]