original code by BadMustard
コメントは機械翻訳(DeepL)で日本語化しています。
続きがあります。
1. ダウンロードしたzipからrequiredCode.txtを開く
original text by requiredCode.txt
セーブに名前をつけるために必要なのは、以下のコードだけです。
使用するscreens.rpyファイルの3つのエリアに分けて配置する必要があります。
1つ目と2つ目は同じエリアに、3つ目は別のエリアに配置します。
オプションのアイコンを使ってセーブファイルを削除したり、自分で作成したりする場合は、必ず必要な「images/delete」フォルダをコピーしてください。画像がないとクラッシュします。
requiredCode.txtから該当のコードをコピペする
もしくはscreens.rpyからBadMustardを検索する
2. screens.rpyのsaveスクリーンを編集する
screen file_slots(title)
button: (省略) # 強制的にセーブ名を追加 if persistent.saveName: action If(renpy.get_screen("save"), true=Show("savegameName", accept=FileSave(slot)), false=FileLoad(slot)) else: action FileAction(slot) (省略) # 任意で保存名を追加 if FileSaveName(slot): $ fn = FileSaveName(slot) if fn and ("-" in fn): $ y = fn.split("-") text fn: style "slot_name_text" # save_delete = [ 'K_DELETE', 'KP_DELETE' ] # デリートキーを押すとファイルが消える設定 key "save_delete" action FileDelete(slot) # これを上のオプションの下に置く if FileLoadable(slot): imagebutton: auto "images/delete/delete_%s.png" action FileDelete(slot) xalign 1.0 xoffset 15 yoffset -85
screens.rpy内であればどこでも
screen savegameName(accept=NullAction()): modal True add "black" alpha 0.8 style_prefix "savegameName" frame: has vbox: xalign 0.5 spacing 20 label _("Save Name"): text_color gui.text_color xalign 0.5 null height 10 input size 40 color gui.hover_color default store.save_name changed Namer length 22 allow allowedChars: yalign 1.0 xalign 0.5 xysize (550, 40) textbutton _("{u}Save the Game{/u}"): xalign 0.5 keysym ['K_RETURN', 'K_KP_ENTER'] action [accept, (Hide("savegameName"))] init python: import string def Namer(name): store.save_name = name # 入力可能な文字を定義します。 # 許可する文字は以下になります: # 大文字(ascii_lettersの場合) # 小文字(ascii_lettersの場合) # 数字 0 から 9 (数字) # スペース、ダッシュ define allowedChars = string.ascii_letters + string.digits + " -" default persistent.saveName = True style savegameName_frame: padding gui.confirm_frame_borders.padding xsize 650 xalign 0.5 yalign 0.5 style savegameName_frame: variant "touch" padding gui.confirm_frame_borders.padding xsize 650 xalign 0.5 yalign 0 ypos 50
3.screen preferencesにコードを追加
screen preferences(): ## radio_pref "または "check_pref "タイプのvboxをここに追加して、作成者が定義したプリファレンスを追加することができます。 vbox: style_prefix "radio" label _("Save game names") textbutton _("Yes") action [SetVariable("persistent.saveName", True), SetVariable("store.save_name", "")] textbutton _("No") action [SetVariable("persistent.saveName", False), SetVariable("store.save_name", "Un-Named")] #デフォルトの名前を設定します。
余談 改変コード
セーブ機能と切り離したメモのボタンを作りたかったので作りました。
screen file_slots(title)
screen file_slots(title): (省略) if file_name in persistent.savename: $ fn = name_hyouji(file_name) else: $ fn = "" textbutton "MEMO:"+fn: action Show("savegameName", num=file_name, memo=fn) #"MEMO:"の内容は好きに変えていいです。 #保存したメモの内容をボタンに表示しない場合は+fnのところを削ってください。
screens.rpy内であればどこでも
screen savegameName(num,memo): modal True layer "confirm" add "conf_background" style_prefix "confirm" if preferences.language == "en_us": dismiss action Hide("savegameName") on "show" action name_func(memo) key "input_enter" action [Function(setname,num),(Hide("savegameName"))] frame at conf_appear: has vbox: xalign 0.5 spacing 20 label _("MEMO\n{size=-3}(15文字まで/Enterで決定){/size}"): xalign 0.5 text_text_align 0.5 null height 5 input size 28 color gcolor2 default memo changed name_func: length 15 yalign 1.0 xalign 0.5 xysize (400, 40) #lengthの値で何文字まで保存できるか設定できます。 #xysizeを大きくすることでinputの表示枠を広げることができます。 if preferences.language == "en_us": hbox: xalign 0.5 spacing 50 textbutton _("Yes") action [Function(setname,num),(Hide("savegameName"))] background "color2" hover_background "color4" textbutton _("No!") action [Hide("savegameName")]
options.rpy
default persistent.memo = "" default persistent.savename = {"0": "a"} init -3 python: (省略) def name_func(newstring): global memo memo = persistent.memo persistent.memo = newstring def setname(num): persistent.savename[num] = persistent.memo def name_hyouji(num): return persistent.savename[num]