Mano 反撃設定 - Mano_AfterCounter.js
▼Mano 反撃設定(しぐれん様作) - Mano_AfterCounter.js
https://plugin.fungamemake.com/archives/1902
相手の行動後に、条件を満たしたスキルを発動し反撃する。カウンター行動
ふりがな:はんげきせってい
機能概要: 相手の行動後に、条件を満たしたスキルを発動し反撃する。カウンター行動
利用規約(ライセンス): MITライセンス
作者:しぐれん
作者サイト:https://siguren400.booth.pm/
解説ページ:https://forum.tkool.jp/index.php?threads/132/
ダウンロードページ:https://raw.githubusercontent.com/Sigureya/RPGmakerMV/m…
ファイル名:Mano_AfterCounter.js
プラグインのヘルプ:
/*: * @plugindesc 攻撃を受けた後に、スキルを使います。 * 条件式や反撃時の行動も設定できます。 * @author しぐれん(魔のささやき) * * @param enabledCounter * @desc カウンター機能を有効化します。 * @type boolean * @default true * * @param enabledChain * @desc 連続攻撃機能を有効化します。 * @type boolean * @default true * * @param counterTag * @desc カウンターの条件設定に使うタグ名を指定します。 * @default CounterExt * * @param chainTag * @desc 連携攻撃の条件設定に使うタグ名を指定します。 * @default chain * * @param counterMessage * @desc 反撃による行動の時に、挿入する文章を設定します。 * 空欄の場合、何もしません。 * @default 反撃! * * @param chainMessage * @desc 連携による行動の時に、挿入する文章を設定します。 * 空欄の場合、何もしません。 * @default 追撃! * * @param DefinableAmmount * @type number * @desc CounterExt5などで、設定できる最大数を設定します。 * @default 10 * * * * @help * * パラメータは、デフォルトでは以下の形になっています。 * <CounterExt: * cond = 'true' #発動条件 * rate = 100 #発動率 * prio = 0 #優先度(複数のカウンターがあるとき、もっとも高い物だけ実行) * skill = 1 #使用するスキル * mode = target #攻撃対象にならなかった時に判定するか * event = 0 #判定直前に呼び出すコモンイベント * > * * 複数の条件を設定したい場合、「CounterExt3」など、 * 数字を付けて対応してください。 * 1からDefinableAmmountで指定した数まで対応しています。 * * パラメータごとに改行してください。 * <chain:※条件指定>で味方が行動した後に行動する連携攻撃が可能となります。 * ■cond * JavaScriptによる条件文を定義します。 * 比較演算子は以下のものが使用可能です。 * (>は使用できません) * X===Y :XとYが等しい。 * X!==Y :XとYが等しくない。 * X < Y :XがY未満。 * X <=Y :XがY以下。(X>=Yは使えないので、左右を逆にして対応してください) * X >=Y → Y<=X この方法で対応可能。 * * 条件文内部では以下の変数が参照できます。 * act : Game_actionが格納されます。 * elementID: 属性番号が格納されます。 * a : カウンター使用者。 * b : 攻撃してきた相手。 * skillID : スキルのID。敵の行動がスキルでない場合は0。 * itemID : アイテムのID。敵の行動がアイテムでない場合は0。 * * ■rate * 反撃率を定義します。 * 特徴の「反撃率」とほぼ同様です。 * デフォルトの反撃率設定はすべて無視します。 * * 反撃率の判定は、カウンター条件全てで個別に行われます。 * 一つ目のカウンターが反撃率判定で失敗しても、 * 残りのカウンターの判定は行われます。 * * ■skill * カウンター時に使用するスキルを設定します。 * Nもしくはv(N)の形式で指定します。 * (Nは整数) * v(N)の場合、変数からスキル番号を取り出します * * ■prio * 優先順位を定義します。 * 複数の反撃条件が同時に満たされた場合、最も優先度の高いものが実行されます。 * ※初期版ではpriolityで指定していましたが、長いので省略。 * priolityでも動きますが、いずれ削除します。 * * ■mode * use,target,hitの3つから指定できます。 * useは条件を満たすスキルが使用されたときに発動します。 * targetは、条件を満たすスキルの攻撃対象になったときに発動します。 * hitは、条件を満たすスキルが自分にヒットしたときに発動します。 * * ■event * カウンターの判定処理の前にコモンイベントを呼び出します。 * タイミングはrateでの乱数判定がtrueになったあとで、 * condで指定した条件式の判定前に呼び出します。 * 「this.変数」の形式で以下の変数が使用できます。 * 指定したコモンイベントが呼び出した別のコモンイベントではこれらを参照できません。 * a :攻撃を受けたBattler。 * b :攻撃を行ったBattler。 * counter :Counterクラス。詳細はプラグインを見てください。 * act :相手の行った行動。 * * ■サンプル * 魔法に対して50%で反撃。スキルを指定していないので、通常攻撃で反撃。 * <CounterExt: * cond = act.isMagicSkill() * rate = 50 * > * 魔法に対してID9のスキルで反撃。 * <CounterExt: * cond = act.isMagicSkill() * skill = 9 * > * 魔法に対して変数1番で定義したIDのスキルで反撃。 * <CounterExt: * cond = act.isMagicSkill() * skill = v(1) * > * 自分のHPが50%を下回ると反撃。 * <CounterExt: * cond = a.hpRate() < 0.5 * > * 自分のHPが50%を下回っている時に、魔法を受けると反撃。 * <CounterExt: * cond = a.hpRate() < 0.5 && act.isMagicSkill() * > * 属性番号2に対して反撃。 * <CounterExt: * cond = elementID === 2 * > * スイッチ[1]がONの時に反撃。 * <CounterExt: * cond = s(1) * > * 変数[1]が100の時に反撃。 * <CounterExt: * cond = v(1)===100 * > * クリティカルヒットを受けたときに反撃 * ※実装ミスにより、機能していません * ごめんなさい * <CounterExt: * cond = result.critical * > * * 番号8のスキルに対して反撃。 * <CounterExt: * cond = skillID === 8 * > * * 番号9,12,20のスキルに対して反撃 * <CounterExt: * cond = [9,12,20].contains(skillID) * > * 上記の二つのskillIDをitemIDにすると、 * 特定の番号のアイテムに反応するようになります。 * * コモンイベント[1]で処理を行い、スイッチ[5]番がONの時に反撃 * <CounterExt: * cond = s(5) * event = 1 * > * * アイテムを使用したときに反撃。 * 「アイテムなぞ使ってんじゃねえ!」byバ〇バトス(TOD,TOD2) * <CounterExt: * cond = itemID !== 0 * mode = use * > * * ■追撃設定 * 味方の行動後に、別のアクターが追撃するような設定ができます。 * 設定方法はカウンターと同様です。 * こちらもchain3など番号を書くと複数指定できます。 * aはスキルを使用するアクター、bは追撃元になるスキルを使ったアクターです。 * * 味方がスキル9を使ったときに、スキル5を使って追撃 * <chain: * cond = skillID ===9 * skill=5 * > * 味方が属性3のスキルを使ったときにスキル5で追撃 * <chain: * cond = elementID===3 * skill=5 * > * * 自身がステート6でない時に追撃 * <chain: * cond = !a.isStateAffected(6) * > * 味方がステート6の時に追撃 * <chain: * cond = b.isStateAffected(6) * > * * * * ■その他 * スキルやアイテムに<CanNotCounter>タグを指定することで、 * カウンターされないスキルが作れます。 * * スキルのダメージ式に、 * this.isCounter()と書くことでそのスキルがカウンターによる発動かチェックできます。 * 例:カウンター発動時は500、そうでないときは100ダメージを与えるスキル。 * this.isCounter() ? 500:100 * * ■更新履歴 * ver 1.0.0(2017/07/17) * 公開後目立ったバグ報告がないので1.0にバージョンを格上げ。 * また、味方の攻撃に連携できる機能を暫定的に追加。 * * ver 0.9.4(2017/06/11) * ヒットした時のみカウンターするmode = hitを追加。 * ※後日バグ修正 * その他、細かい修正。 * * ver 1.0.0(2018/07/06) 本来発動しないタイミングでカウンターが動いていたのを修正 * ver 0.9.3(2017/05/27) * 優先度が機能していなかったバグを修正 * ver 0.9.2(2017/05/21) * コモンイベント呼び出し機能を追加。 * <CanNotCounter>で、カウンターされないスキルが作れる機能を追加。 * elementIDに統一。 * priorityは長くて面倒だったので、prioで動くように修正 * condのaとbが逆になっていたのを修正。 * エラー発生時に、どこに原因があるか見つけやすいように修正。 * mode=targetの処理が正しく機能していなかったのを修正。 * ver 0.9.1(2017/05/19) バグ修正とヘルプの修正 * ver 0.9.0(2017/05/19) 公開 */ /** * TODO * ステートカウンター * ステートが発生した時、カウンター * 行動開始時に監視候補をリスト化し、発生したのをチェックする * <StateCounter: * state = 1 * > */