ソラマメブログ
QRコード
QRCODE
アクセスカウンタ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 7人
オーナーへメッセージ

  
Posted by at

2008年02月10日

llSetTimerEvent

llSetTimerEvent


llSetTimerEvent(float sec)

関数 llSetTimerEvent で設定された時間が経ったら、timer イベントを発生させます。

以後、設定された時間が経てば、繰り返し timer イベントが発生します。


タイマーをoffにしたい場合は、llSetTimerEvent(0.0);を設定してあげます。




float sec タイマー時間の設定

<例> llSetTimerEvent(2.3);  ・・・タイマーの時間を2.3秒に設定。


<使用例>


default

{

    state_entry()

    {

      llSay(0, "timer start");

      llSetTimerEvent(5.0);

    }

    timer()

    {

      llSay(0, "timer end");

      llSetTimerEvent(0.0);

    }

}





llSetTimerEvent で5秒を設定しているので、5秒たったら timer イベントが発生します。

timerイベントの中で、さらに llSetTimerEvent で0秒をしています。

これは、 timer イベントをoffにする効果があります。

もし、ここで0秒を指定しなかった場合は、5秒ごとに timer イベントが繰り返し発生することになります。

何か、繰り返しセンサーを感知させたい場合などは、繰り返し設定しておくと良いと思います。





 


カテゴリ別一覧へ


アルファベット順一覧へ


 


Mother Lake は     こちら→ http://slurl.com/secondlife/Mother%20Lake/114/109/21

からくりや 江戸支店は こちら→ http://slurl.com/secondlife/EDO%20Japan/74/87/27



Mother Lake  のHPはこちらから→ http://ml.ms-p.jp/


法人の方はこちら → http://ms-p.jp/


  

Posted by akito at 16:23Comments(0)関数

2008年02月10日

llMessageLinked

llMessageLinked


llMessageLinked(integer linknum, integer num, string str, key id)

指定したプリムに、データを送信します。
















integer linknum送信先のprimのリンクナンバーを指定します。 
数値 数値に指定したプリムに送信
LINK_SET 全てのプリムに送信(自分も含む)
LINK_ALL_CHILDREN 全ての子プリムに送信
LINK_ALL_OTHERS 自分以外のプリムに送信
LINK_ROOT ルートプリムに送信

integer num 送信する数値     固定値は0。
string str  送信する文字列    空を送る場合は "" と入力。
key id 送信するデータ    空を送る場合は NULL_KEY と入力。

 


<使用例>


ルートプリム(赤)


default

{

   touch_start(integer total_number)

   {

     llMessageLinked(LINK_SET, 1,"", NULL_KEY);

   }

}


 


子プリム(黄色)


default

{

    link_message(integer sender_num, integer num, string str, key id)

    {

      if(num == 1){

        llSay(0, "messege");

     }

}

}




ルートプリム(赤)にタッチすると、子プリム(黄)が "messege"としゃべるスクリプトです。


ルートプリム(赤)にタッチすると、llMessageLinked により、1 という数値が全てのプリムに発信されます。


子プリム(黄)では、リンクメッセージを受信すると、if 文により、1という数字が送信されたときに処理を行うようにしています。

今回は、1という数字が入ってきますので、 "messege"としゃべることになります。







 


if 文による文字列や数値での条件の分岐や、文字列や数値によるデータの受け渡しなどが出来ますので、

複数のスクリプトを動かすときの、有効なイベントになります。


このイベントはとても使い勝手がよく、スクリプトに慣れてきたら、無くてはならないものになりますので、是非マスターしてください。


カテゴリ別一覧へ


アルファベット順一覧へ


 


Mother Lake は     こちら→ http://slurl.com/secondlife/Mother%20Lake/114/109/21

からくりや 江戸支店は こちら→ http://slurl.com/secondlife/EDO%20Japan/74/87/27



Mother Lake  のHPはこちらから→ http://ml.ms-p.jp/


法人の方はこちら → http://ms-p.jp/


  

Posted by akito at 16:20Comments(0)関数

2008年02月10日

llGetObjectPrimCount

llGetObjectPrimCount


integer llGetObjectPrimCount(key id)

key id で指定したUUIDのオブジェクトのリンク数を調べる。


key id リンク数を調べたいオブジェクトのUUIDを指定します。

 


<使用例>


default

{

   touch_start(integer total_number)

   {

     llSay(0, (string)llGetObjectPrimCount("e0b2910c-a18f-34d6-7751-1d39650746f7"));

   }

}





UUID e0b2910c-a18f-34d6-7751-1d39650746f7 (青いプリム)のリンク数を調べ、発言します。


カテゴリ別一覧へ


アルファベット順一覧へ


 


Mother Lake は     こちら→ http://slurl.com/secondlife/Mother%20Lake/114/109/21

からくりや 江戸支店は こちら→ http://slurl.com/secondlife/EDO%20Japan/74/87/27



Mother Lake  のHPはこちらから→ http://ml.ms-p.jp/


法人の方はこちら → http://ms-p.jp/


  

Posted by akito at 16:16Comments(0)関数

2008年02月10日

llGetNumberOfPrims

llGetNumberOfPrims


integer llGetNumberOfPrims()

リンクされているプリムの数を取得します。


オブジェクトにアバターが座っていた場合は、1アバター=1primとしてカウントされます。


指定する値はありません。


 


<使用例>


default

{

   touch_start(integer total_number)

   {

     llSay(0, (string)llGetNumberOfPrims());

   }

}






スクリプトが入っているオブジェクトのプリム数を返します。


カテゴリ別一覧へ


アルファベット順一覧へ


 


Mother Lake は     こちら→ http://slurl.com/secondlife/Mother%20Lake/114/109/21

からくりや 江戸支店は こちら→ http://slurl.com/secondlife/EDO%20Japan/74/87/27



Mother Lake  のHPはこちらから→ http://ml.ms-p.jp/


法人の方はこちら → http://ms-p.jp/

  

Posted by akito at 16:13Comments(0)関数

2008年02月10日

llGetLinkNumber

llGetLinkNumber


integer llGetLinkNumber()

自分自身のリンクナンバーを返します。


オブジェクトが単一(1プリム)の場合、有効な値は0のみであり、

複数プリムの場合はルートプリムが 1 、それ以降が子プリムになる。


指定する値はありません。


 


<使用例>


default

{

   touch_start(integer total_number)

   {

     llSay(0, (string)llGetLinkNumber());

   }

}






スクリプトが入っているオブジェクト(赤)をタッチすると、自分のリンクナンバーを返します。

今回はルートプリムなので、 1 が返ります。


カテゴリ別一覧へ


アルファベット順一覧へ


 


Mother Lake は     こちら→ http://slurl.com/secondlife/Mother%20Lake/114/109/21

からくりや 江戸支店は こちら→ http://slurl.com/secondlife/EDO%20Japan/74/87/27



Mother Lake  のHPはこちらから→ http://ml.ms-p.jp/


法人の方はこちら → http://ms-p.jp/

  

Posted by akito at 16:11Comments(0)関数

2008年02月10日

llGetLinkName

llGetLinkName


string llGetLinkName(integer linknum)

integer linknum で指定されたプリムナンバーのプリムの 名前 を取得する。


オブジェクトが単一(1プリム)の場合、有効な値は0のみであり、

複数プリムの場合はルートプリムが 1 、それ以降が子プリムになる。


integer linknum 名前 を取得するリンクのナンバー

 


<使用例>


default

{

   touch_start(integer total_number)

   {

     llSay(0, llGetLinkName(2));

   }

}





スクリプトが入っているオブジェクト(赤)をタッチすると、指定された子プリム(今回は2)の

名前を発言する。


カテゴリ別一覧へ


アルファベット順一覧へ


 


Mother Lake は     こちら→ http://slurl.com/secondlife/Mother%20Lake/114/109/21

からくりや 江戸支店は こちら→ http://slurl.com/secondlife/EDO%20Japan/74/87/27



Mother Lake  のHPはこちらから→ http://ml.ms-p.jp/


法人の方はこちら → http://ms-p.jp/


  

Posted by akito at 16:09Comments(0)関数

2008年02月10日

llGetLinkKey

llGetLinkKey


key llGetLinkKey(integer linknum)

integer linknum で指定されたプリムナンバーのプリムの UUID を取得する。


オブジェクトが単一(1プリム)の場合、有効な値は0のみであり、

複数プリムの場合はルートプリムが 1 、それ以降が子プリムになる。


integer linknum UUID を取得するリンクのナンバー

 


<使用例>


default

{

   touch_start(integer total_number)

   {

      llSay(0, (string)llGetLinkKey(2));

   }

}





スクリプトが入っているオブジェクト(赤)をタッチすると、指定された子プリム(今回は2)の

UUIDを発言する。


カテゴリ別一覧へ


アルファベット順一覧へ


 


Mother Lake は     こちら→ http://slurl.com/secondlife/Mother%20Lake/114/109/21

からくりや 江戸支店は こちら→ http://slurl.com/secondlife/EDO%20Japan/74/87/27



Mother Lake  のHPはこちらから→ http://ml.ms-p.jp/


法人の方はこちら → http://ms-p.jp/

  

Posted by akito at 16:07Comments(0)関数

2008年02月10日

llDetectedLinkNumber

llDetectedLinkNumber


integer llDetectedLinkNumber(integer number)

デテクト系イベント(タッチ、衝突、センサー)がどのプリムで行われたのかを取得する。


integer number デテクト系イベントが行われたプリムのナンバー

オブジェクトが単一(1プリム)の場合は 0 が返る。

複数の場合はルートプリムが 1、それ以降が子プリムとなる。


<使用例>


default

{

   touch_start(integer num_detected)

   {

     llSay(0, "Link number " + (string)llDetectedLinkNumber(0));

   }

}






スクリプトが入っているオブジェクト(青)をタッチすると、そのプリムのリンクナンバーを発言する。


カテゴリ別一覧へ


アルファベット順一覧へ


 


Mother Lake は     こちら→ http://slurl.com/secondlife/Mother%20Lake/114/109/21

からくりや 江戸支店は こちら→ http://slurl.com/secondlife/EDO%20Japan/74/87/27



Mother Lake  のHPはこちらから→ http://ml.ms-p.jp/


法人の方はこちら → http://ms-p.jp/

  

Posted by akito at 16:04Comments(0)関数

2008年02月10日

llCreateLink

llCreateLink


llCreateLink(key target, integer parent)

key target に指定したオブジェクトと、リンクを行います。






key target リンクを行う相手の UUID を指定します。
integer parent親プリムの指定を行います。
TRUE 自分(スクリプト保有オブジェクト)が親プリム
FALSE 相手が親プリム

リンクナンバーの振り分けは、

もしスクリプト保有オブジェクトが{A1.A2.A3}の3つのプリムで構成されており、相手側が{B1.B2.B3

で構成されていて、integer parent が TRUE の場合は、リンクナンバーは

A1.B1.B2.B3.A2.A3

となるみたいです。注意してください。


この関数を実行するにはPERMISSION_CHANGE_LINKSパーミッションを取得する必要があります。

相手先のオブジェクトにはパーミッションがなくても良いが、双方のオブジェクトのオーナーが同一で、かつmodify権限を持っていなければなりません。

アタッチメントやsit中のオブジェクトはリンク/リンク解除を行うことはできないという制限もあります。


<使用例>


default

{

    touch_start(integer num_detected)

    {

      if (llDetectedKey(0) == llGetOwner()){

          llRequestPermissions(llDetectedKey(0), PERMISSION_CHANGE_LINKS);

      }

    } 

    run_time_permissions(integer perm)

    {

      if (perm & PERMISSION_CHANGE_LINKS) {

        llCreateLink("33c1ed78-eb31-e81a-a01e-57f1cf8667ec", TRUE);

      }

    }

}








スクリプトが入っているオブジェクト(赤)をタッチすると、相手(青)とリンクします。

画面ではわかりにくいですが、確かにリンクしました。


尚、予め相手側のオブジェクト(青)のUUIDを "33c1ed78-eb31-e81a-a01e-57f1cf8667ec"

と仮定した上でのスクリプトになっています。


 


カテゴリ別一覧へ


アルファベット順一覧へ


 


Mother Lake は     こちら→ http://slurl.com/secondlife/Mother%20Lake/114/109/21

からくりや 江戸支店は こちら→ http://slurl.com/secondlife/EDO%20Japan/74/87/27



Mother Lake  のHPはこちらから→ http://ml.ms-p.jp/


法人の方はこちら → http://ms-p.jp/


  

Posted by akito at 16:02Comments(0)関数

2008年02月10日

llBreakLink

llBreakLink


llBreakLink(integer linknum)

integer linknum に指定したリンクナンバーのプリムをリンクから外します。




integer linknum リンクを解除するプリムを指定します。

 


<使用例>


default

{

   touch_start(integer num_detected)

    {

     if (llDetectedKey(0) == llGetOwner())

     {

        llRequestPermissions(llDetectedKey(0), PERMISSION_CHANGE_LINKS);

     }

   }

   run_time_permissions(integer perm)

    {

       if (perm & PERMISSION_CHANGE_LINKS)

        {

         llBreakLink(1);

       }

   }

}




コレが・・・

こうなります。


今回は、ルートプリム(赤)をリンクから解除するように”1”を設定しています。

しかし、このままではオブジェクトの中からルートプリムがなくなってしまいます。

そのため、2の値が与えられている子プリムが、次回のルートプリムになり、全てのプリムナンバーが一つずつずれます。


オブジェクトを物理属性にしているので、リンクが外れたら、赤いプリムが下に落ちますw


カテゴリ別一覧へ


アルファベット順一覧へ


 


Mother Lake は     こちら→ http://slurl.com/secondlife/Mother%20Lake/114/109/21

からくりや 江戸支店は こちら→ http://slurl.com/secondlife/EDO%20Japan/74/87/27



Mother Lake  のHPはこちらから→ http://ml.ms-p.jp/


法人の方はこちら → http://ms-p.jp/

  

Posted by akito at 15:56Comments(0)関数

2008年02月10日

llBreakAllLinks

llBreakAllLinks


llBreakAllLinks()

オブジェクトのリンクを全て解除します。

この関数を実行するには、 PERMISSION_CHANGE_LINKS パーミッションの取得が必要です。


 


<使用例>


default

{

   touch_start(integer num_detected)

   {

      if (llDetectedKey(0) == llGetOwner())

        {

          llRequestPermissions(llDetectedKey(0), PERMISSION_CHANGE_LINKS);

        }

   }

   run_time_permissions(integer perm)

    {

      if (perm & PERMISSION_CHANGE_LINKS)

       {

          llBreakAllLinks();

      }

   }

}




コレが・・・


バラバラに。


この関数は、アタッチメントされているオブジェクトには効果はありません。

一つのオブジェクトのみをリンクから外したい場合は、llBreakLink を使用してください。


オブジェクトに物理属性をかけているので、リンクを外したらバラバラになってしまいますw


カテゴリ別一覧へ


アルファベット順一覧へ


 


Mother Lake は     こちら→ http://slurl.com/secondlife/Mother%20Lake/114/109/21

からくりや 江戸支店は こちら→ http://slurl.com/secondlife/EDO%20Japan/74/87/27



Mother Lake  のHPはこちらから→ http://ml.ms-p.jp/


法人の方はこちら → http://ms-p.jp/

  

Posted by akito at 15:37Comments(0)関数

2008年02月10日

touch,touch_start,touch_end

touch_start

touch_end

touch

3つのイベントの違い


 


touch_start イベント


touch_start(integer num_detected)

オブジェクトがタッチされたときに呼び出されるイベントです。


integer num_detected  オブジェクトを触っている人数が格納されます。

 


<使用例>


default

{

   touch_start(integer total_number)

   {

      llSay(0, "Touched.");

   }

}




 


オブジェクトをタッチすると、”Toched”としゃべります。

デフォルトのスクリプトに組み込まれているイベントです。


メニューへ


 


touch_end イベント


touch_end(integer num_detected)

オブジェクトがタッチされ終わったとき(マウスを離した時)に呼び出されるイベントです。


integer num_detected  オブジェクトを触っている人数が格納されます。

 


<使用例>


default

{

   touch_end(integer total_number)

   {

      llSay(0, "Touched.");

   }

}




 


オブジェクトをタッチし、マウスボタンを離すと、”Toched”としゃべります。


メニューへ


 


touch イベント


touch(integer num_detected)

オブジェクトがタッチされている間に呼び出されるイベントです。

タッチされている間は、繰り返しイベントが発生します。


integer num_detected  オブジェクトを触っている人数が格納されます。

 


<使用例>


default

}

   touch(integer total_number)

   {

     llSay(0, "Touched.");

   }

}




 


オブジェクトをタッチし続けている間、”Toched”としゃべります。


メニューへ


 


3つのイベントの違い


3つのイベントには、


”触ったとき”

”触っている間”

”触り終わったとき”


という、3つの状態があり、それぞれ、touch_start , touch , touch_end イベントが対応しています。


以下の例を見てみましょう。


default

{

   touch(integer total_number)

   {

     llSay(0, "Touch");

   }

 

   touch_start(integer total_number)

   {

     llSay(0, "Touch_start");

   }

 

   touch_end(integer total_number)

   {

     llSay(0, "Touch_end");

   }

}






この場合、クリックした瞬間にtouch_start イベントが開始され、”Touch_start”としゃべります。

その後、touchイベントが繰り返され、"Touch"としゃべりつつけます。

マウスを離すと touch_end イベントが発生し、"Touch_end" としゃべります。


では、パイメニューのTouchで触った場合、どうなるのでしょうか?





 


実は、3つのイベントが1ずつ実行されるのです。

LSLは、一つのスクリプト内で複数のイベントが同時に発生することはありません。

したがって、この3つの動作は、1つずつ順番に実行されているのです。


メニューへ


 


カテゴリ別一覧へ


アルファベット順一覧へ


 


Mother Lake は     こちら→ http://slurl.com/secondlife/Mother%20Lake/114/109/21

からくりや 江戸支店は こちら→ http://slurl.com/secondlife/EDO%20Japan/74/87/27



Mother Lake  のHPはこちらから→ http://ml.ms-p.jp/


法人の方はこちら → http://ms-p.jp/

  

Posted by akito at 15:32Comments(0)イベント

2008年02月10日

timer

timer イベント


timer()

関数 llSetTimerEvent で設定された時間が経ったら、イベントを発生させます。

以後、設定された時間が経てば、繰り返しイベントが発生します。

あらかじめ、llSetTimerEvent で起動する必要があります。


タイマーをoffにしたい場合は、llSetTimerEvent(0.0);を設定してあげます。


返されるパラメータはありません。


<使用例>


default

{

    state_entry()

    {

      llSay(0, "timer start");

      llSetTimerEvent(5.0);

    }

 

    timer()

    {

      llSay(0, "timer end");

      llSetTimerEvent(0.0);

    }

}






llSetTimerEvent で5秒を設定しているので、5秒たったら timer イベントが発生します。

timerイベントの中で、さらに llSetTimerEvent で0秒をしています。

これは、 timer イベントをoffにする効果があります。

もし、ここで0秒を指定しなかった場合は、5秒ごとに timer イベントが繰り返し発生することになります。

何か、繰り返しセンサーを感知させたい場合などは、繰り返し設定しておくと良いと思います。





 


カテゴリ別一覧へ


アルファベット順一覧へ


 


Mother Lake は     こちら→ http://slurl.com/secondlife/Mother%20Lake/114/109/21

からくりや 江戸支店は こちら→ http://slurl.com/secondlife/EDO%20Japan/74/87/27



Mother Lake  のHPはこちらから→ http://ml.ms-p.jp/


法人の方はこちら → http://ms-p.jp/


  

Posted by akito at 15:23Comments(0)イベント

2008年02月10日

state_enyry,state_exit

state_entry

state_exit



 


state_entry イベント


state_entry()

ステートが開始されたときに発生するイベントです。

ステートについては、別の機会に説明します。


返されるパラメータはありません。


<使用例>


default

{

    state_entry()

    { 

       llSay(0, "Hello");

    }

}



 


スクリプトが動き出し、defaultステートが開始されたときに”Hello”としゃべります。


メニューへ


 


state_exit イベント


state_exit()

ステートが次のステートに移行されるときに発生するイベントです。


返されるパラメータはありません。


<使用例>


default

{

     state_entry()

     {

       llSay(0, "Hello");

       state end;

     }

     state_exit()

    {

      llSay(0, "go to end");

    }

}

 

state end

{

    state_entry()

    { 

    }

}



 


スクリプトが動き出し、defaultステートが開始されたときに”Hello”としゃべります。

その後、 end ステートに移行するのですが、このときに state_exit イベントが発生し、"go to end"としゃべります。


注意していただきたいのが、ステートが終わったときに発生するのではない という点です。

例の場合、endステートに移行するのですから、state_exitが発生します。

もし、次のステートが用意されてなく、ステートの移行が行われなければ、state_exitイベントは発生しません。


メニューへ


 


 


カテゴリ別一覧へ


アルファベット順一覧へ


 


 


Mother Lake は     こちら→ http://slurl.com/secondlife/Mother%20Lake/114/109/21

からくりや 江戸支店は こちら→ http://slurl.com/secondlife/EDO%20Japan/74/87/27



Mother Lake  のHPはこちらから→ http://ml.ms-p.jp/


法人の方はこちら → http://ms-p.jp/

  

Posted by akito at 15:19Comments(0)イベント

2008年02月10日

on_rez

on_rez イベント


on_rez(integer start_param)

オブジェクトがrezされた時に発生するイベントです。


integer start_param

スクリプトからの命令でrezされた時(llRezObjectやllRezAtRoot)に受け渡されるデータ。

イベントリーなどからのrezの場合、0が入ります。


 


<使用例>


default

{

    on_rez(integer start_param)

    {

       llSay(0, "rez");

    }

}




rezしたところ


オブジェクトをrezすると、"rez"としゃべります。


 


カテゴリ別一覧へ


アルファベット順一覧へ


 


Mother Lake は     こちら→ http://slurl.com/secondlife/Mother%20Lake/114/109/21

からくりや 江戸支店は こちら→ http://slurl.com/secondlife/EDO%20Japan/74/87/27



Mother Lake  のHPはこちらから→ http://ml.ms-p.jp/


法人の方はこちら → http://ms-p.jp/

  

Posted by akito at 15:11Comments(0)イベント

2008年02月10日

link_message

link_message イベント


link_message(integer sender_num, integer num, string str, key id)

llMessageLinked でリンク間の通信が行われたときに発生するイベントです。


integer sender_num

llMessageLinked で送信してきたプリムのリンクナンバーが入ってきます

ルートプリムからの送信の場合、1が入ります。

integer num 送信された数値が入ります。
string str   送信された文字列が入ります。
key id   送信されたkeyデータが入ります。

 


<使用例>


ルートプリム(赤)


default

{

    touch_start(integer total_number)

    {

       llMessageLinked(LINK_SET, 1,"", NULL_KEY);

    }

}


 


子プリム(黄色)


default

{

   link_message(integer sender_num, integer num, string str, key id)

   {

     if(num == 1){

       llSay(0, "messege");

     }

   } 

}




ルートプリム(赤)にタッチすると、子プリム(黄)が "messege"としゃべるスクリプトです。


ルートプリム(赤)にタッチすると、llMessageLinked により、1 という数値が全てのプリムに発信されます。


子プリム(黄)では、リンクメッセージを受信すると、if 文により、1という数字が送信されたときに処理を行うようにしています。

今回は、1という数字が入ってきますので、 "messege"としゃべることになります。




タッチすると・・・


しゃべります。


if 文により、文字列や数値での条件の分岐や、文字列や数値によるデータの受け渡しなどが出来ますので、

複数のスクリプトを動かすときの、有効なイベントになります。


このイベントはとても使い勝手がよく、スクリプトに慣れてきたら、無くてはならないものになりますので、是非マスターしてください。


カテゴリ別一覧へ


アルファベット順一覧へ


 


 


Mother Lake は     こちら→ http://slurl.com/secondlife/Mother%20Lake/114/109/21

からくりや 江戸支店は こちら→ http://slurl.com/secondlife/EDO%20Japan/74/87/27



Mother Lake  のHPはこちらから→ http://ml.ms-p.jp/


法人の方はこちら → http://ms-p.jp/


  

Posted by akito at 15:08Comments(0)イベント

2008年02月10日

changed

changed イベント


changed(integer change)

オブジェクトに対する、リンクの状態が変化したときに発生するイベントです。


例えば、オブジェクトに sit(座った)場合、立ち上がった場合にオブジェクトに対するリンクの状態が変化したとみなされ、

changedイベントが発生します。


また、単純にオブジェクト同士をリンクした場合はもちろん、オブジェクト内コンテンツに何か入った場合(スクリプトなど)も状態の変化とみなされますので、色々な用途に使えます。


integer change

オブジェクトの何が変化したのか、そのパラメータが入ってきます。

<例>

オブジェクトのコンテンツの中身が変わった

色が変わった  など


<integer change と比較する場合に使用できる定数>


定数 概要
CHANGED_INVENTORY 0x1 オブジェクトのコンテンツの中身が変わった
CHANGED_COLOR 0x2 色が変わった
CHANGED_SHAPE 0x4 形状が変わった
CHANGED_SCALE 0x8 大きさが変わった
CHANGED_TEXTURE 0x10 テクスチャが変わった
CHANGED_LINK 0x20 オブジェクトのリンクが変わった
CHANGED_ALLOWED_DROP 0x40  
CHANGED_OWNER 0x80 オーナーが変わった
CHANGED_REGION 0x100  
CHANGED_TEREPORT 0x200  

 


<使用例>


default

{

    changed(integer change) 

    {

       llSay(0, "changed");

    }

}




この大きさから・・・


この大きさにすると、イベントが発生。


オブジェクトの大きさを変えたり、色を変えたり、座ったり・・・すると、"changed"としゃべります。


if関数と定数を組み合わせることにより、様々なシチュエーションに合わせた”変化”を捉えることが出来ます。


 


<リンクが変わったかどうか>


default

{

   changed(integer change){

      if (change & CHANGED_LINK) { // リンクが変わったかどうか

      //リンクが変わったときの処理

      } else {

      //リンク以外が変わったとき(リンクが変わっていないとき)

      }

   }

}


 


<応用~アバターが座ったかどうか調べる>


key siton = NULL_KEY; // 現在座っている人のUUIDを管理する変

default

{

   changed(integer change){

      if (change & CHANGED_LINK) { // リンクが変わった

        key av = llAvatarOnSitTarget(); // 現在座っている人のUUIDを調査

        if (siton != NULL_KEY) { // 今まで座っている人が居た場合

          if (av == NULL_KEY) { // 今は座っている人がいない

          // つまり「座っている人が立った」ときの処理

          siton = NULL_KEY; // 現在座っている人のUUIDを更新(誰も座ってない)

          }

        } else { // 今まで座っている人はいなかった場合

          if (av != NULL_KEY) { // 今は座っている人がいる

          // つまり「誰かが新たに座った」ときの処理

          siton = av; // 現在座っている人のUUIDを更新

          }

        }

     }

   }

}


(1)誰も座ってないときに

 オブジェクトのリンクが変化し

  座っている人がいたら・・・「誰かが座った

  座っている人がいなければ・・・「純粋にprimのリンクが変わった」

(2)誰かが座っているときに

 オブジェクトのリンクが変化し

  座っている人がいたら・・・「純粋にprimのリンクが変わった」

  座っている人がいなければ・・・「座っていた人が立った


 


カテゴリ別一覧へ


アルファベット順一覧へ


 


Mother Lake は     こちら→ http://slurl.com/secondlife/Mother%20Lake/114/109/21

からくりや 江戸支店は こちら→ http://slurl.com/secondlife/EDO%20Japan/74/87/27



Mother Lake  のHPはこちらから→ http://ml.ms-p.jp/


法人の方はこちら → http://ms-p.jp/

  

Posted by akito at 14:58Comments(0)イベント

2008年02月10日

attach

attach イベント


attach(key id)

オブジェクトがattach(装着)された時、detach(外れた)時に発生するイベントです。


key idアタッチした人のUUIDが入ります。 デタッチされた場合、NULL_KEYが入ります。


<使用例>


default

{

   attach(key id)

   {

    llSay(0, "attach");

   }

}




アタッチしたところ


デタッチしたところ

オブジェクトをアタッチ(装着)すると、"attach"としゃべります。

また、デタッチ(この場合、体からドロップ)した場合も"attach"としゃべります。


カテゴリ別一覧へ


アルファベット順一覧へ




Mother Lake は     こちら→ http://slurl.com/secondlife/Mother%20Lake/114/109/21

からくりや 江戸支店は こちら→ http://slurl.com/secondlife/EDO%20Japan/74/87/27



Mother Lake  のHPはこちらから→ http://ml.ms-p.jp/


法人の方はこちら → http://ms-p.jp/

  

Posted by akito at 14:46Comments(0)イベント

2008年02月10日

そ、そんな・・・

昨日、アップし損ねた、meet-meとViSiMOの画像をアップしますw


meet-me



ViSiMO


やっぱ、セカンドライフが良いねw  

Posted by akito at 14:12Comments(0)妄想日記

2008年02月10日

50円の土地 レンタル情報・・・^^

Mother Lake 情報!!

お小遣いがもらえるSIM「Mother Lake」。

我々の予想以上に好評な為、現在凄い勢いで分譲しております

景色がきれいwと評判のこのSIMも、皆様のおかげでどんどん良い町になっていってます。

一日たった 50円 で土地が借りれて

なおかつ 毎月 最大 330L$が貰えちゃいます!!
そして景色はキレイだし

何より、住民の方がなんと暖かいこと^^

管理している僕達が癒されてしまいます(笑)

今日は障害が出ているので画像がup出来ないのが残念です。。。
是非、ワイドライトでMotherLake を楽しんでみてください。
必ず、わぁ綺麗。。。と心を奪われることでしょうw

私も作業中、何回手を止めたことか ワラ



レンタルを考えてらっしゃる、そこのあなた!Mother Lakeで決まりですね!

ご予約はお早めにw


Mother Lake の契約についての詳細はこちらからw → http://ml.ms-p.jp/people/motherlake.html



Mother Lake は こちら→ http://slurl.com/secondlife/Mother%20Lake/114/109/21
からくりや 江戸支店は こちら→ http://slurl.com/secondlife/EDO%20Japan/74/87/27

Mother Lake のHPはこちらから→ http://ml.ms-p.jp/

法人の方はこちら → http://ms-p.jp/