编写脚本(6)

◆ 从容器中取出所需信息

通过使用“容器”,就可以从游戏的大量数据中筛选出自己需要的数据。
这里需要运用五项脚本命令。

容器设定 选定放入容器的数据种类。
容器限定 对容器内的数据进行筛选。
容器除外 从容器中排除特定数据。
容器排列 对容器内的数据进行排序。
容器选择 提取容器内排在开头的数据。

※ 点击上述命令名称,可以查看详细说明。

通过以下示例学习可以使用容器完成哪些操作吧。
例如,由信长评定家臣中武力最高的武将。


例:使用容器提取武力排名第一的武将

太阁立志传5事件源码

章节:{
	事件:发布!武力第一名之卷{
		属性:仅限一次
		发生时机:评定开始时(织田信长)
		发生条件:{
		} 
		脚本:{
			对话:(织田信长,家童)[[评定之前,\n有事情要向各位宣布。]]
			赋值大名家A:(大名家::织田信长)//准备
			容器设定:(人物,类别,武将)
			//为排除事件人物和町人,将类别限定为武将
			//此时容器内收入了全武将960人+新武将40人,总计1000人

			容器除外:(人物,死亡标识,死亡)
			//排除已死亡的武将
			容器限定:(人物,出现标识,已出现)
			//只保留已出现的武将
			容器限定:(人物,所属大名家,大名家A)
			//只保留织田家的武将
			//此时容器内收入了生存、已出现的所有织田家武将
			//如果想要知道具体人数……
			赋值a:(容器计数)
			对话:(织田信长,家童)[[当前隶属本家的武将共有\n<a>人……]]

			调查:(容器计数)>(0)
			//不可能为0,但还是查询一下
			分支:(真){
				容器排列:(人物,武力,降序)
				//可以用“降序”从高到低排列,或用“升序”从低到高排列
				容器选择:(人物A,开头)
				//从排序完成的容器中,提取开头数据的命令
				调查:(人物A)==(织田信长)
				分支:(真){
				//并未排除信长,也可以是本人
					对话:(织田信长,家童)[[武力最高的是……老朽!\n哇哈哈!]]
				}
				分支:(伪){
					对话:(织田信长,家童)[[武力最高的是……\n(人物A)!\n厉害!]]
				}
			}
			分支:(伪){
			//织田家一个人也没有=不可能存在的分支
				对话:(织田信长,家童)[[真令人难过……]]
			}
			对话:(织田信长,家童)[[罢了,继续评定吧!]]
		}
	}
}

根据上述示例的步骤,

1.将“所有人物”的数据放入容器;
2.将容器内的数据筛选除“织田家现存武将”;
3.按照“武力从高到低”的顺序对容器内的数据进行排序
4.将容器内最开头的数据提取出来

以上。

● 将数据放入容器

使用容器时,首先可以通过“容器设定”来设定提取数据的大致范围。

容器设定:(○○,△△,□□)

◎ “○○”填写数据种类(类名)。
◎ “△△”填写属性。
◎ “□□”填写具体数据名(条件)。

容器设定示例

容器设定:(城,所属大名家,织田信长)
//↑将织田家的所有城放入容器

容器设定:(城,城主,织田信长)
//↑将织田信长的居城和所有直辖城放入容器

容器设定:(忍者众,存在,真)
//↑将现存的所有忍者众放入容器

容器设定:(人物,类别,武将)
//↑将事件人物和町人以外的所有人物放入容器


◎ 人物类别“武将”指的是拥有特定姓名的人物,而非町人等泛用人物。请注意,这里并非特指“武士”。

● 筛选容器内的数据

可以使用“容器限定”、“容器除外”,将没用的数据从通过“容器设定”放入容器的数据中排除出去。
“容器限定”是只保留所设数据的命令。
“容器除外”是只排除所设数据的命令。

容器限定:(○○,△△,□□)
容器除外:(○○,△△,□□)

◎ 格式与“容器设定”一样。

● 排列容器内的数据

放入容器的数据可以根据特定条件进行排序。
排列时,需要使用“容器排列”。

容器排列:(○○,△△,□□)

◎ “○○”填写数据种类(类名)。
◎ “△△”填写属性。
◎ “□□”填写“升序”或“降序”。

● 取出容器内的数据

取出容器内排在开头或末尾的数据。
取出数据时,需要使用“容器选择”。

容器选择:(○○,△△)

◎ “○○”填写赋值变量(「“人物A”“大名家B”“城C”等)。
◎ “□□”填写“开头”或“末尾”。

● 统计容器内的数据

统计放入容器的数据数量。
统计数据数量时,需要使用以下格式。

赋值a:(容器计数)

◎ 容器内的数据数量会被填入上述示范的变量“a”。


返回封面编写脚本(7)执行编译