Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==============================================================================#
- # ** CHANGES
- #-*--------------------------------------------------------------------------*-#
- # Classes
- #
- #
- #------------------------------------------------------------------------------#
- #==============================================================================#
- # $imported - Is mostly used by Japanese RPG Maker XP/VX scripters.
- # This acts as a flag, or signal to show that "x" script is present.
- # This is used for compatability with other future scripts.
- $imported = {} if $imported == nil
- $imported["IFS-StatFactory"] = true
- #==============================================================================#
- # $ifs_script - Works just like the IEO ones
- # EG. $ifs_script[[ScriptID, "ScriptName"]]
- $ifs_script = {} if $ifs_script == nil
- $ifs_script[[1, "StatFactory"]] = 1.0
- #-*--------------------------------------------------------------------------*-#
- module IFS
- ALIAS_FIX = "ifsa"
- METHOD_FIX = "ifsm"
- ALIAS_SUB = "%s%s_%s"
- METHOD_SUB = "%s%s_%s"
- module_function
- def generate_name(type, genfix, oname = "", parent = nil)
- case type
- when :class
- when :method
- return sprintf(METHOD_SUB, METHOD_FIX, genfix, oname)
- when :alias
- return sprintf(ALIAS_SUB, ALIAS_FIX, genfix, oname)
- else ; raise "Name type not recognized"
- end
- end
- def generate_stat_script(name, attrs=[])
- genfix = rand(999999)
- meth = generate_name(:method, genfix, name)
- init = generate_name(:alias, genfix, "initialize")
- itge = generate_name(:alias, genfix, "item_growth_effect")
- basestat = %Q(
- #==============================================================================#
- # $imported - Is mostly used by Japanese RPG Maker XP/VX scripters.
- # This acts as a flag, or signal to show that "x" script is present.
- # This is used for compatability with other future scripts.
- $imported = {} if $imported == nil
- $imported["IFSGEN-#{name.capitalize}"] = true
- #==============================================================================#
- # $ifs_genscript - This is used for generated scripts, feel free to remove this
- # whole section
- # EG. $ifs_genscript[[GeneratedID, "ScriptName"]]
- $ifs_genscript = {} if $ifs_genscript == nil
- $ifs_genscript[[#{genfix}, "#{name.capitalize}"]] = 1.0
- #-*--------------------------------------------------------------------------*-#
- #==============================================================================#
- #==============================================================================#
- # RPG::BaseItem
- #==============================================================================#
- class RPG::BaseItem
- #--------------------------------------------------------------------------#
- # * Public Instance Variables
- #--------------------------------------------------------------------------#
- attr_accessor :#{name}
- attr_accessor :#{name}_growth
- #--------------------------------------------------------------------------#
- # * new method :#{meth}_baseitemcache
- #--------------------------------------------------------------------------#
- def #{meth}_baseitemcache
- @#{meth}_baseitemcache_complete = false
- @#{name} = 0
- @#{name}_growth = 0
- # ---------------------------------------------------------------------- #
- self.note.split(/[\\r\\n]+/).each { |line|
- case line
- # ---------------------------------------------------------------------- #
- when /<#{name}:[ ]*([\\+\\-]\\d+)>/i
- @#{name} = $1.to_i
- when /<#{name}_growth:[ ]*([\\+\\-]\\d+)>/i
- @#{name}_growth = $1.to_i
- end
- # ---------------------------------------------------------------------- #
- } # // End self.note.split
- @#{meth}_baseitemcache_complete = true
- # ---------------------------------------------------------------------- #
- end
- end
- #==============================================================================#
- # RPG::Enemy
- #==============================================================================#
- class RPG::Enemy
- #--------------------------------------------------------------------------#
- # * Public Instance Variables
- #--------------------------------------------------------------------------#
- attr_accessor :#{name}
- #--------------------------------------------------------------------------#
- # * new method :#{meth}_enemycache
- #--------------------------------------------------------------------------#
- def #{meth}_enemycache
- @#{meth}_enemycache_complete = false
- @#{name} = 0
- # ---------------------------------------------------------------------- #
- self.note.split(/[\\r\\n]+/).each { |line|
- case line
- # ---------------------------------------------------------------------- #
- when /<#{name}:[ ]*([\\+\\-]\\d+)>/i
- @#{name} = $1.to_i
- end
- # ---------------------------------------------------------------------- #
- } # // End self.note.split
- @#{meth}_enemycache_complete = true
- # ---------------------------------------------------------------------- #
- end
- end
- #==============================================================================#
- # RPG::State
- #==============================================================================#
- class RPG::State
- #--------------------------------------------------------------------------#
- # * Public Instance Variables
- #--------------------------------------------------------------------------#
- attr_accessor :#{name}_set
- attr_accessor :#{name}_rate
- #--------------------------------------------------------------------------#
- # * new method :#{meth}_statecache
- #--------------------------------------------------------------------------#
- def #{meth}_statecache
- @#{meth}_statecache_complete = false
- @#{name}_set = 0
- @#{name}_rate = 0
- # ---------------------------------------------------------------------- #
- self.note.split(/[\\r\\n]+/).each { |line|
- case line
- # ---------------------------------------------------------------------- #
- # // #{name} Set
- when /<#{name}:[ ]*([\\+\\-]\\d+)>/i
- @#{name}_set = $1.to_i
- # // #{name} Rate
- when /<#{name}:[ ]*(\\d+)([%%])>/i
- @#{name}_rate= $1.to_i
- end
- # ---------------------------------------------------------------------- #
- } # // End self.note.split
- @#{meth}_statecache_complete = true
- # ---------------------------------------------------------------------- #
- end
- end
- #==============================================================================#
- # Game_Battler
- #==============================================================================#
- class Game_Battler
- #--------------------------------------------------------------------------#
- # * alias method :initialize
- #--------------------------------------------------------------------------#
- alias #{init} initialize unless $@
- def initialize
- # // #{name} variables
- @#{name} = 0
- @#{name}_plus = 0
- @#{name}_limit= 0
- # // Default Initialize
- #{init}
- end
- #--------------------------------------------------------------------------#
- # * new method :#{name}_limit
- #--------------------------------------------------------------------------#
- def #{name}_limit ; return @#{name}_limit end
- #--------------------------------------------------------------------------#
- # * new method :base_#{name} // Dummy method
- #--------------------------------------------------------------------------#
- def base_#{name}
- n = 0
- return Integer(n)
- end
- #--------------------------------------------------------------------------#
- # * new method :#{name}
- #--------------------------------------------------------------------------#
- def #{name}
- n = [[base_#{name} + @#{name}_plus, 1].max, #{name}_limit].min
- for state in states do n *= state.#{name}_rate / 100.0 end
- return Integer(n)
- end
- #--------------------------------------------------------------------------#
- # * new method :#{name}
- #--------------------------------------------------------------------------#
- def #{name}=(n)
- @#{name}_plus += new_#{name} - self.#{name}
- @#{name}_plus = [[@def_plus, -#{name}_limit].max, #{name}_limit].min
- end
- #--------------------------------------------------------------------------#
- # * alias method :item_growth_effect
- #--------------------------------------------------------------------------#
- alias #{itge} item_growth_effect unless $@
- def item_growth_effect
- #{itge}
- end
- end
- #==============================================================================#
- # Game_Actor
- #==============================================================================#
- class Game_Actor
- #--------------------------------------------------------------------------#
- # * redefine method :base_#{name}
- #--------------------------------------------------------------------------#
- def base_#{name}
- n = 0
- for item in equips.compact do n += item.#{name} end
- return Integer(n)
- end
- end
- #==============================================================================#
- # Game_Enemy
- #==============================================================================#
- class Game_Enemy
- #--------------------------------------------------------------------------#
- # * redefine method :base_#{name}
- #--------------------------------------------------------------------------#
- def base_#{name}
- n = 0
- n = enemy.#{name}
- return Integer(n)
- end
- end
- #==============================================================================#
- # Scene_Title
- #==============================================================================#
- class Scene_Title < Scene_Base
- #--------------------------------------------------------------------------#
- # * alias method :load_database
- #--------------------------------------------------------------------------#
- alias #{meth}_load_database load_database unless $@
- def load_database
- #{meth}_load_database
- load_#{meth}_cache
- end
- #--------------------------------------------------------------------------#
- # * alias method :load_bt_database
- #--------------------------------------------------------------------------#
- alias #{meth}_load_bt_database load_database unless $@
- def load_bt_database
- #{meth}_load_bt_database
- load_#{meth}_cache
- end
- #--------------------------------------------------------------------------#
- # * new method :load_#{meth}_cache
- #--------------------------------------------------------------------------#
- def load_#{meth}_cache
- objs = [$data_items, $data_weapons, $data_armors, $data_states, $data_enemies]
- objs.each { |group| group.each { |obj| next if obj.nil?
- obj.#{meth}_baseitemcache if obj.is_a?(RPG::Item)
- obj.#{meth}_baseitemcache if obj.is_a?(RPG::Weapon)
- obj.#{meth}_baseitemcache if obj.is_a?(RPG::Armor)
- obj.#{meth}_statecache if obj.is_a?(RPG::State)
- obj.#{meth}_enemycache if obj.is_a?(RPG::Enemy) } }
- end
- end
- #=*==========================================================================*=#
- # ** END OF FILE
- #=*==========================================================================*=#
- )
- File.open("#{genfix}#{name}.txt", "w+") { |file| file.write(basestat) }
- end
- end
- # // Start dropping generations here
- #IFS.generate_stat_script("sp")
- #IFS.generate_stat_script("str")
- #IFS.generate_stat_script("rage")
Advertisement
Add Comment
Please, Sign In to add comment