私は、敵と味方関係なく全対象を50%の確率で攻撃する敵を作っていますが、自身にはダメージを与えたくないのです。スキルに共通イベントを追加することで、味方を攻撃させることはできたのですが、まだ自身にもダメージを与えてしまいます。
もう少し詳しく説明すると、より好ましいオプションとして、特定の攻撃に対して無効化するような新しいクラスなどを与えるにはどうすればよいでしょうか?
味方を傷つける攻撃の部分では共通イベントを使用しているので、そこで分岐条件を設定することも可能かもしれませんが、すでに「強制的な行動」の仕組みについてはあまり詳しくありません。
VX Aceでは敵にクラスがないように見えますが、敵タブ内の各敵には独自の特性リストがあるため、属性で無効化処理を行うことができます。用語タブで新しい属性(Chaosのようなもの)を追加し、味方を攻撃するスキルの属性として設定してください。その後、この敵に耐性(抵抗)の下にあるChaos属性に対する属性倍率特性(0%)を与えます。
注意すべき点は、その敵のすべての個体が無効化効果を得てしまうため、1つの部隊に2体いる場合、互いにダメージを与えられなくなるという点です。これが問題になる場合、スキルのダメージ計算式で使用者を確認するというのはどうでしょうか? a は使用者、b は対象であり、以下の式では自身が対象になった場合のみヒットをゼロにします:
a == b ? 0 : a.atk * 4 - b.def * 2
0 : の後ろの部分を、そのスキルがすでに使用している計算式に置き換えてください。どちらの場合でも、対象リストには含まれたままなので、バトルログでは「0ダメージ」と表示されます。
重ね重ねありがとうございます。実は、敵キャラをそれに対して無敵にする、という当初の計画のままにしておくことにします。言い忘れていましたが、これでパーティに2体配置しても互いにダメージを与え合わなくなります。
実際のところ、この敵のスキルの話題を続けると、味方を攻撃するスキルを発動させる共通イベントについてですが、バトル中にスキルを使う敵を、単なる最初の敵ではなくするようにするにはどうすればよいですか?
例えば、味方を攻撃する敵が2体いて、1体目が倒れた場合、スキルを使う敵がいなくなってしまいます。また、1体目の敵がカオス系の敵でない場合もあります。
変数を使って敵のIDを取得することを考えましたが、共通イベント内でそれをどのように使えばよいかわかりません。
共通イベントは、スキルを使ったのが誰かを把握していませんが、ダメージ計算式なら把握できるため、計算式内で使用者の部隊内位置(インデックス)を変数に保存することができます。共通イベントを発動させるスキルでは、次のように記述します(変数10はあくまで例で、空き変数なら何番でも構いません)。
v[10] = a.index; a.atk * 4 - b.def * 2
独自の計算式は末尾に残してください。部隊の最初の敵は0、2番目は1というように数えます。その後、共通イベント内で各値に応じた条件分岐を追加します。変数10が0なら敵#1に強制行動を実行し、1なら敵#2に実行します。これらは、部隊に配置可能な敵の数だけ繰り返します。倒れた敵も部隊内での位置(番号)は保持されるため、敵が倒れても番号がずれることはありません。
計算式は、スキルがダメージを与えた場合にのみ実行されるため、そのスキルのダメージタイプが「なし」に設定されている場合、この方法は機能しないと思われます。