むふふ商品を使うときに、チャットでタイプするのが面倒なら、HUD(ヘッドアップディスプレイ)を使ってマウスのクリック(タッチ)だけですます方法もあります。
写真のようなものを装着すると、画面上中央のように見えます。
そのマークをタッチするというのは、装着したオブジェクトをタッチしているわけです。
HUDのスクリプトでは、タッチした面の面番号に割当てたマークを、専用のチャンネルでむふふ商品に伝えます。
default {
touch_start(integer num_detected) {
string mark = llList2String( Marks,
llDetectedTouchFace(0) );
// タッチした面に対応するマーク
string message = (string)llGetOwner()+":"+mark;
// 所有者キーと一緒に送る(万一の混線防止)
llWhisper( HUDchannel, message );
}
}
むふふ商品側では、それを聞いて、角度を変えたり変形させたりするわけです。実際のスクリプトはチャットも聞きますが、ここでは省略しています。
default {
state_entry() {
llListen( HUDchannel, HUDname, NULL_KEY, "" );
// HUD専用チャンネルで連絡を待つ
}
listen( integer channel, string name, key id, string message ) {
string s;
integer n = 1;
if ( channel == HudChannel ) { // HUDチャンネルから聞こえた
list info = llParseString2List( message, [":"], [] );
if ( llGetOwner() != llList2Key(info,0) ) return; // 混線防止
s = llGetSubString(llList2String(info,1),0,0);
}
// (角度変更部分も省略)
else if ( s == "*" ) { // 「*」マークなら
llMessageLinked(LINK_THIS,Transform, // 変形スクリプトに連絡
"Transform:" + (string)TransSteps, NULL_KEY);
}
}
}