確認ダイアログの表示を設定出来るようにする
終了時、タイトルに戻る時、セーブ上書き時、ロード時、クイックロード時
それぞれで確認するかを以下の変数で設定できるようにします。
persistent.ask_quit
persistent.ask_title
persistent.ask_save
persistent.ask_load
persistent.ask_qload
まず初期値を決めるため、適当な場所に以下のコードを記述します。
# 初回起動時のみ実行
if not persistent.first_init:
# confirm
persistent.ask_quit = True
persistent.ask_title = True
persistent.ask_save = True
persistent.ask_load = True
persistent.ask_qload = True
persistent.first_init = True
これで初回起動時のみこれらの値が設定されます。
次に実査の処理ですが、
終了、タイトルに戻るは単にscreens.rpyのAction Quit,MainMenuのキーワード引数にそれぞれの対応する変数を指定すればいいだけです。
右上の閉じるボタンだけは以前作成したラベルconfirm_quitを編集する必要があります。(v6.16からconfirm_quitは使用されなくなりました。使用するにはconfig.quit_action を ui.gamemenus(“_confirm_quit”) に設定してください。 )
以下のようにしてください。
#右上の閉じるボタンを押した時の処理
label confirm_quit:
if persistent.ask_quit:
if layout.yesno_prompt(None, layout.QUIT):
python:
if not renpy.context()._main_menu:
renpy.save("auto")
jump _quit
else:
return
python:
if not renpy.context()._main_menu:
renpy.save("auto")
jump _quit
次に、Quickロードの処理ですが、QuickLoadは引数をとらないので、これは関数を上書きする必要があります。
適当な場所に以下のコードを記述します。
init python:
# confirmを指定出来るように改造
def QuickLoad2(confirm=False):
return FileLoad(1, page="quick", confirm=confirm, newest=False)
QuickLoad = QuickLoad2
これでQuickLoadにもconfirm引数を指定出来ます。
面倒なのがセーブロードです。
screen file_pickerを切り取って、その内容をscreen save,loadに貼り付けてください。
use file_pickerは共に削除してください。
つぎに、screen saveのFileAction(i)をFileSave(i, confirm=persistent.ask_save)に置き換えます。
同様に、screen loadのFileAction(i)をFileLoad(i, confirm=persistent.ask_load)に置き換えます。
ついでにセーブロードマウスを中央に自動移動し、マウスホイールでページを移動出来るようにしておきます。
これで以下のようになりました。
screen save:
# 追加部分↓
key 'mousedown_4' action FilePagePrevious()
key 'mousedown_5' action FilePageNext()
on "replace" action MouseMove(400, 150, 100)
# 追加部分↑
# This ensures that any other menu screen is replaced.
tag menu
use navigation
frame:
style "file_picker_frame"
has vbox
# The buttons at the top allow the user to pick a
# page of files.
hbox:
style_group "file_picker_nav"
textbutton _("Previous"):
action FilePagePrevious()
textbutton _("Auto"):
action FilePage("auto")
textbutton _("Quick"):
action FilePage("quick")
for i in range(1, 9):
textbutton str(i):
action FilePage(i)
textbutton _("Next"):
# 追加部分↓
action FilePageNext()
# 追加部分↑
$ columns = 2
$ rows = 5
# Display a grid of file slots.
grid columns rows:
transpose True
xfill True
style_group "file_picker"
# Display ten file slots, numbered 1 - 10.
for i in range(1, columns * rows + 1):
# Each file slot is a button.
button:
#追加部分↓
action FileSave(i, confirm=persistent.ask_save)
#追加部分↑
xfill True
has hbox
# Add the screenshot.
add FileScreenshot(i)
# Format the description, and add it as text.
$ description = "% 2s. %s\n%s" % (
FileSlotName(i, columns * rows),
FileTime(i, empty=_("Empty Slot.")),
FileSaveName(i))
text description
key "save_delete" action FileDelete(i)
screen load:
# 追加部分↓
key 'mousedown_4' action FilePagePrevious()
key 'mousedown_5' action FilePageNext()
on "replace" action MouseMove(400, 150, 100)
# 追加部分↑
# This ensures that any other menu screen is replaced.
tag menu
use navigation
frame:
style "file_picker_frame"
has vbox
# The buttons at the top allow the user to pick a
# page of files.
hbox:
style_group "file_picker_nav"
textbutton _("Previous"):
action FilePagePrevious()
textbutton _("Auto"):
action FilePage("auto")
textbutton _("Quick"):
action FilePage("quick")
for i in range(1, 9):
textbutton str(i):
action FilePage(i)
textbutton _("Next"):
# 追加部分↓
action FilePageNext()
# 追加部分↑
$ columns = 2
$ rows = 5
# Display a grid of file slots.
grid columns rows:
transpose True
xfill True
style_group "file_picker"
# Display ten file slots, numbered 1 - 10.
for i in range(1, columns * rows + 1):
# Each file slot is a button.
button:
#追加部分↓
action FileLoad(i, confirm=persistent.ask_load)]
#追加部分↑
xfill True
has hbox
# Add the screenshot.
add FileScreenshot(i)
# Format the description, and add it as text.
$ description = "% 2s. %s\n%s" % (
FileSlotName(i, columns * rows),
FileTime(i, empty=_("Empty Slot.")),
FileSaveName(i))
text description
key "save_delete" action FileDelete(i)
次回は、設定画面を作成します。