ゴッコあそび。

2005年5月31日
ただのメモ。

■シナリオ
■シナリオの概要
シナリオはセッション開始時に、システムシナリオからユーザシナリオに
コピーされ、以降セッションごとにユーザシナリオが進行する。

シナリオの進行は次のように行なわれる。
    ? スタート(NM = START)を実行。
    ? 次のシナリオを実行。
以降?をシナリオがシステムあるいはユーザが終了させるまで実行しつづける。

■シナリオの実行
シナリオ一行の実行は
開始トリガー(BGN)、実行トリガー(EXE)、終了トリガー(END)をこの順で
実行することで行なわれる。
それぞれのトリガーはタイムSTMPをキーとして持っており、もし同じ行の
シナリオに複数のトリガーが登録されている場合STMPの逆順(FILO)に実行される。

シナリオを実行中に変更したい場合、新しいトリガーを登録するだけである。
それは最新のタイムスタンプで登録される。

■例)シナリオ変更の例。
 下記の例はシナリオ実行中のMTG_SENARIOの一部を表示したものである。
 下記ではBGNトリガーが3つ登録されており、
 シナリオは?→?→?→?→?の順にトリガーを実行しようとする。
 (この例ではアクティブプレイヤーがnetaであったため、
 結果として?→?→?しか実行されなかった)

?’B_DW_B’,’BGN’,’20050413000000’,’gmaster’,’MTG_SENA_B_DW_BGN’
// ドローを行なわない。
// ドローを行なうトリガーを追加する。
// BGNはこれ以降は何もしない。
?’B_DW_B’,’BGN’,’20050413010000’,’gmaster’,’MTG_SENA_B_DW_DRAW’
// ドローを行なう。
// BGNはこれ以降は何もしない。
?’B_DW_B’,’BGN’,’20050413010200’,’Fatigue’,’MTG_CNEF_Fatigue’
// アクティブプレイヤーが’neta’の場合、
      //  ドローをスキップし、自分自身を削除するトリガー
// (MTG_UTIL_DELETE_CNEF(’Fatigue’,@STMP)を呼び出す。
// BGNはこれ以降は何もしない。
// アクティブプレイヤーがそれ以外の場合、
// 次のBGNトリガーを実行する。
?’B_DW_B’,’EXE’,’20050413000000’,’gmaster’,’MTG_SENA_B_DW_EXE’
// 領域=Continuous Effectにぶら下がるCIDで’B_DW_B’プロパティを持つ
// トリガーを検索しPID順にスタック。StackWaitに入る。
?’B_DW_B’,’END’,’20050413000000’,’gmaster’,’MTG_SENA_B_DW_END’
// 次のシナリオ(B_DW_W)を実行する。

コメント

お気に入り日記の更新

最新のコメント

この日記について

日記内を検索