
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]