Ren’Py包含一個對話歷史系統,存放著每一行向用戶顯示過的對話文本。存儲的對話可以恢復或者再次向用戶顯示。
對話歷史系統由兩個變數控制。變數
config.history_length
控制存儲的對話歷史最大層(entry)數,必須設置才能啟用對話歷史功能。變數 _history
可以用於禁用或重新啟用對話歷史的存儲功能。
最後,變數 _history_list
將實際的歷史記錄存儲為一個HistoryEntry對象的列表。HistoryEntry對象的欄位(field)內包含下面的數據。
HistoryEntry
linkkind
link創建這段對話歷史的角色類型,Ren’Py中只能是“adv”或“nvl”。
who
link一個字串,表示發言角色名,如果不存在的話就是None。
what
link一個字串,表示對話文本。
who_args
link一個字典,表示原來顯示時who文本組件應用的特性(property)。
what_args
link一個字典,表示原來顯示時what文本組件應用的特性(property)。
window_args
link一個字典,表示原來顯示時對話窗口應用的特性(property)。
show_args
link一個字典,表示原來顯示時say界面應用的特性(property)。
image_tag
link用於 Character()
的圖像標籤(tag),若沒有則是None。
voice
link函數 _get_voice_info()
返回的對象,存儲播放的語音訊息。
rollback_identifier
link這是一個標識符,可以傳入 RollbackToIdentifier()
,可以導致生成的這個歷史層回滾到對應的那行腳本。如果位置依然在腳本日中時回滾才會發生,否則這個行為(action)是無效的。
一旦創建了一個HistoryEntry對象,就會傳給 config.history_callbacks
中配置的每一個回調函數,那些回調函數允許創作者寫的代碼添加新的欄位(field)。