1 2 | _hunter = "B_MRAP_01_F" createVehicle getPos player ; _hunter setPos [getPos player select 0,getPos player select 1,10] |
さて、今回はスクリプトファイルの本命、繰り返し処理と遅延のお話をしていきましょう。
繰り返し処理っていうのは、まあ文字通り繰り返し一つのスクリプトを動かしてくれるものです。
じゃあ、次のスクリプトを動かしてみてください。
1 2 3 | for "_i" from 0 to 3 do { _hunter = "B_MRAP_01_F" createVehicle getPos player ; } ; |
1 2 3 4 | _hunter = "B_MRAP_01_F" createVehicle getPos player ; _hunter = "B_MRAP_01_F" createVehicle getPos player ; _hunter = "B_MRAP_01_F" createVehicle getPos player ; _hunter = "B_MRAP_01_F" createVehicle getPos player ; |
さて、先ほどのスクリプトの構造はといえば、forスクリプトです。本当のことを言えば違う書き方もあるんですが、私はもっぱらこの書き方です。
で、このforスクリプトなんですが、ちょっと次のスクリプトを動かしてみてください。
1 2 3 4 | for "_i" from 0 to 3 do { hint str _i ; sleep 1 ; } ; |
このforスクリプト、"_i"の部分には何でも入ります。スクリプトの中で_iを使えば現在の数字を取得することが出来ます。
…で、forスクリプトの挙動は分かったでしょうか。今回の場合は「0から3まで、_iが1ずつ増え、3か、それ以上になるとスクリプト終了」です。中のスクリプトが一周すると_iが1増えます。そして0から3、つまり4回繰り返されるのです。
今さらっと出てきたsleepですが、文字通り遅延させるスクリプトです。今回はsleep 1なので1秒の遅延なのですが、sleep 0.1などにすると0.1秒の遅延となります。
ちなみに、sleepスクリプトはユニットのInitializationなどでは動きません。基本スクリプトファイルの中専用と覚えておきましょう。
繰り返しスクリプトをもう一つ。次のスクリプトを動かしてください。
1 2 3 | { _mrap = _x createVehicle getPos player ; } forEach [ "B_MRAP_01_F" , "O_MRAP_02_F" , "I_MRAP_03_F" ] ; |
1 2 3 4 | { hint str _x ; sleep 1 ; } forEach [ "B_MRAP_01_F" , "O_MRAP_02_F" , "I_MRAP_03_F" ] ; |
【実習】forスクリプトで次の文を作る。
hintで現在の数字を取得し、sleepで現在の数字だけ処理を遅延させるスクリプトを5回繰り返す。
0 件のコメント :
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。