Project1

标题: RTAB+“精尽人亡”效果之后的奇怪现象 [打印本页]

作者: 君迁子    时间: 2009-5-15 21:58
标题: RTAB+“精尽人亡”效果之后的奇怪现象
发现弄进了SP耗光也会挂这个效果之后,敌人在SP不够的情况下也会义无反顾地放技能,但是效果是全体范围的普攻(就是不是技能的效果而是普攻的效果),然后,理所当然地因为SP耗光而自爆了||||
请问这是怎么回事?=v=b

改了以下位置

#--------------------------------------------------------------------------
# ● 战斗不能判定
#--------------------------------------------------------------------------
  def dead?
    #return (@hp == 0 and not @immortal)
    return (@hp==0 or @sp==0 and not @immortal)
  end

==========================================

#--------------------------------------------------------------------------
# ● HP 0 判定
#--------------------------------------------------------------------------
  def hp0?
    return (not @hidden and @hp == 0 and @sp==0 )
  end

==========================================
Game_Battler 2中

      # 选项 [当作 HP 0 的状态] 有效的情况下
      if $data_states[state_id].zero_hp
        # HP 更改为 0
        @hp = 0
        @sp = 0
      end

但是发现改这三处并不会造成这个现象,那究竟动了哪里会出现这种情况呢||||

另外在我自己的工程里,如果去掉[自动复活]里自己加的这一段“

  #--------------------------------------------------------------------------
  # ● 更改 SP
  #     sp : 新的 SP
  #--------------------------------------------------------------------------
  def sp=(sp)
    @sp = [[sp, maxsp].min, 0].max
    # 解除附加的战斗不能状态
    for i in 1...$data_states.size
      if $data_states.zero_hp
        if self.dead?
          add_state(i)
        else
          remove_state(i)
        end
      end
    end
  end

就会出现敌人SP不够仍然能够放出技能(且效果也是技能的),然后自爆,但成了一个“假死”状态,也就是HP不为0,其实是活着的,但是必须把HP扣光才能“真死”= =|||||

另外经测试和def skill_can_use?无关,因为换成了默认的也还是这种情况= =




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1