Project1

标题: 无视速度先发 [打印本页]

作者: 邪月长啸    时间: 2015-4-22 13:51
标题: 无视速度先发
想请教一下,如何做出当 角色或敌人 拥有该 属性或状态 时
无视敌我双方的速度,必定最先攻击
我尝试用事件状态做,但要用到很多变量,而且很繁琐
不知哪个大神给个好的办法?

作者: 芯☆淡茹水    时间: 2015-4-22 14:25
本帖最后由 芯☆淡茹水 于 2015-4-22 14:37 编辑

这个强行增加出手速度值,除非其它战斗者的属性速度(agi)达到 一百万,否则都是 先出手状态 的战斗者先行动。

如果2个或2个以上的战斗者都处于先出手状态,他们之间的出手顺序依其本身速度来算。
  1. #==============================================================================
  2. class Game_Battler
  3.   INITE_ID = 17   #<=  先出手的状态ID。
  4.   #--------------------------------------------------------------------------
  5.   # ● 确定动作速度
  6.   #--------------------------------------------------------------------------
  7.   def make_action_speed
  8.     speed = agi + rand(10 + agi / 4)
  9.     speed += 1000000 if state?(INITE_ID)
  10.     @current_action.speed = speed
  11.   end
  12. end
  13. #==============================================================================
复制代码

作者: 邪月长啸    时间: 2015-4-24 12:35
芯☆淡茹水 发表于 2015-4-22 14:25
这个强行增加出手速度值,除非其它战斗者的属性速度(agi)达到 一百万,否则都是 先出手状态 的战斗者先行 ...

追问一个问题
如果我想多几个这样的状态
是否把    INITE_ID = 17  改为   INITE_ID = [17,18,19]
这样可行吗?  
作者: 芯☆淡茹水    时间: 2015-4-24 12:43
  1. #==============================================================================
  2. class Game_Battler
  3.   INITE_ID = [17,18,19]  #<=  先出手的状态ID。
  4.   #--------------------------------------------------------------------------
  5.   # ● 确定动作速度
  6.   #--------------------------------------------------------------------------
  7.   def make_action_speed
  8.     judeg = false
  9.     INITE_ID.each{|i| judeg = true if state?(i)}
  10.     @current_action.speed = agi + rand(10 + agi / 4) + (judeg ? 1000000 : 0)
  11.   end
  12. end
  13. #==============================================================================
复制代码





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