【解決】メニューカスタマイズ レベル・次のレベルまで表示

返信する
あーきゅ
記事: 45
登録日時: 2017年3月25日(土) 07:31

【解決】メニューカスタマイズ レベル・次のレベルまで表示

投稿記事 by あーきゅ »

こんばんは。
メニューをカスタマイズするためにプラグイン編集をしているのですが、
質問が2点ありました。

メニューを開いた時の、仲間達のHPやMPなど表示するように編集していますが…

①最大レベルを表示せず、『現在のレベルのみ』表示するようにしたいのですが

this.drawActorLevel(actor, x, y + lineHeight * 1, width);

 これだと 『レベル/最大レベル』 と表示されてしまいます。
 最大レベルを表示されないようにするには、どのように編集すればいいでしょうか?

②『次のレベルまで x(あといくつ)』 というのを表示したいのですが
 どのように編集すればいいのか分かりませんでした。


どなたかご存知の方がいらっしゃいましたら教えて頂けると助かります。
宜しくお願い致します。
最後に編集したユーザー あーきゅ [ 2017年9月03日(日) 12:02 ], 累計 1 回
アバター
しぐれん
記事: 975
登録日時: 2017年3月28日(火) 22:22
連絡する:

Re: メニューカスタマイズ レベル・次のレベルまで表示

投稿記事 by しぐれん »

デフォルトのメニューレイアウトでは最大レベルは表示されません。
最大レベルが表示されているとしたら、導入しているプラグインの影響と思います。
影響を与えているプラグインがわかれば、調査します。

アクターが次にレベルアップするのに必要経験値はactor.nextRequiredExp()で取得できます。
actor自体の取得は、記事を書いたのでそれを参考にしてください。

http://qiita.com/Sigureya/items/96a3a9b2b2be02c2f936
現在、プラグイン依頼はお休み中です。
あーきゅ
記事: 45
登録日時: 2017年3月25日(土) 07:31

Re: メニューカスタマイズ レベル・次のレベルまで表示

投稿記事 by あーきゅ »

おはようございます。
回答して下さってありがとうございます!

①『レベル表示』に関して
  こちらで確認しましたところ、しぐれん様の言う通り、他のプラグインが原因でした!
  表示されないようにすることに成功しましたので、①に関しては解決済みとさせて頂きます!

②『次のレベルまで』に関して
  画像を確認して頂きたいのですが、MPの下に表示するようにしていますが
  どうも、上手くいきません。下記のように入力したのですが

this.drawActorName(actor, x, y + lineHeight * 0, width);
this.drawActorLevel(actor, x, y + lineHeight * 1, width);
this.drawActorClass(actor, x, bottom - lineHeight * 4, width);
this.drawActorHp(actor, x, bottom - lineHeight * 3, width);
this.drawActorMp(actor, x, bottom - lineHeight * 2, width);
   actor.nextRequiredExp()(actor, x, bottom - lineHeight * 2, width); ←ここに問題あり?
  
表示するようにするためには、どのように入力すればいいのか
大変恐縮ですが教えて頂いてもいいでしょうか。

宜しくお願い致します。
添付ファイル
11.png
アバター
しぐれん
記事: 975
登録日時: 2017年3月28日(火) 22:22
連絡する:

Re: メニューカスタマイズ レベル・次のレベルまで表示

投稿記事 by しぐれん »

actor.nextRequiredExp()(actor, x, bottom - lineHeight * 2, width); ←ここに問題あり?
はい、ここが違います。
nextRequiredExp()というのはNumber(数値型)を戻り値とする関数(メソッド)です。

まずは次のレベルまでの経験値に12345のような適当な数値を表示してみましょう。
drawActorMpの下に以下のコードを書いてください。

コード: 全て選択

this.drawText(12345,x,bottom - lineHeight * 5,''right);
と書けば、12345と表示されるはずです。
この12345の部分をactor.nextRequiredExp()に置き換えれば、望む結果が得られるでしょう。

最終的に以下のような書き方になればいいと思います。

コード: 全て選択

Window_Status.prototype.drawActorNextExp =function(actor,x,y){
   var expNext =TextManager.expNext.format(TextManager.level);
   this.drawText(actor.nextRequiredExp(),x,y,''right);
   this.drawText(expNext,x,y);
};

//中略
this.drawActorMp(actor, x, bottom - lineHeight * 2, width);
this.drawActorNextExp(actor,x,bottom - lineHeight * 5);
ここまでで書いた処理で、意味の分からないところがあれば質問どうぞ。
現在、プラグイン依頼はお休み中です。
あーきゅ
記事: 45
登録日時: 2017年3月25日(土) 07:31

Re: メニューカスタマイズ レベル・次のレベルまで表示

投稿記事 by あーきゅ »

返答ありがとうございます!

HPなどの表示の前の部分も記入するべきでした。申し訳ありません;
以下のように入力したことで添付画像のようになりました。

Window_MenuStatus.prototype.drawItemStatus = function(index) {
var actor = $gameParty.members()[index];
var rect = this.itemRectForText(index);
var x = rect.x;
var y = rect.y;
var width = rect.width;
var bottom = y + rect.height;
var lineHeight = this.lineHeight();
this.drawActorName(actor, x, y + lineHeight * 0, width);
this.drawActorLevel(actor, x, y + lineHeight * 1, width);
this.drawActorClass(actor, x, bottom - lineHeight * 4, width);
this.drawActorHp(actor, x, bottom - lineHeight * 3, width);
this.drawActorMp(actor, x, bottom - lineHeight * 2, width);
this.drawText('NEXT', x, bottom - lineHeight * 1, width); ←NEXTという文字を表示
this.drawText(actor.nextRequiredExp(), x, bottom - lineHeight * 1, width); ←次のレベルまで数値表示
};

次のレベルまでの数値を無事に表示する事が出来て安心したのですが
問題点は、NEXTの文字と次のレベルまで数値がかぶってしまっていることです。
(しぐれん様が教えて頂いた中略前のWindow_Status…~this.drawText(expNext,x,y);までの
 部分は入れたら何故かデフォルトメニューになってしまい、上手くいかなかったので入れていません。)

次のレベルまでの数値を NEXTという文字の右側に表示されるように 
this.drawText(actor.nextRequiredExp(), x, bottom - lineHeight * 1, width);
のどこかに X の数字を記入する必要があると思うのですが、色々試してみても上手くいきませんでした。

私の説明不足で長引いてしまい申し訳ありません。
どのようにすればいいか教えて頂けると助かります。
宜しくお願い致します。
添付ファイル
12.jpg
アバター
しぐれん
記事: 975
登録日時: 2017年3月28日(火) 22:22
連絡する:

Re: メニューカスタマイズ レベル・次のレベルまで表示

投稿記事 by しぐれん »

//中略 の方だとうまくいかなかったようですので、それならコアスクリプト直書きでもいいと思います。

コード: 全て選択

this.drawText(actor.nextRequiredExp(), x, bottom - lineHeight * 1, width,'right');
//次のレベルまで数値表示
drawTextは右寄せ・左寄せ・中央寄せの3種類があります。
一番後ろの引数は、寄せる場所を決めるためのものです。

ソースコードを貼り付ける場合、書き込み欄の上にある「Code」を指定すると見やすくなります。
説明ですが、十分できてます。とてもわかりやすいので、アドバイスしやすいです。
現在、プラグイン依頼はお休み中です。
あーきゅ
記事: 45
登録日時: 2017年3月25日(土) 07:31

Re: メニューカスタマイズ レベル・次のレベルまで表示

投稿記事 by あーきゅ »

素早い対応ありがとうございます!
説明が伝わったようで安心しました。
教えて頂いたスクリプトをそのまま貼り付けたら
私の理想通りの形になりました!(添付画像参照)

プラグインに関しては初心者で知識不足なので
ご迷惑をお掛けしましたが、非常に丁寧に説明をして下さって
こちらもやりやすく勉強になりましたし、本当に感謝するしかありません。

また何かあれば、お世話になることがあるかも知れませんが
その時は宜しくお願い致します。

これにて解決とさせて頂きます!
添付ファイル
13.jpg
返信する

“MV:質問”に戻る