|
本帖最后由 百里_飞柳 于 2017-4-25 12:50 编辑
最简易也是编辑器未指示的方法
由默认事件解释器类中得知
- #--------------------------------------------------------------------------
- # ● 增减能力值
- #--------------------------------------------------------------------------
- def command_317
- value = operate_value(@params[3], @params[4], @params[5])
- iterate_actor_var(@params[0], @params[1]) do |actor|
- actor.add_param(@params[2], value)
- end
- end
- #--------------------------------------------------------------------------
- # ● 迭代队员(可变)
- # param1 : 0 则固定、1 则变量指定
- # param2 : 角色 ID 或变量 ID
- #--------------------------------------------------------------------------
- def iterate_actor_var(param1, param2)
- if param1 == 0
- iterate_actor_id(param2) {|actor| yield actor }
- else
- iterate_actor_id($game_variables[param2]) {|actor| yield actor }
- end
- end
- #--------------------------------------------------------------------------
- # ● 迭代角色(ID)
- # param : 大于 1 则返回 ID 指定的角色、0 则迭代全体角色
- # 注意:此方法和 iterate_actor_index(param) 的参数设置有所不同
- #--------------------------------------------------------------------------
- def iterate_actor_id(param)
- if param == 0
- $game_party.members.each {|actor| yield actor }
- else
- actor = $game_actors[param]
- yield actor if actor
- end
- end
复制代码
当 迭代角色(ID) 方法的参数为 0 时,迭代全体队友
而 迭代队友(可变) 方法的第二个参数为 上一个方法的传入参数,第一个参数为 指定固定值还是变量的值
其中 指定固定值时只能为大于等于1的数(编辑器中写死)
所以 只需要指定为变量,且变量的值为0时,就能实现迭代全体队友 |
评分
-
查看全部评分
|