Modスクリプト:基本的な例

この『クックブック』には、初めての方でもすぐに始められるような簡単なスクリプトの例がいくつか掲載されています。ぜひこれらを自由に活用し、ご自身のキャンペーンに合わせてアレンジしてください。また、「Mod Scriptsフォーラム」もあり、そこでModスクリプトについて議論したり、自分のスクリプトをコミュニティと共有したりすることができます。

血まみれおよび死亡のステータスマーカー

(寄稿:ケン・バウアー)

このスクリプトは、HPが半分以下になったコマには「血まみれ」状態を表す赤いマーカーを、HPが0以下になったコマには「死亡」マーカーを自動的に付与します。健康値はゲージ1に保存されているものと想定されています。

on("change:graphic", function(obj) {
  if(obj.get("bar1_max") === "") return;

  if(obj.get("bar1_value") <= obj.get("bar1_max") / 2) {
    obj.set({
      status_redmarker: true
    });
  }
  else {
    obj.set({
      status_redmarker: false
    });
  }

  if(obj.get("bar1_value") <= 0) {
    obj.set({
      status_dead: true
    });
  }
  else {
    obj.set({
      status_dead: false
    });
  }
});

闇が迫りつつある…

このスクリプトは、コマが移動するたびに、そのコマの光の半径を10%縮小します。「ランプの油が切れる」といった状況や、同様の過酷な状況をシミュレートするのに最適です。

on("change:token", function(obj, prev) {
  //実際に移動した場合のみ、この処理を実行する。
  if(obj.get("left") == prev["left"] && obj.get("top") == prev["top"]) return;

  obj.set({
    light_radius: Math.floor(obj.get("light_radius") * 0.90)
  });
});

プレイヤーまたはキャラクターとしてsendChatを実行する

(寄稿:ブライアン・シールズ)

このスクリプトには、チャット:messageイベントスクリプト内で使用できる数行のコードが含まれており、イベントをトリガーした対象がプレイヤーかキャラクターかによって、sendChat メソッドを適切に呼び出してメッセージを送信できるようにします。

on("chat:message", function(msg) {
  var message = '';
  // `message` の内容を判定する
  var characters = findObjs({_type: 'キャラクター'});
  var speaking;
  characters.forEach(function(chr) { if(chr.get('name') == msg.who) speaking = chr; });

  if(speaking) sendChat('キャラクター|'+speaking.id, message);
  else sendChat('プレイヤー|'+msg.playerid, message);
});
この記事は役に立ちましたか?
89人中72人がこの記事が役に立ったと言っています