KAGでは存在しない画像ファイルを読み込むとエラーでゲームが止まってしまいます。
些細な指定ミスでゲームを再起動するのも大変なので止まらないようにします。
下のスクリプトをignoreMissing.tjsとして保存し、override.tjsで「Scripts.evalStorage(“ignoreMissing.tjs”);」のように読み込みます。
後はfirst.ksなどで[eval exp=”global.ignoreImageMissing = true”]とすると画像ファイルが存在しなくてもエラー停止しなくなります。
[eval exp=”global.ignoreSEMissing = true”]とすると効果音ファイルについても同じく停止しなくなります。
global.ignoreSEMissing = false; global.ignoreImageMissing = false; SESoundBuffer.play = function(elm, resetvolume = true) { var SUPER = global.WaveSoundBuffer; SUPER.stop(); stopFade(); var storage = elm.storage; var start = elm.start; var found = true; if (!Storages.isExistentStorage(storage)) { var test; if(test = storage + ".wav", Storages.isExistentStorage(test)) storage = test; else if(test = storage + ".ogg", Storages.isExistentStorage(test)) storage = test; else if(test = storage + ".tcw", Storages.isExistentStorage(test)) storage = test; else found = false; } if(!found) { if (global.ignoreSEMissing) { // 例外を抑制 dm("効果音 " + storage + " が見つかりません"); return; } else { throw new Exception("効果音 " + storage + " が見つかりません"); } } var loop = elm.loop === void ? false : +elm.loop; looping = loop; if(loop) currentStorage = storage; else currentStorage = ""; try { SUPER.open(storage); if(resetvolume) SUPER.volume = currentVolume * 1000; // 再生位置指定 if (start !== void && SUPER.labels !== void && (start = SUPER.labels[start]) !== void && (start = start.samplePosition) !== void) { SUPER.samplePosition = start; } SUPER.play(); } catch(e) { dm("効果音の再生に失敗しました(実行は続行できます) : " + e.message); } }; KAGLayer.loadImages = function(storage, key) { var SUPER = global.Layer; key = adjustColorKey(key); try { return SUPER.loadImages(storage, key); } catch(e) { if (global.ignoreImageMissing) { // 例外を抑制 dm("画像(" + storage + ")の読み込みに失敗しました。" + e.message); return; } else { throw e; } } };
昔書いたスクリプトを発掘したので公開。
KAG専用です。KAGEXでは最初から止まらないようになっていると思います。