komamidori さんが書きました:すみません、力をお貸しください・・・。
ステータスからMPを消し、HP直下にTPを置きたくて、そこまでは成功しました。
(js読めないのですが、試行錯誤で「rmmz_windows.js」の1747行目を削除しました。)
ですがバトル画面で顔グラフィックが妙に狭いまま下部に空間ができてしまいまして・・・。
付近の設定を変えればいいのかな?と探ってみましたが、自力で解決策が掴めませんでした。
バトル画面の顔グラフィックを広げて、名前・ゲージをその分さげる方法を教えていただきたいです。
どうぞよろしくお願いいたします。
基本的に、コア自体を直接書き換えずに、プラグイン化しましょう。
コアが更新されたり、壊れたりした時に戻すのが楽になります。
今回の要望は、下記のコードをコピーして、プラグインとして保存(ファイル名は~.jsで何でも可)すれば、反映します。
(一応、著作権放棄の宣言をしておきます。)
コード: 全て選択
(() => {
'use strict';
Window_StatusBase.prototype.drawActorFace = function (
actor, x, y, width, height
) {
//メニュー表示の位置も変わってしまうため、バトルシーンのみ変更する分岐
const isSceneMenu = SceneManager._scene.constructor.name;
if (['Scene_Battle'].includes(isSceneMenu)) {
//少し下げる。this.gaugeLineHeight()はデフォルトで24
this.drawFace(actor.faceName(), actor.faceIndex(), x, y + this.gaugeLineHeight() / 4, width, height);
} else {
this.drawFace(actor.faceName(), actor.faceIndex(), x, y, width, height);
}
};
Window_StatusBase.prototype.placeActorName = function (actor, x, y) {
const key = "actor%1-name".format(actor.actorId());
const sprite = this.createInnerSprite(key, Sprite_Name);
sprite.setup(actor);
// sprite.move(x, y);
sprite.move(x, y + this.gaugeLineHeight()); //一行下げた
sprite.show();
};
Window_StatusBase.prototype.placeBasicGauges = function (actor, x, y) {
//メニュー表示の位置も変わるが、違和感がないので分岐省略
// this.placeGauge(actor, "hp", x, y);
this.placeGauge(actor, "hp", x, y + this.gaugeLineHeight()); //一行下げた
// this.placeGauge(actor, "mp", x, y + this.gaugeLineHeight()); //非表示
if ($dataSystem.optDisplayTp) {
this.placeGauge(actor, "tp", x, y + this.gaugeLineHeight() * 2);
}
};
})();
書き換える前の処理をコメントで残しておくと、行き詰まった時に調べるのが楽になるというのが、自分の経験則です。
仕様を覚えてしまうくらいの熟練者になれば、そんな必要はないと思いますが。
コードを編集するなら通常のテキストエディタではなく、専用のエディタをお勧めします。
自分はVisual Studio Code(無料)を使用しています。
https://azure.microsoft.com/ja-jp/produ ... udio-code/
コード等コピーできるものはスクリーンショットではなく、[code]で囲って貼り付けるとコピーもでき、視認性が上がるので望ましいです。