Mod语法:修订间差异

添加的内容 删除的内容
(这种方式好像很难给小白讲全面,考虑了半天没有写出东西,是不是要换成例子作为切入点的方式啊,,,这是自言自语)
无编辑摘要
第2行: 第2行:
== .ini文件 ==
== .ini文件 ==
纯文本文件。游戏通过读取以<code>.ini</code>为扩展名的文件来获取具体[[单位]]的属性。内容组成方面,由节(section)、键(key)、注释(comment)三个部分组成:
纯文本文件。游戏通过读取以<code>.ini</code>为扩展名的文件来获取具体[[单位]]的属性。内容组成方面,由节(section)、键(key)、注释(comment)三个部分组成:
=== 节(section) ===

=== 节 ===
包含用两个半角英文方括号包围的节的名称([section]),单独占一行。用于声明相关的键从属于该节。其后的行直到另一个节前一行的键均归属于该节。名称不同的节视为不同类型的节。
包含用两个半角英文方括号包围的节的名称([section]),单独占一行。用于声明相关的键从属于该节。其后的行直到另一个节前一行的键均归属于该节。名称不同的节视为不同类型的节。


第29行: 第28行:
[comment_NAME]
[comment_NAME]
</pre>
</pre>
=== 属性(property) ===

在Rusted Warfare中,属性包含一组键值对。键(key)的名称与其对应的值(value)用半角冒号隔开,单独占一行。用于规定单位的具体属性。名称不同的键视为不同类型的键,名称相同的键从属于不同类型的节视为不同类型的键。
=== 键 ===
又称属性(property),包含用冒号(:)或等号(=)连接的键的名称(name)和键的值(value),单独占一行。用于规定单位的具体属性。名称不同的键视为不同类型的键,名称相同的键从属于不同类型的节视为不同类型的键。

键的类型:
<pre style="white-space:pre;overflow:auto;">
(待补充)
</pre>

=== 注释 ===
=== 注释 ===
注释即为对代码的解释和说明。清晰的注释有利于帮助理解代码的含义。铁锈战争的<code>.ini</code>文件语法在注释方面提供了三种方式:
<q>注释就是对代码的解释和说明,其目的是让人们能够更加轻松地了解代码。注释是编写程序时,写程序的人给一个语句、程序段、函数等的解释或提示,能提高程序代码的可读性。注释只是为了提高可读性,不会被计算机编译。</q>

铁锈战争的<code>.ini</code>文件语法在注释方面提供了三种方式:


(1)用<code>#</code>进行单行的注释
(1)用<code>#</code>进行单行的注释


在行的开头加上<code>#</code>意味着计算机不编译该行内容。
在行的开头加上符号<code>#</code>后,游戏程序忽略这一内容,不将其作为代码解析。但编写这些的人类可以注意到这些
<pre style="white-space:pre;overflow:auto;">
<pre style="white-space:pre;overflow:auto;">
[projectile_1]
[projectile_1]
第53行: 第43行:
</pre>
</pre>

(2)用<code>"""</code>和<code>"""</code>的组合进行多行注释
(2)用<code>"""</code>和<code>"""</code>的组合进行多行注释


在行头使用<code>"""</code>作为起始,在之后的行尾使用<code>"""</code>作为结束。在其之间的内容均会被编译
在行头使用<code>"""</code>作为起始,在之后的行尾使用<code>"""</code>作为结束。在其之间的内容均会被游戏忽略
<pre style="white-space:pre;overflow:auto;">
<pre style="white-space:pre;overflow:auto;">
"""
"""
第68行: 第57行:
"""
"""
</pre>
</pre>

(3)用<code>[comment_NAME]</code>进行成节的注释
(3)用<code>[comment_NAME]</code>进行成节的注释


该节之后的行直到下一个节前一行均不会被编译
该节之后的行直到下一个节前一行均不会被加载
<pre style="white-space:pre;overflow:auto;">
<pre style="white-space:pre;overflow:auto;">
[comment_hiddenAction_1]
[comment_hiddenAction_1]
第79行: 第67行:
maxHp: 2000
maxHp: 2000
[core]
[core]
#[comment_NAME]节下的东西是不会被编译的,去引用它会提示找不到任何key
#[comment_NAME]节下的东西是不会被加载的,去引用它会提示找不到任何key
@copyFromSection: comment_1
@copyFromSection: comment_1
</pre>
</pre>

== mod-info.txt文件 ==
== mod-info.txt文件 ==
纯文本文件。游戏通过在mod文件夹根目录读取<code>mod-info.txt</code>这样命名的文件来获得mod作者提供的mod描述信息。
纯文本文件。游戏通过在mod文件夹根目录读取<code>mod-info.txt</code>这样命名的文件来获得mod作者提供的mod描述信息。
第110行: 第97行:
注释"""
注释"""
</pre>
</pre>

== all-units.template文件 ==
== all-units.template文件 ==
纯文本文件。游戏会将<code>all-units.template</code>这样命名的文件作为<code>.ini</code>文件进行读取。文件中的代码会自动应用(效果与使用<code>core</code>节下的<code>copyFrom</code>一致)到同级及以下级文件夹的所有<code>.ini</code>文件中。若存在代码错误,报错不会指向其本身,而是其所应用的<code>.ini</code>文件。
<code>all-units.template</code>也是INI格式的文件。文件中的代码会自动应用到模组内的所有单位中(效果与使用<code>core</code>节下的<code>copyFrom</code>一致)到同级及以下级文件夹的所有<code>.ini</code>文件中。若存在代码错误,报错不会指向其本身,而是其所应用的<code>.ini</code>文件。