對話歷史 link
Ren’Py包含一個對話歷史系統,存放著每一行向用戶顯示過的對話文本。儲存的對話可以恢復或者再次向用戶顯示。
對話歷史系統由兩個變數控制。變數
config.history_length
控制儲存的對話歷史最大層(entry)數,必須設置才能啟用對話歷史功能。變數 _history
可以用於禁用或重新啟用對話歷史的儲存功能。
最後,變數 _history_list
將實際的歷史記錄儲存為一個HistoryEntry對象的列表。HistoryEntry對象的欄位(field)內包含下面的數據。
- class HistoryEntry link
- kind link
創建這段對話歷史的角色類型。Ren’Py中會先將當前正在顯示對話的該屬性設置為“current”,之後再改為“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)。