No sensor/ja

From Second Life Wiki
Jump to navigation Jump to search

説明

! イベント: no_sensor( ){ ; }

llSensorllSensorRepeat の呼び出しで発生します。


警告

  • スクリプトに sensor イベントがないと、 no_sensor が発生しません。 ~ SVC-2409
    • 空の sensor が条件を満たしているのに、 no_sensor が発生します。
  • sensor/no_sensor は必ずしも最善なやり方ではありません:
    • 何かが範囲内/範囲外に入っているかを調べるのは、やり過ぎです。このケースでは llGetObjectDetails を、 便利なスニペット の章にあるように使用しましょう。
    • アバターが地域にいるかどうかを調べるには、 llGetAgentSize を使ってみましょう。

サンプル

//範囲内の全てのアバターをリストアップします。
default {
     on_rez(integer i) {
          llSensor("", "", AGENT, 100000, 10000);
     }
     sensor(integer num) {
          integer i = 0;
          do {
               llOwnerSay(llDetectedName(i) + " is " + (string)llVecDist(llGetPos(), llDetectedPos(i)) + "m away.");
          }while(++i < num);
     }
     no_sensor() {
          llOwnerSay("No avatars in range.");
     }
}

便利なスニペット

//ユーザが範囲内にいないことを発見する他のやり方です。
//センサーをまったく使っていないので、上の警告はあてはまりません。

integer InRange(key uuid, float distance)
{
    list data = llGetObjectDetails(uuid, [OBJECT_POS]);
    if(data == [])
        return 0;
    return llVecDist(llList2Vector(data, 0), llGetPos()) <= dist;
}

参考情報

関数

•  llSensor
•  llSensorRepeat

特記事項

議論

   sensor がないと llSensorRepeatno_sensor を発生させません。
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。