スクリプトの動作が不安定な理由がわかりません

Re: スクリプトの動作が不安定な理由がわかりません

von Xpyoda Janus -
Anzahl Antworten: 0

今回とは、直接関係ないとおもいますが、YourTV作ってるときに、リージョンを再起動すると、スクリプトの初期化がうまくいかないことがあるという不具合に、すこし手間取ってました。
まあ、URLの代わりに、手動で 「reset」 コマンドを入力すればスクリプトリセットかかるので、致命的な問題というほどではないのですが...あまりよろしくもないなと思ってました。

いろいろ試行錯誤した結果、changedイベントで、スクリプトリセットかけるときに、ちょっと時間待ちを入れるようにししたところ、なんとなく解決したような感じなのです。

changed(integer change)
{
    if(change & CHANGED_REGION_START) {
        llSleep(15.0 + llFrand(5.0));      // スタート直後は忙しいだろうから、ちょっと待つ。
        llResetScript();    // スクリプトをリセット
    }
}

リージョンが、リスタートした直後は、スクリプトが一斉に走り出すでしょうから、ちょっと乱数で実行開始を散らしてやりました。

1つのスクリプトは、1つの実行スレッドを持つので、各々に非同期で動作しています。リンクメッセージで同期させるにしても、相手がそれを受け取れる状態になっているような、「待ち」が必要になるのかもしれません。