《坎巴拉太空计划》修改组件功能教程

时间:2014/01/02 18:55:14 编辑:Ocean

坎巴拉太空计划里面玩家可以通过修改文件的方式达到修改组建功能的目的,不过一般只要不是修改太大不容易产生错误,下面是修改组件功能的教程,对代码感兴趣的玩家可以尝试一下。

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

(能源最大存储单位)

}

}

修改完毕以后保存,打开游戏去找找你的新部件吧

游戏聚合
9.7
  • 好玩

    57+1
  • 不好玩

    3+1
相关攻略
相关游戏