FTKR Skill Expansion - FTKR_SkillExpansion.js

シェア用テキスト:
▼FTKR Skill Expansion(フトコロ様作) - FTKR_SkillExpansion.js
https://plugin.fungamemake.com/archives/1342
スキルの仕様を拡張する

ふりがな:すきるかくちょう

機能概要: スキルの仕様を拡張する

利用規約(ライセンス): MITライセンス

作者:フトコロ

作者サイト:https://twitter.com/futokoro_mv

解説ページ:https://github.com/futokoro/RPGMaker/blob/master/FTKR_S…

ダウンロードページ:https://raw.githubusercontent.com/futokoro/RPGMaker/mas…

ファイル名:FTKR_SkillExpansion.js

プラグインのヘルプ:

/*:
 * @plugindesc v1.4.2 スキル拡張プラグイン
 * @author フトコロ
 *
 * @param Elements Damage Calc
 * @desc 複数属性に対するダメージ計算方法
 * 0 - 最大, 1 - 平均, 2 - 累積, 3 - 最小
 * @default 0
 *
 * @param Exclude 100% Elements
 * @desc 最大または平均の場合、ダメージ計算時に100%の属性有効度を除外するか
 * @type boolean
 * @on 除外する
 * @off 除外しない
 * @default false
 *
 * @param Critical For Each
 * @desc ダメージID毎にクリティカル判定を行うか
 * 0 - 判定しない, 1 - 判定する
 * @default 0
 *
 * @param Make Sep For Each
 * @desc スキル習得時に個別データを作成するか
 * 0 - 作成しない, 1 - 作成する
 * @default 0
 *
 * @param Enabled Repeat Failure
 * @desc 連続攻撃時に途中で失敗すると攻撃をやめるか
 * 0 - 攻撃をやめない, 1 - 攻撃をやめる
 * @default 0
 *
 * @param AutoAddition Damage Rate
 * @desc ダメージ倍率をダメージ計算式に入力不要にするか
 * 0 - 入力要, 1 - 入力不要
 * @default 0
 *
 * @param --- Default Param ---
 * @desc 
 * 
 * @param Damage Rate
 * @desc デフォルトのダメージ倍率(%)
 * @default 100
 *
 * @param Critical Rate
 * @desc デフォルトのクリティカルダメージ倍率(%)
 * @default 300
 *
 * @help
 *-----------------------------------------------------------------------------
 * 概要
 *-----------------------------------------------------------------------------
 * 本プラグインを実装することで、スキルの仕様を拡張し、より詳細に設定することが
 * できるようになります。
 * 
 * 主に以下の項目について、仕様を変更しています。
 * 
 * 1. スキルによって与えるダメージを、以下の仕様に変更します。
 *    [ダメージ] = [ダメージID 0 のダメージ] + [ダメージID 1 のダメージ] + ...
 *    各ダメージIDのダメージは、それぞれ、別の設定値を持ち、別に計算します。
 * 
 * 2. 使用効果の対象を自由に変更できるようになり、また値に数値以外を
 *    設定することができます。
 * 
 * 3. 複数回攻撃するスキルの場合、攻撃毎にスキルの成功率やダメージを変更
 *    できます。
 * 
 * 4. スキルの使用条件に武器以外の条件を追加できます。
 * 
 * 5. スキルの消費コストに数値以外を設定することができます。
 *    また、消費コストにHPを設定できます。
 * 
 * 6. スキルの説明文を、条件によって異なる内容を表示させることができます。
 * 
 * 7. 複数属性に対するダメージの計算方法を変更することができます。
 * 
 * 
 * また、別途配布のFTKR_SEP_ShowSkillStatus.jsと組み合わせることで
 * スキルメニューに設定したスキルのパラメータを表示させることができます。
 * 
 * 
 *-----------------------------------------------------------------------------
 * 設定方法
 *-----------------------------------------------------------------------------
 * 1.「プラグインマネージャー(プラグイン管理)」に、本プラグインを追加して
 *    ください。
 * 
 * 2. FTKR_ItemSelfVariables.js と併用する場合は、本プラグインは、
 *    FTKR_ItemSelfVariables.jsよりも下の位置になるように追加してください。
 * 
 * 
 * <他プラグインとの競合について>
 * 1. YEP_BattleEngineCore.js と組み合わせて使用する場合は
 *    本プラグインを、YEP_BattleEngineCore.jsよりも上に配置してください。
 * 
 * 
 * <セーブデータについて>
 * 本プラグインを適用する場合は、テストプレイ含めて必ず新規データで
 * ゲームを開始してください。
 * 
 * 
 *-----------------------------------------------------------------------------
 * ダメージの設定
 *-----------------------------------------------------------------------------
 * 本プラグインを適用することで、スキルによって与えるダメージを、以下の仕様に
 * 変更します。
 * 
 *  [ダメージ] = [ダメージID 0 のダメージ] + [ダメージID 1 のダメージ] + ...
 * 
 * ダメージID毎に、攻撃と防御によるダメージ計算を行い、その結果の合計値を
 * 最終的なダメージとして相手に与えます。
 * 
 * 例えば、「複数の属性を持ち、かつ属性毎に与えるダメージが異なるスキル」や
 * 「物理ダメージと魔法ダメージを併せ持つスキル」などを作ることができます。
 * 
 * スキルに以下のノートタグを追記することで、各ダメージIDを設定できます。
 * ダメージID毎にスキルIDを設定することで、そのスキルIDの属性、ダメージ計算式、
 * 命中タイプ、ダメージタイプを元に各ダメージIDのダメージ計算を行います。
 * また、そのスキルIDの使用効果や得TPについても、ダメージとともに発生します。
 * ダメージID0 は、ベースとなるスキルのデータベース上の設定が反映されます。
 * 
 * **********************************************************************
 * 注意:ダメージIDを追加する場合は、必ずID1 から順番に追加してください。
 * **********************************************************************
 * 
 * <Set Sep Damage: x>      :ダメージId x に対して code部で記述した設定を
 * code                     :反映します。
 * </Set Sep Damage>
 * 
 * [code に使用できる項目]
 * SkillId: y               :スキルID y のスキル設定をコピーします。
 *                          :基本的に、このコードを使って、各ダメージIDの
 *                          :設定を作成します。
 * 
 * ElementId: y1,y2,...     :属性ID y1,y2,...で指定した属性を追加します。
 * DamageRate: y           :ダメージ倍率を y (%)に変更します。
 * CriticalRate: y         :クリティカルのダメージ倍率を y (%)に変更します。
 * 
 * Trait Elements: type1,type2,...
 *                          :type で指定した対象の特長欄の属性を追加します。
 *                          :type で指定できる対象は、Actor,Class,Weapon,
 *                          :Armor,States です。
 * 
 * Enabled: eval            :対象のダメージID を eval で設定した条件で有効に
 *                          :します。設定しない場合は、常に有効です。
 *                          :ダメージID 0 に対しては設定できません。
 *                          :有効になっていない場合は、ダメージに反映しません。
 * 
 * [eval の値について]
 * eval部は、ダメージ計算式のように、計算式を入力することで、固定値以外の値を
 * 使用することができます。以下のコードを使用できます。
 *  a.param - 使用者のパラメータを参照します。(a.atk で使用者の攻撃力)
 *  s[x]    - スイッチID x の状態を参照します。
 *  v[x]    - 変数ID x の値を参照します。
 * 
 * 入力例)
 * ダメージID1 として、使用者のレベルが11以上かつスイッチID1がONの時に、
 * スキルID10のスキルのダメージを追加します。
 * ダメージ倍率は50%、クリティカルダメージは400%に変更します。
 * 属性や命中タイプ、計算式等は、スキルID10のものを使用します。
 * <Set Sep Damage: 1>
 * SkillId: 10
 * DamageRate: 50
 * CriticalRate: 400
 * Enabled: a.level > 10 && s[1]
 * </Set Sep Damage>
 * 
 * 
 * [プラグインパラメータの設定項目]
 * <Critical For Each>
 *    :クリティカルの判定を、ダメージID0 の最初の1回だけにするか、
 *    :それともダメージID毎に判定するか選べます。
 * 
 * <AutoAddition Damage Rate>
 *    :ダメージ倍率のコードを、ダメージ計算式に記入しなくても自動で計算する
 *    :かどうか設定できます。
 *    :入力不要にした場合、ダメージ計算式の結果に対して、ダメージ倍率を
 *    :積算します。
 *    :なお、入力不要にした場合でも、ダメージ倍率のコードを計算式に記入すると
 *    :2重に計算します。
 * 
 * <Default Rate>
 *    :デフォルトのダメージ倍率(%)を設定できます。
 * 
 * <Critical Rate>
 *    :デフォルトのクリティカルのダメージ倍率(%)を設定できます。
 * 
 * 
 * [ダメージ計算式に使用できるコード]
 * ダメージ計算式に以下のコードも使用できます。
 * 
 * d.rate   :スキルで設定したダメージ倍率値を取得します。
 * rct      :連続回数を取得できます。初回は 0 です。連続攻撃に対して、
 *          :1撃毎にダメージを変えたい場合等に使用できます。
 * 
 * 使用例)<AutoAddition Damage Rate:0>の場合
 * (4 * a.atk * (1 - rct * 0.2) - 2 * b.def) * d.rate * 0.01
 * 
 *   使用者の攻撃力の4倍から相手の防御力の2倍を引いた値に、ダメージ倍率を
 *   掛けます。ただし、連続回数が設定されている場合、2回目以降は、攻撃力が
 *   20% ずつ落ちます。
 * 
 * 
 *-----------------------------------------------------------------------------
 * 使用効果の設定
 *-----------------------------------------------------------------------------
 * スキルに以下のノートタグを追記することで、使用効果の設定を変更できます。
 * 
 * <Set Sep Effect: x>      :使用効果のId x に対して code部で記述した設定を
 * code                     :反映します。使用効果のIDは、使用効果欄に設定した
 * </Set Sep Effect>        :順番に、上から 0, 1,...となります。
 * 
 * [code に使用できる項目]
 * Target: y                :使用効果の対象を、y に変えることができます。
 *                          :y に使用できるコードは以下の通りです。
 *                          : user - 使用者
 *                          : randomFriends - 味方からランダムで1体選択
 *                          : randomOpponents - 敵からランダムで1体選択
 * 
 * Value1: eval1            :使用効果の内容1を eval1 で設定した値に変更します。
 *                          :内容1は、使用効果で1つめに設定した数値です。
 *                          : 例) HP回復の場合、% で設定する値
 * 
 * Value2: eval1            :使用効果の内容2を eval1 で設定した値に変更します。
 *                          :内容2は、使用効果で2つめに設定した数値です。
 *                          : 例) HP回復の場合、+ で設定する値
 * 
 * Rate: y                  :eval1 に使用できるコード rate の値を
 *                          :y に設定します。
 * 
 * Enabled: eval2           :対象の使用効果ID を eval2 で設定した条件で有効に
 *                          :します。設定しない場合は、常に有効です。
 *                          :有効になっていない場合は、効果が発生しません。
 * 
 * Display: DISPAYNAME      :使用効果ID x の画面上に表示される効果名を
 *                          :DISPAYNAMEに変えます。%1 を使用すると、
 *                          :その箇所を rate値に変換します。
 * 
 * [eval1 の値について]
 * eval部は、ダメージ計算式のように、計算式を入力することで、固定値以外の値を
 * 使用することができます。以下のコードを使用できます。
 *  a.param  - 使用者のパラメータを参照します。(a.atk で使用者の攻撃力)
 *  b.param  - 対象者のパラメータを参照します。
 *  v[x]     - 変数ID x の値を参照します。
 *  hpDamage - Hpダメージ量を参照します。
 *  mpDamage - Mpダメージ量を参照します。
 *  e.rate   - 上記タグで設定したrate値を参照します。
 * 
 * [eval2 の値について]
 * eval部は、ダメージ計算式のように、計算式を入力することで、固定値以外の値を
 * 使用することができます。以下のコードを使用できます。
 *  a.param - 使用者のパラメータを参照します。(a.atk で使用者の攻撃力)
 *  s[x]    - スイッチID x の状態を参照します。
 *  v[x]    - 変数ID x の値を参照します。
 * 
 * 入力例)
 * 使用効果の1番目に「HP回復」を追加して、以下のタグを記入することで
 * スイッチID1またはスイッチID2がONの時に、相手に与えたダメージの20%分、
 * 使用者が回復する効果が発生します。
 * また、別途配布のFTKR_SEP_ShowSkillStatus.jsによる表示名を
 * 「HP吸収20%」に変更します。
 * <Set Sep Effect: 0>
 * Target: user
 * Value1: 0
 * Value2: hpDamage * e.rate * 0.01
 * Rate: 20
 * Enabled: s[1] || s[2]
 * Display: HP吸収%1%
 * </Set Sep Effect>
 * 
 * 
 *-----------------------------------------------------------------------------
 * 連続回数の設定
 *-----------------------------------------------------------------------------
 * スキルに以下のノートタグを追記することで、連続回数の設定ができます。
 * 
 * <Set Sep Repeat>         :連続回数に対して code部で記述した設定を
 * code                     :反映します。
 * </Set Sep Repeat>
 * 
 * [code に使用できる項目]
 * Count: y                 :連続回数を y 回に変更します。
 * Success Rate: eval       :連続使用毎の、スキルの成功率を eval に設定します。
 * 
 * Rate: y                  :eval に使用できるコード rate の値を
 *                          :y に設定します。
 * 
 * [eval の値について]
 * eval部は、ダメージ計算式のように、計算式を入力することで、固定値以外の値を
 * 使用することができます。以下のコードを使用できます。
 *  a.param - 使用者のパラメータを参照します。(a.atk で使用者の攻撃力)
 *  b.param - 対象者のパラメータを参照します。
 *  v[x]    - 変数ID x の値を参照します。
 *  rct     - 連続回数を参照します。1撃目から 0,1,... と数えます。
 *  rate    - 上記タグで設定したrate値を参照します。
 *  base    - データベースで設定したスキル成功率 × 使用者の命中率による
 *            成功率を参照します。値は0~1までの少数で表されます。
 * 
 * 入力例)
 * スキルを5回連続で使用するが、1回使用する毎に成功率が10%ずつ下がる。
 * 1回目が100%だとすると、2回目は90%、3回目は80%、...となる。
 * <Set Sep Repeat>
 * Count: 5
 * Rate: 10
 * Success Rate: base - rct * rate * 0.01
 * </Set Sep Repeat>
 * 
 * 
 *-----------------------------------------------------------------------------
 * 使用条件の設定
 *-----------------------------------------------------------------------------
 * スキルに以下のノートタグを追記することで、使用条件の設定ができます。
 * 
 * <Set Sep Required>       :使用条件に対して code部で記述した設定を
 * code                     :反映します。
 * </Set Sep Required>
 * 
 * [code に使用できる項目]
 * WtypeId: y1,y2,...       :必要武器の武器タイプ y1,y2,... を追加します。
 * 
 * EtypeId: y1,y2,...       :スキルを使用するために、特定の装備タイプが必要に
 *                          :なります。必要装備タイプ y1,y2,... を追加します。
 * 
 * Logic: type              :必要武器や装備を複数設定した場合の、論理計算方法を
 *                          :設定します。type に以下のコードを設定してください。
 *                          : and - すべて装備する必要がある
 *                          : or  - いずれか1つ装備すればよい
 *                          : nand- 設定した装備の組合せをしてはいけない
 *                          : nor - いずれか1つでも装備してはいけない
 *                          :コードで設定しない場合は、'or'を適用する。
 * 
 * Condition: eval          :スキルの使用条件に eval で設定した条件を
 *                          :追加します。
 * 
 * Forget: eval             :スキルを忘れることができる条件を eval に設定する。
 *                          :設定しない場合は、無条件で忘れることができます。
 * 
 * [eval の値について]
 * eval部は、ダメージ計算式のように、計算式を入力することで、固定値以外の値を
 * 使用することができます。以下のコードを使用できます。
 *  a.param - 使用者のパラメータを参照します。(a.atk で使用者の攻撃力)
 *  s[x]    - スイッチID x の状態を参照します。
 *  v[x]    - 変数ID x の値を参照します。
 * 
 * 入力例)
 * スキルを使用するために必要な武器を、武器タイプ1,2に設定する。
 * ただし、武器タイプ1,2の両方を装備していなければならない。
 * また、使用するために、LV10以上とスイッチID1がONが必要になる。
 * <Set Sep Required>
 * WtypeId: 1,2
 * Logic: and
 * Condition: a.level >= 10 && s[1]
 * </Set Sep Required>
 * 
 * 
 *-----------------------------------------------------------------------------
 * 消費コストの設定
 *-----------------------------------------------------------------------------
 * スキルに以下のノートタグを追記することで、消費コストの設定を変更できます。
 * 
 * <Set Sep Cost>           :消費コストに対して code部で記述した設定を
 * code                     :反映します。
 * </Set Sep Cost>
 * 
 * [code に使用できる項目]
 * Mp: eval                 :消費MPを eval で設定した値に変更します。
 * Tp: eval                 :消費TPを eval で設定した値に変更します。
 * Hp: eval                 :消費HPを eval で設定した値にします。
 * 
 * Rate: eval            :eval に使用できるコード rate の値を
 *                          :y に設定します。
 * 
 * [eval の値について]
 * eval部は、ダメージ計算式のように、計算式を入力することで、固定値以外の値を
 * 使用することができます。以下のコードを使用できます。
 *  a.param - 使用者のパラメータを参照します。(a.atk で使用者の攻撃力)
 *  v[x]    - 変数ID x の値を参照します。
 *  rate    - 上記タグで設定したrate値を参照します。
 * 
 * 入力例)
 * 使用者の現在MPと現在TPをすべて消費する。ただし、最低1は必要とする。
 * <Set Sep Cost>
 * Mp: Math.max(a.mp, 1)
 * Tp: Math.max(a.tp, 1)
 * </Set Sep Cost>
 * 
 * 
 *-----------------------------------------------------------------------------
 * スキルの説明文の設定
 *-----------------------------------------------------------------------------
 * スキルに以下のノートタグを追記することで、スキルの説明文の設定を変更できます。
 * スキルの説明文はID別に登録することができ、ID毎に表示条件を設定することで、
 * ゲーム中で表示させる説明文を変えることができます。
 * 
 * データベースの説明欄の記述は、ID0 に登録されます。
 * ID0 の表示条件は設定できず、他のIDの表示条件が満たない場合に、ID0 の説明文を
 * 表示します。
 * 
 * <Set Sep Desc: x>        :ID x に対して code部の設定、および説明文の
 * code                     :1行目と2行目の記述を反映します。
 * 説明文1行目
 * 説明文2行目
 * </Set Sep Desc>
 * 
 * [code に使用できる項目]
 * Enabled: eval            :ID x の説明文の表示条件を eval で設定します。
 *                          :表示条件が複数のIDで重なった場合は、IDが
 *                          :大きい方を表示します。
 * 
 * [eval の値について]
 * eval部は、ダメージ計算式のように、計算式を入力することで、固定値以外の値を
 * 使用することができます。以下のコードを使用できます。
 *  a.param - 使用者のパラメータを参照します。(a.atk で使用者の攻撃力)
 *  s[x]    - スイッチID x の状態を参照します。
 *  v[x]    - 変数ID x の値を参照します。
 * 
 * 入力例)
 * スイッチID1 がONの時に表示する説明文の設定。
 * <Set Sep Desc: 1>
 * Enabled: s[1]
 * 説明文の1行目に表示される文字列です
 * 説明文の2行目に表示される文字列です
 * </Set Sep Desc>
 * 
 * 
 *-----------------------------------------------------------------------------
 * 属性ダメージの計算方法について
 *-----------------------------------------------------------------------------
 * プラグインパラメータ<Element Damage Calc>の設定値により、複数の属性を持った
 * 攻撃をした場合の、防御側の有効度の計算方法を変更することができます。
 * 
 * 変更できる計算方法は、最大、平均、累積、最小の4種類です。
 * 
 *  <0:最大> :防御側の該当する属性有効度の最大値が
 *          最終的なダメージ倍率になります。(ツクールMVの標準方式)
 *
 *   例) 物理+炎の2属性攻撃で、防御側の有効度が物理50%、炎70%の場合
 *       ⇒最終的な有効度は70% ( = max(50%, 70%) )
 * 
 * 
 *  <1:平均> :防御側の該当する属性有効度の平均値が
 *          最終的なダメージ倍率になります。
 *
 *   例) 物理+炎の2属性攻撃で、防御側の有効度が物理50%、炎70%の場合
 *       ⇒最終的な有効度は60% ( = (50% + 70%) / 2 )
 *
 *
 *  <2:累積> :防御側の該当する属性有効度を累積した値が
 *          最終的なダメージ倍率になります。
 *
 *   例) 物理+炎の2属性攻撃で、防御側の有効度が物理50%、炎70%の場合
 *       ⇒最終的な有効度は35% ( = 50% × 70% )
 *
 *
 *  <3:最小> :防御側の該当する属性有効度の最小値が
 *          最終的なダメージ倍率になります。
 *
 *   例) 物理+炎の2属性攻撃で、防御側の有効度が物理50%、炎70%の場合
 *       ⇒最終的な有効度は50% ( = min(50%, 70%) )
 * 
 * 
 * なお、この計算は、ダメージID毎に別に行われますので注意してください。
 * 以下の2パターンは、防御側の有効度の設定が無ければ同じダメージですが、
 * 有効度の設定がある場合は最終的なダメージが変わります。
 * 
 * パターン1 ダメージID 0 のみ
 *  属性   :物理+炎
 *  計算式 :200
 *    ⇒防御側の有効度が物理50%、炎70%の場合で最大設定の場合
 *        200 * 70% = 140ダメージ
 * 
 * パターン2 ダメージID 0 と ダメージID 1
 *  ID0 属性   :物理
 *  ID0 計算式 :100
 *  ID1 属性   :炎
 *  ID1 計算式 :100
 *    ⇒防御側の有効度が物理50%、炎70%の場合で最大設定の場合
 *        100 * 50% + 100 * 70% = 120ダメージ
 * 
 * 
 *-----------------------------------------------------------------------------
 * その他の設定
 *-----------------------------------------------------------------------------
 * その他に、本プラグインで設定できる項目を説明します。
 * 
 * [使用できるタグ]
 * 対象:スキル
 * <Sep Scope Random: y>    :範囲を「敵X体ランダム」に設定している場合、
 *                          :ランダムの対象 X を y に変更します。
 * 
 * 
 * [プラグインパラメータの設定項目]
 * 
 * <Make Sep For Each>
 *    :アクターがスキルを習得した時に、スキルの
 *    :個別データを自動的に作成します。
 *    :別途配布のFTKR_SkillUpgradeSystem.jsを使用
 *    :する場合は、'1'に設定してください。
 *    :作成したデータは、後述のプラグインコマンドにより
 *    :データの変更、リセット、削除が行なえます。
 * 
 * <Enabled Repeat Failure>
 *    :連続攻撃時に途中でスキルに失敗、命中しない、回避される等すると
 *    :その時点で攻撃をやめるかどうか設定できます。
 *    :0 - 攻撃を続けます, 1 - 攻撃をやめます
 * 
 * 
 *-----------------------------------------------------------------------------
 * プラグインコマンド
 *-----------------------------------------------------------------------------
 * 以下のプラグインコマンドを使用できます。
 * なお、プラグインコマンドに指定する値には、数値だけでなく、ゲーム内変数を
 * 指定することが可能です。
 * 
 * 例) アクターIDの指定部に、変数ID1 の値を使用する場合
 *    ⇒ actor(v[1])
 *
 *  
 * 1. 指定した対象のスキルパラメータを変更する。
 *    なお、指定したアクターが指定したスキルの個別データを持っていない場合は無効。
 * 
 * <SEP SET ACTOR(x1) SKILL(x2) PROP VALUE>
 *     : x1 - アクターIDを指定する。
 *     : x2 - スキルIDを指定する。
 *     : PROP VALUE - 変更したいスキルパラメータによって以下から選択する。
 *     :              必ず小文字を入力すること。
 *     :   damages(y1) rate(y2) - ダメージID y1 の rate を y2 に変更する。
 *     :   effects(y1) rate(y2) - 使用効果ID y1 の rate を y2 に変更する。
 *     :   speed value(y)       - 速度補正を y に変更する。
 *     :   repeats rate(y)      - 連続回数の rate を y に変更する。
 *     :   repeats count(y)     - 連続回数の count を y に変更する。
 *     :   sepCost rate(y)      - 消費コストの rate を y に変更する。
 *     :   scope value(y)       - 範囲を y に変更する。
 *     :   scoperandom value(y) - ランダム対象数を y に変更する。
 *     :   name SKILLNAME       - スキル名を'SKILLNAME'に変更します。
 *     :   name v[y]            - スキル名を変数ID y に格納した文字列に
 *     :                          変更します。
 * 
 * 例)
 * <SEP SET ACTOR(1) SKILL(1) damages(0) rate(200)>
 *     :アクター1 が覚えている スキルID 1 に設定したダメージID 0 の
 *     :ダメージ倍率を 200 に変更。
 * 
 * 
 * 2. 指定したアクターのスキルの個別データをリセットする。
 *    なお、指定したアクターが指定したスキルの個別データを持っていない場合は無効。
 * 
 * <SEP RESET ACTOR(x1) SKILL(x2)>
 *     : x1 - アクターIDを指定する。
 *     : x2 - スキルIDを指定する。
 * 
 * 
 * 3. 指定したアクターのスキルの個別データを削除する。
 *    なお、指定したアクターが指定したスキルの個別データを持っていない場合は無効。
 *    削除後は、デフォルトのスキルデータを参照する。
 * 
 * <SEP ERASE ACTOR(x1) SKILL(x2)>
 *     : x1 - アクターIDを指定する。
 *     : x2 - スキルIDを指定する。
 * 
 * 
 * 4. 指定したアクターのスキルの個別データを作成する。
 *    なお、指定したアクターが指定したスキルの個別データを持ってる場合は無効。
 *    また、指定したスキルを覚えていない場合も無効。
 *    作成後は、個別のスキルデータを参照する。
 * 
 * <SEP MAKE ACTOR(x1) SKILL(x2)>
 *     : x1 - アクターIDを指定する。
 *     : x2 - スキルIDを指定する。
 * 
 * 
 *-----------------------------------------------------------------------------
 * スクリプトコマンド
 *-----------------------------------------------------------------------------
 * 以下のスクリプトコマンドによって、スキルの個別データの有無を取得できます。
 * 
 * $gameActors.actor(x).isMakedSepSkill(y)
 *    :指定したアクターが、スキルの個別データを持っている場合に、trueを返す。
 *    : x - アクターID
 *    : y - スキルID
 * 
 * 
 *-----------------------------------------------------------------------------
 * eval値の使用者パラメータについて
 *-----------------------------------------------------------------------------
 * 使用者パラメータとして、HPや命中などのパラメータ以外にも、アクターの
 * さまざまな状態を取得できます。以下はその一例です。
 * 
 * なお、これらは 'a'を'$gameActors.actor(y)'と変えることで、
 * スクリプトコマンドとして使用できます。(yはアクターID)
 * 
 * 1. 特定の装備をしているか判定する
 *  a.isEquipped(x)
 *    : x - 武器なら $dataWeapons[n], 防具なら $dataArmors[n]
 *    : n は武器防具のID
 * 
 * 2. 特定のスキルを取得しているか判定する
 *  a.isLearnedSkill(x)
 *    : x - スキルID
 * 
 * 3. 特定のステートを受けているか判定する
 *  a.isStateAffected(x)
 *    : x - ステートID
 * 
 * 4. 特定の強化を受けているか判定する
 *  a.isBuffAffected(x)
 *    : x - 強化ID(IDの対象は以下)
 *    : 0 - 最大HP、1 - 最大MP、2 - 攻撃力、3 - 防御力、4 - 魔法攻撃、
 *    : 5 - 魔法防御、6 - 敏捷性、7 - 運
 * 
 * 5. 特定の弱体を受けているか判定する
 *  a.isDebuffAffected(x)
 *    : x - 弱体ID(IDの対象は強化と同じ)
 * 
 * 
 *-----------------------------------------------------------------------------
 * 本プラグインのライセンスについて(License)
 *-----------------------------------------------------------------------------
 * 本プラグインはMITライセンスのもとで公開しています。
 * This plugin is released under the MIT License.
 * 
 * Copyright (c) 2017,2018 Futokoro
 * http://opensource.org/licenses/mit-license.php
 * 
 * 
 * プラグイン公開元
 * https://github.com/futokoro/RPGMaker/blob/master/README.md
 * 
 * 
 *-----------------------------------------------------------------------------
 * 変更来歴
 *-----------------------------------------------------------------------------
 * 
 * v1.4.2 - 2018/11/18 : 不具合修正
 *    1. プラグインパラメータ Make Sep For Each を 1 に設定すると、コマンド記憶が
 *       無効になる不具合を修正。
 * 
 * v1.4.1 - 2018/08/13 : 競合回避
 *    1. YEP_SkillCore.js側のHPコスト消費処理の競合を回避。
 * 
 * v1.4.0 - 2018/08/05 : 機能追加
 *    1. 属性ダメージ計算時に100%の属性有効度を除外できる機能を追加。
 * 
 * v1.3.4 - 2017/10/16 : 不具合修正
 *    1. イベントコマンドの条件分岐で、スキルを覚えていることを
 *       正しく判定できない不具合を修正。
 * 
 * v1.3.3 - 2017/04/09 : 不具合修正
 *    1. ダメージが設定されていない場合の例外処理を追加。
 *    2. 使用者が設定されていない場合の例外処理を追加。
 * 
 * v1.3.2 - 2017/04/09 : 不具合修正
 *    1. アイテム使用時にエラーになる不具合を修正。
 * 
 * v1.3.1 - 2017/04/04 : 一部処理見直し、ヘルプ修正
 *    1. 本プラグインの機能を一部アイテムにも適用できるように処理見直し。
 *    2. ヘルプ修正。
 *    3. ライセンス表記を変更。
 * 
 * v1.3.0 - 2017/03/24 : 不具合修正、仕様変更、機能追加
 *    1. クリティカルダメージ倍率が正しく読み取れていなかった不具合を修正。
 *    2. ダメージ倍率設定用のノートタグのコード名を変更。
 *    3. ダメージ倍率のコードをダメージ計算式に入力不要にできる機能を追加。
 *    4. 特長欄の属性読み取り処理部に例外処理を追記。
 * 
 * v1.2.5 - 2017/03/23 : 不具合修正
 *    1. クリティカルダメージの処理部の誤記修正。
 *    2. ダメージID1以降のクリティカル判定に対して<Critical For Each>の設定が
 *       反映されない不具合を修正。
 * 
 * v1.2.4 - 2017/03/18 : 不具合修正
 *    1. アイテム使用時にエラーになる不具合を修正。
 * 
 * v1.2.3 - 2017/03/18 : 誤記修正
 * 
 * v1.2.2 - 2017/03/18 : 処理見直し、機能追加
 *    1. スキル実行処理におけるのダメージIDの処理方法を見直し。
 *    2. 各ダメージIDに設定したスキルの使用効果と得TPが発生するように変更。
 * 
 * v1.2.1 - 2017/03/17 : 機能追加
 *    1. 連続攻撃中に失敗判定になった時点で攻撃をやめるかどうかを設定できる
 *       機能を追加。
 * 
 * v1.2.0 - 2017/03/16 : 処理見直し
 *    1. FTKR_SEP_ShowSkillStatus.js v1.3.0 に合わせて処理を見直し。
 * 
 * v1.1.9 - 2017/03/16 : 不具合修正
 *    1. ダメージIDで設定した内容が、他のスキルにも共有されていた不具合を修正。
 * 
 * v1.1.8 - 2017/03/11 : 処理見直し
 *    1. YEP_BattleEngineCore.jsとの競合回避のため、使用効果の内容の値を
 *       読み取るタイミングを変更。
 * 
 * v1.1.7 - 2017/03/07 : 不具合修正
 *    1. 蘇生アイテム使用時にエラーになる不具合を修正。
 * 
 * v1.1.6 - 2017/03/05 : 機能追加
 *    1. スキルの使用条件に、スキルを削除できる条件を設定する機能を追加。
 * 
 * v1.1.5 - 2017/03/04 : 仕様変更、機能追加
 *    1. 使用条件の武器・装備タイプを複数に設定したときの、デフォルトの
 *       論理計算方法を'or'に変更。
 *    2. 使用条件の武器・装備タイプを複数に設定したときの、論理計算方法を追加。
 * 
 * v1.1.4 - 2017/03/04 : 不具合修正
 *    1. 使用条件の装備タイプの判定が正しく行われていない不具合を修正。
 * 
 * v1.1.3 - 2017/03/03 : 不具合修正
 *    1. 使用効果があるスキルを敵が使用した時にエラーになる不具合を修正。
 *    2. 味方の通常攻撃が正しく処理できない不具合を修正。
 *    3. プラグインコマンド、およびノートタグの取得関数の記述を見直し
 * 
 * v1.1.2 - 2017/02/26 : 一部記述見直し
 *    1. FTKR_SkillTreeSystem.jsの機能追加に合わせて、一部記述見直し
 * 
 * v1.1.1 - 2017/02/26 : 不具合修正
 *    1. アイテム使用時にエラーになる不具合を修正
 * 
 * v1.1.0 - 2017/02/24 : ダメージ計算処理見直し、機能追加
 *    1. ダメージID1 以降の計算処理を変更し、各ダメージIDのダメージタイプが
 *       機能するように変更。
 *    2. 消費コストにjS計算式を使用できる機能を追加。
 *    3. 使用効果のタグに使用できるコードを追加。
 *    4. 使用条件に、装備タイプを指定できるタグを追加。
 *    5. 使用条件のパラメータ判定を、js計算式を使用する機能に変更。
 *    6. 連続回数の成功率に、js計算式を使用できる機能を追加。
 *    7. ダメージと使用効果に発動条件を設定できる機能を追加。
 *    8. スキルの説明文を複数登録し、表示を変えることができる機能を追加。
 *    9. プラグインコマンドを追加。
 *   10. ヘルプの記載内容を見直し。
 * 
 * v1.0.4 - 2017/02/19 : 不具合修正
 *    1. アクター毎に作成したスキルデータを正しく読み取れていなかった不具合を
 *       修正。
 *
 * v1.0.3 - 2017/02/19 : 不具合修正
 *    1. itemEffectAddDebuff関数内の記述ミス修正
 *
 * v1.0.2 - 2017/02/19 : 不具合修正
 *    1. ダメージID 0 を変更せずに、計算式にd.rateを記入すると、正常に
 *       ダメージを与えられない不具合を修正。
 * 
 * v1.0.1 - 2017/02/19 : 不具合修正、ヘルプの内容を修正
 *    1. addTraitsElementId関数内に記述ミスがあり、正しく動作しない
 *       不具合を修正。
 *    2. HP回復以外の使用効果に対して、内容1と内容2の値の書き換えが
 *       適用できていなかった不具合を修正。
 *    3. ダメージID追加時の注意内容をヘルプに追記。
 *    4. 属性ダメージの計算方法の注意内容をヘルプに追記。
 * 
 * v1.0.0 - 2017/02/18 : 初版作成
 * 
 *-----------------------------------------------------------------------------
 */

スポンサードリンク

スポンサードリンク

Copyright© #ツクプラ , 2024 All Rights Reserved.