コメントやトラックバック、FriendFeedやTwitterでのツッコミは大歓迎です!
携帯用 by Google

Search

Profile & Feeds

GOTTi
GOTTi@iNNX
FriendFeed - gotti twitter - hidenorigoto flickr - GOTTi mixi - hidenorigoto facebook - hidenorigoto last.fm - hidenorigoto
最近は、PHPのMVCフレームワーク「symfony」関連の活動と、多治見IT勉強会などをやっています。
Googleプロフィール
ブログへのコメントやツッコミ、twitterやFriendFeedでのreplyなどお気軽にお願いします!

Latest Posts

369件のエントリ

Category

iNNX Links

Other Links

Friends Links

LSLメモ

2007/06/05 02:39 add to hatena hatena detail hatena detail
(この記事は旧ブログから移転したものです。)

LSL(Linden Script Language)についての雑多なメモ。

思いつき次第追記するエントリです。

自分用のまとめエントリなので「今さら」なもの多数ですYO。

1.各種制限値

1-0 スクリプト容量

16KB

llGetFreeMemory() にて擬似的に空き領域を取得可能ですが、この関数は正確な空き領域を示さないので注意が必要。

1-1 llSay、llWhisper、llShout で使用する文字列長

( 2007/05/05 ビューア v1.15.0 (2) )

1023バイトまで(半角文字1023文字)

日本語の場合UTF8換算なので、文字数では上記の約1/3 程度

→「あいうえお」や「1234567890」で実験したところ341文字

→ツただし、文字によってUTF8バイト数が異なるので注意

Wikipedia UTF-8

 254バイトまで

If the string passed to the chat function is greater then 255 bytes long, it is truncated (chopped off) at its 255th byte.



1-2 llSay、llWhisper、llShout の届く距離

llWhisper:10m

llSay:20m

llShout:100m

1-3 HTTPRequest

リクエスト:スクリプトのメモリ空き容量の範囲内で無制限

レスポンス:body が 2048バイトまで

see:llHTTPRequest

1-4 ノートカードの読み取り

llGetNotecardLine() を使用してノートカードの内容を読み取れますが、ノートカード内にランドマークや画像の貼り付けがある場合は、ノートカードのテキスト自体も読み取れなくなります。

現在はノートカード内の日本語も LSL から読み取ることが可能です。

1-5 llRequestPermissions

LSLの1つのスクリプトファイル内で使用できるパーミッション(権限)には、以下の制限があります。

  • 1種類のパーミッションのみ有効
    1回のllRequestPermissions() 呼び出しのみ有効
    → 一番最後に与えたパーミッションのみ有効になります。
    (スクリプト内の llRequestPermissions() 処理順ではなく、ダイアログが表示されるものはダイアログで Grant / OK した順になります。)

    (ヒルデさんよりご指摘いただきました)
    llRequestPermissions() に渡すパーミッションフラグを or ( | ) で掛け合わせて指定すれば、複数のパーミッションを同時に取得できるようです。

  • 1人のアバターのみ有効
    複数のアバターに対しての権限を同時に付与することはできません。最後に与えた権限のみが有効になります。


このような理由から、複数のアバターに対して同時に権限を保有する必要がある場合はスクリプトファイルを複数用意して処理する必要があります。
see:llRequestPermissions()

2.最適化の話

文字列の取り扱い

Second Life そんなネタふりされたら・・・・(LSL最適化)

3.TIPS

3-1 アバターのKeyからアバター名を取得

方法1:llKey2Name() を利用する。

※対象アバターがスクリプトオブジェクトと同一SIM内に存在する必要がある。

方法2:llRequestAgentData() を、フラグ DATA_NAME で利用する。

※対象アバターの場所やオンライン状態に依存しない。

※非同期処理(dataserverイベント)にて処理する必要がある。

2007/06/05 02:39 add to hatena hatena detail hatena detail
本ブログではコメントシステムにDISQUSを使用しています。
FriendFeedやTwitterなどの外部ソーシャルサービスでこのURL付きでコメントしていただくと、 DISQUSにより自動的にReactionsとしてこちらに表示されます。

blog comments powered by Disqus