Mod语法:修订间差异
添加的内容 删除的内容
小 (→节的类型) |
小 (这块内容被我写乱了,谁有好的叙述想法,请把它们全部清空后重写) |
||
第1行: | 第1行: | ||
{{欢迎编辑}} |
{{欢迎编辑}} |
||
== .ini文件 == |
== .ini文件 == |
||
UTF-8纯文本文件。游戏通过读取以<code>.ini</code>为扩展名的文件来获 |
UTF-8纯文本文件。游戏通过读取以<code>.ini</code>为扩展名的文件来获得某个单位的参数信息。其内容主要由节(Section)和参数(Parameter)两部分组成。 |
||
=== 格式 === |
=== 格式 === |
||
<pre style="white-space:pre;overflow:auto;margin:0;padding:0;width:100%;"> |
<pre style="white-space:pre;overflow:auto;margin:0;padding:0;width:100%;"> |
||
第39行: | 第39行: | ||
部分节可以自行添加名称或序号,这样得到的同类型不同名称的节,在应用时是独立的;允许重复书写一个节使其分布在文档的不同位置。 |
部分节可以自行添加名称或序号,这样得到的同类型不同名称的节,在应用时是独立的;允许重复书写一个节使其分布在文档的不同位置。 |
||
===参数=== |
=== 参数的类型 === |
||
参数(行)必须跟随在某个节的后面,以从属该节;节会因缺少必要参数而报错;部分参数有默认值,即使不写出也会起作用。<br /> |
参数(行)必须跟随在某个节的后面,以从属该节;节会因缺少必要参数而报错;部分参数有默认值,即使不写出也会起作用。<br /> |
||
具体参数介绍请移步至[[mod参数]]。 |
具体参数介绍请移步至[[mod参数]]。 |
||
=== 例子解释 === |
|||
一个<code>.ini</code>文件包含了游戏中一个单位的所要的参数,如游戏原版的小坦克,它是攻击移动和火炮威力都是通过"<abbr title="文件位于assets/units/tanks目录下">tank.ini</abbr>"文件描述的。下面我们来具体看一下这个<code>.ini</code>文件的具体内容是什么样的,这样也好让原本".ini"这个空的名字在你心中有些分量。 |
|||
<pre style="white-space:pre;overflow:auto;margin:0;padding:0;width:100%;"> |
|||
[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 |
|||
</pre> |
|||
<code>.ini</code>的书写格式十分单调,无论碰到节还是参数,通通只写一个就会换行;结构方面,你可以将"[]"节和它后面跟着的多行参数看成一个功能模块,通常单位不需要某些模块的功能,你可以省略它的节不写,相反,如果你需要用到某个模块,你首先应写出它的节,再列出它的参数名,然后调整参数的值。 |
|||
== mod-info.txt文件 == |
== mod-info.txt文件 == |