こんにちは。
なっぱ さんが書きました:https://fungamemake.com/archives/15507
上記のサイトを参考に、闘技場のようなイベントを作成しているのですが、
途中スクリプトでアクターステータスウィンドウを非表示にする部分で
プラグイン「FTKR_CSS_BattleStatus」を使用しているためかと思うのですが非表示になりません。
(プラグインなしであれば非表示になります)
FTKR_CSS_BattleStatusを使用しながら非表示にする方法が分かれば教えていただきたいのですが、
どなか分かる方はいませんか?よろしくお願いします。
原因は、FTKR_CSS_BattleStatus ではなく、FTKR_FVActorAnimation の方にあるようで、
FTKR_FVActorAnimation によって、顔画像やカスタム画像へのアニメーション表示が有効だと、
アクター選択ウィンドウ、エネミー選択ウィンドウ、メッセージウィンドウ
のいずれかが表示されている場合を除いて、常にステータスウィンドウを表示するようになっているようです。
FTKR_CSS_BattleStatus を OFF にして、正常にステータスウィンドウを非表示にできるのは、
OFF になることで、顔グラフィックの表示が無くなって、
FTKR_FVActorAnimation の機能が使用できなくなるからだと思われます。
アクターウィンドウを閉じられるようにするためには、
FTKR_FVActorAnimation.js を編集する必要があります。
FTKR_FVActorAnimation.js ファイルのバックアップを取ってから、
JavaScript を編集できるソフトで FTKR_FVActorAnimation.js ファイルを開き、
以下の編集を行ってください。
- 455 行目あたりに、
Scene_Battle.prototype.createStatusWindow
というメソッドが定義されている部分があるはずなので、
その前に、以下のコードを追加する。
コード: 全て選択
var _FAA_Scene_Battle_initialize = Scene_Battle.prototype.initialize;
Scene_Battle.prototype.initialize = function() {
_FAA_Scene_Battle_initialize.apply(this, arguments);
this._statusWindowPermanentHide = false;
};
- 上記をコードを追加すると、476 行目あたりから、
Scene_Battle.prototype.updateWindowPositions というメソッドが始まっているはずなので、
内容を以下のコードに変更する。
コード: 全て選択
Scene_Battle.prototype.updateWindowPositions = function() {
if (this._statusWindowPermanentHide || this._actorWindow.visible || this._enemyWindow.visible || $gameMessage.isBusy()) {
this._statusWindow.hide();
} else {
this._statusWindow.show();
}
_FAA_Scene_Battle_updateWindowPositions.call(this);
};
- 上記メソッドの後ろに、以下のコードを追加する。
コード: 全て選択
Scene_Battle.prototype.setStatusWindowPermanentHide = function(flag) {
this._statusWindowPermanentHide = flag;
if (flag) {
this._statusWindow.hide();
} else {
this._statusWindow.show();
}
};
上記のプラグインの編集を行ったら、
ステータスウィンドウを非表示にするスクリプトとして、
コード: 全て選択
SceneManager._scene.setStatusWindowPermanentHide(true);
を記入してください。
これで、ステータスウィンドウを非表示にすることができるかと思います。
以上、ご確認ください。