Project1

标题: 请问:睡眠状态不能战斗,这个程序设定在哪个地方? [打印本页]

作者: kvkv97    时间: 2021-3-15 15:08
标题: 请问:睡眠状态不能战斗,这个程序设定在哪个地方?
请问:睡眠状态不能战斗,这个程序设定在哪个地方?
另外,
  def add_state(state_id, force = false)
    # 无法附加本状态的情况下
    unless state?(state_id)
      # 状态 ID 追加到 @states 序列中
      @states.push(state_id)
      # 选项 [当作 HP 0 的状态] 有效的情况下
      if $data_states[state_id].zero_hp
        # HP 更改为 0
        @hp = 0
      end
      # 所有状态的循环
      for i in 1...$data_states.size
        # 状态变化 (+) 处理
        if $data_states[state_id].plus_state_set.include?(i)
          add_state(i)
        end
        # 状态变化 (-) 处理
        if $data_states[state_id].minus_state_set.include?(i)
          remove_state(i)
        end
      end
    end
这么add_state能放套在方法add_state中?

作者: 灯笼菜刀王    时间: 2021-3-16 00:43
在 restriction  这里, 你按F1搜索restriction可以看到它的解释

全局搜索 restriction, 看看无法行动的状态(restriction == 4)是被怎么处理的, 应该能了解哪里限制了吧

至于add_state为什么可以套娃, 因为套娃并没有产生死循环, 因此就可以这样用

具体解释就是:  unless state?(state_id) 的条件限制了"附加上这个状态的时候就不会调用", 因此,无论怎么套娃, 哪怕让你把所有状态都套上,那也是有"尽头"的, 所以就不会出现堆栈过深的错误咯




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