[もどる]
一括表示
0368 エラー報告です
投稿者:KAZU 2006/02/07(火) 23:21

連投ですみませんが、SOUNDOINFO[]にエラーがありました。
存在しないサウンドレイヤーに対して、EXISTで
レイヤーの有無を調べるとYU-RIS本体が落ちます。
確認環境はWindows XP Professional SP2です。
なお、以下のスクリプトにて確認しました。

----- ソース開始 -----
//=======================================
//
// BGMの再生
// 引数: PSTR=ファイル名 PINT2=再生回数
//
//=======================================
#PLAY_BGM

STR[$FILE_NAME=$_PSTR(1)]
INT[@LOOP_COUNT=@_PINT(2)]
INT[@RESULT=0]

IF[@LOOP_COUNT<0]
DIALOG[STR="[PINT2:再生回数]は正数でなければいけません。" CAPTION="PLAY_BGM"]
END[]
IFEND[]

IF[$FILE_NAME!=""]
SOUND[ID="BGM" FILE=$FILE_NAME PLAY=1 LOOP=@LOOP_COUNT]
ELSE[]
SOUNDINFO[ID="BGM" EXIST=1 LET=@RESULT]
IF[@RESULT]
SOUNDEND[ID="BGM"]
IFEND[]
IFEND[]

RETURN[]
----- ソース終了 -----

0370 修正しました
投稿者:たくみ 2006/02/08(水) 05:41

ご報告有り難うございます(^^
今回のVer0.199で修正させていただきました。
おおなんと、見れば関数チックな使い方をしてくださっていますね。
有り難うございます〜(TT
現状の仕様だと、サブルーチンに飛んだ先ですぐに @_PINT 等のパラメータを
別の変数に格納したりしないと、さらにサブルーチンへ飛んだりすると値が
上書き/クリアされてしまう危険性があるので、そのあたりの仕様をなんとか改善しないと
いけないな…と思っています。

0374 確認しました
投稿者:KAZU 2006/02/09(木) 01:50

問題なく動作するようになりました。
いつも迅速な対応ありがとうございます。

ところで、旧バージョンのアーカイブツールでパックしたファイルを
現在のYU-RIS本体で読み込むとエラーで落ちるのは、パックファイルの
構造が昔と今で変わっているからですか?
アップデートファイルを作ろうと思い、本体とスクリプトファイルのみを
更新したかったのですが、画像や音楽も新たにパックし直さないといけない状況です。

0375 次回修正しますね
投稿者:たくみ 2006/02/11(土) 14:46

>ところで、旧バージョンのアーカイブツールでパックしたファイルを
>現在のYU-RIS本体で読み込むとエラーで落ちるのは、パックファイルの
>構造が昔と今で変わっているからですか?

お返事遅れてすみません(><;
強制終了してしまうのはバグのようです。
「バージョンが違う」という旨のエラーメッセージが出るはずだったのですが、
デバッグ機能を強化する際に作ってしまったらしい不具合でした。
それに関しては次回更新で修正しますね。

また、バージョン違いのパックファイル読込の許可/不許可についてですが、
パックファイル(ypf)とスクリプトバイナリファイル(ybn)の仕様に関しては
何回も速度改善や安定読込の為の仕様変更を行ってきていて、それをふまえて、
違うYU-RISのバージョンで作られたパックファイルに関しては読み込まないようにさせていたのですが、
そろそろ現状の仕様で固めることにして、いい加減その制限も解除した方が良いですね。
ということで、次のVer0.200からは、パックファイル読込に関して以前のバージョンとの
互換性を持たせようと思います。
現状のパック仕様は Ver0.175 から続いている仕様になるので、
その時以降に作られたパックファイルなら読み込めるようになります。
また、今後仕様が変わったとしても互換性は持たせるようにする予定です。
(※ただ、β→正式版に移行する時は、古い仕様を捨てて最適化、高速化を図るため
互換性が無くなる可能性があります)

ただスクリプトバイナリファイル(.ybn)の仕様に関しては、
今後も頻繁に仕様変更が行われていく予定ですので、
例えば EXE ファイルを修正ファイル(パッチファイル)に含めて配布する場合は、
現状毎回必ずスクリプトバイナリファイルも同梱させる必要があります。
※もし「EXEファイル本体のバージョン」と「スクリプトバイナリファイルのバージョン」が
違う場合にはエラーメッセージが表示されます。


>アップデートファイルを作ろうと思い、本体とスクリプトファイルのみを
>更新したかったのですが、画像や音楽も新たにパックし直さないといけない状況です。

了解です。もし配布したパックファイルのバージョンが Ver0.175 以上のものであり、かつ、
バイナリフォルダ(ysbin/)単体でパックしてあれば、以下の方法で解決できますです。
もし違う場合は個別にサポートいたしますのでメールにてご連絡くださいませ。

・近いうちに公開予定の Ver0.200 に同梱されている YSArc.exe を使っていただきまして、
  バイナリフォルダ「ysbin/」をパックしてください。
・それを、配布したパックファイルの、バイナリフォルダが格納されているパックファイルに
  上書きという形で差し替えてください。
・Ver0.200 の YU-RIS.EXE ファイルも上書きしてください。
・saveデータフォルダを破棄してください。(※まだ現状バージョン違いのセーブデータは読み込めない為)

これでアップデートは成功するはずです。
お試しくださいませ。

いろいろβ版ということで、本当にご迷惑おかけします。m(_ _)m
正式版へ向け、次はセーブデータ仕様を固めていき、
最後はスクリプトバイナリ仕様を固めていく予定です。