Project1

标题: 这样写 死亡宣告为啥没用? [打印本页]

作者: wangswz    时间: 2009-11-13 21:26
标题: 这样写 死亡宣告为啥没用?
本帖最后由 wangswz 于 2009-11-13 23:23 编辑

等待沙发高人研究解答。。
#--------------------------------------------------------------------------
  # ● 状态自然解除 (回合改变时调用)
  #--------------------------------------------------------------------------
  def remove_states_auto
    clear_action_results
    for i in @state_turns.keys.clone
      if @state_turns > 0
        @state_turns -= 1
      elsif rand(100) < $data_states.auto_release_prob
###################死亡宣告(16号状态)##################
       if state_id == 16
         add_state(1)
       end
###################死亡宣告(16号状态)##################
        remove_state(i)
        @removed_states.push(i)
      end
    end
  end
作者: 小幽的马甲    时间: 2009-11-13 21:56
本帖最后由 小幽的马甲 于 2009-11-13 22:23 编辑

#--------------------------------------------------------------------------
  # ● 自然解除状态 (到达回合数时调用)
  #--------------------------------------------------------------------------
  def remove_states_auto
    clear_action_results
    for i in @state_turns.keys.clone
      if @state_turns == nil
        return
      end

      if @state_turns > 0
        @state_turns -= 1
      elsif rand(100) < $data_states.auto_release_prob
        remove_state(i)
        if i == 16
          add_state(1)
          @added_states.push(1)
        end

        @removed_states.push(i)
      end
    end
  end

这样如何- -
作者: wangswz    时间: 2009-11-13 22:35
本帖最后由 wangswz 于 2009-11-13 22:40 编辑

if @state_turns == nil
        return
      end
这句啥意思?
作者: 小幽的马甲    时间: 2009-11-13 23:04
就是这个死宣如果与其他状态同回合解除,若先战斗不能了则那个数组就nil了,此时再用“>”就会报错。此处return掉就没事了…
作者: 小幽的马甲    时间: 2009-11-13 23:08
抱歉手机版看不到贴内回复…end报错大概是end数量没和if、def对上吧…
作者: wangswz    时间: 2009-11-13 23:18
本帖最后由 wangswz 于 2009-11-13 23:22 编辑

OK了 感谢~
作者: 小幽的马甲    时间: 2009-11-13 23:22
我给的过程根本没有用state_id这个方法啊= =把整个2楼替换调原来那个吧…




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