ソラマメ ブログ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 4人
オーナーへメッセージ
※カテゴリー別のRSSです
QRコード
QRCODE

気ままな一言

ご質問等、ページへのリンクはご自由に。気軽にコメントでもどうそ~
詳しいことは角川SIMのサポートセンターまでいらっしゃいませっ

世間知らずなので逆にいろいろ教えてください♪

  
Posted by at

2009年03月24日

lslint へ関数を追加

lslint へ関数を追加

スクリプトのチェックに lslint は使っているのでしょうか?

ビューア内のエディタも LSLEditor も使わない人は便利なツールです。

ただ、もうずっと更新されていないので
新しい関数を使うと全部エラーになってしまいます。

どうにかならないかと思っていたのですが、
サイトに思いっきり対応方法が書かれていました。
早く気付けばよかったです。
今までエラーは無視していました。

次の方法でできるみたいです。

lslint -b builtins.txt xxxx.lsl

builtins.txt は関数のリストです。
これを最新のものにすれば新しい関数でもエラーが出なくなります。
そのためには以下のものが必要です。

・perl の実行環境
・変換用 perl スクリプト
・ビューアのソース


実行環境は、まぁ、そろえて下さい。
perl でググれば色々出てくると思います。

変換用 perl スクリプトは、lslint のサイトにあります。
下記テキストファイルを builtins.pl の名前で適当な場所へ保存します。
http://w-hat.com/lslint/release/builtins.pl.txt

最新ビューアのソースは、下記URLからダウンロードします。
http://wiki.secondlife.com/wiki/Source_downloads

必要なものは lscript_library.cpp だけですので
検索して builtins.pl と同じ場所へコピーします。

あとは次のように実行すれば builtins.txt のできあがりです。

perl builtins.pl < lscript_library.cpp > builtins.txt

という感じに生成したものが、次のものです。
つまりこれをコピペして保存すれば終わりです。

これですっきりします。

  続きを読む

Posted by れむ at 02:08Tips

2009年03月04日

LSL汎用関数 訂正

ずっと直さないといけないと思いつつ放置していたことです。

ここの LSL の Tips には一部、非常に無駄なことが書いてあります。
こっそり直そうと思いましたが、ここで訂正致します。

誰からもツッコミが入らないし、
ここはそんなに見られているとは思いませんが。。


これらは組み込み関数にそのままの処理があります。

最大値を取得する
llListStatistics(LIST_STAT_MAX, lst);

最小値を取得する
llListStatistics(LIST_STAT_MIN, lst);

合計を求める
llListStatistics(LIST_STAT_SUM, lst);

平均を求める
llListStatistics(LIST_STAT_MEAN, lst);

標準偏差を求める
llListStatistics(LIST_STAT_STD_DEV, lst);


文字列置換はこの方が効率的です。 //============================================================================== // 文字列を置換します。 // source 対象の文字列 // search 置換される文字列 // replace 置換する文字列 // 戻り値 置換されたを返します。 //============================================================================== string str_replace(string source, string search, string replace) { return llDumpList2String(llParseStringKeepNulls(source, [ search ], []), replace); } こんな仕組みです。 list lst = llParseStringKeepNulls("abcabcabc", [ "b" ], []); // [ a, ca, ca, c ] string str = llDumpList2String(lst, "*"); // "a*ca*ca*c" あと、コピペされることを前提に i=~(-i)) のような最適化したコードを書いておきましたが、 MONOに変わってから色々と高速化されましたのであまり意味をなさなくなりました。 見にくいだけです。 ちなみに i=~(-i)) はインクリメントと等価です。 i = 0; i = ~i; // ビット反転 0xffffffff (-1) i = -i; // 符号反転 1
  

Posted by れむ at 01:26Tips

2008年08月12日

SLサーバーの環境変数

LSLからHTTP通信を行ったときの環境変数をCGIで抜き出してみました。
(セカンドライフに関するものだけ抜粋)
HTTP_X_SECONDLIFE_SHARDProduction … メイングリッド
Testing … βグリッド
HTTP_X_SECONDLIFE_OBJECT_NAMEオブジェクトの名前
HTTP_X_SECONDLIFE_OBJECT_KEYオブジェクトのUUID
HTTP_X_SECONDLIFE_REGIONSIM名(SIMのグローバル座標)
HTTP_X_SECONDLIFE_LOCAL_POSITION(オブジェクトの座標)
HTTP_X_SECONDLIFE_LOCAL_ROTATION(オブジェクトの回転値)
HTTP_X_SECONDLIFE_LOCAL_VELOCITY(オブジェクトの速度)
HTTP_X_SECONDLIFE_OWNER_NAMEオブジェクトオーナーの名前
HTTP_X_SECONDLIFE_OWNER_KEYオブジェクトオーナーのUUID
HTTP_USER_AGENTSecond Life LSL/サーバーバージョン (http://secondlife.com)
HTTP_VIAプロキシ情報

あまり大した情報は取れないようです。(まぁ色々取れすぎても怖いですし……)
とりあえず、SecondLife以外からのアクセス制限はある程度かけられそうです。
  続きを読む

Posted by れむ at 21:51Tips