お友達がたまにマスターをしている白虎のミルクカフェ(slurl)。
「たまに」なので常駐している訳ではないので、留守の時などは自作の看板をその都度rezしていたそうな。
そんな話を聞いて、以前自分が作って放置していたオンラインインジケーターを思い出し、ちょっと作っちゃいました。
まずはオンライン/オフラインの状況をフローティングテキストとテクスチャーで表示する看板。
英語はテキトーなので気にしないようにw
基本スクリプトはこんな感じ。
key owner_key;
string owner_name;
key AgentData;
default {
state_entry() {
owner_key = llGetOwner();
owner_name = llKey2Name(owner_key);
llSetTimerEvent(1.0);
}
on_rez(integer start_param) {
llResetScript();
}
timer() {
// ONLINE CHECK
AgentData = llRequestAgentData(owner_key, DATA_ONLINE);
}
dataserver(key id, string data) {
if (data == "1") {
llSetText(owner_name + " is ONLINE", <1.0,0.0,0.0>, 1.0);
} else {
llSetText(owner_name + " is OFFLINE", <0.0,0.0,0.0>, 1.0);
}
}
}
コレはフローティングテキストでの表示のみでテクスチャーの変更は入っていません。
その辺はLSL Wikiあたりをみましょー(爆
あぁ、諸先輩方の突っ込みがコワイ・・・。
次はカフェ用の看板。
カフェ用看板で必要だったのは
- オフライン時は「閉店」の表示
- オンライン時は「出かけていて留守」と「お店にいます(お店やってます)」の2パターンが必要
そこで
- オンライン/オフラインの判定はそのまま。
- ログオンした時は常に「留守」を表示(お店にいるとは限らないから)
- (オンライン時に)オーナーがタッチする事で「留守」と「開店」のテクスチャーを差し替え。データベース接続時もその状態を維持。
相変わらず英語はテキ(ry
友達にも気に入ってもらえました。
今回はカフェっぽい看板にしたので9プリムもあるんですが、そのうち1プリム物を開発して売り物にしようかしらw