独自セーブ

フォーラムルール
素材の利用規約を決めたいけど、どんなことを書けばいいのか分からない場合は、
素材のテンプレートをご利用下さい。
よしだとものり
記事: 134
登録日時: 2017年7月25日(火) 23:18

独自セーブ

投稿記事by よしだとものり » 2017年10月14日(土) 17:45

詳しい方向けです。
変数を別領域に保存したかったので
作りました。
ovalという配列にデータを保存して、
osave(10);
oload(10);
でセーブ、ロードできます。
一応、変数の型を調べて自動で数値変換ぐらいはしてます。
引数の10は保存するデータの最大値です。
圧縮とかしてませんのでセーブ、ロードは遅いです。

使うときはコピペ推奨です。
プラグインにしようとしましたが、挫折しました。
添付ファイル
TOMO_O_Save.zip
(888 バイト) ダウンロード数: 30 回

よしだとものり
記事: 134
登録日時: 2017年7月25日(火) 23:18

Re: 独自セーブ

投稿記事by よしだとものり » 2017年10月14日(土) 18:13

早速バグってました;;
多分修正します
よしだとものり
記事: 134
登録日時: 2017年7月25日(火) 23:18

Re: 独自セーブ

投稿記事by よしだとものり » 2017年10月14日(土) 18:39

多分問題なかったと思いますが、一応
私がやりたいことができたバージョンのファイルを添付します。

ツクールの変数はユーザのタイミングで保存されてしまうし
自分が保存したいタイミングで保存すると色々と不便なので
作りました。

普通に作る分はツクールの変数が便利かと思います。
これは任意のタイミングでセーブデータに影響させずに
IDなどを保存するために作りました。
添付ファイル
TOMO_O_Save.zip
(898 バイト) ダウンロード数: 25 回
よしだとものり
記事: 134
登録日時: 2017年7月25日(火) 23:18

Re: 独自セーブ

投稿記事by よしだとものり » 2017年10月16日(月) 20:49

もう少し拡張性を上げました

コード: 全て選択

var oval=[];
function oload(p1,fbase,isize,fname,name){
   var data;
   var fs = require('fs');
   var dirPath = localFileDirectoryPath2(fbase);
   var filePath = dirPath+fname+"."+name;
   if (fs.existsSync(filePath)) {
      data = fs.readFileSync(filePath, { encoding: 'utf8' });
      data=data.split(",");
      var p=0;
      for(var i=0;i<isize;i++){
         var tmp0=data[p];
         p++;
         var tmp1=parseInt(data[p],10);
         p++;
         if(tmp1==1){
            oval[p1][i]=tmp0;
         }else{
            oval[p1][i]=parseInt(tmp0,10);
         }

      }
      return true;
   }
   return false;
}
function osave(p1,fbase,isize,fname,name){
   //var data = LZString.compressToBase64(oval);
   var fs = require('fs');
   var dirPath = localFileDirectoryPath2(fbase);
   var filePath = dirPath+fname+"."+name;

   if (!fs.existsSync(dirPath)) {
      fs.mkdirSync(dirPath);
   }
   var data=[];
   for(var i=0;i<isize;i++){
      data[i]=[];
   }
   for(var i=0;i<isize;i++){
      if(oval[p1][i]==false){
         data[i][0]="0000000000";
      }else{
         data[i][0]=oval[p1][i];
      }
      if(isNaN(oval[p1][i])){
         data[i][1]=1;
      }else{
         data[i][1]=0;
      }
   }
   fs.writeFileSync(filePath, data);


}


“MV:プラグイン素材” へ戻る