Submit Your Article


 
RPG Maker

Welcome Guest ( Log In | Register )


  Games Resources RPG Maker VX RPG Maker XP Scripts Tutorials Downloads

 
Reply to this topicStart new topic
> Need help fixing a script
Gamesfreak13563
post Jan 25 2012, 12:26 AM
Post #1


Level 6
Group Icon

Group: Member
Posts: 85
Type: Developer
RM Skill: Advanced




CODE
#==============================================================================
#
# ▼ Gamesfreak13563 - Item Stats Bonus
# -- Last Updated: 2011.12.27
#
#==============================================================================
#==============================================================================
# ■ Options
#==============================================================================

module GF
  module ITEMBONUS
        DEFAULT_GROWTH ={
    # ParamID => [:param, +set],
            0 => [:maxhp,    0],
            1 => [:maxmp,    0],
            2 => [  :atk,    0],
            3 => [  :def,    0],
            4 => [  :mat,    0],
            5 => [  :mdf,    0],
            6 => [  :agi,    0],
            7 => [  :luk,    0],
    } # Do not remove this.
  end #ITEMBONUS
end #GF

#==============================================================================
# ■ Tags
#==============================================================================
module GF
  module ITEMBONUS
  module BASEITEM
    
    GROWTH_SET = /<(.*):[ ]([\+\-]\d+)[ ](?:BONUS|bonus)>/i
    
  end # BASEITEM
  end # ITEMBONUS
end # GF

#===========================================================================
# ■ DataManager
#===========================================================================


module DataManager  
    #--------------------------------------------------------------------------
    # ● Loads the database
    #--------------------------------------------------------------------------
    class << self
        alias_method(:gf_itembonus_load_database, :load_database) unless $@
    end
    def self.load_database
        gf_itembonus_load_database
        load_bonus_notetags
    end  
    #--------------------------------------------------------------------------
    # ● Loads the note tags
    #--------------------------------------------------------------------------
    def self.load_bonus_notetags
        groups = [$data_weapons, $data_armors]
        classes = [RPG::Weapon, RPG::Armor]
        for group in groups
            for obj in group
                next if obj.nil?
                obj.load_bonus_notetags if classes.include?(obj.class)
            end
        end
    end
end

#==========================================================================
#  ■  RPG::Weapon
#==========================================================================

class RPG::Weapon < RPG::EquipItem

  #--------------------------------------------------------------------------
  # public instance variables
  #--------------------------------------------------------------------------
  attr_reader :level_growth

  #--------------------------------------------------------------------------
  # common cache: load_bonus_notetags
  #--------------------------------------------------------------------------
  def load_bonus_notetags
    @level_growth = GF::ITEMBONUS::DEFAULT_GROWTH.clone
    #---
    self.note.split(/[\r\n]+/).each { |line|
      case line
      #---
      when GF::ITEMBONUS::BASEITEM::GROWTH_SET
        case $1.upcase
        when "MAXHP", "MHP", "HP"
          type = 0
        when "MAXMP", "MMP", "MP", "MAXSP", "MSP", "SP"
          type = 1
        when "ATK", "ATTACK"
          type = 2
        when "DEF", "DEFENSE"
          type = 3
        when "MAT", "MAGIC ATTACK", "INT", "INTELLIGENCE", "SPI", "SPIRIT"
          type = 4
        when "MDF", "MAGIC DEFENSE", "RES", "RESISTANCE"
          type = 5
        when "AGI", "AGILITY"
          type = 6
        when "LUK", "LUCK"
          type = 7
        else; next
        end
        @level_growth[type][1] = $2.to_i
      end
    } # self.note.split
    #---
  end
  
end # RPG::Enemy

#==========================================================================
#  ■  RPG::Armor
#==========================================================================

class RPG::Armor < RPG::EquipItem

  #--------------------------------------------------------------------------
  # public instance variables
  #--------------------------------------------------------------------------
  attr_reader :level_growth
  
  #--------------------------------------------------------------------------
  # common cache: load_bonus_notetags
  #--------------------------------------------------------------------------
  def load_bonus_notetags
    @level_growth = GF::ITEMBONUS::DEFAULT_GROWTH.clone
    #---
    self.note.split(/[\r\n]+/).each { |line|
      case line
      #---
      when GF::ITEMBONUS::BASEITEM::GROWTH_SET
        case $1.upcase
        when "MAXHP", "MHP", "HP"
          type = 0
        when "MAXMP", "MMP", "MP", "MAXSP", "MSP", "SP"
          type = 1
        when "ATK", "ATTACK"
          type = 2
        when "DEF", "DEFENSE"
          type = 3
        when "MAT", "MAGIC ATTACK", "INT", "INTELLIGENCE", "SPI", "SPIRIT"
          type = 4
        when "MDF", "MAGIC DEFENSE", "RES", "RESISTANCE"
          type = 5
        when "AGI", "AGILITY"
          type = 6
        when "LUK", "LUCK"
          type = 7
        else; next
        end
        @level_growth[type][1] = $2.to_i
      end
    } # self.note.split
    #---
  end
  
end # RPG::Enemy

#==========================================================================
#  ■  Game_Actor
#==========================================================================

  
class Game_Actor < Game_Battler

  def level_up_sum
    for f in 0..5
    if @equips[f].object != nil
      item1 = @equips[f].object
      puts @equips[f].object
        for i in 0..7
            add_param(i, item1.level_growth[i][1])
            puts item1.level_growth[i][1]
        end
      end
    end
  end

  def level_up
    @level += 1
    level_up_sum
    self.class.learnings.each do |learning|
      learn_skill(learning.skill_id) if learning.level == @level
    end
  end
  
end

]
What the script is supposed to do is apply a perameter bonus on leveling up to a character, if the character is equipping an item that has a tag, such as <atk: +2 bonus>. In theory this should give the character a +2 attack bonus when leveling up. However, the script just lumps together all the bonuses, weapons and armor, and assigns them to -every- weapon and armor. I have a general idea of what has to be done - basicallynot assigning everything to @level_growth[i][1] - but I have no idea how to go around fixing this. I have very little scripting experience. If anyone could help that'd be great.

This post has been edited by Gamesfreak13563: Jan 25 2012, 12:27 AM
Go to the top of the page
 
+Quote Post
   
Kread-EX
post Jan 25 2012, 12:59 AM
Post #2


(=___=)/
Group Icon

Group: +Gold Member
Posts: 4,136
Type: Scripter
RM Skill: Undisclosed




Just by the look of it, I'd say there are two possible issues:
- Your regexp may be erroneous.
- Your @level_growth hash is confusing. Maybe you should use an array instead, and put the parameters in the order used by the default scripts.



__________________________
FRACTURE - a SMT inspired game (demo) made by Rhyme, Karsuman and me. Weep and ragequit.

My blog.

Click here for my e-peen


Go to the top of the page
 
+Quote Post
   

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 

Lo-Fi Version Time is now: 21st May 2013 - 05:11 PM
RPG RPG Revolution is an Privacy Policy and Legal
eXTReMe Tracker