【サイトについて】
* RPGツクールMVを使った、ゲームを一層楽しくするためのアイディアや、豆知識、プラグインなどを紹介していきます。あくまで個人の考えに基づく記事ですので、参考程度にお読みいただければ幸いです。
<< 色んな値を変数に入れよう! | main | RPGツクールMVで作品のPVを作る >>
スポンサーサイト
0

    一定期間更新がないため広告を表示しています

    | - | |- |
    セーブデータにマップ名などを表示する
    0
      RPGツクールMVでゲームをセーブした時、
      データリスト上にはゲームタイトルが表示されますよね。



      しかしこれは何となく違和感が。
      タイトルじゃなくて章とか場所とかを表示させたいって方は沢山居るはず。

      というわけで今回は、セーブした「場所」をリスト上に表示するプラグインを作ってみましょう。
      表示させたいのは、これです。



      セーブデータの掲載情報を処理しているのはrpg_manager.jsの413行目〜422行目、DataManager.makeSavefileinfoの中です。
      表示名を司る変数は $gameMap.displayName(); なので、
      下記の場所にinfo.mapname = $gameMap.displayName();を書き足してください。
       
          DataManager.makeSavefileInfo = function() {
              var info = {};
              info.globalId   = this._globalId;
              info.title      = $dataSystem.gameTitle;
              info.mapname    = $gameMap.displayName();
              info.characters = $gameParty.charactersForSavefile();
              info.faces      = $gameParty.facesForSavefile();
              info.playtime   = $gameSystem.playtimeText();
              info.timestamp  = Date.now();
              return info;
          };

      ただし、ここではあくまで「マップ名の表示を定義」しているだけなので、
      実際にリスト上に「配置」させるための処理は別の場所です。
      rpg_windows.jsの2837行目〜2850行目、Window_SavefileList.prototype.drawContentsの中です。
       
      Window_SavefileList.prototype.drawContents = function(info, rect, valid) {
          var bottom = rect.y + rect.height;
          if (rect.width >= 420) {
              this.drawGameTitle(info, rect.x + 192, rect.y, rect.width - 192);
              if (valid) {
                  this.drawPartyCharacters(info, rect.x + 220, bottom - 4);
              }
          }
          var lineHeight = this.lineHeight();
          var y2 = bottom - lineHeight;
          if (y2 >= lineHeight) {
              this.drawPlaytime(info, rect.x, y2, rect.width);
          }
      };

      this.drawGameTitleってありますよね。
      これがデータリストにゲームタイトルを表示させている処理なのです。
      つまりこの部分を上で定義したものに書き換えれば良いわけです。

      this.drawGameTitle を this.drawTextに、info を info.mapnameに書き換えます。
       
          Window_SavefileList.prototype.drawContents = function(info, rect, valid) {
              var bottom = rect.y + rect.height;
              if (rect.width >= 420) {
                  this.drawText(info.mapname, rect.x + 192, rect.y, rect.width - 192);
                  if (valid) {
                      this.drawPartyCharacters(info, rect.x + 220, bottom - 4);
                  }
              }
              var lineHeight = this.lineHeight();
              var y2 = bottom - lineHeight;
              if (y2 >= lineHeight) {
                  this.drawPlaytime(info, rect.x + 190, rect.y, rect.width - 192);
              }
          };

      工程は以上です。
      これで保存して、セーブしてみましょう。



      うまくいきましたね。
      これでどの場所でセーブしたのか、分かりやすくなったはずです。

      カスタマイズ次第では変数と組み合わせて章を表示させたり、選択されている難易度や、ゲームの進行率なんかを表示させたりする事もできますので、この記事を参考に色々試してみると独自のリストが作れるので楽しいでしょう。

      今回もタイトルを場所に変更するためのプラグインを置いておきます。

      プラグインをダウンロードする
      (MapNameinSaveData.js / MITライセンス)

      ※セーブファイル変更関連は結構デリケートなので、既存のセーブデータや、他セーブデータのレイアウト書き換え等のプラグインとの競合に注意。
      ※プラグインを入れただけでは反映されません。入れた後にセーブしたデータにのみマップ名が反映されます。
      | RPGツクールMVプラグイン | 12:13 |- |
      スポンサーサイト
      0
        | - | 12:13 |- |
        PR