ソラマメブログ
< 2025年05月 >
S M T W T F S
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

2008年10月13日

オンラインチェッカー(リンデンスクリプト Tips)

 今回は、コメントにご要望のあったオンラインチェッカーのスクリプトです。
オブジェクトオーナーのステータス状態によって、テキスト内容およびオブジェクトのカラーを変更します。
オンラインチェッカー(リンデンスクリプト Tips)
「スクリプト内容」
//
//    Tips34 OnlineChecker Script v1.0
//
//                   Created by Zero2000 Kid     2008/10/13
//

float timerRate=60;
vector online_color=<0,1,0>;
vector offline_color=<1,1,1>;
key query_key;
string ownername;

default {
    
    state_entry(){ 
        ownername=llKey2Name(llGetOwner());
        llSetText("",<1,1,1>, 1.0);
        llSetTimerEvent(timerRate);
    } 

    on_rez(integer int) {
        llResetScript(); 
    }
    
    timer() {
        query_key = llRequestAgentData(llGetOwner(), DATA_ONLINE); 
    }
    
    dataserver(key queryid, string data) {
        string msg=ownername+" is ";
        if (queryid==query_key) {
            if ((integer)data) {
                msg+="online.";
                llSetColor(online_color,ALL_SIDES);
            } else {
                msg+="offline.";
                llSetColor(offline_color,ALL_SIDES);
            }
        }
        llSetText(msg,<1,1,1>, 1.0);
    }
}

「使用方法」
1. チェッカー用のオブジェクトを作成します。(球でも箱でもなんでも構いません)
2. オブジェクトのコンテンツの中にスクリプトをセットします。

以上で完了です。


「スクリプトの説明」
今回のスクリプトのポイントは、llRequestAgentData関数でしょうか。
この関数は、dataserverというイベントとペアで使用します。
llRequestAgentData関数だけで、値を取りたいとこですが、ステータス
状態は、別のデータベースサーバ上に値を保持しているためこのような
仕様になっていると思います。llRequestAgentData関数が、呼び出され
ると引数のパラメータに応じて情報を保持しているサーバに問い合わせ
を行います。リモートのサーバから応答があるとdataserverイベントが
発生し、値を受け取ることが出来ます。今回は、引数としてDATA_ONLINE
を指定しています。返り値は、アバターがオンラインだとTRUE、オフライ
ンだとFALSEを返します。スクリプトの処理としては、timerイベントを使用
して、60秒毎にllRequestAgentDataを実行し、情報を更新しています。

参考:
llSetText
llSetTimerEvent
llKey2Name
llRequestAgentData
dataserver
llSetColor


リンデンスクリプト Tips Indexへ







同じカテゴリー(リンデンスクリプトTips)の記事画像
サウンド再生スクリプト(リンデンスクリプト Tips)
カメラコントロール(リンデンスクリプト Tips)
標準時間表示スクリプト(リンデンスクリプト Tips)
プリムカウンター2(リンデンスクリプト Tips)
土地情報チェッカー(リンデンスクリプト Tips)
SIM負荷チェッカー(リンデンスクリプト Tips)
同じカテゴリー(リンデンスクリプトTips)の記事
 サウンド再生スクリプト(リンデンスクリプト Tips) (2009-12-16 20:13)
 カメラコントロール(リンデンスクリプト Tips) (2009-11-21 21:26)
 標準時間表示スクリプト(リンデンスクリプト Tips) (2009-11-02 00:34)
 プリムカウンター2(リンデンスクリプト Tips) (2009-10-12 20:40)
 土地情報チェッカー(リンデンスクリプト Tips) (2009-10-11 21:33)
 SIM負荷チェッカー(リンデンスクリプト Tips) (2009-08-09 20:26)
この記事へのコメント
ZEROさんはじめまして^^
「オンラインチェッカー」使わせていただきます^^
Posted by あお at 2008年10月15日 22:45
5秒毎にチェックは頻繁すぎると思うので60秒毎くらいにしたほうが良いと思います
Posted by sai at 2009年10月30日 12:16
saiさん

はじめまして^^
ご指摘ありがとうございます。
確かに5秒は頻繁ですね。
変更しました。
Posted by Zero2000 KiddZero2000 Kidd at 2009年11月01日 11:46
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。