No sensor/ja

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

説明

! イベント: 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の関連した項目が参考になるかもしれません。