设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1645|回复: 3
打印 上一主题 下一主题

[已经过期] 关于rtab和图标显示状态

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
138 小时
注册时间
2010-6-20
帖子
46
跳转到指定楼层
1
发表于 2015-5-15 22:56:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

Project1.zip

232.82 KB, 下载次数: 48

Lv1.梦旅人

梦石
0
星屑
55
在线时间
138 小时
注册时间
2010-6-20
帖子
46
2
 楼主| 发表于 2015-5-19 01:57:01 | 只看该作者
有大神会么?
回复 支持 反对

使用道具 举报

Lv2.观梦者

会吐槽的画师

梦石
0
星屑
782
在线时间
3431 小时
注册时间
2011-6-10
帖子
6535
3
发表于 2015-5-19 09:24:28 | 只看该作者
速度系统的计算回合和普通计算不一样 速度系统里“一回合”是以敌我双方均完成一次动作才算一回合 那么换句话如果你的角色很快 敌人未满一回合你可以行动很多次 那么附加在角色身上的增益状态就一直存在 所以会报错
有个思路是 建一个状态回合的变量 计算状态剩余回合不用“回合”的概念 而是找到 行动 的地方加一个状态回合增数值
意思就是 状态不再是一个全局变量而变成了以每个角色敌人自身行动次数决定
长名公主玩家群:372588926 攻略娱乐应有尽有
了解更多新RM游戏,游戏制作请加入RPGmaker支援群:113622890
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
138 小时
注册时间
2010-6-20
帖子
46
4
 楼主| 发表于 2015-5-19 12:03:58 | 只看该作者
上贺茂润 发表于 2015-5-19 09:24
速度系统的计算回合和普通计算不一样 速度系统里“一回合”是以敌我双方均完成一次动作才算一回合 那么换句 ...

我知道你说的这个设定,这个也不算是bug,问题是当1个角色有好几个状态的时候,比如蓄力3回合,屏障4回合,蓄力定量小于屏障的时候,3回合后蓄力不会消失,4回合后两个状态一起消失了,但是如果蓄力定量大于屏障就没有这个情况。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-22 23:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表