llResetScript()とか

VoidLing

2007年10月05日 21:17


LSL関連の小ネタをいくつか。

まず、TitlerのllGetOwner絡みの問題解決。
実は少し前にすでに解決してたんですが、無償バージョンアップの方法を考えたり
商品に仕込んで店頭に並べたり・・が先送りになってましたorz
現在はすでに修正版が店頭に並んでます(※別記事「無償バージョンアップとか」を参照)
で、スクリプトで利用されるオーナー情報(オブジェクトのプロパティとは一致しない)は
スクリプト自体をリセットしないと書き換えられない(REZしたものをTAKEしたりすると
このリセットが発生する)ようなので、ストレートにllResetScript()を使ってみる
ことにしました。(アタッチするたびにリセットしても芸がないので、適当に条件付け^^)

attach(key attached)
{
  if(attached != NULL_KEY)
  {
    if(attached != llGetOwner())
    {
      llResetScript();
    }
  }
}



次のネタは移動系。
現在私はVoidpiTのあるSIM「Qoo」の活性化計画として、Qoo's Shopping Parkの建設を
委託されてやってるんですが、このParkに置くアトラクションのフリーフォールを動かすための
スクリプトで四苦八苦しています。
移動系の関数を何種類か試してみた結果は以下の通り。

タイマーでllSetPos ・・・カクカクするし負荷が高そう => ボツ

llMoveToTarget  ・・・移動距離制限の64mにひっかかる。64mごとに区切って
                という方法も試してみたが、最初にスクリプトを起動させた
                座標が基準になるようで、アウト。 => ボツ

llSetHoverHeight ・・・llMoveToTargetと同様 => ボツ

というわけで、3連敗です^^;
次は乗り物系のBALOONに挑戦してみます。
LSL