【解決済み】『rpg_managers.js』を書き換えて、特定スイッチON時のみ「〜が出現!」のメッセージを非表示にしたい

あんどう
記事: 34
登録日時: 2019年6月27日(木) 16:08

【解決済み】『rpg_managers.js』を書き換えて、特定スイッチON時のみ「〜が出現!」のメッセージを非表示にしたい

投稿記事by あんどう » 2019年12月06日(金) 22:47

件名の通り、特定のスイッチをONにしている間だけ
【データベース→用語→メッセージ】にある「%1が出現!」という戦闘開始と同時に表示されるテキストを
表示せずに戦闘に突入したいと考えています。
そこで素人ながら、以下kotonohaさまの記事に似てると感じ、
見よう見まねで書いてみたのですがうまくいかず…。
どなたかご助言いただけないでしょうか…?
(http://ktnhmv.jugem.jp/?eid=3)

-----
BattleManager.startBattle = function() {
this._phase = 'start';
$gameSystem.onBattleStart();
$gameParty.onBattleStart();
$gameTroop.onBattleStart();
this.displayStartMessages();
-----

上記の「this.displayStartMessages();」を条件分岐でON / OFF切り替えたいのです。
どなたかお願いします…!
添付ファイル
screenshot.png
screenshot.png (73.18 KiB) 閲覧数: 2479 回
最後に編集したユーザー あんどう on 2019年12月12日(木) 23:37 [ 編集 1 回目 ]

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

Re: 『rpg_managers.js』を書き換えて、特定スイッチON時のみ「〜が出現!」のメッセージを非表示にしたい

投稿記事by トリアコンタン » 2019年12月07日(土) 22:59

こんにちは!
記事にあるとおり、任意の番号のスイッチ状態を取得するのは「$gameSwitches.value(n)」です。
それを「this.displayStartMessages();」に対して適用します。if文という条件分岐を実現するJavaScriptの制御構造を使います。

適用例

コード: 全て選択

    BattleManager.startBattle = function() {
        this._phase = 'start';
        $gameSystem.onBattleStart();
        $gameParty.onBattleStart();
        $gameTroop.onBattleStart();
        // [1]番のスイッチがONのとき
        if ($gameSwitches.value(1)) {
            this.displayStartMessages();
        }
    };


ただし、この場合、不意打ちや先制攻撃のメッセージも表示されなくなりますのでご注意ください。
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
あんどう
記事: 34
登録日時: 2019年6月27日(木) 16:08

Re: 『rpg_managers.js』を書き換えて、特定スイッチON時のみ「〜が出現!」のメッセージを非表示にしたい

投稿記事by あんどう » 2019年12月08日(日) 20:19

ありがとうございます!!まさに思い通りの演出ができました!
密かにいつもプラグイン等使わせていただきお世話になっています。
大変助かりました。

また、ついでという形で恐縮なんですが、
「〜が出現!」の文字を消した後に表示される【戦う / 逃げる】【アクター名 / HP / MP TP】などの
ステータスウィンドウも非表示のままバトルに入りたいのですが、こちらも可能でしょうか…?

バトルに入った直後(=アクターが定位置に到着後)からは、
スクリプト<BattleManager._statusWindow.hide();>でウィンドウを消せるのですが、
バトル開始時に一瞬だけ表示されてしまうウィンドウも消したいのです。

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

Re: 『rpg_managers.js』を書き換えて、特定スイッチON時のみ「〜が出現!」のメッセージを非表示にしたい

投稿記事by トリアコンタン » 2019年12月09日(月) 03:10

ステータスウィンドウを非表示にしたい場合、作成直後に非表示にするのがいいと思います。

コード: 全て選択

    Scene_Battle.prototype.createStatusWindow = function() {
        this._statusWindow = new Window_BattleStatus();
        this.addWindow(this._statusWindow);
        // 追加
        this._statusWindow.hide();
    };


ただ、戦う/逃げるのコマンドウィンドウは初期状態でアクティブになる仕様なので、ここを非表示にしたい場合は少し複雑な実装になるので、プラグインが必要になると思います。
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
あんどう
記事: 34
登録日時: 2019年6月27日(木) 16:08

Re: 『rpg_managers.js』を書き換えて、特定スイッチON時のみ「〜が出現!」のメッセージを非表示にしたい

投稿記事by あんどう » 2019年12月12日(木) 23:34

すみません返信遅れました!
if文を活用して、理想通りステータスウィンドウを消せました!
ありがとうございました!

“MV:質問” へ戻る