| 赞 | 0  | 
 
| VIP | 0 | 
 
| 好人卡 | 1 | 
 
| 积分 | 1 | 
 
| 经验 | 3794 | 
 
| 最后登录 | 2020-7-25 | 
 
| 在线时间 | 138 小时 | 
 
 
 
 
 
Lv1.梦旅人 
	- 梦石
 - 0 
 
        - 星屑
 - 55 
 
        - 在线时间
 - 138 小时
 
        - 注册时间
 - 2010-6-20
 
        - 帖子
 - 46
 
 
 
 | 
	
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员  
 
x
 
 本帖最后由 流浪剑客 于 2015-5-19 01:55 编辑  
 
查了下以前的帖子,都说Rtab战斗系统和图标显示状态脚本可以一起用,可是我把两个一起用的时候总感觉状态的回合数出错了,新建个工程里面加上rtab和图标状态脚本也是这样,应该和其他脚本没冲突,请问下rtab究竟改哪里才能解决这个问题。顺便发下图标显示状态脚本。 
#============================================================================== 
# Date 12-31-2005 
# 重定义类:Window_Base, Window_Help 
#============================================================================== 
# 脚本功能: 
# 实现战斗中和菜单中用图标显示状态,代替原来的文字显示。 
# 默认最多同时显示5个状态 
#------------------------------------------------------------------------------ 
# 设置方法: 
# 一个状态对应的图标文件名为“状态的动画ID.png” 
# 例如某状态的动画ID为50,那么它的图标就是“Icons\50.png” 
# 如果找不到对应的文件,会报错 ◎_◎ 
#==============================================================================  
 
# 注意,在ICON_STATE_IDS中写上需要带图标的状态ID 
# ICON_STATE_IDS是一个数组,数组的方法请参考帮助文件 
# 例如: 
# 只要1,5,8号状态带图标,就这样:ICON_STATE_IDS = [1,5,8] 
# 要20到50号状态带图标:ICON_STATE_IDS = 20..50 
 
ICON_STATE_IDS = [13,14,15] 
 
#============================================================================== 
# ■ 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 / 24 
      break 
    end 
    # 此状态不带图标就跳过 
    if !ICON_STATE_IDS.include?(state) 
      next 
    end 
    bitmap = RPG::Cache.icon($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 + 8, 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) 
  # 描绘状态图标 
  state_size = 0 
  for state in enemy.states 
    # 图标数量超出宽度就中断循环 
    if state_size >= width / 16 
      break 
    end 
    # 此状态不带图标就跳过 
    if !ICON_STATE_IDS.include?(state) 
      next 
    end 
    bitmap = RPG::Cache.icon($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 + 16 * state_size, 0, bitmap, Rect.new(0, 0, 24, 24), opacity) 
    state_size += 1 
  end 
  # 描绘敌人名字 
  set_text(enemy.name, 1) 
end 
end 
 
class Game_Battler 
attr_reader :states_turn       # 声明状态剩余回合 
end |   
 
 
 
 |