无编辑摘要 |
小 (文本替换 - 替换“[[Category:”为“[[分类:”) |
||
(未显示3个用户的10个中间版本) | |||
第1行: | 第1行: | ||
{{version|1. | {{version|1.10}} | ||
数组是《钢铁雄心IV》中用以存储变量的方式,变量既可以是{{ruby|'''数字形式'''|numerical data}}的,也可以是{{ruby|'''作用域'''|scope data}}形式的。 | |||
数组 | 数组在{{ruby|'''指令'''|effects}} 中 发挥作用 , 并且{{ruby|'''触发器'''|trigger}}能够从中读取 数 据。指令既 可以 使 数 组迭代入其他指令,也能使其 数据 在自身内进行迭代 。 | ||
以 下 , 使用<>括起 的 内容为''' 数 据类型''',等号左侧 的 标识符为'''参 数 名称''' 。 | |||
== 指令(Effects)== | |||
{{SVersion|1.10}} | |||
=== 添加 到 数组 (add_to_array) === | |||
{{SVersion|1.10}} | |||
=== 添加数组 === | |||
{{SVersion|1. | |||
<pre>add_to_array = { | <pre>add_to_array = { | ||
第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> | ||
=== 从数组 中 移除 (remove_from_array) === | |||
{{SVersion|1.10}} | |||
=== 从数组移除 === | |||
{{SVersion|1. | |||
<pre>remove_from_array = { | <pre>remove_from_array = { | ||
array = <name> | |||
value = <value> | |||
index = <index> | |||
} | } | ||
</pre> | </pre> | ||
array 是将被移除数据的数组名称。 | |||
value 是 想 要移除 的 数据 内容 。 | |||
index 指 移除 操作所选择 的'''开始'''位置。 | |||
如果value和index都未定义,那么array只有最后一 个 元素会被 移除 。 | |||
这部分的简便写法是:<code>remove_from_array = { <name> = <value> }</code> | |||
=== 清 空 数组 (clear_array) === | |||
{{SVersion|1.10}} | |||
=== 清 | |||
{{SVersion|1. | |||
<pre>clear_array = <name></pre> | <pre>clear_array = <name></pre> | ||
清 | 清 空 指定数组 。 | ||
=== | === 重置 数组 规模(resize_array) === | ||
{{SVersion|1. | {{SVersion|1.10}} | ||
<pre>resize_array = { | <pre>resize_array = { | ||
array = <name> | |||
value = <value> | |||
size = <int> | |||
} | } | ||
</pre> | </pre> | ||
重置特定数组array的规模(size)。 | |||
如果扩大现有数组 的 规模,多出来的新元素将被置为value;如果缩小现有 数组 的规模,则自index=size开始的元素将被丢弃。 | |||
< | 这部分的简便写法是: <code>resize_array = { <name> = <size> }</code> | ||
===while循环 指 令(while_loop_effect)=== | |||
{{SVersion|1.10}} | |||
<pre> | |||
while_loop_effect = { | |||
break = <string> | |||
limit = { <triggers> } | |||
<effects> | |||
} | } | ||
</pre> | </pre> | ||
对指定数组进行有条件的循环操作。只要limit为真,就重复执行指令组(用花括号括起的指令集合)。 | |||
break接受一个{{ruby|'''临时变量'''|temp variable}},当传递给break的变量取值为'''非0'''时,迭代将结束。缺省情况下,break接受的变量名为 <code>break</code>。break无法在本指令之外被访问 。 | |||
本指令接受指令组作为其参数 ,以 指定对数组元素进行 的 操作 。 | |||
该指令会隐性地将当前 数 组array作为参 数。 | |||
=== | ===for each循环指令(for_each_loop)=== | ||
{{SVersion|1. | {{SVersion|1.10}} | ||
<pre>for_each_loop = { | <pre> | ||
for_each_loop = { | |||
array = <name> | |||
value = <string> | |||
index = <string> | |||
break = <string> | |||
<effects> | |||
} | } | ||
</pre> | </pre> | ||
对指定数组中的每个元素调用指令组。 | |||
value 指定 了一个临时变量,指向迭代过程中 的 当前元素,缺省值为<code>v</code> 。 | |||
index指定了 一个临时变量, 指向迭代过程中的 当前 位置,缺省 值 为<code>i</code> 。 | |||
break后应分配 一个'''非零''' 临时变量 以结束迭代 , 缺省值为<code>break</code> 。 | |||
在此循环中可以写 入 指令执行某些操作 , 并隐性地 以 当前数组 为 参 数 | |||
===for each作用域循环指令(for_each_scope_loop)=== | |||
{{SVersion|1.10}} | |||
<pre> | |||
for_each_scope_loop = { | |||
array = <name> | |||
<pre>for_each_scope_loop = { | break = <string> | ||
<effects> | |||
} | } | ||
</pre> | </pre> | ||
对指定数组中的每个元素调用指令组,并且在每次调用时将当前作用域更改为当前元素。 | |||
break后应分配一 个'''非零'''临时变量以结束迭代 , 缺省值为<code>break</code>。 | |||
在此循环中可以写 入 指令执行某些操作 , 并隐性地 以 当前数组 为 参 数 | |||
===随机作用域指令(random_scope_in_array) === | |||
{{SVersion|1.10}} | |||
<pre> | |||
random_scope_in_array = { | |||
array = <name> | |||
<pre>random_scope_in_array = { | break = <string> | ||
limit = { <triggers> } | |||
<effects> | |||
} | } | ||
</pre> | </pre> | ||
对特定的数组中的每一变量进行循环操作,并在每次迭代时将当前作用域改为随机作用域(当前数组内的一个随机的、不同于当前作用域的变量)。 | |||
break后应分配一 个'''非零'''临时变量以结束迭代 , 缺省值 为<code>break</code>。 | |||
在此循环中可以写 入 指令执行某些操作 , 所用 的数 据内容应均在array内 。 | |||
===添加到临时 数组 (add_to_temp_array)=== | |||
{{SVersion|1.10}} | |||
与<code>add_to_array</code>代码相同,但存储对象为 临时数组 ,此数组在脚本结束后就会消失。 | |||
===从 临时数组 中移除(remove_from_temp_array)=== | |||
{{SVersion|1.10}} | |||
与<code>remove_from_array</code> 代码相同,但存储对象为 临时数组 ,此数组在脚本结束后就会消失。 | |||
===清空 临时数组 (clear_temp_array)=== | |||
{{SVersion|1.10}} | |||
与<code>clear_array </code> 代码相同,但存储对象为 临时数组 ,此数组在脚本结束后就会消失。 | |||
===重置 临时数组 规模(resize_temp_array)=== | |||
{{SVersion|1.10}} | |||
与<code>resize_array</code> 代码相同,但存储对象为 临时数组 ,此数组在脚本结束后就会消失。 | |||
==触发器(Triggers )== | |||
{{SVersion|1.10}} | |||
== | ===包含关系(is_in_array)=== | ||
{{SVersion|1. | {{SVersion|1.10}} | ||
<pre> | |||
is_in_array = { | |||
array = <name> | |||
<pre>is_in_array = { | value = <value> | ||
} | } | ||
</pre> | </pre> | ||
检测指定数组array是否含有指定元素value。 | |||
=== | === 存在量词(any_of)=== | ||
{{SVersion|1. | {{SVersion|1.10}} | ||
<pre>any_of = { | <pre> | ||
any_of = { | |||
array = <name> | |||
value = <string> | |||
index = <string> | |||
<triggers> | |||
} | } | ||
</pre> | </pre> | ||
对指定数组内的每一元素调用<triggers>并比较触发器输出和元素值。如果任一比较结果值为真则触发器输出为真,否则为假。 | |||
===全称量词(all_of) === | |||
{{SVersion|1.10}} | |||
<pre> | |||
all_of = { | |||
array = <name> | |||
<pre>all_of = { | value = <string> | ||
index = <string> | |||
<triggers> | |||
} | } | ||
</pre> | </pre> | ||
对指定数组内的每一元素调用<triggers>并比较触发器输出和元素值。如果任一比较结果值为假则触发器输出为假,否则为真。 | |||
=== 作用域存在量词(any_of_scopes)=== | |||
{{SVersion|1.10}} | |||
=== | |||
{{SVersion|1. | |||
<pre> | <pre> | ||
any_of_scopes = { | any_of_scopes = { | ||
array = <name> | |||
<triggers> | |||
} | } | ||
</pre> | </pre> | ||
对指定数组进行循环操作,将<triggers>与当前作用域进行比较,如果任一返回值为真则触发器输出为真,否则为假。 | |||
=== 作用域全称量词(all_of_scopes)=== | |||
{{SVersion|1.10}} | |||
=== | |||
{{SVersion|1. | |||
<pre> | <pre> | ||
all_of_scopes = { | all_of_scopes = { | ||
array = <name> | |||
<triggers> | |||
} | } | ||
</pre> | </pre> | ||
对指定数组进行循环操作,将<triggers>与当前作用域进行比较,如果任一返回值为假则触发器输出为假,否则为真。 | |||
==附加信息== | |||
{{SVersion|1.10}} | |||
你可以将某数组内变量的数目输出出来,只需要这么写:<code>set_variable = { var_name = array_name^num }</code> 。 | |||
== | == 例子 == | ||
{{SVersion|1. | {{SVersion|1.10}} | ||
{{Modding navbox}} | {{Modding navbox}} | ||
[[ | [[ 分类:Modding]] |
2022年12月5日 (一) 15:33的最新版本
数组是《钢铁雄心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修改 |