アバターが座ったら起動する


FrontPage

アバターが座ったら起動する

1 default
2 {
3    changed(integer change)
4    {
5        if (change & CHANGED_LINK){
6        key agent = llAvatarOnSitTarget();
7            if(agent){
8            } else {
9            }
10       }
11     }
12}

アバターがオブジェクトに座ることを検知するイベントがlslには
ありませんので、 上記のようなコードで擬似的に座ったことを検知します。
3行目でオブジェクトの状態変化を検知しています。
5行目ですが、これは論理式でchange 引数のなかのオブジェクトのリンク
数が変動した場合にセットされるビットを取り出しています。
わからない場合には、5行目のif文が、オブジェクトのリンク数が変わった
場合にtrueになると思ってください。

次に7行目ですが、6行目で取得した座っているアバターのkey を
確認しています。
リンク数が変動した場合に、座っているアバターのkeyを取得して、取れたら
座った、取れなかったら立ち上がったと判断しています。