Arrays:修订间差异

本页面所适用的版本可能已经过时,最后更新于1.10
(翻译(未完待续))
无编辑摘要
第72行: 第72行:




=== while_loop_effect ===
===while循环指令(while_loop_effect)===
{{SVersion|1.10}}
{{SVersion|1.10}}


第83行: 第83行:
}
}
</pre>
</pre>
进行循环操作,只要{ <triggers> }为真时,就执行指令


Runs the effect as long as a trigger is true.
break后应填入一个能够打破循环、结束迭代的非零量,这个量将被声明为{{ruby|'''临时变量''''|temp variable}},缺省值为 <code>break</code>。


The break attribute specifies a temp variable that can be set to non-0 to break the loop, ending iteration. By default this is <code>break</code>.
在此循环中可以写入指令执行某些操作,所用的数据信息应均在array内。


Effects can be used within the loop to perform operations with the data within an array.


=== for_each_loop ===
===for each循环指令(for_each_loop)===
{{SVersion|1.10}}
{{SVersion|1.10}}


第103行: 第103行:
}
}
</pre>
</pre>
对特定的数组中的变量进行循环操作。


Runs a loop for each element of the specified array.
value后应分配一个临时变量,用以存储打破循环时的数据内容,缺省值为<code>v</code>。


The value attribute specifies a temp variable that stores the current value whilst iterating over the loop. By default this is <code>v</code>.
index后应分配一个临时变量,用以存储打破循环时的位置,缺省值为<code>i</code>


The index attribute specifies a temp variable that stores the current index whilst iterating over the loop. By default this is <code>i</code>.
break后应分配一个非零临时变量用以打破循环,结束迭代,缺省值为<code>break</code>


The break attribute specifies a temp variable that can be set to non-0 to break the loop, ending iteration. By default this is <code>break</code>.
在此循环中可以写入指令执行某些操作,所用的数据信息应均在array内。


Effects can be used within the loop to perform operations with the data within an array.


=== for_each_scope_loop ===
===for each作用域循环指令(for_each_scope_loop)===
{{SVersion|1.10}}
{{SVersion|1.10}}


第125行: 第125行:
}
}
</pre>
</pre>
对特定的数组中的变量进行循环操作,并在每次迭代时将变量改为当前作用域。


Runs a loop for each element of the specified array and changes the current scope to the current element in each iteration.
break后应分配一个非零临时变量用以打破循环,结束迭代,缺省值为<code>break</code>。


The break attribute specifies a temp variable that can be set to non-0 to break the loop, ending iteration. By default this is <code>break</code>.
在此循环中可以写入指令执行某些操作,所用的数据信息应均在array内。


Effects can be used within the loop to perform operations with the data within an array.


=== random_scope_in_array ===
=== 随机作用域指令(random_scope_in_array) ===
{{SVersion|1.10}}
{{SVersion|1.10}}


第144行: 第144行:
}
}
</pre>
</pre>
对特定的数组中的变量进行循环操作,并在每次迭代时将变量改为同数组内所列的非当前作用域(意即应在array内选择一个与当前作用域不同的变量写入)。


Runs a loop for each element of the specified array and changes the current scope to a random scope (out of the scopes within the array) that meet the triggers specified.
break后应分配一个非零临时变量用以打破循环,结束迭代,缺省值为<code>break</code>。


The break attribute specifies a temp variable that can be set to non-0 to break the loop, ending iteration. By default this is <code>break</code>.
在此循环中可以写入指令执行某些操作,所用的数据内容应均在array内。


Effects can be used within the loop to perform operations with the data within an array.
=== 添加到临时数组(add_to_temp_array)===
 
=== add_to_temp_array ===
{{SVersion|1.10}}
{{SVersion|1.10}}


Same as <code>add_to_array</code> but for temporary arrays that expire once execution of the script is finished.
<code>add_to_array</code> 代码相同,但存储对象为临时数组,此数组在脚本结束后就会消失。


=== remove_from_temp_array ===
=== 从数组中移除(remove_from_temp_array)===
{{SVersion|1.10}}
{{SVersion|1.10}}


Same as <code>remove_from_array</code> but for temporary arrays that expire once execution of the script is finished.
<code>remove_from_array</code> 代码相同,但存储对象为临时数组,此数组在脚本结束后就会消失。


=== clear_temp_array ===
=== 清空临时数组(clear_temp_array)===
{{SVersion|1.10}}
{{SVersion|1.10}}


Same as <code>clear_array </code> but for temporary arrays that expire once execution of the script is finished.
<code>clear_array </code> 代码相同,但存储对象为临时数组,此数组在脚本结束后就会消失。


=== resize_temp_array ===
=== 重置临时数组规模(resize_temp_array)===
{{SVersion|1.10}}
{{SVersion|1.10}}


Same as <code>resize_array</code> but for temporary arrays that expire once execution of the script is finished.
<code>resize_array</code> 代码相同,但存储对象为临时数组,此数组在脚本结束后就会消失。


== Triggers ==
 
== 触发器(Triggers)==
{{SVersion|1.10}}
{{SVersion|1.10}}


=== is_in_array ===
=== 数组内匹配(is_in_array)===
{{SVersion|1.10}}
{{SVersion|1.10}}


第184行: 第184行:
</pre>
</pre>


Checks if the specified value is in the specified array.
检测指定数据内容是否在指定数组内


=== any_of ===
=== 或逻辑触发(any_of)===
{{SVersion|1.10}}
{{SVersion|1.10}}


第198行: 第198行:
}
}
</pre>
</pre>
对指定数组进行循环操作,将<triggers>与当前变量进行比较,如果任一返回值为真则触发器输出为真,否则为假。


Runs a loop on the specified array and checks the triggers against the current element. If any return true, the whole check returns true, otherwise returns false.
=== 与逻辑触发(all_of) ===
 
=== all_of ===
{{SVersion|1.10}}
{{SVersion|1.10}}


第213行: 第212行:
}
}
</pre>
</pre>
对指定数组进行循环操作,将<triggers>与当前变量进行比较,如果任一返回值为假则触发器输出为假,否则为真。


Runs a loop on the specified array and checks the triggers against the current element. If any return false, the whole check returns false, otherwise returns true.
=== 作用域或逻辑触发(any_of_scopes)===
 
=== any_of_scopes ===
{{SVersion|1.10}}
{{SVersion|1.10}}


第226行: 第224行:
}
}
</pre>
</pre>
对指定数组进行循环操作,将<triggers>与当前作用域进行比较,如果任一返回值为真则触发器输出为真,否则为假。


Runs a loop on the specified array and checks the triggers against the current element scope. If any return true, the whole check returns true, otherwise returns false.
=== 作用域与逻辑触发(all_of_scopes)===
 
=== all_of_scopes ===
{{SVersion|1.10}}
{{SVersion|1.10}}


第240行: 第237行:
</pre>
</pre>


Runs a loop on the specified array and checks the triggers against the current element scope. If any return false, the whole check returns false, otherwise returns true.
对指定数组进行循环操作,将<triggers>与当前作用域进行比较,如果任一返回值为假则触发器输出为假,否则为真。


== Additional information ==
== 附加信息==
{{SVersion|1.10}}
{{SVersion|1.10}}
You can set a variable equal to the number of elements in an array by using the following code: <code>set_variable = { var_name = array_name^num }</code> This example will set var_name to be equal to the number of elements in array_name.
你可以将某数组内变量的数目输出出来,只需要这么写:<code>set_variable = { var_name = array_name^num }</code>


== Examples ==
== Examples ==

2021年2月9日 (二) 15:44的版本

数组是《钢铁雄心IV》中用以存储变量的方式,变量既可以是数字形式numerical data的,也可以是作用域scope data形式的。

数组在指令effects中发挥作用,并且触发器trigger能够从中读取数据。指令既可以使数组迭代入其他指令,也能使其数据在自身内进行迭代。


指令(Effects)

添加到数组(add_to_array)

add_to_array = {
    array = <name>
    value = <value>
    index = <index>
}

每当有一个变量出现,就会创造一个对应的数组对其进行储存。

<name>是数组的名称,也是指令和触发器调用它的依据。

<value>是指数组的数据内容,它既可以是数字形式的(如1 或 var:my_num),也可以是作用域形式的(如GER 或 var:my_scope)。当然这些都是选填内容,如果不填则会将当前作用域填入此处。

<index>指数据内容应当被插入数组的哪个位置。缺省default data(现普遍称默认)情况下,数据内容会插入数组的最后端,其他情况下新数据内容会自动匹配到合适的位置。

这部分的简便写法是:add_to_array = { <name> = <value> }

从数组中移除(remove_from_array)

remove_from_array = {
	array = <name>
	value = <value>
	index = <index>
}

<name>是想要进行数据内容移除操作的数组名称

<value>是想要移除的数据内容

<index>指移除操作所选择的位置

如果value和index值都未定义或未分配内容,那么最后一个数据内容会被清除

这部分的简便写法是:remove_from_array = { <name> = <value> }


清空数组(clear_array)

clear_array = <name>

清除指定数组中所有数据内容

重置数组规模(resize_array)

resize_array = {
	array = <name>
	value = <value>
	size = <int>
}

重置特定数组规模

如果扩大已经声明过数据内容类型的数组规模,那么多出的位置将以空变量填满,如果没有声明过则缺省值为0。

size属性指定了数组的新大小,如果缩小数组,则删除元素,如果扩大数组,则增加指定值的新元素。

这部分的简便写法是: resize_array = { <name> = <size> }


while循环指令(while_loop_effect)

while_loop_effect = {
	break = <string>
	limit = { <triggers> }
	
	<effects>
}

进行循环操作,只要{ <triggers> }为真时,就执行指令

break后应填入一个能够打破循环、结束迭代的非零量,这个量将被声明为临时变量'temp variable,缺省值为 break

在此循环中可以写入指令执行某些操作,所用的数据信息应均在array内。


for each循环指令(for_each_loop)

for_each_loop = {
	array = <name>
	value = <string>
	index = <string>
	break = <string>
	
	<effects>
}

对特定的数组中的变量进行循环操作。

value后应分配一个临时变量,用以存储打破循环时的数据内容,缺省值为v

index后应分配一个临时变量,用以存储打破循环时的位置,缺省值为i

break后应分配一个非零临时变量用以打破循环,结束迭代,缺省值为break

在此循环中可以写入指令执行某些操作,所用的数据信息应均在array内。


for each作用域循环指令(for_each_scope_loop)

for_each_scope_loop = {
	array = <name>
	break = <string>
	
	<effects>
}

对特定的数组中的变量进行循环操作,并在每次迭代时将变量改为当前作用域。

break后应分配一个非零临时变量用以打破循环,结束迭代,缺省值为break

在此循环中可以写入指令执行某些操作,所用的数据信息应均在array内。


随机作用域指令(random_scope_in_array)

random_scope_in_array = {
	array = <name>
	break = <string>
	limit = { <triggers> }
	
	<effects>
}

对特定的数组中的变量进行循环操作,并在每次迭代时将变量改为同数组内所列的非当前作用域(意即应在array内选择一个与当前作用域不同的变量写入)。

break后应分配一个非零临时变量用以打破循环,结束迭代,缺省值为break

在此循环中可以写入指令执行某些操作,所用的数据内容应均在array内。

添加到临时数组(add_to_temp_array)

add_to_array代码相同,但存储对象为临时数组,此数组在脚本结束后就会消失。

从数组中移除(remove_from_temp_array)

remove_from_array 代码相同,但存储对象为临时数组,此数组在脚本结束后就会消失。

清空临时数组(clear_temp_array)

clear_array 代码相同,但存储对象为临时数组,此数组在脚本结束后就会消失。

重置临时数组规模(resize_temp_array)

resize_array 代码相同,但存储对象为临时数组,此数组在脚本结束后就会消失。


触发器(Triggers)

数组内匹配(is_in_array)

is_in_array = {
	array = <name>
	value = <value>
}

检测指定数据内容是否在指定数组内

或逻辑触发(any_of)

any_of = {
	array = <name>
	value = <string>
	index = <string>
	
	<triggers>
}

对指定数组进行循环操作,将<triggers>与当前变量进行比较,如果任一返回值为真则触发器输出为真,否则为假。

与逻辑触发(all_of)

all_of = {
	array = <name>
	value = <string>
	index = <string>
	
	<triggers>
}

对指定数组进行循环操作,将<triggers>与当前变量进行比较,如果任一返回值为假则触发器输出为假,否则为真。

作用域或逻辑触发(any_of_scopes)

any_of_scopes = {
	array = <name>
	
	<triggers>
}

对指定数组进行循环操作,将<triggers>与当前作用域进行比较,如果任一返回值为真则触发器输出为真,否则为假。

作用域与逻辑触发(all_of_scopes)

all_of_scopes = {
	array = <name>
	
	<triggers>
}

对指定数组进行循环操作,将<triggers>与当前作用域进行比较,如果任一返回值为假则触发器输出为假,否则为真。

附加信息

你可以将某数组内变量的数目输出出来,只需要这么写:set_variable = { var_name = array_name^num }

Examples