【解決済み】this.addSkillCommands();のグレーアウトについて

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

【解決済み】this.addSkillCommands();のグレーアウトについて

投稿記事 by ドラムカン »

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

前回、addCommandsの第三引数がFalseのとき、グレーアウトになるということを、
Plasma Dark 様からご教示いただいたのですが
addSkillCommandsのグレーアウトがうまくいかずにおります。

単純に、「スキルタイプ追加」で登録しているスキルコマンドを
指定のスイッチがOFFのときだけグレーアウトさせたいため
ActorCommandクラスに
スイッチ振り分けのIf文を入れ、OFFのとき以下の処理を走らせるようにしました。

this.addSkillCommands('コマンド名','skill',false);

きっと第二引数の記述が間違えているのだと思いますが、
どのようにすればスキルコマンドをグレーアウトできるのか答えにたどり着けず
この部分だけで丸一日悩んでおります。

同じような質問となり、恐縮ではありますものの
どうかご教示のほど、よろしくお願いいたします。
最後に編集したユーザー ドラムカン [ 2021年5月28日(金) 11:02 ], 累計 1 回
名無し蛙
記事: 352
登録日時: 2015年11月23日(月) 02:46

Re: this.addSkillCommands();のグレーアウトについて

投稿記事 by 名無し蛙 »

どうもこんばんは
この処理を改造したい、という事ですよね?

コード: 全て選択

Window_ActorCommand.prototype.addSkillCommands = function() {
    var skillTypes = this._actor.addedSkillTypes();
    skillTypes.sort(function(a, b) {
        return a - b;
    });
    skillTypes.forEach(function(stypeId) {
        var name = $dataSystem.skillTypes[stypeId];
        this.addCommand(name, 'skill', true, stypeId);
    }, this);
};
変更するのは第三引数だけで良いのでは。
というかaddCommandならともかくaddSkillComandsは引数無しメソッドなので
スペルミスでないのなら根本から間違えてると思います。(addCommandsとも書いてるしスペルミス?)
全てのスキルタイプは特徴「スキルタイプ追加」によって登録されているので
どのスキルタイプに限定したいのかイマイチ分かりませんが

コード: 全て選択

Window_ActorCommand.prototype.addSkillCommands = function() {
    var skillTypes = this._actor.addedSkillTypes();
    skillTypes.sort(function(a, b) {
        return a - b;
    });
    skillTypes.forEach(function(stypeId) {
        var name = $dataSystem.skillTypes[stypeId];
        // スキルタイプ2であり、スイッチ番号101がOFFなら有効フラグOFF
        let enabled = true;
        if (stypeId === 2 && !$gameSwitches.value(101)) enabled = false;
        this.addCommand(name, 'skill', enabled, stypeId);
    }, this);
};
とかで良い気がしますよ。
アバター
ドラムカン
記事: 178
登録日時: 2019年11月04日(月) 23:02

Re: this.addSkillCommands();のグレーアウトについて

投稿記事 by ドラムカン »

名無し蛙 様

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

addCommandsは、誤って認識しておりました。
「s」が付かないことに全く気づいておりませんでした。
ご指摘くださり、ありがとうございます。

そして処理コードを全文いただけるとは
大変ありがたい限りです。

スキルIDが2で、尚且つスイッチ101がONではない時、変数enableにFalseを代入して
addCommandの第三引数に割り当てるということですね。

addSkillCommandsには引数がないのではないかと、
色々なサイトを見ていくうちに薄々感じてはおりましたが、確証が得られませんでした。
これらについてもご教示くださり、お礼申し上げます。

今後とも、どうかよろしくお願いいたします。
この度は、様々有益な情報をくださり、誠にありがとうございました。
返信する

“MV:質問”に戻る