編寫腳本(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)執行編譯