Project1
标题: 哪位帮忙把这脚本里的所有伤害公式帮我解释翻译一下?谢 [打印本页]
作者: xj5234140    时间: 2011-5-20 16:38
标题: 哪位帮忙把这脚本里的所有伤害公式帮我解释翻译一下?谢
 本帖最后由 传说VS天涯 于 2011-5-21 08:09 编辑 
- #==============================================================================
 
- # ■ Game_Battler (分割定义 3)
 
- #------------------------------------------------------------------------------
 
- #  处理战斗者的类。这个类作为 Game_Actor 类与 Game_Enemy 类的
 
- # 超级类来使用。
 
- #==============================================================================
 
 
- class Game_Battler
 
-   #--------------------------------------------------------------------------
 
-   # ● 可以使用特技的判定
 
-   #     skill_id : 特技 ID
 
-   #--------------------------------------------------------------------------
 
-   def skill_can_use?(skill_id)
 
-     # SP 不足的情况下不能使用
 
-     if $data_skills[skill_id].sp_cost > self.sp
 
-       return false
 
-     end
 
-     # 战斗不能的情况下不能使用
 
-     if dead?
 
-       return false
 
-     end
 
-     # 沉默状态的情况下、物理特技以外的特技不能使用
 
-     if $data_skills[skill_id].atk_f == 0 and self.restriction == 1
 
-       return false
 
-     end
 
-     # 获取可以使用的时机
 
-     occasion = $data_skills[skill_id].occasion
 
-     # 战斗中的情况下
 
-     if $game_temp.in_battle
 
-       # [平时] 或者是 [战斗中] 可以使用
 
-       return (occasion == 0 or occasion == 1)
 
-     # 不是战斗中的情况下
 
-     else
 
-       # [平时] 或者是 [菜单中] 可以使用
 
-       return (occasion == 0 or occasion == 2)
 
-     end
 
-   end
 
-   #--------------------------------------------------------------------------
 
-   # ● 应用通常攻击效果
 
-   #     attacker : 攻击者 (battler)
 
-   #--------------------------------------------------------------------------
 
-   def attack_effect(attacker)
 
-     # 清除会心一击标志
 
-     $必杀 = 0
 
-     @active_battler = attacker
 
-     self.critical = false
 
-     # 第一命中判定
 
-     hit_result = (rand(100) < attacker.hit)
 
-     # 命中的情况下
 
-     if hit_result == true
 
-       # 计算基本伤害
 
-       atk = [attacker.atk - self.pdef / 1, attacker.atk / 10].max
 
-        if  @active_battler.is_a?(Game_Actor)
 
-          for kds in self.actions
 
-            if $data_skills[kds.skill_id].element_set.include?(42)
 
-               atk = [@active_battler.atk - self.pdef*120/100, @active_battler.atk / 12].max
 
-               break
 
-            elsif $data_skills[kds.skill_id].element_set.include?(41)
 
-               atk = [@active_battler.atk - self.pdef*110/100, @active_battler.atk / 11].max
 
-            end
 
-          end
 
-        end
 
-        if  @active_battler.is_a?(Game_Enemy)
 
-          for kds in self.skills
 
-            if $data_skills[kds].element_set.include?(42)
 
-               atk = [@active_battler.atk - self.pdef*120/100, @active_battler.atk / 12].max
 
-               break
 
-            elsif $data_skills[kds].element_set.include?(41)
 
-               atk = [@active_battler.atk - self.pdef*110/100, @active_battler.atk / 11].max
 
-            end
 
-          end
 
-        end
 
-       self.damage = atk*2 + attacker.str/5
 
-       # 属性修正
 
-       self.damage *= elements_correct(attacker.element_set)
 
-       self.damage /= 100
 
-       @kds_30 = nil
 
-       @kds_32 = nil
 
-       
 
-     if  @active_battler.is_a?(Game_Enemy)
 
-        for kds in @active_battler.actions
 
-          if $data_skills[kds.skill_id].element_set.include?(30)
 
-             self.damage = self.damage*125/100
 
-             @kds_30 = 0
 
-          elsif $data_skills[kds.skill_id].element_set.include?(29) and @kds_30 == nil
 
-             self.damage = self.damage*113/100
 
-          end
 
-          if $data_skills[kds.skill_id].element_set.include?(32)
 
-             $必杀 += 25
 
-             @kds_32 = 0
 
-          elsif $data_skills[kds.skill_id].element_set.include?(31) and @kds_32 == nil
 
-             $必杀 += 13
 
-          end
 
-        end
 
-     end
 
 
-     if  @active_battler.is_a?(Game_Actor)
 
-        for kds in @active_battler.skills
 
-          if $data_skills[kds].element_set.include?(30)
 
-             self.damage = self.damage*120/100
 
-             @kds_30 = 0
 
-          elsif $data_skills[kds].element_set.include?(29) and @kds_30 == nil
 
-             self.damage = self.damage*110/100
 
-          end
 
-          if $data_skills[kds].element_set.include?(32)
 
-             $必杀 += 20
 
-             @kds_32 = 0
 
-          elsif $data_skills[kds].element_set.include?(31) and @kds_32 == nil
 
-             $必杀 += 10
 
-          end
 
-        end 
 
-     end
 
 
-       
 
-       # 伤害符号正确的情况下
 
-       if self.damage > 0
 
-        # 会心一击修正
 
-         if rand(100) < 5 * attacker.dex / self.agi + $必杀
 
-           self.damage *= 2
 
-           self.critical = true
 
-         end
 
-         # 防御修正
 
-         if self.guarding?
 
-           self.damage /= 2
 
-         end
 
-       end
 
-       
 
-     
 
-       # 分散
 
-       if self.damage.abs > 0
 
-         amp = [self.damage.abs * 15 / 100, 1].max
 
-         self.damage += rand(amp+1) + rand(amp+1) - amp
 
-       end
 
-       # 第二命中判定
 
-       eva = 8 * self.agi / attacker.dex + self.eva
 
-       hit = self.damage < 0 ? 100 : 100 - eva
 
-       hit = self.cant_evade? ? 100 : hit
 
-       hit_result = (rand(100) < hit)
 
-     end
 
-     # 命中的情况下
 
-     if hit_result == true
 
 
-      #保护系统-内部伤害计算
 
-       if self.is_a?(Game_Actor) and self.baohu.size >= 1
 
-          @baohu_agi = []
 
-          for i in 0..self.baohu.size-1
 
-           @baohu_agi[i] = $game_party.actors[self.baohu[i]].agi
 
-          end
 
-         for a in [email]0..@baohu_agi.size[/email]-1
 
-          for s in [email]0..@baohu_agi.size[/email]-1
 
-           if s < @baohu_agi.size-1 and @baohu_agi[s] < @baohu_agi[s+1]
 
-           elsif s < @baohu_agi.size-1 and @baohu_agi[s] > @baohu_agi[s+1]
 
-            @abc = @baohu_agi[s]
 
-            @baohu_agi[s] = @baohu_agi[s+1]
 
-            @baohu_agi[s+1] = @abc
 
-            
 
-            @bcd = self.baohu[s]
 
-            self.baohu[s] = self.baohu[s+1]
 
-            self.baohu[s+1] = @bcd
 
-           end
 
-          end
 
-         end
 
-           @baohu_duixiang = 1
 
 
-            for i in 1..self.baohu.size
 
-              if $game_party.actors[self.baohu[self.baohu.size-i]].hp <= 0
 
-                @baohu_duixiang += 1
 
-              else
 
-                break
 
-              end
 
-            end
 
-           if @baohu_duixiang == self.baohu.size + 1
 
-             self.hp -= self.damage
 
-           else
 
-             $game_party.actors[self.baohu[self.baohu.size-@baohu_duixiang]].damage = self.damage*80/100
 
-             if $game_party.actors[self.baohu[self.baohu.size-@baohu_duixiang]].damage <= 0
 
-                $game_party.actors[self.baohu[self.baohu.size-@baohu_duixiang]].damage = rand(6)+4
 
-             end
 
-             $game_party.actors[self.baohu[self.baohu.size-@baohu_duixiang]].hp -= self.damage*80/100
 
-             self.damage = self.damage*20/100
 
-             if self.damage <= 0
 
-               self.damage = rand(2)+1
 
-             end
 
-             self.hp -= self.damage*20/100
 
 
-             if self.baohu_dx == nil
 
-               self.baohu_dx = $game_party.actors[self.baohu[self.baohu.size-@baohu_duixiang]].ac_id
 
-             else
 
-               self.baohu_dxb = $game_party.actors[self.baohu[self.baohu.size-@baohu_duixiang]].ac_id
 
-             end
 
-            
 
-            self.baohu.delete(self.baohu[self.baohu.size-@baohu_duixiang])
 
-           end
 
-        else
 
-         self.hp -= self.damage
 
-        end
 
-       
 
-       
 
-     if  @active_battler.is_a?(Game_Actor) and self.is_a?(Game_Enemy)
 
-        for kds in self.actions
 
-          if $data_skills[kds.skill_id].element_set.include?(36)
 
-              if rand(100) < 35 and self.hp <= 0
 
-               self.damage = -self.maxhp
 
-               self.hp += self.maxhp
 
-               self.sp += self.maxsp
 
-               self.critical = false
 
-              end 
 
-             break
 
-          elsif $data_skills[kds.skill_id].element_set.include?(35)
 
-              if rand(100) < 25 and self.hp <= 0
 
-               self.damage = -self.maxhp/2
 
-               self.hp += self.maxhp/2
 
-               self.sp += self.maxsp/2
 
-               self.critical = false
 
-              end
 
-             break
 
-          end
 
-        end
 
-     end
 
 
-     if  @active_battler.is_a?(Game_Enemy) and self.is_a?(Game_Actor)
 
-        for kds in self.skills
 
-          if $data_skills[kds].element_set.include?(36)
 
-              if rand(100) < 35 and self.hp <= 0
 
-               self.damage = -self.maxhp
 
-               self.hp += self.maxhp
 
-               self.sp += self.maxsp
 
-               self.critical = false
 
-              end 
 
-             break
 
-          elsif $data_skills[kds].element_set.include?(35)
 
-              if rand(100) < 25 and self.hp <= 0
 
-               self.damage = -self.maxhp/2
 
-               self.hp += self.maxhp/2
 
-               self.sp += self.maxsp/2
 
-               self.critical = false
 
-              end
 
-             break
 
-          end
 
-        end 
 
-     end
 
-        
 
-        
 
-       # 状态冲击解除
 
-       remove_states_shock
 
-       # HP 的伤害计算
 
-       # 状态变化
 
-       @state_changed = false
 
-       states_plus(attacker.plus_state_set)
 
-       states_minus(attacker.minus_state_set)
 
-     # Miss 的情况下
 
-     else
 
-       # 伤害设置为 "Miss"
 
-       self.damage = "Miss"
 
-       # 清除会心一击标志
 
-       self.critical = false
 
-     end
 
-     # 过程结束
 
-     return true
 
-   end
 
-   #--------------------------------------------------------------------------
 
-   # ● 应用特技效果
 
-   #     user  : 特技的使用者 (battler)
 
-   #     skill : 特技
 
-   #--------------------------------------------------------------------------
 
-   def skill_effect(user, skill)
 
-     # 清除会心一击标志
 
-     $必杀 = 0
 
-     @active_battler = user
 
-     attacker = user
 
-     self.critical = false
 
-     # 特技的效果范围是 HP 1 以上的己方、自己的 HP 为 0、
 
-     # 或者特技的效果范围是 HP 0 的己方、自己的 HP 为 1 以上的情况下
 
-     if ((skill.scope == 3 or skill.scope == 4) and self.hp == 0) or
 
-        ((skill.scope == 5 or skill.scope == 6) and self.hp >= 1)
 
-       # 过程结束
 
-       return false
 
-     end
 
-     # 清除有效标志
 
-     effective = false
 
-     # 公共事件 ID 是有效的情况下,设置为有效标志
 
-     effective |= skill.common_event_id > 0
 
-     # 第一命中判定
 
-     hit = skill.hit
 
-     if skill.atk_f > 0
 
-       hit *= user.hit / 100
 
-     end
 
-     hit_result = (rand(100) < hit)
 
-     # 不确定的特技的情况下设置为有效标志
 
-     effective |= hit < 100
 
-     # 命中的情况下
 
-     if hit_result == true
 
-       # 计算威力
 
-       power = (skill.power + user.int * skill.atk_f / 100)* user.int / self.mdef 
 
-       if power > 0
 
-         power -= self.pdef * skill.pdef_f / 200
 
-         power -= self.mdef * skill.mdef_f / 200
 
-         power = [power, 0].max
 
-       end
 
-       # 计算倍率
 
-       rate = 20
 
-       rate += (user.str * skill.str_f / 100)
 
-       rate += (user.dex * skill.dex_f / 100)
 
-       rate += (user.agi * skill.agi_f / 100)
 
-       rate += (user.int * skill.int_f / 100)
 
-       # 计算基本伤害
 
-       self.damage = power * rate / 30
 
-       # 伤害符号正确的情况下
 
-       if self.damage > 0
 
-         # 防御修正
 
-         if self.guarding?
 
-           self.damage /= 1
 
-         end
 
-       end
 
-       
 
-      if skill.element_set.include?(13)
 
-        atk = [@active_battler.atk - self.pdef / 1, @active_battler.atk / 10].max
 
-        if  @active_battler.is_a?(Game_Actor)
 
-          for kds in self.actions
 
-            if $data_skills[kds.skill_id].element_set.include?(42)
 
-               atk = [@active_battler.atk - self.pdef*120/100, @active_battler.atk / 12].max
 
-               break
 
-            elsif $data_skills[kds.skill_id].element_set.include?(41)
 
-               atk = [@active_battler.atk - self.pdef*110/100, @active_battler.atk / 11].max
 
-            end
 
-          end
 
-        end
 
-        if  @active_battler.is_a?(Game_Enemy)
 
-          for kds in self.skills
 
-            if $data_skills[kds].element_set.include?(42)
 
-               atk = [@active_battler.atk - self.pdef*120/100, @active_battler.atk / 12].max
 
-               break
 
-            elsif $data_skills[kds].element_set.include?(41)
 
-               atk = [@active_battler.atk - self.pdef*110/100, @active_battler.atk / 11].max
 
-            end
 
-          end
 
-        end
 
-       self.damage = atk + @active_battler.str * 2
 
-      end
 
 
-     kds_24 = nil
 
-     kds_30 = nil
 
-     kds_32 = nil
 
-     kds_28 = nil
 
 
-     if  @active_battler.is_a?(Game_Actor)
 
-        for kds in @active_battler.skills
 
-          if $data_skills[kds].element_set.include?(24) and skill.element_set.include?(13) == false
 
-             self.damage = self.damage*120/100
 
-             kds_24 = 0
 
-          elsif $data_skills[kds].element_set.include?(23) and skill.element_set.include?(13) == false and kds_24 == nil
 
-             self.damage = self.damage*110/100
 
-          end
 
-          if $data_skills[kds].element_set.include?(30) and skill.element_set.include?(13)
 
-             kds_30 = 0
 
-             self.damage = self.damage*116/100
 
-          elsif $data_skills[kds].element_set.include?(29) and skill.element_set.include?(13) and kds_30 == nil
 
-             self.damage = self.damage*108/100
 
-          end
 
-          if $data_skills[kds].element_set.include?(32) and skill.element_set.include?(13)
 
-             kds_32 = 0
 
-             $必杀 += 20
 
-          elsif $data_skills[kds].element_set.include?(31) and skill.element_set.include?(13) and kds_32 == nil
 
-             $必杀 += 10
 
-          end
 
-        end
 
-       if self.is_a?(Game_Enemy)
 
-        for kds in self.actions
 
-          if $data_skills[kds.skill_id].element_set.include?(28) and skill.element_set.include?(13) == false
 
-             kds_28 = 0
 
-             self.damage = self.damage*80/100
 
-          elsif $data_skills[kds.skill_id].element_set.include?(27) and skill.element_set.include?(13) == false and kds_28 == nil
 
-             self.damage = self.damage*90/100
 
-          end
 
-        end
 
-       end 
 
-     end
 
-     
 
-     if  @active_battler.is_a?(Game_Enemy)
 
-        for kds in @active_battler.actions
 
-          if $data_skills[kds.skill_id].element_set.include?(24) and skill.element_set.include?(13) == false
 
-             kds_24 = 0
 
-             self.damage = self.damage*120/100
 
-          elsif $data_skills[kds.skill_id].element_set.include?(23) and skill.element_set.include?(13) == false and kds_24 == nil
 
-             self.damage = self.damage*110/100
 
-          end
 
-          if $data_skills[kds.skill_id].element_set.include?(30) and skill.element_set.include?(13)
 
-             kds_30 = 0
 
-             self.damage = self.damage*116/100
 
-          elsif $data_skills[kds.skill_id].element_set.include?(29) and skill.element_set.include?(13) and kds_30 == nil
 
-             self.damage = self.damage*108/100
 
-          end
 
-          if $data_skills[kds.skill_id].element_set.include?(32) and skill.element_set.include?(13)
 
-             kds_32 = 0
 
-             $必杀 += 20
 
-          elsif $data_skills[kds.skill_id].element_set.include?(31) and skill.element_set.include?(13) and kds_32 == nil
 
-             $必杀 += 10
 
-          end
 
-        end
 
-       if self.is_a?(Game_Actor)
 
-        for kds in self.skills
 
-          if $data_skills[kds].element_set.include?(28) and skill.element_set.include?(13) == false
 
-             kds_28 = 0
 
-             self.damage = self.damage*80/100
 
-          elsif $data_skills[kds].element_set.include?(27) and skill.element_set.include?(13) == false and kds_28 == nil
 
-             self.damage = self.damage*90/100
 
-          end
 
-        end
 
-       end 
 
-     end
 
-     
 
-       if skill.element_set.include?(43) and skill.element_set.include?(13)
 
-        self.damage = self.damage*78/100
 
-      end
 
-      
 
-       if skill.element_set.include?(46) and skill.element_set.include?(13)
 
-        self.damage = self.damage*190/100
 
-        
 
-      end
 
-      if skill.element_set.include?(47) and skill.element_set.include?(13)
 
-        self.damage = self.damage*60/100
 
-        
 
-      end
 
 
-      
 
-       if skill.element_set.include?(49) and skill.element_set.include?(13)
 
-        self.damage = self.damage*90/100
 
-      end
 
-          if skill.element_set.include?(50) and skill.element_set.include?(13)
 
-        self.damage = self.damage*40/100
 
-      end
 
-      
 
-      
 
-       # 属性修正
 
-       self.damage *= elements_correct(user.element_set)
 
-       self.damage /= 100
 
-     
 
-       if skill.element_set.include?(13)
 
-        if self.damage > 0
 
-         if rand(100) < 10 + $必杀
 
-           self.damage *= 2
 
-           self.critical = true
 
-         end
 
-         if self.guarding?
 
-           self.damage /= 2
 
-         end
 
-        end
 
-       end
 
-       # 分散
 
-       if skill.variance > 0 and self.damage.abs > 0
 
-         amp = [self.damage.abs * skill.variance / 100, 1].max
 
-         self.damage += rand(amp+1) + rand(amp+1) - amp
 
-       end
 
-       
 
-       
 
-       if skill.element_set.include?(44)
 
-        self.damage = @active_battler.level * 5
 
-      end
 
-      if skill.element_set.include?(51)
 
-        self.damage = @active_battler.level * 8
 
-      end
 
-      
 
-       if skill.element_set.include?(45)
 
-        if rand(100) < 75
 
-          self.damage *= 9 / 5
 
-        else
 
-          self.damage /= - 3 / 1
 
-        end
 
-       end
 
-       
 
-       # 第二命中判定
 
-       eva = 8 * self.agi / user.dex + self.eva
 
-       hit = self.damage < 0 ? 100 : 100 - eva * skill.eva_f / 100
 
-       hit = self.cant_evade? ? 100 : hit
 
-       hit_result = (rand(100) < hit)
 
-       # 不确定的特技的情况下设置为有效标志
 
-       effective |= hit < 100
 
-     end
 
-     # 命中的情况下
 
-     if hit_result == true
 
-       # 威力 0 以外的物理攻击的情况下
 
-       if skill.power != 0 and skill.atk_f > 0
 
-         # 状态冲击解除
 
-         remove_states_shock
 
-         # 设置有效标志
 
-         effective = true
 
-       end
 
-       # HP 的伤害减法运算
 
-       last_hp = self.hp
 
-       self.hp -= self.damage
 
-       
 
-     if  @active_battler.is_a?(Game_Actor) and self.is_a?(Game_Enemy)
 
-        for kds in self.actions
 
-          if $data_skills[kds.skill_id].element_set.include?(36)
 
-              if rand(100) < 25 and self.hp <= 0
 
-               self.damage = -self.maxhp
 
-               self.hp += self.maxhp
 
-               self.sp += self.maxsp
 
-               self.critical = false
 
-              end 
 
-             break
 
-          elsif $data_skills[kds.skill_id].element_set.include?(35)
 
-              if rand(100) < 20 and self.hp <= 0
 
-               self.damage = -self.maxhp/2
 
-               self.hp += self.maxhp/2
 
-               self.sp += self.maxsp/2
 
-               self.critical = false
 
-              end
 
-             break
 
-          end
 
-        end 
 
-     end
 
 
-     if  @active_battler.is_a?(Game_Enemy) and self.is_a?(Game_Actor)
 
-        for kds in self.skills
 
-          if $data_skills[kds].element_set.include?(36)
 
-              if rand(100) < 25 and self.hp <= 0
 
-               self.damage = -self.maxhp
 
-               self.hp += self.maxhp
 
-               self.sp += self.maxsp
 
-               self.critical = false
 
-              end 
 
-             break
 
-          elsif $data_skills[kds].element_set.include?(35)
 
-              if rand(100) < 20 and self.hp <= 0
 
-               self.damage = -self.maxhp/2
 
-               self.hp += self.maxhp/2
 
-               self.sp += self.maxsp/2
 
-               self.critical = false
 
-              end
 
-             break
 
-          end
 
-        end 
 
-     end
 
-       
 
-       
 
-       effective |= self.hp != last_hp
 
-       # 状态变化
 
-       @state_changed = false
 
-       effective |= states_plus(skill.plus_state_set)
 
-       effective |= states_minus(skill.minus_state_set)
 
-       # 威力为 0 的场合
 
-       if skill.power == 0 and skill.element_set.include?(13) == false
 
-         # 伤害设置为空的字串
 
-         self.damage = ""
 
-        # 状态没有变化的情况下
 
-        unless (@state_changed || skill.common_event_id > 0)
 
-          # 伤害设置为 "Miss"
 
-          self.damage = "Miss"
 
-        end
 
-       end
 
-     # Miss 的情况下
 
-     else
 
-       # 伤害设置为 "Miss"
 
-       self.damage = "Miss"
 
-     end
 
-     # 不在战斗中的情况下
 
-     unless $game_temp.in_battle
 
-       # 伤害设置为 nil
 
-       self.damage = nil
 
-     end
 
-     # 过程结束
 
-     return effective
 
-   end
 
-   #--------------------------------------------------------------------------
 
-   # ● 应用物品效果
 
-   #     item : 物品
 
-   #--------------------------------------------------------------------------
 
-   def item_effect(item)
 
-     # 清除会心一击标志
 
-     self.critical = false
 
-     # 物品的效果范围是 HP 1 以上的己方、自己的 HP 为 0、
 
-     # 或者物品的效果范围是 HP 0 的己方、自己的 HP 为 1 以上的情况下
 
-     if ((item.scope == 3 or item.scope == 4) and self.hp == 0) or
 
-        ((item.scope == 5 or item.scope == 6) and self.hp >= 1)
 
-       # 过程结束
 
-       return false
 
-     end
 
-     # 清除有效标志
 
-     effective = false
 
-     # 公共事件 ID 是有效的情况下,设置为有效标志
 
-     effective |= item.common_event_id > 0
 
-     # 命中判定
 
-     hit_result = (rand(100) < item.hit)
 
-     # 不确定的特技的情况下设置为有效标志
 
-     effective |= item.hit < 100
 
-     # 命中的情况
 
-     if hit_result == true
 
-       # 计算回复量
 
-       recover_hp = maxhp * item.recover_hp_rate / 100 + item.recover_hp
 
-       recover_sp = maxsp * item.recover_sp_rate / 100 + item.recover_sp
 
-       if recover_hp < 0
 
-         recover_hp += self.pdef * item.pdef_f / 20
 
-         recover_hp += self.mdef * item.mdef_f / 20
 
-         recover_hp = [recover_hp, 0].min
 
-       end
 
-       # 属性修正
 
-       recover_hp *= elements_correct(item.element_set)
 
-       recover_hp /= 100
 
-       recover_sp *= elements_correct(item.element_set)
 
-       recover_sp /= 100
 
-       # 分散
 
-       if item.variance > 0 and recover_hp.abs > 0
 
-         amp = [recover_hp.abs * item.variance / 100, 1].max
 
-         recover_hp += rand(amp+1) + rand(amp+1) - amp
 
-       end
 
-       if item.variance > 0 and recover_sp.abs > 0
 
-         amp = [recover_sp.abs * item.variance / 100, 1].max
 
-         recover_sp += rand(amp+1) + rand(amp+1) - amp
 
-       end
 
-       # 回复量符号为负的情况下
 
-       if recover_hp < 0
 
-         # 防御修正
 
-         if self.guarding?
 
-           recover_hp /= 2
 
-         end
 
-       end
 
-       # HP 回复量符号的反转、设置伤害值
 
-       self.damage = -recover_hp
 
-       # HP 以及 SP 的回复
 
-       last_hp = self.hp
 
-       last_sp = self.sp
 
-       self.hp += recover_hp
 
-       self.sp += recover_sp
 
-       
 
-     if  @active_battler.is_a?(Game_Actor) and self.is_a?(Game_Enemy)
 
-        for kds in self.actions
 
-          if $data_skills[kds.skill_id].element_set.include?(36)
 
-              if rand(100) < 25 and self.hp <= 0
 
-               self.damage = -self.maxhp
 
-               self.hp += self.maxhp
 
-               self.sp += self.maxsp
 
-               self.critical = false
 
-              end 
 
-             break
 
-          elsif $data_skills[kds.skill_id].element_set.include?(35)
 
-              if rand(100) < 20 and self.hp <= 0
 
-               self.damage = -self.maxhp/2
 
-               self.hp += self.maxhp/2
 
-               self.sp += self.maxsp/2
 
-               self.critical = false
 
-              end
 
-             break
 
-          end
 
-        end 
 
-     end
 
 
-     if  @active_battler.is_a?(Game_Enemy) and self.is_a?(Game_Actor)
 
-        for kds in self.skills
 
-          if $data_skills[kds].element_set.include?(36)
 
-              if rand(100) < 25 and self.hp <= 0
 
-               self.damage = -self.maxhp
 
-               self.hp += self.maxhp
 
-               self.sp += self.maxsp
 
-               self.critical = false
 
-              end 
 
-             break
 
-          elsif $data_skills[kds].element_set.include?(35)
 
-              if rand(100) < 20 and self.hp <= 0
 
-               self.damage = -self.maxhp/2
 
-               self.hp += self.maxhp/2
 
-               self.sp += self.maxsp/2
 
-               self.critical = false
 
-              end
 
-             break
 
-          end
 
-        end 
 
-     end
 
-       
 
-       
 
-       effective |= self.hp != last_hp
 
-       effective |= self.sp != last_sp
 
-       # 状态变化
 
-       @state_changed = false
 
-       effective |= states_plus(item.plus_state_set)
 
-       effective |= states_minus(item.minus_state_set)
 
-       # 能力上升值有效的情况下
 
-       if item.parameter_type > 0 and item.parameter_points != 0
 
-         # 能力值的分支
 
-         case item.parameter_type
 
-         when 1  # MaxHP
 
-           @maxhp_plus += item.parameter_points
 
-         when 2  # MaxSP
 
-           @maxsp_plus += item.parameter_points
 
-         when 3  # 力量
 
-           @str_plus += item.parameter_points
 
-         when 4  # 灵巧
 
-           @dex_plus += item.parameter_points
 
-         when 5  # 速度
 
-           @agi_plus += item.parameter_points
 
-         when 6  # 魔力
 
-           @int_plus += item.parameter_points
 
-         end
 
-         # 设置有效标志
 
-         effective = true
 
-       end
 
-       # HP 回复率与回复量为 0 的情况下
 
-       if item.recover_hp_rate == 0 and item.recover_hp == 0
 
-         # 设置伤害为空的字符串
 
-         self.damage = ""
 
-         # SP 回复率与回复量为 0、能力上升值无效的情况下
 
-         if item.recover_sp_rate == 0 and item.recover_sp == 0 and
 
-            (item.parameter_type == 0 or item.parameter_points == 0)
 
-        # 状态没有变化的情况下
 
-        unless (@state_changed || item.common_event_id > 0)
 
-          # 伤害设置为 "Miss"
 
-          self.damage = "Miss"
 
-        end
 
-         end
 
-       end
 
-     # Miss 的情况下
 
-     else
 
-       # 伤害设置为 "Miss"
 
-       self.damage = "Miss"
 
-     end
 
-     # 不在战斗中的情况下
 
-     unless $game_temp.in_battle
 
-       # 伤害设置为 nil
 
-       self.damage = nil
 
-     end
 
-     # 过程结束
 
-     return effective
 
-   end
 
-   #--------------------------------------------------------------------------
 
-   # ● 应用连续伤害效果
 
-   #--------------------------------------------------------------------------
 
 
- def slip_damage_effect
 
 
-     # 毒
 
 
-     if self.state?(7)
 
 
-       # 设置伤害
 
 
-       self.damage = self.maxhp / 20
 
 
-       # 分散
 
 
-       if self.damage.abs > 0
 
 
-         amp = [self.damage.abs * 15 / 100, 1].max
 
 
-         self.damage += rand(amp+1) + rand(amp+1) - amp
 
 
-       end
 
 
-       # HP 的伤害减法运算
 
 
-       self.hp -= self.damage
 
-       #剧毒
 
-        elsif  self.state?(20)
 
 
-       # 设置伤害
 
 
-       self.damage = self.maxhp / 10
 
 
-       # 分散
 
 
-       if self.damage.abs > 0
 
 
-         amp = [self.damage.abs * 15 / 100, 1].max
 
 
-         self.damage += rand(amp+1) + rand(amp+1) - amp
 
 
-       end
 
 
-       # HP 的伤害减法运算
 
 
-       self.hp -= self.damage
 
 
 
-     # 回血
 
 
-     elsif self.state?(5)
 
 
-       # 设置伤害
 
 
-       self.damage = -self.maxhp / 8
 
 
-       # HP 的伤害减法运算
 
 
-       self.hp -= self.damage      
 
-           # 群回血
 
 
-     elsif self.state?(17)
 
 
-       # 设置伤害
 
 
-       self.damage = -self.maxhp / 12
 
 
-       # HP 的伤害减法运算
 
 
-       self.hp -= self.damage    
 
 
-     # 老化
 
 
-     elsif self.state?(19)
 
 
-       # 设置伤害
 
 
-       self.damage = "Being aged!"
 
 
-       # 能力值下
 
 
-       $data_states[19].pdef_rate *= 0.98
 
 
-       $data_states[19].mdef_rate *= 0.98
 
 
-       $data_states[19].atk_rate *= 0.98
 
 
-       $data_states[19].str_rate *= 0.98
 
 
-       $data_states[19].dex_rate *= 0.98
 
 
-       $data_states[19].int_rate *= 0.98
 
 
-       $data_states[19].agi_rate *= 0.98
 
 
-       $data_states[19].eva -= 0.3
 
 
-       $data_states[19].eva = [$data_states[19].eva, -100].max
 
 
-     end
 
 
-     # 过程结束
 
 
-     return true
 
 
- end
 
-   #--------------------------------------------------------------------------
 
-   # ● 属性修正计算
 
-   #     element_set : 属性
 
-   #--------------------------------------------------------------------------
 
-   def elements_correct(element_set)
 
-     # 無属性的情况
 
-     if element_set == []
 
-       # 返回 100
 
-       return 100
 
-     end
 
-     # 在被赋予的属性中返回最弱的
 
-     # ※过程 element_rate 是、本类以及继承的 Game_Actor
 
-     #   和 Game_Enemy 类的定义
 
-     weakest = -100
 
-     for i in element_set
 
-       weakest = [weakest, self.element_rate(i)].max
 
-     end
 
-     return weakest
 
-   end
 
- end