Sign in to follow this  
Followers 0
KillerG

Regeneracion de HP&SP

3 posts in this topic

Este script nos deja recuperar nuestro HP&SP mientras caminamos por el mapa
Se puede editar para que en un mapa no regenere, para que se de como recompenza
Entre mas HP o SP tengas, más alto es la tasa de recuperacion
Solo pongalo arriba d Main y ya esta

BY: Caldaron
CODE
#==============================================================================
# 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


0

Share this post


Link to post
Share on other sites
Entonces... ¿Funciona como en algunos Action RPG, que se recupera cierta cantidad cada pocos segundos?
0

Share this post


Link to post
Share on other sites
Supongo, la verdad es que me viene bien para el juego que toy haciendo xD(Sí, aunque mi favorito es entidad 3d, no he dejado el maker xD)

byes muerte.gif
0

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0