ページ 11

セーブデータ毎のアクターネーム取得について

Posted: 2021年12月17日(金) 23:31
by 桜庭薫
VX Aceについての質問です。
デフォルトのセーブ画面において、プレイ時間の横にアクター1の名前を表示したいと思っています。
表示自体は出来たのですが、現在ロードしているファイルのアクター1の名前が表示されてしまいます。

ファイル毎にアクター1の名前が異なるので、ファイル毎のアクター1の名前を表示したいのですが、
どのような記述をすれば名前を取得できるのでしょうか。

どなたか知恵をお貸しください。よろしくお願い致します。

Re: セーブデータ毎のアクターネーム取得について

Posted: 2021年12月18日(土) 01:15
by 名無し蛙
どうもこんばんは。
とりあえずスクリプト改造に関するノウハウがある程度ある事を前提に書きます。
正着手はセーブヘッダ情報の追加でしょうね。
DataManagerの199行目にdef self.make_save_headerというメソッドがあります。
これはセーブ画面でファイルの見出し情報を抜き出して保管する為のメソッドです。
再定義化するとしたらこんなところですか。

コード: 全て選択

class << DataManager
  #--------------------------------------------------------------------------
  # ○ セーブヘッダの作成
  #--------------------------------------------------------------------------
  alias :_old_make_save_header :make_save_header
  def make_save_header
    header = _old_make_save_header
    header[:actor1_name] = $game_actors[1].name
    header
  end
end

あとはWindow_SaveFile#draw_playtime等を参考に
headerからこの情報を抜き出して表示すれば上手くいくんじゃないでしょうか