payam Posted August 3, 2008 Share Posted August 3, 2008 On map regenerationDescrizioneL`eroe rigenera hp, mp camminando sulla mappa (rigenerazione differente per eroe) AutoreCaldaron Istruzioni per l'usoInserite sopra main: Script:Inserite sopra main: #============================================================================== # On Map Regeneration Script v. 1.07 # by Caldaron (11.09.2006) #============================================================================== # DESCRIPTIONS #============================================================================== #-------------------------------------------------------------------------- # USE_MAPS: when true: Regeneration is enabled, except for REG_MAPS # when false: Regeneration is only for REG_MAPS enabled # REG_MAPS: insert the Map_IDs where Regeneration is enabled/disabled # HP/SP_WAIT: time to Wait until HP/SP recovers, will be divided by MAXHP/SP # should be Limit of MAXHP/MAXSP # HP/SP_REG: the Value of HP/SP Regeneration # HP/SP_PERCENT: when true: the Value of HP/SP_REG changes to its meant Percentage # HP/SP_MOD: the Percentage of HP/SP Recovery (1. Value contains 1. Actor's Percentage) # 0 means no Regeneration # !!NUMBER OF VALUES MUST BE EQUAL THE NUMBER OF ACTORS!! # HP/SP_STOP: insert the State IDs which prevent the Actor to recover HP/SP # insert all State IDs which marked 'Regard as HP 0' # to prevent the Actor to Raise from Dead # # to change the actor's regenerate speed, use: # $game_system.hp_mod[actor.id-1] = value #-------------------------------------------------------------------------- #============================================================================== module Regenerate USE_MAPS = true REG_MAPS = [] HP_WAIT = 9999 SP_WAIT = 9999 HP_REG = 1 SP_REG = 1 HP_PERCENT = false SP_PERCENT = false HP_STOP = [1] SP_STOP = [1] end #============================================================================== class Game_System #-------------------------------------------------------------------------- attr_accessor :hp_mod attr_accessor :sp_mod #-------------------------------------------------------------------------- alias system_reg_init initialize def initialize @hp_mod = [100, 100, 100, 100, 100, 100, 100, 100] @sp_mod = [100, 100, 100, 100, 100, 100, 100, 100] system_reg_init end #-------------------------------------------------------------------------- end #============================================================================== class Game_Map #-------------------------------------------------------------------------- alias map_reg_init initialize def initialize @hp_wait = [0,0,0,0,0,0,0,0] # !!NUMBER OF VALUES MUST BE EQUAL THE NUMBER OF ACTORS!! @sp_wait = [0,0,0,0,0,0,0,0] # !!NUMBER OF VALUES MUST BE EQUAL THE NUMBER OF ACTORS!! map_reg_init end #-------------------------------------------------------------------------- alias map_reg_update update def update for actor in $game_party.actors i = actor.id i -= 1 @actor = actor @hp_wait[i] -= 1 @sp_wait[i] -= 1 if Regenerate::USE_MAPS and not Regenerate::REG_MAPS.include?(@map_id) or (Regenerate::USE_MAPS == false and Regenerate::REG_MAPS.include?(@map_id)) if @hp_wait[i] < 1 @actor.hp_reg if Regenerate::HP_PERCENT @hp_wait[i] = Regenerate::HP_WAIT/(@actor.maxhp * (@actor.maxhp/(Regenerate::HP_REG*100)) * ($game_system.hp_mod[i]/100.00)) else @hp_wait[i] = Regenerate::HP_WAIT/(@actor.maxhp * Regenerate::HP_REG * ($game_system.hp_mod[i]/100.00)) end end if @sp_wait[i] < 1 @actor.sp_reg if @actor.maxsp != 0 if Regenerate::HP_PERCENT @sp_wait[i] = Regenerate::SP_WAIT/(@actor.maxsp * (@actor.maxsp/(Regenerate::SP_REG*100)) * ($game_system.sp_mod[i]/100.00)) else @sp_wait[i] = Regenerate::SP_WAIT/(@actor.maxsp * Regenerate::SP_REG * ($game_system.sp_mod[i]/100.00)) end end end end end map_reg_update end #-------------------------------------------------------------------------- end #============================================================================== class Game_Actor #-------------------------------------------------------------------------- def stop_reg(type) case type when 0 for i in Regenerate::HP_STOP if self.state?(i) return true end end when 1 for i in Regenerate::SP_STOP if self.state?(i) return true end end end return false end #-------------------------------------------------------------------------- def hp_reg i = -1 + id @mod = $game_system.hp_mod[i] if not self.stop_reg(0) and not (@mod == 0 or @mod == nil) self.hp += 1 end self.hp = Integer([self.hp, self.maxhp].min) end #-------------------------------------------------------------------------- def sp_reg i = -1 + id @mod = $game_system.sp_mod[i] if not self.stop_reg(1) and not (@mod == 0 or @mod == nil) self.sp += 1 end self.sp = Integer([self.sp, self.maxsp].min) end #-------------------------------------------------------------------------- end Bugs e Conflitti NotiN/A Bazar:Clicca qui!! Link to comment Share on other sites More sharing options...
amivaleo Posted August 4, 2008 Share Posted August 4, 2008 uhm... serviva uno script per una cosa simile...? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now