Project1

标题: 【已解决】如何实现 攻击被闪避时,也能解除x号状态 [打印本页]

作者: 迷你及其人    时间: 2017-5-23 23:51
标题: 【已解决】如何实现 攻击被闪避时,也能解除x号状态
本帖最后由 迷你及其人 于 2017-5-24 16:41 编辑

大家好,我在制作一个技能时,遇到了一个问题。

我想制作一个闪避技能,效果是:100%闪避本回合内受到的第一次攻击。
我的思路是,设计一个x号状态,提升100%物理闪避,持续一回合,受到攻击时解除。
但是因为闪避了敌人的攻击,”受攻击后解除“的效果就无法实现了,变成了:闪避本回合受到的所有攻击。。。

请问应该怎么做,才能实现我想要的效果呢?

1.jpg (162.61 KB, 下载次数: 20)

1.jpg

2.jpg (206.08 KB, 下载次数: 19)

2.jpg

作者: 魔法丶小肉包    时间: 2017-5-24 12:49
在状态的备注里写<EVASION>便会在闪避攻击时候触发,解除状态

RUBY 代码复制
  1. class Game_Battler < Game_BattlerBase
  2.   def item_apply(user, item)
  3.     @result.clear
  4.     @result.used = item_test(user, item)
  5.     @result.missed = (@result.used && rand >= item_hit(user, item))
  6.     @result.evaded = (!@result.missed && rand < item_eva(user, item))
  7.     if !@result.hit?
  8.       states.each do |state|
  9.       if state.note.include?("<EVASION>")
  10.         remove_state(state.id)
  11.       end
  12.       end
  13.     end
  14.     if @result.hit?
  15.       unless item.damage.none?
  16.         @result.critical = (rand < item_cri(user, item))
  17.         make_damage_value(user, item)
  18.         execute_damage(user)
  19.       end
  20.       item.effects.each {|effect| item_effect_apply(user, item, effect) }
  21.       item_user_effect(user, item)
  22.     end
  23.   end
  24. end





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