当サイトの運営者です。ゲーム制作とプラグイン開発が好きで、コミュニティに貢献したいと考えています。
RPGツクールMZでゲームを制作中です。
※プログラマ・エンジニアではありません。
NRP 奥義システムの実装 - NRP_SpecialSkill.js
シェア用テキスト:
▼NRP 奥義システムの実装(砂川赳様作) - NRP_SpecialSkill.js
https://plugin-mz.fungamemake.com/archives/6059
ゲージを溜めて発動する特別なスキルを実装します。いわゆる奥義のようなものです。既存のTP制に類似していますが、ゲージを複数持たせることができます。
ふりがな:おうぎしすてむのじっそう
機能概要: ゲージを溜めて発動する特別なスキルを実装します。いわゆる奥義のようなものです。既存のTP制に類似していますが、ゲージを複数持たせることができます。
利用規約(ライセンス):
・著作権:保持
・商用利用:許可
・追加改変:許可
・再配布:許可
・詳細はダウンロードページ・プラグイン内を確認
作者:砂川赳
作者サイト:https://newrpg.seesaa.net//
解説ページ:https://newrpg.seesaa.net/article/489968387.html
ファイル名:NRP_SpecialSkill.js
プラグインのヘルプ:
/*:ja
* @target MZ
* @plugindesc v1.051 奥義システムの実装。
* @author 砂川赳(http://newrpg.seesaa.net/)
* @orderAfter NRP_CountTimeBattle
* @url https://newrpg.seesaa.net/article/489968387.html
*
* @help ゲージを溜めて発動する特別なスキルを実装します。
* いわゆる奥義のようなものです。
*
* 既存のTP制に類似していますが、ゲージを複数持たせることができます。
* また、TPをレベル成長させるプラグイン(NRP_LevelGrowTP.js)
* との併用も可能です。
*
* -------------------------------------------------------------------
* ■使用方法
* -------------------------------------------------------------------
* プラグインパラメータの奥義タイプ一覧に、情報を登録してください。
* ゲージが溜まる条件を詳細に設定できます。
*
* 初期状態では一つだけ登録されていますが、複数登録することも可能です。
* 先頭のデータが『奥義タイプ = 1』として扱われます。
*
* さらに奥義タイプに対応する奥義スキルを設定してください。
* ※以下の『スキルのメモ欄』を参照
*
* -------------------------------------------------------------------
* ■スキルのメモ欄(奥義用)
* -------------------------------------------------------------------
* 奥義となるスキルのメモ欄に以下を記入してください。
*
* ◆<SpecialSkill:[奥義タイプ]>
* スキルを奥義スキルとして設定します。
* <SpecialSkill:1>ならば、奥義タイプ一覧の1番目に対応します。
*
* ◆<SpecialSkillCost:100>
* 奥義ゲージを100ポイント消費します。
* 指定がない場合は全てを消費します。
*
* -------------------------------------------------------------------
* ■スキルのメモ欄(通常用)
* -------------------------------------------------------------------
* ゲージが溜まる条件をスキル毎に設定できます。
* 指定がない場合はプラグインパラメータの既定値を用います。
*
* ◆<SpecialSkillActionValue:10>
* スキル命中時に、スキル使用者の全ゲージを10加算します。
* 対象数や連続回数に比例して増加量も大きくなります。
* ※外れても増加する設定もできます。
*
* ◆<SpecialSkillActionEndValue:10>
* スキル使用後に、スキル使用者の全ゲージを10加算します。
*
* ◆<SpecialSkillChargeValue:10>
* スキルを受けた相手の全ゲージを10加算します。
* 基本的には補助スキルを想定しています。
*
* -------------------------------------------------------------------
* 特定のゲージだけを増加させたい場合は、
* タグ名の末尾に数値を付加してください。
* 例:『SpecialSkillActionValue1』ならば一番目のゲージが対象。
*
* ◆<SpecialSkillActionValue1:10>
* ◆<SpecialSkillActionEndValue1:10>
* ◆<SpecialSkillChargeValue1:10>
*
* -------------------------------------------------------------------
* ■アクター、職業、装備、ステートのメモ欄
* -------------------------------------------------------------------
* メモ欄に記載することで、ゲージの上昇量が変化する特性を設定できます。
*
* ◆<SpecialSkillRate:150>
* 全ゲージの上昇量を150%にします。
*
* ◆<SpecialSkillRegenerateValue:10>
* ターン毎に全ゲージを10加算します。
*
* -------------------------------------------------------------------
* スキルと同じ要領で特定の奥義タイプだけを対象にできます。
*
* ◆<SpecialSkillRate1:150>
* ◆<SpecialSkillRegenerateValue1:10>
*
* -------------------------------------------------------------------
* ■ステートのメモ欄
* -------------------------------------------------------------------
* ◆<SpecialSkillChargeValue:10>
* ステートを受けた相手の全ゲージを10加算します。
*
* -------------------------------------------------------------------
* スキルと同じ要領で特定の奥義タイプだけを対象にできます。
*
* ◆<SpecialSkillChargeValue1:10>
*
* -------------------------------------------------------------------
* ■プラグインコマンド
* -------------------------------------------------------------------
* ◆奥義ゲージの増減
* 奥義ゲージを増減させます。
* 操作するアクターや奥義タイプを指定可能です。
* アクターを指定しなかった場合は、パーティ全員が対象となります。
* 奥義タイプを指定しなかった場合は、全奥義タイプが対象となります。
*
* -------------------------------------------------------------------
* ■レイアウトについて
* -------------------------------------------------------------------
* 初期状態では奥義ゲージを表示する場所が狭いので窮屈です。
* 特にゲージを複数登録した場合は顕著になります。
* 対象はメニュー、ステータス、戦闘の3画面です。
*
* プラグインパラメータによって、ゲージのレイアウトを設定できますが、
* このプラグインだけでは厳しいかもしれません。
* その他のレイアウト系プラグインと組み合わせて、いい感じに調整してください。
* ※このプラグイン単体では無理があるので、作者はさじを投げました。
*
* -------------------------------------------------------------------
* ■利用規約
* -------------------------------------------------------------------
* 特に制約はありません。
* 改変、再配布自由、商用可、権利表示も任意です。
* 作者は責任を負いませんが、不具合については可能な範囲で対応します。
*
* @-----------------------------------------------------------
* @ プラグインコマンド
* @-----------------------------------------------------------
*
* @command ChangeSpecialGauge
* @text 奥義ゲージの増減
* @desc 奥義ゲージを増減させます。
*
* @arg Actor
* @text アクター
* @type actor
* @desc 対象とするアクターです。
* 空白ならパーティ全員を対象にします。
*
* @arg SpecialSkillType
* @text 奥義タイプ
* @type number @min 1
* @desc 増減の対象とする奥義タイプです。
* 空白なら全ての奥義ゲージを対象にします。
*
* @arg Value
* @text 増減量
* @type number @max 99999 @min -99999
* @desc 奥義ゲージの増減量です。
*
* @-----------------------------------------------------------
* @ プラグインパラメータ
* @-----------------------------------------------------------
*
* @param SpecialTypeList
* @text 奥義タイプ一覧
* @type struct<SpecialType>[]
* @default [”{”Condition”:””,”GaugeMax”:”100”,”ActionValue”:””,”ActionEndValue”:””,”RegenerateValue”:””,”DamageValue”:”50 * damage / a.mhp”,”EvadedValue”:””,”FriendsDeadValue”:””,”DefeatEnemyValue”:””,”CriticalValue”:””,”CostColor”:”6”,”ChargedAnimation”:””,”<GaugeLayout>”:””,”Label”:””,”GaugeColor1”:”14”,”GaugeColor2”:”0”}”]
* @desc 奥義タイプの一覧です。
* それぞれがゲージ情報を保有します。
*
* @param ShowGaugeWhenLearned
* @text 奥義所有時のみゲージ表示
* @type boolean
* @default true
* @desc アクターが有効な奥義を覚えている場合のみゲージを表示します。
*
* @param RecoverGauge
* @text 全回復にゲージを含める
* @type boolean
* @default false
* @desc 全回復時に奥義ゲージも回復します。
*
* @param PlusOnlyHit
* @text 命中時のみ加算
* @type boolean
* @default true
* @desc 行動毎のゲージ上昇を命中時のみ有効にします。
*
* @param NotPlusWhenUsed
* @text 奥義発動時は加算しない
* @type boolean
* @default false
* @desc 奥義発動時はゲージ上昇を停止します。
* つまり、自身で発動した奥義ではゲージが溜まりません。
*
* @param NotPlusSameTarget
* @text 同じ対象は加算しない
* @type boolean
* @default false
* @desc 多段技などで同一の対象に複数攻撃を当てても、行動毎の上昇値が溜まらないようにします。
*
* @param MultipleAttenuation
* @text 複数ヒット時に減衰
* @type string
* @desc 範囲技/多段技にてヒット毎のゲージ上昇量を減少させます。
* 例:「value / count」で上昇量/ヒット数へと減衰。
*
* @param <ChargedAnimation>
* @text <満タンアニメーション>
*
* @param WaitChargedAnimation
* @parent <ChargedAnimation>
* @text アニメーションを待つ
* @type boolean
* @default true
* @desc 満タン時のアニメーション終了を待ちます。
* MVでは常にオンとして扱われます。
*
* @param ChargedAnimationInterval
* @parent <ChargedAnimation>
* @text アニメーションの間隔
* @type number
* @default 15
* @desc 満タン時のアニメーションが重なった場合の表示間隔です。
*
* @param WaitDynamicMotion
* @parent <ChargedAnimation>
* @text DynamicMotionを待つ
* @type boolean
* @default true
* @desc DynamicMotion併用時、帰還を待ってから満タンアニメーションを実行します。
*
* @-----------------------------------------------------------
*
* @param <GaugeLayout>
* @text <ゲージのレイアウト>
*
* @param ShowGaugeNumber
* @parent <GaugeLayout>
* @text 数値の表示
* @type boolean
* @default false
* @desc ゲージ上に現在値を数値表示します。
*
* @param LabelWidth
* @parent <GaugeLayout>
* @text ラベルの横幅
* @type number
* @desc ラベルを表示する横幅です。
* 不要な場合は0にしてください。
*
* @param GaugeWidth
* @parent <GaugeLayout>
* @text 横幅
* @type number
* @desc ゲージの横幅です。初期値は128です。
* ここからラベル幅が引かれることに注意です。
*
* @param GaugeHeight
* @parent <GaugeLayout>
* @text 縦幅
* @type number
* @desc ゲージの縦幅です。初期値は12です。
*
* @param GaugeInterval
* @parent <GaugeLayout>
* @text ゲージの間隔
* @type number
* @default 16
* @desc ゲージ同士の間隔です。
*
* @param GaugeFlash
* @parent <GaugeLayout>
* @text ゲージフラッシュ
* @type boolean
* @default true
* @desc 満タンになったゲージをフラッシュさせます。
*
* @-----------------------------------------------------------
*
* @param ShowMenu
* @parent <GaugeLayout>
* @text メニュー画面に表示
* @type boolean
* @default true
* @desc メニュー画面に奥義ゲージを表示します。
*
* @param MenuStartGaugeX
* @parent ShowMenu
* @text 開始X座標(メニュー)
* @type number @max 9999 @min -9999
* @default 0
* @desc メニューにゲージを表示するX座標です。
* アクター名からの相対座標を指定してください。
*
* @param MenuStartGaugeY
* @parent ShowMenu
* @text 開始Y座標(メニュー)
* @type number @max 9999 @min -9999
* @default 96
* @desc メニューにゲージを表示するY座標です。
* アクター名からの相対座標を指定してください。
*
* @-----------------------------------------------------------
*
* @param ShowSkillStatus
* @parent <GaugeLayout>
* @text スキル画面に表示
* @type boolean
* @default true
* @desc スキル画面に奥義ゲージを表示します。
*
* @-----------------------------------------------------------
*
* @param ShowStatus
* @parent <GaugeLayout>
* @text ステータス画面に表示
* @type boolean
* @default true
* @desc ステータス画面に奥義ゲージを表示します。
*
* @param StatusStartGaugeX
* @parent ShowStatus
* @text 開始X座標(ステータス)
* @type number @max 9999 @min -9999
* @default 0
* @desc ステータスにゲージを表示するX座標です。
* レベルからの相対座標を指定してください。
*
* @param StatusStartGaugeY
* @parent ShowStatus
* @text 開始Y座標(ステータス)
* @type number @max 9999 @min -9999
* @default 144
* @desc ステータスにゲージを表示するY座標です。
* レベルからの相対座標を指定してください。
*
* @-----------------------------------------------------------
*
* @param ShowBattle
* @parent <GaugeLayout>
* @text 戦闘画面に表示
* @type boolean
* @default true
* @desc 戦闘画面に奥義ゲージを表示します。
*
* @param BattleStartGaugeX
* @parent ShowBattle
* @text 開始X座標(戦闘)
* @type number @max 9999 @min -9999
* @default 0
* @desc 戦闘にゲージを表示するX座標です。
* アクター名からの相対座標を指定してください。
*
* @param BattleStartGaugeY
* @parent ShowBattle
* @text 開始Y座標(戦闘)
* @type number @max 9999 @min -9999
* @default 96
* @desc 戦闘にゲージを表示するY座標です。
* アクター名からの相対座標を指定してください。
*
* @param BattleAdjustNameY
* @parent ShowBattle
* @text HP調整Y座標
* @type number @max 9999 @min -9999
* @default -24
* @desc 戦闘時、名前~TPのY座標を調整します。
*
* @param BattleNameHpInterval
* @parent ShowBattle
* @text 名前~HPの間隔
* @type number
* @default 0
* @desc 戦闘時、名前とHPの間隔を数値分広げます。
*/