SRPG Studio オートセーブ機能で一手ずつ行動を戻す機能を再現しようとしたプラグイン
(2023/12/27)
ターンを選んだ時にエラーになるのを修正しました
こんにちは熱帯魚ことRYBAです。
本プラグインを導入すると
オートセーブ機能が追加されます。
事前準備(必須)
Ryba.UndoLoadControlのうちの以下の関数を設定する必要があります
//実際に使っている通常のセーブデータの数を入力します
startUndoSaveCount:function(){
return 50;
},
//オートセーブデータを何個まで記録するかの数
//※startUndoSaveCountと合わせて99を超えるとバグります
maxUndoCount:function(){
return 40;
},
その他の設定項目
ロードしたセーブデータの数を記録する場合、
その変数のテーブルとIDを指定します。
そして、Ryba.UndoLoadCountRecord を trueにします。
また、1マップ中にロードできる回数を制限する場合、
その変数のテーブルとIDを指定します。
Ryba.RewindSystem = true;にします。
//ロードしたセーブデータの数を記録する変数のテーブル番号を記載します。
//※タブの番号は「0」、「1」、「2」....となっている点に注意
Ryba.SaveCountTableId = 0;
//ロードしたセーブデータの数を記録する変数のIDを記載します。
Ryba.SaveCountVariableId = 1;
//ロードしたセーブデータの数を記録するかどうか
Ryba.UndoLoadCountRecord = false;
//巻き戻し機能化するかどうか
//trueにするとロードできる回数などが指定できます
//(ツール側にデフォルトであるマップセーブがオフにしないとプレイヤーが簡単に不正出来てしまう欠点があります)
//trueにするとタイトルからは選べなくなります(マップ攻略中のみ選択可能に)
Ryba.RewindSystem = true;
//巻き戻せる回数
Ryba.RewindMaxCount = 10;
//巻き戻し回数を保存する変数を設定
//これは「ロードしたセーブデータの数を記録する」変数とは別の物にする必要があります
//※タブの番号は「0」、「1」、「2」....となっている点に注意
Ryba.RewindCountTableId = 0;
//変数のIDを記載します。
Ryba.RewindCountVariableId = 2;
環境
オートセーブに関する項目が二つ増えます。
「オートセーブ最新読込」は
オフにすると単純に一番最後にセーブしたデータが最新となりますが、
オンにするとロードしたデータが最新データとなり、
一手戻しっぽくなります。
カスタマイズ(重いとき)
ぶっちゃけターンの開始時だけで良い場合は
810行目のgetFlagValue関数部分を変更しましましょう。
getFlagValue: function() {
if (typeof root.getExternalData().env.autoSaveType !== 'number') {
return AutoSaveType.Turn;
}
return root.getExternalData().env.autoSaveType;
}
初期設定が「ターン」になります。
「ユニット」を項目から消したい場合
getFlagCount: function() {
return 2;
},
getObjectArray: function() {
return [ 'なし', 'ターン' ];
}
としましょう。
注意点
あくまでオートセーブ機能です。
(巻き戻しを主目的とした機能ではないです)
また、ユニットの行動毎にセーブするため
セーブ容量の多い作品ではかなり重くなり、
事実上実装できない可能性があります。
Plguin
https://github.com/RYBA549/RYBA_SrpgStudio/blob/master/UndoLoadControl.js
PS
参考までにこちらもどうぞ↓
https://note.com/nettaigyo10ryba/n/ndd3158fd56c3
履歴
(2023/12/27)
ターンを選んだ時にエラーになるのを修正しました。
(2023/04/06)
ロードできる回数を設定できるモードを追加しました。
指定回数以上ロードするとそのマップでは
オートセーブデータをロードできなくなります。
(オートセーブ機能なのでなんか変ですが)
使用する場合はマップセーブ廃止推奨です
(オートセーブの都合上プレイヤーが悪さしやすくなります)
公式の中断セーブプラグインなどを代わりに入れましょう。