Control/ja
From Second Life Wiki
| |||||||||||||||||||||||||||||||||
例default { state_entry() { llRequestPermissions(llGetOwner(), PERMISSION_TAKE_CONTROLS); } run_time_permissions(integer perm) { if(PERMISSION_TAKE_CONTROLS & perm) { llTakeControls( CONTROL_FWD | CONTROL_BACK | CONTROL_LEFT | CONTROL_RIGHT | CONTROL_ROT_LEFT | CONTROL_ROT_RIGHT | CONTROL_UP | CONTROL_DOWN | CONTROL_LBUTTON | CONTROL_ML_LBUTTON | 0, TRUE, TRUE); } } control(key id, integer level, integer edge) { integer start = level & edge; integer end = ~level & edge; integer held = level & ~edge; integer untouched = ~(level | edge); llOwnerSay(llList2CSV([level, edge, start, end, held, untouched])); } } | |||||||||||||||||||||||||||||||||
ノートマウスルック時のアタッチメントでの llGetRot は、アバターの見ている視角から返ります。 llMinEventDelay がこのイベントの遅延の少なくとも二倍に設定された場合、このイベントは llMinEventDelay の設定をその半分であるかのように扱います。言い換えると、llMinEventDelay が 0.1 以上に設定された場合、このイベントは他のイベントに比べて 2 倍の頻度で発生し得ます。 私が試したところ、アバターのコントロールが取得されたときに返される UUID は、その当該アバターでなく、所有者の UUID でした。複数のアバターのパーミションを同時に扱うために一つのオブジェクトで複数のスクリプトを動かした場合、control イベントは全てのスクリプトで発生しますが、それがどのアバターに起因するかを知る手立てはありません。これは SVC-476 として挙げられています。(訳注: 所有者の UUID が渡されるという問題は 2009-04-07 の Server 1.26 で修正されたようです。ただし単一プリム内の複数スクリプト P, Q でそれぞれ複数アバター A, B のパーミションを管理する場合にまだ問題があります。A がキー操作を行なうと、P, Q 双方で control イベントが発生し、P には A の、同時に Q には B の UUID が渡されます。B のキー操作が無いにもかかわらずです。) | |||||||||||||||||||||||||||||||||

