独自セーブ

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

独自セーブ

投稿記事 by よしだとものり »

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

使うときはコピペ推奨です。
プラグインにしようとしましたが、挫折しました。
添付ファイル
TOMO_O_Save.zip
(888 バイト) ダウンロード数: 31 回
よしだとものり
記事: 134
登録日時: 2017年7月25日(火) 23:18

Re: 独自セーブ

投稿記事 by よしだとものり »

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

Re: 独自セーブ

投稿記事 by よしだとものり »

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

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

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

Re: 独自セーブ

投稿記事 by よしだとものり »

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

コード: 全て選択

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:プラグイン素材”に戻る