ページ 11

解決済み VX 一部のアクターと敵のみ能力値の用語変更

Posted: 2018年5月01日(火) 21:57
by ショウ
現在一部のアクターや敵のみHPではなく兵力と表記させたいと思い苦心しています。
愚直に条件分岐でやっていけば出来そうですが…

コード: 全て選択

class Window_Base < Window
#--------------------------------------------------------------------------
  # ● HP の描画
  #     actor : アクター
  #     x     : 描画先 X 座標
  #     y     : 描画先 Y 座標
  #     width : 幅
  #--------------------------------------------------------------------------
  def draw_actor_hp(actor, x, y, width = 120)
    draw_actor_hp_gauge(actor, x, y, width)
    self.contents.font.color = system_color
    if actor == $game_actors[1]
      self.contents.draw_text(x, y, 30, WLH, "兵力")
    elsif actor == $game_actors[2]
      self.contents.draw_text(x, y, 30, WLH, "兵力")
    else
      self.contents.draw_text(x, y, 30, WLH, Vocab::hp)
    end
    self.contents.font.color = hp_color(actor)
    xr = x + width
    if width < 120
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.hp, 2)
    else
      self.contents.draw_text(xr - 90, y, 40, WLH, actor.hp, 2)
      self.contents.font.color = normal_color
      self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxhp, 2)
    end
  end
end

とりあえずこれでアクター1と2はメニュー上ではHPではなく兵力と表記されるんですが、
数が10、20とかになって来ると思うともっとまとめられないものかと…
更にバトル中のHPの表記やダメージ表記などは敵も含めてになるのでぐちゃぐちゃで訳が
分からなくなりそうです。
もっといい方法があったり、その手のスクリプトがあれば紹介してもらえると助かります。

Re: VX 一部のアクターと敵のみ能力値の用語変更

Posted: 2018年5月02日(水) 08:34
by faida
配列を使えば管理が楽になると思います。

コード: 全て選択

class Window_Base < Window
#--------------------------------------------------------------------------
  # ● HP の描画
  #     actor : アクター
  #     x     : 描画先 X 座標
  #     y     : 描画先 Y 座標
  #     width : 幅
  #--------------------------------------------------------------------------
  def draw_actor_hp(actor, x, y, width = 120)
    draw_actor_hp_gauge(actor, x, y, width)
    self.contents.font.color = system_color
    if [1,2,*6..10].include?(actor.id)
      self.contents.draw_text(x, y, 30, WLH, "兵力")
    else
      self.contents.draw_text(x, y, 30, WLH, Vocab::hp)
    end
    self.contents.font.color = hp_color(actor)
    xr = x + width
    if width < 120
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.hp, 2)
    else
      self.contents.draw_text(xr - 90, y, 40, WLH, actor.hp, 2)
      self.contents.font.color = normal_color
      self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxhp, 2)
    end
  end
end
もっと言うと定数やGame_Actorで管理しておくと管理の手間が省けます。
VXだとアクターにメモ欄がないので少々管理が面倒ですよね……。
敵キャラにはあるので敵キャラの分はメモ欄で管理すればよいと思いますが。

あと全く関係ないんですけど手元にHP以外も変えられる(ただしアクターのみ)スクリプトがあるので
ついでに貼っておきます。

Re: VX 一部のアクターと敵のみ能力値の用語変更

Posted: 2018年5月02日(水) 16:17
by ショウ
返信ありがとうございます。
なるほど、actorの中身を直接参照するのではなく
include?でIDが含まれているかどうかにすればよかったんですね。
あのやり方でなんとか配列でいけないかと苦心していたので助かりました。

それと素晴らしいスクリプトをありがとうございます。
このスクリプトなんですか敵の吸収ダメージなどの表記を変えるために
少し手を加えたいのですがよろしいのでしょうか?

Re: VX 一部のアクターと敵のみ能力値の用語変更

Posted: 2018年5月02日(水) 19:28
by faida
改変して使う分には構いません。
改変したものを配布する場合は記名をお願いします。

解決済み VX 一部のアクターと敵のみ能力値の用語変更

Posted: 2018年5月02日(水) 20:11
by ショウ
ありがとうございます。
おかげでやりたい事が出来ました。