ページ 11

【解決】戦闘でアクターコマンドの代わりにアイテムウィンドウやスキルウィンドウを使えるプラグイン

Posted: 2018年10月26日(金) 21:39
by ノンぼっクリ
公式フォーラムにも書き込みましたがこちらでもリクエストいたします


  アクターコマンド(攻撃 魔法 防御のやつ)の代わりにアイテムウィンドウか変数もしくはプラグインパラメータで指定したスキルタイプのスキルウィンドウを使用する
  パーティウィンドウ(戦う 逃げるのやつ)で戦うを選択しても、YEP_BattleEngineCoreなどでパーティウィンドウを飛ばしても、アクターコマンドにすり替わる形でアイテムウィンドウ、スキルウィンドウを使用する
  キャンセル操作を行った場合もアクターコマンドには戻らず、前のアクターがいれば前のアクターのウィンドウを表示 先頭ならパーティウィンドウを表示
  使用するのはアイテムウィンドウかスキルウィンドウかはプラグインパラメータ、もしくはスイッチで変更できる(パラメータかスイッチ、どちらか片方でもいいです)


簡単に言えばアイテムバトルやスキルバトルするのに攻撃とか魔法とか防御とかアイテムとかのコマンド選ぶ1クリックもいらねえ!ってことです
どれほど探しても見つかりせんでしたし、自分で作ろうとしてもヘルプウィンドウに文字列が入らなかったりキャンセルをするとバグったりしました;;
よろしくお願いいたします

Re: 戦闘でアクターコマンドの代わりにアイテムウィンドウやスキルウィンドウを使えるプラグイン

Posted: 2018年10月26日(金) 23:42
by tubo
プロトタイプです。
仕様としては以下になります。
・プラグインコマンドにより戦闘スタイルを変更
・アクターコマンドを飛ばし、指定したスタイルのコマンドを表示
・キャンセルした際は前もアクターコマンドは表示せず、先頭の場合はパーティコマンドに戻る
・競合の排除を優先(無駄な処理有り)

スキル、アイテムが何もない場合は考慮していません。
アクターコマンドがあった場所には何も設置していません。
軽くテストしましたがバグ等あるかもしれません。

Re: 戦闘でアクターコマンドの代わりにアイテムウィンドウやスキルウィンドウを使えるプラグイン

Posted: 2018年10月27日(土) 09:50
by ノンぼっクリ
ありがとうございます!
実はtuboさんの返信に気づく前に自分でも試した結果大体が完成いたしました…
自分で使う分には自分のプラグインで問題ありませんが、自分の希望に近いものになっており非常にありがたいです!
正直自分のものはなんで動いているかもわかりません…w
ifの使い方も把握してないので分割しました…w

ForceBattleStyle.jsをテストしたとき気づいたことは、ヘルプウィンドウに文字列が出てこない場合があることですね
自分が作ったものではそこを回避しているので自分で回避用コードを入れてみたいと思います

追記 エネミーウィンドウをキャンセルするとアクターコマンドが表示されるみたいですね
ここもForceBattleStyle.jsを元に自分でなんとか頑張ってみようと思います(できないかもしれませんが)

Re: 戦闘でアクターコマンドの代わりにアイテムウィンドウやスキルウィンドウを使えるプラグイン

Posted: 2018年10月27日(土) 10:58
by ノンぼっクリ
修正いたしました!
修正箇所は以下の通りです

プラグイン名とヘルプの文章を追加
Scene_Battle.prototype.startActorCommandSelection でアイテム スキルウィンドウを表示する方法を ItemBattle.js SkillBattle.jsの方法に差し替え
以下のコードを追加

コード: 全て選択

    const _Scene_Battle_selectNextCommand = Scene_Battle.prototype.selectNextCommand;
    Scene_Battle.prototype.selectNextCommand = function() {
        Window_SkillList.prototype.updateHelp()
        BattleManager.selectNextCommand();
        this.changeInputWindow();
    };
    
    const _Scene_Battle_onActorCancel = Scene_Battle.prototype.onActorCancel;
    Scene_Battle.prototype.onActorCancel = function() {
        this._actorWindow.hide();
        if (battleStyle[0] === 'normal') return;
        if (battleStyle[0] === 'item') {
            this._itemWindow.show();
            this._itemWindow.activate();
        } else if (battleStyle[0] === 'skill') {
            this._skillWindow.show();
            this._skillWindow.activate();
        }
    };

    const _Scene_Battle_onEnemyCancel = Scene_Battle.prototype.onEnemyCancel;
    Scene_Battle.prototype.onEnemyCancel = function() {
        this._enemyWindow.hide();
        if (battleStyle[0] === 'normal') return;
        if (battleStyle[0] === 'item') {
            this._itemWindow.show();
            this._itemWindow.activate();
        } else if (battleStyle[0] === 'skill') {
            this._skillWindow.show();
            this._skillWindow.activate();
        }
    };
    
テストは致しましたがバグ等の不安はあります…w
ですが一応これでこのトピックは解決済みということにします
こういうのって権利関係どうなるんでしょうか…?
自分はtuboさんにおまかせしたいです

Re: 【解決】戦闘でアクターコマンドの代わりにアイテムウィンドウやスキルウィンドウを使えるプラグイン

Posted: 2018年10月27日(土) 11:46
by tubo
ご自身で解決されてたんですね!修正ありがとうございます。
権利は必要ないのでノンぼっクリさんのものとしてください。

Re: 【解決】戦闘でアクターコマンドの代わりにアイテムウィンドウやスキルウィンドウを使えるプラグイン

Posted: 2018年10月27日(土) 20:38
by ノンぼっクリ
自分こそ本当に感謝しています!
ではこのプラグインは改変 再配布を自由とし、その他も基本的に制限は設けない形のプラグインに致します
(こういう権利系のってどうすればいいのかわかんないので基本的にって言っていればOKだと思います)