ダメージ計算式を関数化するプラグイン - YKP_DamageCalculation.js
シェア用テキスト:
▼ダメージ計算式を関数化するプラグイン(上條ユキ様作) - YKP_DamageCalculation.js
https://plugin-mz.fungamemake.com/archives/4600
ダメージの計算式をテンプレート化して、短い関数式で計算できるプラグインです。 よく使う計算式を共通化して、キーワードと引数で調整が出来るようになります。
ふりがな:だめーじけいさんしきをかんすうかするぷらぐいん
機能概要: ダメージの計算式をテンプレート化して、短い関数式で計算できるプラグインです。 よく使う計算式を共通化して、キーワードと引数で調整が出来るようになります。
利用規約(ライセンス): MITライセンス
作者:上條ユキ
直接ダウンロード:Zipファイルファイル名:YKP_DamageCalculation.js
プラグインのヘルプ:
* ダメージの計算式をテンプレート化して、短い関数式で計算できるプラグインです。
* よく使う計算式を共通化して、キーワードと引数で調整が出来るようになります。
*
* スキルのダメージ計算式に以下の記載をすると利用できます。
*
* YKP_DC(共通計算式の引数)
*
*
* 共通計算式のリストに作った『キーワード』と『引数』を入力します。
* キーワードは " " で囲んで入力します。
* 引数は数値を入力します。
*
* 記載例:YKP_DC("ATK", 1, 100, 3, 2)
* キーワード:"ATK"
* 引数1:1
* 引数2:100
* ...
*
* 引数を省略することも可能です。
* 省略した場合は、必ず『0』が入力されます。
*
* もちろん、今まで通りに計算式をエディタに入力しても問題ありません。
*
*
* ◆共通計算式の利用方法
*
* よく利用する計算式をプラグインパラメータに登録しておくことができます。
* 登録する際の規則は以下の通りです。
* ・引数にするキーワードは " " で囲みます。
* ・データ置換するには { } で囲みます
* 置換可能なデータは次の通りです。
* {a.〇〇〇}:使用者の〇〇〇を参照して値に置換します。
* {b.〇〇〇}:対象の〇〇〇を参照して値に置換します。
* {v.〇} :変数〇番の値を参照して置換します。
*
* 記載例:({a.atk} * 4 - {b.def} * 2 + {v."変数ID"})
*
* ※{a.isStateAffected("id")}のような特殊な参照も出来ます。
* ただし、{a.〇〇〇({v.△})}のような二重参照は出来ません。
*
*
* ◆レートリストの利用方法
*
* キーワードと対応した値を設定しておきます。
* キーワードはどのような文字でも可能です(例:1、2、1hit、2hit、単体、全体)
* レート値は小数点第2位まで設定できます。
*
* 設定したレートは計算式に GetRate(key) の形式で利用できます。
* 記載例:({a.atk} * 4 - {b.def} * 2) * GetRate("2") * GetRate("2hit") * GetRate("単体")
* 上記は、キー「2」「2hit」「単体」に設定されたレート値でダメージ調整するような形式になります。
*
* 後々にバランス調整する際に、この値を調整だけで微調整が可能になります。
*
*
* ◆オプション機能
*
* □アイテム・スキル別にリミットダメージを設定できます。
*
* LimitDamage(YKP_DC(...), 999);
* 上記のように LimitDamage で囲むと、上限ダメージを再設定できます。
* ただし、プラグインパラメータの『最高ダメージ』を超えることは出来ません。
* 記載例の場合、ダメージが999までしか出なくなります。
*
*
* □対象にstateIdのステートが付与されている場合に倍率追加できます。
* 注:MV制作で利用していた仕組みのため、MZでは安定した動作は保障していません。
*
* StateBonus(character ,rate, stateId...)
* 使用計算式 : (character.isStateAffected(stateId) ? rate : 1)
*
* 使用例
* YKP_DC(共通計算式の引数) * StateBonus(b, 2, 4, 5)
*
* 攻撃力依存のダメージ計算後に対象にステートID 4番(毒)が
* 付与されている場合にダメージが2倍になります。
* さらに、対象にステートID 5番(暗闇)が付与さてれいる場合は
* もう一度ダメージを2倍にします。(つまり、通常の4倍になる)
* 対象にステートID 4番がなく、ステートID 5番がある場合は2倍のみ適用されます。
* ステートIDが3つ以上ある場合も同様に倍率を乗算します。
* 乗算されていくので、rateを4にしたりすると4倍、16倍、64倍と跳ね上がります。
*
* StateAddBonus(character ,rate, stateId...)
* StateBonusが乗算されていくのに対し、こちらは加算されていきます。
* rateを2にすれば、2倍、4倍、6倍という感じになります。
* 付与されているステートの数だけrateを加算したい場合はこちらを使ってください。
*
* どちらも対象にステートがない場合は等倍にしてくれます。
*
*
* プラグインコマンドはありません。
*
* plugin version 2.0.3
*
* 2022/11/11
* ver 2.0.3 : ダメージタイプが『HP回復』『MP回復』の時に
* 正しく計算されていなかった問題を修正。
*
* 2022/10/23
* ver 2.0.1 : ヘルプの修正・追記。
*
* 2022/10/20
* ver 2.0.0 : 計算式システムをリファクタリング。
* 関数化の仕組みを一新。