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
 * ---------------------------------------------------------------------------
 */
0

スポンサードリンク

スポンサードリンク

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