MZで1ターン目からスキルにクールタイムを設定する方法

十文字大五郎
記事: 6
登録日時: 2023年3月09日(木) 00:08

MZで1ターン目からスキルにクールタイムを設定する方法

投稿記事by 十文字大五郎 » 2023年3月09日(木) 00:16

MZでコマンド式RPGを制作しています。
制作中のRPGではプラグイン「DarkPlasma_SkillCooldown.js」を利用し、スキルにクールタイムを設定しています。
https://github.com/elleonard/DarkPlasma-MZ-Plugins/blob/release/DarkPlasma_SkillCooldown.js

以下質問です。
クールタイムが長い強力なスキルを1ターン目から使用されるのを防ぐために、スキルを使用していない1ターン目から全てのスキルにクールタイムを発生させたいと思います。
しかし、上記の実現方法が分かりません。
1ターン目からクールタイムを発生させることが可能な別プラグインでの実現方法、もしくは当プラグインを改変・工夫する方法での実験方法など、ご意見伺えればと思います。
宜しくお願い致します。

※具体例を下記に記載します。

・現在の動作
1ターン目:スキルA(クールタイム:0)
↓スキルAを使用
2ターン目:スキルA(クールタイム:1)

・実現したい動作
1ターン目:スキルA(クールタイム:1)
↓スキルAは使用できないため、別の行動を選択
2ターン目:スキルA(クールタイム:0)
↓クールタイムが0になったため、スキルAを使用
3ターン目:スキルA(クールタイム:1)

アバター
Plasma Dark
記事: 669
登録日時: 2020年2月08日(土) 02:29
連絡を取る:

Re: MZで1ターン目からスキルにクールタイムを設定する方法

投稿記事by Plasma Dark » 2023年3月09日(木) 09:45

スキルを使用していない1ターン目から全てのスキルにクールタイムを発生させたいと思います。


DarkPlasma_SkillCooldown.js 2.4.0 (現在の最新版)をダウンロードしていただいた上で、以下のような追加プラグインを書けば実現可能です。

コード: 全て選択

(() => {
  'use strict';

  function Game_Battler_SkillCooldownOnBattleStartMixIn(gameBattler) {
    const _onBattleStart = gameBattler.onBattleStart;
    gameBattler.onBattleStart = function () {
      _onBattleStart.call(this);
      if (this.isActor()) {
        this.skills().forEach(skill => {
          this.setupCooldownTurnByTargetSkill(skill, 1);
        });
      }
    };
  }

  Game_Battler_SkillCooldownOnBattleStartMixIn(Game_Battler.prototype);
})();
十文字大五郎
記事: 6
登録日時: 2023年3月09日(木) 00:08

Re: MZで1ターン目からスキルにクールタイムを設定する方法

投稿記事by 十文字大五郎 » 2023年3月10日(金) 00:38

Plasma Dark様
ご回答頂きありがとうございます!
作成されたプラグイン、ゲーム制作に大変助かっております。

ご回答いただいた内容で、プラグイン「DarkPlasma_SkillCooldown.js」を改変し、動作を確認しました。
1ターン目からスキルにクールタイムを設定されていることを確認できました、
しかし、すべてのスキルのクールタイムが下記の行で定義した固定値(1ターン)となっていました。

コード: 全て選択

this.setupCooldownTurnByTargetSkill(skill, 1);

こちら、下記の仕様を満たすために、スキルごとに異なる値を設定する方法(具体的には「トリガースキル」を「対象スキル」にした際の「ターン数」を設定)についても、ご意見伺えればと思います。
クールタイムが長い強力なスキルを1ターン目から使用されるのを防ぐために、
アバター
Plasma Dark
記事: 669
登録日時: 2020年2月08日(土) 02:29
連絡を取る:

Re: MZで1ターン目からスキルにクールタイムを設定する方法

投稿記事by Plasma Dark » 2023年3月10日(金) 02:03

トリガースキル」を「対象スキル」にした際の「ターン数」を設定


setupCooldownTurnByTargetSkillの第2引数を省略することで実現可能です。

コード: 全て選択

this.setupCooldownTurnByTargetSkill(skill);
十文字大五郎
記事: 6
登録日時: 2023年3月09日(木) 00:08

Re: MZで1ターン目からスキルにクールタイムを設定する方法

投稿記事by 十文字大五郎 » 2023年3月12日(日) 17:31

Plasma Dark様

ご回答いただいた内容で、プラグイン「DarkPlasma_SkillCooldown.js」を改変し、スキルのメモ欄にクールタイムを指定したところ、想定通りの動作を実現することができました。
ご回答頂きありがとうございました。

“MZ:質問” へ戻る