坎巴拉太空计划是一款很高端的游戏作品,玩家需要有一定的相关知识才能领会到这款游戏的乐趣,可玩不是什么游戏都那么容易玩的,游戏中玩家可以通过修改文件的方式达到修改组建功能的目的,不过一般只要不是修改太大不容易产生错误,今天小编给代价带来修改组件功能的教程,对代码感兴趣的玩家可以尝试一下哦。
Part-1准备阶段
首先,我们需要一个编辑cfg后缀文本的软件,这里我非常推崇Notepad++
因为它可以读取任何一种后缀的文件,(即使是图片也可以打开)
我以前制作过骑砍和CK2的MOD,它都可以作为主要的编辑工具,
可以说是一个改派多面手,非常强大的文本编辑工具
Part-2选定目标
既然是通过修改原有的组件来达到制作出新的组件的目的
那么我们必须知道,这些组件在游戏的哪个位置,
对于游戏原版组件来说、它们都存在于这里
游戏文件夹GameData\Squad\Parts\
在这个Parts里面你可以看到有很多的种类
比如Electrical(电力部件)FuelTank(燃料舱)这些
打开它们你能发现每个组件以文件夹的形式而存在着
比如Electrical里面的largeSolarPanel,
这个就是我们在游戏里面看到的最大的那个太阳能板
再比如Engine里面的liquidEngine1
这个就是我们在游戏里面的一种液体引擎
这些文件夹其中就包含着所有的部件信息
打开其中的一个,你会发现这个文件夹里面通常会有三种文件
model.mu——模型文件
model00X.mbm——贴图文件
part.cfg——模型信息,也就是我们所要编辑的地方
右键点击part.cfg,在选项中选择用Notepad++编辑(Edit with Notepad++),
因为我们仅仅是选择一个拿来做模板的目标,所以不要急着修改这些文件
ctrl+F搜索title =,之后你就能找到这个文件在游戏当中的确切名字,
经过对于不同部件文件夹的多次查看,相信你能找到一个中意的模板来制作你的新部件
当然这里作为范例,我就选择了liquidEngine1,
它在游戏里面的名称是LV-T30 Liquid Fuel Engine,一种中小型的液体燃料引擎。
选择好了模板,我们就可以切换出去把liquidEngine1这个文件夹整体复制一份,
然后粘贴到一个GameData下属任意文件夹中你想要的位置
(是的,它在任何一个GameData文件夹下属的子文件夹内都能生效)
事实上为了整理起来比较方便,最好新建一个文件夹把所有的新部件都放入其中
(作为读取的文件夹、名称中一般不可以有中文,这个没有测试过)
这里我新建为:游戏文件夹\GameData\Ranran\
然后把刚刚复制的部件放入其中
这样就变成了:游戏文件夹\GameData\Ranran\liquidEngine1
接下来,我们就可以对我们的新部件进行编辑了
Part-3编辑文件
打开新的liquidEngine1文件夹,右键用Notepad++编辑part.cfg.
每种计算机语言当中都会有一个分隔符的存在,分隔符内或者同行的部分
将不会被读取,却可以作为编辑时候的标注,通常用的分隔符是#、/两种
在KSP的语法里面,/作为分隔符来标注内容。
所以所有有分隔符的地方,我们都可以统统无视,甚至直接删掉
比如这个“// --- standard part parameters ---”
假如无视掉分隔符内的内容,我们可以看到以下的部分
PART(它定义了整个文件夹的属性,是作为部件而存在的,千万不要去动它)
{(元组对称符号,意味着接下来一直到对应的“}”为止,都是部件的内容)
name = liquidEngine
(部件的ID名称,它是隐藏的一个组成部分,但是你一定要对它进行修改,让它与其他的部件的ID不同,这里我们修改为liquidEngine001)
module = Part
(定义它的属性,这里它是一个部件,而不是一个场景物品或者别的什么,所以不要动它)
author = NovaSilisko
(定义它的作者,我们可以把他改成自己的名字,这里我改成了Ranran)
mesh = model.mu
(读取的模型名称,和外面的同名即可,既然这里模型没有变化,我们也不需要去改这个)
scale = 0.1
(基本的模型倍数,实际上我们最好不要去修改它,因为它和节点直接相关,如果有的部件里面存在着rescaleFactor = X这个定义行,你可以通过放大(缩小)X的倍数来扩大(缩小)它,这样节点也会对应着放大和缩小)
node_stack_top = 0.0, 7.21461, 0.0, 0.0, 1.0, 0.0
node_stack_bottom = 0.0, -7.27403, 0.0, 0.0, 1.0, 0.0
fx_exhaustFlame_blue = 0.0, -10.3, 0.0, 0.0, 1.0, 0.0,
runningfx_exhaustLight_blue = 0.0, -10.3, 0.0, 0.0, 0.0, 1.0,
runningfx_smokeTrail_light = 0.0, -10.3, 0.0, 0.0, 1.0, 0.0,
runningfx_exhaustSparks_flameout = 0.0, -10.3, 0.0, 0.0, 1.0, 0.0, flameout
(节点数据,如果你没有弄明白它们的含义,那么千万不要去动他们)
sound_vent_medium = engage
sound_rocket_hard = running
sound_vent_soft = disengage
sound_explosion_low = flameout
(各种时刻的播放音乐,实际上就是引擎启动各种时刻的噪音,如果你实在不堪忍受某些吵到爆的引擎,比如那些加在边缘的小型助推引擎,你也可以改成别的)
cost = 850
(部件的价格,目前没有用)
category = Propulsion
(部件的定义,这个只决定了它在游戏中所出现的位置,这里是动力部分)
subcategory = 0
(暂时用不到的东西)
title = LV-T30 Liquid Fuel Engine
(在游戏中的名称,这里可以使用中文,我们可以把它随意修改,这里我把它改成"冄燃一型液体燃料引擎")
manufacturer = Jebediah Kerman's Junkyard and Spaceship Parts Co.
(在游戏中的制造商,这里可以使用中文,我们可以把它随意修改,这里我把它改成"冄燃联合航空公司")
description = Although criticized by some due to its not unsignificant use of so-called "pieces found lying about", the LV-T series has proven itself as a comparatively reliable engine. The T30 model boasts a failure ratio below the 50% mark. This has been considered a major improvement over previous models by engineers and LV-T enthusiasts.
(在游戏中的定义,这里也可以使用中文,我们可以把它随意修改,随便写点好玩的东西就行了,比如,"这是一款玩家编辑的逆天引擎")
attachRules = 1,0,1,0,0
(贴合规则,这个我还在研究当中..如果有兴趣可以改着试试看)
mass = 1.25
(重量,单位是吨,如果你喜欢的话可以减轻一些)
dragModelType = default
maximum_drag = 0.2
minimum_drag = 0.2
angularDrag = 2
(最大拖力和最小拖力,以及角度,大概就是说连接时的紧密程度,不过暂时还不是特别会改,如果你想试试看,可以稍微增大一些,比如0.2变成0.3之类)
crashTolerance = 7
(撞击耐受度,一般来说引擎12-15就已经很变态了,如果改成几百的话、、估计永远都不会被撞坏、、)
maxTemp = 3600
(温度耐受度,一般定义是和引擎材料相关,如果你不想自己的引擎被人说成是伪科技的话、、最好不要太高、、)
stagingIcon = LIQUID_ENGINE
(发射阶段的标志、游戏中的左侧一行,你如果熟练了,可以参照其他的改成别的、也可以自己摸索着做一些新的标志。)
MODULE
(功能模组,这个定义了所有的功能部分,引擎有引擎的功能模组,发电机有发电机的功能模组,太阳能板有太阳能板的功能模组,这里就不一一举例,只说目前这个引擎的定义文件有的,其他的大家可以自行摸索,一法通,万法通。)
{
name = ModuleEngines
(这意味着这是一个引擎的功能)
thrustVectorTransformName = thrustTransform
(推进向量名称,向后推进)
exhaustDamage = True
(排气是否造成损伤,是为True 不是为False)
ignitionThreshold = 0.1
(点火临界值?我也不明白、、别乱改、、如果你知道的话希望能回复告诉我、、)
minThrust = 0
(最小推力)
maxThrust = 215
(最大推力,适度修改有益身心)
heatProduction = 400
(产生热量)
fxOffset = 0, 0, 0.8
PROPELLANT
(燃料消耗部分,主要是一个配比问题,如果你没有调整的燃料箱配比的话、最好不要修改)
{
name = LiquidFuel
(能源名称)
ratio = 0.9
DrawGauge = True
}
PROPELLANT
{
name = Oxidizer
(能源名称)
ratio = 1.1
}
atmosphereCurve
(比冲,第一个370是大气层外的比冲,第二个320是大气层内的比冲,越高的话能源消耗越少,假如翻倍的话,同样的能源就可以多用一倍的时间、怎么说呢——适度修改有益身心)
{
key = 0 370
key = 1 320
}
}
MODULE
{
(一个抛弃时用到的脚本、这里不做太详细的介绍,因为这个存在感不高、、)
name = ModuleJettison
jettisonName = fairing
bottomNodeName = bottom
isFairing = True
jettisonedObjectMass = 0.1
jettisonForce = 5
jettisonDirection = 0 0 1
}
MODULE
(产热功能脚本)
{
name = ModuleAnimateHeat
}
MODULE
(引擎发电脚本,Rate决定发电的速度,当然、你也可以把电改成别的、、)
{
name = ModuleAlternator
RESOURCE
{
name = ElectricCharge
rate = 1.0
}
}
RESOURCE
(能源存储脚本,这里有一个这样的0电能存储脚本是为了发电的时候有一个中介的地方,不然电能会无处所去,如果你想去找找其他的能源存储脚本,不妨去研究研究燃料舱的定义文件。)
{
name = ElectricCharge
(能源名称)
amount = 0
(能源数量)
maxAmount = 0
(能源最大存储单位)
}
}
修改完毕以后保存,打开游戏去找找你的新部件吧