ФЭНДОМ


При создании своих кораблей крайне важно также и правильно их сконфигурировать.
Homeworld 2 предлагает достаточно возможностей для настройки поведения игровых моделей. Конечно, не на всё хватает предоставленных фишек, но на большую часть - явно.
В игре есть три похожих по настройкам типа "кораблей":

  1. Сами корабли: /Data/ship/*, *.ship-файл - это настройка;
  2. Подсистемы: /Data/subsystems/*, *.subs-файл - это настройка;
  3. Ракеты: /Data/missiles/*, *.miss-файл - это настройка;

Они по сути являются *.lua-файлами, поэтому в них работают все lua-фишки.
Ниже даются объяснения, что значит та или иная функция.

Типы данных Править

В дальнейших описаниях вместо конкретных данных будут встречаться записи вроде bFlag, что является "кодовым" обозначением переменной, состоящей из буквы для типа переменных и слова для названия.

  • b, boolean - может принимать значения "true/да"(1) или "false/нет"(0);
  • i, integer - только целые положительные числа;
  • f, float - можно вписывать дроби;
  • s, string - текстовые данные, писать в "кавычках";

Общие настройки Править

То, с чего начинается любой корабль:

NewShipType = StartShipConfig() -- точнее, это корабль;
  ИЛИ
NewShipType = StartMissileConfig() -- а это начало конфига ракеты;
NewShipType.controllerType = <sControllerType>

Эта функция говорит движку, что это:

  • Ship - корабль;
  • Missile - ракета;
  • "None" - никем не контроллируется, обломок;

Содержимое файла *.ship Править

Файлы корабля, чтобы игра их распознала, должны храниться в папке /Data/ship, в каталоге с характерным именем "префиксрасы_названиекорабля", а его настройки - в этой папке, в *.ship-файле, у которого должно быть то же имя, что и папки. Впрочем, это касается всего содержимого каталога.

Базовые настройки Править

NewShipType.displayedName = <sShipName> -- название корабля при его выборе;
NewShipType.sobDescription = <sDescription> -- описание корабля;

Названия и описания могут быть локализированы.

NewShipType.blobName = <sBlobName> -- специальное название для корабля, появляется при наведении на него мышкой;
NewShipType.blobNamePriority = <iPriority>
NewShipType.isTransferable = <bFlag> -- можно ли отдать корабль противнику, да(1)/нет(0);
NewShipType.militaryUnit = <bIsMilitary> -- военный ли юнит, нужно для выбора только военных юнитов;
NewShipType.useEngagementRanges = <bFlag> -- If 1, can use engagement ranges. If 0, it can't;
NewShipType.unitCapsNumber = <iUnitCapsNumber>
NewShipType.addedUnitCaps = <iUnitCapsNumber>

Неиспользуемые параметры; возможно, когда-то планировалось сделать ограничение кораблей по экипажу а-ля ХВК;

Масса корабля Править

Изначально урон от столкновения отключен, чтобы кампания работала - иначе рабочие Таниса взрываются.

NewShipType.collisionMultiplier = <fMultiplier> -- коэффициент урона при столкновении;
NewShipType.mass = <fMass>-- масса корабля, для определение урона в столкновении;

Используются такие значения:

  • 10 - истребители и ниже;
  • 15 - корветы;
  • 20 - турели;
  • 40 - коллектор, тягач;
  • 50 - дохлый тягач;
  • 100 - фрегат;
  • 300 - эсминец Хранителей;
  • 500 - эсминец;
  • 1к - суперкэпы;
  • 1.5к - Саджуук;
  • 2к - Мамы и верфи, а также тюремная станция вэйгров;
  • 5к - всякие дереликты и астероиды;
  • 20к - комстанция вэйгров;

Строительство Править

NewShipType.buildCost = <iCost> -- стоимость корабля;
NewShipType.buildTime = <fTime>-- время постройки корабля, в секундах;
NewShipType.buildPriorityOrder = <iOrder> -- чем меньше значение, тем выше в списке строящих кораблей будет показываться судно;

Здоровье и броня Править

NewShipType.maxhealth = <iHealth> -- хитпойнты корабля;
NewShipType.regentime = <fTime> -- время, нужное для регенерации "здоровья" от 0 до максимума;
NewShipType.minRegenTime <fTime> -- минимальное время, нужное для регенерации (вероятно, при воздействии усилителей);
NewShipType.sideArmourDamage = <fMultiplier> -- коэффициент урона при ударе в бока корабля;
NewShipType.rearArmourDamage = <fMultiplier> -- коэффициент урона при ударе корабля сзади;
NewShipType.dustCloudDamageTime = <fTime> -- время до полного уничтожения (?) при нахождении в пылевых облаках;
NewShipType.nebulaDamageTime = <fTime> -- время до полного уничтожения (?) при нахождении в радиоактивных облаках;

Формации и звенья Править

Формации смотреть в специально отведённом файле (TODO: указать где и как, создать страницу, посвящённую созданию формаций).

NewShipType.SquadronSize = <iSize> -- количество кораблей в звене;
NewShipType.formationSpacing = <fDistance> -- расстояние между кораблями в формации, параметр может отсутствовать, если корабль - одиночка;
NewShipType.passiveFormation = <sFormationName> -- формация при заданной пассивной тактике;
NewShipType.defensiveFormation = <sFormationName> -- формация при заданной нейтральной тактике;
NewShipType.aggressiveFormation = <sFormationName> -- формация при заданной агрессивной тактике;
NewShipType.paradeData = <sName> -- Supports Parade, such as Carrier, Building emplacements, etc. (e.g. "vgr_mothership_parade");

Скорости и движение Править

NewShipType.thrusterMaxSpeed = 161 -- standard is 161; anticaps have 150; capture frigates - 230;
NewShipType.thrusterAccelTime = 7
NewShipType.thrusterBrakeTime = 2
NewShipType.mainEngineMaxSpeed = 161 -- is the same with the .thrusterMaxSpeed;
NewShipType.mainEngineAccelTime = 8
NewShipType.mainEngineBrakeTime = 2
NewShipType.rotationMaxSpeed = 22 -- usual 22, HICF got 35;
NewShipType.rotationAccelTime = 0.75 --standard is 0.75, HICF got 0.4;
NewShipType.rotationBrakeTime = 0.4 -- hiigaran standard is 0.4, HICFr got 0.2; vaygr got 0.3 ;
NewShipType.thrusterUsage = 0.5 --standard is 0.5, capture frigates got 0.75;
NewShipType.accelerationAngle = 40
NewShipType.mirrorAngle = 0
NewShipType.secondaryTurnAngle = 0
NewShipType.maxBankingAmount = 20
NewShipType.descendPitch = 20
NewShipType.goalReachEpsilon = 30
NewShipType.slideMoveRange = 100
NewShipType.tumbleStaticX = 10
NewShipType.tumbleStaticY = 20
NewShipType.tumbleStaticZ = 5
NewShipType.tumbleDynamicX = 2
NewShipType.tumbleDynamicY = 10
NewShipType.tumbleDynamicZ = 5
NewShipType.tumbleSpecialDynamicX = 2
NewShipType.tumbleSpecialDynamicY = 10
NewShipType.tumbleSpecialDynamicZ = 5
NewShipType.relativeMoveFactor = 3 --all but VIFr with 2;
NewShipType.swayUpdateTime = 4 --Hiigaran have 4, Vaygr have 2;
NewShipType.swayOffsetRandomX = 10
NewShipType.swayOffsetRandomY = 10
NewShipType.swayOffsetRandomZ = 10
NewShipType.swayBobbingFactor = 0.05 --hiigaran standard is 0.05, HMFr got 0.1, HFFr - 0.15; vaygr all have 0.15;
NewShipType.swayRotateFactor = 0

Орудийный расчёт Править

NewShipType.useTargetRandom = 1
------------------- .targetRandomPoint* parameter is individual;
--NewShipType.targetRandomPointXMin = -0.3
--NewShipType.targetRandomPointXMax = 0.4
--NewShipType.targetRandomPointYMin = -0.35
--NewShipType.targetRandomPointYMax = 0.6
--NewShipType.targetRandomPointZMin = -0.75
--NewShipType.targetRandomPointZMax = 0.85
--------------------

Принадлежность к "семьям" Править

NewShipType.MinimalFamilyToFindPathAround = "MotherShip"
NewShipType.BuildFamily = "Frigate_Tdn" -- depends on race which frigate belongs to;
NewShipType.AttackFamily = "Frigate" --could be another family, like "capturer", for HMFr;
NewShipType.DockFamily = "Frigate"
NewShipType.AvoidanceFamily = "Frigate"
NewShipType.DisplayFamily = "Frigate"
NewShipType.AutoFormationFamily = "Frigate"
NewShipType.CollisionFamily = "Big"
NewShipType.ArmourFamily = "MediumArmour"
NewShipType.UnitCapsFamily = "Frigate"
NewShipType.UnitCapsShipType = "CaptureFrigate" --this line may not be present if no special count on them;

Информация для AI Править

NewShipType.fighterValue = 0
NewShipType.corvetteValue = 0
NewShipType.frigateValue = 10 --usually is 10, but if powerful frigate, then 12;
NewShipType.neutralValue = 0
NewShipType.antiFighterValue = 0
NewShipType.antiCorvetteValue = 0
NewShipType.antiFrigateValue = 12
NewShipType.totalValue = 10 --usually is the same with the .frigateValue;

Визуальное отображение Править

NewShipType.retaliationRange = 5500
NewShipType.retaliationDistanceFromGoal = 160
NewShipType.mouseOverMinFadeSize = 0.045
NewShipType.mouseOverMaxFadeSize = 0.1
NewShipType.meshRenderLimit = 13000
NewShipType.dotRenderLimit = 10
NewShipType.visibleInSecondary = 1
NewShipType.minLOD = 0.25 --usual is 0.25, except VIFr - 0.3;
NewShipType.goblinsStartFade = 1500
NewShipType.goblinsOff = 1500
NewShipType.upLOD = 2000
NewShipType.upLOD = 2500
NewShipType.downLOD = 2015
NewShipType.downLOD = 2515
NewShipType.minimumZoomFactor = 0.6 -- anticaps got 0.6; assaults with torpedo got 0.63 (anti-strikecraft); specials  got 0.5;
NewShipType.selectionLimit = 150000
NewShipType.preciseATILimit = 0
NewShipType.selectionPriority = 75
NewShipType.healthBarStyle = 1
NewShipType.nbRestrictedHardpoints = 1
NewShipType.alternativeHyperspaceA = "/etg/special/SPECIAL_ABILITIES_HYPERSPACE_IN_MS" -- альтернативный эффект гиперпрыжка (?);

Tactical Overlay Править

ТО - тактическое отображение, пояснительная графика к кораблям.

NewShipType.TOIcon = "Diamond"
NewShipType.TOScale = 1
NewShipType.TODistanceFade0 = 9000
NewShipType.TODistanceDisappear0 = 7000
NewShipType.TODistanceFade1 = 4500
NewShipType.TODistanceDisappear1 = 3500
NewShipType.TODistanceFade2 = 12000
NewShipType.TODistanceDisappear2 = 35000
NewShipType.TOGroupScale = 1
NewShipType.TOGroupMergeSize = 0

NLIPS Править

NLIPS - эта штука увеличивает размер корабля издали (чтобы истребители можно было разглядеть).

NewShipType.nlips = 0.000125 --usually is 0.000125, except HMFr - 0.0001 - and assaults - 0.00015;
NewShipType.nlipsRange = 6000
NewShipType.nlipsFar = 0.0001 --usually is 0.0001, except assaults & VHMFr - 0.00015;
NewShipType.nlipsFarRange = 10000

Стратегический экран Править

SM - менеджер сенсоров или стратегический экран.

NewShipType.SMRepresentation = "HardDot" -- или меш или харддот: что подгружается в Менеджере Сенсоров, точка или моделька корабля;

Возможны варианты:

  • Invisible - для ракет и прочего;
  • Harddot - для всякой эскадрильной мелочи;
  • Mesh - для суперкапов;
--NewShipType.SMHighlightDistMin = 20000 -- походу, только для меша;
--NewShipType.SMHighlightDistMax = 30000 -- походу, только для меша;

Сенсоры Править

NewShipType.visualRange = 1000 -- радиус, на котором враги становятся видны на тактическом экране;
NewShipType.prmSensorRange = 5000 -- радиус, на котором враги становятся видны на стратегическом экране;
NewShipType.secSensorRange = 6000 -- радиус, на котором засекаются подходящие корабли на стратегическом экране;
NewShipType.detectionStrength = 1 -- сила сенсоров, от 1 до 4; при 4ёх видны все невидимки;

Докинг Править

NewShipType.dockTimeBetweenTwoFormations = 1 -- время задержки после приёма первого звена лёгких кораблей;
NewShipType.dockTimeBeforeStart = 2
NewShipType.dockNrOfShipsInDockFormation = 1
NewShipType.dockFormation = "delta" -- формация для влёта в доки;
NewShipType.queueFormation = "dockline" -- формация ожидания докинга;
NewShipType.dontDockWithOtherRaceShips = 1 -- не стыковаться с кораблями другой расы, да(1)/нет(0);
NewShipType.ignoreRaceWhenDocking = 0 -- игнорировать расу при докинге, да(1)/нет(0);

Последние два параметра вызывают вопрос. Вероятно, последний параметр намекает на расу союзника, а предпоследний - на, собственно, тип корабль. То есть, при указанных параметрах, нельзя будет посадить звено хиигарянских истребителей на носители союзника-вэйгра, даже если у него будет захвачен хиигарянский носитель.

Запуск Править

NewShipType.launchTimeBetweenTwoFormations = 1 -- время между запуском звеньев;
NewShipType.launchTimeBeforeStart = 2
NewShipType.launchNrOfShipsInDockFormation = 1
NewShipType.launchFormation = "delta" -- формация лёгких кораблей при вылете из дока;

Загрузка модели Править

Для корабля:

LoadModel(NewShipType, 1) --загружаем модель из той же папки; хз, чо значит "1";
  ИЛИ
LoadSharedModel(NewShipType, "Hgn_Shipyard") -- прописываем в случае, если используем чужую модель;

Для ракеты:

LoadHODFile(NewShipType, 1)

Повреждения и смерть Править

NewShipType.battleScarMaxTriBase = 75
NewShipType.battleScarMaxTriInc = 100
NewShipType.sobDieTime = 1
NewShipType.sobSpecialDieTime = 1
NewShipType.specialDeathSpeed = 40
NewShipType.chanceOfSpecialDeath = 0
NewShipType.deadSobFadeTime = 0
SpawnSalvageOnDeath(NewShipType,
  "Slv_Chunk_Lrg03", --тип обломка, берётся в папке /Data/resource/salvage/*, см. также здесь;
  1,
  0.75,
  0, 0, 0, 50,
  0, 0, 0, 200,
  0, 0, 0, 50,
  0, 0, 0, 50
)

Выхлоп двигателя Править

Полоса за двигателем Править

NewShipType.trailLinger = 4 -- vaygr have 2, hiigaran have 4, except HDFFr, which is also 2;
setEngineTrail(NewShipType,
  0, 15,
  "trail_ribbon.tga",
  0.2, 0.5, 0.025, 8
)

Пламя из движка Править

setEngineBurn(
  <rNewObjectType>, -- NewShipType для корабля или NewMissileType или ракеты;
  <iSparksPerPath>, -- количество сфер на путь. Траектория пути задается в файле .hod;
  <fSpeedLow>, -- стартовая скорость бегающей сферы;
  <fSpeedHigh>, -- конечная скорость бегающей сферы;
  <fSparkSize>, -- диаметр первой сферы в цепочке;
  <fSpeedSparkSize>, -- масштаб стартовой вспышки; умножается на <fSparkZize>;
  <fFlareMin>, -- при взгляде на двигатель в направлении с носа на корму, этот параметр уменьшает яркость свечения <fFlareSize>;
  <fFlarePos>, -- смещение основного свечения;
  <fFlareSize> -- диаметр основного свечения;
)
Для примера: setEngineBurn(NewShipType, 20, 0.3, 2, 30, 2, 0.5, 0, 100)

Сияние выхлопа Править

setEngineGlow(NewShipType,
  1, 1, 1.02, 20, 300, 50, 1.5, -- standard for all frigates;
  {0.27, 0.47, 0.69, 0.25,} -- цвет выхлопа, в формате {RGB + прозрачность}, от 0 до 1; 
)

Расовое сияние:

    • {0.27, 0.47, 0.69, 0.25,} -- для хиигарянский кэпов, где-то RGB(69,120,176);
    • {0.92, 0.21, 0.09, 0.25,} -- для вэйгрских кэпов, где-то RGB(235,54,23);

Озвучка корабля Править

loadShipPatchList(NewShipType,
  "data:sound/sfx/ship/", --указываем папку, где хранятся звуки;
  0, "Vaygr/Carrier/Engines/VDestroyerEng", "", --указываем первый звук и точку привязки (пустой слот, значит, весь корабль);
  1, "Vaygr/Carrier/Ambience/VDestroyerAmb", "", --указываем второй звук и точку привязки;
  3, "Megaliths/RandomEmit/HANGAR_EMITTERS", "HardPoint_Production1_Position" --хз, почему здесь "3" (может, был 3ий звук, но его потом удалили), но логика та же; итд;
)

= Abilities Править

В следующих строчках будут описаны параметры абилок через комментарии к коду; если комментариев нет - значит, хз, чо за параметр, то есть, требуется экспериментатор для проверки.

Стандартные абилки Править

addAbility(NewShipType, "ParadeCommand", 1) --цифра показывает, доступно ли по умолчанию; возможность к парадным построениям (?) - есть у всех кораблей;
addAbility(NewShipType, "MoveCommand",
  1,--доступно ли по умолчанию, проще говоря, способен ли двигаться, если нет - то зачем прописывать? );
  0 -- этот параметр показывает, сколько раз может двигаться корабль; если 0 - то бесконечно, если 1, то 1 раз; неясно, это вкл/выкл, или циферька показывает количество перемещений до полной остановки;
)
addAbility(NewShipType, "WaypointMove") --судя по всему, способность двигаться по маршрутам; есть у всех "неодноразовых" кораблей;
addAbility(NewShipType, "GuardCommand", --способность "эскорта";
  1,--доступно ли по умолчанию;
  3000, --походу, расстояние; то ли стандартное, то ли максимальное от эскортируемого;
  600 --эскадрильи и коллекторы: 500; фрегаты: 600, кроме ДФГ(300); эсминцы и контроллеры: 800; верфи, "линейки" и носители: 1000; возможно, минимальное расстояние от эскортируемого;
)
addAbility(NewShipType, "RetireAbility", --способность разбираться на запчасти;
  1,--доступно ли по умолчанию;
  1 -- единица у всех кораблей, начиная с фрегат-класса и выше, за исключением, флагманов и верфей;
)
Атака/CanAttack Править

Функция

addAbility("NewShipType", "CanAttack", <bIsActive>, <iNumberOfShips>, <bKamikaze>, <bInterpolate>, <fSplitDelay>, <fDistanceMultiplier>, <sAttackFamilies>, <sAttackStyle>, <tStyleException1>, ..., <tStyleExceptionN>)

Описание

addAbility(NewShipType, "CanAttack", --способность атаковать;
  1, --доступно ли по умолчанию (0 - нет, 1 - да);
  1, --количество кораблей в микроформации, на которые расходится звено в атаке;
  0, --может ли корабль идти на таран (0 - нет, 1 - да);
  1, --<bInterpolate>: can the ship interpolate targets?;
  0.35, --задержка в секундах перед разделением на формации;
  1.5, --умножитель расстояния до цели, с которого корабль начинает использовать определённый стиль атаки;
  "Capturer, Frigate, SmallCapitalShip, BigCapitalShip, Mothership, Utility, Corvette", --приоритет атаки кораблей, от высшего к низшему;
  "Frontal",  --главный стиль атаки для данного корабля
  {SubSystem = "FrontalVsSubSystem",},  --стиль атаки для определённых типов кораблей;
  ... --и дополнять дальше по вышеозначенным образцам, семью атакуемых смотреть в familylist.lua, тип атаки - хз;
)

Стили атаки

  • Frontal;
  • FrontalVsSubSystem;
  • MoveToTargetAndShoot;
  • ...;

Свою тактику можно прописать в <название файла и путь; линк на статью о создании>.

Производство Править

addAbility(NewShipType, "CanBuildShips",
  1, --вероятно, параметр "разрешения" - доступно ли по умолчанию;
  "Fighter_Hgn, ..., Corvette_Hgn,", --здесь перечисляем, корабли каких семейств можно строить, смотреть в familylist.lua;
  "Utility, ..., Fighter," --здесь перечисляем какие типы кораблей вообще можно строить, смотреть в familylist.lua;
)

Ангары Править

addAbility(NewShipType, "ShipHold",
  <bIsActive>, -- доступно ли по умолчанию, требуется для сброса ресурсов рабочими, автозапуска;
  <fDropoffRate>, -- количество перечисляемых ресурсов в секунду при стыковке рабочими;
  <iShipholdSize>, -- общее количество мест в доке;
  <sEffectName>, -- название эффекта, используемого для rally point (?);
  <sDockFamilies>, -- здесь перечисляем какие типы кораблей можно принимать на борт, смотреть в familylist.lua;
  <fRepairRate>, -- количество чинимых хитпойнтов в секунду или шаг;
  <{%название_семьи% = "%число%",}> -- исключения <fRepairRate> для перечисленных семейств кораблей (до 4);
)
addAbility(NewShipType, "CanDock",
  <bIsActive>, -- доступно ли по умолчанию;
  <bByPlayer> -- может ли игрок пользоваться этой возможностью;
)
addAbility(NewShipType, "CanLaunch") -- может выпускать корабли;

Обеспечение Править

  • Добыча ресурсов
addAbility(NewShipType, "Harvest",
  1, --доступно ли по умолчанию;
  200, --количества рублей в трюме;
  8, --количество РУблей, добываемых в секунду;
  300 --расстояние до астероида при добыче
)
  • Собирание обломков
addAbility(NewShipType, "SalvageCommand", 1)  -- цифра показывает, доступно ли по умолчанию;

Чтобы обломок можно было забрать, ему нужно прописать эту ability:

addAbility(NewShipType, "CanBeSalvaged")
  • Ремонт
addAbility(NewShipType, "RepairCommand",
  0, --доступно ли по умолчанию;
  500, 9,
  {SuperCap = "18",},
  ... --искать в familylist.lua, хз, чо значат циферьки;
  {Flagship = "18",}
)

Чтобы корабль можно было починить, ему нужно прописать эту ability:

addAbility(NewShipType, "CanBeRepaired")

Гиперпространство Править

  • Гипер-прыжок
addAbility(NewShipType, "HyperSpaceCommand",
  0, --доступно ли по умолчанию;
  1, 200, 500, 0, 3
) -- hiigarans have (0, 1, 200, 500, 0, 3), vaygr  have (0, 1, 500, 1000, 0, 3);
  • Использование гипер-воронок
addAbility(NewShipType, "HyperspaceViaGateCommand",
  1, --доступно ли по умолчанию;
  3, 1, 0.3
) --стандартные параметры для всех кораблей; максимальный класс корабля - эсминец;
  • Формирование гипер-канала
addAbility(NewShipType, "FormHyperspaceGateCommand",
  1, --доступно ли по умолчанию;
  1000, 500, 1000, 0
)
  • Гипер-ингибитор
addAbility(NewShipType, "HyperspaceInhibitorAbility",
  0, --вероятно, параметр "разрешения" - доступно ли по умолчанию (нет, т.к. нужен модуль);
  12000 -- радиус ингибитор-поля;
)

Другие умения Править

  • Стэлс
addAbility(NewShipType, "CloakAbility",
  0, --вероятно, параметр "разрешения" - доступно ли по умолчанию (нет, т.к. нужен модуль);
  2, 2000, 4000, 3, 100, 1, 1000
)
  • Пинг
addAbility(NewShipType, "SensorPing",
  0, --доступно ли по умолчанию;
  1, 10, 2.5
)
  • ЭМИ
addAbility(NewShipType, "SpecialAttack",
  0, --доступно ли по умолчанию;
  "EMP" --вероятно, тип специальной атаки, см. Data\Scripts\weaponfire;
)

Для защиты от этого умения атакуемым кораблям нужно прописать:

addShield(NewShipType,
  "EMP", -- тип атаки, см. Data\Scripts\weaponfire;
  310, --крутость щита;
  20 --время в секундах на восстановление;
)
  • Абордаж
addAbility(NewShipType, "CaptureCommand",
  1, --доступно ли по умолчанию;
  -50
)

Чтобы корабль можно было захватить, ему нужно прописать:

addAbility(NewShipType, "CanBeCaptured", 
  45, --usually is used 45, but HICFr, HFFr & HTFr are 30;  generally speaking, hiigaran battle frigates;
  0.1 -- usually is used 0.1, but HMFr & HDFFr got 0.5;
)
  • Силовое поле
AddShipAbility(NewShipType, "DefenseField",
  1, --доступно ли по умолчанию;
  "ThisShipOnly", --ареал распространения (смотри "Усилители");
  0
)
addAbility(NewShipType, "DefenseFieldShieldAbility", --имеется большое подозрение, что эта фича связана с синглплеерной фишкой защиты от радиационного поля;
  0, --доступно ли по умолчанию;
  1200, 0, 0
)

"Усилители" Править

В общем виде это дело выглядит так:

AddShipMultiplier(NewShipType,
  "WeaponAccuracy", --тип усиления;
  "OwnShipsWithinRadiusExcludingThisShip", --ареал распространения;
  "Linear", --график увеличения статов (неясно), линейное;
  1.15, 1.15, --коэффициенты, неясно, почему два;
  4500 --расстояние распространения
)

Было бы интересно попробовать, какие функции запрограммировали ещё в движок. Для примера:

  • Linear: f(x)=ax+b;
  • Quadratic: f(x)=ax2+bx+c;
  • Cubic: f(x)=ax3+bx2+cx+d;
  • Exponential: f(x)=ax;

Правда, всё равно не понятно, почему указано два коэффициента. Это намёк на x,y, какую-то геометрическую фигуру (овал, к примеру), двухаргументную функцию, полярные координаты или что?.. Или просто - коэффициенты для передней/задней или нижней/верхней полусфер?

Типы усиления Править

Параметры, встречающиеся в research.lua и требующие проверки, будут отмечены буквой R.

Жизненные параметры Править
MAXHEALTH -- изменение хитпойнтов кораблей; R
HealthRegenerationRate -- изменение скорости регенерации хитпойнтов; R
NebulaSensitivity -- изменение чувствительности к туманностям; R
DustCloudSensitivity -- изменение чувствительности к пылевым облакам;
ShipHoldRepairSpeed -- Modifies the speed at which ships are repaired when docked
ShieldRegenerationRate -- How fast shields regenerate.
MaxShield -- Modify the shield capacity
DefenseFieldTime -- Modify how fast a ship uses up its defense field capacity. < 0 means more time spent shielding and faster recharge, > 1 means less time for shielding and slow recharge.
DustCloudSensitivity -- Sensitivity to DustCloud charge damage (damage ships inside dustclouds). If this one is set to 0, no damage is taken. If set to 1, full damage is taken.
NebulaSensitivity -- Sensitivity to Nebula charge damage (damage ships inside nebulas receive). If this one is set to 0, no damage is taken. If set to 1, full damage is taken.
Скорость Править
Speed -- Maximum speed multiplier. Influences the speeds and the acceleration of the ship. (If you lower the speed, the ships take longer to brake as well, as the acceleration is lowered, too)
MaxSpeed -- Influence only the maximum speeds, and not the acceleration of the ship. This makes the ship actually able to stop when the maxspeed is lowered.
BUILDSPEED -- изменение скорости строительства; R
MAXSPEED -- изменение скорости кораблей; R
Оружие Править
WeaponAccuracy -- изменение точности орудий;
WeaponDamage -- изменение урона от орудий;
Capture -- изменение скорости захвата; R
Гипер-прыжки Править
HyperspaceCost -- изменение стоимости прыжка; R
HyperspaceRecoveryTime -- изменение времени "оживления" корабля после гипер-прыжка; R
HyperspaceTime -- изменение времени, проводимого кораблём в гиперпространстве; R
HyperSpaceAbortDamage -- изменение процента повреждений, получаемых кораблём при попадании на вражеский ингибитор; R
Сенсоры Править
VisualRange -- изменение радиуса видимости в тактическом экране; R
PrimarySensorsRange -- изменение первичного радиуса видимости; R
SecondarySensorsRange -- изменение вторичного радиуса видимости; R
SensorDistortion -- ухудшение вражеских сенсоров;
CloakingStrength -- Modify the cloaking value used when comparing vs. detection attempts. Bigger numbers mean harder to spot.
CloakDetection -- Modify the detection value used to compare against cloaking
CloakingTime -- Modify how fast a ship uses up its cloak capacity. < 0 means more time spent cloaking and faster recharge, > 1 means less time for cloaking and slow recharge.
SensorDistortion -- Sensor distortion multiplier. This multiplier makes ships harder (if multiplier is [0..1]) or easier (if multiplier is greater than 1) to detect by sensors. The multiplier is applied to the detectors’ sensor ranges.
Ресурсы Править
ResourceCollectionRate -- Modifies the rate at which a collector collects resources
ResourceDropOffRate -- Modifies the rate at which a ship removes resources from a collector when it is docked.
ResourceCapacity -- Modifies how many RUs a ship can store.

Типы ареалов Править

ThisShipOnly -- только этот корабль;
OwnShipsWithinRadius -- свои корабли в радиусе;
OwnShipsWithinRadiusExcludingThisShip -- свои корабли в радиусе, за исключением корабля-источника;
AllShipsWithinRadiusExcludingThisShip -- все корабли в радиусе, за исключением корабля-источника;

Должно быть уже и AllShipsWithinRadius тогда...

Примеры Править

AddShipMultiplier(NewShipType, "WeaponAccuracy", "OwnShipsWithinRadiusExcludingThisShip", "Linear", 1.15, 1.15, 4500) -- КомКорвет;
AddShipMultiplier(NewShipType, "SensorDistortion", "OwnShipsWithinRadius", "Linear", 0.6, 0.6, 6000) -- ДисторПробка;
AddShipMultiplier(NewShipType, "NebulaSensitivity", "ThisShipOnly", "Linear", 0, 0, 0) --Муверы;

Оружие Править

StartShipWeaponConfig(NewShipType,
  "Hgn_VulcanKineticTurretWeak",
  "Weapon_TurretTop",
  "Weapon_TurretTop"
)

Содержимое файла *.subs Править

Содержимое этого файла во многом повторяет конфигурацию кораблей, поэтому можно поэкспериментировать в присвоении функций модуля кораблю и наоборот.

Умения от модулей Править

Гипер-ингибитор Править

AddSubSystemAbility(NewSubSystemType, "HyperspaceInhibitor",
  1, --доступно ли по умолчанию;
  "ThisShipOnly",
  0 -- скорее всего, радиус действия, 0 просто из-за того, что ареал распространения - только этот корабль;
)

Гипер-прыжок Править

AddSubSystemAbility(NewSubSystemType, "Hyperspace",
  1, --доступно ли по умолчанию;
  "OwnShipsWithinRadius", --ареал действия;
  3500 -- радиус действия;
)

Стэлс Править

AddSubSystemAbility(NewSubSystemType, "Cloak",
  1,
  "ThisShipOnly",
  0 -- скорее всего, радиус действия, 0 просто из-за того, что ареал распространения - только этот корабль;
)

Усилители Править

AddSubSystemMultiplier(NewSubSystemType, "Speed", "ThisShipOnly", "Linear", 1, 0.35, 0) -- скорость кораблей (странно, чем отличается от MAXSPEED?);
AddSubSystemMultiplier(NewSubSystemType, "ResourceDropOffRate", "ThisShipOnly", "Linear", 1, 0, 0) -- что-то с ресурсами;
AddSubSystemMultiplier(NewSubSystemType, "CloakDetection", "ThisShipOnly", "None", 4, 4, 0) -- анти-стэлс (временный?);
AddSubSystemMultiplier(NewSubSystemType, "VisualRange", "ThisShipOnly", "None", 4, 4, 0) -- анти-стэлс (постоянный?);

Содержимое файла *.miss Править

Конфигурационный файл для ракет.
Всё, что уже рассортировано и повторялось раньше, здесь не приводится.

NewShipType.maxShield = 0
NewShipType.shieldRechargeTime = 0
NewShipType.weaponName = "Hgn_TorpedoLauncher"
NewShipType.lifeTime = 20
NewShipType.launchTime = 0
NewShipType.detectionDistance = 1000
NewShipType.clusterDistance = 750
NewShipType.numberSubMunitions = 4
NewShipType.subMunitionName = "Hgn_ClusterTorpedoB"
NewShipType.clusterAngle = 65
NewShipType.density = 1
NewShipType.slowdownFactor = 0.5
NewShipType.tumbleSpeed = 0
NewShipType.targetAngle = 5
NewShipType.spiralsPerSecondMin = 0.5
NewShipType.spiralsPerSecondMax = 0.6

См. также Править

Ссылки Править

  • VariableShip - переменные кораблей на Кладбище Кароса;

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

Викия не будет доступна для последующих модификаций. Если вы желаете продолжать работать со страницей, то, пожалуйста, отключите расширение для блокировки рекламы.

Также на ФЭНДОМЕ

Случайная вики