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

ショウ
記事: 149
登録日時: 2016年8月10日(水) 19:52

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

投稿記事by ショウ » 2018年5月01日(火) 21:57

現在一部のアクターや敵のみ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の表記やダメージ表記などは敵も含めてになるのでぐちゃぐちゃで訳が
分からなくなりそうです。
もっといい方法があったり、その手のスクリプトがあれば紹介してもらえると助かります。
最後に編集したユーザー ショウ on 2018年5月02日(水) 20:11 [ 編集 1 回目 ]

faida
記事: 272
登録日時: 2015年12月17日(木) 16:44

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

投稿記事by faida » 2018年5月02日(水) 08:34

配列を使えば管理が楽になると思います。

コード: 全て選択

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以外も変えられる(ただしアクターのみ)スクリプトがあるので
ついでに貼っておきます。
添付ファイル
para_name.txt
(8.31 KiB) ダウンロード数: 9 回
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
ショウ
記事: 149
登録日時: 2016年8月10日(水) 19:52

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

投稿記事by ショウ » 2018年5月02日(水) 16:17

返信ありがとうございます。
なるほど、actorの中身を直接参照するのではなく
include?でIDが含まれているかどうかにすればよかったんですね。
あのやり方でなんとか配列でいけないかと苦心していたので助かりました。

それと素晴らしいスクリプトをありがとうございます。
このスクリプトなんですか敵の吸収ダメージなどの表記を変えるために
少し手を加えたいのですがよろしいのでしょうか?
faida
記事: 272
登録日時: 2015年12月17日(木) 16:44

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

投稿記事by faida » 2018年5月02日(水) 19:28

改変して使う分には構いません。
改変したものを配布する場合は記名をお願いします。
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
ショウ
記事: 149
登録日時: 2016年8月10日(水) 19:52

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

投稿記事by ショウ » 2018年5月02日(水) 20:11

ありがとうございます。
おかげでやりたい事が出来ました。

“VX / Ace:質問” へ戻る