Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
luckykeeper opened this issue May 17, 2022 · 3 comments
Labels

Comments

@luckykeeper
Copy link
Member

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
Copy link

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

@WorldlineChanger
Copy link
Collaborator

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

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

@luckykeeper
Copy link
Member Author

@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 条无法跳转的情况

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants