Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # ==============================================================================
- # Z26 : Actor Stored Variables Zetu Engine X
- # ------------------------------------------------------------------------------
- # This scripts allows variables to be stored in local to each actor. Each
- # variable type is, by default, 0. You may change the data type of the
- # variable to anything, such as a string, but if you do, you CANNOT have that
- # variable inside LEVEL_FORMULAS!
- # ==============================================================================
- # =========================================================================
- # Syntax: <Game_Actor>.vars.(stat).
- # -------------------------------------------------------------------------
- # <Game_Actor> => $game_actors[ID] or $game_party.members[INDEX]
- # (stat) => Any stat from STATS
- #==========================================================================
- module Z26
- STATS = ['char', 'dex'] #All Lowercase. No Symbols or Spaces
- LEVEL_FORMULAS = {
- 'char' => 'level**1.5 + 4'
- }
- #=============================================================================
- SYMBOLS = []
- for stat in STATS
- SYMBOLS.push(eval(':'+stat))
- end
- VARS = Struct.new(*SYMBOLS)
- end
- class Game_Actor < Game_Battler
- attr_accessor :vars
- alias z26_s setup unless $@
- def setup(actor_id)
- z26_s(actor_id)
- @vars = Z26::VARS.new(*([0]*Z26::STATS.size))
- for item in equips.compact
- z26variate_equip(item)
- end
- for stat in Z26::STATS
- z26variate_stats(stat, @level)
- end
- end
- alias z26_change_equip change_equip
- def change_equip(equip_type, item, test = false)
- last_item = equips[equip_type]
- z26_change_equip(equip_type, item, test)
- z26variate_equip(item)
- z26variate_equip(last_item, false)
- end
- def z26variate_equip(item, adding = true)
- return if item.nil?
- for line in item.note.split(//)
- if line =~ /<weapon[ ]var:[ ](.*) (\d)>/i
- if Z26::STATS.include?($1)
- if adding
- eval("@vars.#{$1} += #{$2}")
- else
- eval("@vars.#{$1} -= #{$2}")
- end
- end
- end
- end
- end
- def z26variate_stats(stat, level, adding = true)
- return if Z26::LEVEL_FORMULAS[stat].nil?
- amount = eval(Z26::LEVEL_FORMULAS[stat]).to_i
- if adding
- eval("@vars.#{stat} += #{amount}")
- else
- eval("@vars.#{stat} -= #{amount}")
- end
- end
- alias z26level_up level_up unless $@
- def level_up
- for stat in Z26::STATS
- z26variate_stats(stat, @level, false)
- end
- z26level_up
- for stat in Z26::STATS
- z26variate_stats(stat, @level)
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement