HIME Battle Action Exp - HIME_BattleActionExp.js
シェア用テキスト:
▼HIME Battle Action Exp(HimeWorks様作) - HIME_BattleActionExp.js
https://plugin.fungamemake.com/archives/26745
戦闘終了時ではなく、アクションを実行した直後に経験値を獲得できます。
ふりがな:ばとるあくたーえくすぺりえんす
機能概要: 戦闘終了時ではなく、アクションを実行した直後に経験値を獲得できます。
利用規約(ライセンス):https://fungamemake.com/hime-japanese
作者:HimeWorks
作者サイト:https://himeworks.com/
ダウンロードページ:https://fungamemake.com/archives/3727
ファイル名:HIME_BattleActionExp.js
プラグインのヘルプ:
/*:ja * @title Battle Action Exp * @author Hime --> HimeWorks (http://himeworks.com) * @version 1.1 * @date Feb 25, 2016 * @filename HIME_BattleActionExp.js * @url http://himeworks.com/2016/02/battle-action-exp/ * * あなたが私の仕事を楽しんでいるなら、 * パトレオンで私への支援を検討してください! * * * https://www.patreon.com/himeworks * * ご質問や懸念がある場合、 * 次のサイトのいずれかで私に連絡できます。 * * * Main Website: http://himeworks.com * * Facebook: https://www.facebook.com/himeworkscom/ * * Twitter: https://twitter.com/HimeWorks * * Youtube: https://www.youtube.com/c/HimeWorks * * Tumblr: http://himeworks.tumblr.com/ * * @plugindesc v1.1 - 戦闘終了時ではなく、アクションを実行した直後に経験値を獲得します。 * @help * 翻訳:ムノクラ * https://fungamemake.com/ * https://twitter.com/munokura/ * * --------------------------------------------------------------------------- * == 説明 == * * RPGツクールMVでは、 * アクターは戦闘で敵を倒すことで経験値を得ることができます。 * 全ての敵を倒すと、勝利の処理が行われ、 * アクターは戦闘結果から経験値を受け取ります。 * * 戦闘が終わる前に脱出した場合、 * アクターは敵を倒しても経験値を受け取れないことを意味します。 * * このプラグインは、経験値の取得方法を変更します。 * 戦闘終了時だけでなく、アクションを実行する度に経験値が受け取られます。 * * 例えば、アクターが敵を倒した時点で経験値の計算が行われ、 * その場でレベルアップする可能性があります。 * * アクションの経験値は、経験値の計算用に設定したルールに応じて、 * 戦闘以外でも取得できます。 * * このプラグインを使用すると、 * アクターはそのアクションに対して即座に報酬を受け取ります。 * 使用できる追加のメカニズムが提供されます。 * * == 利用規約 == * * - クレジットを表示する非営利プロジェクトでの使用は無料 * - 商用プロジェクトでの使用は無料ですが、連絡してください * - クレジット表示をHimeWorksにしてください * * == Change Log == * * 1.1 - Feb 25, 2016 * * added support for receiving action exp outside of battle * 1.0 - Feb 24, 2016 * * initial release * * == 使用法 == * * プラグインのパラメーターで、 * 使用するデフォルトのアクション経験値式を設定します。 * * デフォルトでは、敵を倒した時のみ経験値を受け取ります。 * 下記がデフォルトの式です。 * * b.isEnemy() && b.isDead() ? b.exp() : 0 * * 下記を意味します。 * * アクションの対象が敵で行動の結果、対象が死んでいる場合、 * その後、敵の経験値に等しい経験値を獲得します。 * それ以外の場合、経験値なし。 * * これは、アクターが別のアクターを対象にした場合、 * 経験値は得られないことを意味します。 * * 特定の状況では、 * 対象がアクターであるか敵であるかを確認することが重要です。 * 特定のプロパティが全ての戦闘に存在しない場合があるためです。 * * 次の数式変数を使用できます。 * * a - アクションの使用者 * b - アクションの対象 * v - ゲーム変数 * s - ゲームスイッチ * * -- 例 -- * * 敵を倒した時だけ、経験値を受け取るのではなく、 * 敵の経験値の割合として、 * 与えたダメージの量に基づいて経験値を受け取りたいとしましょう。 * * つまり、敵のHPが100であり、合計で100の経験値を与え、 * 20のダメージを与えた場合、敵から20%の経験値、 * つまり20の経験値を受け取ります。 * * これを達成するために、 * 対象のアクション結果オブジェクトから与えられたダメージを取得できます。 * * b.result() * * そこから、HPダメージを要求できます。 * * b.result().hpDamage * * 比率を取得するには、それを取得して対象の最大HPで除算します。 * * b.result().hpDamage / b.mhp * * 対象の合計HPに対するダメージの割合がわかります。 * * 最後に、この割合に敵の合計経験値を掛けて、 * 攻撃者が受け取る経験値の割合を決定できます。 * * (b.result().hpDamage / b.mhp) * b.exp() * * 繰り返しになりますが、デフォルトでは敵のみが経験値を持っているため、 * 対象が実際に敵かどうかを確認する必要があります。 * * b.isEnemy() ? (b.result().hpDamage / b.mhp) * b.exp() : 0 * * つまり、アクターを対象にした場合、経験値は得られません。 * * 与えたダメージの量が敵が残したHPの量よりも大きい場合はどうなるでしょう? * 例えば、HPが100のみの敵に200ダメージを与えた場合。 * * 残念ながら、このプラグインだけでは、 * アクションが実行される前に敵のHPにアクセスすることはできませんが、 * そのようなプラグインがあり、 * アクション結果の'oldHp'というプロパティにこの情報が保存されている場合、 * 下記を使ってください。 * * b.isEnemy() ? (Math.min(b.result().hpDamage, b.result().oldHp) / b.mhp) * b.exp() : 0 * * * --------------------------------------------------------------------------- * @param Default Action Exp Formula * @text アクション経験値の式 * @desc アクションから得られる経験値を計算する時、使用する数式 * @default b.isEnemy() && b.isDead() ? b.exp() : 0 * --------------------------------------------------------------------------- */