LSL(Linden Script Language)スクリプトTips集

土地の立ち入り禁止・許可

立ち入り禁止になっている土地をみたことがありませんか?
土地の周りに赤字で「NO ENTRY」とかいてあり、入ろうとすると下記の
メッセージが表示される土地です。

スクリプトではこの立ち入り禁止の土地に、一定時間の立ち入りを許可したり、
特定アバターの立ち入りを一定時間禁止にすることができます。(永久も設定可)

土地の立ち入り許可(llAddToLandPassList,llResetLandPassList関数)

事前準備として、土地の立ち入り許可リスト(パスリスト)を使用する設定をしておきます。
土地を右クリックして表示されるパイメニューの「土地情報」でパスリストを使う設定をします。

下記のサンプルスクリプトでは、
○マーク(立ち入り許可)にTouchするとそのアバターが6分間立ち入り許可にされます。
先ほど設定した土地情報のパスリストを見るとTouchしたアバターが登録されているはずです。


default
{
  state_entry()
  {
      llResetLandPassList();
  }
  touch_start(integer total_number)
  {
      llAddToLandPassList(llDetedtedKey(0),0.1);
  }
}
llResetLandPassList関数:llResetLandPassList()
パスリストをリセットします。
llAddToLandPassList関数:llAddToLandPassList(key agent, float hours)
一番目のパラメータ : パスリストに指定するアバターのKEY
二番目のパラメータ : パスする時間(0.1=6分間)0の場合は永久

土地の立ち入り禁止(llAddToLandBanList,llResetLandBanList関数)

事前準備として、土地に立ち入り禁止リスト(バンリスト)を使用する設定をしておきます。
土地を右クリックして表示されるパイメニューの「土地情報」でバンリストを使う設定をします。

下記のサンプルスクリプトでは、
×マーク(立ち入り禁止)にTouchするとそのアバターが6分間立ち入り禁止になります。
先ほど設定した土地情報のバンリストを見るとTouchしたアバターが登録されているはずです。


default
{
  state_entry()
  {
      llResetLandBanList();
  }
  touch_start(integer total_number)
  {
      llAddToLandBanList(llDetedtedKey(0),0.1);
  }
}
llResetLandBanList関数:llResetLandBanList()
バンリストをリセットします。
llAddToLandBanList関数:llAddToLandBanList(key avatar, float hours);
一番目のパラメータ : バンリストに指定するアバターのKEY
二番目のパラメータ : バンする時間(0.1=6分間)0の場合は永久

<補足>土地のオーナーが自分自身をBan又はPassリストに追加しようとしても、何も起こりません。
オーナーが立ち入り禁止になることはないので、自分の土地でNO_ENTRYをみることはできません。
その為、このサンプルは友人が所有する土地で行いました。
なお、パスリストから削除する場合は、llRemoveFromLandPassList(key avatar)を
バンリストから削除する場合は、llRemoveFromLandBanList(key avatar)を使います。

入場整理券とかそういったことに応用できそうなスクリプトですねー。