Project1

标题: 求做出一次性傷害抵消效果(可疊加) [打印本页]

作者: yckmc1a    时间: 2014-6-22 17:53
标题: 求做出一次性傷害抵消效果(可疊加)
我看過許多rpg遊戲都有一次性的免傷效果,最重要的還是這可以大量疊加

作者: taroxd    时间: 2014-6-22 18:04
本帖最后由 taroxd 于 2014-6-23 08:35 编辑

RUBY 代码复制
  1. class Game_Battler
  2.   GUARD_ONCE_STATE = 30 # 状态ID
  3.  
  4.   alias init0622 initialize
  5.   def initialize
  6.     init0622
  7.     @guard_times = 0
  8.   end
  9.  
  10.   alias add_state_0622 add_state
  11.   def add_state(state_id)
  12.     @guard_times += 1 if state_id == GUARD_ONCE_STATE
  13.     add_state_0622(state_id)
  14.   end
  15.  
  16.   alias remove_state_0622 remove_state
  17.   def remove_state(state_id)
  18.     @guard_times = 0 if state_id == GUARD_ONCE_STATE
  19.     remove_state_0622(state_id)
  20.   end
  21.  
  22.   def item_apply(user, item)
  23.     @result.clear
  24.     @result.used = item_test(user, item)
  25.     @result.missed = (@result.used && rand >= item_hit(user, item))
  26.     @result.evaded = (!@result.missed && rand < item_eva(user, item))
  27.     return unless @result.hit?
  28.     if @guard_times > 0
  29.       remove_state(GUARD_ONCE_STATE) if (@guard_times -= 1) <= 0
  30.       return
  31.     end
  32.     unless item.damage.none?
  33.       @result.critical = (rand < item_cri(user, item))
  34.       make_damage_value(user, item)
  35.       execute_damage(user)
  36.     end
  37.     item.effects.each {|effect| item_effect_apply(user, item, effect) }
  38.     item_user_effect(user, item)
  39.   end
  40. end


没有仔细测试,应该没什么大问题吧

@Sion 我要卡~~~
作者: 3106345123    时间: 2014-6-23 08:07
吸收XXX点伤害值后消失的盾(9L)




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