(翻译重校,未完成版) |
|||
第4行: | 第4行: | ||
数组在{{ruby|'''指令'''|effects}}中发挥作用,并且{{ruby|'''触发器'''|trigger}}能够从中读取数据。指令既可以使数组迭代入其他指令,也能使其数据在自身内进行迭代。 | 数组在{{ruby|'''指令'''|effects}}中发挥作用,并且{{ruby|'''触发器'''|trigger}}能够从中读取数据。指令既可以使数组迭代入其他指令,也能使其数据在自身内进行迭代。 | ||
以下,使用<>括起的内容为'''数据类型''',等号左侧的标识符为'''参数名称'''。 | |||
== 指令(Effects)== | == 指令(Effects)== | ||
{{SVersion|1.10}} | {{SVersion|1.10}} | ||
第17行: | 第17行: | ||
} | } | ||
</pre> | </pre> | ||
一 旦将元素添加到数组中 ,就会创 建 一个数组。 | |||
array 是数组的名称,也是指令和触发器调用它的依据。 | |||
value 是指 要加入 数组的数据内容,它既可以是数字形式的(如1 或 var:my_num),也可以是作用域形式的(如GER 或 var:my_scope)。这些都是选填内容,如果不填 , 则会将当前作用域填入此处。 | |||
index 指数据内容应当被插入数组的哪个位置。{{ruby|'''缺省'''|default data}}(现普遍称'''默认''')情况下 ,value 会 接续在 数组最后 。 其他情况下 ,原有的 数据会自动 向后移位以 适 应插入 。 | |||
这部分的简便写法是:<code>add_to_array = { <name> = <value> }</code> | 这部分的简便写法是:<code>add_to_array = { <name> = <value> }</code> | ||
第36行: | 第36行: | ||
} | } | ||
</pre> | </pre> | ||
array 是 将被移除 数据的数组名称 。 | |||
value 是想要移除的数据内容 。 | |||
index 指移除操作所选择的'''开始''' 位置 。 | |||
如果value和index | 如果value和index都未定义,那 么array只有 最后一个 元素 会被 移 除 。 | ||
这部分的简便写法是:<code>remove_from_array = { <name> = <value> }</code> | 这部分的简便写法是:<code>remove_from_array = { <name> = <value> }</code> | ||
第52行: | 第52行: | ||
<pre>clear_array = <name></pre> | <pre>clear_array = <name></pre> | ||
清 | 清 空 指定数组 。 | ||
=== 重置数组规模(resize_array) === | === 重置数组规模(resize_array) === | ||
第63行: | 第63行: | ||
} | } | ||
</pre> | </pre> | ||
重置特定数 | 重置特定数 组array 的规模 (size) 。 | ||
如果 扩大现有 数组 的规模 , 多出来的新 元素 将被置为value; 如果 缩小现有 数组 的规模 ,则 自index=size开始 的元素 将被丢弃 。 | |||
这部分的简便写法是: <code>resize_array = { <name> = <size> }</code> | 这部分的简便写法是: <code>resize_array = { <name> = <size> }</code> | ||
第83行: | 第81行: | ||
} | } | ||
</pre> | </pre> | ||
进行循环操作 | 对指定数组 进行 有条件的 循环操作 。 只 要limit 为真,就 重复 执行指令 组(用花括号括起的指令集合)。 | ||
break | break 接受 一个{{ruby|'''临时变量'''|temp variable}}, 当传递给break的变量取值为'''非0'''时,迭代将结束。 缺省 情况下,break接受的变量名 为 <code>break</code> 。break无法在本指令之外被访问 。 | ||
本指令接受指令组作为其参数, 以指 定对数组元素进 行 的 操作。 | |||
该指令会隐性地将当前数组array作为参数。 | |||
===for each循环指令(for_each_loop)=== | ===for each循环指令(for_each_loop)=== | ||
第103行: | 第102行: | ||
} | } | ||
</pre> | </pre> | ||
对 | 对 指 定数组中的 每个元素调用指令组 。 | ||
value | value 指定了 一个临时变量, 指向迭代过程中 的 当前元素 ,缺省值为<code>v</code>。 | ||
index | index 指定了 一个临时变量, 指向迭代过程中 的 当前 位置,缺省值为<code>i</code>。 | ||
break后应分配一个非零临时变量 | break后应分配一个''' 非零''' 临时变量以结束迭代,缺省值为<code>break</code>。 | ||
在此循环中可以写入指令执行某些操作, | 在此循环中可以写入指令执行某些操作, 并隐性地以当前数组为参 数 | ||
第125行: | 第124行: | ||
} | } | ||
</pre> | </pre> | ||
对 | 对 指 定数组中的 每个元素调用指令组 ,并 且 在每次 调用 时将当前作用域 更改为当前元素 。 | ||
break后应分配一个非零临时变量 | break后应分配一个''' 非零''' 临时变量以结束迭代,缺省值为<code>break</code>。 | ||
在此循环中可以写入指令执行某些操作, | 在此循环中可以写入指令执行某些操作, 并隐性地以当前数组为参 数 | ||
第144行: | 第143行: | ||
} | } | ||
</pre> | </pre> | ||
对特定的数组中的变量进行循环操作,并在每次迭代时将 | 对特定的数组中的 每一 变量进行循环操作,并在每次迭代时将 当前作用域 改为 随机 作用域( 当前数组 内 的 一个 随机的、不同于 当前作用域的变量)。 | ||
break后应分配一个非零临时变量 | break后应分配一个''' 非零''' 临时变量以结束迭代,缺省值为<code>break</code>。 | ||
在此循环中可以写入指令执行某些操作,所用的数据内容应均在array内。 | 在此循环中可以写入指令执行某些操作,所用的数据内容应均在array内。 | ||
第174行: | 第173行: | ||
{{SVersion|1.10}} | {{SVersion|1.10}} | ||
=== | === 包含关系 (is_in_array)=== | ||
{{SVersion|1.10}} | {{SVersion|1.10}} | ||
第184行: | 第183行: | ||
</pre> | </pre> | ||
检测指定数 | 检测指定数 组array 是否 含有 指定 元素value。 | ||
=== | === 存在量词 (any_of)=== | ||
{{SVersion|1.10}} | {{SVersion|1.10}} | ||
第198行: | 第197行: | ||
} | } | ||
</pre> | </pre> | ||
对指定数组 | 对指定数组 内的每一元素调用<triggers> 并 比较 触发器输出和元素值。 如果任一 比较结果 值为真则触发器输出为真,否则为假。 | ||
=== | === 全称量词 (all_of) === | ||
{{SVersion|1.10}} | {{SVersion|1.10}} | ||
第214行: | 第213行: | ||
对指定数组进行循环操作,将<triggers>与当前变量进行比较,如果任一返回值为假则触发器输出为假,否则为真。 | 对指定数组进行循环操作,将<triggers>与当前变量进行比较,如果任一返回值为假则触发器输出为假,否则为真。 | ||
===作用域 | ===作用域 存在量词 (any_of_scopes)=== | ||
{{SVersion|1.10}} | {{SVersion|1.10}} | ||
第226行: | 第225行: | ||
对指定数组进行循环操作,将<triggers>与当前作用域进行比较,如果任一返回值为真则触发器输出为真,否则为假。 | 对指定数组进行循环操作,将<triggers>与当前作用域进行比较,如果任一返回值为真则触发器输出为真,否则为假。 | ||
===作用域 | ===作用域 全称量词 (all_of_scopes)=== | ||
{{SVersion|1.10}} | {{SVersion|1.10}} | ||
第243行: | 第242行: | ||
你可以将某数组内变量的数目输出出来,只需要这么写:<code>set_variable = { var_name = array_name^num }</code> 。 | 你可以将某数组内变量的数目输出出来,只需要这么写:<code>set_variable = { var_name = array_name^num }</code> 。 | ||
== | == 例子 == | ||
{{SVersion|1.10}} | {{SVersion|1.10}} | ||
{{Modding navbox}} | {{Modding navbox}} | ||
[[Category:Modding]] | [[Category:Modding]] |
2021年2月9日 (二) 22:23的版本
数组是《钢铁雄心IV》中用以存储变量的方式,变量既可以是
数组在
以下,使用<>括起的内容为数据类型,等号左侧的标识符为参数名称。
指令(Effects)
File:Ambox outdated info.png | 这部分内容可能已不适合当前版本,最后更新于1.10。 |
添加到数组(add_to_array)
File:Ambox outdated info.png | 这部分内容可能已不适合当前版本,最后更新于1.10。 |
add_to_array = { array = <name> value = <value> index = <index> }
一旦将元素添加到数组中,就会创建一个数组。
array 是数组的名称,也是指令和触发器调用它的依据。
value 是指要加入数组的数据内容,它既可以是数字形式的(如1 或 var:my_num),也可以是作用域形式的(如GER 或 var:my_scope)。这些都是选填内容,如果不填,则会将当前作用域填入此处。
index 指数据内容应当被插入数组的哪个位置。
这部分的简便写法是:add_to_array = { <name> = <value> }
从数组中移除(remove_from_array)
File:Ambox outdated info.png | 这部分内容可能已不适合当前版本,最后更新于1.10。 |
remove_from_array = { array = <name> value = <value> index = <index> }
array 是将被移除数据的数组名称。
value 是想要移除的数据内容。
index 指移除操作所选择的开始位置。
如果value和index都未定义,那么array只有最后一个元素会被移除。
这部分的简便写法是:remove_from_array = { <name> = <value> }
清空数组(clear_array)
File:Ambox outdated info.png | 这部分内容可能已不适合当前版本,最后更新于1.10。 |
clear_array = <name>
清空指定数组。
重置数组规模(resize_array)
File:Ambox outdated info.png | 这部分内容可能已不适合当前版本,最后更新于1.10。 |
resize_array = { array = <name> value = <value> size = <int> }
重置特定数组array的规模(size)。
如果扩大现有数组的规模,多出来的新元素将被置为value;如果缩小现有数组的规模,则自index=size开始的元素将被丢弃。
这部分的简便写法是: resize_array = { <name> = <size> }
while循环指令(while_loop_effect)
File:Ambox outdated info.png | 这部分内容可能已不适合当前版本,最后更新于1.10。 |
while_loop_effect = { break = <string> limit = { <triggers> } <effects> }
对指定数组进行有条件的循环操作。只要limit为真,就重复执行指令组(用花括号括起的指令集合)。
break接受一个break
。break无法在本指令之外被访问。
本指令接受指令组作为其参数,以指定对数组元素进行的操作。
该指令会隐性地将当前数组array作为参数。
for each循环指令(for_each_loop)
File:Ambox outdated info.png | 这部分内容可能已不适合当前版本,最后更新于1.10。 |
for_each_loop = { array = <name> value = <string> index = <string> break = <string> <effects> }
对指定数组中的每个元素调用指令组。
value指定了一个临时变量,指向迭代过程中的当前元素,缺省值为v
。
index指定了一个临时变量,指向迭代过程中的当前位置,缺省值为i
。
break后应分配一个非零临时变量以结束迭代,缺省值为break
。
在此循环中可以写入指令执行某些操作,并隐性地以当前数组为参数
for each作用域循环指令(for_each_scope_loop)
File:Ambox outdated info.png | 这部分内容可能已不适合当前版本,最后更新于1.10。 |
for_each_scope_loop = { array = <name> break = <string> <effects> }
对指定数组中的每个元素调用指令组,并且在每次调用时将当前作用域更改为当前元素。
break后应分配一个非零临时变量以结束迭代,缺省值为break
。
在此循环中可以写入指令执行某些操作,并隐性地以当前数组为参数
随机作用域指令(random_scope_in_array)
File:Ambox outdated info.png | 这部分内容可能已不适合当前版本,最后更新于1.10。 |
random_scope_in_array = { array = <name> break = <string> limit = { <triggers> } <effects> }
对特定的数组中的每一变量进行循环操作,并在每次迭代时将当前作用域改为随机作用域(当前数组内的一个随机的、不同于当前作用域的变量)。
break后应分配一个非零临时变量以结束迭代,缺省值为break
。
在此循环中可以写入指令执行某些操作,所用的数据内容应均在array内。
添加到临时数组(add_to_temp_array)
File:Ambox outdated info.png | 这部分内容可能已不适合当前版本,最后更新于1.10。 |
与add_to_array
代码相同,但存储对象为临时数组,此数组在脚本结束后就会消失。
从临时数组中移除(remove_from_temp_array)
File:Ambox outdated info.png | 这部分内容可能已不适合当前版本,最后更新于1.10。 |
与remove_from_array
代码相同,但存储对象为临时数组,此数组在脚本结束后就会消失。
清空临时数组(clear_temp_array)
File:Ambox outdated info.png | 这部分内容可能已不适合当前版本,最后更新于1.10。 |
与clear_array
代码相同,但存储对象为临时数组,此数组在脚本结束后就会消失。
重置临时数组规模(resize_temp_array)
File:Ambox outdated info.png | 这部分内容可能已不适合当前版本,最后更新于1.10。 |
与resize_array
代码相同,但存储对象为临时数组,此数组在脚本结束后就会消失。
触发器(Triggers)
File:Ambox outdated info.png | 这部分内容可能已不适合当前版本,最后更新于1.10。 |
包含关系(is_in_array)
File:Ambox outdated info.png | 这部分内容可能已不适合当前版本,最后更新于1.10。 |
is_in_array = { array = <name> value = <value> }
检测指定数组array是否含有指定元素value。
存在量词(any_of)
File:Ambox outdated info.png | 这部分内容可能已不适合当前版本,最后更新于1.10。 |
any_of = { array = <name> value = <string> index = <string> <triggers> }
对指定数组内的每一元素调用<triggers>并比较触发器输出和元素值。如果任一比较结果值为真则触发器输出为真,否则为假。
全称量词(all_of)
File:Ambox outdated info.png | 这部分内容可能已不适合当前版本,最后更新于1.10。 |
all_of = { array = <name> value = <string> index = <string> <triggers> }
对指定数组进行循环操作,将<triggers>与当前变量进行比较,如果任一返回值为假则触发器输出为假,否则为真。
作用域存在量词(any_of_scopes)
File:Ambox outdated info.png | 这部分内容可能已不适合当前版本,最后更新于1.10。 |
any_of_scopes = { array = <name> <triggers> }
对指定数组进行循环操作,将<triggers>与当前作用域进行比较,如果任一返回值为真则触发器输出为真,否则为假。
作用域全称量词(all_of_scopes)
File:Ambox outdated info.png | 这部分内容可能已不适合当前版本,最后更新于1.10。 |
all_of_scopes = { array = <name> <triggers> }
对指定数组进行循环操作,将<triggers>与当前作用域进行比较,如果任一返回值为假则触发器输出为假,否则为真。
附加信息
File:Ambox outdated info.png | 这部分内容可能已不适合当前版本,最后更新于1.10。 |
你可以将某数组内变量的数目输出出来,只需要这么写:set_variable = { var_name = array_name^num }
。
例子
File:Ambox outdated info.png | 这部分内容可能已不适合当前版本,最后更新于1.10。 |
文件 | 效果 • 条件 • 定义 • 修正 • 修正列表 • 作用域 • 本地化 • on action • 数据结构 (标记, 临时标记, 国家别名, 变量, 数组) |
脚本 | 成就修改 • AI修改 • AI focuses • 自治领修改 • 权力平衡修改 • 剧本/标签 (游戏规则)• 建筑修改 • 人物修改 • 修饰性TAG修改 • 国家创建 • 军队修改 • 决议制作 • 装备修改 • 事件修改 • Idea修改 • 意识形态修改 • 军工商修改 • 国策制作 • 资源修改 • Scripted GUI • 科技制作 • 单位修改 |
地图 | 地图 • 省份 • 补给区域 • 战略区域 |
图形图像 | 界面 • 图形资产 • 实体模型 • 后期特效 • 离子效果 • 字体 |
装饰性 | 肖像 • 命名列表 • 音乐 • 音效 |
其他 | 控制台指令 • 故障排除 • 模组结构 • 成就代码分析 • Mod相关 • Nudger修改 |