# MacroScript文法 ### コマンド一覧 |コマンド名|概要| |:-|:-| |`Hit`|タイマーに合わせてボタンを押下する| |`Press`|一定時間ボタンを押下する| |`Start`|タイマーを起動する| |`Wait`|一定時間待機する| #### 基本文法 - 大文字と小文字は区別される. - コマンドには, 必ず指定する必要がある<b>主要引数</b>と, 省略可能な<b>オプション引数</b>が設定されている. - 引数は半角スペース1個で区切って入力する(2個以上や全角スペースではエラーになる). - 主要引数が複数ある場合, 順序通りに入力する必要がある. - オプション引数は入力順序を問われないが, 重複はできない. - オプション引数は`-i=1000`のように ハイフン+英小文字1字+イコール+実引数 で構成される. ハイフンの後やイコールの前後などにもスペースは入れられない. - コマンドの終端には改行を入れる. - コマンド内に改行を挟むことはできないが, スクリプト中に空行を入れても良い(空行はスキップされる). - #から始まる行はコメントとして解釈され, スキップされる. ただしコマンド行内にコメントを入れることはできない. #### Hitコマンド ##### 引数構成 `Hit <button> <frame> (-l) (-c) (-d) (-s)` ##### 主要引数 ||引数制約|概要| |:-|:-|:-| |`button`|ボタンを表す文字列|押下するボタンを指定する| |`frame`|int型に収まる非負整数|ボタンを押すタイミングを指定する| ##### オプション引数 ||引数制約|省略時|概要| |:-|:-|:-|:-| |`-c`|int型に収まる整数|0|`Frame`の値を補正する| |`-l`|1桁の数字|0|参照するタイマーのラベルを指定する| |`-d`|int型に収まる非負整数|200|ボタンを押下する時間(ミリ秒)| |`-s`|1桁の数字|(無視される)|起動するタイマーのラベル| ##### 付記 - コマンド実行時点で`frame`の値を過ぎていた場合は即時押下する. - 指定したタイマーはあらかじめ起動されている必要がある. - タイマーの起動は`-s`オプションが指定されている場合のみ実行される. - 既に起動しているタイマーを重複して起動することはできない. - `-c`には負の値を指定することもできる. - `Frame`+`-c`の値が負になる場合は0に切り上げられる. - `-c`に指定した値が大きすぎてオーバーフローしても知らない. ##### 凡例 `Hit A 1192 -l=2 -d=1000 -s=3` タイマー2の値が1192フレームになったタイミングでタイマー3を起動しつつAボタンを1000ミリ秒押下する. `Hit A 1800 -c=-77` タイマー0の値が1800-77=1723フレームになったタイミングでAボタンを押下する. #### Pressコマンド ##### 引数構成 `Press <buttons> <frame> (-i) (-d) (-s)` ##### 主要引数 ||引数制約|概要| |:-|:-|:-| |`buttons`|ボタンを表す文字列のカンマ区切りの列|押下するボタンを指定する| - ボタンを`+`区切りで繋げると同時押しになります。 ##### オプション引数 ||引数制約|省略時|概要| |:-|:-|:-|:-| |`-i`|int型に収まる非負整数|0|ボタン押下後の待機時間(ミリ秒)| |`-d`|int型に収まる非負整数|200|ボタンを押下する時間(ミリ秒)| |`-s`|1桁の数字|(無視される)|起動するタイマーのラベル| ##### 付記 - タイマーの起動は`-s`オプションが指定されている場合のみ実行される. - 既に起動しているタイマーを重複して起動することはできない. ##### 凡例 `Press B -s=0` Bボタンを押下すると同時にタイマー0を起動する. `Press A,A,dU,dU -i=300` Aボタン2回, ↑ボタン2回を300ミリ秒間隔で(200ミリ秒ずつ)押下し, 300ミリ秒待機する. #### Startコマンド ##### 引数構成 `Start (-s)` ##### オプション引数 ||引数制約|省略時|概要| |:-|:-|:-|:-| |`-s`|1桁の数字|0|起動するタイマーのラベル| ##### 付記 - 既に起動しているタイマーを重複して起動することはできない. #### Waitコマンド ##### 引数構成 `Wait <duration>` ##### 主要引数 ||引数制約|概要| |:-|:-|:-| |`duration`|int型に収まる非負整数|待機する時間(ミリ秒)| ##### 凡例 `Wait 20000` 2秒間待機する. #### ボタン一覧 |ボタン|対応する文字| |:-|:-| |A|`A`| |B|`B`| |X|`X`| |Y|`Y`もしくは`Sl`| |Z|`Z`| |Start|`St`| |L|`L`| |R|`R`| |↑|`dU`| |←|`dL`| |↓|`dD`| |→|`dR`| |Start+Y同時押し|`tl`| 上記にないボタンは現在未対応.