Project1

标题: 用脚本比较多个变数的问题 [打印本页]

作者: b200077    时间: 2020-4-20 13:19
标题: 用脚本比较多个变数的问题
com = [$game_variables[201],$game_variables[221],$game_variables[223]]
com.max

这样的写法只能传回最大值,怎么确认是哪个变量最大呢?
作者: chanszeman1018    时间: 2020-4-20 13:27
提示: 作者被禁止或删除 内容自动屏蔽
作者: 冷俊逸    时间: 2020-4-20 13:42
  1. def var_max(vars)
  2.   max = -999999
  3.   max_id = -1
  4.   for i in vars
  5.     if $game_variables[i] > max
  6.       max = $game_variables[i]
  7.       max_id = i
  8.     end
  9.   end
  10.   return max_id # 或者你return [max, max_id] 也可以
  11. end

  12. print( var_max([201,221,223]))
复制代码

作者: b200077    时间: 2020-4-20 13:58
刚刚想到了,似乎可以用哈希表做
作者: KB.Driver    时间: 2020-4-20 20:01
RUBY 代码复制
  1. ary = [201, 221, 223]
  2. max_id = ary.max_by {|id| $game_variables[id] }
  3. max = $game_variables[max_id]


简单的才是最好的。
作者: b200077    时间: 2020-4-21 00:58
本帖最后由 b200077 于 2020-4-21 01:02 编辑
KB.Driver 发表于 2020-4-20 20:01
ary = [201, 221, 223]
max_id = ary.max_by {|id| $game_variables }
max = $game_variables[max_id][/pre ...


是的,做的功能是因好感度进入入线,用写进类方法里有点杀鸡用牛刀。
我写的代码是这个。
  1. com = {}
  2. com["厄莉絲"] = $game_variables[201]
  3. com["狄高"] = $game_variables[222]
  4. com["夜"] = $game_variables[227]
  5. $game_variables[220] = com.index(com.values.max)
复制代码





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