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

ストップウォッチ(llGetTime,llResetTime関数)

スクリプトではタッチすると時間の計測が開始され、
もう一度タッチすると、スタートから経過した秒数で停止・表示されます。

integer runflg = FALSE;
default
{
  touch_start( integer total_number )
  {
      if(runflg==TRUE){
          llSetTimerEvent(0.0);
          float fgettime= llGetTime();
          llSay(0,"Stop!"+ (string)fgettime +" seconds.");
          llSetText( (string)fgettime,<1.0,1.0,1.0>,1.0);
          runflg=FALSE;
      }else{
          llSetTimerEvent(0.01);
          llResetTime();
          llSay(0,"Start!");
          runflg=TRUE;
      }
  }
  timer()
  {
      llSetText( (string)llGetTime(),<1.0,1.0,1.0>,1.0);
  }
}
llGetTime関数:llGetTime()
スクリプトの実行時間(秒)を取得します。
llResetTime関数:llResetTime()
スクリプトの実行時間を0にリセットします。

<補足>llGetTimeとllResetTimeを両方行うllGetAndResetTime()関数なんてものも
あります。

ちなみに、四角いプリムをタッチしても三角のプリムをタッチしてもスクリプトは
結合してマスタープリム(親プリム)に入れてあるので同じですー。今回は特に処理をわけていません。