arz Nitelyってシステム屋どうよ?

SecondLifeとWebとの融合を模索するセミプロWeb屋の挑戦

llGetOwner()とllDetectedOwner()の微妙な違い

2009年01月19日 – 23:33

Second Life Wikiによると、

検出されたオブジェクトが同じリージョンにあるとき llGetOwnerKey(llDetectedKey(number)) はllDetectedOwner(number) と同じ

とありますが、調べてみると結果が違いましたので(既出かもしれませんが)ご報告します。

…の前に、何のことか分からない人のためにw

この関数は、オブジェクトのUUIDを引数に指定し、「そのオブジェクトのオーナーのUUID」を返すものです。持ち主が誰かを調べたいときによく使います。この関数にディテクト系の関数を加え

とすると、ディテクト(衝突やセンサーなどで検知すること)によりヒットしたオブジェクトのオーナーを調べることができます。これは、同じディテクト系関数に「llDetectedOwner(number)」という関数がありますので、こちらを使うことにより同じ結果が得られるハズなんですが…

(前置き終了)

さてさて、何が違ったかというと、「検知されたオブジェクトがグループ所有の場合の戻り値」です

  • llDetectedOwner(number)では、NULL_KEYが返される
  • llGetOwnerKey(llDetectedKey(number))では、グループのUUIDが返される

という結果になっていました。

llDetectedOwner()は、アバターのみを参照する関数のようですね^^

 

ついでに、llRequestAgentData()のタイムアウトは何秒が妥当か? 調べてみましたw



OnMouseOver使いたい!!

2008年11月07日 – 19:18

JavaScriptにOnMouseOverって関数があります
マウスクリックの判定ではなくて、マウスが乗ったかどうかを判定する関数です

LSLにもコレがあると、SLビュアのUIが革命的に使いやすくできるな〜と思うんですが…

例えば…

default{
    on_mouse_over(integer mouse_on, integer face){
        if (mouse_on && face == 1){
            llSetTexture("mouse_on.texture", 1);
        }else if (!mouse_on || face != 1){
            llSetTexture("mouse_off.texture", 1);
        }
    }
}

こんな感じ??

event: on_mouse_over(integer mouse_on, integer face)

integer mouse_on ... 初期値はFALSE、マウスオーバーでTRUEを返す
integer face ... マウスオーバーした面番号を返す

llTargetOmegaみたく、クライアント側で動く関数として追加されたらイイな〜と思います

 

何がやりたいかって??

Dockですよww

普段は画面外に隠れるように配置させておいて
OnMouseOverで画面最下段(または最上段)ににゅ〜〜っと出てくるHUDです

邪魔にならずにイイと思いません??



階段よ、さよなら〜〜w

2008年09月15日 – 01:06

なにかとプリムを食う階段w
イイ代替案はないかなぁ〜… というのが、今日の午後の課題でしたw

「1プリムのスカルプ製ってのも魅力だけど、テクスチャー貼りきらないし…」と、却下w

「物理エレベーターってのもありきたりだし、どうせ凝るからプリム増えるもんな〜w」と、これも却下

テレポートハックで一発TPってのも味気ないもんな〜」と、またもや却下ww

 

で…

で、やっちゃいましたww

 

ハイ、はしごです〜〜〜^^

透過テクスチャーを貼付けたタイプなので超低プリム!(2プリム)

長さは3m〜20mまで伸縮自在!
(チャットコマンドで長さを打ち込むと伸びたり縮んだりします)

そして…

 

アニメ!!!!

ちゃんとアニメを再生しながらアバターの位置が上へ下へ動きます^^

うむ、地下1階から地上3階までが、たったの6プリム(はしご3つ)で移動可能になりました〜!!

 

以上、自己満足コーナーでしたw

(はしごは近日リリースします)



以外と使えないllLoadURL

2008年09月14日 – 03:28

llLoadURL(key avatar_id, string message, string url);

コレ、LSL x PHPには必須の関数だけに至る所で使ってるんですけど
ちと挙動がおかしいな〜と思って調べてみたら「urlは255文字まで」って制限が…

1. ブラウザ経由(GET)でPHPにアクセス
  ↓
2. FORMを利用してLSLの設定を変更
  ↓
3. LSLにメールで設定上書き

という流れが最も使いやすいUIだと思うんだけど
255文字じゃパラメータの送信がちょびっとしかできないです…

 

今どきURLの文字数制限が255だなんてあんまりだ〜〜〜!!

 

いちお、llOwnerSay()でURLを吐き出して
チャットログからページに飛ぶという手順をふめば255文字の呪縛から逃れられるんだけど
チャットログを開く1手間が追加されるし、この手順は美しくない…ですよね…



建築は疲れる…

2008年09月13日 – 01:10

巨大ショッピングモールの建設がほぼ終わりました〜
慣れないことをすると疲れますね…

こんな感じです〜

個人的には夜の↑の雰囲気にこだわってみたんですけどねw

※ このモールは近日オープンするSIMのものです
※ 詳細は追ってご連絡します!