Yanfly様のプラグインによるHP表示について

アバター
剣崎 宗二
記事: 686
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: Yanfly様のプラグインによるHP表示について

投稿記事by 剣崎 宗二 » 2018年1月07日(日) 10:20

バックアップした上で、YEP_BattleEngineCore内の同名functionを以下に差し替えてください。

コード: 全て選択

Yanfly.ATB.Window_BattleStatus_drawGaugeAreaWOTp =
    Window_BattleStatus.prototype.drawGaugeAreaWithoutTp;
Window_BattleStatus.prototype.drawGaugeAreaWithoutTp = function(rect, actor) {
  if (this.isATBGaugeStyle(2)) {
    var totalArea = this.gaugeAreaWidth() - 30;
    var hpW = parseInt(totalArea * 108 / 300);
    var otW = parseInt(totalArea * 96 / 300);
    var atW = totalArea - hpW - otW;
    this.drawActorHp(actor, rect.x + 0, rect.y, hpW);
    this.drawActorMp(actor, rect.x + hpW + 15, rect.y, otW);
    this.drawActorAtbGauge(actor, rect.x + hpW + otW + 30, rect.y, atW);
  } else {
    Yanfly.ATB.Window_BattleStatus_drawGaugeAreaWOTp.call(this, rect, actor);
  }
};


その上で

コード: 全て選択

    var hpW = parseInt(totalArea * 108 / 300);

この行の108の値を順次拡大してお好みの幅にしてみてください。(最大203まで)

尚、HPが3桁以下である事が確定しているのであれば、別の手も取れます。

----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
ネコムスメ
記事: 64
登録日時: 2017年5月17日(水) 00:49

Re: Yanfly様のプラグインによるHP表示について

投稿記事by ネコムスメ » 2018年1月07日(日) 22:58

>剣崎様

書き換えてみたところ
ゲージが溜まっているあいだ、ゲージがCPと重なってしまい、
ゲージが溜まっているあいだと満タンになった時で
ゲージの幅が違ってしまいました。
(満タンになった時のゲージは綺麗に反映されていました!125が理想の値でした!;;)

そして、HPは4桁になる予定です;;
名前は5文字以下、CPは3桁以下というのは
確定しているのですが…;;


かなり不躾なお願いで申し訳ないのですが、
ATBゲージを画像のように、CPの下に反映させる、
なんてことは可能でしょうか…??
02072A13-7072-4691-9E53-1AD7C65DE26D.png
アバター
剣崎 宗二
記事: 686
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: Yanfly様のプラグインによるHP表示について

投稿記事by 剣崎 宗二 » 2018年1月08日(月) 12:00

ネコムスメ様

ネコムスメ さんが書きました:>剣崎様

書き換えてみたところ
ゲージが溜まっているあいだ、ゲージがCPと重なってしまい、
ゲージが溜まっているあいだと満タンになった時で
ゲージの幅が違ってしまいました。
(満タンになった時のゲージは綺麗に反映されていました!125が理想の値でした!;;)


こちら一か所私が察知できなかった場所でATBゲージの再描画が成されていたのが原因です。

コード: 全て選択

Window_BattleStatus.prototype.redrawATBGaugeRect = function(index, actor) {
  var rect = this.gaugeAreaRect(index);
  var clrect = this.gaugeAreaRect(index);
  var totalArea = this.gaugeAreaWidth();
  if ($dataSystem.optDisplayTp) {
    var gw = totalArea / 4 - 15;
    clrect.x = rect.x + gw * 3 + 44;
    clrect.y = rect.y;
    clrect.width = gw + 2;
    this.contents.clearRect(clrect.x, clrect.y, clrect.width, clrect.height);
    this.drawActorAtbGauge(actor, rect.x + gw * 3 + 45, rect.y, gw);
  } else {
    totalArea -= 30;
    var hpW = parseInt(totalArea * 108 / 300);
    var otW = parseInt(totalArea * 96 / 300);
    var atW = totalArea - hpW - otW;
    clrect.x = rect.x + hpW + otW + 29;
    clrect.y = rect.y;
    clrect.width = atW + 2;
    this.contents.clearRect(clrect.x, clrect.y, clrect.width, clrect.height);
    this.drawActorAtbGauge(actor, rect.x + hpW + otW + 30, rect.y, atW);
  }
};

以上をATBプラグイン内同名のfunctionと差し替えた上で、

コード: 全て選択

var hpW = parseInt(totalArea * 108 / 300);

の行の108の数値を先刻変更した物と同じにしてください
(ここに差異があると溜まった時のゲージと溜まってる最中のゲージが違う事態を招きます)



ネコムスメ さんが書きました:かなり不躾なお願いで申し訳ないのですが、
ATBゲージを画像のように、CPの下に反映させる、
なんてことは可能でしょうか…??
02072A13-7072-4691-9E53-1AD7C65DE26D.png

普通にプラグインパラメーター「Gauge Style」のUnder Nameではダメなのでしょうか?
細かい画面要素の座標調整はかなり手間がかかりますので…
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
ネコムスメ
記事: 64
登録日時: 2017年5月17日(水) 00:49

Re: Yanfly様のプラグインによるHP表示について

投稿記事by ネコムスメ » 2018年1月08日(月) 23:52

>剣崎様

ありがとうございます!


名前の下だと、名前とゲージがかぶってしまい
画面がすごく見づらくなるんですよね、、、
難しいですよね、諦めます、
不躾なお願いですみませんでした><

“MV:質問” へ戻る