Project1

标题: 请问如何提升全体队友的基础属性 [打印本页]

作者: 是猪别乱叫    时间: 2017-4-25 11:07
标题: 请问如何提升全体队友的基础属性
请问如何提升/降低队伍里全体角色的基础属性?
比如:全体队友攻击力+变量x点
VA自带的事件里只有+指定角色的……
作者: 百里_飞柳    时间: 2017-4-25 12:48
本帖最后由 百里_飞柳 于 2017-4-25 12:50 编辑

最简易也是编辑器未指示的方法
由默认事件解释器类中得知
  1. #--------------------------------------------------------------------------
  2. # ● 增减能力值
  3. #--------------------------------------------------------------------------
  4. def command_317
  5.   value = operate_value(@params[3], @params[4], @params[5])
  6.   iterate_actor_var(@params[0], @params[1]) do |actor|
  7.     actor.add_param(@params[2], value)
  8.   end
  9. end
  10. #--------------------------------------------------------------------------
  11. # ● 迭代队员(可变)
  12. #     param1 : 0 则固定、1 则变量指定
  13. #     param2 : 角色 ID 或变量 ID
  14. #--------------------------------------------------------------------------
  15. def iterate_actor_var(param1, param2)
  16.   if param1 == 0
  17.     iterate_actor_id(param2) {|actor| yield actor }
  18.   else
  19.     iterate_actor_id($game_variables[param2]) {|actor| yield actor }
  20.   end
  21. end
  22. #--------------------------------------------------------------------------
  23. # ● 迭代角色(ID)
  24. #     param : 大于 1 则返回 ID 指定的角色、0 则迭代全体角色
  25. #     注意:此方法和 iterate_actor_index(param) 的参数设置有所不同
  26. #--------------------------------------------------------------------------
  27. def iterate_actor_id(param)
  28.   if param == 0
  29.     $game_party.members.each {|actor| yield actor }
  30.   else
  31.     actor = $game_actors[param]
  32.     yield actor if actor
  33.   end
  34. end
复制代码

当 迭代角色(ID) 方法的参数为 0 时,迭代全体队友
而 迭代队友(可变) 方法的第二个参数为 上一个方法的传入参数,第一个参数为 指定固定值还是变量的值
其中 指定固定值时只能为大于等于1的数(编辑器中写死)
所以 只需要指定为变量,且变量的值为0时,就能实现迭代全体队友




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