ダメージ計算式を関数化するプラグイン - 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 : 計算式システムをリファクタリング。 * 関数化の仕組みを一新。