ステートの機能を色々と拡張【RPGツクールMZ&MVプラグイン】

2024年05月21日

 ステートの機能を色々と拡張します。



 例えば、以下のようなステートが作成できます。

  • 割合効果ではない毒や能力変化
  • 使用者の魔法力が高いほど効果の上がる毒や能力変化
  • 命中時にダメージを与えるステート
    ※つまり、ステート耐性で命中の決まるダメージ技です。
     FFシリーズのグラビデや即死効果など。

  • ターン経過で解除された際にスキルを発動するステート
    例えば、死の宣告などが可能です。

目次


導入方法(Install)

更新履歴(History)

再生値の設定(Regeneration Value)

能力変化の設定(Parameter Change)

ステート時にダメージ(Damage State)

その他の効果(Other Effects)

解除時にスキルを発動

全滅判定

全回復で解除しない

戦闘不能で解除しない

プラグインパラメータ(Plugin Parameter)

パラメータリスト(ParameterList)

ステートを常に更新(AlwaysUpdateState)

ステートのミスを表示(ShowStateMiss)

更新方法(UpdateType)

プラグインパラメータ(パラメータ)(Plugin Parameter Parameter)

タイプ(Type)

ID(Id)

識別名(Key)

タグ名(Tag)


導入方法(install)


 以下のファイルを右クリックで保存し 、[プロジェクト]\js\plugins に放り込みます。ツクールのプラグイン管理から機能をONにしてください。
 ※このプラグインはMV、MZの両方で有効です。

 NRP_StateEX.js ver1.07(2024/05/21)

 ※NRP_TraitsPlus.jsと併用する場合は、当プラグインを下に配置してください。

更新履歴(History)


2024/05/21(ver1.07)

  • ステート付加が外れた際にミスを表示できるようにした。

2024/04/05(ver1.06)

  • ステートを常に更新がオンの場合、対象の撃破と同時にステートを付加するとエラーになる不具合修正。

2023/10/23(ver1.05 -> 1.051)

  • CTBプラグイン&ため技プラグインと併用した際、ステート終了時のスキル発動と重なるとため技が発動しなくなる競合に対処。
  • ↑の修正がうまく機能していない不具合修正。(ver1.051)

2023/08/30(ver1.04)


2023/08/22(ver1.03)


2023/08/09(ver1.02)


2023/01/22(ver1.01)

  • 『ステートを常に更新』をオンにすると敵撃破時にエラーとなる不具合修正。

2022/06/24(ver1.00)

  • 公開!

再生値の設定(Regeneration Value)


 ステートのメモ欄に以下を指定してください。

<HrgExValue:?>

 指定した計算式を元にHP再生値を設定します。

<MrgExValue:?>

 指定した計算式を元にMP再生値を設定します。

<TrgExValue:?>

 指定した計算式を元にTP再生値を設定します。

※いずれも『再生率』ではなく『再生値』です。
 割合ではない数値を指定可能です。



 例えば、以下の数式では「魔法力 - 魔法防御」を設定します。
<HrgExValue:b.mdf - a.mat>


 魔法力が相手の魔法防御を上回った分だけ、継続的にダメージを与え続けます。
 ※ダメージを与える場合は値をマイナスにしてください。

 aはステートをかけた側、bはかけられた側です。
 値の計算はステートがかかったタイミングで行われます。
 ランダム幅などの設定はできません。

応用

<HrgExValue:Math.min(b.mdf - a.mat, -1)>


 先程の「b.mdf - a.mat」の式では、相手の魔法防御が高い場合、逆に回復してしまいます。
 そこで最大でも値が-1以下となるように設定する数式です。

能力変化の設定(Parameter Change)


 ステートのメモ欄に以下を指定してください。

通常能力値

<MhpEx:?>

 指定した計算式を元に最大HP(mhp)を変更します。

<MmpEx:?>

 指定した計算式を元に最大MP(mmp)を変更します。

<AtkEx:?>

 指定した計算式を元に攻撃力(atk)を変更します。

<DefEx:?>

 指定した計算式を元に防御力(def)を変更します。

<MatEx:?>

 指定した計算式を元に魔法力(mat)を変更します。

<MdfEx:?>

 指定した計算式を元に魔法防御(mdf)を変更します。

<AgiEx:?>

 指定した計算式を元に敏捷性(agi)を変更します。

<LukEx:?>

 指定した計算式を元に運(luk)を変更します。


 例えば、以下なら攻撃力をスキル使用者の魔法力の半分だけ上昇させます。
<AtkEx:a.mat / 2>

 なお、これらの補正値は通常の能力値補正や強化/弱体の計算よりも、後に加算・減算されます。

追加能力値

 ※いずれも1が100%となります。

<HitEx:?>

 指定した計算式を元に命中率(hit)を変更します。

<EvaEx:?>

 指定した計算式を元に回避率(eva)を変更します。

<CriEx:?>

 指定した計算式を元に会心率(cri)を変更します。

<CevEx:?>

 指定した計算式を元に会心回避率(cev)を変更します。

<MevEx:?>

 指定した計算式を元に魔法回避率(mev)を変更します。

<MrfEx:?>

 指定した計算式を元に魔法反射率(mrf)を変更します。

<CntEx:?>

 指定した計算式を元に反撃率(cnt)を変更します。

<HrgEx:?>

 指定した計算式を元にHP再生率(hrg)を変更します。

<MrgEx:?>

 指定した計算式を元にMP再生率(mrg)を変更します。

<TrgEx:?>

 指定した計算式を元にTP再生率(trg)を変更します。

特殊能力値

 ※いずれも1が100%となります。

<TgrEx:?>

 指定した計算式を元に狙われ率(tgr)を変更します。

<GrdEx:?>

 指定した計算式を元に防御効果率(grd)を変更します。

<RecEx:?>

 指定した計算式を元に回復効果率(rec)を変更します。

<PhaEx:?>

 指定した計算式を元に薬の知識(pha)を変更します。

<McrEx:?>

 指定した計算式を元にMP消費率(mcr)を変更します。

<TcrEx:?>

 指定した計算式を元にTPチャージ率(tcr)を変更します。

<PdrEx:?>

 指定した計算式を元に物理ダメージ率(pdr)を変更します。

<MdrEx:?>

 指定した計算式を元に魔法ダメージ率(mdr)を変更します。

<FdrEx:?>

 指定した計算式を元に床ダメージ率(fdr)を変更します。

<ExrEx:?>

 指定した計算式を元に経験獲得率(exr)を変更します。


 これらはプラグインパラメータのパラメータリストに登録されています。
 外部プラグインで独自パラメータを追加した場合は、それらを追加で定義できるかも?
 ※実装次第なので、確実には保証できません。

ステート時にダメージ(Damage State)


 ステートのメモ欄に以下を指定してください。

<StateChangeHp:?>

 ステート付加時に指定した計算式でHPを変更します。

<StateChangeMp:?>

 ステート付加時に指定した計算式でMPを変更します。

<StateChangeTp:?>

 ステート付加時に指定した計算式でTPを変更します。


 いずれも値が+なら回復、−ならダメージです。

 なお、継続中のステートに上書きした場合は効果がありません。
 プラグインパラメータの『ステートを常に更新』をオンにするか、スキル側にステート付加と解除を同時に設定すれば、連続で有効になります。

<StateDamageSilent>

 上記の際に数値表示を行いません。


<StateChangeHp:-b.hp>

 で、即死ステートになります。
 <StateDamageSilent>を組み合わせると、ダメージ表示もなくなります。

その他の効果(Other Effects)


 ステートのメモ欄に以下を指定してください。

解除時にスキルを発動

<StateEndSkill:100>

 ステートがターン経過で解除される際に100番のスキルを発動します。
 なお、範囲が単体の場合、対象はランダムになります。
 ※MVかつ自動解除が『行動終了時』の場合は、次の行動が実行されない不具合がある模様です。

全滅判定

<DefeatState>

 戦闘不能と同じように、全滅判定の対象になります。
 自動解除されない石化のようなステートを想定しています。

 なお、石化の演出については、バトラーのグラフィックを拡張するプラグインを利用すればOKです。

全回復で解除しない

<IgnoreRecoverAll>

 イベントコマンドの全回復で解除されなくなります。
 ステートを指定した場合のみ解除できます。

戦闘不能で解除しない

<IgnoreRecoverDie>

 戦闘不能時に解除されなくなります。
 ステートを指定した場合のみ解除できます。

プラグインパラメータ(Plugin Parameter)


パラメータリスト(ParameterList)

 パラメータの一覧です。
 独自パラメータがあれば、追加も可能です。

 ※ただし、通常能力値、追加能力値、特殊能力値のいずれかとしてパラメータが実装されている必要があります。プラグインの独自規格として実装されている場合は、捕捉できません……。

ステートを常に更新(AlwaysUpdateState)

 既にかかっているステートでも更新処理を行います。
 false時も継続ターンの更新は行われます。

更新方法(UpdateType)

 既にかかっているステートに対して、上書きをした際の挙動を変更します。『ステートを常に更新』がオンの場合のみ機能します。

  • 最新優先:新しくかけたステートを優先します(ツクールのデフォルト)。
  • 最大優先:効果の大きいほうを優先します。
    ※正確にいうとステートがダメージ効果の場合は、よりダメージが大きいもの。回復効果の場合は回復量がより大きいものが優先されます。

ステートのミスを表示(ShowStateMiss)

 ステート付加が外れた際に、ミスを表示するようにします。
 ダメージタイプが『なし』のスキルが対象です。
 複数のステートが設定されている場合は、全てが外れた際のみ対象となります。

プラグインパラメータ(パラメータ)


 パラメータリストの中身です。

タイプ(Type)

 パラメータのタイプです。
 通常能力値、追加能力値、特殊能力値の3種類が存在します。

ID(Id)

 パラメータの識別番号です。

識別名(Key)

 パラメータの識別名です。

タグ名(Tag)

 パラメータの変化を指定するタグ名です。

 >RPGツクールMZ&MV目次に戻る
posted by 砂川赳 at 16:38 | RPGツクールMZ&MV | このブログの読者になる | 更新情報をチェックする