Difference between revisions of "Template:LSL Constants Sensor/ja"
Jump to navigation
Jump to search
Mako Nozaki (talk | contribs) m |
Mako Nozaki (talk | contribs) |
||
Line 4: | Line 4: | ||
{{{!}} {{Prettytable|style={{{tstyle|}}}}} | {{{!}} {{Prettytable|style={{{tstyle|}}}}} | ||
{{!}}-{{Hl2}} | {{!}}-{{Hl2}} | ||
! colspan="2" {{!}} '''{{{1|}}} | ! colspan="2" {{!}} '''{{{1|}}} マスクフラグ''' | ||
! '''説明''' | ! '''説明 ({{LSLG/ja|llDetectedType}}())''' | ||
! '''説明 ({{LSLG/ja|llSensor}}() と {{LSLG/ja|llSensorRepeat}}() のマスク)''' | |||
{{!}}- | {{!}}- | ||
{{!}} {{#vardefine:AGENT|{{LSL Const/ja|AGENT|integer|1|hex=0x1|c= | {{!}} {{#vardefine:AGENT|{{LSL Const/ja|AGENT|integer|1|hex=0x1|c=エージェント}}}}{{#var:AGENT}} | ||
{{!}} {{#var:value}} | {{!}} {{#var:value}} | ||
{{!}} {{#var:comment}} | {{!}} {{#var:comment}} | ||
{{!}} 廃止: AGENT_BY_LEGACY_NAME を使ってください。 | |||
{{!}}- | {{!}}- | ||
{{!}} {{#vardefine: | {{!}} {{#vardefine:AGENT_BY_LEGACY_NAME|{{LSL Const/ja|AGENT_BY_LEGACY_NAME|integer|1|hex=0x1|c=エージェント}}}}{{#var:AGENT_BY_LEGACY_NAME}} | ||
{{!}} {{#var:value}} | {{!}} {{#var:value}} | ||
{{!}} {{#var:comment}} | {{!}} {{#var:comment}} | ||
{{!}}} | {{!}} {{LSLGC/ja|Avatar/Name|Legacy Name(レガシー名)}}でエージェントを検索します。 | ||
{{!}} | {{!}}- | ||
{{!}} {{#vardefine:AGENT_BY_USERNAME|{{LSL Const/ja|AGENT_BY_USERNAME|integer|16|hex=0x10|c=エージェント}}}}{{#var:AGENT_BY_USERNAME}} | |||
{{!}} | {{!}} {{#var:value}} | ||
! | {{!}} {{#var:comment}} | ||
! | {{!}} {{LSLGC/ja|Avatar/Name|Username(ユーザ名)}}でエージェントを検索します。 | ||
{{!}}- | |||
{{!}} {{#vardefine:ACTIVE|{{LSL Const/ja|ACTIVE|integer|2|hex=0x2|c=物理タスク(物理オブジェクトとエージェント) }}}}{{#var:ACTIVE}} | |||
{{!}} {{#var:value}} | |||
{{!}} {{#var:comment}} | |||
{{!}} 移動している物理オブジェクト、または動作中のスクリプトが入っているオブジェクトを検索します。つまり、現在 SecondLife サーバのリソースを消費しているものを検索します。 | |||
{{!}}- | {{!}}- | ||
{{!}} {{#vardefine:PASSIVE|{{LSL Const/ja|PASSIVE|integer|4|hex=0x4|c= | {{!}} {{#vardefine:PASSIVE|{{LSL Const/ja|PASSIVE|integer|4|hex=0x4|c=非物理オブジェクト}}}}{{#var:PASSIVE}} | ||
{{!}} {{#var:value}} | {{!}} {{#var:value}} | ||
{{!}} {{#var:comment}} | {{!}} {{#var:comment}} | ||
{{!}} 移動していない物理オブジェクト、または動作中でないスクリプトが入っている非物理オブジェクト、またはスクリプトの入っていないオブジェクトを検索します。つまり、現在 SecondLife サーバのリソースを消費していないものを検索します。{{!}}- | |||
{{!}}- | {{!}}- | ||
{{!}} {{#vardefine:SCRIPTED|{{LSL Const/ja|SCRIPTED|integer|8|hex=0x8|c= | {{!}} {{#vardefine:SCRIPTED|{{LSL Const/ja|SCRIPTED|integer|8|hex=0x8|c=動作中のスクリプトが入っているオブジェクト}}}}{{#var:SCRIPTED}} | ||
{{!}} {{#var:value}} | {{!}} {{#var:value}} | ||
{{!}} {{#var:comment}} | {{!}} {{#var:comment}} | ||
{{!}} 動作中のスクリプトが入っているオブジェクトを検索します。つまり、現在 SIM に何かしているものを検索します。 | |||
{{!}}} | |||
{{{!}} {{Prettytable}} | |||
{{!}}-{{Hl2}} | |||
!llDetectedType() | |||
!スクリプトあり | |||
!スクリプトなし | |||
{{!}}- | |||
! 物理 | |||
{{!}} 10 ({{#var:ACTIVE}}|{{#var:SCRIPTED}}) | |||
{{!}} 2 ({{#var:ACTIVE}}) | |||
{{!}}- | |||
! 非物理 | |||
{{!}} 12 ({{#var:PASSIVE}}|{{#var:SCRIPTED}}) | |||
{{!}} 4 ({{#var:PASSIVE}}) | |||
{{!}}} | {{!}}} | ||
{{#if:{{{no_wrapper|}}}||{{!}}} }} | {{#if:{{{no_wrapper|}}}||{{!}}} }}{{#if: | ||
{{#vardefine:also_articles|{{#var:also_articles}} | |||
{{LSL DefineRow|2=[http://lslwiki.net/lslwiki/wakka.php?wakka=ObjectType Object Type]}}}} | |||
{{#if:{{{examples|}}}<noinclude>*</noinclude>| | |||
{{#vardefine:examples|{{#var:examples}} | |||
'''{{LSLG/ja|collision}} イベントで {{LSLG/ja|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> | |||
'''{{LSLG/ja|sensor}} イベントで {{LSLG/ja|llDetectedType}} を使う例 :''' | |||
<lsl> | |||
default | |||
{ | |||
touch_start(integer numberDetected) | |||
{ | |||
llSensor("", "", ACTIVE | PASSIVE | AGENT, 20.0, PI); // センサーをオンにします。 | |||
} | |||
sensor (integer numberDetected) | |||
{ | |||
integer i = 0; | |||
while(i < numberDetected) | |||
{ | |||
integer type = llDetectedType(i); | |||
string message; | |||
message += (string)i + ", " + llDetectedName(i) + ", "; | |||
list typeList; | |||
if(AGENT & type) | |||
{ | |||
typeList += "AGENT"; | |||
} | |||
if(ACTIVE & type) | |||
{ | |||
typeList += "ACTIVE"; | |||
} | |||
if(PASSIVE & type) | |||
{ | |||
typeList += "PASSIVE"; | |||
} | |||
if(SCRIPTED & type) | |||
{ | |||
typeList += "SCRIPTED"; | |||
} | |||
message += llDumpList2String(typeList, "|"); | |||
llWhisper(0, message); | |||
i++; | |||
} | |||
} | |||
no_sensor() | |||
{ | |||
// range = 20.0 で、自分のアバターが 10m 以内に立っている場合、ここは通りません! | |||
llWhisper(0, "現在近くには何もありません。"); | |||
} | |||
} | |||
</lsl> | |||
'''{{LSLGC/ja|Sensor|llSensor*}} でフィルタを使う例 :''' | |||
<lsl> | |||
integer done; | |||
tellit(integer detected) | |||
{ | |||
integer i = 0; | |||
while(i < detected) | |||
{ | |||
integer type = llDetectedType(i); | |||
string message; | |||
llWhisper(0, (string)i + ", " + llDetectedName(i)); | |||
i++; | |||
} | |||
} | |||
default | |||
{ | |||
touch_start(integer detected) | |||
{ | |||
llWhisper(0, "AGENT"); | |||
llSensor("", "", AGENT, 20.0, PI); | |||
} | |||
sensor(integer detected) | |||
{ | |||
if(done == 0) | |||
{ | |||
tellit(detected); | |||
llWhisper(0, "ACTIVE"); | |||
llSensor("", "", ACTIVE, 20.0, PI); | |||
++done; | |||
} | |||
else if(done == 1) | |||
{ | |||
tellit(detected); | |||
llWhisper(0, "AGENT|ACTIVE"); | |||
llSensor("", "", AGENT | ACTIVE, 20.0, PI); | |||
++done; | |||
} | |||
else if(done == 2) | |||
{ | |||
tellit(detected); | |||
llWhisper(0, "PASSIVE"); | |||
llSensor("", "", PASSIVE, 20.0, PI); | |||
++done; | |||
} | |||
else if(done == 3) | |||
{ | |||
tellit(detected); | |||
llWhisper(0, "AGENT|PASSIVE"); | |||
llSensor("", "", AGENT | PASSIVE, 20.0, PI); | |||
++done; | |||
} | |||
else if(done == 4) | |||
{ | |||
tellit(detected); | |||
llWhisper(0, "ACTIVE|PASSIVE"); | |||
llSensor("", "", ACTIVE | PASSIVE, 20.0, PI); | |||
++done; | |||
} | |||
else if(done == 5) | |||
{ | |||
tellit(detected); | |||
llWhisper(0, "AGENT|ACTIVE|PASSIVE"); | |||
llSensor("", "", AGENT | ACTIVE | PASSIVE, 20.0, PI); | |||
++done; | |||
} | |||
else if(done == 6) | |||
{ | |||
tellit(detected); | |||
llWhisper(0, "SCRIPTED"); | |||
llSensor("", "", SCRIPTED, 20.0, PI); | |||
++done; | |||
} | |||
else if(done == 7) | |||
{ | |||
tellit(detected); | |||
llWhisper(0, "AGENT|SCRIPTED"); | |||
llSensor("", "", AGENT | SCRIPTED, 20.0, PI); | |||
++done; | |||
} | |||
else if(done == 8) | |||
{ | |||
tellit(detected); | |||
llWhisper(0, "ACTIVE|SCRIPTED"); | |||
llSensor("", "", ACTIVE | SCRIPTED, 20.0, PI); | |||
++done; | |||
} | |||
else if(done == 9) | |||
{ | |||
tellit(detected); | |||
llWhisper(0, "AGENT|ACTIVE|SCRIPTED"); | |||
llSensor("", "", AGENT | ACTIVE | SCRIPTED, 20.0, PI); | |||
++done; | |||
} | |||
else if(done == 10) | |||
{ | |||
tellit(detected); | |||
llWhisper(0, "PASSIVE|SCRIPTED"); | |||
llSensor("", "", PASSIVE | SCRIPTED, 20.0, PI); | |||
++done; | |||
} | |||
else if(done == 11) | |||
{ | |||
tellit(detected); | |||
llSay(0, "完了!"); | |||
} | |||
} | |||
no_sensor() | |||
{ | |||
llWhisper(0, "ありません。"); | |||
if(done == 11) | |||
{ | |||
llSay(0, "完了!"); | |||
} | |||
else | |||
{ | |||
++done; | |||
} | |||
} | |||
} | |||
</lsl> | |||
詳細は [http://lslwiki.net/lslwiki/wakka.php?wakka=ObjectType Object Type] を参照してください。 | |||
}}}} | |||
}}<noinclude>{{#var:examples}}</noinclude> |
Revision as of 18:47, 7 January 2011
|
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