【解決済み】装備画面で、装備中の装備の名前欄を広くする方法

白白白

ユーザー
新たなスレッドを失礼致します。

表題にある通りなのですが、20文字を超えるかなり長い名前の装備があり、それを装備すると、装備画面の装備中の装備の名前欄で名前が押し縮められて表示がとても窮屈になります。装備画面のステータスを非表示にするプラグインは見つからず、トリアコンタン様の「GUI画面デザインプラグイン」で装備画面のステータスの横幅を0にして装備中の装備欄を最大まで横に広げても名前は押し縮められたままで困っております。
(ちなみに、その下の装備していない装備の欄は、別のプラグインで列を1列表示にすることで押し縮められずに名前を表示できています)

GUI画面デザインプラグイン

プラグインを使わずともコアスクリプトを弄ることで解決できそうな気もするのですが無知のため方法が分かりません。どうか方法をご教示を頂ければと思います。
 
最後に編集:
追記
「rpg_windows」の

Window_EquipStatus.prototype.windowWidth = function() {
return 312;



Window_EquipStatus.prototype.windowWidth = function() {
return 0;

にすることで、プラグインを使わずとも装備画面のステータス欄は消すことができました。

Window_EquipSlot.prototype.drawItem = function(index) {
if (this._actor) {
var rect = this.itemRectForText(index);
this.changeTextColor(this.systemColor());
this.changePaintOpacity(this.isEnabled(index));
this.drawText(this.slotName(index), rect., rect.y, 138, this.lineHeight());
this.drawItemName(this._actor.equips()[index], rect.x + 138, rect.y);

上記の「 rect.x + 138,」の数値を変えると名前が左右に動くので、あと一歩だと思うのですが、どうすればいいのか分かっておりません。
 
最後に編集:
もしかしたら状況が伝わっていないという可能性を考え、画像を追加させて頂きました。

WS013447.png
 
最後に編集:
画面のスクショを貼っていただいたお陰で、
今どうなっていて、それをどうしたいのかが明確になりました。

コアスクリプトの rpg_window.js の Window_Base.prototype.drawItemName を見ると分かりますが、
この関数は引数にアイテムのオブジェクト、描画開始X座標、Y座標と、もう一つ幅(width)を取れるようになっています。
this.drawItemName(this._actor.equips()[index], rect.x + 138, rect.y, 希望の横幅);
とすればよさそうに思います。(検証はしてません)

ただ今の画面ですと、装備することで攻撃力等の変化が見えなくなってしまうため、
明らかに不便ではないかなと思いますが、そこはクリアできている感じでしょうか?
 
>> panda 様
ご返信を頂き、ありがとうございます。
ご教示頂いた方法で、無事に名前を横に広げることができました。
最優先事項は解決することができました。ありがとうございます。

ご心配頂きましたステータスに関しましては諦めていましたが、できればステータスも表示できるとよいです。
↓画像のように、ステータス部分の縦幅を減らして上に移動して横幅を伸ばすと、ステータスは縦に並んだままなので見えなくなります。こちらを、行で改行するような形で、横に広く並べることは可能でしょうか?

WS013450.png
 
可能か不可能かでいえばもちろん可能です。
Window_EquipStatus.prototype.refresh の中で項目の並びは指定されています。
this.drawItem(0, this.lineHeight() * (1 + i), 2 + i); で各項目のX座標、Y座標、能力値番号(攻撃力が2)を指定しているので、
これのX座標とY座標を、iを使って表現してやればできます。
画像のように3x2にするなら
X座標:260 * (i % 3) (1項目の横幅を260pxにする場合)
Y座標:this.lineHeight() * (1 + Math.floor(i / 3))
のようにすれば、ウィンドウの中身は希望のようにできると思います。
他にもいくつか Window_EquipStatus や Scene_Equip の中で文字の位置やウィンドウの位置は調整が必要になるかと思います。
 
>> panda 様
ご返信を頂き、ありがとうございます。
ご教示頂いた通りに記載を変更したところ、無事に横並びに表示することができました。
「他にもいくつか Window_EquipStatus や Scene_Equip の中で文字の位置やウィンドウの位置は調整が必要になる」というのが気になりますが、問題が起きた場合はまたその時に質問させて頂ければと思います。
ここ数日ずっと解決できずに困っていたことが一気に解消されて一安心しております。本当にありがとうございました。
 
追記を失礼致します。
以前、装備欄の横幅を広げる方法をご教示頂き、以下の方法で無事に広げることはできていました。

・引用
コアスクリプトの rpg_window.js の Window_Base.prototype.drawItemName を見ると分かりますが、
この関数は引数にアイテムのオブジェクト、描画開始X座標、Y座標と、もう一つ幅(width)を取れるようになっています。
this.drawItemName(this._actor.equips()[index], rect.x + 138, rect.y, 希望の横幅);
とすればよさそうに思います。(検証はしてません)

しかし、上記の方法で装備欄の横幅を広げると、横幅に合わせて名前を縮める機能(?)が無効になり、入り切らない部分の名前が消えるということが分かりました。
私の作成しているゲームには名前が30文字以上になる装備がありますので困っております。
そこで、横幅は広げたまま、横幅に合わせて名前を縮める機能を無効にしない方法をご教示頂ければと思っております。どうかよろしくお願い致します。

WS013614.png
 
最後に編集:
試しに横幅450でやってみましたが、ちゃんと縮小されて表示されているようです。
他のプラグインの影響なども考えられますので、その辺の確認をお願いします。
それと、スクショを見る限り「剣」や「帽子」などの文字幅と「ああああ…」の文字幅で、「ああああ…」の方の文字幅が明らかに狭く見えるので、縮小はちゃんとされているように思えます。
単にウィンドウの残り幅よりも横幅を広く設定しているせいで、端が切れているだけということはありませんか?
game_vWLTuoNfy4.png
 
>> panda 様
ご返信を頂き、ありがとうございます。
確認したところ、ご指摘の通り、表示範囲がウィンドウを超えていただけでした。
お騒がせ致しました。お早いお返事を頂きありがとうございました。
 
Back
トップ