查看: 1542|回复: 0

[已经解决] 【已解决】把兵力HP747 747 改为最大值效果=兵力HP747

[复制链接]
梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
发表于 2022-11-22 08:51:21 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 金芒芒 于 2022-11-22 11:02 编辑

[pre lang="ruby"]#==============================================================================
# ■ Window_Status
#------------------------------------------------------------------------------
#  人物状态窗口。
#==============================================================================
class Window_Status < Window_Base
  CLASS_ON = false #状态条开启与不开启
  attr_reader   :actor
  def actor
    return @actor
  end
  def actor=(actor)
    @actor = actor
  end
  
  def blue_color
    return Color.new(141,157,180)
  end
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #     actor : 角色
  #--------------------------------------------------------------------------
  def initialize(actor = $game_party.actors[0])
    @back = Sprite.new
    @back.bitmap = RPG::Cache.menu("Status")
    @actor = actor
    @new_p = [nil]
    @new_maxhp = nil
    @new_maxsp = nil
    #super(origin_x+320, origin_y+130, 122+64, 480
    super(origin_x+320, origin_y+130, 1200, 700)
    self.contents = Bitmap.new(width-32, height-32)
    #self.windowskin = RPG::Cache.windowskin("")
    self.opacity = 0
    refresh
  end
  #--------------------------------------------------------------------------
  # ● 活动窗口用原始x y坐标
  #--------------------------------------------------------------------------  
  def origin_x
    return 220
  end
  def origin_y
    return 64
  end
  #--------------------------------------------------------------------------
  # ● 一些方法的重载
  #--------------------------------------------------------------------------  
  def dispose
    @back.dispose
    super
  end
  def x=(x)
    @back.x = x-origin_x
    super(x-16)
  end
  def x
    return super+16
  end
  def y=(y)
    @back.y = y
    super(y)
  end
  def z=(z)
    @back.z=z-5
    super(z)
  end
  def visible=(visible)
    @back.visible=visible
    super(visible)
  end
  def contents_opacity=(opacity)
    @back.opacity=opacity
    super(opacity)
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh(actor = @actor)
    @actor = actor
    self.contents.clear
   
    @new_maxhp = nil
    @new_maxsp = nil
    for i in 0 ... @new_p.size
      @new_p = nil
    end
    draw_actor_name(16, 96-32)
    if CLASS_ON #显示职业的情况
      draw_actor_level(12,126-32)#描绘等级
      draw_actor_class(12,126-32+14)#描绘职业
      draw_actor_hsp(12,126-32+28, 0,@new_maxhp )#描绘hp
     # draw_actor_hsp(12,126-32+42,1,@new_maxsp )#描绘sp
     # draw_actor_cp(12,126-32+56)#描绘cp
    else
      draw_actor_level(12,126-32)#描绘等级
      draw_actor_hsp(380,240-32+4+16,0,@new_maxhp )#描绘hp
     # draw_actor_hsp(12, 126-32+4+32,1,@new_maxsp )#描绘sp
    #  draw_actor_cp(12,126-32+4+48)#描绘cp
    end
    #描绘各种属性
    for i in 0 ...8
      draw_actor_parameters(380, 128-32+4+i*16, i,@new_p )
    end
    draw_actor_state(actor, 12, 208-32+12+i*16)
    #描绘经验
    draw_actor_exp(12, 368-32)
  end
  #--------------------------------------------------------------------------
  # ● 描绘能力值
  #     actor : 角色
  #     x     : 描画目标 X 坐标
  #     y     : 描画目标 Y 坐标
  #     type  : 能力值种类 (0~6)
  #--------------------------------------------------------------------------
  def draw_actor_parameters( x, y, type=0, new=nil )
    self.contents.fill_rect(x, y, 122, 14, Color.new(0, 0, 0, 0))
    @color = Color.new(0,0,0)
    @color = normal_color
    up_color = system_color
    down_color = knockout_color
    ud = RPG::Cache.menu_icon("null")
    case type
    when 0
      word = $data_system.words.atk
      old = @actor.atk
    when 1
      word = $data_system.words.pdef
      old = @actor.pdef
    when 2
      word = $data_system.words.mdef
      old = @actor.mdef
    when 3
      word = $data_system.words.str
      old = @actor.str
    when 4
      word = $data_system.words.dex
      old = @actor.dex
    when 5
      word = $data_system.words.agi
      old = @actor.agi
    when 6
      word = $data_system.words.int
      old = @actor.int
    when 7
      word = "AGL"
      old = @actor.eva
    end

    if new  != nil
      @color = normal_color
      if new > old
        @color = up_color
        ud = RPG::Cache.menu_icon("up")
      end
      if new < old
        @color = down_color
        ud = RPG::Cache.menu_icon("down")
      end
      value = new
    else
      @color= normal_color
      value = old
    end
   
    self.contents.font.size = 12
    self.contents.font.color = black_color
    self.contents.draw_text(x+1, y+1, 20, self.contents.font.size, word)
    self.contents.font.color = blue_color
    self.contents.draw_text(x, y, 20, self.contents.font.size, word)
   
    self.contents.font.color = black_color
    self.contents.draw_text(x+1, y+1, 66, self.contents.font.size, value.to_s, 2)
    self.contents.font.color = @color
    self.contents.draw_text(x, y, 66, self.contents.font.size, value.to_s, 2)
    self.contents.blt(x+66, y, ud, Rect.new(0,0,12, 12) )
  end
  #--------------------------------------------------------------------------
  # ● 描绘hsp
  #--------------------------------------------------------------------------
  def draw_actor_hsp(x, y, type=0, new=nil)
    self.contents.fill_rect(x, y, 122, 14, Color.new(0, 0, 0, 0))
    case type
    when 0
      word = $data_system.words.hp
      hsp = @actor.hp
      mhsp = @actor.maxhp
#   when 1
#     word = $data_system.words.sp
  #    hsp = @actor.sp
#     mhsp = @actor.maxsp
    end
    ud = RPG::Cache.menu_icon("null")
    # 描绘字符串 "HP"
    self.contents.font.size = 12
    self.contents.font.color = black_color
    self.contents.draw_text(x+1, y+1, 24, self.contents.font.size, word)
    self.contents.font.color = title_color
    self.contents.draw_text(x, y, 24, self.contents.font.size, word)
    # 描绘 HP
  #  self.contents.font.color = black_color
  #  self.contents.draw_text(x+1, y+1, 52, self.contents.font.size, hsp.to_s, 2)
#   self.contents.font.color = hsp == 0 ? knockout_color :
#   (hsp <= mhsp / 4 ? crisis_color : normal_color)
#   self.contents.draw_text(x, y, 52, self.contents.font.size, hsp.to_s, 2)
    # 描绘 MaxHP
#   self.contents.font.color = black_color
#   self.contents.draw_text(x + 52+1, y+1, 12, self.contents.font.size, "/")
#  self.contents.font.color = normal_color
  #  self.contents.draw_text(x + 52, y, 12, self.contents.font.size, "/")
   
    up_color = system_color
    down_color = knockout_color
    if new  != nil
      @color = normal_color
      if new > mhsp
        @color= up_color
        ud = RPG::Cache.menu_icon("up")
      end
      if  new < mhsp
        @color = down_color
        ud = RPG::Cache.menu_icon("down")
      end
      hp_value = new
    else
      @color = normal_color
      hp_value = mhsp
    end
    self.contents.font.color = black_color
    self.contents.draw_text(x+64-6+1, y+1, 32,self.contents.font.size, hp_value.to_s,2)
    self.contents.font.color = @color
    self.contents.draw_text(x+64-6, y, 32,self.contents.font.size, hp_value.to_s,2)
    self.contents.blt(x+96-6, y, ud, Rect.new(0,0,24, 24) )
  end
  #--------------------------------------------------------------------------
  # ● 描绘名字
  #--------------------------------------------------------------------------
  def draw_actor_name(x, y)
    self.contents.font.size = 18
    self.contents.font.color = black_color
    self.contents.draw_text(x+76, y+1, 90, 18, @actor.name,1)
    self.contents.font.color = normal_color
    self.contents.draw_text(x+75, y, 90, 18, @actor.name,1)
  end
  #--------------------------------------------------------------------------
  # ● 描绘等级 126 12
  #--------------------------------------------------------------------------
  def draw_actor_level( x, y)
    self.contents.font.size = 20
    self.contents.font.color = black_color
    self.contents.draw_text(x+1, y, 32, self.contents.font.size, "等级")
    self.contents.font.color = title_color
    self.contents.draw_text(x+10, y+275, 32, self.contents.font.size, "等级")#Level
   
    self.contents.font.size = 20
    self.contents.font.color = black_color
    self.contents.draw_text(x+1, y, 86, self.contents.font.size, @actor.level.to_s, 2)
    self.contents.font.color = normal_color
    self.contents.draw_text(x, y+275, 86, self.contents.font.size, @actor.level.to_s, 2)
  end
  #--------------------------------------------------------------------------
  # ● 描绘职业
  #--------------------------------------------------------------------------
  def draw_actor_class( x, y)
    self.contents.font.size = 14
    self.contents.font.color = black_color
    self.contents.draw_text(x+1, y+1, 32, self.contents.font.size, "Class")
    self.contents.font.color = title_color
    self.contents.draw_text(x, y, 32, self.contents.font.size, "Class")
    self.contents.font.size = 12
    self.contents.font.color = black_color
    self.contents.draw_text(x+1, y+1+2, 88, self.contents.font.size, actor.class_name, 2)
    self.contents.font.color = normal_color
    self.contents.draw_text(x, y+2, 88, self.contents.font.size, actor.class_name, 2)
  end
  #--------------------------------------------------------------------------
  # ● 描绘CP
  #--------------------------------------------------------------------------
# def draw_actor_cp( x, y)
   # 描绘字符串 "CP"
  #  self.contents.font.size = 12
  #  self.contents.font.color = black_color
  #  self.contents.draw_text(x+1, y+1, 32, self.contents.font.size, "CP")
  #  self.contents.font.color = title_color
   # self.contents.draw_text(x, y, 32, self.contents.font.size, "CP")
  #  self.contents.font.color = black_color
  #  self.contents.draw_text(x+1, y+1, 90, self.contents.font.size, actor.cp_store.to_s, 2)
  #  self.contents.font.color = normal_color
  #  self.contents.draw_text(x, y, 90, self.contents.font.size, actor.cp_store.to_s, 2)
# end
  #--------------------------------------------------------------------------
  # ● 描绘经验值
  #--------------------------------------------------------------------------
  def draw_actor_exp(x, y)
    self.contents.font.size = 12
      
    self.contents.font.color = black_color
    self.contents.draw_text(x+1, y+1, 32, self.contents.font.size, "EXP")
    self.contents.font.color = title_color
    self.contents.draw_text(x, y, 32, self.contents.font.size, "EXP")
   
    self.contents.font.color = black_color
    self.contents.draw_text(x+1, y+1, 96, self.contents.font.size, @actor.exp.to_s, 2)
    self.contents.font.color = normal_color
    self.contents.draw_text(x, y, 96, self.contents.font.size, @actor.exp.to_s, 2)
   
    self.contents.font.color = black_color
    self.contents.draw_text(x+1, y+14+1, 32, self.contents.font.size, "NEXT")
    self.contents.font.color = title_color
    self.contents.draw_text(x, y+14, 32, self.contents.font.size, "NEXT")
    self.contents.font.color = black_color
    self.contents.draw_text(x+1, y+14+1, 96, self.contents.font.size, @actor.next_exp_s, 2)
    self.contents.font.color = normal_color
    self.contents.draw_text(x, y+14, 96, self.contents.font.size, @actor.next_exp_s, 2)
  end
  #--------------------------------------------------------------------------
  # ● 设定属性变化
  #--------------------------------------------------------------------------
  def set_parameters(atk=nil,pdef=nil,mdef=nil,str=nil,dex=nil,agi=nil,int=nil,maxhp=nil,maxsp=nil, eva = nil )
    if @new_p[0] != atk
      @new_p[0]= atk
      draw_actor_parameters(28, 208-32+4+0*16, 0,@new_p[0] )
    end
    if @new_p[1] != pdef
      @new_p[1] = pdef
      draw_actor_parameters(28, 208-32+4+1*16, 1,@new_p[1] )
    end
    if @new_p[2] != mdef
      @new_p[2] = mdef
      draw_actor_parameters(28, 208-32+4+2*16, 2,@new_p[2] )
    end
    if @new_p[3] != str
      @new_p[3] = str
      draw_actor_parameters(28, 208-32+4+3*16, 3,@new_p[3] )
    end
    if @new_p[4] != dex
      @new_p[4] = dex
      draw_actor_parameters(28, 208-32+4+4*16, 4,@new_p[4] )
    end
    if @new_p[5] != agi
      @new_p[5] = agi
      draw_actor_parameters(28, 208-32+4+5*16, 5,@new_p[5] )
    end
    if @new_p[6] != int
      @new_p[6] = int
      draw_actor_parameters(28, 208-32+4+6*16, 6,@new_p[6] )
    end
    #回避修正
    if @new_p[7] != eva
      @new_p[7] = eva
      draw_actor_parameters(28, 208-32+4+7*16, 7,@new_p[7] )
    end

    if @new_maxhp != maxhp
      @new_maxhp = maxhp
      if CLASS_ON #显示职业的情况
        draw_actor_hsp(12,126-32+28, 0,@new_maxhp )#描绘hp
      else
        draw_actor_hsp(12, 126-32+4+16,0,@new_maxhp )#描绘hp
      end
    end
  #  if @new_maxsp != maxsp
   #   @new_maxsp = maxsp
  #    if CLASS_ON #显示职业的情况
   #     draw_actor_hsp(12,126-32+42,1,@new_maxsp )#描绘sp
   #   else
   #     draw_actor_hsp(12, 126-32+4+32,1,@new_maxsp )#描绘sp
   #   end
   # end

  end
   
end[/pre]
HP最大值.png
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部