@ [排他実行ID] ({(sequence)}|ラベル)
(execute) 新規ファイバを起動します.
({(sequence)}|ラベル) の内容を実行するファイバを起動します.ファイバとは他言語におけるスレッドのような概念で,記述内容は並走して実行されます.
例えば,"&{[5f4w3]}a0.1" は弾を5連射後に加速するのに対し, "@{[5f4w3]}a0.1" では弾を5連射しながら加速します.
また "@0" は省略可能です.つまり f*, n*, &, @* コマンドを指定せずに{...}またはラベルを記述した場合,"@0"が指定されたものとして実行されます.
引数で[排他実行ID]>=1を指定した場合,同IDを持つファイバを停止して起動します.[排他実行ID]=0(デフォルト)の場合,他ファイバを停止しません.
{(sequence)} 形式で記述した場合,補助コマンドのパラメータは引き継がれます.
ラベル 形式の場合,補助コマンドのパラメータは初期値にリセットされます.
例えば,"f4w3@{f}" は,速度4の弾を2回射出しますが,"#A{f} f4w3@A" は,速度4と1の弾を1回づつ射出します.
@o [オブジェクトID] (, [オブジェクトID] , ...) ({(sequence)}|ラベル)
(execute Object) n,f コマンドで生成時に指定した[オブジェクトID]を持つ子オブジェクトに対して,新規ファイバを起動します.
n,nc,f,fc コマンドで[オブジェクトID]を指定して生成した場合,指定[オブジェクトID]を持つ子オブジェクトに対して新規ファイバを起動します.
引数で複数[オブジェクトID]を指定した場合,孫オブジェクトに対してファイバを起動します.例えば,"@o1,2{...}"は"@o1{@o2{...}}"と同等です.
@oコマンドでは,補助コマンドのパラメータは常にリセットされます.また,[排他実行ID]の指定は出来ません.
@ko [終了ステータス] ({(sequence)}|ラベル)
(execute when Kill Object) 指定した[終了ステータス]でオブジェクトが破棄された場合,新規ファイバを起動します.
オブジェクトが破棄された瞬間に起動するファイバを指定できます.ファイバは[終了ステータス]毎に指定できます.
[終了ステータス]は koコマンド または CMLObject.destroy() の引数で指定した値で,実装依存です.
実行は1フレームのみ行われ,"w*", "~" のような時間指定コマンドは実行されず,それ以降のシーケンスは無視されます.
また,@koで指定したシーケンス内で ko を呼び出しても,シーケンスは循環しません.
^@ ({(sequence)}|ラベル)
(fake execute) シーケンスを実行せずに,"@*{.}"で呼び出されるシーケンスを差し替えます.
"@*{.}" で呼び出されるシーケンスを差し替えます.このコマンドで呼び出しても実際に実行はされません.