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

気ままな一言

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

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

  
Posted by at

2008年06月06日

rezに失敗する~; ;

llSetLinkPrimitiveParams()を使ってリンクプリムを移動・回転させるのは
かなり大変だなぁと思う今日この頃いかがお過ごしでしょうか?

今日はrezすると2つ目のrezでこんなエラーが出ます。

grey goo fence: rapid or recursive rez

え~~

もちろん再帰はしていません。
rezした後にスリープ入れたら出なくなったのですが、
10秒くらい入れないとダメでした。

え~~

そんなに待てません。

昨日は0.1秒でも出なかったのに。
さっき試したら0.5秒でも大丈夫でした。

なんで~

ちょうど今、サーバに不具合が出ていると聞きました。
何か関係しているのでしょうか?

それはそれとして、
スクリプトエラーが出るとスクリプト止まってしまいます。

これに限らず、訳のわからないエラーだと、もしもの時に回避できないのですが。。


あ~あ~  

Posted by れむ at 02:18スクリプト

2008年05月26日

Tips修正。。

今載せている汎用関数を修正しました。

なんか、使い方は間違いだらけでした(笑)
リファレンスの方も自分が使う関数だけはちょこちょこ直しています。
間違い修正のついでに処理も見直しました。

少しばかりの最適化などをしているので
読みにくいコードになってしまっているのはご了承下さい。

ちなみに中身が1、2行のものは展開してしまった方が
関数オーバーヘッドの分、高速になります。

ある程度の確認はしていますが、
ご利用の際は各自の責任でお願いします。

間違いがありましたら指摘して戴けると幸いです。
また、「役に立った」、「こんなの欲しい」などございましたら
コメント残してもらえればと思います。
おだてられると作るかも知れません(^o^)
(でも、物理とか数学とかはわかりませんので……)

使い道が無いことは自覚しつつも
そろそろ新しく追加する予定です。

数行ですが、頭悪いので意外と手間なのです。
ケチなので便利なものは公開しないかも知れません(笑)

ではではご期待あれ……!?
  

Posted by れむ at 23:50スクリプト

2008年05月18日

LSLでプリプロセッサ

LSLでCやC++はでお馴染みのプリプロセッサを使ってみました。

プリプロセッサでは主に次のようなことができます。
・文字置換/マクロ展開
・外部ファイルの読み込み
・ソースの条件選択

詳しいことは検索すればたくさん出てきますので調べてもらえればと思います。

プリプロセッサを使うことでの一番の恩恵と言えば、
複数ファイルで定数を共有化することができるということでしょうか。
変数の値は共有化できませんが、関数なども簡単に使い回せるようになります。


使うプリプロセッサは何でもいいのですが、
今回はBorland C++ Compilerに含まれているものを使用します。
5.5であればユーザー登録すれば無料で利用できます。(以前は登録なしでダウンロードできた気がします)
ダウンロードしたらその中からcpp32.exeを取り出します。
これがプリプロセッサです。

あとは構文チェック用にlslintもダウンロードしておきましょう。

プリプロセッサの使い方ですが、
コマンドラインからの利用となりますので次のようなバッチファイルを用意しました。
これをコピペして適当なファイル名を付けて保存し、
そのバッチファイルにLSLファイルを投げ込めばプリプロセスと構文チェックを行ってくれます。
cpp32とlslintとバッチファイルは同じディレクトリに置いて下さい。

このまま使用すると
バッチファイルのあるフォルダにdstフォルダを作成し、
その下に変換後のファイルを出力します。
変換されたファイル名は<元ファイル名>.iになっています。
スクリプトにはこのファイルの中身を使用します。


但しこの方法にはデメリットもあります。
・エラー行がずれる。
・スクリプトが別ファイルになるので面倒。

cpp32の制限事項として以下のものもあります。
(オプションの指定方法が悪いのかも知れません)
・jumpを使用すると@でプリプロセスエラーが出る。
・コメントが消えたり、ソースレイアウトが崩れる。

変換後のソースを直接変更することはないと思いますのでコメント等は入らないと思いますが、
エラーの場所が探しにくくなるのは致命的です。


プリプロセッサにgccを使えばjump使用時のエラーはでません。
ですが、gccを使用するためにはcygwinなどをインストールする必要があるので
かなり手間になってしまいます。

ちなみにバッチファイルは後半をこんな感じにすれば動くと思います。

FOR /F %%I IN ("%1") DO (
	SET BASE_NAME=%%~nI
	SET BASE_PATH=%%~dpI
)
COPY %1 "%OUTPUT_DIR%\%BASE_NAME%.h">nul
PATH=%PATH%;C:\cygwin\bin\
gcc -P -E -C -I%BASE_PATH% "%OUTPUT_DIR%\%BASE_NAME%.h">"%OUTPUT_DIR%\%BASE_NAME%.lsl"
"%LSLINT_PATH%\lslint.exe" "%OUTPUT_DIR%\%BASE_NAME%.lsl"


正直、普通にスクリプトを書く分にはデメリットの方が大きいとは思います。
プリプロセッサの副作用についても注意が必要になりますしね。


なお、バッチファイルの動作等は保証致しませんのでご了承下さい。
また使い易いように編集してもらえればと思います。
  

Posted by れむ at 14:18スクリプト