
当サイトの運営者です。ゲーム制作とプラグイン開発が好きで、コミュニティに貢献したいと考えています。
RPGツクールMZでゲームを制作中です。
※プログラマ・エンジニアではありません。
▼YEP Lunatic Pack - Action Beginning & End Effects(Yanfly様作) - YEP_Z_ActionBeginEnd.js
https://plugin.fungamemake.com/archives/10538
アクションの最初または最後に発生する効果を追加
ふりがな:あくしょんびぎんあんどえんどえふぇくと
機能概要: アクションの最初または最後に発生する効果を追加
利用規約(ライセンス):http://www.yanfly.moe/wiki/Category:Yanfly_Engine_Plugi…
作者:Yanfly
作者サイト:http://yanfly.moe/
解説ページ:https://fungamemake.com/archives/1876
ダウンロードページ:http://yanfly.moe/2017/12/01/yep-159-lunatic-pack-actio…
ファイル名:YEP_Z_ActionBeginEnd.js
プラグインのヘルプ:
/*:ja * @plugindesc v1.01 (Lunatic Pack)アクションの最初または最後に発生する効果を追加します。 * @author Yanfly Engine Plugins * * @help * 翻訳:ムノクラ * https://munokura.tk/ * https://twitter.com/munokura/ * * ============================================================================ * Introduction * ============================================================================ * * このプラグインは以下のプラグインを必要とします: * - Battle Engine Core * * このプラグインをプラグインマネージャの上記のプラグインの下に置きます。 * * 時々、戦闘で行動に追加の効果を追加したいと思います。 * これらの効果は、HPをさらに追加すること、 * 他の全てが起こった後に新しいステートを使用者に適用すること、 * デバフを削除すること、アニメーションを再生すること、 * 今度の行動によって直接与えられる全ダメージの一部を吸収することまで及ぶ。 * このLunaticPackは、アイテムやスキルを強化したり、 * ステートの結果としてそれらをグローバル化したりするために使用できる * 新しい効果のバッチを提供します。 * * *注意*:このプラグインはRPGツクールMVバージョン1.5.0以降でよく使われます。 * まだ低いバージョンでこのプラグインを使用することができます、 * しかしそれなしでプラグインパラメータを変更することは困難でしょう。 * * ============================================================================ * Notetags * ============================================================================ * * スキル、アイテム、ステートのメモ欄に次のメモタグを挿入して、 * これらの効果のいずれかを与えます。 * * --- * * スキル、アイテム、ステートのメモタグ * * <timing Action: effect> * - このプラグインのメモタグのほとんどは上記のフォーマットに従います。 * 'timing'は'Begin'・'End'のいずれかに置き換えられ、 * 'effect'は下記のEFFECTの章のエントリに置き換えられます。 * * スキル/アイテムにもっと効果を与えるために複数のメモタグを挿入してください。 * 多数の効果が存在する場合、それらが発生する順番は次のとおりです。 * 最初にスキル/アイテム、 * 優先順位の高いものから低いものへ順に並べたステート効果。 * * =-=-=-= Action TIMING =-=-=-= * * <Begin Action: effect> * - タイミングが'begin'の場合、 * この効果はアクションのコストが使用された後に発生します。 * * <End Action: effect> * - タイミングが'終了'の場合、 * 現在のアクションの終了時に全てのアクションシーケンスが完了した後に * 発生します。 * * =-=-=-= Action EFFECTS =-=-=-= * * --- Animation Effects --- * * <timing Action: Animation x> * <timing Action: Animation x, Mirror> * <timing Action: Animation x, Delay y> * <timing Action: Animation x, Mirror, Delay y> * - アクションを実行している使用者でアニメーションxが再生されます。 * エフェクトラインに'Mirror'を挿入すると、 * アニメーションはミラーリングされます。 * 'Delayy'を挿入して'y'を数値に置き換えると、 * アニメーションの再生前にアニメーションがyフレーム遅延します。 * 提案者:Yanfly * * --- HP Effects --- * * <timing Action: +x HP> * <timing Action: -x HP> * - 'effect'を上記の形式に置き換えます。 * 'x'を使用者に適用したい一定量のHPに置き換えます。 * 提案者:Yanfly * * <timing Action: +x HP%> * <timing Action: -x HP%> * - 'effect'を上記の形式に置き換えます。 * 使用者に適用するには、 * 'x'を使用者のMaxHPのx%に等しいHPに置き換えます。 * 提案者:Yanfly * * <End Action: Drain x% Total HP Damage> * - エンドアクションでのみ機能します。 * 上記のフォーマットを使用してください。 * 'x'をこのアクションの使用者に与えられた総HPダメージの * パーセンテージで置き換えHP回復します。 * 提案者:Yanfly * * <End Action: Recoil x% Total HP Damage> * - エンドアクションでのみ機能します。 * 上記のフォーマットを使用してください。 * 使用者がこのアクションで与えた全てのHPダメージの合計の'x%'が * 使用者のダメージになります。 * 提案者:Yanfly * * --- MP Effects --- * * <timing Action: +x MP> * <timing Action: -x MP> * - 'effect''を上記の形式に置き換えます。 * 'x'を使用者に適用したい一定量のMPに置き換えます。 * 提案者:Yanfly * * <timing Action: +x MP%> * <timing Action: -x MP%> * - 'effect'を上記の形式に置き換えます。 * 使用者に適用するには、 * 'x'を使用者のMaxMPのx%に等しいMPに置き換えます。 * 提案者:Yanfly * * <End Action: Drain x% Total MP Damage> * - エンドアクションでのみ機能します。 * 上記のフォーマットを使用してください。 * 'x'をこのアクションによって使用者が直接与えた全ての総MPダメージの割合で * 置き換えてください。 * MPを回復します。 * 提案者:Yanfly * * <End Action: Recoil x% Total MP Damage> * - エンドアクションでのみ機能します。 * 上記のフォーマットを使用してください。 * 'x'をこのアクションによって使用者によって * 直接与えられた全ての総MPダメージの割合で置き換えてください。 * MPとして自己ダメージを与えます。 * 提案者:Yanfly * * --- TP Effects --- * * <timing Action: +x TP> * <timing Action: -x TP> * - 'effect'を上記の形式に置き換えます。 * 'x'を使用者に適用したい一定量のTPに置き換えます。 * 提案者:Yanfly * * <timing Action: +x TP%> * <timing Action: -x TP%> * - 'effect'を上記の形式に置き換えます。 * 使用者に適用するには、'x'を使用者のMaxTPのx%に等しいTPに置き換えます。 * 提案者:Yanfly * * --- Buff/Debuff Effects --- * * <timing Action: Add x Buff> * <timing Action: Add x Buff, y Turns> * <timing Action: Add x Debuff> * <timing Action: Add x Debuff, y Turns> * - 'effect'を上記の形式に置き換えます。 * 'x'を次のパラメータのいずれかに置き換えます。 * 'MaxHP'、'MaxMP'、'ATK'、'DEF'、'MAT'、'MDF'、'AGI'、'LUK'を指定すると、 * それぞれの効果が変わります。 * 能力値'y'ターンでフォーマットを使用する場合、 * 'y'をバフ・デバフを持続させたいターン数に置き換えてください。 * 'y'が使用されていない場合、代わりに5ターン持続します。 * 提案者:Yanfly * * <timing Action: Remove x Buff> * <timing Action: Remove x Debuff> * - 'effect'を上記の形式に置き換えます。 * 'x'を次のパラメータのいずれかで置き換えます。 * 'MaxHP'、'MaxMP'、'ATK'、'DEF'、'MAT'、'MDF'、'AGI'、'LUK'を指定すると、 * それぞれのパラメータが削除されます。 * 条件が満たされた場合、使用者からバフ/デバフが解除。 * 'y'が使用されていない場合、代わりに5ターン持続します。 * 提案者:Yanfly * * --- State Effects --- * * <timing Action: Add State x> * - 'effect'を上記の形式に置き換えます。 * 'x'を使用者に追加したいステートIDに置き換えます。 * 提案者:Yanfly * * <timing Action: Remove State x> * - 'effect'を上記の形式に置き換えます。 * 'x'を使用者から削除したいステートIDに置き換えます。 * 提案者:Yanfly * * ============================================================================ * Lunatic Mode - Effect Code * ============================================================================ * * JavaScriptを知っていてRPGツクールMV1.5.0+を使用している経験豊富な使用者に、 * プラグインで使用できる新しいメモタグ効果を追加するか、 * plugin parametersエントリから現在存在するメモタグ効果の効果を変更できます。 * 次のようになります。 * * --- * * // --------- * // Animation * // --------- * if (data.match(/ANIMATION[ ](d+)/i)) { * var animationId = parseInt(RegExp.$1); * var mirror = data.match(/MIRROR/i); * if (data.match(/DELAY[ ](d+)/i)) { * var delay = parseInt(RegExp.$1); * } else { * var delay = 0; * } * user.startAnimation(animationId, mirror, delay); * * ... * * // ------------------------------- * // Add new effects above this line * // ------------------------------- * } else { * skip = true; * } * * --- * * このコードビットで使用されている各変数は、次のとおりです。 * * -------------------- --------------------------------------------------- * Variable: Refers to: * -------------------- --------------------------------------------------- * item このアクションで使用されているアイテム * skill このアクションで使用されているスキル * * isItem アクションがアイテムの場合はtrueを返します * isSkill アクションがスキルの場合はtrueを返します * * a アクション使用者を返します * user アクション使用者を返します * subject アクション使用者を返します * * b アクションの現在の対象を返します * target アクションの現在の対象を返します * * s[x] スイッチxを返す(true/false) * v[x] 変数xの現在値を返す * * user._result 使用者の現在の結果 * target._result 対象の現在の結果 * userPreviousResult 変更前の使用者の結果 * targetPreviousResult 変更前の対象の結果 * * totalHpDamage アクションによるHPのダメージの合計 * totalMpDamage アクションを受けたMPのダメージの合計 * * skip デフォルト:false。trueの場合、ポップアップ * * --- * * エフェクトコードを元のステートに戻す必要がある場合、 * プラグインマネージャ管理からプラグインを削除し、 * もう一度追加してください。 * コードはデフォルトに戻ります。 * * ============================================================================ * Changelog * ============================================================================ * * Version 1.01: * - Bypass the isDevToolsOpen() error when bad code is inserted into a script * call or custom Lunatic Mode code segment due to updating to MV 1.6.1. * * Version 1.00: * - Finished Plugin! * * ============================================================================ * End of Helpfile * ============================================================================ * * @param Effect Code * @type note * @desc LUNATICMODE:各メモタグのエフェクトのコード。使用されている変数についてはヘルプファイルを参照してください。 * @default ”// ---------n// Animationn// ---------nif (data.match(/ANIMATION[ ](\d+)/i)) {n var animationId = parseInt(RegExp.$1);n var mirror = data.match(/MIRROR/i);n if (data.match(/DELAY[ ](\d+)/i)) {n var delay = parseInt(RegExp.$1);n } else {n var delay = 0;n }n user.startAnimation(animationId, mirror, delay);nn// --------------n// Flat Gain/Lossn// --------------n} else if (data.match(/([\+\-]\d+)[ ]HP/i)) {n value = parseInt(RegExp.$1);n user.gainHp(value);nn} else if (data.match(/([\+\-]\d+)[ ]MP/i)) {n value = parseInt(RegExp.$1);n user.gainMp(value);nn} else if (data.match(/([\+\-]\d+)[ ]TP/i)) {n value = parseInt(RegExp.$1);n user.gainTp(value);nn// --------------------n// Percentile Gain/Lossn// --------------------n} else if (data.match(/([\+\-]\d+)([%%])[ ]HP/i)) {n rate = parseFloat(RegExp.$1) * 0.01;n value = Math.round(user.mhp * rate);n user.gainHp(value);nn} else if (data.match(/([\+\-]\d+)([%%])[ ]MP/i)) {n rate = parseFloat(RegExp.$1) * 0.01;n value = Math.round(user.mmp * rate);n user.gainMp(value);nn} else if (data.match(/([\+\-]\d+)([%%])[ ]TP/i)) {n rate = parseFloat(RegExp.$1) * 0.01;n value = Math.round(user.maxTp() * rate);n user.gainTp(value);nn// ------------------------n// Add/Remove Buffs/Debuffsn// ------------------------n} else if (data.match(/ADD[ ](.*)[ ]BUFF/i)) {n var str = String(RegExp.$1).toUpperCase();n var paramId = DataManager.getParamId(str);n if (data.match(/(\d+)[ ]TURN/i)) {n var turns = parseInt(RegExp.$1);n } else {n var turns = 5;n }n if (paramId >= 0) {n user.addBuff(paramId, turns);n } else {n skip = true;n }nn} else if (data.match(/REMOVE[ ](.*)[ ](?:BUFF|DEBUFF)/i)) {n var str = String(RegExp.$1).toUpperCase();n var paramId = DataManager.getParamId(str);n if (paramId >= 0) {n user.removeBuff(paramId);n } else {n skip = true;n }nn// -----------------n// Add/Remove Statesn// -----------------n} else if (data.match(/ADD STATE[ ](\d+)/i)) {n var stateId = parseInt(RegExp.$1);n user.addState(stateId);nn} else if (data.match(/REMOVE STATE[ ](\d+)/i)) {n var stateId = parseInt(RegExp.$1);n if (user.isStateAffected(stateId)) {n user.removeState(stateId);n } else {n skip = true;n }nn// ------------n// Drain/Recoiln// ------------n} else if (data.match(/(\d+)([%%])[ ]TOTAL HP[ ](?:DMG|DAMAGE)/i)) {n if (totalHpDamage !== 0) {n rate = parseFloat(RegExp.$1) * 0.01;n value = Math.round(totalHpDamage * rate);n if (data.match(/DRAIN/i)) {n user.gainHp(value);n } else if (data.match(/RECOIL/i)) {n user.gainHp(-value);n } else {n skip = true;n }n }nn} else if (data.match(/(\d+)([%%])[ ]TOTAL MP[ ](?:DMG|DAMAGE)/i)) {n if (totalMpDamage !== 0) {n rate = parseFloat(RegExp.$1) * 0.01;n value = Math.round(totalMpDamage * rate);n if (data.match(/DRAIN/i)) {n user.gainMp(value);n } else if (data.match(/RECOIL/i)) {n user.gainMp(-value);n } else {n skip = true;n }n }nn// -------------------------------n// Add new effects above this linen// -------------------------------n} else {n skip = true;n}” * */
当サイトの運営者です。ゲーム制作とプラグイン開発が好きで、コミュニティに貢献したいと考えています。
RPGツクールMZでゲームを制作中です。
※プログラマ・エンジニアではありません。
Copyright© #ツクプラ , 2025 All Rights Reserved.