Итак, давайте продолжим создание нашего полноценного уровня.
Я добавил немного патронов и два слаба (убедитесь, что в настройках слабов в поле "Closed" стоит "False") во вторую зону, рекомендую сделать также.
Кстати, вы же помните, что в оригинальных уровнях размещены секреты? Так почему бы и не добавить сюда один такой? Зона секрета называется "SecretArea.CBox" и находится она в папке "Gameplay". Масштабируется и размещается этот темплейт точно так же, как и AmbushForPlayer, только настраивать ничего не надо - как только игрок окажется внутри этой зоны,
так сразу же один секрет будет засчитан. Но ведь в зоне с секретом также и должно что-то быть, не так ли? Так давайте разместим ещё и священный предмет! Священные предметы находятся в папке "Treasures" под названиями: Host1.CItem, Host2.CItem (это золотые кресты), Cup1.CItem и Cup2.CItem (это золотые кубки). Заметьте, что когда священный предмет появится, он сразу же как обычный физический объект упадёт на землю, поэтому будте аккуратны при размещении. Вот так я расположил этот секрет:
Также нужно разместить конец уровня, как и на всех других нормальных уровнях. Этот темплейт называется "EndOfLevel.CItem", а находится он в папке "Gameplay". Настраивается и ведёт он себя также, как и чекпоинт, поэтому при размещении не забудьте в поле "Frozen" поставить на "True" в настройках этого темплейта. Разместите его примерно как здесь:
Заодно поставьте AmbushForPlayer:
И четыре спаунера, настроив каждый на появление Sado солдатов с одним автоматом.
И настраиваем AmbushForPlayer:
Из новых команд тут только есть "OpenAllSlabs" - эта команда открывает все слабы на уровне.
Всё, с геймплеем покончено. Можете сохранять карту и проверять её.
Теперь осталось лишь настроить глобальные настройки уровня. В "Game Objects" в выпадающем списке "_CLevel" нажмите два раза на "FirstLevel". Вы перейдёте к настройкам самого уровня.
Acoustics - Звуки издаваемые при ходьбе
Ambient - Эмбиентовое освещение. Просто цвет освещения.
BloomFX - Здесь можно настроить эффект "Bloom'а". Я обычно ставлю "LuminanceThreshold" на 0.5, а "Multiplier" на 2.
Но рекомендую поиграться немного с этими параметрами и настроить это под себя.
DetailMap - Детеил текстура для всего уровня (детаил текстура - это текстура всяких царапин, трешин и помятостей, которая накладывается на почти все поверхности для наибольшей реалистичности)
DirLight - Направление и цвет "солнца", от настроек этого параметра зависит освещение и направление теней от персонажей.
FarClipDist - Радиус обрезания видимости, нужно для оптимизации. Если уровень большой и у вас он тормозит - то рекомендую понизить это значение.
Fog - Здесь настраивается туман
Map - Геометрия уровня
Music - Здесь указывается музыка
NormalMap - Путь к текстурам нормалей, необходимо для воды (а для остального и не работает)
Overbright - Рекомендую ставить этот параметр на "True" чтобы настройки блума также повлияли и на геометрию уровня.
Scale - Масштабирование карты. Рекомендуется масштабировать в 3D моделлере во избежание глюков и неадеквата.
SkyDome - Настройки неба
Water - Настройки для всех поверхностей воды
Давайте настроим небо. Поскольку с нуля настраивать его очень долго, то на этот раз давайте просто скопируем его из "Заброшенной фабрики" к нам в уровень. Найдите файл "FirstLevel.CLevel" у себя в папке с игрой (Например, D:\Painkiller\Data\Levels\FirstLevel\FirstLevel.CLevel) и скопируйте туда следующее:
o.SkyDome.Map = "c3l2_factorysky.mpk"
o.SkyDome.Layer1.Tex1 = "c3l2_factorysky"
o.SkyDome.Layer1.Tex_Mask = "_black"
o.SkyDome.Layer1.Tex_LMap = "_gray"
o.SkyDome.Layer1.Tex2 = "_red"
o.SkyDome.Layer3.Tex2PanUSpeed = 0.01
o.SkyDome.Layer3.Tex1 = "_alpha_zero"
o.SkyDome.Layer3.Tex_Mask = "c3l2_factoryskybulbmasker"
o.SkyDome.Layer3.Tex2TileV = 3
o.SkyDome.Layer3.Tex_LMap = "_gray"
o.SkyDome.Layer3.Tex2PanVSpeed = 0.002
o.SkyDome.Layer3.Tex2 = "c3l2_factoryskyclouds2"
o.SkyDome.Layer3.Tex2TileU = 3
o.SkyDome.LowQuality.Map = "skylow.mpk"
o.SkyDome.LowQuality.Tex = "lowquality\\c3l2_factoryskygf2"
o.SkyDome.LowQuality.Angle = 90
o.SkyDome.LowQuality.Height = -2
o.SkyDome.Layer2.Tex1 = "_alpha_zero"
o.SkyDome.Layer2.Tex_Mask = "_bulb_masker"
o.SkyDome.Layer2.Tex_LMap = "_gray"
o.SkyDome.Layer2.Tex2 = "c3l2_factoryskytop"
Также скопируйте туда настройки освещения и тумана. И музыку.
o.Ambient = Color:New(90,96,116,0)
o.Fog.End = 1001
o.Fog.Start = 350
o.Fog.Mode = 2
o.Fog.Color = Color:New(163,111,92,0)
o.DirLight.Color = Color:New(214,140,73,0)
o.DirLight.Dir = Vector:New(-0.22,-0.68,0.73)
o.Music.Battle[1] = "c3l2_factory_fight"
o.Music.Ambient[1] = "C3L2_Factory_Music_01"
Вот так всё это должно выглядеть в итоге:
Теперь осталось последнее - начальные характеристики и условие для получения Карты Таро.
Всё это находится в папке с уровнем под названием "вашуровень.lua". Просто создайте там такой файл и скопируйте следующее:
function FirstLevel:OnPlay(first)
if first then
--Player.EnabledWeapons = {"PainKiller","Shotgun",nil,nil}
Player.Ammo =
{
Shotgun = 0,
MiniGun = 0,
Grenades = 0,
Stakes = 0,
IceBullets = 0,
Shurikens = 0,
Electro = 0,
Rifle = 0,
FlameThrower = 0,
Bolt = 0,
HeaterBomb = 0,
}
Player.Health = 100
end
end
--==============================
Под строкой и в начале обычно находится скрипт для получения карты, тут уже нужны навыки скриптования, которых у меня нет. Но ничего не мешает вам скопировать стандартные условия со стандартных уровней к себе в уровень.
Вот теперь ваш уровень полностью готов. На этом с созданием уровня покончено.
Если у вас что-то не получается, то вы можете взглянуть на готовую по этому уроку карту, которую можно скачать по этой ссылке.
[signature]
--------------------
{signature}
[/signature]
{signature}