センサー/発言/時刻(LSL リファレンス)

Zero2000 Kidd

2007年10月25日 22:37


センサー系の関数/イベント

名称種別内容
llSensor関数周囲のアバターやオブジェクトをスキャンする。
llSensorRepeat関数周囲のアバターやオブジェクトを繰り返しスキャンする。
llSensorRemove関数llSensorRepeatコマンドを停止する。
sensorイベントスキャン対象を検出したとき発生する。
no_sensorイベントセンサーに何も検出されなかったとき呼び出される。


発言系の関数

名称種別内容
llWhisper関数発言する。(半径10mの周囲)
llSay関数発言する。(半径20mの周囲)
llShout関数発言する。(半径100mの周囲)
llRegionSay関数発言する。(SIM全体)
llOwnerSay関数自分自身に対して発言する。
llInstantMessage関数インスタントメッセージを送信する。


時刻系の関数/イベント

名称種別内容
llSetTimerEvent関数タイマーをセットする。
timerイベントタイマーイベント。
llGetDate 関数YYYY-MM-DDフォーマットで日付を返す。(UTC)。
llGetGMTclock関数GMT 0時からの秒数を返す。



llSensor

  周囲のアバターやオブジェクトをスキャンする。最大スキャン範囲は、半径96m。
  sensorイベントとペアで使用する。

  llSensor(string name, key id, integer type, float range, float arc)
  * name  : スキャン対象の名称を指定する。("" とすると全ての名前が対象になる)
  * id    : スキャン対象UUIDを指定する。(NULL_KEY とすると全てのUUIDが対象になる)
  * type  : スキャンタイプを指定する。以下を参照。
  * range : スキャン範囲(半径)を指定する。(0〜96m)
  * arc   : スキャン角度を指定する。
            PI_BY_TWO(90度)を指定した場合、センサーオブジェクトのX軸に対して上側の半球がスキャン範囲となる。
            PI(180度)を指定した場合、センサーオブジェクトの全方位360度がスキャン範囲となる。
  [type定数]
  
  TypeValueDescription
  AGENT1アバター。
  ACTIVE2動いている物理オブジェクト。負荷の高いスクリプト(listen系)を実行中のオブジェクト。
  PASSIVE4動いていない物理オブジェクト。スクリプトを未実行または負荷の軽いスクリプトを実行中のオブジェクト。
  SCRIPTED8負荷の高いスクリプト(listen系)を実行中のオブジェクト。
  

  // 半径10m以内に存在するアバターをスキャンする。
  llSensor("", NULL_KEY, AGENT, 10.0, PI);

ページ先頭へ

llSensorRepeat

  周囲のアバターやオブジェクトを繰り返しスキャンする。最大スキャン範囲は、半径96m。
  sensorイベントとペアで使用する。
  スキャンを停止するときは、llSensorRemove()を実行する。

  llSensorRepeat(string name, key id, integer type, float range, float arc, float rate)
  * name  : スキャン対象の名称を指定する。("" とすると全ての名前が対象になる)
  * id    : スキャン対象UUIDを指定する。(NULL_KEY とすると全てのUUIDが対象になる)
  * type  : スキャンタイプを指定する。以下を参照。
  * range : スキャン範囲(半径)を指定する。(0〜96m)
  * arc   : スキャン角度を指定する。
            PI_BY_TWO(90度)を指定した場合、センサーオブジェクトのX軸に対して上側の半球がスキャン範囲となる。
            PI(180度)を指定した場合、センサーオブジェクトの全方位360度がスキャン範囲となる。
  * rate  : スキャン間隔を秒数で指定する。
  [type定数]
  
  TypeValueDescription
  AGENT1アバター
  ACTIVE2動いている物理オブジェクト。負荷の高いスクリプト(listen系)を実行中のオブジェクト
  PASSIVE4動いていない物理オブジェクト。スクリプトを未実行または負荷の軽いスクリプトを実行中のオブジェクト。
  SCRIPTED8負荷の高いスクリプト(listen系)を実行中のオブジェクト。
  

  // 半径10m以内に存在するアバターを60秒間隔でスキャンする。
  llSensorRepeat("", NULL_KEY, AGENT, 10.0, PI,60.0);

ページ先頭へ

llSensorRemove

  llSensorRepeatコマンドを停止する。

  llSensorRemove()

ページ先頭へ

sensor

  スキャン対象を検出したとき発生する。
  llSensorllSensorRepeatコマンドとペアで使用する。

  sensor(integer num_detected)
  * num_detected  : 検出されたアバターやオブジェクトの数が入る。
  * このイベント内では、detect系の関数が使用できる。
 * 検出可能な、アイテム及びアバターの最大数は、16。
  [Detection Functions]
  
  FunctionDescription
  llDetectedGrabドラッグ方向を返す。
  llDetectedGroupグループが同じだったら、TRUEを返す。
  llDetectedKeyUUIDを返す。
  llDetectedLinkNumberリンクナンバーを返す。
  llDetectedName名称を返す。
  llDetectedOwnerオーナーのUUIDを返す。
  llDetectedPos位置を返す。
  llDetectedRot回転値を返す。
  llDetectedTypeタイプを返す。(AGENT, ACTIVE, PASSIVE, SCRIPTED)
  llDetectedVel速度を返す。
  

  // 検出された全てのアバターやオブジェクトの名前を表示する。
  sensor(integer total_number) {
     integer i;
     for (i = 0; i < total_number; i++) {
       llWhisper(0,llDetectedName(i));
     }
  }

ページ先頭へ

no_sensor

  センサーに何も検出されなかったとき呼び出される。

  no_sensor()

  no_sensor() {
    llWhisper(0,"It doesn't exist.");
  }

ページ先頭へ

llWhisper
llSay
llShout
llRegionSay

  発言する。

  
  llWhisper(integer channel, string text)半径10m周囲
  llSay(integer channel, string text)半径20m周囲
  llShout(integer channel, string text)半径100m周囲
  llRegionSay(integer channel, string text)SIM全体
  
  * channel : 発言するチャンネル番号を指定する。通常のチャット画面に出力する場合は、0を指定する。
  * text    : 発言内容を指定する。
 // "Hello"と発言する。
  llSay(0,"Hello");

ページ先頭へ

llOwnerSay

  自分自身に対して発言する。他のユーザには発言内容は見えない。
  スクリプトのデバッグ等に便利。

  llOwnerSay(string msg)
  * msg    : 発言内容を指定する。
 // "Hello"と発言する。
  llOwnerSay("Hello");

ページ先頭へ

llInstantMessage

  インスタントメッセージを送信する。相手が別のSIMにいてもメッセージを届けることができる。

  llInstantMessage(key user, string message)
  * user    : 送信先の相手のUUIDを指定する。
  * message : 発言内容を指定する。
 // センサーに検出された相手に"Hello"とIMを送信する。
  sensor(integer total_number) {
    llInstantMessage(llDetectedKey(0),"Hello");
  }

ページ先頭へ

llSetTimerEvent

  タイマーをセットする。決まった間隔で処理を実行させたいときに使用する。
  timerイベントとペアで使用する。
  タイマーを停止するときは、llSetTimerEvent(0)を実行する。

  llSetTimerEvent(float sec)
  * sec  : イベントを発生する間隔を秒数で指定する。
 // 60秒間隔でタイマーイベントを発生させる。
  llSetTimerEvent(60);

ページ先頭へ

timer

  タイマーイベント
  llSetTimerEventコマンドとペアで使用する。

  timer()
 // 60秒間隔で"Hello"と発言する。
  state entry {
    llSetTimerEvent(60);
  }
  timer() {
    llWhisper(0,"Hello");
  }

ページ先頭へ

llGetDate

  YYYY-MM-DDフォーマットで日付を返す。(UTC)

  string llGetDate()

  llGetDate();
日本標準時を返す。
  日本標準時取得関数

ページ先頭へ

llGetGMTclock

  GMT 0時からの秒数を返す。

  float llGetGMTclock()

  llGetGMTclock();
  
ページ先頭へ

_uacct = "UA-3027217-1"; urchinTracker();
LSL リファレンス