Mod语法:修订间差异

来自RustedWarfare Wiki
添加的内容 删除的内容
第1行: 第1行:
{{欢迎编辑}}
{{欢迎编辑}}
== .ini文件 ==
== .ini文件 ==
UTF-8纯文本文件。游戏通过读取以<code>.ini</code>为扩展名的文件来获取具体单位的<u title="实际参数(Argument)" style="cursor: help;">参数</u>信息。其内容主要由节(Section)、<u title="形式参数(Parameter)" style="cursor: help;">参数</u>(Parameter)和它的值(Value)两部分组成。两者各自和之间均以实际的换行符作为分隔
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%;">
#节由两个半角方括号包裹,单独占一行
[section]
[section]
#参数由它的名称和它的值构成,名称和值使用半角冒号分隔,通常单独占一行
parameter: value
name: value
</pre>
</pre>
<span style="font-size:12px;color:#888;"><nowiki>*</nowiki>另有部分特殊用途的代码存在不同的书写格式,待到具体代码再作讲解。</span>
<p style="font-size:12px;color:#888;margin-top:0px;"><nowiki>*</nowiki>另有部分代码存在不同的书写格式,待到具体代码再作讲解。</p>


其中,参数从属于它对应的节,其规定的对应节下起作用;不同参数有不同类型的值,且规定有自己的取值区间。
参数从属于节要想具体参数从属于具体节,需将节写参数行上方;不同参数的值有不同类型,且规定有取值区间。
=== 节的类型 ===

截至<u>1.15</u>版本,公开可用的节的类型有:
截至<u>1.15</u>版本,节的类型有:
<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%;">
[core]--基础节,
[core]--基础节,
第36行: 第37行:
[decal_NAME]--贴花节
[decal_NAME]--贴花节
</pre>
</pre>
部分节可以自行添加名称或序号,这样得到的同类型不同名称的节,在应用时是独立的;允许重复写名称的节使其分布在文档的不同位置。
部分节可以自行添加名称或序号,这样得到的同类型不同名称的节,在应用时是独立的;允许重复写个节使其分布在文档的不同位置。
===参数===

参数(行)必须跟随在某个节的后面,以从属该节;节会因缺少必要参数而报错;部分参数有默认值,即使不出也会起作用。<br />
参数(行)必须跟随在某个节的后面,以从属该节;节会因缺少必要参数而报错;部分参数有默认值,即使不出也会起作用。<br />
具体参数介绍请移步至[[mod参数]]。
游戏为了实现某些功能,积累了较多的参数代码,以下将按节类型进行归纳。

<i style="font-size:16px;">[core]</i>
<table style="border-collapse: collapse;width: 100%;font-size: 14px;line-height: 1.5em;text-align: center;">
<tr>
<th style="border-top: none;border-bottom: 1px solid;padding: .6em 1em;white-space: pre-wrap;">参数名</th>
<th style="border-top: none;border-bottom: 1px solid;padding: .6em 1em;white-space: pre-wrap;">说明</th>
<th style="border-top: none;border-bottom: 1px solid;padding: .6em 1em;white-space: pre-wrap;">类型</th>
<th style="border-top: none;border-bottom: 1px solid;padding: .6em 1em;white-space: pre-wrap;">默认值</th>
<th style="border-top: none;border-bottom: 1px solid;padding: .6em 1em;white-space: pre-wrap;">举例</th>
</tr>
<tr>
<td style="border-top: 1px solid;border-bottom: 1px solid;padding: .6em 1em;white-space: pre-wrap;">name</td>
<td style="border-top: 1px solid;border-bottom: 1px solid;padding: .6em 1em;white-space: pre-wrap;">单位的引用名</td>
<td style="border-top: 1px solid;border-bottom: 1px solid;padding: .6em 1em;white-space: pre-wrap;">string</td>
<td style="border-top: 1px solid;border-bottom: 1px solid;padding: .6em 1em;white-space: pre-wrap;"></td>
<td style="border-top: 1px solid;border-bottom: 1px solid;padding: .6em 1em;white-space: pre-wrap;">name: c_tank_plus</td>
</tr>
<tr>
<td style="border-top: 1px solid;border-bottom: 1px solid;padding: .6em 1em;white-space: pre-wrap;">mass</td>
<td style="border-top: 1px solid;border-bottom: 1px solid;padding: .6em 1em;white-space: pre-wrap;">单位的重量</td>
<td style="border-top: 1px solid;border-bottom: 1px solid;padding: .6em 1em;white-space: pre-wrap;">int</td>
<td style="border-top: 1px solid;border-bottom: 1px solid;padding: .6em 1em;white-space: pre-wrap;"></td>
<td style="border-top: 1px solid;border-bottom: 1px solid;padding: .6em 1em;white-space: pre-wrap;">mass: 9000</td>
</tr>
<tr>
<td style="border-top: 1px solid;border-bottom: 1px solid;padding: .6em 1em;white-space: pre-wrap;">radius</td>
<td style="border-top: 1px solid;border-bottom: 1px solid;padding: .6em 1em;white-space: pre-wrap;">单位的碰撞半径</td>
<td style="border-top: 1px solid;border-bottom: 1px solid;padding: .6em 1em;white-space: pre-wrap;">int</td>
<td style="border-top: 1px solid;border-bottom: 1px solid;padding: .6em 1em;white-space: pre-wrap;"></td>
<td style="border-top: 1px solid;border-bottom: 1px solid;padding: .6em 1em;white-space: pre-wrap;">radius: 10</td>
</tr>
</table>


== mod-info.txt文件 ==
== mod-info.txt文件 ==

2023年2月17日 (五) 20:55的版本

.ini文件

UTF-8纯文本文件。游戏通过读取以.ini为扩展名的文件来获取定义给某个单位的参数信息。其内容主要由节(Section)和参数(Parameter)两部分组成。

格式

#节由两个半角方括号包裹,单独占一行
[section]
#参数由它的名称和它的值构成,名称和值使用半角冒号分隔,通常单独占一行
name: value

*另有部分代码存在不同的书写格式,待到具体代码再作讲解。

参数从属于节,要想具体参数从属于具体节,需将节写在参数行的上方;不同参数的值有不同类型,且规定有取值区间。

节的类型

截至1.15版本,节的类型有:

[core]--基础节,
[canBuild_NAME]--可建造节
[graphics]--图像节
[attack]--攻击节
[turret_NAME]--炮塔节
[projectile_NAME]--炮弹节
[movement]--移动节
[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]--贴花节

部分节可以自行添加名称或序号,这样得到的同类型不同名称的节,在应用时是独立的;允许重复写一个节使其分布在文档的不同位置。

参数

参数(行)必须跟随在某个节的后面,以从属该节;节会因缺少必要参数而报错;部分参数有默认值,即使不写出也会起作用。
具体参数介绍请移步至mod参数

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