コマンド
\ で始まる特定の組み合わせの文字列は、書式をコントロール、もしくはコマンドを実行するためのコマンドとなる。
書式系
\0 |
| 以降 sakura スコープ |
\1 |
| 以降 kero スコープ |
\s[id] |
| 現スコープのサーフィスを id に切り替え。id が -1 だった場合はサーフィスを消し一時的不可視状態へ |
\b[id] |
| 現スコープのバルーンサーフィスを id に切り替え。id が -1 だった場合はバルーンを消す |
\n |
| 改行 |
\n[half] |
| 通常の半分の高さだけ改行 |
\w? |
| 簡易ウエイト。50*[?]ms 待機。スクエアブラケットは付かない。 |
\_w[?] |
| 高精度ウエイト。[?]ms 待つ。 |
\c |
| 現スコープの表示域クリア、文字表示座標 を (0,0) にリセット。 |
\x |
| 表示一時停止、クリック待ち。クリックされると進む。 |
\t |
| タイムクリティカルセクション。タイムクリティカルセクション中は右クリック/ダブルクリックメニューや自動チェック系など状況を破壊するコマンドが来ない。\e が出るまで有効。 |
\_q |
| クイックセクション。セクション中は全てのメッセージがノーウエイトで表示される。もう一度 \_q が来るかあるいは \e 等で解除。 |
\_s |
| シンクロナイズセクション。セクション中は全てのメッセージを2人同時に喋る。もう一度 \_s が来るかあるいは \e 等で解除。 |
\_n |
| 自動改行のスイッチ。 |
\_l[x,y] |
| 現スコープのカーソル位置の絶対指定。カーソル位置が (x,y) に移動する。 |
\e |
| えんいー |
選択肢系
\q[title,id] |
| title で示されるタイトルを持った選択肢を表示。選択後 SHIORI に対して OnChoiceSelect イベントが発生し、id で指定された識別子がパラメータとして渡される。択一数は最大255択。 |
\q[title] |
| 第一引数 title で示されるタイトルを持った選択肢を表示。選択後第二引数 event で指定されるイベントが SHIORI にポストされる。第三引数以降は reference となる。択一数は最大255択。 |
\* |
| 次の選択肢はタイムアウトしない。 |
文字コード関連
\_u[0x0000] |
| UCS-2 コード埋め込み |
\_m[0x00] |
| ASCII コード埋め込み |
\&[id] |
| 識別子による実体参照 |
その他の実行系
\_v[filename] |
| filename で指定される wave / mp3 / wma ファイルを再生する。ファイルはゴーストのホームディレクトリに存在する必要があり、仮に絶対パスを指定しても外のファイルは取れない。ファイルが存在しなくてもエラーは出ない。 |
\_V |
| \_v で再生されたファイルの再生終了を待つ。再生されていない、もしくは既に再生が終わっている場合は無視 |
\i[id] |
| id で指定されたアニメーションパターンを発動させる。 |
\v |
| フォアグラウンドウインドウへ |
\4 |
| 現スコープのキャラクタが離れる方向に一定距離移動。主に重なり後の強制排除に使用。 |
\5 |
| 現スコープのキャラクタが接触する距離まで移動。 |
\- |
| 即座に終了 |
特殊
\m[umsg,wparam,lparam] |
| SSTP 権限のスクリプトでのみ使用可能。HWnd ヘッダにより予めセットされたウインドウハンドルに対し postmessage(hwnd,umsg,wparam,lparam) を実行する。 |
r2
\![lock,repaint] |
| 一時的に再描画を停止させる。いわゆる lock と言われるもの。セッションをまたぐ(明示的解除が必要)。 |
\![unlock,repaint] |
| 解除。 |
\![open,browser] |
| 本体側で設定されたブラウザを開く。第3引数以降はブラウザの起動パラメータとなる。 |
\![open,mailer] |
| 本体側で設定されたメーラを開く。第3引数以降はメーラの起動パラメータとなる。 |
\![open,teachbox] |
| TEACH ボックスを開く |
\![open,communicatebox] |
| COMMUNICATE ボックスを開く |
\![set,alignmentondesktop,top] |
| デスクトップ上での位置アラインメントを上端に変更。 |
\![set,alignmentondesktop,bottom] |
| デスクトップ上での位置アラインメントを下端に変更。 |
\![raise]
ユーザ定義イベントの発生。第2引数がイベント識別子、第3引数以降が reference ヘッダ。カンマはダブルクォートでエスケープできる。例示
\![raise,OnUserEvent,r0,r1,r2,r3,r4,r5,r6,r7]
\![raise,OnUserEvent,"0,100"]
\![raise,OnClose]
\![enter,passivemode]
\![leave,passivemode]
パッシブモード制御。enter で入り、leave で解除。パッシブモードは明示的に解除されるまで失効しない。
パッシブモードはシステムによる interrupt を抑制したモードであり、主にゲーム等において使用する。パッシブモードには以下のような特徴がある。
ポップアップメニューが出ない
メールチェックしない
ヘッドラインセンスしない
オートチェンジしない
選択肢がタイムアウトしない
吹き出しが時間経過で消えない
ファイルが DnD されても無視
nar ダブルクリックも無視
OnSurfaceRestoreが来ない
cantalk は常に false(OnSecondChange および OnMinuteChange 自体は来る)
コミュニケートボックスは閉じられ、また開かない
最小化できない
終了できない
パッシブモード中はイベントをチェインし SHIORI 内でメインループを形成しなくてはならない。なぜならチェインが途切れた時点で passive mode は単なる操作不能状態になるからである。
\![open,inputbox]
InputBox を開く。開いたボックスに文字列を入力し enter すると第三引数で指定されたユーザ定義イベントが発生し、reference0 に入力された文字列が返る。また何も入力しなかった場合でも limittime で示される時間が経過すると入力待ちが打ち切られ reference0 に文字列 "timeout" が返る。ただし limittime に -1 をセットした場合はタイムアウトは発生しない。limittime の単位は milli second。例示
\![open,inputbox,OnUserInput,4000]
入力待ちの間は passive かつモーダルになっており、文字列が入力されるかタイムアウトするまでユーザは他に何もできない。
\![change,ghost]
第三引数でゴーストの名前を指定することにより能動的にカレントゴーストを変更できる。指定されたゴーストが存在しない場合は何もしない。例示
\![change,ghost,さくら]
第三引数に文字列「random」を指定した場合、ランダムチェンジを行う。
第三引数に文字列「sequential」を指定した場合、シーケンシャルチェンジを行う。
いずれの場合も OnGhostChanging イベントは発生しない。
|