Mod语法
![]() |
Rusted Wiki欢迎您参与完善本条目 |
.ini文件
UTF-8纯文本文件。游戏通过读取以.ini
为扩展名的文件来获得某个单位的参数信息。其内容主要由节(Section)和参数(Parameter)两部分组成。
格式
#节由两个半角方括号包裹,单独占一行 [section] #参数由它的名称和它的值构成,名称和值使用半角冒号分隔,通常单独占一行 name: value
*另有部分代码存在不同的书写格式,待到具体代码再作讲解。
参数从属于节,要想具体参数从属于具体节,需将节写在参数行的上方;不同参数的值有不同类型,且规定有取值区间。
节的类型
截至1.15版本,节的类型有:
[core]--基础节,涉及单位的名称、生命值、体积大小、是建筑与否、等基本设置。 [canBuild_NAME]--可建造节,涉及单位能建造生产那些单位,建造方式和条件等设置。 [graphics]--图像节,涉及单位主体贴图等设置。 [attack]--攻击节,涉及单位能攻击与否、最大攻击范围等设置。 [turret_NAME]--炮塔节,涉及单位炮塔的贴图、旋转速度、攻击间隔等设置。 [projectile_NAME]--炮弹节,涉及单位炮塔发射的弹丸的贴图、寿命、飞行速度、伤害等设置。 [movement]--移动节,涉及单位的移动类型、速度、转向速度等设置。 [ai]--AI节,涉及AI玩家对该单位的建造、升级概率等设置。 [arm_#]--臂节,涉及单位臂装饰物的位置、贴图等设置。 [leg_#]--腿节,同上。 [attachment_NAME]--附件节,涉及单位的子附属单位的位置、能攻击与否等设置。 [action_NAME]--操作节,涉及单位的资源手动添加、手动升级按钮、添加路径点等设置。 [hiddenAction_NAME]--隐藏的操作节,同上。 [effect_NAME]--特效节,涉及单位炮塔开火,弹丸飞行、爆炸等生成的特效的设置。 [animation_NAME]--动画节,涉及单位移动、部署、攻击等时机播放的帧动画的设置。 [placementRule_NAME]--放置规则节,单位建造时放置的规则的设置。 [global_resource_NAME]--全局资源节,队伍内单位通用的自定义资源的名称、样式设置。 [resource_NAME]--资源节,具体单位自用的自定义资源的名称样式设置 [template_NAME]--模板节,节之间复制参数时选用。 [comment_NAME]--注释节,用于大篇幅注释。 [decal_NAME]--贴花节,单位身上的贴花、伪3D等设置。
部分节可以自行添加名称或序号,这样得到的同类型不同名称的节,在应用时是独立的;允许重复书写一个节使其分布在文档的不同位置。
参数的类型
参数(行)必须跟随在某个节的后面,以从属该节;节会因缺少必要参数而报错;部分参数有默认值,即使不写出也会起作用。
具体参数介绍请移步至mod参数。
例子解释
一个.ini
文件包含了游戏中一个单位的所要的参数,如游戏原版的小坦克,它是攻击移动和火炮威力都是通过"tank.ini"文件描述的。下面我们来具体看一下这个.ini
文件的具体内容是什么样的,这样也好让原本".ini"这个空的名字在你心中有些分量。
[core] # name: c_tank displayLocaleKey: tank overrideAndReplace: tank class: CustomUnitMetadata price: 350 maxHp: 210 mass: 3000 techLevel: 1 buildSpeed: 0.0020 #availableInDemo: true radius: 11 displayRadius: 11 isBio: false softCollisionOnAll: 0 [graphics] total_frames: 3 image: tank.png image_wreak: tank_dead.png image_turret: tank_turret.png imageScale:0.8 turretImageScale:0.8 image_shadow: AUTO shadowOffsetX:1 shadowOffsetY:1 animation_moving_start: 0 animation_moving_end: 2 animation_moving_speed: 1 dustEffect: true [attack] canAttack: true canAttackFlyingUnits: false canAttackLandUnits: true canAttackUnderwaterUnits: false turretSize: 20 turretTurnSpeed: 4 maxAttackRange: 130 shootDelay: 75 [turret_1] # x: 0 y: 0 projectile: 1 turnSpeedAcceleration: 1.0 shoot_sound:tank_firing shoot_sound_vol:0.3 shoot_flame:small shoot_light:#FFEECCCC canShoot: true recoilOffset: -2 [projectile_1] directDamage: 25 life: 60 speed: 5 frame: 1 drawSize: 1 [movement] movementType: LAND moveSpeed: 1.1 moveAccelerationSpeed: 0.07 moveDecelerationSpeed: 0.17 maxTurnSpeed: 4.1 turnAcceleration: 0.25 moveSlidingMode :false moveIgnoringBody:false
.ini
的书写格式十分单调,无论碰到节还是参数,通通只写一个就会换行;结构方面,你可以将"[]"节和它后面跟着的多行参数看成一个功能模块,通常单位不需要某些模块的功能,你可以省略它的节不写,相反,如果你需要用到某个模块,你首先应写出它的节,再列出它的参数名,然后调整参数的值。
mod-info.txt文件
UTF-8纯文本文件。游戏通过读取位于mod文件夹根目录下mod-info.txt
这样命名的文件来获得由mod作者提供的mod的描述信息。
格式:
[mod] #告诉游戏能够支持该mod运行的最低游戏版本。若不满足要求的最低版本,提示后仍可加载,但除地图外不可用,同时不提供代码错误的报错提醒。 #填值时注意开头的"v" minVersion: v1.15p7 #该mod在游戏中显示的标题 title: Mega Builders #该mod在游戏中显示的描述。使用"\n"使其在显示时换行(pc版尚不能换行显示) description: Example mod which replaces builders with Mega Builders. #在游戏中播放mod里的.ogg或.wav音频文件作为背景音乐 [music] #填音乐文件夹的路径 sourceFolder: soundtrack #当使用该mod的单位时特别播放该mod的音乐,填"true"或"false" whenUsingUnitsFromThisMod_playExclusively: true #加入音乐播放列表,填"true"或"false" addToNormalPlaylist: false #该文件支持单行注释 """ 和 多行 注释 """
all-units.template文件
UTF-8纯文本文件。内容格式与.ini
文件一致。游戏程序会识别all-units.template
这样命名的文件,将其内容自动应用到同级及以下级的所有.ini
文件中(效果与使用core
节下的copyFrom
一致)。若存在代码错误,报错不会指向其本身,而是其所应用的.ini
文件。另外,若两文件同一参数的值存在冲突,下级的all-units.template
会覆盖上级的all-units.template
。