【解決済み】セーブ時のエラーを回避する方法

Frea

ユーザー
初めまして。

XPで10年近く 製作し最近 一つの作品を作る事が出来ました。

そこで一つ問題が発生しました。
それは テストプレイ 暗号化したデータ どちらでも
ゲームデータをセーブする時にエラーが発生し セーブデータが壊れてしまうのです。

壊れたセーブデータを持ったまま ロードを選択すると「EOFerror」と表示され
他のデータを選択する事も出来なくなります。

壊れたセーブデータを削除すれば 他のデータはロードする事が出来ます。

セーブ時にエラーが表示されるとそのまま落とすしかなくなります。
エラー後にRGSSを確認すると

Scene_Saveの 
# 各種ゲームオブジェクトを書き込む
Marshal.dump($game_system, file) ← この行でエラーが起きているのです。

セーブデータを改変するRGSS等は取り入れておらず
Scene_Save自体を 弄ったりした事はありません。

製作当初は全く起きた事は無かったです。
起きはじめたのが 今年入ってからで
新たに新しくスクリプトを導入したという事もありません。

一番困るのが 完全に再現が出来ない事で
セーブしようとすると たまになるのです。
それだけなら セーブエラーで済まされると思うのですが
特定のボスを倒した後に セーブすると必ずなったり(時間を空けてから倒すとならない)
同じ雑魚敵を倒した後にセーブするとなる事があったりならない事があったり
お店で買い物をした後にセーブするとなったりと非常に困ってます。

RGSSの事はそこまで詳しくないので
自分的に思っているのが MAPを999個限界まで作成した辺りから
ゲーム制作時も少し重くなったりしているので
その辺りが原因なのかもしれないと思っています。
なので MAPを減らしたりもしているのですが あまり改善はされません。

何か改善方法を知っている方がいましたら 情報提供して下さると助かります。
よろしくお願いします。
 
僕も長年ツクールXPを使ってきましたが、
上記のような症状に見舞われたことは一度もありません。

そこで僕が可能性があるのが「ハードディスクの一部が壊れている」ということです。
CHKDSKなどで、ハードディスクのセクタのチェックをすると、
不良セクタが見つかるかもしれません。

これは僕が、メールソフトで頻繁にエラーが起きるようになった時、
原因を調べたらハードディスクの劣化による不良セクタがあったからで、
CHKDSKで修復すると、破損したデータは戻りませんでしたが、
それ以上エラーは起きなくなりました。

以上、何か参考になれば幸いです。
 

Frea

ユーザー
神無月サスケ様
お返事有難う御座います。

記述が無かった事を謝ります。
実は 友達にテストプレイをお願いしており
私より先に友達のPCでこの状況になりました。

その友達もHDDの破損を考え CHKDSKをし再セットアップまでもしたのですが
改善が見られませんでした。
その後、その友達が持っている別のPCで同じボスを倒すと
エラーが無くセーブが出来るといった状況も確認出来ました。
本当に意味が分からなかったです。

それだけなら 友達が持つPCと相性が悪いと考えられるのですが
(と言っても三年ぐらい前からテストプレイしてもらってます)

今度は製作している私のPCでも同じ状況が起こり始めたのです。
本当に何が原因なのか分からなくて困っております。

引き続き 情報提供をお待ちしております。
サスケ様 有難う御座いました。
 

Frea

ユーザー
今日 友達と話しながら色々試し
自己解決の糸口を見つける事が出来ました。

閲覧して頂けた片、回答して下さった神無月サスケ様
本当に有難う御座いました。
 

ルファー

ユーザー
初めまして。
もう解決済みのようですが、思い当たることがあるので書き込みさせてください。

こちらのスレッドの件、僕が昔RPGXPゲーム(他者さんの作品)で体験した事故と全く同じ気がいたします。

僕のケースでは、ちょうどPCに負荷がかかってるときにセーブしようとしたら「スクリプトがハングアップ」して0バイトのセーブデータが爆誕した、というものです。
このときコンティニューしようとするとEOFerrorが発生し、とりあえず直すにはその壊れたセーブデータを消す必要がありました。
(そして、その壊れたセーブデータの復元は論理的に不可能でした…)

この当時の体験に対する対策として、拙作スクリプト素材「セーブデータのチェック」というのが作ってありますので、紹介させてください。
これを導入すると、要するに安全にセーブするまで古いデータを残すようになります。
…と言いたかったのですが、簡易的な整合性チェックも行う関係で
導入前のバージョンのセーブデータは読めなくなってしまいます。
もしご要望あれば、旧バージョンのセーブデータも引き続き読める後方互換版を用意いたします。

もし見当外れだったら、ごめんなさい。
 
最後に編集:
トップ