(スクリプトコマンドで)アクター別に戦闘コマンドを非表示にしたい

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

Re: (スクリプトコマンドで)アクター別に戦闘コマンドを非表示にしたい

投稿記事by ドラムカン » 2021年2月23日(火) 22:47

ムノクラ様

明朗な情報をご提供くださり、ありがとうございます。

ご紹介いただいたトリアコンタン様のTwitterを拝見して
実際、アクターコマンドがどういった性質のもとに成り立っているのか
理解することができました。

ムノクラ様のご推察通り、
スクリプトコマンドからの改変は困難で
既存の外部プラグイン(アクターコマンド部分を再定義しているオリジナルのプラグイン)を
改変するのが最良ということですね。

大変、参考になりました。

トリアコンタン様

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

コアスクリプトで定義されているアクターコマンドの「状態」が
変数として保持されているわけではないため、スクリプトコマンドのみで改変するのは
難しいということですね。
コアスクリプトで「決め打ち」されているというのは、
もしや定数で宣言されているということでしょうか?(結局よく分かっておらず、すみません)

どちらにしても、トリアコンタン様の「アクターコマンド封印プラグイン」と
フトコロ様の「FTKR_ExBattleCommand.js」のコードを参考に
オリジナルプラグインを修正していくほか、方法はないということですね。

不毛なご質問をしてしまったようで、大変失礼いたしました。
もう少し考えてからご質問するように心がけます。


ユッケ様

お心遣いいただき、ありがとうございます。

私の質問のせいで不愉快な思いをされたようでしたら
大変申し訳ございません。

すべては私の勉強不足、努力不足によるものですので
少しでもこういったことが起きないよう
心がけつつ質問をさせていただこうと思います。

アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: (スクリプトコマンドで)アクター別に戦闘コマンドを非表示にしたい

投稿記事by トリアコンタン » 2021年2月23日(火) 23:13

定数とも少し違っていて、決め打ちされているのはメソッドです。
実際のコードを提示すると以下のように組まれています。

コード: 全て選択

Window_ActorCommand.prototype.makeCommandList = function() {
    if (this._actor) {
        this.addAttackCommand();
        this.addSkillCommands();
        this.addGuardCommand();
        this.addItemCommand();
    }
};


なので攻撃コマンドを非表示にするには、特定のアクターの場合「addAttackCommand」を呼ばないか「addAttackCommand」の処理を打ち消すようメソッドの処理そのものを変える必要があります。
そしてメソッドの処理を変えられるのは原則としてプラグインだけです。
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アバター
ドラムカン
記事: 178
登録日時: 2019年11月04日(月) 23:02

Re: (スクリプトコマンドで)アクター別に戦闘コマンドを非表示にしたい

投稿記事by ドラムカン » 2021年2月24日(水) 00:21

トリアコンタン様

ご丁寧に解説いただきまして、ありがとうございます。

メソッドを拝見して、「なるほど」と思いました。
HIME_ActorBattleCommands.jsを導入した際、
デフォルトがその4コマンドのみに一旦リセットされるのは、そのせいだったのですね。

>攻撃コマンドを非表示にするには、特定のアクターの場合「addAttackCommand」を呼ばないか
>「addAttackCommand」の処理を打ち消すようメソッドの処理そのものを変える必要があります。
すなわち、コアスクリプトの当該メソッドに直接アクターIDによる条件式を追加するか
外部プラグインからメソッドを再定義する他、(原則的に)方法はないということですね。

何ができて何ができないかすら、把握できていない現状ですが
おかげさまでまた一歩、理解が深まりました。

本当にありがとうございました。
今後ともよろしくお願い申し上げます。

“MV:質問” へ戻る