2008年10月13日
オンラインチェッカー(リンデンスクリプト 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)
プリムカウンター2(リンデンスクリプト Tips)
土地情報チェッカー(リンデンスクリプト Tips)
SIM負荷チェッカー(リンデンスクリプト Tips)
Posted by Zero2000 Kidd at 17:25│Comments(3)
│リンデンスクリプトTips
この記事へのコメント
ZEROさんはじめまして^^
「オンラインチェッカー」使わせていただきます^^
「オンラインチェッカー」使わせていただきます^^
Posted by あお at 2008年10月15日 22:45
5秒毎にチェックは頻繁すぎると思うので60秒毎くらいにしたほうが良いと思います
Posted by sai at 2009年10月30日 12:16
saiさん
はじめまして^^
ご指摘ありがとうございます。
確かに5秒は頻繁ですね。
変更しました。
はじめまして^^
ご指摘ありがとうございます。
確かに5秒は頻繁ですね。
変更しました。
Posted by Zero2000 Kidd
at 2009年11月01日 11:46
