LSL(Linden Script Language)スクリプトTips集

ダンスパッドでアニメーション(llStartAnimation関数,llStopAnimation関数)

下記のスクリプトでは、右クリックして表示されるパイメニューの「Dance」でアニメーションを開始します。
よくあるキャンプのダンスパッドです。お金の支払いスクリプトは入れてません。

default
{
  state_entry(){
      llSetSitText("Dance");
      llSitTarget(<0.0,0.0,0.5>,ZERO_ROTATION);
  }

  changed(integer change){
    key sitavakey = llAvatarOnSitTarget();
    if( sitavakey != NULL_KEY ){
      if ((llGetPermissions() & PERMISSION_TRIGGER_ANIMATION)
                && llGetPermissionsKey() == sitavakey) {
        llStopAnimation("sit");
        llStartAnimation("ダンスのアニメーション名");
      }else{
        llRequestPermissions(sitavakey, PERMISSION_TRIGGER_ANIMATION);
      }
    }
  }

  run_time_permissions(integer perm){
    if(perm & PERMISSION_TRIGGER_ANIMATION){
      llStopAnimation("sit");
      llStartAnimation("ダンスのアニメーション名");
    }
  }
}
llStopAnimation関数(指定された名前のアニメーションを終了します。)
一番目のパラメータ : アニメーション名
llStartAnimation関数(指定された名前のアニメーションを開始します。)
一番目のパラメータ : アニメーション名
run_time_permissionsイベント(llRequestPermissions()によって許可されると、このイベントが発生します。 )
一番目のパラメータ : 許可されたパーミッション値

SitというメニューをDanceという文字に置き換えているだけなので動作としては、
デフォルトのsitという名前のアニメーションが開始されます。それをストップし、
代わりにダンスアニメーションを開始しているというスクリプトです。
初回のDanceはパーミッションを持っていないのでllRequestPermissionsによってパーミッションを取得してから
アニメーションを開始しています。2回目以降はパーミッションを持っているので、すぐにアニメーションを開始しています。
スクリプトと同じ場所にダンスのアニメーションをセットしてください。
(ダンスのアニメーションファイルは自作(アニメーションの作成)でもいいですし、フリーアイテムショップでも手に入ります。)