Project1

标题: 请教判断战斗中受到攻击的对象是我方第2号位置的写法 [打印本页]

作者: taeckle    时间: 2020-12-13 09:10
标题: 请教判断战斗中受到攻击的对象是我方第2号位置的写法
本帖最后由 taeckle 于 2020-12-13 09:15 编辑

我想在战斗设置的def update_phase4_step4 里面做一个判断,判断当受到攻击的对象是我方第2号位置(队员)时的话则发动第666号公共事件。。。

请问下这个判断该怎么写呢?

可以写成if  target.is_a?(Game_Actor) && @active_battler.current_action.target_index==2
             $game_system.battle_interpreter.setup($data_common_events[666].list, 0)
             end


吗?

还请大家指点一二,多谢了!
作者: RPGzh500223    时间: 2020-12-13 12:34
本帖最后由 RPGzh500223 于 2020-12-13 12:43 编辑

也不知道是什么事件
写在update_phase4_step4话可能与 显示伤害动画 同时进行
2号队友的index是1
if  target.is_a?(Game_Actor) && @active_battler.current_action.target_index==1
  $game_system.battle_interpreter.setup($data_common_events[666].list, 0)
end
大概看了下Scene_Battle4
RMXP触发事件似乎在update_phase4_step6
我是这样改的
  def update_phase4_step6
    # 清除强制行动对像的战斗者
    $game_temp.forcing_battler = nil
    if @target_battlers.include?($game_party.actors[1])
      common_event = $data_common_events[666]
      $game_system.battle_interpreter.setup(common_event.list, 0)
    end  
    # 公共事件 ID 有效的情况下
    if @common_event_id > 0
      # 设置事件
      common_event = $data_common_events[@common_event_id]
      $game_system.battle_interpreter.setup(common_event.list, 0)
    end
    # 移至步骤 1
    @phase4_step = 1
  end
作者: soulsaga    时间: 2020-12-13 15:02
楼主你在伤害计算那搞不是更简单吗..
作者: taeckle    时间: 2020-12-13 17:00
RPGzh500223 发表于 2020-12-13 12:34
也不知道是什么事件
写在update_phase4_step4话可能与 显示伤害动画 同时进行
2号队友的index是1

我想做个受到攻击反弹伤害事件,目前的问题是如果对面释放的是群体攻击技能攻击我方全体队员的话,反弹伤害事件(譬如我方有4名队员的话)不会一一触发而是只触发一次
作者: 芯☆淡茹水    时间: 2020-12-13 17:46
本帖最后由 芯☆淡茹水 于 2020-12-13 17:49 编辑

计算对象伤害和播放动画时,是被攻击对象的数组,并不是单个被攻击对象。
在那个位置可以这样判断
  1. result = @target_battlers.any?{|t| t.is_a?(Game_Actor) && t.index == 1 }
复制代码


这个 result 就表示被攻击的对象里是否有角色对象, 并且在队伍2号位置。
作者: taeckle    时间: 2020-12-13 18:23
芯☆淡茹水 发表于 2020-12-13 17:46
计算对象伤害和播放动画时,是被攻击对象的数组,并不是单个被攻击对象。
在那个位置可以这样判断


大佬这行代码我可以理解为是两个判断吗?(首先判断我方2号位置是否有人,然后再判断受到攻击的是否是我方第2号位置)
作者: soulsaga    时间: 2020-12-13 20:22
本帖最后由 soulsaga 于 2020-12-13 20:24 编辑

因为是2号位置..假设2号位置的死了..3号会变成2号吗?




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