当サイトの運営者です。ゲーム制作とプラグイン開発が好きで、コミュニティに貢献したいと考えています。
RPGツクールMZでゲームを制作中です。
※プログラマ・エンジニアではありません。
YEP Selection Control - YEP_X_SelectionControl.js

▼YEP Selection Control(Yanfly様作) - YEP_X_SelectionControl.js
https://plugin.fungamemake.com/archives/10565
アクションの選択対象を拡張
ふりがな:せれくとこんとろーる
機能概要: アクションの選択対象を拡張
利用規約(ライセンス):http://www.yanfly.moe/wiki/Category:Yanfly_Engine_Plugi…
作者:Yanfly
作者サイト:http://yanfly.moe/
解説ページ:https://fungamemake.com/archives/1713
ダウンロードページ:http://yanfly.moe/2016/04/22/yep-94-selection-control/
ファイル名:YEP_X_SelectionControl.js
プラグインのヘルプ:
/*:ja
* @plugindesc v1.15 (要YEP_BattleEngineCore、YEP_TargetCore.js)アクションの選択対象を拡張します。
* @author Yanfly Engine Plugins
*
* @param ---デフォルト---
* @default
*
* @param Single Multiple
* @parent ---デフォルト---
* @type boolean
* @on YES
* @off NO
* @desc 単一対象の魔法スキルをバトラーグループの全ユニットを選択できるようにする? NO - false YES - true
* @default true
*
* @param Disperse Damage
* @parent ---デフォルト---
* @type boolean
* @on YES
* @off NO
* @desc 単一対象の代わりに複数対象が選択された場合、自動的にダメージを分散させますか? NO - false YES - true
* @default true
*
* @param Actor or Enemy
* @parent ---デフォルト---
* @type boolean
* @on YES
* @off NO
* @desc シングル対象スキルはデフォルトでアクターか敵のどちらかを対象にできますか? NO - false YES - true
* @default true
*
* @param Physical Front Row
* @parent ---デフォルト---
* @type boolean
* @on YES
* @off NO
* @desc 要YEP_RowFormation。最前列のみを対象とするように物理的なシングル対象スキルを設定しますか? NO - false YES - true
* @default false
*
* @param Physical Weapon Range
* @parent ---デフォルト---
* @type boolean
* @on YES
* @off NO
* @desc 要YEP_RowFormation。上記がfalseの場合、物理的なシングル対象スキルを武器の範囲に設定しますか? true/false
* @default true
*
* @param Default Weapon Range
* @parent ---デフォルト---
* @type boolean
* @on 範囲あり
* @off 範囲なし
* @desc 要YEP_RowFormation。武器のデフォルト範囲
* 範囲なし - false 範囲あり - true
* @default false
*
* @param ---テキスト表示---
* @default
*
* @param All Enemies
* @parent ---テキスト表示---
* @desc 全ての敵の選択表示テキスト
* @default 全ての敵
*
* @param All Allies
* @parent ---テキスト表示---
* @desc 全ての味方の選択表示テキスト
* @default 全ての味方
*
* @param ---全体選択ウィンドウ表示設定---
* @default
*
* @param Enable Visual All
* @parent ---全体選択ウィンドウ表示設定---
* @type boolean
* @on YES
* @off NO
* @desc プレイヤーがクリックして仲間/敵の全選択を切り替えることができるウィンドウを有効にします。 YES - true NO - false
* @default true
*
* @param Visual Enemy X
* @parent ---全体選択ウィンドウ表示設定---
* @desc 全敵ウィンドウのX座標の式
* @default 0
*
* @param Visual Enemy Y
* @parent ---全体選択ウィンドウ表示設定---
* @desc 全敵ウィンドウのY座標の式
* @default this.fittingHeight(2)
*
* @param Visual Enemy Width
* @parent ---全体選択ウィンドウ表示設定---
* @desc 全敵ウィンドウの幅の式
* This is a formula.
* @default 240
*
* @param Visual Enemy Height
* @parent ---全体選択ウィンドウ表示設定---
* @desc 全敵ウィンドウの高さの式
* @default this.fittingHeight(1)
*
* @param Visual Ally X
* @parent ---全体選択ウィンドウ表示設定---
* @desc 全味方ウィンドウのX座標の式
* @default Graphics.boxWidth - 240
*
* @param Visual Ally Y
* @parent ---全体選択ウィンドウ表示設定---
* @desc 全味方ウィンドウのY座標の式
* @default this.fittingHeight(2)
*
* @param Visual Ally Width
* @parent ---全体選択ウィンドウ表示設定---
* @desc 全味方ウィンドウの幅の式
* This is a formula.
* @default 240
*
* @param Visual Ally Height
* @parent ---全体選択ウィンドウ表示設定---
* @desc 全味方ウィンドウの高さの式
* @default this.fittingHeight(1)
*
* @help
* 翻訳:ムノクラ
* https://munokura.tk/
* https://twitter.com/munokura/
*
* ============================================================================
* Introduction
* ============================================================================
*
* このプラグインはYEP_BattleEngineCoreとYEP_TargetCoreを必要とします。
* プラグイン管理の両方のプラグインの下に
* このプラグインがあることを確認してください。
*
* 目標を選択する時、
* RPGツクールMVはデフォルトで有効な目標のリストが常に生きている敵、
* 生きている仲間、死んでいる仲間に設定します。
* 行動は、攻撃者や敵を狙うことも、
* 単一の目標から複数の目標に変わることもできません。
* TargetCore用のこの拡張プラグインを使用すると、
* カスタマイズした条件を挿入するだけでなく、
* 対象の選択制御を向上させるために、
* その制限から解放することができます。
*
* YEP_X_BattleSysCTBプラグインを使用している場合、
* 互換性を最大にするために、
* プラグイン管理のそのプラグインの下に
* このプラグインを配置してください。
*
* ============================================================================
* Notetags - General
* ============================================================================
*
* スキルとアイテムが特定のタイプのバトラーだけを選択するために、
* 以下のメモタグを使えます。
*
* スキルとアイテムのメモタグ
*
* <Single or Multiple Select>
* スキル・アイテムは一度に1つ・全ての対象を選択できるようになります。
* スキルは自動的に単一対象選択になります。
* この効果で機能するようにデータベースの範囲を変更しなければなりません。
* *注:このオプションを使用すると、
* 競合する問題を回避するためにAoECirclesとAoERectanglesが取り消されます。
* *注:タウントが重い敵がいる場合、
* グループ対象と単一の対象を切り替えるオプションは利用できません。
* *注:EnemyAIは、
* シングル対象範囲とマルチ対象範囲を切り替えることはできません。
*
* <Disperse Damage>
* 上記のメモタグと組み合わせて使用すると、
* スキルが分散している対象の数の間で均等にダメージが分割されます。
* ダメージ分散効果は、
* 切り替え後に複数の対象が選択されている場合のみ発生します。
*
* <Enemy or Actor Select>
* <Actor or Enemy Select>
* プレイヤーはアクションの対象範囲に敵かアクターを選択することができます。
* <Enemy or Actor Select>を使用すると、
* デフォルトで最初に敵を対象にします。
* <Actor or Enemy Select>を使用すると、
* デフォルトでアクターを対象にします。
* どちらのメモタグを使用しても、
* アクションの対象範囲は単一の対象に変更されます。
* *注:敵AIは、スキル選択にアクター・敵を切り替える機能を利用しません。
*
* <Weapon Range>
* <Weapon Ranged>
* YEP_RowFormation.jsが必要です。
* 対象の選択がバトラーの武器範囲に基づいて変わります。
* 武器が'近接'の場合、最前列のみを対象とします。
* 武器が'射程'であれば、バトラーが望む任意の列を対象にすることができます。
*
* *注:<Select Condition>効果を使用すると、
* プラグインパラメータでデフォルトで提供されている全ての選択オプションは、
* デフォルトの動作にはならなくなるという前提でリセットされます。
* このような場合、
* スキルの選択方法を指定するために上記のメモタグを使う必要があるでしょう。
*
* アクター、職業、敵、武器、防具、ステートのメモタグ
*
* <Cannot Select: All>
* 範囲が使用者範囲であるアクションでない限り、
* 全てのアクションはこのバトラーを選択できません。
*
* <Cannot Select: Physical Hit>
* <Cannot Select: Magical Hit>
* <Cannot Select: Certain Hit>
* 物理的、魔法的、特定のヒットアクションがバトラーを選択できなくなります。
* その範囲が使用者自身を対象とするアクションでない限り、
* それらはマルチヒットスキルから除外されます。
* 使用者自身を対象にします。
*
* <Cannot Select: Skills>
* <Cannot Select: Items>
* 範囲が使用者自身を対象とするアクションでない限り、
* スキル/アイテムがバトラーを対象にできないようにします。
*
* <Cannot Select: Item x>
* <Cannot Select: Item name>
* アイテムの範囲が使用者自身を対象にしていない限り、
* アイテム'x'(名前付きアイテム)がバトラーを対象にできないようにします。
* データベースに同じ名前のアイテムが複数ある場合、
* 最も高いIDを持つアイテムが優先されます。
*
* <Cannot Select: Skill x>
* <Cannot Select: Skill name>
* スキルの範囲が使用者自身を対象にしていない限り、
* スキル'x'(・名前付きスキル)がバトラーを対象にすることを妨げるでしょう。
* データベースに同じ名前のスキルが複数ある場合、
* 最も高いIDを持つスキルが優先されます。
*
* <Cannot Select: SType x>
* <Cannot Select: SType name>
* スキルの範囲が使用者自身を対象にしていない限り、
* スキルタイプ'x'(名前付き)のスキルが
* バトラーを対象にすることを妨げるでしょう。
* データベースに同じ名前のスキルタイプが複数ある場合、
* IDが最も高いスキルタイプが優先されます。
*
* <Cannot Select: Element x>
* <Cannot Select: Element name>
* アクションの範囲が使用者自身を対象にしていない限り、
* 'x'の属性ID(名前付き)を持つアクションが
* バトラーを対象にできないようにします。
* データベースに同じ名前の属性が複数ある場合、
* 最も高いIDを持つ属性が優先されます。
*
* 武器と敵のメモタグ
*
* <Melee>
* 武器/敵を近接攻撃として指定し、
* '武器範囲'条件を使用するスキルやアイテムの選択範囲に影響を与えます。
* この種の武器/敵はそれらの選択条件に最前列だけを目標とするでしょう。
*
* <Range>
* <Ranged>
* 武器/敵を射程距離として指定し、
* '武器範囲'条件を使用するスキルやアイテム選択範囲に影響します。
* この性質の武器/敵はそれらの選択条件に
* どんな列でも対象にすることができるでしょう。
*
* ============================================================================
* Notetags - Select Conditions
* ============================================================================
*
* どの対象が有効な対象であるかについて特定の条件を課すには、
* 次のメモタグ設定を使用してください。
*
* ---
*
* スキルとアイテムのメモタグ
*
* <Select Conditions>
* condition
* condition
* </Select Conditions>
* 'condition'を希望の条件設定に置き換えます。
* 実行可能な対象に対してより多くの条件をアクションに要求させるには、
* 複数の条件を挿入します。
* これを使用すると、
* プラグインパラメータによって設定されたデフォルト設定が上書きされるため、
* それらの設定を使用する場合、
* それに関連する条件を使用する必要があります。
*
* ---
*
* Conditions:
*
* ---
*
* Any Row
* - YEP_RowFormation.jsが必要です。
* バトラーは有効な対象として、
* それが入っているどの列からでも対象にすることができます。
* 他の'列のみ'の選択条件と競合します。
*
* ---
*
* Back Row Only
* - YEP_RowFormation.jsが必要です。
* 後列のバトラーのみが対象として選択可能になります。
* 後列は、生きているメンバーがいる後ろの列を指します。
* 3列目の敵が全員死んでいても、
* 2列目に生きているメンバーがいる場合、
* 2列目が後列と見なされます。
* 他の'列のみ'の選択条件と競合します。
*
* ---
*
* Front Row Only
* - YEP_RowFormation.jsが必要です。
* 最前列のバトラーのみが対象として選択可能になります。
* 最前列は生きているメンバーを持っている前にどんな列でも指すでしょう。
* 1列目の敵が全員死んでいて2列目が生きているメンバーを持っている場合、
* 2列目が最前列と見なされます。
* 他の'列のみ'の選択条件と競合します。
*
* ---
*
* Weapon Range
* - YEP_RowFormation.jsが必要です。
* 対象の選択がバトラーの武器範囲に基づいて変わります。
* 武器が'近接'の場合、
* 最前列のみを対象とします。
* 武器が'射程'であれば、
* それはバトラーが望む任意の列を対象にすることができます。
*
* ---
*
* Row x Only
* - YEP_RowFormation.jsが必要です。
* 列xのバトラーのみが対象として選択可能になります。
* 列xにないバトラーは、
* 対象選択から除外されます。
* 他の'列のみ'の選択条件と競合します。
*
* ---
*
* Row x Max
* - YEP_RowFormation.jsが必要です。
* 列xまでの低い番号の列にいる全てのバトラーが対象として選択可能になります。
* xより大きい列番号を持つバトラーは、
* 対象選択から除外されます。
*
* ---
*
* Row x Min
* - YEP_RowFormation.jsが必要です。
* 列x以降の列に位置する全てのバトラーが対象として選択可能になります。
* xより小さい列番号のバトラーは、
* 対象選択から除外されます。
*
* ---
*
* Param stat eval
* ie: Param MaxHP >= 500
* ie: Param HP% <= 0.30
* ie: Param Level === 25
* - 対象が選択の有効な対象であるかどうかを決定する前に、
* 選択に対象のパラメータ値をチェックさせます。
* 'stat'を'MaxHP'、'MaxMP'、'MaxTP'、'HP'、'MP'、'TP'、'HP%'、'MP%'、
* 'TP%'、'ATK'、'DEF'、'MAT'、'MDF'、'AGI'、'LUK'、'LEVEL'に
* 置き換えることができます。
* 対象が所有するパラメータに対して評価チェックを実行します。
*
* ---
*
* State: x
* State: name
* - 有効な対象として選択されるためには、
* 対象のステートは'x'である必要があります。
* 名前の条件を使用していて、
* データベースに同じ名前の複数のステートがある場合、
* 最も高いIDを持つステートが優先されます。
* 対象のステートが'x'ではない場合、
* その対象は選択に有効な対象ではありません。
*
* ---
*
* Not State: x
* Not State: name
* - 有効な対象として選択されるためには、
* 対象のステートが'x'であってはなりません。
* 名前付きバージョンの条件を使用していて、
* データベースに同じ名前の複数のステートがある場合、
* 最も高いIDを持つステートが優先されます。
* 対象のステートが'x'である場合、
* その対象は選択に有効な対象ではありません。
*
* ---
*
* Not User
* - 選択可能プールから使用者が削除され、
* 有効な対象として選択できなくなります。
*
* ============================================================================
* Lunatic Mode - Custom Select Condition
* ============================================================================
*
* JavaScriptの経験がある人は、
* 以下のメモタグを使ってスキルやアイテムの
* カスタム選択条件を作ることができます。
*
* スキルとアイテムのメモタグ
*
* <Custom Select Condition>
* if (target.name() === 'Harold') {
* condition = true;
* } else {
* condition = false;
* }
* </Custom Select Condition>
* 'condition'変数は条件がパスするかどうかを決定します。
* 変数が'true'を返すと、条件は満たされます。
* 変数が'false'の場合、条件は失敗し、
* 対象はアクションの有効な対象にはなりません。
* <Custom Select Condition>のメモタグをパスしても、
* 他の全ての選択条件もパスする必要があります。
*
* ============================================================================
* Changelog
* ============================================================================
*
* Version 1.15:
* - 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.14:
* - Updated for RPG Maker MV version 1.6.1.
*
* Version 1.13:
* - Fixed a bug for the cached items.
*
* Version 1.12:
* - Updated for RPG Maker MV version 1.5.0.
*
* Version 1.11:
* - Optimization update. Lag that occurred during menu scrolling in the middle
* of battle is now reduced/removed.
*
* Version 1.10:
* - Lunatic Mode fail safes added.
*
* Version 1.09:
* - Fixed an exploit with skills that gain TP across Disperse Damage.
*
* Version 1.08:
* - New Feature: Clicking upon the Party Status Window to select actors works.
* This requires Battle Engine Core v1.38 or else it will not work.
* - New Feature: Visual Enemy and Visual Ally select for touch input.
* This requires Battle Engine Core v1.38 or else it will not work.
*
* Verison 1.07a:
* - Fixed a bug that caused the all dead check to not check the actors that
* were unselectable.
* - Compatibility update with Battle System CTB to prevent taunt effects and
* unselectable from making the CTB Turn Order bug out.
*
* Version 1.06a:
* - Added 'Physical Weapon Range' and 'Default Weapon Range' parameters. These
* parameters are used for the new Select Condition: 'Weapon Range', which will
* determine the range of a skill based on the weapon's range (melee or ranged)
* and allow which enemies the battler can select.
* - Added <Weapon Ranged> for Skills and Items. This will make the skill/item
* be range dependent on the weapon equipped (or if the enemy is ranged).
* - <Melee> and <Ranged> notetags added for weapons and enemies. This will
* give weapons and enemies melee or ranged attributes.
* - Changed sorting algorithm to better fit actors based on their visual
* position on the screen.
*
* Version 1.05:
* - Compatibility update with Damage Core to fix Damage Dispersion if damage
* caps are being used.
*
* Version 1.04:
* - Fixed a bug with the <Cannot Select> notetags that made them only work
* with states.
*
* Version 1.03:
* - Fixed a bug that made <Bypass Taunt> and <Ignore Taunt> notetags not work
* for the YEP_Taunt.js plugin.
*
* Version 1.02a:
* - Fixed a bug that caused a crash when multiple targets are present.
* - Fixed an error with getting the wrong eval variable.
*
* Version 1.01:
* - Fixed a bug with the 'Not User' select condition not working properly.
*
* Version 1.00:
* - Finished Plugin!
*/