| 赞 | 0  | 
 
| VIP | -1 | 
 
| 好人卡 | 5 | 
 
| 积分 | 1 | 
 
| 经验 | 4478 | 
 
| 最后登录 | 2019-11-1 | 
 
| 在线时间 | 75 小时 | 
 
 
 
 
 
Lv1.梦旅人 
	- 梦石
 - 0 
 
        - 星屑
 - 54 
 
        - 在线时间
 - 75 小时
 
        - 注册时间
 - 2009-9-8
 
        - 帖子
 - 56
 
 
 
 | 
	
Game_Battler 600行至700行之间。命中、回避、攻击计算、技能计算都在这。-  #--------------------------------------------------------------------------
 
 -   # ● 计算最後命中率
 
 -   #     user : 攻击者,技能或物品的使用者
 
 -   #     obj  : 使用的技能或物品(普通攻击时为nil)
 
 -   #--------------------------------------------------------------------------
 
 -   def calc_hit(user, obj = nil)
 
 -     if obj == nil                           # 普通攻击
 
 -       hit = user.hit + user.agi - self.agi  # 获取命中率
 
 -       physical = true
 
 -     elsif obj.is_a?(RPG::Skill)             # 技能攻击
 
 -       hit = obj.hit + user.agi - self.agi   # 获取命中率
 
 -       physical = obj.physical_attack
 
 -     else                                    # 物品攻击
 
 -       hit = 100                             # 设命中率为100%
 
 -       physical = obj.physical_attack
 
 -     end
 
 -     if physical                             # 物理攻击
 
 -       hit /= 2 if user.reduce_hit_ratio?    # 中了暗黑状态时命中率降低为50%
 
 -     end
 
 -     return hit
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 计算最後闪躲率
 
 -   #     user : 攻击者,技能或物品的使用者
 
 -   #     obj  : 使用的技能或物品(普通攻击时为nil)
 
 -   #--------------------------------------------------------------------------
 
 -   def calc_eva(user, obj = nil)
 
 -     eva = self.agi - 10
 
 -     unless obj == nil                       # 当obj为物品或技能
 
 -       eva = 0 unless obj.physical_attack    # 非物理攻击时闪躲率 0%
 
 -     end
 
 -     unless parriable?                       # 无法闪躲的场合
 
 -       eva = 0                               # 闪躲率为 0%
 
 -     end
 
 -     return eva
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 计算普通攻击伤害
 
 -   #     attacker : 攻击者
 
 -   #    计算结果赋值入 @hp_damage
 
 -   #--------------------------------------------------------------------------
 
 -   def make_attack_damage_value(attacker)
 
 -     damage = (attacker.atk - self.def) + rand(attacker.atk) - rand(attacker.atk)# 基础计算
 
 -     damage = 0 if damage < 0                        # 设负数伤害为 0
 
 -     damage *= elements_max_rate(attacker.element_set)   # 属性校正
 
 -     damage /= 100
 
 -     if damage == 0                                  # 若伤害为 0
 
 -       damage = rand(2)                              # 一半机率伤害为1
 
 -     elsif damage > 0                                # 若伤害为正数
 
 -       @critical = (rand(100) < attacker.cri)        # 会心一击判断
 
 -       @critical = false if prevent_critical         # 防止会心一击判断
 
 -       damage *= 3 if @critical                      # 会心一击校正
 
 -     end
 
 -     damage = apply_variance(damage, 20)             # 分散度
 
 -     damage = apply_guard(damage)                    # 防御校正
 
 -     @hp_damage = damage                             # 体力伤害
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 计算技能/物品伤害
 
 -   #     user : 技能或物品的使用者
 
 -   #     obj  : 使用的技能或物品
 
 -   #    计算结果赋值入 @hp_damage
 
 -   #--------------------------------------------------------------------------
 
 -   def make_obj_damage_value(user, obj)
 
 -     damage = obj.base_damage                        # 基础计算
 
 -     if damage > 0                                   # 若伤害为正
 
 -       damage += (rand(user.atk) + user.atk * 2 ) * obj.atk_f / 100# 使用者攻击力关系度
 
 -       damage += (rand(user.spi) + user.spi * 2 ) * obj.spi_f / 100# 使用者精神力关系度
 
 -       unless obj.ignore_defense                     # 除非无视防御力
 
 -         damage -= self.def * 2 * obj.atk_f / 100    # 目标攻击力关系度
 
 -         damage -= self.spi * 2 * obj.spi_f / 100    # 目标精神力关系度
 
 -       end
 
 -       damage = 0 if damage < 0                      # 设负数伤害为0
 
 -     elsif damage < 0                                # 若伤害为负
 
 -       damage -= user.atk * 2 * obj.atk_f / 100      # 使用者攻击力关系度
 
 -       damage -= user.spi * 2 * obj.spi_f / 100      # 使用者精神力关系度
 
 -     end
 
 -     damage *= elements_max_rate(obj.element_set)    # 属性校正
 
 -     damage /= 100
 
 -     damage = apply_variance(damage, obj.variance)   # 分散度
 
 -     damage = apply_guard(damage)                    # 防御校正
 
 -     if obj.damage_to_mp  
 
 -       @mp_damage = damage                           # 伤害魔力
 
 -     else
 
 -       @hp_damage = damage                           # 伤害体力
 
 -     end
 
 -   end
 
  复制代码 |   
 
 
 
 |