アイテムとスキルのダメージ処理を拡張するプラグイン – FTKR_ExItemConfig_Damage.js

タイトル
アイテムとスキルのダメージ処理を拡張するプラグイン
作者名
ヘルプ
-----------------------------------------------------------------------------
概要
-----------------------------------------------------------------------------
本プラグインを実装することで、アイテムやスキルによって与えるダメージを
以下の仕様に変更します。

[ダメージ] = [ダメージID 0 のダメージ] + [ダメージID 1 のダメージ] + ...

各ダメージIDのダメージは、それぞれ、別の設定値を持ち、別に計算します。


-----------------------------------------------------------------------------
設定方法
-----------------------------------------------------------------------------
1.「プラグインマネージャー(プラグイン管理)」に、本プラグインを追加して
ください。

2. FTKR_ItemSelfVariables.js と併用する場合は、本プラグインは、
FTKR_ItemSelfVariables.jsよりも下の位置になるように追加してください。

3. 本プラグインは、FTKR_SkillExpansion.jsと組み合わせて使用できません。


-----------------------------------------------------------------------------
ダメージの設定
-----------------------------------------------------------------------------
本プラグインを適用することで、スキルによって与えるダメージを、以下の仕様に
変更します。

[ダメージ] = [ダメージID 0 のダメージ] + [ダメージID 1 のダメージ] + ...

ダメージID毎に、攻撃と防御によるダメージ計算を行い、その結果の合計値を
最終的なダメージとして相手に与えます。

例えば、「複数の属性を持ち、かつ属性毎に与えるダメージが異なるスキル」や
「物理ダメージと魔法ダメージを併せ持つスキル」などを作ることができます。

スキルに以下のノートタグを追記することで、各ダメージIDを設定できます。

<EIC ダメージID: x>
code
</EIC ダメージID>

ダメージID毎にスキルIDを設定することで、そのスキルIDの属性、ダメージ計算式、
命中タイプ、ダメージタイプを元に各ダメージIDのダメージ計算を行います。
また、そのスキルIDの使用効果や得TPについても、ダメージとともに発生します。
ダメージID0 は、ベースとなるスキルのデータベース上の設定が反映されます。


注意:ダメージIDを追加する場合は、必ずID1 から順番に追加してください。



[code に使用できる項目]
SkillId: y
スキルID: y
:スキルID y のスキル設定をコピーします。
:基本的に、このコードを使って、各ダメージIDの設定を作成します。

ElementId: y1,y2,...
属性ID: y1,y2,...
:属性ID y1,y2,...で指定した属性を追加します。

DamageRate: eval
ダメージ倍率: 計算式
:ダメージ倍率を 計算式(eval)で設定した値(%)に変更します。
:この値をダメージ計算式の結果に対して積算したものがダメージになります。
:設定しない場合は、プラグインパラメータ<Default Rate>の値を使用します。

CriticalRate: eval
クリティカル倍率: 計算式
:クリティカルのダメージ倍率を 計算式(eval)で設定した値(%)に変更します。
:設定しない場合は、プラグインパラメータ<Critical Rate>の値を使用します。

Trait Elements: type1,type2,...
特徴の属性追加: type1,type2,...
:type1,type2,... で指定した対象の特長欄の属性を追加します。
:typeで指定できる文字は、Actor,Class,Weapon,Armor,States です。

Enabled: eval
有効条件: 計算式
:対象のダメージID を計算式で設定した条件で有効にします。
:設定しない場合は、常に有効です。
:ダメージID 0 に対しては設定できません。
:有効になっていない場合は、ダメージに反映しません。


[計算式(eval)の値について]
計算式は、ダメージ計算式のように、計算式を入力することで、固定値以外の値を
使用することができます。以下のコードを使用できます。
a.param - 使用者のパラメータを参照します。(a.atk で使用者の攻撃力)
b.param - 攻撃対象のパラメータを参照します。(b.atk で攻撃対象の攻撃力)
s[x] - スイッチID x の状態を参照します。
v[x] - 変数ID x の値を参照します。
iv[x] - アイテムのセルフ変数ID x の値を参照します。(1)

(1) セルフ変数を使用する場合は、FTKR_ItemSelfVariables.jsが必要です。


入力例)
ダメージID1 として、使用者のレベルが11以上かつスイッチID1がONの時に、
スキルID10のスキルのダメージを追加します。
ダメージ倍率は50%、クリティカルダメージは400%に変更します。
属性や命中タイプ、計算式等は、スキルID10のものを使用します。

<EIC ダメージID: 1>
スキルId: 10
ダメージ倍率: 50
クリティカル倍率: 400
有効条件: a.level > 10 && s[1]
</EIC ダメージID>


[プラグインパラメータの設定項目]
<Critical For Each>
:クリティカルの判定を、ダメージID0 の最初の1回だけにするか、
:それともダメージID毎に判定するか選べます。
:なお、「敵に会心」のメッセージを表示させるかどうかは、
:ダメージID0の結果で判定します。

-----------------------------------------------------------------------------
属性ダメージの計算方法について
-----------------------------------------------------------------------------
プラグインパラメータ<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%の場合で最大設定の場合
20070% = 140ダメージ

パターン2 ダメージID 0 と ダメージID 1
ID0 属性 :物理
ID0 計算式 :100
ID1 属性 :炎
ID1 計算式 :100
⇒防御側の有効度が物理50%、炎70%の場合で最大設定の場合
10050% + 10070% = 120ダメージ


-----------------------------------------------------------------------------
本プラグインのライセンスについて(License)
-----------------------------------------------------------------------------
本プラグインはMITライセンスのもとで公開しています。
This plugin is released under the MIT License.

Copyright (c) 2020 Futokoro
http://opensource.org/licenses/mit-license.php


-----------------------------------------------------------------------------
変更来歴
-----------------------------------------------------------------------------

v1.1.2 - 2020/01/13 : 不具合修正、機能追加
1. ダメージID1以降でダメージ倍率を0にした場合に、ダメージID0での
クリティカル判定の結果を問わず、会心メッセージを表示しない不具合を修正。
2. ダメージIDの計算式に攻撃対象のパラメータも参照できるように修正。

v1.1.1 - 2020/01/11 : 不具合修正
1. プラグインパラメータの読み取り部の不具合を修正。

v1.1.0 - 2018/08/05 : 機能追加
1. 属性ダメージ計算時に100%の属性有効度を除外できる機能を追加。

v1.0.1 - 2017/04/29 : FTKR_ItemSelfVariables の v1.1.0以降に対応

v1.0.0 - 2017/04/14 : 初版公開

-----------------------------------------------------------------------------
パラメータ
param ---属性ダメージ計算---
desc

param Elements Damage Calc
desc 複数属性に対するダメージ計算方法
0 - 最大, 1 - 平均, 2 - 累積, 3 - 最小
default 0
type select
option 最大
value 0
option 平均
value 1
option 累積
value 2
option 最小
value 3

param Exclude 100% Elements
desc 最大または平均の場合、ダメージ計算時に100%の属性有効度を除外するか
type boolean
on 除外する
off 除外しない
default false

param ---ダメージ倍率---
desc

param Damage Rate
desc デフォルトのダメージ倍率(%)
default 100

param ---クリティカル---
desc

param Critical For Each
desc ダメージID毎にクリティカル判定を行うか
0 - 判定しない, 1 - 判定する
default 0
type select
option 判定しない
value 0
option 判定する
value 1

param Critical Rate
desc デフォルトのクリティカルダメージ倍率(%)
default 300

ライセンス表記
本プラグインのライセンスについて(License)
本プラグインはMITライセンスのもとで公開しています。
This plugin is released under the MIT License.
Copyright (c) 2020 Futokoro
http://opensource.org/licenses/mit-license.php

紹介ページ https://github.com/futokoro/RPGMaker