【解決済】『StateAutoBattle.js』について質問です。

take_3

ユーザー
RPGツクールMZのロンチプラグイン、【StateAutoBattle.js】(1ターン自動戦闘プラグイン)についての質問です。

ゲーム制作において上記のプラグインを利用しているのですが、
【タイムプログレスバトル(ウェイト)】において
【パーティコマンド】から【オート】を選択した場合、
次にコマンドが回ってくると【アクターコマンド】が表示されるようになっております。

コレを【オート】を選択後に回ってくるコマンドを【パーティコマンド】に変える事は出来ないでしょうか?

ご存知の方がおられましたらご教示いただけますと幸いです。
 

Attachments

  • オートバトルのコマンド2.png
    オートバトルのコマンド2.png
    130.7 KB · 閲覧: 40
  • オートバトルのコマンド1.png
    オートバトルのコマンド1.png
    112.5 KB · 閲覧: 40
拙作のプラグインのご利用ありがとうございます。
気づくのが遅くなってすみません。
まだ模索されているところでしょうか?

パーティコマンドを出すかアクターコマンドを出すかの判定を
Scene_Battle.prototype.changeInputWindow
辺りで行ってそうな気はするのですが
TPBかどうかということでは分岐してないようで
ちょっと私にはわからないです。

どなたか助けてあげてくださるとうれしいです。
よろしくお願いします。
 
拙作のプラグインのご利用ありがとうございます。
気づくのが遅くなってすみません。
まだ模索されているところでしょうか?

パーティコマンドを出すかアクターコマンドを出すかの判定を
Scene_Battle.prototype.changeInputWindow
辺りで行ってそうな気はするのですが
TPBかどうかということでは分岐してないようで
ちょっと私にはわからないです。

どなたか助けてあげてくださるとうれしいです。
よろしくお願いします。

ご返信いただき ありがとうございます。

正直言いますと、この件に関しては諦めて別の作業に移っていた次第です。

ただ、時間が出来次第、今回のお話の内容の部分について確認してみようと思います。
 
ゆわかさんの返信にてヒントが得られたので試行錯誤してみましたが、問題は解決できませんでした。

引き続き、問題の解決方法をお知りの方、見つけた方がいましたらご教授お願いいたします。
 
要件とは違うかもしれないですが、以下を追加すると近い動作をするような気がします。
Trbの戦闘しか考慮はしていないのと、バトル系のプラグインを作ったことがほとんどないので違うかもしれませんが。

コード:
// オートかどうかの判定(もっといい書き方あるけど、暫定)
let Auto = false;
// 新しいシーンを追加、ここでステートを付与している。
Scene_Battle.prototype.commandAuto = function() {
    Auto = true;
    $gameParty.members().forEach(function(actor) {
        actor.addState(autosuteid);
    });
    // BattleManager.updateTurnEnd();
    if (BattleManager.isTpb()) {
        BattleManager.startTurn();
    } else {
        BattleManager.startInput();
    }
};
BattleManager.startTurn = function() {
    this._phase = "turn";
    $gameTroop.increaseTurn();
    $gameParty.requestMotionRefresh();
    if (!this.isTpb()) {
        this.makeActionOrders();
        this._logWindow.startTurn();
        this._inputting = false;
    } else {
        // オートステートの判定条件をここに入れる
        if (Auto) {
            this._tpbNeedsPartyCommand = true;
            Auto = false;
        }
    }
};
 
要件とは違うかもしれないですが、以下を追加すると近い動作をするような気がします。
Trbの戦闘しか考慮はしていないのと、バトル系のプラグインを作ったことがほとんどないので違うかもしれませんが。

コード:
// オートかどうかの判定(もっといい書き方あるけど、暫定)
let Auto = false;
// 新しいシーンを追加、ここでステートを付与している。
Scene_Battle.prototype.commandAuto = function() {
    Auto = true;
    $gameParty.members().forEach(function(actor) {
        actor.addState(autosuteid);
    });
    // BattleManager.updateTurnEnd();
    if (BattleManager.isTpb()) {
        BattleManager.startTurn();
    } else {
        BattleManager.startInput();
    }
};
BattleManager.startTurn = function() {
    this._phase = "turn";
    $gameTroop.increaseTurn();
    $gameParty.requestMotionRefresh();
    if (!this.isTpb()) {
        this.makeActionOrders();
        this._logWindow.startTurn();
        this._inputting = false;
    } else {
        // オートステートの判定条件をここに入れる
        if (Auto) {
            this._tpbNeedsPartyCommand = true;
            Auto = false;
        }
    }
};
お忙しい中、わざわざお返事いただき ありがとうございます。

今、元のプラグインにコードを追加して試してみましたが、バッチリ動きました!!
私が試していた部分とは全く違う部分に答えはあったようです…

なお、気の早い話ですが現在制作しているゲームが出来た際に【使用素材一覧】にてポテトードラゴンさんのお名前を【加工協力者】としてクレジットしてもよろしいでしょうか?
 
Back
トップ