简单说下个人理解:存档次数是可以精确记录的,但读档次数则比较麻烦。玩家可以对同一个存档读取多次,不影响存档次数的计数。(虽然不是完全没办法,后面再说。)
样例:
[RenPy] 纯文本查看 复制代码 define config.log = "Debug.log"
define config.clear_log = True
default save_counter = 0
init python:
def jsoncallback(d):
global save_counter
save_counter += 1
# d["save_counter"] = save_counter
config.save_json_callbacks.append(jsoncallback)
init python:
def load_save_counter():
global save_counter
save_counter += 1
renpy.log("save_count: " + str(save_counter))
define config.after_load_callbacks = [load_save_counter]
label main_menu:
return
label start():
"1. 当前存档次数为 [save_counter] 次。"
"2. 当前存档次数为 [save_counter] 次。"
"3. 当前存档次数为 [save_counter] 次。"
"4. 当前存档次数为 [save_counter] 次。"
"5. 当前存档次数为 [save_counter] 次。"
"6. 当前存档次数为 [save_counter] 次。"
"7. 当前存档次数为 [save_counter] 次。"
"8. 当前存档次数为 [save_counter] 次。"
"9. 当前存档次数为 [save_counter] 次。"
"10. 当前存档次数为 [save_counter] 次。"
return
可能比较奇怪的是,load_save_counter函数在加载存档后还要对save_counter加1。这个只能说Ren'Py为了实现回滚,某些数据机制比较……特殊。
如果需要在读档次数达到某个值时跳转到某个结局,那就把 renpy.log 的代码替换为 renpy.jump(label),label即对应结局的脚本标签名。 |