LOVE69-Renpy-Remaster-Project / Doc

LOVE69 Ren’py Remaster Project 文档
https://love69-renpy-remaster-project.github.io/Doc/
5 stars 0 forks source link

[Vssue]历史记录跳跃 | Love69 Ren’Py Remaster Project Doc Website #44

Open luckykeeper opened 2 years ago

luckykeeper commented 2 years ago

https://love69-renpy-remaster-project.github.io/Doc/renpy/%E5%8E%86%E5%8F%B2%E8%AE%B0%E5%BD%95%E8%B7%B3%E8%B7%83.html

Qianquqwq commented 3 months ago

该代码确实可以运行,但是有个很致命的问题,就是一旦文本超过100条,再往前的跳转功能将失效。 这个问题可能跟config.hard_rollback_limit这个配置项变量有关,它的参数默认是100。但是,即使将它修改成9999,文本跳转功能仍然被限制在100条。 这该如何解决?

WorldlineChanger commented 3 months ago

该代码确实可以运行,但是有个很致命的问题,就是一旦文本超过100条,再往前的跳转功能将失效。 这个问题可能跟config.hard_rollback_limit这个配置项变量有关,它的参数默认是100。但是,即使将它修改成9999,文本跳转功能仍然被限制在100条。 这该如何解决?

跳转限制100以内可能是为了性能考虑,可以参考对话历史doc来编辑列表参数

luckykeeper commented 3 months ago

@Qianquqwq

该代码确实可以运行,但是有个很致命的问题,就是一旦文本超过100条,再往前的跳转功能将失效。 这个问题可能跟config.hard_rollback_limit这个配置项变量有关,它的参数默认是100。但是,即使将它修改成9999,文本跳转功能仍然被限制在100条。 这该如何解决?

我已经很久没动过 renpy 了,项目结束之后一直在写 Go 和 Flutter ,python 都很少写了,开发环境也没有了,凭印象回答下,以下说的可能不大准,仅供参考。

把之前 love69 的夜间构建找出来看了一下(Renpy8.0.0),确实是有这个问题,观察了一下表现,我这里观察到的“跳转功能失效”的表现是,点击文本之后,没有弹出提示 "要跳转到该处吗?" 的选择框,不知道你遇到的是同样的情况吗?还是弹出提示了但是点确定没有反应?

如果是弹出提示,试着 debug 一下,超过一百行的时候,这里的 textbutton 是不是变成了 text (因为 action 失效了),可以确定是不是这个问题

从代码来看,调用的是 renpy 提供的方法,所以如果有问题,考虑 ①是不是 renpy 的配置项有问题 , ②引擎限制了这一功能 考虑①的话,试着改改 _history 提到的 config.history_length 考虑②的话,文档里面提到了 The rollback only occurs if the location is still in the script log, otherwise the action is insensitive. 考虑是不是超出了 script log 的范围,稍微搜了下这个 script log 是什么,没有找到合适的答案,感兴趣的话,可以去 renpy 仓库提个 issues 找 tom 解答一下,或者看看 renpy 源码

从 gal 开发来讲,其他引擎如柚子用的 Kirikiri ,八月的 BGI ,Hamidashi 的 Artmies 等等,也只支持有限的跳转,不会让你从尾巴跳到开头,跳跃过多行本身就不是一个合理的需求

从一般程序开发来讲,为了能进行跳跃,会在内存里面存一下当时的状态,超过这个回滚行数(比如 100 条),这个资源会被回收,如果你存储了过多的状态,会导致程序占用的内存过多,显然这也是不好的,性能下降的同时,对运行机的内存要求也会增加

如果想要一个 work around 的话,试着设置历史记录保存条数和可回滚的条数一致(都设置成 100 条),这样就不会有超过 100 条无法跳转的情况