オーナー専用の椅子!座ろうとするアバターを立たせる(llAvatarOnSitTarget関数,llUnSit関数)
自分専用の椅子や乗り物をつくった時など、他の人が座ったときに
強制的に座れない(乗れない)ようにロック(座ろうとしたとき立ち上がらせる)します。
下記のスクリプトを使います。オーナー以外が座った場合、「Only the owner can use it.」という メッセージが表示され、座ることができません。
default {
state_entry(){ llSitTarget(<0.0, 0.0, 0.1>, ZERO_ROTATION); } changed(integer change){ if (change & CHANGED_LINK) { key av = llAvatarOnSitTarget(); if (av != NULL_KEY && av != llGetOwner()) { llSay(0,"Only the owner can use it. "); llUnSit(av); } } } } |
llAvatarOnSitTarget関数
座っているアバターのIDを取得します。 |
llUnSit関数
座っているアバターを立ち上がらせます。 一番目のパラメータ : 立ち上がらせるアバターのID |
changeイベント
プリム・オブジェクトに変更があったときに発生するイベントです。 一番目のパラメータ : CHANGEDパラメータ (参考) CHANGEDパラメータ CHANGED_INVENTORY : コンテンツの中身が変わったとき CHANGED_COLOR : 色が変わったとき CHANGED_SHAPE : シェイプが変わったとき CHANGED_SCALE : 変更パラメータ CHANGED_TEXTURE :テクスチャが変わったとき CHANGED_LINK : 座ったとき、立ったとき CHANGED_ALLOWED_DROP:modify権限がない人がアイテムをドロップした場合 CHANGED_OWNER :オーナー(所有者)が変わったとき CHANGED_REGION :SIMが変わったとき CHANGED_TELEPORT :ユーザーがテレポートしたとき |
※LSLには(Touch)タッチした時のイベントはありますが、(SitDown)座ったときのイベントがありません。 その為、CHANGEイベントを使用します。llSitTargetについては、こちらのサンプルを参考にしてください。アバターの座る位置