スクリプト

« 中世のドレスガウン | メイン | Hair Fair 2007 »

magslmagsl 2007/04/11

なぜなにスクリプト 第4回 『オブジェクトGiveする』

難しいと思われがちなスクリプトを、わかりやすく、かつコケティッシュに紹介する。なぜなにスクリプト。第四回目になりました。


 講師のLitmusです。今回のテーマは『アイテムをGiveする』です。


いいですねー。お気に入りのあの娘に、そっとObjectをGiveしたりして。やがて二人のオシベとメシベは……。


 何言ってるんだ。あんた。


一応、気を使って婉曲な表現を心がけてみたんだけど。


 気を使うなら是非とも黙っててください。サンプルスクリプトはこちらです。



  default
{
touch_start(integer total_number)
{
key avatar = llDetectedKey(0);
llGiveInventory(avatar, "notecard");
}
}

なんか、今回は難しくないですか? 見たことない感じの文字列なんですけど。


 これは、スクリプトが入っているオブジェクトをタッチした人に、コンテンツ内の"notecard"というオブジェクトを渡します。


えーと、いきなりわからないんですが。touch_start(integer total_number)って何?


 touch_startがきっかけだというのは第一回で話しましたよね?


それは、なんとなくわかったんだけど。integerって整数を入力するんじゃなかったっけ?


 integer total_number、インテジャー トータルナンバー。これはですね。このきっかけが発生するときに、自動的にくっつてくるパラメータがあります。 touch_startの場合は、同時に触った人数がセットされてきます。これが整数のtatal_numberとしてセットされてきます。


ごめん、さっぱりわからない。これってないとダメなの?


 必ずついてくるので、書式としては、そのように書かなくてはいけません。


あ、もう決まりもんなんだ。じゃ、もうこういうものとして書くって覚えておけばいいのかな。


 そうですね。それでもかまわないと思います。


同時に触った場合はtatal_numberは人数が入ってくるって覚えると。メモメモ。


 そうそう。メモをとっておくのは重要です。特にスクリプトは辞書的なものがないと後々大変になってきますからね。さて、次のkey avatar = llDetectedKey(0);の行ですね


さっぱりわかりません。lslWikiを調べるとますますわからなくなりました。


 調べると、key llDetectedKey(integer number)と出てきますね


整数をいれることはわかった。


 前に進まないのでヒントを。touch_startでこのオブジェクトを触った人数を持ってきましたね。その人の情報が欲しくないですか?


個人情報ですね。他人の秘密には興味ありますね。イヒヒ。


 残念でした。ここで取ってこれるのはkeyです。keyとはID(会員番号)と思ってください。


でもavatarって書いてあるからアバター情報全部を持ってくるんじゃないの?


 いいところに気がつきましたね。key avatarとは、KEY型の変数をavatarという名前で設定しますよという意味です。


へぇー。じゃぁ、key loveとかでもいいのね。


 まぁ、いいですけど他の人が読んだらなんのことやらさっぱりですね。スクリプトは他の人だけでなく、自分が後から読んでもわかりやすく書いたほうがいいですよ。


そんなもんなんですね。じゃぁ、key avatar = llDetectedKey(0);ってのはアバターのIDをとってくるってことで。


 アバターだけではないのですが、今回はアバターのIDを持ってくると思ってください。


0ってのはinteger numberですよね。なんで0なの?


 0を設定するわけはtouch_startで同時に触った人の人数が取ってこれますが、一番最初に触った人の情報を取得します。


なんで0なの?


 まず、0じゃない訳は話せば長くなるので0から始まると覚えてください。同時にカウントされるのは、ほんとにびったし同時ぐらいの時だけなので、一番目に触った人="0"にしておけば問題ありません。


なんか、今回はそういう説明不足が多いような気がする。


 どうしても知りたければ自分で調べてみてはいかがでしょうか。


相変わらず愛がないですね。


 次にコンテンツ内のアイテムをGiveします。


貰える物なら病気以外なんでも貰うよ。


 ここでは"notecard"というアイテムを渡してあげましょう。


ケチンボ。もっとなんかいいものないの?


 ラブさんがあげるんですよ。


notecardでいいよ。


 ……。


で、lslWikiで調べればいいんですよね。


 わかってきましたね。自分で調べるというのが重要ですよ。


llGiveInventory(key destination, string inventory) うーん。


 まず、関数名がllGiveInventoryですね。つぎにこの関数を使うときに必要なのがkey destinationとstring inventoryですね。


なるほど。さっぱりわからんね。


 まず、key destinationはKey型の変数ですよ、変数名はdestinationですよという意味です。


key avatar見たいなもの?


 そうです。destinationってのは相手と思ってください。つまり、渡す相手のKeyをセットします。


stringはテキスト(文字列)でしたよね。確か、メモをみるとダブルクォートで囲むんだったな。


 えらい! よく覚えていました。


そうです。エロいんです。で、inventoryは、インベントリーか。日本語の在庫目録。


 そうです。つまり、アイテム名をセットします。ランドマーク、ノートカード、テクスチャ、オブジェクトなど、何でも指定できます。


llGiveInventory(avatar, "notecard");ってのがなんとなくわかった気がするよ。


 これでアイテムをGiveするスクリプトが完成です。


これで色々なものを配れますな。子種とか。


 そんなもの配るなよ。最後に注意事項です。GiveするアイテムはCOPY可の状態にしておきましょう。COPY不可の場合、一度Giveしてしまうと、コンテンツ内から消えてしまいます。オブジェクトをGiveする場合によくあるので、気をつけてください。


まぁ、子種だけにコピーはお手の物だけどね。


 ほんっと、あんた最低だな。


次回は『テレポート』です。それでは、皆さんご一緒に。『あなたのハートをスクリプトオン!』


 ご一緒に、って初めて聞いたよ、そんなの!

トラックバック

このエントリーのトラックバックURL:

ご注意:
・トラックバックは確認後、承認されたものが反映されます。
・マグスルの判断によりトラックバックを削除する場合があります。
・トラックバックによってリンクされているWebページは第三者が作成したものです。内容や安全性についてマグスルでは一切保証できませんのでご注意下さい。

コメントを投稿

※ブログオーナーが承認したコメントのみ表示されます。


MagSL EXchange serviceセカンドライフ用パソコンならドスパラ!売れるショップ講座