Project1

标题: 【VxAce】我不服啊!为什么这句脚本就能实行这... [打印本页]

作者: alianlord    时间: 2020-10-3 10:07
标题: 【VxAce】我不服啊!为什么这句脚本就能实行这...
本帖最后由 alianlord 于 2020-10-3 10:08 编辑

class Game_Actor < Game_Battler
.......
......
#--------------------------------------------------------------------------
  # ● 将装备类型变换为装备栏 ID(优先返回空的装备栏)
  #--------------------------------------------------------------------------
  def empty_slot(etype_id)
    list = slot_list(etype_id)
    list.find {|i| @equips.is_nil? } || list[0]
  end
【帮助文件中的相关内容】
Enumerable
包含重复关系操作类的模块,此模快的方法都是通过 each 定义的,所以包含此模块的类必须定义 each 方法。

find {|item| ... }
依次以各个元素执行区块的计算,返回第一个计算为 true 的项目。若没有项目计算为 true,则返回 nil。

作者: 百里_飞柳    时间: 2020-10-3 11:39
本帖最后由 百里_飞柳 于 2020-10-3 13:39 编辑

其实你自己下个 Ruby,然后写几句简单的ruby脚本,再用命令行运行试试看,更加便捷……
比如 test.rb 文件中
  1. a = [1, 2, nil, 1]
  2. p a.find { |item| item.nil? } || a[0]
复制代码

然后命令行中使用
  1. ruby test.rb
复制代码
,去查看它的返回结果……

这里是因为当装备槽里没有装备时就是nil,它这里就是获取第一个空的装备槽的index
作者: alianlord    时间: 2020-10-3 13:27
百里_飞柳 发表于 2020-10-3 11:39
其实你自己下个 Ruby,然后写几句简单的ruby脚本,再用命令行运行试试看,更加便捷……
比如 test.rb 文件 ...

把     a = [1, 2, nil, 1]
       p a.find { |item| item.is_nil? } || a[0]

放在VA脚本中,执行中弹窗 找不到 is_nil? 的方法。我推断红字的lise 不是个单纯数组

def empty_slot(etype_id)
    list = slot_list(etype_id)
    list.find {|i| @equips.is_nil? } || list[0]
  end




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