马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 烈林凤 于 2024-4-21 02:53 编辑
关于这个功能的实现原理可以参考埋土的机械龙的教程(原作者在本帖2楼)
即使用add_history方法,在文档中确实没有加入这个方法,我搜了一圈也没人使用过该方法的。
(实际上,只要使用以下一段代码就可以做成和教程里一样的效果)
[RenPy] 纯文本查看 复制代码 $ narrator.add_history(kind=None,who=None,what="这句话只会在对话历史中显示一次。")
在龙叔的教程中,使用了一个“手动将对话添加进对话历史中”的功能的例子,但很显然这个例子并不实用。
于是,我根据记忆在论坛交流群中找到了“如何将选项内容添加进对话历史”的提问,并成功解决了这个问题
需要在screen.rpy文件里搜索screen choice(items)的位置,并在此下面进行修改
以下就是代码
[RenPy] 纯文本查看 复制代码 screen choice(items):
style_prefix "choice"
vbox:
for i in items:
# textbutton i.caption action i.action
textbutton i.caption action [i.action, Function(narrator.add_history, kind="adv",who=None,what=i.caption)]
用这个办法就能达成效果
————————————————————————————————————————分割线————————————————————————————————————————
感谢龙叔提供的方法,关于“如何将选项选择的内容添加进对话历史当中并高亮显示”的解决办法也有了
首先,需要定义一个带有颜色标签的角色
[RenPy] 纯文本查看 复制代码 define menu_color = Character(name=None,what_color="#FF0000")
然后需要在原本修改选择屏幕的位置再进行修改
[RenPy] 纯文本查看 复制代码 screen choice(items):
style_prefix "choice"
vbox:
for i in items:
# textbutton i.caption action i.action
textbutton i.caption action [i.action, Function(menu_color.add_history, kind=menu_color,who=None,what=i.caption)]
最后在screen history()中进行修改
[RenPy] 纯文本查看 复制代码 # text what:
# substitute False
text what:
substitute False
if "color" in h.what_args:
color h.what_args["color"]
这里额外说明一下add_history的使用方法
需要在add_history前添加角色名(name.add_history),然后需要在此之后添加括号与三种属性(name.add_history(kind=,who=,what=))
kind:代表着角色所使用的模式,可以填入adv、nvl、角色名、None等
who:代表着角色的名字,可以填入字符串等
what:代表这角色的对话,可以填入字符串等
在label中需要用python语块进行调用,即$
在action中需要使用Function()行为(否则会发生可怕的事情),此时需要将name.add_history与后面三种属性分开来书写(Function(name.add_history,kind=,who=,what=))
如有错误,欢迎指出
|