メインランドのFirewakeに移転後もお世話になっていたSUNSET SHOPPING MALLなんですが、移転を予定して休業となりますので、本日SUNSET SHOPPING MALL店の商品を撤去して閉店いたしました。ご来店くださいました皆様、どうもありがとうございました。
2012年5月14日月曜日
2012年5月10日木曜日
プリムのリンク番号をチェックするスクリプト
プリムのリンク番号はllDetectedLinkNumberっていう関数で知ることができるんですね。それで、その関数のページにもタッチでリンク番号を表示する簡単なスクリプトが載ってるんですが、何となくリンク番号を表示したプリムがグロー全開で光るようにスクリプトを書いてみました。これならタッチしにくい場所とかで手がすべって隣のプリムをタッチしてたりって感じの失敗がなくていいんじゃないかなって思いますw
タッチしたプリムが持つ面の数をllGetLinkNumberOfSidesで調べて各面のグローを記憶させるので、元々グローを設定したプリムがあっても支障が出ません。あとllSetLinkPrimitiveParamsは、llSetLinkPrimitiveParamsFastにするとノーウェイトでグローが視認できなかったので使用してます。(llSleep入れて調整してもよかったんですが)
スクリプトをオブジェクトの親プリムに入れてください。オーナーがタッチしたときにタッチされたプリムがグローで光って、オーナーのチャットにリンク番号が表示されます。
// タッチでリンク番号を表示
default
{
touch_start(integer total_number)
{ // タッチされたとき
key id=llDetectedKey(0); // タッチしたアバターのキー
if (id == llGetOwner()) { // オーナーだったら
integer num=llDetectedLinkNumber(0); // タッチされたプリムのリンク番号
list faces=[]; // グローデータ記録用リスト
integer i;
integer j=llGetLinkNumberOfSides(num); // タッチされたプリムの全面数
for (i=0; i < j; i++) { // 面の数だけ繰り返し
list glow=llGetLinkPrimitiveParams(num,[PRIM_GLOW,i]); // 面ごとにグローを取得して
faces+=[PRIM_GLOW,i]+glow; // グロー設定で使える形式にしてリストに保存
}
llOwnerSay("Link no."+(string)num); // タッチされたプリムのリンク番号を表示
llSetLinkPrimitiveParams(num,[PRIM_GLOW,ALL_SIDES,1.0]); // タッチされたプリム全面のグローを1.0にセット
llSetLinkPrimitiveParamsFast(num,faces); // グローを元に戻す
}
}
}
タッチしたプリムが持つ面の数をllGetLinkNumberOfSidesで調べて各面のグローを記憶させるので、元々グローを設定したプリムがあっても支障が出ません。あとllSetLinkPrimitiveParamsは、llSetLinkPrimitiveParamsFastにするとノーウェイトでグローが視認できなかったので使用してます。(llSleep入れて調整してもよかったんですが)
スクリプトをオブジェクトの親プリムに入れてください。オーナーがタッチしたときにタッチされたプリムがグローで光って、オーナーのチャットにリンク番号が表示されます。
登録:
投稿 (Atom)