Project1

标题: 敌人使用技能的目标选择是在哪里设定的? [打印本页]

作者: wan5337088    时间: 2019-6-7 01:53
标题: 敌人使用技能的目标选择是在哪里设定的?
每回合开始前,敌人执行什么行动应该都是设定好了的吧,那敌人比如用一个单体攻击技能或者一个单体回复的技能的目标是在哪里设定的呢?是通过什么来判断的?
作者: 百里_飞柳    时间: 2019-6-7 11:04
本帖最后由 百里_飞柳 于 2019-6-7 11:07 编辑
  1. class Scene_Battle
  2.   #--------------------------------------------------------------------------
  3.   # ● 使用技能/物品
  4.   #--------------------------------------------------------------------------
  5.   def use_item
  6.     item = @subject.current_action.item
  7.     @log_window.display_use_item(@subject, item)
  8.     @subject.use_item(item)
  9.     refresh_status
  10.     targets = @subject.current_action.make_targets.compact
  11.     show_animation(targets, item.animation_id)
  12.     targets.each {|target| item.repeats.times { invoke_item(target, item) } }
  13.   end
  14. end
复制代码

这里面,当前角色 @subject 的当前行动 current_action 调用了生成目标的方法,获得了目标角色的数组,并且去掉了nil
然后该方法在 Game_Action#make_targets,可以看到里面充斥着 Game_Unit#random_target 方法,也就是粗暴地取随机一人……

当然这个取随机是对于 敌人行动 或 多目标技能 的判定,
对于我方角色使用的 单目标技能,是依靠敌人/角色选择窗口获取目标,并记录在了 Game_Action 的 @target_index 里
对于这个变量,在 Game_Action#make_targets 所调用的方法里也可以找到很多处判定





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