Adsense

2007年11月29日木曜日

できたかな、、、同期ダンスユニット・・・

LIN ちゃんの想定外の使い方でエラーが出ていた MLDU (Massive Link Dance Unit) ですが、、、これでうまくいくかも・・・
image
和服なのは、、、行きがかり上で(笑

Heap/Stack を確保するためのメモリー確保の方法をいろいろと。
まだまだできるかもしれないけど、結局は、、、、

あまり詳しくない人向けの機能が「あだ」となり・・・(笑

それを削っちゃいました。だから・・・ MLDUnit RAIZEEN SPECIAL なのかも。

なにをやったかというと、、、ダンスセットのノートカードがなかった場合に、インベントリ(コンテンツフォルダ)にあるダンスをすべて規定の秒数できりかえる仕様だったのですが、まずはそれを削除w

だって、、、それらのアニメーションの名前をすべて LIST にいれていたからです。

あと、その LIST がある前提で、Notecard の記載されているアニメーションの存在チェックをしていました。
llListFindList を使っていたわけです。もし、なければ、「このアニメーションないよー」というエラーをだして、MLDU は動かない、、、という風にしてました。llStartAnimation でアニメがないと実行時にスクリプトエラーになっちゃうので、それを回避するためにこの手の存在チェックは必要だと思います。

で、全アニメーションの LIST がなくなったんで、存在チェックに llGetInventoryType を使って、INVENTORY_ANIMATION つまり 20 じゃなければダメよ・・・という判断にしました。
これはKioさんから教えてもらった。。。ありがとー。llGetInventoryKey を最初使ったのですが、No MOD, No COPY, No TRANS のパーミッションだとこの関数は存在しないときと同じ return をするので困っていたんです。

あとは、、、もう一度、たくさんの人で同期ダンスを踊るテストをすればw
もうちょっと負荷テストとか、バグのチェックをしたら・・・本格的に売り出そうかなぁ、、、と思っています。
でも、、、このスクリプトは、LIN ちゃんとか ASUKA にくる多くの人のおかげです~。ほんと、勉強になりましたw
一般のものは、、、「あだ」となったアニメーション全部オプションを復活させて、アニメーションの上限をつけるかも、、、です。メモリーってほんと、すぐに使っちゃいますよね、、、。