メインコンテンツへスキップ
  1. SOroom/

ティラノV5のloadScenario改造

·
ゲ制 ティラノスクリプト
目次

9月11日追記 セーブロード時のマクロ行数の変更によるシナリオのずれへの対応は、こちらの方の記事がピンポイントで万全だと思います。

他の記事やプラグインも色々参考になります。ありがたや。

というわけでキャッシュを無視しよう #

シナリオファイルのキャッシュが有効だと、PC版でもブラウザ版でもいちいち新規読み込みが発生せず良いのですが、開発段階だとロード時に変更箇所が反映されずちょっとめんどいので無効にしてみようのコーナーです。 ティラノのgithubのV5現時点で最新版使ってます。

とりあえず下記のコードをfirst.ksの初っ端にでも入れるとコメント通りの条件でキャッシュを無視します。すると思います。しなかった場合はお教えいただければ……。ただキャッシュが有効な状態が通常のプレイ環境なので、公開前にはこの部分を消してがっつりテストするのが安全です。私はそこをおろそかにしてよくやらかします……。

[iscript]
tyrano.plugin.kag.loadScenario = function(file_name,call_back){
        var that = this;
        this.stat.is_strong_stop = true;
        this.stat.current_scenario = file_name;
        var file_url = "";
        if($.isHTTP(file_name)){
    	    file_url = file_name;	
    	}else{
    		file_url = "./data/scenario/"+file_name;
    	}

        //キャッシュ確認 ★元々のやつ
    	//if(that.cache_scenario[file_url]){
    	//★キャッシュがあってかつティラノスタジオから起動されてない場合はキャッシュから読み込む
    	if(that.cache_scenario[file_url] && that.kag.is_studio!=true){
            if(call_back){
                var result_obj = that.cache_scenario[file_url];
                var tag_obj = result_obj.array_s;
                var map_label = result_obj.map_label;
                that.stat.map_label = map_label;
                that.stat.is_strong_stop = false;
                call_back(tag_obj);
            }
        }else{
            $.loadText(file_url,function(text_str){
                var result_obj = that.parser.parseScenario(text_str);
                that.cache_scenario[file_url] = result_obj;
                var tag_obj = result_obj.array_s;
                var map_label = result_obj.map_label;
                that.stat.map_label = map_label;
                that.stat.is_strong_stop = false;
                if(call_back){
                    call_back(tag_obj);
                }
            });
        }
    };
[endscript]

他に何か動的に追加したいものがある場合、githubのコードを使って改造してiscrpitタグ内でプラグイン的な感じにするのが扱いやすいかなという気がします。私は毎回直接改造して流用できずに終わっています。無駄!