Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Looking for a Passive Skills script for VX.

Yeah, I've noticed there's a good few passive skill scripts for XP but I can't seem to find one for VX.

I'd be really grateful if someone could find one for me.

If you don't understand the whole passive skills thing, take a look at Trickster's and Gando's scripts.
 
I rewrote my own Passive Skills script into a VX version. It doesn't have the gold and exp feature, like the XP version, just the hp, mp, def, atk, agi, spi bonuses.
And i haven't looked through the KGC script yet, but i bet that the script has A LOT more features than this one.
I can add more features to it later when i have time, but if you can settle for this now, then here it is :
Code:
#==============================================================================
# ** [VX]Passive_Skills
#------------------------------------------------------------------------------
# By: Gando
# 27/5 2008
#------------------------------------------------------------------------------
#                              INTRODUCTION
#------------------------------------------------------------------------------
#
#  With this script you will be able to create Passive skills.
#  And for those of you that doesn't know what passive skills are,
#  here is a short explaination:
#
#  A passive skill is a skill that cannot be used.
#  It just gives "support" to the skills owner, like bonus def, agi, spi, hp etc.
#
#---
#
#  I've also added a little feature that removes the "0" from the skill window,
#  when a skill doesn't cost any sp. If you for some reason don't want this 
#  feature, just remove the whole Window_Skill at the bottom of this script.
#
#------------------------------------------------------------------------------
#                                 SETUP
#------------------------------------------------------------------------------
#
#  PASSIVE_SKILL - Here are all the passive skills. To add a new skill,
#                   put the skills id from the database here.
#
#  ATTRIBUTES - Here is where you do your passive skills setup.
#               The numbers to the left(1=>..., 2=>... etc.) are the id's
#               of the skills in PASSIVE_SKILLS. To add a new passive skill
#               in ATTRIBUTES, put a comma at the end of the last skill setup
#               and put this line below it, and set it up as you want it:
#  skill_id => [max_hp, max_mp, def, spi, agi, atk]
#               
#
#  max_hp     - Increaces the max health.  
#  max_mp     - Increaces the max mana.
#  def        - Increaces the defense.
#  spi        - Increaces the spirit.
#  agi        - Increaces the agility.
#  atk        - Increaces the attack power.
#
#------------------------------------------------------------------------------
#                               REMEMBER!
#------------------------------------------------------------------------------
#
# Since passive skills are supposed to be "support" skills, they are not meant
# to be used in battle or the menu. 
# So remember to Change the Database/Skills/Occasion to never.
# Also remember to change the mp cost of the skill to 0.
#
# Of course you can have regular, usable skills and still have the passive bonus.
# It's all up to you how you want the skills to work.
#
#------------------------------------------------------------------------------
#  CREDITS: Gando
#==============================================================================
  PASSIVE_SKILLS = [1, 2, 3, 4, 5, 57]

  #skill_id => [max_hp, max_mp, def, spi, agi, atk]
  ATTRIBUTES =
  {
  1 => [999, 999, 999, 999, 999, 999, 999] ,
  2 => [0, 100, 0, 0, 0, 0, 0] ,  
  3 => [1, 1, 1, 1, 1, 1, 1] ,
  4 => [0, 0, 0, 0, 0, 0, 0] ,
  5 => [10, 10, 5, 5, 5, 5, 5] ,
  57 => [0, 0, 100, 100, 100, 100, 100]
  }
  
class Game_Actor < Game_Battler
  alias passive_skill_learn learn_skill
  alias passive_skill_forget forget_skill
  #--------------------------------------------------------------------------
  # * Get Actor ID
  #--------------------------------------------------------------------------
  def learn_skill(skill_id)
    passive_skill_learn(skill_id)
    if PASSIVE_SKILLS.include?(skill_id)
      @maxhp_plus += ATTRIBUTES[skill_id][0]
      @maxmp_plus += ATTRIBUTES[skill_id][1]
      @def_plus   += ATTRIBUTES[skill_id][2]
      @spi_plus   += ATTRIBUTES[skill_id][3]
      @agi_plus   += ATTRIBUTES[skill_id][4]
      @atk_plus   += ATTRIBUTES[skill_id][5]
    end
  end
  def forget_skill(skill_id)
    passive_skill_forget(skill_id)
    if PASSIVE_SKILLS.include?(skill_id)
      @maxhp_plus -= ATTRIBUTES[skill_id][0]
      @maxmp_plus -= ATTRIBUTES[skill_id][1]
      @def_plus   -= ATTRIBUTES[skill_id][2]
      @spi_plus   -= ATTRIBUTES[skill_id][3]
      @agi_plus   -= ATTRIBUTES[skill_id][4]
      @atk_plus   -= ATTRIBUTES[skill_id][5]
    end
  end
end

#==============================================================================
# ** Window_Skill
#------------------------------------------------------------------------------
#  This will hide the zero if the skill doesn't cost any SP.
#==============================================================================
class Window_Skill < Window_Selectable
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    skill = @data[index]
    if skill != nil
      rect.width -= 4
      enabled = @actor.skill_can_use?(skill)
      draw_item_name(skill, rect.x, rect.y, enabled)
      if @data[index].mp_cost != 0
      self.contents.draw_text(rect, @actor.calc_mp_cost(skill), 2)
      end
    end
  end
end

Over and out - Gando
 
I'm not talking about extra features, though the more the merrier I always say, but a translation.

I'm assuming there's instructions in the KCG script but how am I supposed to read them? I can't read Japanese.
 
Dann Woolf":1hk46fht said:
I'm not talking about extra features, though the more the merrier I always say, but a translation.

I'm assuming there's instructions in the KCG script but how am I supposed to read them? I can't read Japanese.
Translated using a translator.
Code:
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_ /_/_/_/_/_/_/_/_/_/_/_/_/_/_/ 
# _ / â—† PASSHIBUSUKIRU - KGC_PassiveSkill â—† VX â—† 
# _ / â—‡ Last update: 2008/04/27 â—‡ 
#_/----------------------------------------------- ----------------------------- 
# _ / Value increased ability to learn only the skills to create effective. 
#_/=============================================== ============================= 
# _ / Basic functions] [ «200x/XP reproduce features» introduced below, please. 
# _ / [Equipment] «Optional equipment» introduced below, please. 
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_ /_/_/_/_/_/_/_/_/_/_/_/_/_/_/ 

$ imported = () if $ imported == nil 
$ imported [ "PassiveSkill"] = true 

module KGC 
module PassiveSkill 
   # Parameter list for PASSHIBUSUKIRU 
   PARAMS = ( 
     : maxhp => "MAXHP | maximum HP", 
     : maxmp => "MAXMP | maximum MP", 
     : atk => "ATK | aggressivity", 
     : def => "DEF | defense", 
     : spi => "SPI | spirit", 
     : agi => "AGI | agility", 
     : hit => "HIT | hit rate", 
     : eva => "EVA | evade rate", 
     : cri => "CRI | critical factor", 
     : odds => "ODDS | REYASU targeted", 
   ) 

   # PASSHIBUSUKIRU State attribute list 
   ARRAYS = ( 
     : attack_element => "ATTACK_ELEMENT | attribute attacks", 
     : plus_state => "PLUS_STATE | additional state", 
     : invalid_state => "INVALID_STATE | disabling state", 
     : auto_state => "State Auto" 
   ) 

   # PASSHIBUSUKIRU list for special effects 
   EFFECTS = ( 
     # Default 
     : fast_attack => "FAST_ATTACK | turn in a pre-emptive", 
     : dual_attack => "DUAL_ATTACK | continuous attack", 
     : critical_bonus => "CRITICAL_BONUS | frequent critical", 
     : prevent_critical => "PREVENT_CRITICAL | critical prevention", 
     : half_mp_cost => "HALF_MP_COST | MP consumption half", 
     : double_exp_gain => "DOUBLE_EXP_GAIN | acquired experience [22] times", 
     # «200x/XP reproduce features» 
     : whole_attack => "WHOLE_ATTACK | attack as a whole", 
     : ignore_eva => "IGNORE_EVA | avoid ignore", 
     # «Optional equipment» 
     : multi_attack_count => '(\ d +) \ s * (?: TIMES_ATTACK | atacs)', 
   ) 

   # Regular expression 
   module Regexp 
     # Skills 
     module Skill 
       # Start PASSHIBUSUKIRU 
       BEGIN_PASSIVE = /<(?: PASSIVE_SKILL | PASSHIBUSUKIRU)> / i 
       # End PASSHIBUSUKIRU 
       END_PASSIVE = / <\ / (?: PASSIVE_SKILL | PASSHIBUSUKIRU)> / i 

       # Fixed parameters 
       # MAXHP +20, 
       PASSIVE_PARAMS = / ^ \ s *([^: \ + \ - \ d \ s] +) \ s * ([\ + \ -] \ d +)([%%])?/ 
       State list of attributes # 
       # Attack attributes such as 1,2,3 
       PASSIVE_ARRAYS = / ^ \ s *([^: \ + \ - \ d \ s] +) \ s * (\ d + (?: \ S *, \ s * \ d +)*)/ 
       # Special effects 
       PASSIVE_EFFECTS = / ^ \ s *([^: \ + \ - \ d \ s] +) / 
     end 
   end 
end 
end 

# ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ 

#================================================= ============================= 
# â–¡ KGC:: Commands 
#================================================= ============================= 

module KGC:: Commands 
   module_function 
   #------------------------------------------------- ------------------------- 
   # â—‹ PASSHIBUSUKIRU revised value of re-set 
   #------------------------------------------------- ------------------------- 
   def restore_passive_rev 
     (1 ... $ data_actors.size). Each (| i | 
       actor = $ game_actors [i] 
       actor.restore_passive_rev 
     ) 
   end 
end 

class Game_Interpreter 
   include KGC:: Commands 
end 

# ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ 

#================================================= ============================= 
# â–  RPG:: Skill 
#================================================= ============================= 

class RPG:: Skill <RPG:: UsableItem 
   #------------------------------------------------- ------------------------- 
   # â—‹ PASSHIBUSUKIRU to generate the cash 
   #------------------------------------------------- ------------------------- 
   def create_passive_skill_cache 
     @ __passive = false 
     @ __passive_params = () 
     @ __passive_params_rate = () 
     @ __passive_arrays = () 
     @ __passive_effects = (: multi_attack_count => 1) 

     passive_flag = false 
     self.note.split (/ [\ r \ n ]+/). each (| line | 
       case line 
       when KGC:: PassiveSkill:: Regexp:: Skill:: BEGIN_PASSIVE 
         # Define start PASSHIBUSUKIRU 
         passive_flag = true 
         @ __passive = true 
       when KGC:: PassiveSkill:: Regexp:: Skill:: END_PASSIVE 
         # Define end PASSHIBUSUKIRU 
         passive_flag = false 
       when KGC:: PassiveSkill:: Regexp:: Skill:: PASSIVE_PARAMS 
         # Value of fixed capacity 
         if passive_flag 
           apply_passive_params ($ 1, $ 2.to_i, $ 3! = nil) 
         end 
       when KGC:: PassiveSkill:: Regexp:: Skill:: PASSIVE_ARRAYS 
         State attributes # 
         if passive_flag 
           apply_passive_arrays ($ 1, $ 2.scan (/ \ d + /)) 
         end 
       else 
         # Special effects 
         if passive_flag 
           apply_passive_effects (line) 
         end 
       end 
     ) 
   end 
   #------------------------------------------------- ------------------------- 
   # â—‹ PASSHIBUSUKIRU ability to apply the value of fixed 
   # Param: View parameters 
   # Value: revised value 
   # Rate: true if you specify% 
   #------------------------------------------------- ------------------------- 
   def apply_passive_params (param, value, rate) 
     KGC:: PassiveSkill:: PARAMS.each (| k, v | 
       if param = ~ /(?:#{ v)) / i 
         if rate 
           @ __passive_params_rate [k] = 0 if @ __passive_params_rate [k] == nil 
           @ __passive_params_rate [k] + = value 
         else 
           @ __passive_params [k] = 0 if @ __passive_params [k] == nil 
           @ __passive_params [k] + = value 
         end 
         break 
       end 
     ) 
   end 
   #------------------------------------------------- ------------------------- 
   # â—‹ PASSHIBUSUKIRU additional attributes apply to state 
   # Param: View parameters 
   # List: State attribute list 
   #------------------------------------------------- ------------------------- 
   def apply_passive_arrays (param, list) 
     KGC:: PassiveSkill:: ARRAYS.each (| k, v | 
       if param = ~ /(?:#{ v)) / i 
         values = [] 
         list.each (| num | values <<num.to_i) 
         @ __passive_arrays [k] = [] if @ __passive_arrays [k] == nil 
         @ __passive_arrays [k] | = values 
         break 
       end 
     ) 
   end 
   #------------------------------------------------- ------------------------- 
   # â—‹ PASSHIBUSUKIRU special effects 
   # Effect: View effect 
   #------------------------------------------------- ------------------------- 
   def apply_passive_effects (effect) 
     KGC:: PassiveSkill:: EFFECTS.each (| k, v | 
       if effect = ~ / ^ \ s * (# (v)) / i 
         if k ==: multi_attack_count 
           $ 1 = ~ / # (v) / i 
           @ __passive_effects [k] = [$ 1.to_i, @ __passive_effects [k]]. max 
         else 
           @ __passive_effects [k] = true 
         end 
         break 
       end 
     ) 
   end 
   #------------------------------------------------- ------------------------- 
   # â—‹ of PASSHIBUSUKIRU 
   #------------------------------------------------- ------------------------- 
   def passive 
     create_passive_skill_cache if @ __passive == nil 
     return @ __passive 
   end 
   #------------------------------------------------- ------------------------- 
   # â—‹ PASSHIBUSUKIRU value of fixed capacity (immediate) 
   #------------------------------------------------- ------------------------- 
   def passive_params 
     create_passive_skill_cache if @ __passive_params == nil 
     return @ __passive_params 
   end 
   #------------------------------------------------- ------------------------- 
   # â—‹ PASSHIBUSUKIRU value of fixed capacity (percentage) 
   #------------------------------------------------- ------------------------- 
   def passive_params_rate 
     create_passive_skill_cache if @ __passive_params_rate == nil 
     return @ __passive_params_rate 
   end 
   #------------------------------------------------- ------------------------- 
   # â—‹ PASSHIBUSUKIRU list of the attributes of State 
   #------------------------------------------------- ------------------------- 
   def passive_arrays 
     create_passive_skill_cache if @ __passive_arrays == nil 
     return @ __passive_arrays 
   end 
   #------------------------------------------------- ------------------------- 
   # â—‹ PASSHIBUSUKIRU list of special effects 
   #------------------------------------------------- ------------------------- 
   def passive_effects 
     create_passive_skill_cache if @ __passive_effects == nil 
     return @ __passive_effects 
   end 
end 

# ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ ☆ ★ 

#================================================= ============================= 
# â–  Game_Actor 
#================================================= ============================= 

class Game_Actor <Game_Battler 
   #------------------------------------------------- ------------------------- 
   Setup # â—
 
Gando":mw16lp16 said:
I rewrote my own Passive Skills script into a VX version. It doesn't have the gold and exp feature, like the XP version, just the hp, mp, def, atk, agi, spi bonuses.
And i haven't looked through the KGC script yet, but i bet that the script has A LOT more features than this one.
I can add more features to it later when i have time, but if you can settle for this now, then here it is :
Code:
#==============================================================================
# ** [VX]Passive_Skills
#------------------------------------------------------------------------------
# By: Gando
# 27/5 2008
#------------------------------------------------------------------------------
#                              INTRODUCTION
#------------------------------------------------------------------------------
#
#  With this script you will be able to create Passive skills.
#  And for those of you that doesn't know what passive skills are,
#  here is a short explaination:
#
#  A passive skill is a skill that cannot be used.
#  It just gives "support" to the skills owner, like bonus def, agi, spi, hp etc.
#
#---
#
#  I've also added a little feature that removes the "0" from the skill window,
#  when a skill doesn't cost any sp. If you for some reason don't want this 
#  feature, just remove the whole Window_Skill at the bottom of this script.
#
#------------------------------------------------------------------------------
#                                 SETUP
#------------------------------------------------------------------------------
#
#  PASSIVE_SKILL - Here are all the passive skills. To add a new skill,
#                   put the skills id from the database here.
#
#  ATTRIBUTES - Here is where you do your passive skills setup.
#               The numbers to the left(1=>..., 2=>... etc.) are the id's
#               of the skills in PASSIVE_SKILLS. To add a new passive skill
#               in ATTRIBUTES, put a comma at the end of the last skill setup
#               and put this line below it, and set it up as you want it:
#  skill_id => [max_hp, max_mp, def, spi, agi, atk]
#               
#
#  max_hp     - Increaces the max health.  
#  max_mp     - Increaces the max mana.
#  def        - Increaces the defense.
#  spi        - Increaces the spirit.
#  agi        - Increaces the agility.
#  atk        - Increaces the attack power.
#
#------------------------------------------------------------------------------
#                               REMEMBER!
#------------------------------------------------------------------------------
#
# Since passive skills are supposed to be "support" skills, they are not meant
# to be used in battle or the menu. 
# So remember to Change the Database/Skills/Occasion to never.
# Also remember to change the mp cost of the skill to 0.
#
# Of course you can have regular, usable skills and still have the passive bonus.
# It's all up to you how you want the skills to work.
#
#------------------------------------------------------------------------------
#  CREDITS: Gando
#==============================================================================
  PASSIVE_SKILLS = [1, 2, 3, 4, 5, 57]

  #skill_id => [max_hp, max_mp, def, spi, agi, atk]
  ATTRIBUTES =
  {
  1 => [999, 999, 999, 999, 999, 999, 999] ,
  2 => [0, 100, 0, 0, 0, 0, 0] ,  
  3 => [1, 1, 1, 1, 1, 1, 1] ,
  4 => [0, 0, 0, 0, 0, 0, 0] ,
  5 => [10, 10, 5, 5, 5, 5, 5] ,
  57 => [0, 0, 100, 100, 100, 100, 100]
  }
  
class Game_Actor < Game_Battler
  alias passive_skill_learn learn_skill
  alias passive_skill_forget forget_skill
  #--------------------------------------------------------------------------
  # * Get Actor ID
  #--------------------------------------------------------------------------
  def learn_skill(skill_id)
    passive_skill_learn(skill_id)
    if PASSIVE_SKILLS.include?(skill_id)
      @maxhp_plus += ATTRIBUTES[skill_id][0]
      @maxmp_plus += ATTRIBUTES[skill_id][1]
      @def_plus   += ATTRIBUTES[skill_id][2]
      @spi_plus   += ATTRIBUTES[skill_id][3]
      @agi_plus   += ATTRIBUTES[skill_id][4]
      @atk_plus   += ATTRIBUTES[skill_id][5]
    end
  end
  def forget_skill(skill_id)
    passive_skill_forget(skill_id)
    if PASSIVE_SKILLS.include?(skill_id)
      @maxhp_plus -= ATTRIBUTES[skill_id][0]
      @maxmp_plus -= ATTRIBUTES[skill_id][1]
      @def_plus   -= ATTRIBUTES[skill_id][2]
      @spi_plus   -= ATTRIBUTES[skill_id][3]
      @agi_plus   -= ATTRIBUTES[skill_id][4]
      @atk_plus   -= ATTRIBUTES[skill_id][5]
    end
  end
end

#==============================================================================
# ** Window_Skill
#------------------------------------------------------------------------------
#  This will hide the zero if the skill doesn't cost any SP.
#==============================================================================
class Window_Skill < Window_Selectable
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    skill = @data[index]
    if skill != nil
      rect.width -= 4
      enabled = @actor.skill_can_use?(skill)
      draw_item_name(skill, rect.x, rect.y, enabled)
      if @data[index].mp_cost != 0
      self.contents.draw_text(rect, @actor.calc_mp_cost(skill), 2)
      end
    end
  end
end

Over and out - Gando

If you could add, at the very least, the Gold and EXP features, I'd be really grateful.

And, if you can, a way to have the Passive Skills work with percentages.

EDIT: also, can I make passive skills that LOWER stats? Like, a skill that increases attack but lowers intelligence?
 
Yeah, I'll get right on it when i have time.
Do you mean like, increase the str of a character with 20 percent?

You should be able to do that by adding a negative number in ATTRIBUTES, although i'm not sure.
For example if you would want the first skill to increase your atk by 100 but decrease your spi with 10 you could probably do somehting like this:

1 => [0, 0, 0, -10, 0, 100]

I just relized that there was something wrong with the script i gave you, replace it by this one instead:

Code:
#==============================================================================
# ** [VX]Passive_Skills
#------------------------------------------------------------------------------
# By: Gando
# 27/5 2008
#------------------------------------------------------------------------------
#                              INTRODUCTION
#------------------------------------------------------------------------------
#
#  With this script you will be able to create Passive skills.
#  And for those of you that doesn't know what passive skills are,
#  here is a short explaination:
#
#  A passive skill is a skill that cannot be used.
#  It just gives "support" to the skills owner, like bonus def, agi, spi, hp etc.
#
#---
#
#  I've also added a little feature that removes the "0" from the skill window,
#  when a skill doesn't cost any sp. If you for some reason don't want this 
#  feature, just remove the whole Window_Skill at the bottom of this script.
#
#------------------------------------------------------------------------------
#                                 SETUP
#------------------------------------------------------------------------------
#
#  PASSIVE_SKILL - Here are all the passive skills. To add a new skill,
#                   put the skills id from the database here.
#
#  ATTRIBUTES - Here is where you do your passive skills setup.
#               The numbers to the left(1=>..., 2=>... etc.) are the id's
#               of the skills in PASSIVE_SKILLS. To add a new passive skill
#               in ATTRIBUTES, put a comma at the end of the last skill setup
#               and put this line below it, and set it up as you want it:
#  skill_id => [max_hp, max_mp, def, spi, agi, atk]
#               
#
#  max_hp     - Increaces the max health.  
#  max_mp     - Increaces the max mana.
#  def        - Increaces the defense.
#  spi        - Increaces the spirit.
#  agi        - Increaces the agility.
#  atk        - Increaces the attack power.
#
#------------------------------------------------------------------------------
#                               REMEMBER!
#------------------------------------------------------------------------------
#
# Since passive skills are supposed to be "support" skills, they are not meant
# to be used in battle or the menu. 
# So remember to Change the Database/Skills/Occasion to never.
# Also remember to change the mp cost of the skill to 0.
#
# Of course you can have regular, usable skills and still have the passive bonus.
# It's all up to you how you want the skills to work.
#
#------------------------------------------------------------------------------
#  CREDITS: Gando
#==============================================================================
  PASSIVE_SKILLS = [1, 2, 3, 4, 5, 57]

  #skill_id => [max_hp, max_mp, def, spi, agi, atk]
  ATTRIBUTES =
  {
  1 => [999, 999, 999, 999, 999, 999] ,
  2 => [0, 100, 0, 0, 0, 0] ,  
  3 => [1, 1, 1, 1, 1, 1] ,
  4 => [0, 0, 0, 0, 0, 0] ,
  5 => [10, 10, 5, 5, 5, 5] ,
  57 => [0, 0, 100, 100, 100, 100]
  }
  
class Game_Actor < Game_Battler
  alias passive_skill_learn learn_skill
  alias passive_skill_forget forget_skill
  #--------------------------------------------------------------------------
  # * Get Actor ID
  #--------------------------------------------------------------------------
  def learn_skill(skill_id)
    passive_skill_learn(skill_id)
    if PASSIVE_SKILLS.include?(skill_id)
      @maxhp_plus += ATTRIBUTES[skill_id][0]
      @maxmp_plus += ATTRIBUTES[skill_id][1]
      @def_plus   += ATTRIBUTES[skill_id][2]
      @spi_plus   += ATTRIBUTES[skill_id][3]
      @agi_plus   += ATTRIBUTES[skill_id][4]
      @atk_plus   += ATTRIBUTES[skill_id][5]
    end
  end
  def forget_skill(skill_id)
    passive_skill_forget(skill_id)
    if PASSIVE_SKILLS.include?(skill_id)
      @maxhp_plus -= ATTRIBUTES[skill_id][0]
      @maxmp_plus -= ATTRIBUTES[skill_id][1]
      @def_plus   -= ATTRIBUTES[skill_id][2]
      @spi_plus   -= ATTRIBUTES[skill_id][3]
      @agi_plus   -= ATTRIBUTES[skill_id][4]
      @atk_plus   -= ATTRIBUTES[skill_id][5]
    end
  end
end

#==============================================================================
# ** Window_Skill
#------------------------------------------------------------------------------
#  This will hide the zero if the skill doesn't cost any SP.
#==============================================================================
class Window_Skill < Window_Selectable
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    skill = @data[index]
    if skill != nil
      rect.width -= 4
      enabled = @actor.skill_can_use?(skill)
      draw_item_name(skill, rect.x, rect.y, enabled)
      if @data[index].mp_cost != 0
      self.contents.draw_text(rect, @actor.calc_mp_cost(skill), 2)
      end
    end
  end
end

Over and out - Gando
 
Right, thanks.

But I also asked two other things. (I just noticed you said you'd get right on it. Take your time. Just don't take TOO long. ;) )

1: having the script work with percentages, like instead of raising a stat by 20, raising it by 20%.

2: I was hoping you could take the time to add in EXP/money increasing, preferably also by percentages.

EDIT: Also, I was hoping you could implement something to increase the effectiveness of certain elements. Like for example, a passive skill that when learned, increases damage done by fire-element skills.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top