赞 | 1 |
VIP | 16 |
好人卡 | 23 |
积分 | 0 |
经验 | 49509 |
最后登录 | 2016-1-9 |
在线时间 | 2459 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 48
- 在线时间
- 2459 小时
- 注册时间
- 2011-12-18
- 帖子
- 1484
|
本帖最后由 iisnow 于 2012-4-6 16:20 编辑
之前写了个魔法盾的效果,是这样的
在Gme Battler里加入了两段- def make_attack_damage_value(attacker)
- damage = attacker.atk * 4 - self.def * 2 # 基本计算
- damage = 0 if damage < 0
- if self.state?(51) #寒冰禁锢状态时
- damage = 0
- end
- if self.state?(24) #大地之盾时,伤害为1
- damage = 1
- end
- if self.state?(54) #魔法盾状态时
- damage = ((attacker.atk * 4 - self.def * 2)*0.8).round
- end
复制代码
- #--------------------------------------------------------------------------
- # ● 反映伤害
- # user : 特技以及物品的使用者
- # 调用前先设置 @hp_damage、@mp_damage、@absorbed。
- #--------------------------------------------------------------------------
- def execute_damage(user)
- if @hp_damage > 0 # 伤害为正数
- remove_states_shock # 受到攻击解除的状态
- end
- self.hp -= @hp_damage
-
-
-
- self.mp -= @mp_damage
- if @absorbed # 吸收的情况
- user.hp += @hp_damage
- user.mp += @mp_damage
- end
- if self.state?(54) #魔法盾状态时
- self.mp -=(@hp_damage*0.25).round
- end
- if self.mp < (@hp_damage*0.25).round #魔法值不足时消除状态
- self.remove_state(54)
- end
- end
复制代码 这时的确在受到攻击时可以用魔法值抵消一定的伤害,不过在使用加血的药时,魔法值也会跟着回复,这个应该怎么解决呢? |
|