当サイトの運営者です。ゲーム制作とプラグイン開発が好きで、コミュニティに貢献したいと考えています。
RPGツクールMZでゲームを制作中です。
※プログラマ・エンジニアではありません。
ダメージカットを行うシールドを提供します - KEN_DamageCutShield.js
シェア用テキスト:
▼ダメージカットを行うシールドを提供します(KEN様作) - KEN_DamageCutShield.js
https://plugin-mz.fungamemake.com/archives/8009
ダメージカットを行うシールドを提供します
ふりがな:だめーじかっとをおこなうしーるどをていきょうします
機能概要: ダメージカットを行うシールドを提供します
利用規約(ライセンス): MITライセンス
作者:KEN
作者サイト:https://github.com/t-kendama/RPGMakerMZ/blob/master/KEN_DamageCutShield.js
解説ページ:https://github.com/t-kendama/RPGMakerMZ/blob/main/KEN_D…
ダウンロードページ:https://raw.githubusercontent.com/t-kendama/RPGMakerMZ/…
ファイル名:KEN_DamageCutShield.js
プラグインのヘルプ:
@help * ダメージカットを行うシールドを提供します。 * * -------------------- 概要 -------------------- * 【シールドの基本的な仕様】 * シールドが付与されているバトラーがHPダメージの攻撃を受けたとき、 * シールドを消費してダメージを防ぐことができます。 * ダメージがシールド値を超えた場合、超過した分だけ * ダメージを受けます。 * 例.ダメージが100、シールド30の場合、70ダメージを受けます。 * * シールドはダメージを受けない限り解除されません。 * ただし、後述のステート設定で持続ターン数を設定できます。 * * 【細かい仕様】 * ・イベントコマンドの「HPの増減」でHPを減らした場合、シールドの耐久値に * 関わらずHP減少処理が実行されます。 * * ・イベントコマンドの「全回復」を使用した場合、シールド状態は解除されます。 * * 【シールドの描画】 * シールドをHPゲージ上に描画します。 * またシールドが付与されている間、アイコンおよび持続ターン数を描画できます。 * * -------------------- 使い方 -------------------- * 本プラグインは事前にステート設定が必要です。 * * 【ステート設定】 * シールドが付与されたとき、プラグインパラメータに設定したIDのステートが * 連動して付与されます。 * ※このステートは必ず設定してください * * シールドの持続ターンはステートIDの「自動解除のタイミング」に依存します。 * 「自動解除のタイミング」を「なし」に設定した場合、シールドは自動解除 * されなくなります。 * * * 【シールドの付与方法】 * アイテムまたはスキル欄のメモ欄に設定します。 * * <DamageCutShield: 数値 or 数式> * 記述欄:アイテム・スキル * アイテム、スキルの対象者にシールドを付与します。 * シールド耐久値はスクリプトも指定可能です。 * 例. * <DamageCutShield: 100> シールドが100増加します * <DamageCutShield: -50> シールドが50減少します * <DamageCutShield: a.mat> スキル使用者の魔力分のシールドが増加します * * <OwnDamageCutShield: 数値 or 数式> * 記述欄:アイテム・スキル * 自分自身にシールドを付与します。 * 攻撃しつつ自分自身にシールドを付与するような効果が作成できます。 * * * 【その他の設定】 * <PenetrateShield> * 記述欄:アイテム・スキル * このタグが記述されたアイテム・スキルはシールドを無視してダメージを与えます。 * * <GiveShieldRate: 数値> * 記述欄:武器・防具・ステート * シールド付与率を指定します。単位は小数で指定します。 * 複数の装備品をつけていた場合、シールド付与率は装備の合計で算出されます。 * * 記述例. * <GiveShieldRate: 0.5> 1.5倍のシールド値を得るようになります。 * <GiveShieldRate: -0.2> 0.8倍のシールド値を得るようになります。 * * <ReceiveShieldRate: 数値> * 記述欄:武器、防具、ステート * シールド獲得率を指定します。単位は小数で指定します。 * 複数の装備品をつけていた場合、シールド獲得率は装備の合計で算出されます。 * * <InvalidShield> * 記述欄:武器、防具、ステート * このタグが指定された装備・ステートが付与されている場合、 * シールドが得られなくなります。 * * <DamageWithShield: 数値> * 記述欄:武器、防具、ステート * シールド耐久値を減らすダメージを設定します。 * 継続的にダメージを与える装備やステートを実装するときに使用します。 * * 記述例. * <DamageWithShield: 20> ターン経過時、20ダメージを与えます * <DamageWithShield: a.mhp * 0.1> ターン経過時、バトラーの最大HP10%のダメージを与えます * * <DamageCutShieldMax: 数値 or 数式> * 記述欄:アクター、エネミー * バトラー個別にシールド耐久値の上限を設定します。 * <DamageCutShieldMax: a.mhp> と表記するとシールド耐久値の上限がバトラーの * 最大HPの値に制限されます。 * * * -------------------- スクリプト -------------------- * ・バトラーのシールド耐久値を取得 * $gameActors.actor(アクターID).damageCutShield() * $gameTroop.members()[エネミーのインデックス].damageCutShield() * * ・シールドを増加(マイナス指定可) * $gameActors.actor(アクターID).gainDamageCutShield(効果量) * $gameTroop.members()[エネミーのインデックス].damageCutShield(効果量) * * ・シールド状態を解除 * $gameActors.actor(アクターID).clearDamageCutShield() * $gameTroop.members()[エネミーのインデックス].clearDamageCutShield() * * * -------------------- 上級者向け設定について -------------------- * 本プラグインはエネミーのシールドを描画する機能を持ちません。 * ※内部的にシールド効果は適用されます * * エネミーのシールドを描画する場合は他プラグインとの併用をご検討ください。 * シールドの描画に関する細かい挙動については対応しかねます。 * ご了承ください。 * * * * @command GainDamageCutShieldActor * @text アクターシールドを増減 * @desc アクターのシールド値を増減します * * @arg actorId * @text アクターID * @desc シールドを増減するアクターID * @type actor * @default 1 * * @arg value * @text シールド増減値 * @desc 増減するシールド値 * @type number * @default 0 * @max 999999 * @min -999999 * * @command GainDamageCutShieldParty * @text パーティのシールドを増減 * @desc パーティ全員のシールド値を増減します * * @arg value * @text シールド増減値 * @desc 増減するシールド値 * @type number * @default 0 * @max 999999 * @min -999999 * * @command ClearDamageCutShieldActor * @text アクターシールドを解除 * @desc アクターのシールド状態を解除します * * @arg actorId * @text アクターID * @desc シールドを増減するアクターID * @type actor * @default 1 * * @command ClearDamageCutShieldParty * @text パーティのシールドを解除 * @desc パーティ全員のシールド状態を解除します * * * @command GainDamageCutShieldEnemy * @text エネミーのシールドを増減 * @desc エネミーのシールド値を増減します * * @arg enemyIndex * @text エネミーインデックス * @desc シールドを増減するエネミーのインデックス番号 * @type number * @default 0 * * @arg value * @text シールド増減値 * @desc 増減するシールド値 * @type number * @default 0 * @max 999999 * @min -999999 * * @command GainDamageCutShieldTroop * @text 敵グループのシールドを増減 * @desc 敵グループ全員のシールド値を増減します * * @arg value * @text シールド増減値 * @desc 増減するシールド値 * @type number * @default 0 * @max 999999 * @min -999999 * * @command ClearDamageCutShieldEnemy * @text エネミーのシールドを解除 * @desc エネミーのシールド状態を解除します * * @arg enemyIndex * @text エネミーインデックス * @desc シールドを解除するエネミーのインデックス番号 * @type number * @default 0 * * @command ClearDamageCutShieldTroop * @text 敵グループのシールドを解除 * @desc 敵グループ全員のシールド状態を解除します * * * @param generalConfig * @text 基本設定 * @desc 基本設定です ※この項目は使用しません * * @param stateID * @text ステートID * @desc シールドを得た場合、このステートがバトラーに付与されます 必ず2以上の値を設定してください * @type state * @default 2 * @parent generalConfig * * @param maxShieldValue * @text シールド最大値 * @desc シールド耐久値の最大値を設定します ※0にすると制限が無くなります * @type number * @default 99999 * @parent generalConfig * * @param seBlockDamage * @text ダメージブロック効果音 * @desc シールドでダメージを防いだときの効果音です * @type struct<SE> * @parent generalConfig * * @param battleLogConfig * @text バトルログ設定 * @desc バトルログに関する設定です ※この項目は使用しません * * @param msgGetShield * @text シールド獲得メッセージ * @desc シールドを獲得したときのメッセージ %1:ターゲット名 %2:シールド獲得量 %3:シールド耐久値 * @type string * @default %1は%2のシールドを得た!(シールド耐久値%3) * @parent battleLogConfig * * @param msgLossShield * @text シールド減少メッセージ * @desc シールド減少時のメッセージ %1:ターゲット名 %2:シールド減少量 %3:シールド耐久値 * @type string * @default %1のシールドが%2減少した!(シールド耐久値%3) * @parent battleLogConfig * * @param msgBreakShield * @text シールド破壊メッセージ * @desc シールドが破壊(0になった)されたときのメッセージ 空欄にすると表示しません * @type string * @default %1のシールドが破壊された! * @parent battleLogConfig * * @param msgBlockedDamage * @text 被ダメージのメッセージ * @desc シールドが付与状態でダメージを受けたときのメッセージです %1:ターゲット名 %2:シールド減少値 %3:シールド耐久値 * @type string * @default %1のシールドが%2減少した!(シールド耐久値%3) * @parent battleLogConfig * * @param PopUpConfig * @text ポップアップ設定 * @desc ダメージポップアップの設定です ※この項目は使用しません * * @param popupDisplayShield * @text ポップアップ表示 * @desc シールド増減時にポップアップを表示します * @type boolean * @default true * @parent PopUpConfig * * @param popupHideBlock * @text ブロック時ダメージを非表示 * @desc シールドでダメージを防いだとき(0のとき)ダメージポップアップを非表示にします * @type boolean * @default true * @parent PopUpConfig * * @param popupShieldIcon * @text アイコン表示 * @desc ポップアップ時にシールドアイコンを表示します * @type icon * @default 0 * @parent PopUpConfig * * @param popupColorShieldGain * @text シールド上昇時の色 * @desc シールド上昇時のポップアップの表示色 (デフォルト: rgba(255, 255, 200, 1.0)) * @type string * @default rgba(255, 255, 200, 1.0) * @parent PopUpConfig * * @param popupColorShieldLoss * @text シールド減少時の色 * @desc シールド減少時のポップアップの表示色 (デフォルト: rgba(200, 200, 255, 1.0)) * @type string * @default rgba(200, 200, 255, 1.0) * @parent PopUpConfig * * @param LabelConfig * @text アイコン描画設定 * @desc アイコン関連の設定項目です ※このパラメータは使用しません * * @param labelIconIndex * @text アイコン画像 * @desc シールドが付与されたときに描画するアイコン画像です * @type icon * @default 0 * @parent LabelConfig * * @param labelIconX * @text アイコン画像オフセットX * @desc アイコン画像の表示座標オフセットX (デフォルト: 0) * @type number * @default 0 * @min -1000 * @max 1000 * @parent LabelConfig * * @param labelIconY * @text アイコン画像オフセットY * @desc アイコン画像の表示座標オフセットY (デフォルト: 0) * @type number * @min -1000 * @max 1000 * @default 0 * @parent LabelConfig * * @param TurnConfig * @text ターン数描画設定 * @desc シールドの持続ターン数の描画設定項目です ※このパラメータは使用しません。 * * @param turnDisplay * @text ターン数表示 * @desc シールドのターン数を表示します(シールドをターン経過で自動解除しない場合 OFFにすることを推奨します) * @type boolean * @default false * @parent TurnConfig * * @param turnFontSize * @text フォントサイズ * @desc シールド値のフォントサイズ(デフォルト: 16) * @type number * @default 16 * @parent TurnConfig * * @param turnX * @text ターン数X座標 * @desc ターン数のX座標(デフォルト: 16) * @type number * @default 16 * @min -1000 * @max 1000 * @parent TurnConfig * * @param turnY * @text ターン数Y座標 * @desc ターン数のY座標(デフォルト: 16) * @type number * @min -1000 * @max 1000 * @default 16 * @parent TurnConfig * * @param GaugeConfig * @text ゲージ設定 * @desc ゲージ関連の設定項目です ※このパラメータは使用しません * * @param displayGauge * @text ゲージ表示 * @desc シールド耐久値を表示するゲージをHPゲージの上に描画します * @type boolean * @default true * @parent GaugeConfig * * @param displayType * @text 描画方式 * @desc シールドの描画方式を選びます * @type select * @option ゲージの上に描画 * @value 0 * @option ゲージの外枠に描画 * @value 1 * @default 0 * @parent GaugeConfig * * @param drawShieldValue * @text 耐久値を表示 * @desc シールド耐久値を描画します * @type boolean * @default true * @parent GaugeConfig * * @param gaugeValueFontSize * @text フォントサイズ * @desc シールド耐久値のフォントサイズ(デフォルト: 12) * @type number * @default 12 * @parent GaugeConfig * * @param gaugeValueX * @text シールド耐久値X座標 * @desc シールド耐久値を表示するX座標 (デフォルト: 36) * @type number * @default 36 * @min -1000 * @max 1000 * @parent GaugeConfig * * @param gaugeValueY * @text シールド耐久値Y座標 * @desc シールド耐久値を表示するY座標 (デフォルト: 8) * @type number * @default 8 * @min -1000 * @max 1000 * @parent GaugeConfig * * @param gaugeColor1 * @text ゲージ色1 * @desc シールドのゲージ色1(デフォルト: rgba(200, 200, 200, 0.9)) * @type string * @default rgba(200, 200, 200, 0.9) * @parent GaugeConfig * * @param gaugeColor2 * @text ゲージ色2 * @desc シールドのゲージ色2(デフォルト: rgba(200, 200, 200, 0.9)) * @type string * @default rgba(200, 200, 200, 0.9) * @parent GaugeConfig * * @param AdvanceConfig * @text 上級者向け設定 * @desc 上級者向けの設定です ※この項目は使用しません * * @param EnemyConfig * @text エネミーのシールド描画設定 * @desc エネミーのシールド描画設定です この項目は他プラグインとの併用を想定しています ※この項目は使用しません。 * @parent AdvanceConfig * * @param enemyIconOffsetX * @text アイコンのX座標オフセット値 * @desc エネミーのシールドアイコンX座標のオフセット値 * @type number * @default 0 * @min -1000 * @max 1000 * @parent EnemyConfig * * @param enemyIconOffsetY * @text アイコンのY座標オフセット値 * @desc エネミーのシールドアイコンY座標のオフセット値 * @type number * @default 0 * @min -1000 * @max 1000 * @parent EnemyConfig * * @param enemyTurnOffsetX * @text ターン数のX座標オフセット値 * @desc エネミーのシールドターン数X座標のオフセット値 * @type number * @default 0 * @min -1000 * @max 1000 * @parent EnemyConfig * * @param enemyTurnOffsetY * @text ターン数のY座標オフセット値 * @desc エネミーのシールドターン数Y座標のオフセット値 * @type number * @default 0 * @min -1000 * @max 1000 * @parent EnemyConfig * *