Site search

Google
WWW を検索 backup-beta.blogspot.com を検索

2008年8月9日土曜日

オンライン状態を表示するスクリプト

今回はアバターがオンラインかどうかのステータスを表示するスクリプトです。オンラインボード(オンラインステータスボード)やチップジャーなんかによく組み込まれてるものですね。うちの製品にもボードタイプのオンラインインジケータがあります^^

仕組みは簡単で、llRequestAgentDataを使ってタイマーで定期的に DATA_ONLINE を調べて結果を表示すればOKです。


2つ前の記事ご覧になられた方は、あっ!て思うでしょうかね^^ ええ、これアバターのキーを名前に変換するスクリプトでコメント頂きました関数なんですw この関数はやっぱり用途としてはこっちのほうがよく使われるかなってことで早速記事にしました^^;
// オンライン表示
key query;
key av;
string name;

default
{
    state_entry()
    {
        av=llGetOwner();  // オーナーのキー
        name=llKey2Name(av);  // オーナーがいる間にアバター名に変換しとく
        llSetTimerEvent(1);  // 最初は1秒後にチェック
    }

    on_rez(integer start_param)
    {  // Rezのときリセット
        llResetScript();
    }

    timer()
    {
        llSetTimerEvent(30);  // 30秒毎にタイマー動かしてチェック
        query=llRequestAgentData(av,DATA_ONLINE);  // データ問い合わせ
    }

    dataserver(key id, string data)
    {
        if (id == query) {
            string str=name+" は";
            if ((integer)data) {  // データがTRUEなら
                str+="オンラインです";
            }
            else {  // そうでないとき
                str+="オフラインです";
            }
            llSetText(str,<1,1,1>,1.0);  // フローティングテキストで表示
        }
    }
}

0 件のコメント:

コメントを投稿