對話歷史 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)。