Project1

标题: state的脚本作用求解释 [打印本页]

作者: chd114    时间: 2015-7-22 22:10
标题: state的脚本作用求解释
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # new method: state_change_turns
  3.   #--------------------------------------------------------------------------
  4.   def state_change_turns(state_id, value)
  5.     state_id = state_id.id if state_id.is_a?(RPG::State)
  6.     @state_turns[state_id] = 0 if @state_turns[state_id].nil?
  7.     @state_turns[state_id] = [value, 0].max
  8.   end
  1. if state_id.is_a?(RPG::State)
复制代码
是判断实例?
  1. if @state_turns[state_id].nil?
复制代码
是什么?
@VIPArcher  
作者: 短10今天出了吗    时间: 2015-7-22 22:38
if state_id.is_a?(RPG::State)

判断 state_id 是否是 RPG::State 的一个实例

if @state_turns[state_id].nil?

判断哈希 @state_turns 中键为 state_id 的值是否存在
作者: chd114    时间: 2015-7-22 22:42
短10今天出了吗 发表于 2015-7-22 05:38
if state_id.is_a?(RPG::State)

判断 state_id 是否是 RPG::State 的一个实例

if @state_turns[state_id].nil?和if @state_turns[state_id]==nil的区别是?
作者: 喵呜喵5    时间: 2015-7-22 23:02
本帖最后由 喵呜喵5 于 2015-7-22 23:06 编辑

未测试

2楼点评:最后一行改成

@state_turns[state_id] = [@state_turns[state_id] + value, 0].max

3楼:你当成没区别就好了


作者: chd114    时间: 2015-7-23 12:27
喵呜喵5 发表于 2015-7-22 06:02
未测试

2楼点评:最后一行改成

@state_turns[state_id] = [@state_turns[state_id] + value, 0].max发现两个BUG
1、如果没有事先附加状态则这个状态的持续时间不会变化
2、如果在拥有这个状态的时候把持续时间减到0则这个状态依然存在,需要下一个回合才会消失···




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