Поскольку тишина, расшифрую немного, о чем идет речь.
Контракты. Контракты - это двигатель карьеры. Это задачки для выполнения (со звездочкой), либо рутина для заработка средств. Это не "миссии", и не сценарии для Breaking Ground, это то что мы выполняем или отказываемся выполнять в своем сохранении. Туристы - давайте, спасти с орбиты - давайте. А вот станцию с 4000 жидкого топлива не берем, куда такая дура нужна? И т.д. и т.п. Стандартные контракты ведут нас семимильными шагами вперед: достичь космоса - выйти на орбиту - долететь до Муны - посадка на Муну и возврат - теперь Минмус - и вперед к Еве и дальше. Разбавлены повторяющимися - установкой еще одного флага, выводом еще одного спутника, и еще одного туриста. Разбавлены "служебными", чтобы не заскучали - собрать науку в точке, починить спутник, доделать ровер. Но основное направление задается контрактами на первые достижения.
Сейчас со всех репозиториев, через CKAN, или ручное скачивание, можно собрать следующие наборы:
- RedFrontier, цепочка миссий, двигающих игрока к освоению Дюны. Багов мало или незначительные, миссии комплексные (не просто пролететь мимо Муны, а пролететь и выйти на высокую орбиту. Не просто приземлиться на Муну, а приземлиться в точке предыдущей посадки, с ровером, и обследовать объекты. И так далее, вплоть до отправки к Дюне кораблей - с переработкой добываемой на Айке руды и заправке для обратного полета)
- GAP (Give Aircraft a Purpose) - набор контрактов на самолеты. Баги... есть, но проходимые. Среди заданий есть как продвигающие цепочку достижений (высота 5км-25км, скорость до мах1, мах2...), так и "рутинные" - перевозка пассажиров с ВПП на остров, с ВПП на аэродром в пустыне, из пустыни на остров и так далее. Особняком повторяющиеся на артистизм - пролететь через переходы НИИ. Плюс открывающиеся после вертолетной миссии спасательные операции. Ну... я не фанат самолетов, но думаю зайдет любителям.
- Базы и станции - куча заданий на создание и обслуживание космических станций. Ротация экипажей, расширение, эвакуация. Буквально пара багов, которые никто не заметит, потому что они критические и миссии просто не появятся :))
- Туризм и туризм расширенный... если вы уже погрязли в наборах контрактов, посмотреть можно. Хотя мне НЕ понравилось, стоковый туризм меня устраивал полностью.
- AnomalySurveyor - впечатляющая цепочка миссий на поиск (вернее, посещение) аномалий, придется посетить храм в пустыне, все 5 монолитов Кербина, арки, мемориал и монолиты Муны... а потом искать самый главный монолит на орбите Джул
- CareerEvolution с попыткой заменить стандартные контракты на новые. В принципе неплохо, но все (и я в том числе), кто начинает делать наборы контрактов, со своими тараканами. Посмотреть стоит, а там решите сами. Контракты на столкновение зондов с Муной, Минмусом и так далее - не рабочие. (Да, я знаю почему, и пытаюсь свой вариант сделать работающим).
- HistoryOfSpaceflights - для любителей реконструкций, гигантский набор из более 1000 миссий, повторяющих исторические (наши, земные) запуски, от баллистических ракет, улетавших на 2 км всего, до станций и снабжения. Тут рекомендуется иметь наборы деталей типа Тантарес или БДДБ, чтобы не имитировать "Восток" с помощью МК1-капсулы. Для игры - скучно, черезмерно, однообразно. Потому что в нашей истории большая часть запусков - спутники, станции, орбиты родной планеты. Немножко у Луне, совсем немножко к Марсу, единичные полеты - Венера. Вот оно все там и будет. Для реконструкторов - должно зайти на ура.
- и моды на науку, RAD (Research Advancement Division) и FieldResearch. Кто любит невероятные задания, вроде "Соберите из биома Тундра в ситуации Приводнен данные гравитации, температуры, давления и таинственной слизи" - должно понравиться.
- А еще "КербалАкадемия". Отменяет спасательные операции на орбите из стока, зато дает странные миссии на прокачку звездами своих кербалов. Да, у нас всех свои тараканы, кому-то может зайти.
- плюс различные моды имеют собственные наборы или наборчики, как СКАНСат, Кербализм и другие. СКАНСат вообще хорош, если вдруг кто-то не ставил ни разу, рекомендую.
- для извращенцев, фанатеющих от боевых действий и BDArmory, есть набор контрактов на уничтожение мишеней. На других телах тоже. Цепляешь все эти радары, боевые компьютеры и ракеты на космолет, летишь к Муне и расстреливаешь. Как то так.
В общей сложности, около 15 наборов контрактов можно наскрести. Все исключительно на английском языке. Почти во всех есть маленькие или большие баги. И почти во всех тараканы авторов не зашли моим собственным. А еще сын 7й класс, который от английского шарахается, а на русском нужны какие-то мини-шажочки, между орбита Кербина - посадка на Муну. Иначе вот тут вроде могу, а там не знаю, и не знаю как.
А контракты - это текстовый файл, описывающий правила и проверки на некотором "языке". Даже юнити не надо. И компилировать не надо. Прямо в блокноте пиши себе, если понял как... вот последнее самое сложное))
Если уже стоит что-то с ContractConfigurator, я собираюсь тщательно отладив, сделать что-то подобное (можно прямо копи-паст в файл, с любым названием и расширением .cfg, и в папку ContractPacks, хоть прямо в корень):
CONTRACT_TYPE
{
name = BallisticMoonShot
title = Проект «Стрела»: Выстрелить в луну-3
description = Военное ведомство проводит испытание межпланетной баллистической ракеты. Ваша задача — запустить беспилотную ракету с поверхности нашей планеты прямо в сторону ближайшего спутника: @/targetMoon. Полет ракеты должен происходить по баллистической траектории, без формирования орбиты. Ракета должна попасть точно в луну, промах и падение боеголовки на @/homePlanet - это провал.
genericDescription = Запустите беспилотную ракету по суборбитальной траектории, с поверхности домашней планеты, и попадите в её первый спутник.
synopsis = Войдите в сферу влияния ближайшей луны (и разбейте ракету о поверхность!) без предварительного выхода на орбиту планеты. Разрешены только ТТУ. Промахов быть не должно!
completedMessage = Попадание зафиксировано! Данные телеметрии переданы в штаб.
sortKey = 2000
//agent = @/randomAgent
prestige = Exceptional
maxSimultaneous = 1
maxCompletions = 0
deadline = 150
cancellable = true
declinable = true
targetBody = @/targetMoon
rewardFunds = 100000.0
rewardScience = 30.0
rewardReputation = 25
advanceFunds = 30000
failureFunds = 35000
failureReputation = 5
//DATA
//{
// type = agent
// randomAgent = AllAgents().Random()
//}
// Миссия максимально совместима с ЛЮБЫМИ модами, включая RSS-GPP-JSNQ и прочие подобные. И Кербализмом,
// и авариями, воспламенениями и чем угодно. Пока моды не изменят игру настолько, что имеющимися деталями
// задача в принципе не осуществима (Луна в 40 мегаметрах, с радиусом 40км, бустеры с 1000 dV максимум,
// беспилотный блок весом 2т, гравитация родной планеты 5жэ и так далее)
DATA
{
type = CelestialBody
homePlanet = HomeWorld()
title = Home world
}
DATA
{
type = CelestialBody
targetMoon = @/homePlanet.Children().First()
title = target Moon
}
DATA
{
// Добавил, чтобы проверки контракта относились к той самой стартовавшей ракете, а не любому кораблю
type = String
vesselName = ArrowOne
}
PARAMETER
{
name = BallisticVessel
type = VesselParameterGroup
define = @/vesselName
title = Должна быть подготовлена новая беспилотная твердотопливная баллистическая ракета
notes = Для попадания в СТ луны потребуется ракета примерно на [засекречено] dV, запущенная по дуге с наклоном примерно [засекречено] к горизонту, когда цель будет примерно над местом запуска. Либо запустите ракету вертикально, когда цель будет в [засекречено] градусах после зенита. Возможно, потребуется несколько попыток, чтобы определить точный момент пуска, необходимый запас топлива и финальный угол гравитационного маневра. Все примерные величины зависят друг от друга и набранной в итоге скорости, если dV выбрано с большим запасом и полностью использовано.
PARAMETER
{
name = NewVesselCheck
type = NewVessel
title = Ракета должна быть создана после взятия контракта
}
PARAMETER
{
name = UnmannedCheck
type = HasCrew
minCrew = 0
maxCrew = 0
title = Аппарат должен быть беспилотным
}
PARAMETER
{
name = ReadyForLaunch
type = ReachState
situation = PRELAUNCH
targetBody = @/homePlanet
title = На стартовом столе, готов к запуску
}
// Проверка отсутствия топлива. Если кто-то использует радон, криптонит, конденсированный ион, SPACE+TIME
// и прочие гиперчиты - ну развлекайтесь! Первоначальная идея челленджа - ТТУ.
PARAMETER
{
name = NoFuelCheck
type = All
title = Разрешены только твердотопливные ускорители
PARAMETER
{
name = NoLiquidFuel
type = HasResource
resource = LiquidFuel
minQuantity = 0.0
maxQuantity = 0.0
title = Отсутствие жидкого топлива (LiquidFuel)
hidden = true
}
PARAMETER
{
name = NoOxidizer
type = HasResource
resource = Oxidizer
minQuantity = 0.0
maxQuantity = 0.0
title = Отсутствие окислителя (Oxidizer)
hidden = true
}
PARAMETER
{
name = NoXenon
type = HasResource
resource = XenonGas
minQuantity = 0.0
maxQuantity = 0.0
title = Отсутствие ксенона (XenonGas)
hidden = true
}
PARAMETER
{
name = NoMonoPropellant
type = HasResource
resource = MonoPropellant
minQuantity = 0.0
maxQuantity = 0.0
title = Отсутствие монотоплива (MonoPropellant)
hidden = true
}
}
}
BEHAVIOUR
{
name = DialogBox
type = DialogBox
DIALOG_BOX
{
title = Оповещение о привязке к контракту
condition = PARAMETER_COMPLETED
parameter = BallisticVessel
TEXT
{
text = Внимание! Данный корабль определен как объект проекта "Стрела". Вывод на орбиту провалит взятый контракт! \n Ваша цель - запуск межпланетной баллистической ракеты с поверхности, для попадания в @/targetMoon, без формирования орбиты и дополнительных маневров, с использованием только твердотопливных двигателей. \n Промах по луне и уход за сферу влияния Кербина, или уничтожение ракеты в атмосфере - провалит контракт. Если вы не уверены, уберите ракету со старта и подготовьтесь получше. Удачи!
}
}
}
PARAMETER
{
name = NuclearLaunchDetected
type = VesselParameterGroup
title = Пуск ракеты зарегистрирован
vessel = @/vesselName
PARAMETER
{
name = ReachSpace
type = ReachSpace
title = Launch detected!
}
PARAMETER
{
name = NoSolidFuel
type = HasResource
resource = SolidFuel
minQuantity = 0.0
maxQuantity = 0.0
title = На корабле не должно остаться топлива - никаких маневров после запуска!
}
}
PARAMETER
{
name = CheckImpactMoon
type = VesselParameterGroup
title = Войдите в сферу влияния @/targetMoon на курсе неизбежного столкновения
vessel = @/vesselName
PARAMETER
{
name = ReachMoonSOI
type = ReachState
targetBody = @/targetMoon
title = Войти в сферу влияния луны
}
PARAMETER
{
name = VesselDestroyed
type = VesselDestroyed
//mustImpactTerrain = true //bug in "true" value, never return true
title = Ракета уничтожена от удара о поверхность @/targetMoon
targetBody = @/targetMoon
}
}
PARAMETER
{
name = CrazyGroup
type = VesselParameterGroup
title = Запреты
vessel = @/vesselName
hidden = true
PARAMETER
{
name = None
type = None
title = Запрещено: орбиты, выход из СТ луны после достижения, взрыв аппарата на родной планете
//vessel = @/vesselName
PARAMETER
{
name = NoOrbit
type = Orbit
targetBody = @/homePlanet
minPeA = HomeWorld().AtmosphereAltitude()
title = выходить на орбиту запрещено
hidden = true
}
PARAMETER
{
name = NoSol
type = ReachState
targetBody = HomeWorld().Parent()
title = промахнуться и уйти к Солнцу запрещено
hidden = true
}
PARAMETER
{
name = NoCrashOnKerbin
type = VesselDestroyed
targetBody = @/homePlanet
title = и разбить в СТ @/homePlanet запрещено
hidden = true
}
}
}
REQUIREMENT
{
name = MoonFlyByAchieved
type = FlyBy
targetBody = @/targetMoon
title = Вы должны предварительно совершить хотя бы один пролет мимо первой луны
}
REQUIREMENT
{
type = CompleteContract
minCount = 0
contractType = BallisticMoonShot
cooldownDuration = 3d
}
}
Тут уже вроде бы все безупречно, в плане багов... И таких миссий я собираюсь сделать штук... 15 как минимум, в дополнение к своей собственной карьерной эволюции, как я ее вижу. Кому приглянется - разбирайте. Доделаю крупный апдейт - отредактирую первый пост со ссылкой прямо на "релиз". Ну и если обоснованно скажете "это ерунда" или наоборот "о, круто, а вот как такой сценарий, можно?" - я всегда рад... и может быть даже учту
