2008年09月11日
スクリプトとの戦闘日誌① ~vector VS list~
今日経験したスクリプトに関するTipsのコーナーです。
①llList2Vector
ベクトルをリストに追加します。
ベクトルをリストからllList2Vectorを使って読み出します。
そうするとベクトルは読み込まれずZERO_VECTORになるみたいですwww
stringで読み込んでキャストしなきゃいけません。……なぜだ!!
NGスクリプト
OKスクリプト
②llListFindList(list , vector)での戦い
まあ上の方は問題おきた時点できっとこうだろうと思って修正すぐにできましたが、こちらはめんどくさかったな。
問題サンプル
インテジャーiは-1を指しますw
リストの中では小数点6ケタになるのに、普通にベクトルを取得すると小数点5ケタになっていました。
だから、次のようにすればリストの中に見つけられます。
実際はこんな文でなかったけど、要するに言いたかったのはリストから抜き出すとベクトルは小数点6ケタになるということ。
非常に不可解でした><;
③大発見
知っている人は知っているんでしょうが、スクリプト編集画面でマウスをLSL関数の上に載せると解説が出るんですね・・・。
引数がわからないときわざわざインターネットエクスプローラーでwikiまで見に行っていた俺、合掌…。

①llList2Vector
ベクトルをリストに追加します。
ベクトルをリストからllList2Vectorを使って読み出します。
そうするとベクトルは読み込まれずZERO_VECTORになるみたいですwww
stringで読み込んでキャストしなきゃいけません。……なぜだ!!
NGスクリプト
list vecList = [<1, 1, 1>];
vector vec = llList2Vector(vecList, 0);
//結果⇒vec == ZERO_VECTOR
OKスクリプト
list vecList = [<1, 1, 1>];
vector vec = (vector)llList2String(vecList, 0);
//結果⇒vec == <1, 1, 1>
②llListFindList(list , vector)での戦い
まあ上の方は問題おきた時点できっとこうだろうと思って修正すぐにできましたが、こちらはめんどくさかったな。
問題サンプル
list vecList = [llGetPos()];
integer i = llListFindList(vecList, [llGetPos()] );
インテジャーiは-1を指しますw
リストの中では小数点6ケタになるのに、普通にベクトルを取得すると小数点5ケタになっていました。
だから、次のようにすればリストの中に見つけられます。
list vecList = [llGetPos()];
integer i = llListFindList(vecList, [llList2String(vecList, 0)] );
実際はこんな文でなかったけど、要するに言いたかったのはリストから抜き出すとベクトルは小数点6ケタになるということ。
非常に不可解でした><;
③大発見
知っている人は知っているんでしょうが、スクリプト編集画面でマウスをLSL関数の上に載せると解説が出るんですね・・・。
引数がわからないときわざわざインターネットエクスプローラーでwikiまで見に行っていた俺、合掌…。

Posted by さかぷん at 00:30│Comments(0)
│LSL, スクリプト