llList2Float関数などの挙動

llList2Float関数などの挙動

- Shinobar Martinek の投稿
返信数: 0

Canyon など Shinobar SIM群のサーバーを opensim-0.9.1系(OSG配布のもの)に更新したところ、ツアーライド関係のスクリプトが動かなくなりました。ノートカードに書かれた座標を読み取るところですべてが 0 となっていました。

ノートカードから読み取ったものを単語ごとに分解してリストに格納。これは文字型となっています。それを llList2Float などで数字として読み出します。LSLポータルによるとこの関数は、必要ならばタイプキャストを自動的にやってくれることになっていますが、 opensim-0.9.1では、それはやってくれず、0を帰すようです。

以下のように明示的にタイプキャストすることで動くようになりました。

修正前: x = llList2Float( datalist, index );

修正後: x = (float)llList2String( datalist, index);

なお、スクリプト内でlist要素に数字を代入し、それを型どおりの llLost2 関数で読み出す場合(タイプキャスト不要の場合)にはこれらの問題はありません。

(関連ブログ記事)http://shinobar.slmame.com/e1619324.html