スクリプターズカフェ/ログ/リンクメッセージ関連不具合
出典: Second Life in Japan
[編集] 08/09/06
この不具合を再現してみようということで、次のようなスクリプトでテストしてみました。
※不具合らしきものが確認できた撮影スタジオの仕組みと同じようなものを ※再現しています。
【ルートプリム内のスクリプト】
default {
state_entry() {
llListen( -10, "", "", "" );
}
listen(integer channel, string name, key id, string message) {
llMessageLinked( LINK_SET, (integer)message, "", "" );
if ( message == "3" ) {
llSetRot( llGetRot() * llEuler2Rot( <0.0, 0.0, -10> * DEG_TO_RAD ) );
}
}
}
【子プリム内のスクリプト】
default {
link_message(integer sender_number, integer number, string message, key id) {
if ( number == 1 ) {
llSetScale( <0.1, 0.1, 0.1> );
} else if ( number == 2 ) {
llSetScale( <2.0, 2.0, 2.0> );
} else if ( number == 3 ) {
llSetLocalRot( llGetLocalRot() * llEuler2Rot( <0.0, 0.0, 10> * DEG_TO_RAD ) );
}
}
}
上記のスクリプトを、7つのプリムをリンクしたオブジェクトに追加しました。 また、このプリムへ命令を送信するボタンに以下のスクリプトをいれてあります。 (命令部分の数字を変えて3つのボタンを用意しました)
【命令送信ボタン内のスクリプト】
default {
touch_start(integer total_number) {
llSay( -10, "1" );
}
}
準備ができたところで、ボタンをアレコレ連打してみたのですが、リンクメッセージが欠落したり、途中からリンクメッセージを受け付けなくなるような現象は見られませんでした。
オフィスアワーにいらした方に聞いてみても、リンクメッセージを多用しているスクリプトで特に問題は起きていないとのこと。
単純なリンクメッセージでは問題が確認できないので、リンクメッセージの仕様が変わったということは言えないように思えますが、もう少し状況を調べてみたいとは思います。
[編集] 08/08/30
メイングリッドがMono搭載の1.24に切り替わって以降、リンクメッセージ(llMessageLinked/link_message)を多用するスクリプトでリンクメッセージの処理が上手くいかない等の問題が起きているようです。
現時点(2008/09/04)では、この挙動についての詳しい情報が分かっていないので、これが「仕様変更」なのか「不具合」なのかは分かりません。
この件は、きちんと調査する必要がありそうです。
