查看: 2469|回复: 2

[已经解决] XP默认战斗一个人是只能存在一个异常状态么

[复制链接]
梦石
0
星屑
339
在线时间
824 小时
注册时间
2008-9-16
回帖
596
发表于 2015-9-26 18:09:41 | 显示全部楼层 |阅读模式

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

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

×
XP默认战斗一个人是只能存在一个异常状态么
梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2015-9-26 18:16:49 | 显示全部楼层
不是,异常状态是叠加的,但是由于窗口显示和动画显示的问题,战斗下方的状态栏通常只显示优先级最大的状态(优先级即数据库中的[定量])。总之,异常状态如果不冲突的话是叠加的。

点评

谢谢了  发表于 2015-9-26 18:43
回复

使用道具 举报

素材区好人

梦石
5
星屑
12564
在线时间
4347 小时
注册时间
2011-7-21
回帖
2264

超评测参与极短28参与极短27参与极短26参与极短25参与极短24参与极短23参与极短22参与极短21参与

发表于 2015-9-26 18:25:26 | 显示全部楼层
只要状态不相互抵消,那么一个角色可以被赋予多个状态
只是因为菜单和动画的关系,默认只能显示其中优先级最高的一个
送你个脚本好了
【多重状态,可以显示多个状态】
[pre lang="ruby"]#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
#==============================================================================
# 多重状态     Ver. 1.1                 by Claimh
#------------------------------------------------------------------------------
# http://www.k3.dion.ne.jp/~claimh/
#==============================================================================
class Window_Base < Window
  #--------------------------------------------------------------------------
  #  生成状态文字
  #--------------------------------------------------------------------------
  def make_battler_state_text_over3(battler, width, need_normal)
    brackets_width = self.contents.text_size("[]").width
    text = ""
    text0 = ""
    ret_text = ["",""]
    for i in battler.states
      if $data_states.rating >= 1
        if text == ""
          text = $data_states.name
        else
          new_text = text + "/" + $data_states.name
          text_width = self.contents.text_size(new_text).width
          if text_width > width - brackets_width
            text0 = new_text  
            text = ""
            new_text = ""
            text_width = 0
          else
            text = new_text  
          end
        end
      end
    end
    if text == "" and text0 == ""
      ret_text = ["[正常]", ""]
    elsif text0 == ""
      ret_text[0] = "[" + text + "]"
      ret_text[1] = ""
    else
      ret_text[0] = "[" + text0 + "]"
      if text != ""
        ret_text[1] = "[" + text + "]"
      else
        ret_text[1] = ""
      end
    end
    return ret_text
  end
  #--------------------------------------------------------------------------
  # 描绘角色状态
  #--------------------------------------------------------------------------
  def draw_actor_state(actor, x, y, width = 120)
    text = make_battler_state_text_over3(actor, width, true)
    self.contents.font.color = actor.hp == 0 ? knockout_color : normal_color
    if text[1] == ""
      self.contents.draw_text(x-5, y, width+5, 32, text[0])
    else
      self.contents.font.size = 20
      self.contents.draw_text(x-5, y - 15 , width+5, 32, text[0])
      self.contents.draw_text(x-5, y + 8, width+5, 32, text[1])
    end
  end
end
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
[/pre]

点评

谢谢,但其实我想弄成只能有一个状态的....现在用的会把之前的状态顶掉的那种  发表于 2015-9-26 18:43

评分

参与人数 1星屑 +150 收起 理由
RyanBern + 150 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部