2010年5月9日日曜日

現在位置の座標を表示するHUDのスクリプト

ビューワー2は上のアドレスバーみたいな部分を右クリックで座標を表示させることができますが、土地に設定されてる名前が長すぎたら座標部分が隠れて見えないことがありますよね^^;

そういう場所で高度の高い上空を飛んでると、どのくらいまで上昇したか把握できなくて不便なんですよw それで今回は現在位置を表示させる簡単なHUDを作ってみました。

仕組みも単純なので特に難しい部分はないと思います。タッチしたとき新しくなったSLURL(ビューワー2用?)を表示するようにしました。
// 現在位置の座標を表示

string get_pos(string s)
{
    vector pos=llGetPos();  // 現在位置取得
    // 値を整数にして文字列に変換
    string x=(string)((integer)pos.x);
    string y=(string)((integer)pos.y);
    string z=(string)((integer)pos.z);
    return x+s+y+s+z;  // 引数sで区切ってリターン
}

default
{
    state_entry()
    {
        llSetTimerEvent(0.1);  // 最初は0.1後にタイマー開始
    }

    timer()
    {
        llSetTimerEvent(1);  // 1秒おきにタイマーをセット
        string str=llGetRegionName()+"\n("+get_pos(", ")+")";  // SIM名と座標を表示用に整形
        llSetText(str,<1,1,1>,1.0);  // フローティングテキストに表示
    }

    touch_start(integer total_number)
    {
        if (llDetectedKey(0) == llGetOwner()) {  // オーナーがタッチしたらSLURLをチャット
            llOwnerSay("http://maps.secondlife.com/secondlife/"+llEscapeURL(llGetRegionName())+"/"+get_pos("/"));
        }
    }
}

0 件のコメント:

コメントを投稿