【解決済み】マップ上で戦闘不能時に表示される文章を非表示

RAPAGA
記事: 16
登録日時: 2022年12月11日(日) 03:43

【解決済み】マップ上で戦闘不能時に表示される文章を非表示

投稿記事by RAPAGA » 2023年12月09日(土) 19:15

いつもお世話になっております。
マップ上で、ダメージ床などでアクターが戦闘不能になった場合に、
「~が倒れた」といった文章が表示されますが、これ自体を表示しないようにしたいです。
すみません、プラグインのどのあたりを触ればよいかご教授いただけないでしょうか。
よろしくお願いします。
最後に編集したユーザー RAPAGA on 2023年12月11日(月) 01:43 [ 編集 1 回目 ]

名無し蛙
記事: 304
登録日時: 2015年11月23日(月) 02:46

Re: マップ上で戦闘不能時に表示される文章を非表示

投稿記事by 名無し蛙 » 2023年12月10日(日) 13:40

rmmz_objects.jsの4783行目

コード: 全て選択

Game_Actor.prototype.showAddedStates = function() {
    for (const state of this.result().addedStateObjects()) {
        if (state.message1) {
            $gameMessage.add(state.message1.format(this._name));
        }
    }
};

ここで該当処理を行っています。
厳密に言えばプレイヤが一歩移動した時にステートの付与が発生した場合
当該ステートの「アクターがこの状態になった時」のテキストが表示されます。

なのでここを空にするだけで変更出来ると思いますね。
デフォルトではダメージ床でhpが0になった時とステートのスリップダメージで戦闘不能になった時以外
ステートが付与されるケースは無いと思いますけど
どうしても戦闘不能だけ除外したい場合はfilterを掛ける等で部分的に対処した方が良いでしょう。

コード: 全て選択

    // ステート表示機構の無効化
    Game_Actor.prototype.showAddedStates = () => {};

    // 戦闘不能ステートだけ除外する場合
    Game_Actor.prototype.showAddedStates = function() {
        this.result()
            .addedStateObjects()
            .filter(state => state.id !== this.deathStateId())
            .filter(state => state.message1)
            .forEach(state => $gameMessage.add(state.message1.format(this._name)));
    };

※MVとMZを見違えていたので修正しました
RAPAGA
記事: 16
登録日時: 2022年12月11日(日) 03:43

Re: マップ上で戦闘不能時に表示される文章を非表示

投稿記事by RAPAGA » 2023年12月11日(月) 01:42

名無し蛙様、
ありがとうございます。
お陰様で狙い通りのことが実現できるようになりました。
解決をさせていただきます。

“MZ:質問” へ戻る