标题: ……].max, 999].min是什么意思? [打印本页] 作者: fyws 时间: 2009-3-21 02:15 标题: ……].max, 999].min是什么意思? 看脚本头都大了,其他的还凑合,就是这个……].max, 999].min不知道什么意思
例子:
#--------------------------------------------------------------------------
# * Get Dexterity (DEX)
#--------------------------------------------------------------------------
def dex
n = [[base_dex + @dex_plus, 1].max, 999].min
for i in @states
n *= $data_states.dex_rate / 100.0
end
n = [[Integer(n), 1].max, 999].min
return n
end [LINE]1,#dddddd[/LINE]此贴于 2009-3-20 21:37:05 被版主redant提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~作者: 八云紫 时间: 2009-3-21 02:18
n = [[base_dex + @dex_plus, 1].max, 999].min
这句要分开看, 先看一部分:
[base_dex + @dex_plus, 1].max
意思是说, 返回 base_dex + @dex_plus 和 1 中最大的那个数字。
然后 假设 a = [base_dex + @dex_plus, 1].max
再看这个:
n = [a, 999].min
返回 a 和 999 最小的那个。
判断最大最小值用的。
[LINE]1,#dddddd[/LINE]
为什么要放在 [ ] 之间呢?
因为 max min 这两个方法只能在数组对象上使用, 如果不使用这两个方法的话,也可以这么写:
a = (base_dex + @dex_plus) > 1 ? base_dex + @dex_plus : 1
n = a > 999 ? 999 : a
再或者是:
if (base_dex + @dex_plus) > 1
a = base_dex + @dex_plus
else
a = 1
end
if a > 999
n = 999
else
n = a
end [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~作者: 未命名 时间: 2009-3-21 02:20
“MAX”……
这个似乎是说N的最大值为999吧。