设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3674|回复: 15
打印 上一主题 下一主题

[已经解决] 请教判断战斗中受到攻击的对象是我方第2号位置的写法

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
跳转到指定楼层
1
发表于 2020-12-13 09:10:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 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


吗?

还请大家指点一二,多谢了!

Lv4.逐梦者

梦石
0
星屑
6483
在线时间
119 小时
注册时间
2020-1-8
帖子
234
2
发表于 2020-12-13 12:34:25 | 只看该作者
本帖最后由 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
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33264
在线时间
10505 小时
注册时间
2009-3-15
帖子
4758
3
发表于 2020-12-13 15:02:20 | 只看该作者
楼主你在伤害计算那搞不是更简单吗..

点评

没那么简单啊  发表于 2020-12-13 17:01
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
4
 楼主| 发表于 2020-12-13 17:00:29 | 只看该作者
RPGzh500223 发表于 2020-12-13 12:34
也不知道是什么事件
写在update_phase4_step4话可能与 显示伤害动画 同时进行
2号队友的index是1

我想做个受到攻击反弹伤害事件,目前的问题是如果对面释放的是群体攻击技能攻击我方全体队员的话,反弹伤害事件(譬如我方有4名队员的话)不会一一触发而是只触发一次

点评

学习了,先要判断是否是群攻技能!  发表于 2020-12-13 18:25
你不在伤害计算那搞怎么禾弹伤害...  发表于 2020-12-13 17:31
我觉得你的要求只能在伤害计算那搞啊..  发表于 2020-12-13 17:12
你连判断敌人是否群攻攻击都没有...  发表于 2020-12-13 17:10
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
32053
在线时间
5082 小时
注册时间
2012-11-19
帖子
4877

开拓者

5
发表于 2020-12-13 17:46:43 | 只看该作者
本帖最后由 芯☆淡茹水 于 2020-12-13 17:49 编辑

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


这个 result 就表示被攻击的对象里是否有角色对象, 并且在队伍2号位置。

点评

大神显灵,受益匪浅!  发表于 2020-12-13 18:19

评分

参与人数 2星屑 +50 +1 收起 理由
RyanBern + 50 认可答案
taeckle + 1 多谢了!

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9128
在线时间
463 小时
注册时间
2015-5-8
帖子
865
6
 楼主| 发表于 2020-12-13 18:23:53 | 只看该作者
芯☆淡茹水 发表于 2020-12-13 17:46
计算对象伤害和播放动画时,是被攻击对象的数组,并不是单个被攻击对象。
在那个位置可以这样判断


大佬这行代码我可以理解为是两个判断吗?(首先判断我方2号位置是否有人,然后再判断受到攻击的是否是我方第2号位置)

点评

先判断被攻击对象是否为我方角色(队员),然后再判断其的位置是否为2号。是这样的吗?  发表于 2020-12-15 06:09
先判断是否角色,再判断他的位置是否2号。  发表于 2020-12-14 16:06
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33264
在线时间
10505 小时
注册时间
2009-3-15
帖子
4758
7
发表于 2020-12-13 20:22:44 | 只看该作者
本帖最后由 soulsaga 于 2020-12-13 20:24 编辑

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

点评

我也想知道。。  发表于 2020-12-14 01:39
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-12 19:04

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表