| 
 
| 赞 | 11 |  
| VIP | 94 |  
| 好人卡 | 57 |  
| 积分 | 39 |  
| 经验 | 47770 |  
| 最后登录 | 2025-10-23 |  
| 在线时间 | 1588 小时 |  
 Lv3.寻梦者 
	梦石0 星屑3907 在线时间1588 小时注册时间2006-5-5帖子2743 | 
| 哎,想要相关脚本就直说。下面这个脚本能解决你的问题;方法是在“Graphics”下建立个文件夹,命名为“Status”,然后再把和状态同名的图片放到里边就好了。如果实在还不懂就只好直接给你范例了。 复制代码#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#============================================================================== 
#==============================================================================
# 图标显示状态 v1.1
# By 叶子
# 9-30-2007 v1.1
#==============================================================================
# 脚本功能:
# 实现战斗中和菜单中用图标显示状态,代替原来的文字显示。
# 默认最多同时显示5个状态
#------------------------------------------------------------------------------
# 设置方法:
# 一个状态对应的图标文件名为“状态的图片名字”
# 例如眩晕状态,那么它的图标就是“Status\眩晕.png”或“Status\眩晕.jpg”
# 如果找不到对应的文件,会报错 ◎_◎
#============================================================================== 
ICON_STATE_IDS = [1,5,8]
# 要20到50号状态带图标:ICON_STATE_IDS = 20..50
ICON_STATE_IDS = 1..100
#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
#  游戏中全部窗口的超级类。
#==============================================================================
class Window_Base < Window
  #--------------------------------------------------------------------------
  # ● 描绘状态
  #     actor : 角色
  #     x     : 描画目标 X 坐标
  #     y     : 描画目标 Y 坐标
  #     width : 描画目标的宽
  #--------------------------------------------------------------------------
  def draw_actor_state(actor, x, y, width = 120)
    state_size = 0
    for state in actor.states
      # 图标数量超出宽度就中断循环
      if state_size >= width / 30
        break
      end
      # 此状态不带图标就跳过
      if !ICON_STATE_IDS.include?(state)
        next
      end
 bitmap = Bitmap.new("Graphics/Status/" + $data_states[state].name + ".png")
      if actor.states_turn[state] >= $data_states[state].hold_turn/2
        opacity = 255
      else
        opacity = 100
      end
      # 这里的图标大小默认是24x24,要改就改下面那个Rect.new(0, 0, 24, 24)
      self.contents.blt(x +24 * state_size , y , bitmap, Rect.new(0, 0, 24, 24), opacity)
      state_size += 1
    end
  end
end
  
#==============================================================================
# ■ Window_Help
#------------------------------------------------------------------------------
#  特技及物品的说明、角色的状态显示的窗口。
#==============================================================================
  
class Window_Help < Window_Base
  #--------------------------------------------------------------------------
  # ● 设置敌人
  #     enemy : 要显示名字和状态的敌人
  #--------------------------------------------------------------------------
  def set_enemy(enemy)
    @text = ""
    # 描绘敌人名字
    set_text(enemy.name, 1)
    # 描绘状态图标
    state_size = 0
    for state in enemy.states
      # 图标数量超出宽度就中断循环
      if state_size >= 4
        break
      end
      # 此状态不带图标就跳过
      if !ICON_STATE_IDS.include?(state)
        next
      end
      bitmap = Bitmap.new("Graphics/Status/" + $data_states[state].name + ".png")
      if enemy.states_turn[state] >= $data_states[state].hold_turn/2
        opacity = 255
      else
        opacity = 100
      end
      self.contents.blt(70 + 24 * state_size, 0, bitmap, Rect.new(0, 0, 24, 24), opacity)
      state_size += 1
    end
  end
end
class Game_Battler
  attr_reader :states_turn       # 声明状态剩余回合
end
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
# 欢迎访问www.66RPG.com
# 梦想世界,在你手中
#==============================================================================
 | 
 评分
查看全部评分
 |