Ren'Py memo

Ren'Pyの個人的なメモ

一部のconfirmに次回からこの画面を表示しないをつける


必要な変数を用意

options.rpy

default ask = ""
default conf = conf1

define conf1 = _("☐次回からこの画面を表示しない")
define conf2 = _("☑次回からこの画面を表示しない")
define conf3 = ("persistent.ask_save","persistent.ask_del","persistent.ask_load","persistent.ask_title")

confirmを使用するボタンにactionを追加

screens_saveload.rpy

screen file_slots(title):
(省略)
button:
(省略)
action [SetVariable("ask", "persistent.ask_load"),FileLoad(slot, confirm=persistent.ask_load)]
(省略)
action [SetVariable("ask", "persistent.ask_save"),FileSave(slot, confirm=persistent.ask_save)]
(省略)
action [SetVariable("ask", "persistent.ask_del"),FileDelete(slot, confirm=persistent.ask_del)]
(省略)

screens.rpy

screen navigation():
(省略)
textbutton _("タイトル") action [SetVariable("ask", "persistent.ask_title"),MainMenu(confirm=persistent.ask_title)]

confirmのコードを変更

screen confirm(message, yes_action, no_action):

    modal True
    zorder 200
    layer "confirm"
    style_prefix "confirm"
    add "conf_background"

    dismiss action [If(conf==conf2,true=SetVariable(ask, False), false=SetVariable("ask", "")),SetVariable("conf", conf1), SetVariable("ask", ""),no_action]
    key "game_menu" action [If(conf==conf2,true=SetVariable(ask, False), false=SetVariable("ask", "")),SetVariable("conf", conf1), SetVariable("ask", ""),no_action]

    frame at conf_appear:

        vbox:
            xalign .5
            yalign .5
            spacing 30

            label _(message):
                style "confirm_prompt"
                xalign 0.5

            hbox:
                xalign 0.5
                spacing 50

                if "quitload" in ask:
                    textbutton _("Yes") action [If(conf==conf2,true=SetVariable(ask, 2), false=SetVariable("ask", "")),SetVariable("conf", conf1), SetVariable("ask", ""),yes_action] background "color2" hover_background "color4"
                    textbutton _("No!") action [If(conf==conf2,true=SetVariable(ask, 2), false=SetVariable("ask", "")),SetVariable("conf", conf1), SetVariable("ask", ""),no_action]
                else:
                    textbutton _("Yes") action [If(conf==conf2,true=SetVariable(ask, False), false=SetVariable("ask", "")),SetVariable("conf", conf1), SetVariable("ask", ""),yes_action] background "color2" hover_background "color4"
                    textbutton _("No!") action [If(conf==conf2,true=SetVariable(ask, False), false=SetVariable("ask", "")),SetVariable("conf", conf1), SetVariable("ask", ""),no_action]

            if ("save" in ask and persistent.ask_save == True) or ("del" in ask and persistent.ask_del == True) or ("load" in ask and persistent.ask_load == True) or ("title" in ask and persistent.ask_title == True) or ("quitload" in ask and persistent.quitload > 0):
                textbutton "[conf]":
                    style_prefix "confirm2"
                    action [ToggleVariable("conf", true_value=conf2,false_value=conf1)]