【解決済み】通常保存されない値のセーブと、ロードした時の値の適用方法

コマンドでダッシュの可・不可の切り替えができなかったのですが、JSを直接書くことで対処できました。

$dataMap.disableDashing = true;

しかし、この値の変更はセーブデータに記録されないみたいで、保存して再開するとダッシュできるようになってます。

そうならないように、ダッシュ状態を保存し、ロードしたら保存し状態に復帰するにはどうしたらいいのでしょうか?
 
書き換えるとしたらコアスクリプトのここです。

コード:
Game_Map.prototype.isDashDisabled = function() {
    return $dataMap.disableDashing;
};

システム全体で書き換えるなら、$gameSystem に保存するのはいかがでしょ。
まず、下記をコピペしてプラグイン化してください。

コード:
(function() {
  var _Game_System_initialize = Game_System.prototype.initialize;
  Game_System.prototype.initialize = function() {
    _Game_System_initialize.call(this);
    this._myDisableDash = false;
  };

  Game_System.prototype.enableDash = function() {
    this._myDisableDash = false;
  };

  Game_System.prototype.disableDash = function() {
    this._myDisableDash = true;
  };

  var _Game_Map_isDashDisabled = Game_Map.prototype.isDashDisabled;
  Game_Map.prototype.isDashDisabled = function() {
    return $gameSystem._myDisableDash || _Game_Map_isDashDisabled.call(this);
  };
})();

その後イベントコマンド「スクリプト」から以下で、可能です。

$gameSystem.disableDash(); // ダッシュ不可能に
$gameSystem.enableDash(); // ダッシュ可能に(デフォルト)

……以上がざっくりした方法です。
もっと丁寧にやるなら、プラグインコマンドとか付けるのがいいと思いますが:kaoback:
要望があればきちんとしたの作ります:kaoswt:
 
プラグイン作れました!
ほとんど神無月サスケさんのコードのまんまですけど、自力でプラグインコマンドも実装できました。わーい。
この方法だと、マップごとに設定している値が無視されますけど、ちょうどそういう仕様にしたかったので、バッチリです。
 
トップ