Second Lifeで気に入ったアイテムの記録です あ、ウソです。スクリプトとか他のことも書いてます

2007/01/18

scriptメモ

スクリプト関連のメモ
今回のSLIDや、これまでのバイクとかいろいろ作る中で
やってることとか、思ったことをメモ

■数字チェック(整数パターン)
stringの変数の内容が数字だけかどうかのチェックのやり方
理屈は以下のとおり

integer isnum(string s_test){
 if(s_test == (string)(integer)s_test)
  return TRUE;
 return FALSE;
}

■複数の値をchildとrootのやりとりする
・listに複数の値をセット
・それぞれの変数の型を情報として保持するlist化
・↑をstring化
・linkmessageを受けた側で逆の手順
これは、便利です
ただし、受け渡しするstringは長いものになるので
これが定石なのかどうかわかりません
lslのwikiにも載ってます

■本の開閉
rot操作だけでは位置がずれるので
pos操作も...
と考えると三角関数とかやっかいなことになります
でも、回転させたいprimの中心軸ずらす(※)と、
rot操作だけできれいにまわります
中心軸をずらす方法を知っていながら
sixさんに言われるまでつきませんでした
※dimpleを操作
dimpleって、和訳すると「えくぼ」なのね...

■画像の先読
要するに見ている人の視界の中にテクスチャがあれば
それをキャッシュするはずなので
若干早くなる!という理屈でやってます
四角錐の頂点を、見ている人の側に向けておけば
1primで4画像先読みできます
これをちっさくして、本のはしっこに出しています
 
■ページ番号の取得
今回のSLIDはオブジェクトのネーミングルールを
以下のようにしています
ページ番号+"_"+好きな名前
ex) 1_page a
これの番号だけの取得は"_"を区切り文字にして
文字列→LISTにして、第一要素を取得しているだけ

■変数の初期化
ページ情報などをlistで作っています
これ、本来はentry時に一度やれば保持されるはずなので
rez時は不要なんですよね
と、そうは思うのですが、ちょっと不安だったので
rez時に、毎回情報取得しています
幸い、死ぬほど遅くなることもなかったので
ひとまずは、この仕様で。

2 コメント:

Litmus さんのコメント...

すごすぎる~。
ちょっとマジですごい勉強になりました!

僕は複数のパラメータをやり取りする場合、
command,key,param1:param2:param3
てなStringにして、
llCSV2Listで分解、パラメータ部分は
llParseString2Listの:で分解して、
そのListから型に応じて引き出しってしてます。
Listenでプロトコルやりとりするイメージです。
youさんの形より汎用性は落ちるけど、
Client-Server方式ではこの形で事足りてます。

you Xiao さんのコメント...

私もバイクの時は、
そのやり方でやってたんですよ
十分使えるしね
ただ、新しいやり方も試してみようかなとw
ちなみに、当然ですが
私が考えたものではありません
ここにのってます
ExampleListConversion
ちょっと手直しすれば使えますよ