Template:LSL Constants Sensor/ja

From Second Life Wiki
Jump to navigation Jump to search
マスクフラグ 説明 (llDetectedType()) 説明 (llSensor() と llSensorRepeat() のマスク)
AGENT 0x1 エージェント 廃止: AGENT_BY_LEGACY_NAME を使ってください。
AGENT_BY_LEGACY_NAME 0x1 エージェント Legacy Name(レガシー名)でエージェントを検索します。
AGENT_BY_USERNAME 0x10 エージェント Username(ユーザ名)でエージェントを検索します。
ACTIVE 0x2 物理タスク(物理オブジェクトとエージェント) 移動している物理オブジェクト、または動作中のスクリプトが入っているオブジェクトを検索します。つまり、現在 SecondLife サーバのリソースを消費しているものを検索します。
PASSIVE 0x4 非物理オブジェクト 移動していない物理オブジェクト、または動作中でないスクリプトが入っている非物理オブジェクト、またはスクリプトの入っていないオブジェクトを検索します。つまり、現在 SecondLife サーバのリソースを消費していないものを検索します。
SCRIPTED 0x8 動作中のスクリプトが入っているオブジェクト 動作中のスクリプトが入っているオブジェクトを検索します。つまり、現在 SIM に何かしているものを検索します。
llDetectedType() スクリプトあり スクリプトなし
物理 10 (ACTIVE|SCRIPTED) 2 (ACTIVE)
非物理 12 (PASSIVE|SCRIPTED) 4 (PASSIVE)

collision イベントで llDetectedType を使う例 :

<lsl> integer type;

default {

   state_entry()
   {
       llVolumeDetect(TRUE);
   }
   collision_start(integer detected)
   {
       type = llDetectedType(0);
       if(type == AGENT)// = 1
       {
           llSay(0, "ここは通りません。物理計算を必要としないアバターはいないからです。");
       }
       else if(type == ACTIVE)// = 2
       {
           llSay(0, "スクリプトが入っていない物理オブジェクトがぶつかってきました。");
       }
       else if(type == PASSIVE)// = 4
       {
           llSay(0, "ここは通りません。物理オブジェクトでないオブジェクトでこのイベントは起きません。");
       }
       else if(type == SCRIPTED)// = 8
       {
           llSay(0, "ここは通りません。物理でも非物理でもないオブジェクトは存在しません。");
       }
       else if(type == 3)// AGENT & ACTIVE
       {
           llSay(0, "アバターがぶつかってきました。");
       }
       else if(type == 10)// SCRIPTED & ACTIVE
       {
           llSay(0, "スクリプトの入っている物理オブジェクトがぶつかってきました。");
       }
       else if(type == 12)// SCRIPTED & PASSIVE
       {
           llSay(0, "ここは通りません。物理オブジェクトでないオブジェクトでこのイベントは起きません。");
       }
   }

} </lsl> sensor イベントで llDetectedType を使う例 : <lsl> default {

   touch_start(integer numberDetected)
   {
        llSensor("", "", ACTIVE