Battle Damage Algorithms[Resolved]

Started by Daxisheart, January 27, 2009, 09:19:30 pm

Previous topic - Next topic

Daxisheart

January 27, 2009, 09:19:30 pm Last Edit: January 28, 2009, 06:32:40 pm by Daxisheart
Okay, I'm working on an a new game using Blizz ABS. Anyways, I want to really simplify the battle damage algorithms, the way that damage is calculated in the game.

I am certain that this has been asked before, but I suck at editing the scripts.

I'm trying to greatly decrease the damage calculated. I want damage to be calculated with Physcal Attack, the weapon's damage stat, as the main base, and strength to be additional statistics. Strength will be calculated by fractions(EX: 4 str will increase normal damage by 1) and such.

Also, If you can't just simply do this, then could you at least point me to where I can decrease the basic damage proportionally(RTP makes 1000 damage, the edit will make 100, stuff like that)? Please script this out for me because I can't script to save my life(thus, I leech off of others... like YOU)

PS: It would be so cool if you could make this like a plug an play script, the user just has to paste the script, make some configurations in the set config section, stuff like that... God knows I need a script like that.
"Oh hey look godless stuff": ShowHide
What is really, really interesting is that while Abrahamic Christians give so much importance to their own free will, by their very definition of their God they deprive Him of free will.
The concept that He is not human and thus not derive the same morals as us really does not work. If his idea of morality, good or evil, is beyond us, is beyond our comprehension, why should we care? If he judges that not saving a woman from being raped a murdered a moral decision, then we should still trust him?
god i am such an atheist asshole.

I am on such a coolkid atheist rampage this week.

winkio

I'll make you a custom damage script easily.  Just tell me how you want damage for attacks, skills, and items, and I'll have it done within minutes:)

Daxisheart

Seriously? Wow, you're awesome...
(Forgot to mention, this is for XP, but I guess that's a given)

What I want is actually a general battle algorithm script, which the noob user(me) can basically configure to do whatever. So, we'd input the script, and look at the config section to try and do whatever.

I'd rather like it if there are instructions since I can't script for s***. Instructions on how to set what to what, what to input to increase/decrease stuff, etc.

Of course, that's pretty vague, so I guess it's time to get selfish.

The battle algorithm I'd like is so that the damage will use the weapon stat(ATK) as a base. EX: 50 ATK will deal roughly 50 damage, not counting strength and stuff. Counting strength, the amount of strength you have will be fractioned, and then inputted into the damage equation. 50 + (30/5) = ~56 damage.
Of course,then you'd have to input the defense equation. The PDEF Equation would be influenced by the strength(fractioned, of course) and the MDEF equation would be influenced by int(also fractioned). The added PDEF and strength would be subtracted from the amount of damage about to be dealed.
So, for example, you have 50 ATK, 30 strength(assuming the strength division would be 5), and the enemy had 20 PDEF and also 30 STR.
Equation: (50 + (30/6)) - (20 +(30/6))= 56 - 26= roughly 30 damage dealt. Of course, the damage variation would be very little, at most five, but would increase as more damage is dealt, so that while early in the game you deal 27-33 damage, later in the game with stuff like 900 ATK you'd deal 1000-1100 damage. Roughly, anyways.
Item config doesn't have to be too strenous. You'd just have to make the variation a bit less, and the rest I can config from the database. Magic would have to be scaled down as well, as well as the damage variation.

There's probably lots of things I'm forgetting, but I don't know things like that. I'd like it if you produced a configurable script(compatible with KGC, Blizz, etc.) with instructions.

By the way, You're awesome.
"Oh hey look godless stuff": ShowHide
What is really, really interesting is that while Abrahamic Christians give so much importance to their own free will, by their very definition of their God they deprive Him of free will.
The concept that He is not human and thus not derive the same morals as us really does not work. If his idea of morality, good or evil, is beyond us, is beyond our comprehension, why should we care? If he judges that not saving a woman from being raped a murdered a moral decision, then we should still trust him?
god i am such an atheist asshole.

I am on such a coolkid atheist rampage this week.

winkio

January 27, 2009, 10:58:55 pm #3 Last Edit: January 27, 2009, 11:27:21 pm by winkio
Okay, I'll make the custom script for now, but the idea of a customizable script is interesting.  I think I will do that at some future date.  Wait about an hour, because I'm in the middle of something else...

Here you go.  let me know if you need any more tweaks.
# Custom Damage Script
#
# Ok, so this calculates attack damage based on
# ATK + attackers STR/MODIFIER - (PDEF + defenders STR/MODIFIER)
# for skills, its
# POWER + ATK + STR/STR_EFFECT + DEX/DEX_EFFECT ETC. - MDEF

module Custom_Damage_Config
  # Configure this.  5 means its strength/5
  STRENGTH_DIVIDER = 5
end

#==============================================================================
# Custom damage script
#------------------------------------------------------------------------------
#
#==============================================================================

class Game_Battler
  #--------------------------------------------------------------------------
  # * Applying Normal Attack Effects
  #     attacker : battler
  #--------------------------------------------------------------------------
  def attack_effect(attacker)
    # Clear critical flag
    self.critical = false
    # First hit detection
    hit_result = (rand(100) < attacker.hit)
    # If hit occurs
    if hit_result == true
      # Calculate basic damage
      atk = [attacker.atk + (attacker.str - self.str) /
      Custom_Damage_Config::STRENGTH_DIVIDER - self.pdef / 2, 0].max
      # Element correction
      self.damage *= elements_correct(attacker.element_set)
      self.damage /= 100
      # If damage value is strictly positive
      if self.damage > 0
        # Critical correction
        if rand(100) < 4 * attacker.dex / self.agi
          self.damage *= 2
          self.critical = true
        end
        # Guard correction
        if self.guarding?
          self.damage /= 2
        end
      end
      # Dispersion
      if self.damage.abs > 0
        amp = [self.damage.abs * 10 / 100, 1].max
        self.damage += rand(amp+1) + rand(amp+1) - amp
      end
      # Second hit detection
      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 occurs
    if hit_result == true
      # State Removed by Shock
      remove_states_shock
      # Substract damage from HP
      self.hp -= self.damage
      # State change
      @state_changed = false
      states_plus(attacker.plus_state_set)
      states_minus(attacker.minus_state_set)
    # When missing
    else
      # Set damage to "Miss"
      self.damage = "Miss"
      # Clear critical flag
      self.critical = false
    end
    # End Method
    return true
  end
  #--------------------------------------------------------------------------
  # * Apply Skill Effects
  #     user  : the one using skills (battler)
  #     skill : skill
  #--------------------------------------------------------------------------
  def skill_effect(user, skill)
    # Clear critical flag
    self.critical = false
    # If skill scope is for ally with 1 or more HP, and your own HP = 0,
    # or skill scope is for ally with 0, and your own HP = 1 or more
    if ((skill.scope == 3 or skill.scope == 4) and self.hp == 0) or
       ((skill.scope == 5 or skill.scope == 6) and self.hp >= 1)
      # End Method
      return false
    end
    # Clear effective flag
    effective = false
    # Set effective flag if common ID is effective
    effective |= skill.common_event_id > 0
    # First hit detection
    hit = skill.hit
    if skill.atk_f > 0
      hit *= user.hit / 100
    end
    hit_result = (rand(100) < hit)
    # Set effective flag if skill is uncertain
    effective |= hit < 100
    # If hit occurs
    if hit_result == true
      # Calculate power
      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
      # Calculate rate
      rate = 0
      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)
      # Calculate basic damage
      self.damage = power + rate
      # Element correction
      self.damage *= elements_correct(skill.element_set)
      self.damage /= 100
      # If damage value is strictly positive
      if self.damage > 0
        # Guard correction
        if self.guarding?
          self.damage /= 2
        end
      end
      # Dispersion
      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
      # Second hit detection
      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)
      # Set effective flag if skill is uncertain
      effective |= hit < 100
    end
    # If hit occurs
    if hit_result == true
      # If physical attack has power other than 0
      if skill.power != 0 and skill.atk_f > 0
        # State Removed by Shock
        remove_states_shock
        # Set to effective flag
        effective = true
      end
      # Substract damage from HP
      last_hp = self.hp
      self.hp -= self.damage
      effective |= self.hp != last_hp
      # State change
      @state_changed = false
      effective |= states_plus(skill.plus_state_set)
      effective |= states_minus(skill.minus_state_set)
      # If power is 0
      if skill.power == 0
        # Set damage to an empty string
        self.damage = ""
        # If state is unchanged
        unless @state_changed
          # Set damage to "Miss"
          self.damage = "Miss"
        end
      end
    # If miss occurs
    else
      # Set damage to "Miss"
      self.damage = "Miss"
    end
    # If not in battle
    unless $game_temp.in_battle
      # Set damage to nil
      self.damage = nil
    end
    # End Method
    return effective
  end
  #--------------------------------------------------------------------------
  # * Application of Item Effects
  #     item : item
  #--------------------------------------------------------------------------
  def item_effect(item)
    # Clear critical flag
    self.critical = false
    # If item scope is for ally with 1 or more HP, and your own HP = 0,
    # or item scope is for ally with 0 HP, and your own HP = 1 or more
    if ((item.scope == 3 or item.scope == 4) and self.hp == 0) or
       ((item.scope == 5 or item.scope == 6) and self.hp >= 1)
      # End Method
      return false
    end
    # Clear effective flag
    effective = false
    # Set effective flag if common ID is effective
    effective |= item.common_event_id > 0
    # Determine hit
    hit_result = (rand(100) < item.hit)
    # Set effective flag is skill is uncertain
    effective |= item.hit < 100
    # If hit occurs
    if hit_result == true
      # Calculate amount of recovery
      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
      # Element correction
      recover_hp *= elements_correct(item.element_set)
      recover_hp /= 100
      recover_sp *= elements_correct(item.element_set)
      recover_sp /= 100
      # Dispersion
      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 recovery code is negative
      if recover_hp < 0
        # Guard correction
        if self.guarding?
          recover_hp /= 2
        end
      end
      # Set damage value and reverse HP recovery amount
      self.damage = -recover_hp
      # HP and SP recovery
      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 change
      @state_changed = false
      effective |= states_plus(item.plus_state_set)
      effective |= states_minus(item.minus_state_set)
      # If parameter value increase is effective
      if item.parameter_type > 0 and item.parameter_points != 0
        # Branch by parameter
        case item.parameter_type
        when 1  # Max HP
          @maxhp_plus += item.parameter_points
        when 2  # Max SP
          @maxsp_plus += item.parameter_points
        when 3  # Strength
          @str_plus += item.parameter_points
        when 4  # Dexterity
          @dex_plus += item.parameter_points
        when 5  # Agility
          @agi_plus += item.parameter_points
        when 6  # Intelligence
          @int_plus += item.parameter_points
        end
        # Set to effective flag
        effective = true
      end
      # If HP recovery rate and recovery amount are 0
      if item.recover_hp_rate == 0 and item.recover_hp == 0
        # Set damage to empty string
        self.damage = ""
        # If SP recovery rate / recovery amount are 0, and parameter increase
        # value is ineffective.
        if item.recover_sp_rate == 0 and item.recover_sp == 0 and
           (item.parameter_type == 0 or item.parameter_points == 0)
          # If state is unchanged
          unless @state_changed
            # Set damage to "Miss"
            self.damage = "Miss"
          end
        end
      end
    # If miss occurs
    else
      # Set damage to "Miss"
      self.damage = "Miss"
    end
    # If not in battle
    unless $game_temp.in_battle
      # Set damage to nil
      self.damage = nil
    end
    # End Method
    return effective
  end
end


it goes below the default scripts and above main.

Daxisheart

So sorry, but there's an error:

Script "custom damage algorithms" line 35: No method error occurred
Undefined method for '* for nil:NilClass

I'm using Blizz ABS, some of the addons, a whole bunch of those KGC enhancements scripts, and those are all that seem to matter. I'll try editing the KGC script, but that's the error I got right now.
"Oh hey look godless stuff": ShowHide
What is really, really interesting is that while Abrahamic Christians give so much importance to their own free will, by their very definition of their God they deprive Him of free will.
The concept that He is not human and thus not derive the same morals as us really does not work. If his idea of morality, good or evil, is beyond us, is beyond our comprehension, why should we care? If he judges that not saving a woman from being raped a murdered a moral decision, then we should still trust him?
god i am such an atheist asshole.

I am on such a coolkid atheist rampage this week.

Blizzard

Keep in mind that this add-on should go right below the original classes or right below all default script to ensure compatibility. Blizz-ABS will work with whatever you define before as it accesses the default damage algorithms. When you change the default, Blizz-ABS will apply those changes.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

winkio

yes, try putting it above the KGC classes for now.  Or if that doesnt work, stick it directly below the default script Game_Battler 3.

tSwitch

wouldn't skills have other forms of damage increase as well?
such as INT...or AGI...or DEX...


FCF3a A+ C- D H- M P+ R T W- Z- Sf RLCT a cmn+++ d++ e++ f h+++ iw+++ j+ p sf+
Follow my project: MBlok | Find me on: tSwitch.us | Twitter | Tumblr

winkio

Yep I changed those as well for him.  Instead of multipliers, those are now just adders.

Daxisheart

Nope, it doesn't work. First, I've placed it above the KGC, below the Blizz ABS, Between then, and it didn't work. I created a new project with no extra scripts, plugged it in, and it showed the same results.
Sorry, but the script is flawed :(
"Oh hey look godless stuff": ShowHide
What is really, really interesting is that while Abrahamic Christians give so much importance to their own free will, by their very definition of their God they deprive Him of free will.
The concept that He is not human and thus not derive the same morals as us really does not work. If his idea of morality, good or evil, is beyond us, is beyond our comprehension, why should we care? If he judges that not saving a woman from being raped a murdered a moral decision, then we should still trust him?
god i am such an atheist asshole.

I am on such a coolkid atheist rampage this week.

winkio

My apologies, it seems I forgot to paste a line of code...  This one does in fact work.  Sorry about that.
# Custom Damage Script
#
# Ok, so this calculates attack damage based on
# ATK + attackers STR/MODIFIER - (PDEF + defenders STR/MODIFIER)
# for skills, its
# POWER + ATK + STR/STR_EFFECT + DEX/DEX_EFFECT ETC. - MDEF

module Custom_Damage_Config
  # Configure this.  5 means its strength/5
  STRENGTH_DIVIDER = 5
end

#==============================================================================
# Custom damage script
#------------------------------------------------------------------------------
#
#==============================================================================

class Game_Battler
  #--------------------------------------------------------------------------
  # * Applying Normal Attack Effects
  #     attacker : battler
  #--------------------------------------------------------------------------
  def attack_effect(attacker)
    # Clear critical flag
    self.critical = false
    # First hit detection
    hit_result = (rand(100) < attacker.hit)
    # If hit occurs
    if hit_result == true
      # Calculate basic damage
      atk = [attacker.atk + (attacker.str - self.str) /
        Custom_Damage_Config::STRENGTH_DIVIDER - self.pdef / 2, 0].max
      self.damage = atk
      # Element correction
      self.damage *= elements_correct(attacker.element_set)
      self.damage /= 100
      # If damage value is strictly positive
      if self.damage > 0
        # Critical correction
        if rand(100) < 4 * attacker.dex / self.agi
          self.damage *= 2
          self.critical = true
        end
        # Guard correction
        if self.guarding?
          self.damage /= 2
        end
      end
      # Dispersion
      if self.damage.abs > 0
        amp = [self.damage.abs * 10 / 100, 1].max
        self.damage += rand(amp+1) + rand(amp+1) - amp
      end
      # Second hit detection
      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 occurs
    if hit_result == true
      # State Removed by Shock
      remove_states_shock
      # Substract damage from HP
      self.hp -= self.damage
      # State change
      @state_changed = false
      states_plus(attacker.plus_state_set)
      states_minus(attacker.minus_state_set)
    # When missing
    else
      # Set damage to "Miss"
      self.damage = "Miss"
      # Clear critical flag
      self.critical = false
    end
    # End Method
    return true
  end
  #--------------------------------------------------------------------------
  # * Apply Skill Effects
  #     user  : the one using skills (battler)
  #     skill : skill
  #--------------------------------------------------------------------------
  def skill_effect(user, skill)
    # Clear critical flag
    self.critical = false
    # If skill scope is for ally with 1 or more HP, and your own HP = 0,
    # or skill scope is for ally with 0, and your own HP = 1 or more
    if ((skill.scope == 3 or skill.scope == 4) and self.hp == 0) or
       ((skill.scope == 5 or skill.scope == 6) and self.hp >= 1)
      # End Method
      return false
    end
    # Clear effective flag
    effective = false
    # Set effective flag if common ID is effective
    effective |= skill.common_event_id > 0
    # First hit detection
    hit = skill.hit
    if skill.atk_f > 0
      hit *= user.hit / 100
    end
    hit_result = (rand(100) < hit)
    # Set effective flag if skill is uncertain
    effective |= hit < 100
    # If hit occurs
    if hit_result == true
      # Calculate power
      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
      # Calculate rate
      rate = 0
      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)
      # Calculate basic damage
      self.damage = power + rate
      # Element correction
      self.damage *= elements_correct(skill.element_set)
      self.damage /= 100
      # If damage value is strictly positive
      if self.damage > 0
        # Guard correction
        if self.guarding?
          self.damage /= 2
        end
      end
      # Dispersion
      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
      # Second hit detection
      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)
      # Set effective flag if skill is uncertain
      effective |= hit < 100
    end
    # If hit occurs
    if hit_result == true
      # If physical attack has power other than 0
      if skill.power != 0 and skill.atk_f > 0
        # State Removed by Shock
        remove_states_shock
        # Set to effective flag
        effective = true
      end
      # Substract damage from HP
      last_hp = self.hp
      self.hp -= self.damage
      effective |= self.hp != last_hp
      # State change
      @state_changed = false
      effective |= states_plus(skill.plus_state_set)
      effective |= states_minus(skill.minus_state_set)
      # If power is 0
      if skill.power == 0
        # Set damage to an empty string
        self.damage = ""
        # If state is unchanged
        unless @state_changed
          # Set damage to "Miss"
          self.damage = "Miss"
        end
      end
    # If miss occurs
    else
      # Set damage to "Miss"
      self.damage = "Miss"
    end
    # If not in battle
    unless $game_temp.in_battle
      # Set damage to nil
      self.damage = nil
    end
    # End Method
    return effective
  end
  #--------------------------------------------------------------------------
  # * Application of Item Effects
  #     item : item
  #--------------------------------------------------------------------------
  def item_effect(item)
    # Clear critical flag
    self.critical = false
    # If item scope is for ally with 1 or more HP, and your own HP = 0,
    # or item scope is for ally with 0 HP, and your own HP = 1 or more
    if ((item.scope == 3 or item.scope == 4) and self.hp == 0) or
       ((item.scope == 5 or item.scope == 6) and self.hp >= 1)
      # End Method
      return false
    end
    # Clear effective flag
    effective = false
    # Set effective flag if common ID is effective
    effective |= item.common_event_id > 0
    # Determine hit
    hit_result = (rand(100) < item.hit)
    # Set effective flag is skill is uncertain
    effective |= item.hit < 100
    # If hit occurs
    if hit_result == true
      # Calculate amount of recovery
      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
      # Element correction
      recover_hp *= elements_correct(item.element_set)
      recover_hp /= 100
      recover_sp *= elements_correct(item.element_set)
      recover_sp /= 100
      # Dispersion
      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 recovery code is negative
      if recover_hp < 0
        # Guard correction
        if self.guarding?
          recover_hp /= 2
        end
      end
      # Set damage value and reverse HP recovery amount
      self.damage = -recover_hp
      # HP and SP recovery
      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 change
      @state_changed = false
      effective |= states_plus(item.plus_state_set)
      effective |= states_minus(item.minus_state_set)
      # If parameter value increase is effective
      if item.parameter_type > 0 and item.parameter_points != 0
        # Branch by parameter
        case item.parameter_type
        when 1  # Max HP
          @maxhp_plus += item.parameter_points
        when 2  # Max SP
          @maxsp_plus += item.parameter_points
        when 3  # Strength
          @str_plus += item.parameter_points
        when 4  # Dexterity
          @dex_plus += item.parameter_points
        when 5  # Agility
          @agi_plus += item.parameter_points
        when 6  # Intelligence
          @int_plus += item.parameter_points
        end
        # Set to effective flag
        effective = true
      end
      # If HP recovery rate and recovery amount are 0
      if item.recover_hp_rate == 0 and item.recover_hp == 0
        # Set damage to empty string
        self.damage = ""
        # If SP recovery rate / recovery amount are 0, and parameter increase
        # value is ineffective.
        if item.recover_sp_rate == 0 and item.recover_sp == 0 and
           (item.parameter_type == 0 or item.parameter_points == 0)
          # If state is unchanged
          unless @state_changed
            # Set damage to "Miss"
            self.damage = "Miss"
          end
        end
      end
    # If miss occurs
    else
      # Set damage to "Miss"
      self.damage = "Miss"
    end
    # If not in battle
    unless $game_temp.in_battle
      # Set damage to nil
      self.damage = nil
    end
    # End Method
    return effective
  end
end

Daxisheart

"Oh hey look godless stuff": ShowHide
What is really, really interesting is that while Abrahamic Christians give so much importance to their own free will, by their very definition of their God they deprive Him of free will.
The concept that He is not human and thus not derive the same morals as us really does not work. If his idea of morality, good or evil, is beyond us, is beyond our comprehension, why should we care? If he judges that not saving a woman from being raped a murdered a moral decision, then we should still trust him?
god i am such an atheist asshole.

I am on such a coolkid atheist rampage this week.

tSwitch

what I meant was.
fireball shouldn't gain anything from 'atk'

if he made the atk value in the skill database '0' would it stop the skill from getting any atk bonus?


FCF3a A+ C- D H- M P+ R T W- Z- Sf RLCT a cmn+++ d++ e++ f h+++ iw+++ j+ p sf+
Follow my project: MBlok | Find me on: tSwitch.us | Twitter | Tumblr

winkio