コンテンツにスキップ

SKIP系

関数名 引数 戻り値
SKIPDISP int なし
NOSKIP なし なし
ENDNOSKIP なし なし
ISSKIP なし int
MOUSESKIP なし int
MESSKIP なし int

API

SKIPDISP bool
NOSKIP
ENDNOSKIP
int ISSKIP
int MOUSESKIP
int MESSKIP
PRINT等の画面出力命令およびWAIT、TWAITなどの制御に関する命令群です

  • SKIPDISP <数値>
    • 引数:0 = 無視しないようにする
      • 0以外 = 無視するようにする
    • 内容:このフラグを立てると、PRINT等の出力が一切行われなくなる
      • また、このフラグが立ってる間にINPUTおよびINPUTSに達した場合は
      • ユーザーが何をすればいい知る術がないこと、また飛ばせば無限ループに入る可能性が高いため
      • 警告文と対処法を明示した上でエラーになるようにしてあります

今一般に使われる口上の実装では口上の非表示が可能な場合、
表示と非表示でコマンドの結果が変わったり、動作が変わってしまう場合がある
そこで、これを立てた上で口上を呼び出せば、表示はされることなくそれ以外の処理が行われるため
表示/非表示で同じ動作を期待できる
INPUT/INPUTSがかぶる場合は下記のNOSKIP~ENDNOSKIPで囲んだり、
SKIPDISP 0しておいて、INPUT処理後に再度SKIPDISP 1するなりの対策があります(一応前者推奨)
ちなみに今無視するフラグが立ってるかはISSKIPで取得できます
ver1.808から、SIF文の直後に置いても動作するようになりました。 なお、SKIPDISPを使用すると引数に関係なくRESULT:00にリセットされますが仕様となります。

NOSKIP~ENDNOSKIPは表示関係無視フラグを無視する区間を指定できます
この2つで囲った区間はSKIPDISP 1の状態でも表示等される
主にINPUTが必要な場合に使用するとよい
また、この命令はSKIPDISPの状態に影響しないので、
SKIPDISPフラグが立ちうる環境下のコード(例えば表示/非表示のある口上関係)では
これを使うと、絶対に表示する必要がある場所をきちんと表示できるようになります

ISSKIPSKIPDISPのフラグが0以外(PRINT等の出力を無視)なら1を、そうでなければ0RESULT:0に代入もしくは返します

MOUSESKIPはEmuera1.810でMESSKIPに統合されました。
MESSKIPを使用してください。
この関数はかつて以下のような処理をしていました。

右クリックが押されてWAITスキップの状態になっているなら1を、そうでなければ0を返します
マクロ処理時のスキップ中は0を返します。
マクロ処理のスキップと右クリックが競合した場合はマクロを優先し0を返します
現在ではEscキーによるスキップと右クリックによるスキップを区別せずに1を返します。

MESSKIPWAITスキップの状態になっているなら1を、そうでなければ0を返します

ヒント

ISSKIPMOUSESKIPMESSKIPは式中関数対応しています。