2008年02月09日
walking のスクリプティング講座(その10)
流石に今回で New Script は終わるぞ ^^
llSetTimerEvent(1.0); としているので 1秒毎に実行される部分
update_cur_seq_and_get_duration というのを呼び出している... あれ? 一秒毎に呼び出していいの?
というわけだが この関数の最後の部分を見ていただくと
llSetTimerEvent(cur_duration);
となっている なるほど~ 持続時間後に呼び出すように再設定してるわけね ^^
で~ さらに 最初の while 文 が 結構嫌らしい部分なんだけど~ 持続時間が 0 な場合は ここをくるくる回るんだ
で 持続時間が 0 のまま データの個数を超えた場合は llSetTimerEvent(0.0); で終了する
そのままの設定で変化が無いパターンはこの道筋を辿るというわけなんだね~
でもまあ ここで get_record でデータを取り出して llMessageLinked で指示を出すわけだ
というわけで 次回からは 指示を出された側の処理を見ていくよ w
あ llGetLinkKey(cur_target_link) とかしているのは 渡せるもののタイプが決まってるので変換してるってわけ...
(続く)
llSetTimerEvent(1.0); としているので 1秒毎に実行される部分
timer()
{
integer max_count = 0;
while ((cur_duration = update_cur_seq_and_get_duration()) == 0.0) {
get_record();
llMessageLinked(cur_src_link, cur_hight, cur_operation, llGetLinkKey(cur_target_link));
// llOwnerSay(cur_operation + " " + (string)cur_src_link);
if (++max_count > num_of_sequence) {
llSetTimerEvent(0.0);
return;
}
}
get_record();
if (cur_target_link == 0) {
llMessageLinked(cur_src_link, cur_hight, cur_operation, NULL_KEY);
} else {
llMessageLinked(cur_src_link, cur_hight, cur_operation, llGetLinkKey(cur_target_link));
}
// llOwnerSay(cur_operation + " " + (string)cur_src_link);
llSetTimerEvent(cur_duration);
}
}
update_cur_seq_and_get_duration というのを呼び出している... あれ? 一秒毎に呼び出していいの?
というわけだが この関数の最後の部分を見ていただくと
llSetTimerEvent(cur_duration);
となっている なるほど~ 持続時間後に呼び出すように再設定してるわけね ^^
で~ さらに 最初の while 文 が 結構嫌らしい部分なんだけど~ 持続時間が 0 な場合は ここをくるくる回るんだ
で 持続時間が 0 のまま データの個数を超えた場合は llSetTimerEvent(0.0); で終了する
そのままの設定で変化が無いパターンはこの道筋を辿るというわけなんだね~
でもまあ ここで get_record でデータを取り出して llMessageLinked で指示を出すわけだ
というわけで 次回からは 指示を出された側の処理を見ていくよ w
あ llGetLinkKey(cur_target_link) とかしているのは 渡せるもののタイプが決まってるので変換してるってわけ...
(続く)
Posted by walkinglint at 16:45│Comments(0)
│walking のスクリプティング講座