1.排列变量与自定义函数及其循环
剧本编辑器提供了许多函数供编辑剧本时调用,但剧本制作者往往还需要自定义一些函数,对这些自定义函数的循环就需要用到排列变量。
排列变量的语法是:函数名[变量]
例如,希望对每个被包围的城判断包围时间,可定义函数:SurTime[ShiroA],这里ShiroA是循环变量,其值为城的序号。先在条件中判断城ShiroA是否被包围中,如果是,则在事件的结果中加一条:变量(数据1)加上公式(数据2)。其中数据1为SurTime[ShiroA],数据2为1。如果不是,则在事件的结果中加一条:变量(数据1)代入公式(数据2)。其中数据1为SurTime[ShiroA],数据2为0。
排列变量是战国史SE1.13新增加的内容,游戏中可以在事件的信息窗口中的变量一览里查看当前所有排列变量的值。
2.循环范围的控制
剧本编辑器中的循环对象是:大名、城和武将。如果是对城循环,循环变量是ShiroA,则循环过程是按次序将城的序号赋值给ShiroA。例如共有500个城,则当ShiroA=500后结束循环。如果需要控制循环的范围,例如不超过200,则可以在事件的条件中加一条:数据A≤数据B。其中数
据A为ShiroA,数据B为200。
如果某个自定义函数Abc[ ]循环范围是1~800,依然可以选择对城循环,循环变量是ShiroA。需要设计两个事件,第一个实现对1~500循环,第
二个实现对501~800循环。其中第二个事件在条件中加一条:数据A≤数据B。其中数据A为ShiroA,数据B为300。而排列变量
Abc[500+ShiroA]
就完成了501~800的循环。
3.子程序的自我调用
子程序也可以调用自己,这个过程同样可以达到循环的目的,但是要设定好结束条件,否则会形成死循环。
依然以上面提到的对函数Abc[ ]在1~800范围内循环为例,子程序可如下设计:
在条件中加一条:数据A≤数据B。其中数据A为PD,数据B为800。这里变量PD用来判断调用过程是否结束。
将如下三个发生结果加入到事件的结果中(通常放在最后):
变量(数据1)加上演算式(数据2)。其中数据1为PD,数据2为1
将变量(数据2)代入演算式(数据1)。其中数据1为Abc[PD],数据2为x(x是你希望得到的值)
调用子程序(数据1:子程序ID)。其中数据1为子程序ID。
说明:当PD=801时调用过程结束。
在1.13f以前的版本中,当调用次数较大时会出现溢出现象导致程序崩溃,这个bug已在1.13f中修正。