【解決しました】(VXAce)『ダンジョンに入る前へ戻る』スクリプト

アバター
HAL
記事: 12
登録日時: 2017年1月24日(火) 13:30

【解決しました】(VXAce)『ダンジョンに入る前へ戻る』スクリプト

投稿記事by HAL » 2018年10月12日(金) 00:40

いつもお世話になっております。また、投稿を見ていただきありがとうございます。
標題のようなスクリプトを探しているのですが、見当たらなかったため、こちらのリクエストの方へ書き込ませていただいております。
(見落としで実装可能なスクリプトがあるようでしたら教えていただけますと幸いです)

希望している内容は下記のような形です。

>セーブデータは通常と同じく複数作成できる
>ダンジョン進入前にチェックポイントを通過し、中断データを作成(『スクリプト』で実行)
>ダンジョン内で全滅になる時はその中断データをロードする(『スクリプト』で実行)
>途中でセーブデータをロードした場合も中断データを保持したい
>中断データはプレイヤーには見られない・操作できないものとして扱いたい

蛇足かもしれませんが、当初想定した処理は添付図のような感じでした…。
(自分が考えを整理するために作ったので見づらいかもしれません;)

セーブデータを通常と違う名前で保存したりできないかなど、自分でも一応試してみたのですが、どうにもできませんでした…。
もしこういったスクリプトを作成して頂ける方がいらっしゃいましたら、恐れ入りますがご助力いただけますと幸いです。
また、VXaceの仕様上不可能であったり、かなり手間がかかるという場合は、その旨教えていただけると助かります。

お手数おかけいたしますが、何卒よろしくお願いいたします。

中断セーブ.jpg
最後に編集したユーザー HAL on 2018年10月13日(土) 21:48 [ 編集 1 回目 ]

アバター
HAL
記事: 12
登録日時: 2017年1月24日(火) 13:30

Re: (VXAce)『ダンジョンに入る前へ戻る』スクリプト

投稿記事by HAL » 2018年10月13日(土) 20:03

こちらのリクエストですが、ぐにゃぐにゃと色々試している内に自己解決できました。
だいぶ無理やりねじ込んだので大丈夫なのかどうか非常に不安ですが…;
一応、メモとしてやり方を書いておきます。(スクリプトの書き方が汚いのはご容赦ください)

・星潟様のクイックセーブ&ロードのスクリプトをお借りする

・DataManagerのdef self.save_game_without_rescue(index)に処理を追加

コード: 全て選択

#通常セーブ時、クイックセーブのデータが存在すればindex+11の番号にリネームする
if index != -1
  File.rename("QuickSave.rvdata2","QuickSave#{index+11}.rvdata2") if File.exist?("QuickSave.rvdata2")
  #セーブデータのスロット番号を保管する変数
  $game_variables[11] = index+11
end


・Scene_Titleのdef startに下記を追加

コード: 全て選択

#タイトル画面でクイックセーブのデータを削除
File.delete("QuickSave.rvdata2") if File.exist?("QuickSave.rvdata2")


・クイックロードを行う際は下記のように実行する

コード: 全て選択

if File.exist?("QuickSave.rvdata2")
 #クイックセーブが作成されてから一度もセーブしていない状態
 quick_load
elsif File.exist?("QuickSave#{$game_variables[11]}.rvdata2")
 #クイックセーブ作成後にセーブしている状態
 #変数を使って紐付いたデータ参照、QuickSave.rvdata2としてコピーし、クイックロードする
 File.copy_stream("QuickSave#{$game_variables[11]}.rvdata2","QuickSave.rvdata2")
 quick_load
else
 #クイックセーブデータがない場合はゲームオーバーとして扱う
 puts "File Not Found"
 SceneManager.goto(Scene_Gameover)
 Fiber.yield
end


とりあえず今のところはこれで動いているのですが、何か間違っていたり無理な処理をしていたり
もっといい方法があるよという場合にはぜひご指導願いますm(_ _)m
よろしくお願いいたします。

“VX / Ace:スクリプト素材のリクエスト” へ戻る