ソラマメブログ

  

Posted by at

2007年05月07日

llRemoteLoadScriptPinで別スクリプト呼出

llRemoteLoadScriptPinで別スクリプト呼出

複数のスクリプトの扱いについて、情報が散逸しているので自分用にまとめる。
情報源は、http://wiki.secondlife.com/wiki/http://www.lslwiki.net/lslwiki/wakka.php
LSLGuide.pdf。
(間違いがあったら教えてください~)

・オブジェクト内には、スクリプト名のABC順に並べ変えられて格納される。
 大文字小文字は関係ない。
・一番上に格納されているスクリプトが実行される
・同じオブジェクトに入っているスクリプトを呼び出す際は、PINを指定しておかなくてOK。
 KEYもNULL_KEYでOK。
・別なオブジェクトに入っているスクリプトを呼ぶ場合は、呼び先がRezされている必要がある
 (インベントリに入っているだけではダメ)
・呼び出すタイミング(イベント)によって、動作が変わるので注意。下記の例参照。
 state_entry()で別スクリプトを呼び出すと、touch_start()の処理はinvokerが終わってからchild
 touch_start()で別スクリプトを呼び出すと、
 ・・・だと思ったが、いったんTakeしてからでないと、最後にオブジェクトに入れたスクリプト
 を最初に実行しているように見える。不明。
・PIN(Personal Identification Number)はinteger
・スクリプトをまたがって変数を受け渡す方法はなさそう。
 llRemoteLoadScriptPin関数の最後の引数を使えば、llGetStartParameter関数でintegerを受け取れる
 ID設定に使うなら、オブジェクトの属性としてllSetAlpha関数/llGetAlpha関数とかで受け渡したほうがいいかも。
・llRemoteLoadScriptPin関数の先頭の引数の「key target」に何を指定すればいいのかは不明。



//00Invoker-1 呼び出す側のスクリプトその1
default
{
state_entry()
{
llOwnerSay("rez " + llGetObjectName() + "with " + llGetScriptName());
llRemoteLoadScriptPin(NULL_KEY, "child-script", 3, FALSE, 0);
}

touch_start(integer total_number)
{
llOwnerSay("Touch start at " + llGetScriptName());
llOwnerSay("Touch end at " + llGetScriptName());
}
}


//00Invoker-2 呼び出す側のスクリプトその2
default
{
state_entry()
{
llOwnerSay("rez " + llGetObjectName() + "with " + llGetScriptName());
}

touch_start(integer total_number)
{
llOwnerSay("Touch start at " + llGetScriptName());
llRemoteLoadScriptPin(NULL_KEY, "child-script", 3, FALSE, 0);
llOwnerSay("Touch end at " + llGetScriptName());
}
}


//child-script 呼び出される側のスクリプト
default
{
state_entry()
{
llOwnerSay("rez " + llGetObjectName() + "with " + llGetScriptName());
}

touch_start(integer total_number)
{
llOwnerSay("Touch start at " + llGetScriptName());
llOwnerSay("Touch end at " + llGetScriptName());
}
}
  続きを読む


Posted by march at 19:12Comments(0)LSL

2007年05月07日

Linden Town Hall Meeting 寝落ち

先日の話。Linden Town Hall Meeting に参加しようと、会場に行って座っていたが
うっかり寝てしまい気づくとクライアントが落ちていた。
会場でも流れていたRadio Lindenで、苗字がLindenの人へのインタビューがあった。
スピードを半分にして5,6回聞いても半分も理解できないが、長時間がんばって働いてるぽかった。

  


Posted by march at 01:27Comments(0)