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
#
# ▼ 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.