APIイベント

対応できるイベントにはいくつかの種類がある。 一般的に、オブジェクトの各タイプには、変更、追加、削除に対応するイベントがある。 各イベントは、変更されたオブジェクトごとに1回トリガーされる。 オブジェクト上の複数のプロパティが同時に変更された場合、1つの "グローバル "イベント(change:graphicなど)のみがトリガーされる。


コールバック・パラメータ

イベントをリッスンすると、コールバックと呼ばれる関数が作成され、イベントが発生したときに実行される。 コールバック関数はいくつかのパラメーターを受け取る。これは、そのイベントに関して知りたい情報を教えてくれるオブジェクトであり、何をすべきかを決めるためのものである。

各イベントのコールバック・パラメーターは異なるが、以下のようなものがある:

オブジ

変更されたオブジェクト。 このオブジェクトに加えた変更は、ゲームにも保存されます。 つまり、グラフィック・オブジェクトを左に移動させたい場合は、オブジェクト・ セットの leftプロパティを変更することになる。

  • obj.get("property") は、プロパティの現在の値を返します。
  • obj.set("property", "newvalue") は、プロパティに新しい値を設定します。 一度に複数のプロパティを変更する場合は、オブジェクトを渡すことができます:obj.set({left: 10, top: 20});


これは、このイベントによって変更が加えられる前の、objのプロパティのオブジェクトである。 物件が「どの程度」変化したかを判断するのに便利。

注:これは基本的なオブジェクトなので、set関数やget関数を使わず、prev["bar1_value"]というブラケット-ノテーションを使ってプロパティにアクセスする。


イベントのご注文

イベントは、ファーストバウンドからラストバウンドへ、また特定のプロパティから一般的なオブジェクトへと順番に、同期的に発生する(つまり、前の関数が終了するまで、各関数は開始されない)。 つまり、次のようになる:

on("change:graphic", function1);
on("change:graphic", function2);
on("change:graphic:left", function3);

オブジェクトのleftプロパティが変更された場合は、function3、function1、function2の順になる。

また、キャンペーンに複数のスクリプトがある場合、スクリプトはキャンペーンスクリプトページに表示されるのと同じ順番(左から右)で読み込まれます。

注:イベントは、ゲームをプレイしているプレイヤーやGMによる変更によってのみ発生します。 APIの変更によってイベントがトリガーされることはない。 つまり、プレイヤーが卓上の駒を動かすと、"change:graphic "イベントを受け取ることになる。 同じグラフィックのプロパティをMOD(API)スクリプトで変更しても、"change:graphic "イベントは発生しません。


キャンペーン・イベント

レディ

このイベントは、キャンペーンの現在のデータがすべてロードされた後に発生します。 従って、キャンペーン内の全オブジェクトのリスト、またはすでにキャンペーン内にある特定のオブジェクトを探したい場合は、必ずreadyイベントが発生した後に探してください。 さらに、readyイベントが発生する前にaddイベント(add:graphicなど)にバインドすると、キャンペーンにすでに存在するオブジェクトのaddイベントを受け取ることになります。

on("ready", function() {
  var tokenThatAlreadyExisted = getObj("graphic", "-ABc123");
});

変更:キャンペーン:プレーヤーページID

プレーヤーが現在いるページが変更されるたびに実行されます。

チェンジ:キャンペーン:ターンオーダー

キャンペーンのターンオーダーリストが変更されるたびに発射される。

変更:キャンペーン:イニシアティブページ

ページの順番が非表示または表示されるたびに発生する。 これは現在アクティブなページのIDと同じではないかもしれない。 これがfalseに設定された場合(MOD(API)スクリプトがfalseに設定した場合も含む)、すべてのGM/プレイヤーのターンオーダーを閉じます。 有効なページIDに設定すると、すべてのGM/プレイヤーに公開されます。


オブジェクト・イベント

変更:グラフィック

グラフィック・オブジェクト(トークン、マップ、カードなど、卓上にあるほとんどすべての種類のオブジェクトを指す)が変化するたびにトリガーされる。

注:APIで作成されたGraphicオブジェクトは、作成時にこのイベントをトリガーする。

コールバックのパラメータ: obj, prev

on("change:graphic", function(obj, prev) {    
  //ここで "obj "に何かをする。 「prev」は以前の値のリストである。
  // obj "と "prev "は異なるタイプのオブジェクトであることに注意。 
  // obj を操作するには obj.get("name");
  // prev を操作するには prev["name"];
});

変更:グラフィック:(プロパティ)

また、オブジェクトの特定のプロパティごとにイベントにバインドすることもできる。 だから、回転が変わったときだけ実行したいスクリプトがあれば、そうすることになる:

on("change:graphic:rotation", function(obj, prev) {    
  //常に回転を0に戻すので、誰もオブジェクトを回転させることができません。    
  obj.set("rotation", 0);
});

グラフィック

グラフィックオブジェクトが初めて卓上に追加されるたびにトリガーされる。 readyイベント以外でこのイベントにバインドすると、テーブルトップが起動したときに既存のオブジェクトにもコールされる。

コールバック・パラメータ: obj

on("add:graphic", function(obj) {
  //プレイセッション開始時にすでに存在していたものも含め、すべての新しいグラフィックに対して呼び出されます。
});

var started = false;

on("ready", function() {
  on("add:graphic", function(obj) {
    //既存のオブジェクトはreadyイベントが発生する前にすでにロードされているので、追加される新しいオブジェクトに対してのみ呼び出される。
  });
  //変数をセットして、それがtrueになるまで追加イベントを無視することもできる。
  started = true;
});

グラフィック

グラフィックオブジェクトが卓上から取り除かれたときにトリガーされる。

コールバック・パラメータ: obj

その他のオブジェクト・タイプ

また、他のすべてのオブジェクトタイプ、および以下のようなサブタイプのイベントもある:

変更:パス、追加:パス、破棄:パス、変更:テキスト、追加:テキスト、破棄:テキスト、変更:トークン、追加:トークン、破棄:トークン、変更:カード、追加:カード、破棄:カード

参照 オブジェクト・リファレンスを参照してください。

この記事は役に立ちましたか?
15人中12人がこの記事が役に立ったと言っています