Main Menu
  • Welcome to The RPG Maker Resource Kit.

Characters will not die?

Started by vamp, July 14, 2009, 11:48:16 PM

0 Members and 1 Guest are viewing this topic.

vamp

Hello, I think this is my final issue, 2 issues in a hole game isn't bad In my opinion, Shaz helped me with my last issue and I thank you, you are in the credits even know You said do not worry about it ^^.


this issue, I think but unsure as to where its coming from, but I think its in my battle script, and my battle script is actually about 6 scripts, to rotate characters, both directions, monsters, both sides can or can not escape ect. so I can not post all that, if anyone is willing to take a look at it and see if there's anything you can do for it, I can give you the scripts and images, but not the maps ^^ same thing my testers would get, only dif is you would have source code ^^... I hope someone can take this up, even know I am unsure as to where exactly it is coming from, what happens is, when the players get hurt and brought down to 1 health, they have the healing icon on 24/7 and they never die, some kind of odd god mode?... and occasionally they heal to like 5k i even tried with them at 1 health and they jumped to 5k as if they instantly leveled maby its the fatigue meter or maby the Combat meter as to when the turns are, as the combat meter i know has a lot of true and false info in it. that might deal with that type of stuff. Well I hope someone could take this up, if you can just pm or post here your contact email and I can send it but as for posting scripts, it is so massive to look threw, it is not really worth the posting of scripts, might not be able to spot it just by looking at the scripts, might be an trial and error issue.







I would like to add, that I did try an fix this issue, several times, and on multiple times it screwed up the game when I edited too much, I can not seem to find where it would be located, I wish I could do it my self, as I do not like asking for help on anything...





EDIT BELOW:
Hello, I did some trial and error and I limited it to 3 Scripts.


Game_Battler 1, Game_Battler 2, Game_Battler 3









Hope someone could see where the unkillable is coming from?








#==============================================================================
# ? Game_Battler (???? 1)
#------------------------------------------------------------------------------
# ???????????????????? Game_Actor ???? Game_Enemy ??
# ???????????????????
#==============================================================================

class Game_Battler
 #--------------------------------------------------------------------------
 # ? ??????????
 #--------------------------------------------------------------------------
 attr_reader   :battler_name             # ???? ?????
 attr_reader   :battler_hue              # ???? ??
 attr_reader   :hp                       # HP
 attr_reader   :sp                       # SP
 attr_reader   :states                   # ????
 attr_accessor :hidden                   # ?????
 attr_accessor :immortal                 # ??????
 attr_accessor :damage_pop               # ?????????
 attr_accessor :damage                   # ?????
 attr_accessor :critical                 # ?????????
 attr_accessor :animation_id             # ??????? ID
 attr_accessor :animation_hit            # ??????? ??????
 attr_accessor :white_flash              # ?????????
 attr_accessor :blink                    # ?????    
 attr_accessor   :limit
 attr_accessor   :limit_break_1
 attr_accessor   :limit_break_2
 attr_accessor   :limit_break_3
 attr_accessor   :limit_break_4
 #--------------------------------------------------------------------------
 # ? ?????????
 #--------------------------------------------------------------------------
 def initialize
   @battler_name = ""
   @battler_hue = 0
   @hp = 0
   @sp = 0
   @states = []
   @states_turn = {}
   @maxhp_plus = 0
   @maxsp_plus = 0
   @str_plus = 0
   @dex_plus = 0
   @agi_plus = 0
   @int_plus = 0
   @hidden = false
   @immortal = false
   @damage_pop = false
   @damage = nil
   @critical = false
   @animation_id = 0
   @animation_hit = false
   @white_flash = false
   @blink = false
   @limit = 0
   @limit_break_1 = []
   @limit_break_2 = []
   @limit_break_3 = []
   @limit_break_4 = []
   @current_action = Game_BattleAction.new
 end
 #--------------------------------------------------------------------------
 # ? MaxHP ???
 #-------------------------------------------------------------------------
 def maxhp
   n = [[base_maxhp + @maxhp_plus, 1].max, 999999].min
   for i in @states
     n *= $data_states[i].maxhp_rate / 100.0
   end
   n = [[Integer(n), 1].max, 999999].min
   return n
 end
 #--------------------------------------------------------------------------
 # ? MaxSP ???
 #--------------------------------------------------------------------------
 def maxsp
   n = [[base_maxsp + @maxsp_plus, 0].max, 9999].min
   for i in @states
     n *= $data_states[i].maxsp_rate / 100.0
   end
   n = [[Integer(n), 0].max, 9999].min
   return n
 end
 #--------------------------------------------------------------------------
 # ? ?????
 #--------------------------------------------------------------------------
 def str
   n = [[base_str + @str_plus, 1].max, 999].min
   for i in @states
     n *= $data_states[i].str_rate / 100.0
   end
   n = [[Integer(n), 1].max, 999].min
   return n
 end
 #--------------------------------------------------------------------------
 # ? ??????
 #--------------------------------------------------------------------------
 def dex
   n = [[base_dex + @dex_plus, 1].max, 999].min
   for i in @states
     n *= $data_states[i].dex_rate / 100.0
   end
   n = [[Integer(n), 1].max, 999].min
   return n
 end
 #--------------------------------------------------------------------------
 # ? ??????
 #--------------------------------------------------------------------------
 def agi
   n = [[base_agi + @agi_plus, 1].max, 999].min
   for i in @states
     n *= $data_states[i].agi_rate / 100.0
   end
   n = [[Integer(n), 1].max, 999].min
   return n
 end
 #--------------------------------------------------------------------------
 # ? ?????
 #--------------------------------------------------------------------------
 def int
   n = [[base_int + @int_plus, 1].max, 999].min
   for i in @states
     n *= $data_states[i].int_rate / 100.0
   end
   n = [[Integer(n), 1].max, 999].min
   return n
 end
 #--------------------------------------------------------------------------
 # ? MaxHP ???
 #     maxhp : ??? MaxHP
 #--------------------------------------------------------------------------
 def maxhp=(maxhp)
   @maxhp_plus += maxhp - self.maxhp
   @maxhp_plus = [[@maxhp_plus, -9999].max, 9999].min
   @hp = [@hp, self.maxhp].min
 end
 #--------------------------------------------------------------------------
 # ? MaxSP ???
 #     maxsp : ??? MaxSP
 #--------------------------------------------------------------------------
 def maxsp=(maxsp)
   @maxsp_plus += maxsp - self.maxsp
   @maxsp_plus = [[@maxsp_plus, -9999].max, 9999].min
   @sp = [@sp, self.maxsp].min
 end
 #--------------------------------------------------------------------------
 # ? ?????
 #     str : ?????
 #--------------------------------------------------------------------------
 def str=(str)
   @str_plus += str - self.str
   @str_plus = [[@str_plus, -999].max, 999].min
 end

 #--------------------------------------------------------------------------
 # ? ??????
 #     dex : ??????
 #--------------------------------------------------------------------------
 def dex=(dex)
   @dex_plus += dex - self.dex
   @dex_plus = [[@dex_plus, -999].max, 999].min
 end
 #--------------------------------------------------------------------------
 # ? ??????
 #     agi : ??????
 #--------------------------------------------------------------------------
 def agi=(agi)
   @agi_plus += agi - self.agi
   @agi_plus = [[@agi_plus, -999].max, 999].min
 end
 #--------------------------------------------------------------------------
 # ? ?????
 #     int : ?????
 #--------------------------------------------------------------------------
 def int=(int)
   @int_plus += int - self.int
   @int_plus = [[@int_plus, -999].max, 999].min
 end
 #--------------------------------------------------------------------------
 # ? ??????
 #--------------------------------------------------------------------------
 def hit
   n = 100
   for i in @states
     n *= $data_states[i].hit_rate / 100.0
   end
   return Integer(n)
 end
 #--------------------------------------------------------------------------
 # ? ??????
 def bash
   n = 80
   for i in @states
     n *= $data_states[i].bash_rate / 80.0
   end
   return Integer(n)
 end
 #--------------------------------------------------------------------------
 def atk
   n = base_atk
   for i in @states
     n *= $data_states[i].atk_rate / 100.0
   end
   return Integer(n)
 end
 #--------------------------------------------------------------------------
 # ? ???????
 #--------------------------------------------------------------------------
 def pdef
   n = base_pdef
   for i in @states
     n *= $data_states[i].pdef_rate / 100.0
   end
   return Integer(n)
 end
 #--------------------------------------------------------------------------
 # ? ???????
 #--------------------------------------------------------------------------
 def mdef
   n = base_mdef
   for i in @states
     n *= $data_states[i].mdef_rate / 100.0
   end
   return Integer(n)
 end
 #--------------------------------------------------------------------------
 # ? ???????
 #--------------------------------------------------------------------------
 def eva
   n = base_eva
   for i in @states
     n += $data_states[i].eva
   end
   return n
 end
 #--------------------------------------------------------------------------
 # ? HP ???
 #     hp : ??? HP
 #--------------------------------------------------------------------------
 def hp=(hp)
   @hp = [[hp, maxhp].min, 0].max
   # ????????????
   for i in 1...$data_states.size
     if $data_states[i].zero_hp
       if self.dead?
         add_state(i)
       else
         remove_state(i)
       end
     end
   end
 end
 #--------------------------------------------------------------------------
 # ? SP ???
 #     sp : ??? SP
 #--------------------------------------------------------------------------
 def sp=(sp)
   @sp = [[sp, maxsp].min, 0].max
 end
 #--------------------------------------------------------------------------
 # ? ???
 #--------------------------------------------------------------------------
 def recover_all
   @hp = maxhp
   @sp = maxsp
   for i in @states.clone
     remove_state(i)
   end
 end
 #--------------------------------------------------------------------------
 # ? ????????????
 #--------------------------------------------------------------------------
 def current_action
   return @current_action
 end
 #--------------------------------------------------------------------------
 # ? ????????????
 #--------------------------------------------------------------------------
 def make_action_speed
   @current_action.speed = agi + rand(10 + agi / 4)
 end
 #--------------------------------------------------------------------------
 # ? ??????
 #--------------------------------------------------------------------------
 def dead?
   return (@hp == 0 and not @immortal)
 end
 #--------------------------------------------------------------------------
 # ? ????
 #--------------------------------------------------------------------------
 def exist?
   return (not @hidden and (@hp > 0 or @immortal))
 end
 #--------------------------------------------------------------------------
 # ? HP 0 ??
 #--------------------------------------------------------------------------
 def hp0?
   return (not @hidden and @hp == 0)
 end
 #--------------------------------------------------------------------------
 # ? ??????????
 #--------------------------------------------------------------------------
 def inputable?
   return (not @hidden and restriction <= 1)
 end
 #--------------------------------------------------------------------------
 # ? ??????
 #--------------------------------------------------------------------------
 def movable?
   return (not @hidden and restriction < 4)
 end
 #--------------------------------------------------------------------------
 # ? ?????
 #--------------------------------------------------------------------------
 def guarding?
   return (@current_action.kind == 0 and @current_action.basic == 1)
 end
 #--------------------------------------------------------------------------
 # ? ?????
 #--------------------------------------------------------------------------
 def resting?
   return (@current_action.kind == 0 and @current_action.basic == 3)
 end
end

























#==============================================================================
# ? Game_Battler (???? 2)
#------------------------------------------------------------------------------
# ???????????????????? Game_Actor ???? Game_Enemy ??
# ???????????????????
#==============================================================================

class Game_Battler
 #--------------------------------------------------------------------------
 # ? ???????
 #     state_id : ???? ID
 #--------------------------------------------------------------------------
 def limit_break?(limit_id)
   @actor = $game_party.actors[limit_id]
    @actor.add_state(22)
   @add_data = eval("@actor.limit_break_#{self.id}.push(rand(18) + 17)")
   @eval = eval("@actor.learn_skill(@actor.limit_break_#{self.id}[0])")
   @actor.limit = 0
   add_hp_limit_actor?(limit_id)
   @eval = eval("@actor.limit_break_#{self.id}.clear")
  # print eval("@actor.limit_break_#{self.id}.inspect")
  # actor = $game_party.actors[limit_id]
  # print "Player #{self.id} limit is " + (actor.limit).to_s
end

  def add_hp_limit_actor?(limit_id)
     @actor = $game_party.actors[limit_id]
     @eval = eval("@actor.hp += @actor.limit_break_#{self.id}[0]")
   end
   
   def lose_skill?(actor_id, skill_id)
     @actor = $game_party.actors[actor_id - 1]
     @actor.forget_skill(@skill_id)
   end
 
 def state?(state_id)
   # ????????????????? true ???
   return @states.include?(state_id)
 end
 #counter state
 def cant_statecounter?
   for i in @states
     if $data_states[i].name == "counter"
       return true
     end
   end
   return false
 end
#counter
 #--------------------------------------------------------------------------
 # ? ??????????????
 #     state_id : ???? ID
 #--------------------------------------------------------------------------
 def state_full?(state_id)
   # ?????????????????? false ???
   unless self.state?(state_id)
     return false
   end
   # ??????? -1 (???????) ?? true ???
   if @states_turn[state_id] == -1
     return true
   end
   # ??????????????????????? true ???
   return @states_turn[state_id] == $data_states[state_id].hold_turn
 end
 #--------------------------------------------------------------------------
 # ? ???????
 #     state_id : ???? ID
 #     force    : ??????? (?????????????)
 #--------------------------------------------------------------------------
 def add_state(state_id, force = false)
   # ??????????
   if $data_states[state_id] == nil
     # ??????
     return
   end
   # ??????????
   unless force
     # ???????????
     for i in @states
       # ?????????????????????? (-) ????????
       # ????????????????????? (-) ?????????
       # (ex : ????????????????????)
       if $data_states[i].minus_state_set.include?(state_id) and
          not $data_states[state_id].minus_state_set.include?(i)
         # ??????
         return
       end
     end
   end
   # ?????????????????
   unless state?(state_id)
     # ???? ID ? @states ?????
     @states.push(state_id)
     # ????? [HP 0 ???????] ??????
     if $data_states[state_id].zero_hp
       # HP ? 0 ???
       @hp = 0
     end
     # ?????????
     for i in 1...$data_states.size
       # ?????? (+) ??
       if $data_states[state_id].plus_state_set.include?(i)
         add_state(i)
       end
       # ?????? (-) ??
       if $data_states[state_id].minus_state_set.include?(i)
         remove_state(i)
       end
     end
     # ??????????? (????????????) ?????
     @states.sort! do |a, b|
       state_a = $data_states[a]
       state_b = $data_states[b]
       if state_a.rating > state_b.rating
         -1
       elsif state_a.rating < state_b.rating
         +1
       elsif state_a.restriction > state_b.restriction
         -1
       elsif state_a.restriction < state_b.restriction
         +1
       else
         a <=> b
       end
     end
   end
   # ???????
   if force
     # ???????????? -1 (??) ???
     @states_turn[state_id] = -1
   end
   # ??????????
   unless  @states_turn[state_id] == -1
     # ??????????????
     @states_turn[state_id] = $data_states[state_id].hold_turn
   end
   # ???????
   unless movable?
     # ?????????
     @current_action.clear
   end
   # HP ??? SP ????????
   @hp = [@hp, self.maxhp].min
   @sp = [@sp, self.maxsp].min
 end
 #--------------------------------------------------------------------------
 # ? ???????
 #     state_id : ???? ID
 #     force    : ??????? (?????????????)
 #--------------------------------------------------------------------------
 def remove_state(state_id, force = false)
   # ????????????????
   if state?(state_id)
     # ??????????????????????????
     if @states_turn[state_id] == -1 and not force
       # ??????
       return
     end
     # ??? HP ? 0 ?? ????? [HP 0 ???????] ??????
     if @hp == 0 and $data_states[state_id].zero_hp
       # ??? [HP 0 ???????] ?????????????
       zero_hp = false
       for i in @states
         if i != state_id and $data_states[i].zero_hp
           zero_hp = true
         end
       end
       # ??????????????HP ? 1 ???
       if zero_hp == false
         @hp = 1
       end
     end
     # ???? ID ? @states ????? @states_turn ????????
     @states.delete(state_id)
     @states_turn.delete(state_id)
   end
   # HP ??? SP ????????
   @hp = [@hp, self.maxhp].min
   @sp = [@sp, self.maxsp].min
 end
 #--------------------------------------------------------------------------
 # ? ???????????? ID ??
 #--------------------------------------------------------------------------
 def state_animation_id
   # ???????????????????
   if @states.size == 0
     return 0
   end
   # ????????????????????? ID ???
   return $data_states[@states[0]].animation_id
 end
 #--------------------------------------------------------------------------
 # ? ?????
 #--------------------------------------------------------------------------
 def restriction
   restriction_max = 0
   # ?????????????????? restriction ???
   for i in @states
     if $data_states[i].restriction >= restriction_max
       restriction_max = $data_states[i].restriction
     end
   end
   return restriction_max
 end
 #--------------------------------------------------------------------------
 # ? ???? [EXP ???????] ??
 #--------------------------------------------------------------------------
 def cant_get_exp?
   for i in @states
     if $data_states[i].cant_get_exp
       return true
     end
   end
   return false
 end
 #--------------------------------------------------------------------------
 # ? ???? [?????????] ??
 #--------------------------------------------------------------------------
 def cant_evade?
   for i in @states
     if $data_states[i].cant_evade
       return true
     end
   end
   return false
 end
 #--------------------------------------------------------------------------
 # ? ???? [????????] ??
 #--------------------------------------------------------------------------
 def slip_damage?
   for i in @states
     if $data_states[i].slip_damage
       return true
     end
   end
   return false
 end
 #--------------------------------------------------------------------------
 # ? ??????????? (???????????)
 #--------------------------------------------------------------------------
 def remove_states_battle
   for i in @states.clone
     if $data_states[i].battle_only
       remove_state(i)
     end
   end
 end
 #--------------------------------------------------------------------------
 # ? ???????? (??????????)
 #--------------------------------------------------------------------------
 def remove_states_auto
   for i in @states_turn.keys.clone
     if @states_turn[i] > 0
       @states_turn[i] -= 1
     elsif rand(100) < $data_states[i].auto_release_prob
       remove_state(i)
     end
   end
 end
 #--------------------------------------------------------------------------
 # ? ???????? (?????????????)
 #--------------------------------------------------------------------------
 def remove_states_shock
   for i in @states.clone
     if rand(100) < $data_states[i].shock_release_prob
       remove_state(i)
     end
   end
 end
 #--------------------------------------------------------------------------
 # ? ?????? (+) ???
 #     plus_state_set  : ?????? (+)
 #--------------------------------------------------------------------------
 def states_plus(plus_state_set)
   # ?????????
   effective = false
   # ??? (????????)
   for i in plus_state_set
     # ?????????????????
     unless self.state_guard?(i)
       # ???????????????????????
       effective |= self.state_full?(i) == false
       # ????? [?????] ???
       if $data_states[i].nonresistance
         # ?????????????
         @state_changed = true
         # ???????
         add_state(i)
       # ???????????????
       elsif self.state_full?(i) == false
         # ????????????????????
         if rand(100) < [0,100,80,60,40,20,0][self.state_ranks[i]]
           # ?????????????
           @state_changed = true
           # ???????
           add_state(i)
         end
       end
     end
   end
   # ??????
   return effective
 end
 #--------------------------------------------------------------------------
 # ? ?????? (-) ???
 #     minus_state_set : ?????? (-)
 #--------------------------------------------------------------------------
 def states_minus(minus_state_set)
   # ?????????
   effective = false
   # ??? (????????)
   for i in minus_state_set
     # ????????????????????????
     effective |= self.state?(i)
     # ?????????????
     @state_changed = true
     # ???????
     remove_state(i)
   end
   # ??????
   return effective
 end
end









#==============================================================================
# ? Game_Battler (???? 3)
#------------------------------------------------------------------------------
# ???????????????????? Game_Actor ???? Game_Enemy ??
# ???????????????????
#==============================================================================

class Game_Battler
 #--------------------------------------------------------------------------
 # ? ??????????
 #     skill_id : ??? ID
 #--------------------------------------------------------------------------
 def skill_can_use?(skill_id)
   #state
   # 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
   #state change
   #state change
   # ????????
   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 : ??? (????)
 #--------------------------------------------------------------------------
 def attack_effect(attacker)
   # ?????????????
   self.critical = false
   # ??????
   hit_result = (rand(100) < attacker.hit)
   # ?????
   if hit_result == true
     # ?????????
     atk = [attacker.atk - self.pdef / 2, 0].max
     self.damage = atk * (20 + attacker.str) / 20
     # ????
     self.damage *= elements_correct(attacker.element_set)
     self.damage /= 100
     # ????????????
     if self.damage > 0
       # ????????
       if rand(100) < 4 * 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 cant_statecounter?
     if self.is_a?(Game_Enemy)
       target = $game_party.random_target_actor   #attack actor
     else
       target = $game_troop.random_target_enemy   #attack enemy  
     end
     if target != nil and self.damage != nil and self.damage != 0
       #?????????????
       target.damage = self.damage
       damages = self.damage
       target.damage = "Counter Attack!! {#{target.damage}}"
       target.hp = target.hp - damages
     end
     self.damage = 0
     hit_result = false
   end
    #counter
   
   if hit_result == true
     # ????????
     remove_states_shock
     # HP ?????????
     self.hp -= self.damage
      if instance_of?(Game_Actor) and self.damage > 0
        actor = $game_party.actors[self.id - 1]
     actor.limit += (actor.limit + 25.0 * self.damage / maxhp).floor
     actor.hp = actor.maxhp
     actor.sp = actor.maxsp
     #print actor.limit.to_s + "\n" + "Player #{self.id} recieved #{self.damage}"
     if actor.limit >= 75#|| nil
       limit_break?(self.id - 1)
      # return actor.limit = 0
     end
   end
     # ??????
     @state_changed = false
     states_plus(attacker.plus_state_set)
     states_minus(attacker.minus_state_set)
   # ?????
   else
     # ????? "Miss" ???
     self.damage = "Miss"
     # ?????????????
     self.critical = false
   end
   # ??????
   return true
 end
 #--------------------------------------------------------------------------
 # ? ????????
 #     user  : ??????? (????)
 #     skill : ???
 #--------------------------------------------------------------------------
 def skill_effect(user, skill)
   # ?????????????
   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.atk * skill.atk_f / 100
     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 / 20
     # ????
     self.damage *= elements_correct(skill.element_set)
     self.damage /= 100
     # ????????????
     if self.damage > 0
       # ????
       if self.guarding?
         
         self.damage /= 2
       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
     # ??????
     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
   #counter
   #????
   #????????????????????????????
   if cant_statecounter?
     if self.is_a?(Game_Enemy)
       target = $game_party.random_target_actor   #attack actor
     else
       target = $game_troop.random_target_enemy   #attack enemy  
     end
     if target != nil and self.damage != nil and self.damage != 0
       #?????????????
       target.damage = self.damage
       damages = self.damage
       target.damage = "Counter Attack!! {#{target.damage}}"
       target.hp = target.hp - damages
     end
     self.damage = 0
     hit_result = false
   end
    #counter
   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
     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
       # ????????????
       self.damage = ""
       # ????????????
       unless @state_changed
         # ????? "Miss" ???
         self.damage = "Miss"
       end
     end
   # ?????
   else
     # ????? "Miss" ???
     self.damage = "Super"
   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
     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)
     #new method
    # unless $game_temp.in_battle
      # self.damage_effect(user, 2)
     #end
     # ??????????????
     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
           # ????? "Miss" ???
           self.damage = "Miss"
         end
       end
     end
   # ?????
   else
     # ????? "Miss" ???
     self.damage = "Miss"
   end
   # ????????
   unless $game_temp.in_battle
     # ????? nil ???
     self.damage = nil
   end
   # ??????
   return effective
 end
 #--------------------------------------------------------------------------
 # ? ?????????????
 #--------------------------------------------------------------------------
 def slip_damage_effect
   # ???????
   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
   # ??????
   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












Thats al l3 in order.




Game_Battler 1
Game_Battler 2
Game_Battler 3

vamp