Project1

标题: 请问如何让某一技能不会减少行动结束解除的状态剩余时间 [打印本页]

作者: jianyulei    时间: 2016-11-12 18:21
标题: 请问如何让某一技能不会减少行动结束解除的状态剩余时间
当状态解除时机设置为行动结束时解除时,每一次该人物的行动都会减少状态的时间,但是我想让某一些技能在使用时并不会减少状态时间,请问下该怎么做才能办到?
作者: sq333333    时间: 2016-11-12 21:22
条件设置成【回合结束】?
作者: QQ蚊子湯    时间: 2016-11-13 02:35
本帖最后由 QQ蚊子湯 于 2016-11-13 03:01 编辑

本來打算先去睡覺明天再來解這題
不過剛剛在夢世界找到解答
於是又爬起來寫完

繼續回夢世界~
晚安~~~
RUBY 代码复制
  1. class Game_Battler < Game_BattlerBase
  2.   attr_accessor :state_turns
  3. #===========================================================
  4.  
  5. #让某一技能不会减少行动结束解除的状态剩余时间
  6.  
  7. #設定
  8. #技能的ID
  9.  
  10. @@QSKQ = 1
  11.  
  12. #狀態的ID
  13. @@QSTQ = 46
  14.  
  15.  
  16. #==========================================================
  17.     alias jianyulei:make_damage_value
  18.     def make_damage_value(user, item)
  19.     value = item.damage.eval(user, self, $game_variables)
  20.     if item.is_a?(RPG::Skill) && item.id == @@QSKQ
  21.         if user.state?(@@QSTQ)
  22.          user.states.each do |state|
  23.          user.state_turns[@@QSTQ] += 1
  24.         end;end;end
  25.     value *= item_element_rate(user, item)
  26.     value *= pdr if item.physical?
  27.     value *= mdr if item.magical?
  28.     value *= rec if item.damage.recover?
  29.     value = apply_critical(value) if @result.critical
  30.     value = apply_variance(value, item.damage.variance)
  31.     value = apply_guard(value)
  32.     @result.make_damage(value.to_i, item)
  33. end
  34. end


おまけに~
附上所有狀態都不會扣回合數的版本~


RUBY 代码复制
  1. class Game_Battler < Game_BattlerBase
  2.   attr_accessor :state_turns
  3. #===========================================================
  4.  
  5. #让某一技能不会减少行动结束解除的状态剩余时间
  6.  
  7. #設定
  8. #技能的ID
  9.  
  10. @@QSKQ = 1
  11.  
  12.  
  13.  
  14.  
  15. #==========================================================
  16.     alias jianyulei:make_damage_value
  17.     def make_damage_value(user, item)
  18.     value = item.damage.eval(user, self, $game_variables)
  19.     if item.is_a?(RPG::Skill) && item.id == @@QSKQ
  20.         if user.state?(@@QSTQ)
  21.          user.states.each do |state|
  22.           user.state_turns[state.id] += 1
  23.         end;end;end
  24.     value *= item_element_rate(user, item)
  25.     value *= pdr if item.physical?
  26.     value *= mdr if item.magical?
  27.     value *= rec if item.damage.recover?
  28.     value = apply_critical(value) if @result.critical
  29.     value = apply_variance(value, item.damage.variance)
  30.     value = apply_guard(value)
  31.     @result.make_damage(value.to_i, item)
  32. end
  33. end

作者: jianyulei    时间: 2016-11-13 14:26
QQ蚊子湯 发表于 2016-11-13 02:35
本來打算先去睡覺明天再來解這題
不過剛剛在夢世界找到解答
於是又爬起來寫完

试了下发现如果技能在回合内为第二次行动,那么状态剩余时间就越来越多,然后觉得哪里不对……
因为看脚本是以增加状态的时间来维持状态,所以又重新研究了下,结果发现原来原始脚本的行动结束减少状态时间是无论在一回合内行动多少次都只减少一次状态时间,于最开始的那一次行动后减少
因为我是想要制作持续伤害,用延迟脚本让我方对敌人放技能来达到要求。这样一来受影响的只有我方在某一回合因为无法行动而没有正常减少状态时间的情况下,因延迟脚本放了个技能让行动回合减少的BUG。不过这是在可以接受的范围之内。
非常感谢你的解答。
作者: sutao80216    时间: 2016-11-13 20:55
你在需要不减少持续时间的技能里刷新一下状态不就行了。




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