timerイベントとstate移動と私。

ともねこ

2009年07月14日 07:40


とっても久し振りですが、激しく地味な内容で。

今日の検証実験。

試してみた限りですが、timerイベントがキューに入ってる状態でstateを移行すると、
state_entry内でllSetTimerEventで再設定(0.0以外)してもキュー内のイベントがクリアされない、事があるみたいです。
再設定値より短時間のイベントがキューに入ってると、想定してるより短時間でtimerイベントが実行される訳です。
state_entryを出た直後、タイミングによってはrun_time_permissionsとかchangedよりも先にtimer突入とか。

これは前後の命令の関係次第とか、monoコンパイルの直後1回目だけとか、起こったり起こらなかったりもします。

なんとなくタイマーの挙動がおかしくて悩んでる方は、現状 (Second Life Server 1.26.4.120562) では
state移動する場合はllSetTimerEvent(0.0)で一度無効にしてキューから削除してから改めて目的のタイマーを設定するのが良いかも知れません。
スクリプト