Project1

标题: 求教行动顺序这里怎么改成以敏捷来定顺序? [打印本页]

作者: 踢腿水上飘    时间: 2019-12-5 00:39
标题: 求教行动顺序这里怎么改成以敏捷来定顺序?
#--------------------------------------------------------------------------
  # ● 生成行动顺序
  #--------------------------------------------------------------------------
  def self.make_action_orders
    @action_battlers = []
    @action_battlers += $game_party.members unless @surprise
    @action_battlers += $game_troop.members unless @preemptive
    @action_battlers.each {|battler| battler.make_speed }
    @action_battlers.sort! {|a,b| b.speed - a.speed }
  end

这里好像是一进战斗的时候,是按位置排序的,怎么改才能改成进入战斗的时候以敏捷来定顺序呢?
作者: srwjrevenger    时间: 2019-12-5 11:58
我没看错的话,这里本来就是以 对象敏捷+行动速度 来定行动顺序的呀?
作者: YukiYukidesu    时间: 2019-12-5 16:58
  1. @action_battlers.sort! {|a,b| b.speed - a.speed }
复制代码

就是是按照行动速度来排序,b.speed-a.speed返回一个大于/小于/等于0的值作为sort的判定依据
至于行动速度是上面那句
  1. @action_battlers.each {|battler| battler.make_speed }
复制代码
计算的,可以更改那里的方法
作者: 踢腿水上飘    时间: 2019-12-5 22:25
srwjrevenger 发表于 2019-12-5 11:58
我没看错的话,这里本来就是以 对象敏捷+行动速度 来定行动顺序的呀?

我反复试了,进战斗的第一个回合,不管敏捷多少都是按1,2,3,4号的顺序行动的,后面的才会有变化

作者: 百里_飞柳    时间: 2019-12-6 10:48
首先请确定战斗系统是基础的原始战斗系统

然后行动顺序是指技能释放顺序,而不是指令输入顺序

最后,你可以全局搜索 make_action_orders 方法,看看是不是有覆盖?
作者: srwjrevenger    时间: 2019-12-6 11:20
踢腿水上飘 发表于 2019-12-5 22:25
我反复试了,进战斗的第一个回合,不管敏捷多少都是按1,2,3,4号的顺序行动的,后面的才会有变化
...

对象本身敏捷+行动速度
这里的行动速度有增加的,也有减少的,所以如果执行的行动不同,会改变顺序

另外看看有没有这种情况
查看各参战人员在 数据库-职业-特性-队伍能力- 是否持有先制攻击
使用别的脚本修改到速度,行动顺序等的




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