对话历史 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)。