ゴッコあそび。
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)を実行する。
■シナリオ
■シナリオの概要
シナリオはセッション開始時に、システムシナリオからユーザシナリオに
コピーされ、以降セッションごとにユーザシナリオが進行する。
シナリオの進行は次のように行なわれる。
? スタート(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)を実行する。
コメント