YEPシリーズ

日本語パッチ YEP Battle A.I. Core プラグイン Ver1.15

こちらは「敵の戦闘AIをカスタマイズできるプラグイン」です。

プラグイン本体は 下記ページで英語版が配布されています。
www.yanfly.moe/wiki/Battle_A.I._Core_(YEP)

本体プラグインと日本語パッチをダウンロードして、パッチを貼ってください。

パッチの貼り方は下記記事を参考にしてください。
fungamemake.com/archives/5167

類似機能のプラグイン

どなたかのお役に立てば幸いです。

/*:ja
 * @plugindesc v1.15 敵の戦闘AIをカスタマイズできます。
 * @author Yanfly Engine Plugins
 *
 * @param Dynamic Actions
 * @text 行動決定タイミング
 * @type boolean
 * @on 行動時
 * @off ターン開始時
 * @desc 敵の行動を決定するタイミング
 * ターン開始時:false / 行動時:true
 * @default true
 *
 * @param Dynamic Turn Count
 * @text ターンカウント
 * @type boolean
 * @on 通常ターン+1
 * @off 通常ターン
 * @desc ターンカウントの変更
 * 通常ターン+1:true / 通常ターン:false
 * @default false
 *
 * @param Element Testing
 * @text 属性認識
 * @type boolean
 * @on テスト認識
 * @off 自動認識
 * @desc 敵の行動判断での属性認識
 * 自動認識:false / テスト認識:true
 * @default true
 *
 * @param Default AI Level
 * @text デフォルトAIレベル
 * @type number
 * @min 0
 * @max 100
 * @desc 敵デフォルトのAIレベル
 * Level 0:ランダム / Level 100:厳格
 * @default 80
 *
 * @help
 * 翻訳:ムノクラ
 * https://fungamemake.com/
 * https://twitter.com/munokura/
 *
 * ===========================================================================
 * 導入
 * ===========================================================================
 *
 * RPGツクールMVにおいて敵のデフォルトAIは、
 * レートとスイッチ設定をしたとしても少々退屈な行動をとりがちです。
 * デフォルト時には、敵が対象を選ぶルールは変更できず、
 * また、単純な条件照合のような行動決定しか行われませんでした。
 * このプラグインでは、
 * 条件や行動、敵の選ぶ対象などについての優先度の一覧を作成し、
 * 敵がどのように戦うかをカスタマイズすることができます。
 *
 * デフォルトのコンディションに加えて、行動を取る前に対象能力値の決定や、
 * 対象の弱点属性(又はその逆)の認識を、行わせることが出来ます。
 * 更に、敵のAIレベルを指定することで、戦闘スタイルを統一されたものにしたり、
 * 逆にランダムなものに設定することもできます。
 *
 * ===========================================================================
 * プラグインパラメータ
 * ===========================================================================
 *
 * Dynamic Actions
 * デフォルトでは、敵の行動はターン開始時に決定されますが、
 * このDynamic Actionsを有効にすると、敵の行動時に決定がなされます。
 * これにより敵の行動をより柔軟なものにし、賢く見せることができます。
 * 同時に、プレイヤーにとっては新たな試練となるでしょう。
 *
 * Element Testing
 * これを無効化すると、敵は対象の弱点属性や、抵抗力のある属性などを、
 * 自動的に認識できるようになります。
 * 有効にすると、敵は行動決定の前にアクターに対して
 * スキルのテスト攻撃を行うようになります。
 * アクターの属性有効度を理解するまでは、
 * 敵は常に対象アクターに対してスキルを試そうとします。
 * もしスキル自体が属性がない場合、何の情報も記録されません。
 * 敵グループのデータは、各戦闘の最初に毎回リセットされます。
 *
 * Default AI Level
 * 全ての敵が賢いというわけなく、愚鈍だったりランダムなだけなものも居ます。
 * 敵のAIレベルを低く設定するとよりランダムに、
 * 高く設定すると、行動により一貫性を持たせることができます。
 * まずランダムな番号が0から99の間で決定され、敵のAIレベルがそれよりも高い場合
 * その行動について、条件が満たされるかどうか照合されます。
 * AIレベルの方が低い場合、条件には合致していないものと自動的にみなされ、
 * 次の行動に移ります。
 * この条件照合は、新しい行動が確認された際には毎回行われます。
 * また、このランダム要素は <AI Priority>の一覧のみに適用され、
 * デフォルトの行動には適用されません。
 *
 * ===========================================================================
 * 敵のAIレベル
 * ===========================================================================
 *
 * 敵のAIレベルは、それを倒す難しさを表すものではなく、
 * どのくらい厳密に <AI Priority> の一覧に従うかを表すものです。
 * 例えばAIレベルが80の時、その敵は80%の確率で、
 * <AI Priority> 一覧に従った行動を起こします。
 * そして再度、80%の確率で次の行動を起こし、それを繰り返します。
 * AIレベルが低いということは、その確率も低いということになるため、
 * その敵の行動は、よりランダムなものとなります。
 *
 * 敵のメモタグ:
 *   <AI Level: x>
 *   敵のAIレベルを x に設定します。 x を低くすると、
 *   敵の行動がよりランダムになります。
 *   x を高くするほど、AI Priority一覧に厳密に従って行動するようになります。
 *
 * ===========================================================================
 * 敵のAI優先度
 * ===========================================================================
 *
 * 敵がAI優先順位一覧がある場合、敵はその一覧を上から下の順で参照し
 * 条件が満たされている行動を探します。(上にあるほど優先順位が高くなります)
 * もしその行動条件が満たされていれば、敵はその行動を取ります。
 *
 * 敵の優先順位一覧を設定するには、
 * 敵のメモ欄に次の形式に一致するタグを配置する必要があります。
 *
 *   <AI Priority>
 *    condition: スキルIDx, target
 *    condition: スキルIDx, target
 *   </AI Priority>
 *
 *   または
 *
 *   <AI Priority>
 *    condition: スキル名, target
 *    condition: スキル名, target
 *   </AI Priority>
 *
 * 条件やスキルをいくつでも<AI Priority>のタグ間に置くことができます。
 * スキルIDかスキル名、好きなほうを使用することができます。
 * スキル名を使用する場合で、作成したデータベースに同じスキル名がある場合、
 * 大きい方のスキルIDが参照されることに注意してください。
 *
 * ===========================================================================
 * 条件
 * ===========================================================================
 *
 * 下記は、ステートに応じたスキルを敵に選択させる方法の一覧です。
 * スキルが使われるか否かの決定に加え、条件で対象を決定させます。
 * 下記の一覧では、どのように条件分岐が行われ、
 * どのように対象が選ばれるかということについて記載しています。
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 * ALWAYS
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 常に満たされている条件分岐です。
 * 対象範囲内の全ての対象に対し効力があります。
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Always: Skill 10, Lowest HP%
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 * Element X case
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 属性X('X'の代わりに番号または属性名)の属性有効度を一致させて、
 * 行動条件が満たされているかどうかを確認できます。
 * 'case'を通常の属性有効度(110%以下かつ90%以上)の場合は 'Neutral'、
 * 100%属性有効度を超える場合は 'Weakness'、
 * 100%属性有効度を下回る場合は 'Resistant'、
 * 0%属性有効度を示す場合は 'Null'、
 * 0未満の場合は 'Absorb'と置き換えてください。
 * 有効な対象は、一致する属性有効度を持つものになります。
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Element Fire Weakness: Fireball, Lowest HP%
 *       Element Water Resistant: Water Cancel, Highest MAT
 *       Element 4 Null: Earthquake, Lowest MDF
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 * EVAL eval
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * どのようなコードでも、それを用いて条件を確認し、実行が可能になります。
 * この条件は、スキルの対象範囲内の全ての生存メンバーを
 * 有効な対象として扱います。
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Eval user.name() === 'Bat A': Skill 10, Highest HP%
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 * group ALIVE MEMBERS eval
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 'group'をプレイヤーパーティの'party'/敵グループの'troop'と置き換えます。
 * プレイヤーパーティ/敵グループの生存メンバー数で
 * 条件を満たすか照合を行います。
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Party Alive Members > 2: Skill 10, Lowest HP%
 *       Troop Alive Members <= 4: Skill 11, Highest HP%
 *       Troop Alive Members === $gameVariables.value(3): Skill 12, Random
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 * group DEAD MEMBERS eval
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 'group'をプレイヤーパーティの'party'/敵グループの'troop'と置き換えます。
 * プレイヤーパーティ/敵グループの死亡メンバー数で
 * 条件を満たすか照合を行います。
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Party Dead Members > 2: Undead, Highest ATK
 *       Troop Dead Members <= 4: Life, Highest ATK
 *       Troop Dead Members === $gameVariables.value(3): Skill 12, Random
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 * stat PARAM eval
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 'stat'を'atk', 'def', 'mat', 'mdf', 'agi', 'luk',
 * 'maxhp', 'maxmp', 'hp', 'mp', 'hp%', 'mp%', 'level' に置き換えて、
 * その行動の条件照合を行います。
 * 照合が行われるグループは、スキル対象範囲に基づいています。
 * もし敵をスキルの対象にした場合、
 * 全ての敵が、条件を満たすか否かの確認を受けることになります。
 * これはプレイヤーパーティメンバーに対しても同様に行われます。
 * この条件照合をパスした者だけが、有効な対象となります。
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   HP% param <= 50%: Heal, Lowest HP%
 *       MP param > 90: Mana Drain, Highest MP
 *       ATK param > user.atk: Power Break, Highest ATK
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 * type PARTY LEVEL eval
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 'type'を'highest', 'lowest', 'average'に置き換えて、
 * スキル範囲の決定のため、それぞれのパーティレベルを取得します。
 * またこの時のレベルとは、パーティ全体のレベルを指し示すものです。
 * この条件が満たされた場合、全ての対象が有効な対象となります。
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Highest Party Level > 10: Skill 10, Lowest MP%
 *       Lowest Party Level < 12: Skill 11, Lowest HP%
 *       Average Party Level > 15: Skill 12, Highest HP%
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 * RANDOM x%
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 条件を、ランダムな x %の確率に基づかせるように変更できます。
 * この条件は、可能性のある全ての対象を有効な対象とみなします。
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Random 50%: Skill 10, Lowest HP%
 *       Random 75%: Skill 11, Highest HP%
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 * STATE === state x
 * STATE === state name
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 対象範囲内の対象が x ステートかどうかを検出します。
 * (ステート名を使っている場合はその名前で検出)
 * そうである場合、その対象は有効対象のプールに追加されます。
 * ステートに影響を受けていない対象は全て無視されます。
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   State === State 5: DeBlind, Highest ATK
 *       State === Knockout: Life, Random
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 * STATE !== state x
 * STATE !== state name
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 対象範囲内の対象が x ステートを保持していないかを検出します。
 * (ステート名を使っている場合はその名前で検出)
 * 保持していない場合、その対象は有効対象のプールに追加されます。
 * ステートに影響を受けていない対象は全て無視されます。
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   State !== State 12: Haste, Random
 *       State !== Courage: Cowardice, Highest ATK
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 * SWITCH X case
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 'x'を確認するスイッチのIDに置き換えます。
 * 'case'を'on'/'off'のいずれかに置き換えます
 * ('true'/'false'を使用することもできます)。
 * スイッチがケースに一致する場合、条件が満たされ、
 * 全てのスキル対象が有効な対象になります。
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Switch 5 On: Skill 10, Lowest HP%
 *       Switch 6 Off: Skill 11, Highest HP%
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 * TURN eval
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * ターンカウントに基づく条件を eval で実行することができるようになります。
 * この条件は、可能性のある全ての対象を有効な対象とみなします。
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Turn > 3: Skill 10, Lowest hp%
 *       Turn === 4: Skill 11, Highest hp%
 *       Turn <= $gameVariables.value(2): Skill 12, Random
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 * USER stat PARAM eval
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 'stat'を 'atk'、'def'、'mat'、'mdf'、'agi'、'luk'、'maxhp'、'maxmp'、
 * 'hp'、'mp'、'hp%' 、'mp%'、'level'のいずれかに置き換えます。
 * 行動できるか条件確認を実行します。
 * 使用者の能力値が条件に一致すると、行動確認が完了します。
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   User HP% param <= 50%: Heal, Lowest HP%
 *       User MP param > 90: Mana Drain, Highest MP
 *       User ATK param > user.atk: Power Break, Highest ATK
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 * VARIABLE X eval
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 変数 x の値で、条件を満たすかどうか確認します。
 * そうである場合、全てのスキル対象が有効な対象となります。
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Variable 3 > 10: Skill 10, Lowest HP%
 *       Variable 5 <= 100: Skill 11, Highest HP%
 *       Variable 2 === user.atk: Skill 12
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 *
 * ===========================================================================
 * 複数の条件
 * ===========================================================================
 *
 * バージョン1.11から、Battle A.I. Coreの現在複数の条件をサポートしています。
 * 複数の条件を設定するには「条件: スキルID, 対象」の形式に従います。
 *
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 *
 * 複数の条件を追加するには、次の例のように各条件の間に+++を挿入するだけです。
 * 例:
 *
 *     Switch 1 on +++ Switch 2 on: Fire, Lowest HP%
 *     Turn 3 > 1 +++ Variable 5 <= 100 +++ Switch 3 on: Ice, Lowest HP%
 *     Random 50% +++ Highest Party Level > 50: Thunder, Highest HP%
 *
 * 上記の例で選択したスキルを使用するには、全ての条件を満たす必要があります。
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 *
 * 厳密な対象グループがある条件の場合、
 * 対象グループは全ての対象グループの組み合わせになります。
 * 例:
 *
 *     STATE === Blind +++ STATE === Fear: Dark, Lowest HP%
 *
 * この例では、敵は'Blind'と'Fear'の両方の影響を受けている対象に対してのみ
 * 'Dark'スキルを使用します。 複数の目標がある場合、
 * 最も低いHP%を持つ目標が敵が'Dark'で狙う目標になります。
 *
 *     STATE !== Blind +++ ATK param >= 150: Darkness, Highest ATK
 *
 * 上記は、敵は'Blind'ではなく、少なくとも150のATK能力値を持つ対象に対して
 * 'Darkness'スキルを使用します。
 * 複数の対象がある場合、敵は最も高いATKを持つ対象に'Darkness'を唱えます。
 *
 * ===========================================================================
 * 対象選択
 * ===========================================================================
 *
 * これはオプション機能ですが、条件への微細な変更で行うことができます。
 * ただスキルのあとに','をつけるだけで、有効な対象グループの中から
 * どの対象を指定したいか選ぶことができます。
 * 例:
 *             Random 50%: Fire, Highest HP%
 *
 * この条件は50%の確率で満たされ、その場合、対象範囲内のチームから
 * 最も高いHP % の者が選ばれて対象となります。
 * またこの場合、対象には'Fire'のスキルが使われることになります。
 *
 * もし対象が特定されなかった場合、有効な対象の中から
 * ランダムな対象が選出されることになります。
 * それ以外については、下記の一覧を参照してください。
 *
 * ---------------------------------------------------------------------------
 *    <<nothing>>       有効対象グループ内からランダムに選択。
 *    First             有効対象グループ内から最初のメンバーを選択。
 *    User              使用者自身を選択。
 *    Highest MaxHP     最も高い最大HPを持った有効対象を選択。
 *    Highest HP        最も高いHPを持った有効対象を選択。
 *    Highest HP%       最も高いHP%を持った有効対象を選択。(*注1)
 *    Highest MaxMP     最も高い最大MPを持った有効対象を選択。
 *    Highest MaxTP     最も高い最大TPを持った有効対象を選択。
 *    Highest TP        最も高いTPを持った有効対象を選択。
 *    Highest TP%       最も高いTP%を持った有効対象を選択。(*注1)
 *    Highest MP        最も高いMPを持った有効対象を選択。
 *    Highest MP%       最も高いMP%を持った有効対象を選択。(*注1)
 *    Highest ATK       最も高いATKを持った有効対象を選択。
 *    Highest DEF       最も高いDEFを持った有効対象を選択。
 *    Highest MAT       最も高いMATを持った有効対象を選択。
 *    Highest MDF       最も高いMDFを持った有効対象を選択。
 *    Highest AGI       最も高いAGIを持った有効対象を選択。
 *    Highest LUK       最も高いLUKを持った有効対象を選択。
 *    Highest Level     最も高いレベルの有効対象を選択。(*注2)
 *    Lowest MaxHP      最も低い最大HPを持った有効対象を選択。
 *    Lowest HP         最も低いHPを持った有効対象を選択。
 *    Lowest HP%        最も低いHP%を持った有効対象を選択。(*注1)
 *    Lowest MaxMP      最も低い最大MPを持った有効対象を選択。
 *    Lowest MP         最も低いMPを持った有効対象を選択。
 *    Lowest MP%        最も低いMP%を持った有効対象を選択。(*注1)
 *    Lowest MaxTP      最も低い最大TPを持った有効対象を選択。
 *    Lowest TP         最も低いTPを持った有効対象を選択。
 *    Lowest TP%        最も低いTP%を持った有効対象を選択。(*注1)
 *    Lowest ATK        最も低いATKを持った有効対象を選択。
 *    Lowest DEF        最も低いDEFを持った有効対象を選択。
 *    Lowest MAT        最も低いMATを持った有効対象を選択。
 *    Lowest MDF        最も低いMDFを持った有効対象を選択。
 *    Lowest AGI        最も低いAGIを持った有効対象を選択。
 *    Lowest LUK        最も低いLUKを持った有効対象を選択。
 *    Lowest Level      最も低いレベルの有効対象を選択。(*注2)
 *
 * 注1: 現在のHPを最大HPで割り算/現在のMPを最大MPで割り算して算出
 *
 * 注2: YEP_EnemyLevelsがない状態でこれが実行された場合、
 * プレイヤーパーティの最大レベルを返します。
 *
 * ---------------------------------------------------------------------------
 *
 * ===========================================================================
 * 特別なメモタグ
 * ===========================================================================
 *
 * もしYEP_Taunt.jsを使っている場合、デフォルトで敵は挑発を受けなくなります。
 * この問題により、対象は挑発エフェクトによって守られ、
 * それにより、AIの動作はシャットダウンされてしまいます。
 * もし敵に相手の挑発エフェクトを反映させたい場合、
 * 下記のタグを敵のメモ欄内に挿入してください。
 *
 *   <AI Consider Taunt>
 *
 * 敵の行動決定フェーズで、挑発された敵について考慮が成されるようになります。
 * 愚鈍な敵向けにはこのメモタグを無効にし、
 * 賢い敵のみに有効にするという使い方をすることもできます。
 *
 * ===========================================================================
 * Changelog
 * ===========================================================================
 *
 * Version 1.15:
 * - Fixed a bug that caused some TP conditions to not work properly.
 *
 * Version 1.14:
 * - Bypass the isDevToolsOpen() error when bad code is inserted into a script
 * call or custom Lunatic Mode code segment due to updating to MV 1.6.1.
 *
 * Version 1.13:
 * - Updated for RPG Maker MV version 1.5.0.
 *
 * Version 1.12:
 * - Added 'Dynamic Turn Count' plugin parameter for those who wish to push
 * the turn count further by 1 turn in order to adjust for Dynamic Actions.
 * Code provided by Talonos.
 *
 * Version 1.11:
 * - Adding the ability to support multiple conditions. Please Read the
 * 'Multiple Conditions' section in the help file for more details.
 *
 * Version 1.10:
 * - Lunatic Mode fail safes added.
 *
 * Version 1.09:
 * - Added 'user' to the list of valid skill targets.
 * - Added 'USER stat PARAM eval' to valid conditions.
 *
 * Version 1.08:
 * - Neutral elemental resistance is now considered to be above 90% and under
 * 110% for a better range of activation.
 * - Optimization update.
 *
 * Version 1.07:
 * - Fixed a compatibility bug that caused certain conditions to bypass
 * taunts.
 *
 * Version 1.06:
 * - Fixed a bug that caused 'Highest TP' and 'Lowest TP' target searches to
 * crash the game.
 *
 * Version 1.05:
 * - Updated for RPG Maker MV version 1.1.0.
 *
 * Version 1.04a:
 * - Fixed a bug that would cause a crash with the None scope for skills.
 * - Switched over a function to operate in another for better optimization.
 *
 * Version 1.03:
 * - Fixed a bug that returned the wrong MP% rate.
 *
 * Version 1.02:
 * - Fixed a bug that targeted the highest parameter enemy instead of lowest.
 *
 * Version 1.01:
 * - Added 'MaxTP' and 'TP' to targets.
 * - Compatibility update with Battle Engine Core v1.19+. Turn settings are
 * now based 'AI Self Turns' if the enabled.
 *
 * Version 1.00:
 * - Finished Plugin!
 */

スポンサードリンク

スポンサードリンク

-YEPシリーズ

Copyright© RPGツクールMV初心者的備忘録 , 2020 All Rights Reserved.