【解決済み】バトルコマンドのグレーアウト方法

返信する
アバター
ドラムカン
記事: 178
登録日時: 2019年11月04日(月) 23:02

【解決済み】バトルコマンドのグレーアウト方法

投稿記事 by ドラムカン »

いつもお世話になっております。

使用者のMPが0のとき、
特定のバトルコマンドをグレーアウトにしたいと考えております。

Window_ActorCommand に
以下の処理を入れたら、MP判定は出来たのですが、
肝心のグレーアウトにする記述が不明です。

コード: 全て選択

if(this._actor.mp == 0){
}
上記クラスに、addCommand()でバトルコマンドを再定義しておりまして
その中にあるオリジナルコマンドがターゲットとなります。

isEnabled()で評価することは何となく分かるのですが
追加したコマンドをどのようにしてグレーアウトするのか分からないといった状態です。

とても初歩的なご質問かもしれませんが、どうかご教示いただけますと幸いです。
最後に編集したユーザー ドラムカン [ 2021年5月23日(日) 23:53 ], 累計 1 回
アバター
Plasma Dark
記事: 736
登録日時: 2020年2月08日(土) 02:29
連絡する:

Re: バトルコマンドのグレーアウト方法

投稿記事 by Plasma Dark »

上記クラスに、addCommand()でバトルコマンドを再定義しておりまして
その中にあるオリジナルコマンドがターゲットとなります。
addCommand メソッドの第三引数が偽の場合、そのコマンドはグレーアウトして選択できなくなります。
ですので

コード: 全て選択

this.addCommand('コマンド名', 'シンボル', this._actor.mp > 0);
こういった形でコマンドを追加することで要件を満たせるのではないかと思います。
isEnabled()で評価することは何となく分かるのですが
Window_ItemList や Window_SkillList には定義されているので紛らわしいですが、 Window_ActorCommand に isEnabled メソッドは定義されていません。
アバター
ドラムカン
記事: 178
登録日時: 2019年11月04日(月) 23:02

Re: バトルコマンドのグレーアウト方法

投稿記事 by ドラムカン »

Plasma Dark 様

いつも大変お世話になっております。
今回も的確な解決策をご教示くださり、誠にありがとうございます。

addCommand メソッドは、第三引数がFalseの場合、グレーアウト扱いになるとは目からうろこでした。
Window_SkillList に isEnabled メソッドを使用しているケースは多く見つけられたのですが
Window_ActorCommand になかったのは、そもそも定義されていないからだったのですね。

ひとつひとつの積み重ねではありますが
おかげさまで一歩一歩、理解が深まっております。
改めて、お礼申し上げます。
今後ともどうかよろしくお願いいたします。
返信する

“MV:質問”に戻る