こんばんは、あずらんです。
前回まで前置きが長くなりましたが、今回から使えるスクリプトを書くための
例文を見ながら解説していきたいと思います。
やはり最初は活動資金を稼ごう!←w
ということで、チップジャーを作りましょうかw
※※※Hamster Barはチップ不要宣言をしています!※※※
(イベント時だけはチップジャーあるというのは内緒♥(だがしかし、任意なので!任意なので!www))
はてさて、まずはスクリプトの構成を一緒に日本語でイメージしてみましょう。
------------------------------------------
スクリプトスタート
↓
チップジャーの上に「俺様のチップジャー 0L$」と表示する
↓
哀れに思った人が5L$入れてくれる
↓
お金が5L$入った!
↓
支払ってくれた人にIMで「ありがたき幸せ!!!!」とチップジャーに喋らせる
↓
チップジャーの上の文字に書いてある金額を(前の金額+入った金額)5L$増やす。
↓
スクリプト終わり
------------------------------------------
こんな感じですかね?
では、このイメージをそのまま日本語でスクリプト形式に書き換えてみましょう。
------------------------------------------
default
//スクリプトスタート
{
state_entry()
//スクリプト実行した時
{
チップジャーの上にテキストを表示して【俺様のチップジャー 0L$】と白い文字で書く。
}
チップジャーにお金が入った!
{
払ってくれたらその人に直接IMで「ありがたき幸せ!!!!」って言う。
}
//スクリプト終わり
}
------------------------------------------
はい。できましたーヽ(=´▽`=)ノ
ここまでかけたら後はwikiを見ながらの作業になります。
(めんどっちぃ~)
まずは、必要そうな関数を1つずつ調べてみましょう。
■1.
オブジェクト(今回の場合はチップジャー)の上に文字を表示する
これはよく見かけるスクリプトの1つですね。お店の看板やグループの看板の上などに
「click me!」とか書いてあるの見たことないですか?
そうです、まさにそんな感じでテキストを表示したい時に使います。
「lsl テキスト」とグーグル先生に質問をすると以下のような関数があることを教えてくれました。
【llSetText( string text, vector color, float alpha );】
( http://wiki.secondlife.com/wiki/LlSetText/ja )
概要を読んでみると・・・
【string text】=表示したい文字
【vector color】=文字色
【float alpha】=文字の透過度
なるほど~、ここに数字を入れればいいのか_φ(..)メモメモ、じゃー次!
■2.
お金が入った時に処理するイベントを探す。
チップが支払われた事を検知するイベントを探します。
またまたグーグル先生に「lsl お金」で聞くと・・・
【money( key id, integer amount ){ ; }】
( http://wiki.secondlife.com/wiki/Money/ja )
概要はっと・・・
【key id】=支払った人
【integer amount】=支払われた金額
なるほど、誰がいくら支払ってくれたかもわかるんですね。
そんじゃー続いては!
■3.
支払ってくれた人にIMをで感謝の気持ちを伝える。
やはりお金を頂いたらそれが1L$でも感謝の気持ちを伝えるのが筋というものですw
ただ、周辺チャットでは他の方の迷惑になるかもなので(ログが流れてしまうため)
IMを送る方法をグーグル先生「lsl IM」で聞いたところ・・・。
【llInstantMessage( key user, string message );】
( http://wiki.secondlife.com/wiki/LlInstantMessage/ja )
概要は・・・
【key user】=送る相手のアバターのUUID
【string message】=何も書いていなかった・・・(messageと書いてあるので単純に「IMを送る相手へ伝えるメッセージ」という意味です)
なるほど、ではこれらをみながら先ほどの日本語のスクリプトを
修正してみましょう。
------------------------------------------
default
//スクリプトスタート
{
state_entry()
//スクリプト実行した時
{
llSetText("俺様のチップジャー 0L$", <1.0,1.0,1.0> , 1.0 );
}
money( key id, integer amount )
{
llInstantMessage( key user, "ありがたき幸せ!!!!" );
}
//スクリプト終わり
}
------------------------------------------
できたー!
と言いたいところですが、まだ一箇所変なところがあります・・・
それは【moneyイベント】の中の【llInstantMessage( key user, "ありがたき幸せ!!!!" );】
の箇所です。
【 key user】これ誰や!と怒られてしまいますね(;一_一)
なぜなら、本来ここはアバターのUUIDを指定する箇所だからです。
ですがチップを支払ってくれる方は一人ではないので、毎回誰が支払ったかを知る必要がありますね。
あれ・・・さっき調べたものの中にそれっぽいのが・・・・・・・
!!!!
【money( key id, integer amount ){ ; }】
【key id】=支払った人
あるじゃないですか!【key id】が!
これを入れて書き直すと・・・
------------------------------------------
default
//スクリプトスタート
{
state_entry()
//スクリプト実行した時
{
llSetText("俺様のチップジャー 0L$", <1.0,1.0,1.0> , 1.0 );
}
money( key id, integer amount )
{
llInstantMessage(id, "ありがたき幸せ!!!!" );
}
//スクリプト終わり
}
------------------------------------------
できましたねー。
さて試しに自分で1L$支払ってっと・・・あれ?金額が増えない・・・
(´・ω・`)今日は疲れたので、次回金額を増やす方法を考えたいと思います。
では、ながくなりましたがおつかれさまでしたー。