Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

[RMVX] Regenerate HP/MP on defense

Script Name: Regenerate HP/MP on Defense
Written by: Synthesize
Current Version: 1.2.0A
Release Date: January 20, 2008

What is this script?
With this script, the developer has the ability to allow players to regenerate HP and/or SP (Now MP) when they defend. The customization is at the top of the script. This script was made by analyzing the Scene_Battle script in the Trial version and then remaking it in XP, so there may/may not be bugs.

Features:
- Regenerate HP/MP when you use defend
- Customize how much HP/MP is regenerated per every actor
- Enemies also Regenerate HP/MP when they defend
- Displays how much HP/MP the battler regenerated
- Customize the defend rates
- Hopefully easy to use

Version history:
Version 1.2.0A
- Customize the defence rates
- Documentation has been added
- Draw Text option has been added
- Works with Enemies along with party members
- Displays how much HP/MP battlers regenerated

version 1.0.0A:
- First release

The Script:
Code:
#===============================================================================
# Regenerate HP/MP - RMVX Version
#===============================================================================
# Written by Synthesize
# Version 1.2.0
# January 19, 2008
#===============================================================================
#			*This script is not compatible with RPG Maker XP*
#===============================================================================
module SynRegen
  # Format = { Actor_ID => Percent to restore, Actor_ID2 => Percent to restore}
  HP_regen = {1 => 5, 2 =>7} # %
  # You can define how much HP each individual actor regenerates when they
  # Defend. Add new actors by seperating each returning value with a comma (,)
  #-----------------------------------------------------------------------------
  # This value determines the Default Percent growth if the Actor_ID is not 
  # in the above hash
  HP_regen.default = 5 # %
  #-----------------------------------------------------------------------------
  # Set to true to enable HP regen in battle, false to disable.
  Use_hp_regen = true
  #----------------------------------------------------------------------------
  # Format = {Actor_ID => SP to restore
  SP_regen = {1 => 5, 2 => 7} # %
  # You can define how much SP each individual actor regenerates when they
  # defend. Add new actors by seperating each returning value with a comma (,)
  #-----------------------------------------------------------------------------
  # This is the default percentage to regenerate if the Actor_ID is not in the
  # hash.
  SP_regen.default = 5 # %
  #-----------------------------------------------------------------------------
  # Set to true to enable, false to disable
  Use_mp_regen = true
  #-----------------------------------------------------------------------------
  # Draw how much HP/MP the actor regenerated?
  Draw_text = true
  #-----------------------------------------------------------------------------
  # The defense rate if the actor has 'Super Defense'
  Super_guard_rate = 4
  #-----------------------------------------------------------------------------
  # The defense rate if the actor has 'Normal Defense'
  Normal_guard_rate = 2
end
#-------------------------------------------------------------------------------
# Scene_Battle
#   This aliases the execute_action_guard method in Scene_Battle
#-------------------------------------------------------------------------------
class Scene_Battle
  # Alias execute_action_guard
  alias syn_regen_execute_guard execute_action_guard
  #-----------------------------------------------------------------------------
  # Execute Action_Guard
  #-----------------------------------------------------------------------------
  def execute_action_guard
	# Calculate the amount of HP and MP gained
	hp_restore = ((@active_battler.maxhp * SynRegen::HP_regen[@active_battler.id]) / 100) if SynRegen::Use_hp_regen == true
	sp_restore = ((@active_battler.maxmp * SynRegen::SP_regen[@active_battler.id]) / 100) if SynRegen::Use_mp_regen == true
	# Calculate the different between MaxHP, HP, MaxMP and MP
	temp_value_hp = (@active_battler.maxhp - @active_battler.hp)
	temp_value_mp = (@active_battler.maxmp - @active_battler.mp)
	# Add HP and MP
	@active_battler.hp += hp_restore if SynRegen::Use_hp_regen == true
	@active_battler.mp += sp_restore if SynRegen::Use_mp_regen == true
	# Draw how much HP/MP the actor regenerated
	if temp_value_hp != 0 and temp_value_mp != 0
	  @message_window.add_instant_text("#{@active_battler.name} HP increased by #{hp_restore} and MP increased by #{sp_restore}")
	elsif temp_value_hp != 0 and temp_value_mp == 0
	  @message_window.add_instant_text("#{@active_battler.name} HP increased by #{hp_restore}")
	elsif temp_value_hp == 0 and temp_value_mp != 0
	  @message_window.add_instant_text("#{@active_battler.name} MP increased by #{sp_restore}")
	end
	# Call the original code
	syn_regen_execute_guard
  end
end
#-------------------------------------------------------------------------------
# Game_Battler
#   This rewrites the defense method found in Game_Battler
#-------------------------------------------------------------------------------
class Game_Battler
  #-----------------------------------------------------------------------------
  # Apply_Guard_Damage
  #-----------------------------------------------------------------------------
  def apply_guard(damage)
	if damage > 0 and guarding?
	  # Divide the total damage from the effectivness of the defense rate.
	  damage /= super_guard ? SynRegen::Super_guard_rate : SynRegen::Normal_guard_rate	
	end
	return damage
  end
end
#===============================================================================
# This script is not compatible with Rpg Maker XP. However, I have also made a
# RPG Maker Xp version which can be found on RPGRPG Revolution.
#===============================================================================
#		   * This script is untested but should work in theory *
#===============================================================================
# Written by Synthesize
# January 19, 2008
#===============================================================================
# Regenerate HP/MP - RMVX Version
#===============================================================================

DEMO:
http://www.4shared.com/file/37417029/6a ... fense.html

Questions? Concerns? Feel free to post them.
 

munin

Member

This is actually pretty interesting. I'm surprised no one's commented about it.

I'll test it on my VX trial, thank you!
 

Hero

Member

For some reason, your HP and MP only recharge if you get attacked when using this in conjunction with RPG Tanketai's sideview battle system. Is there a way to change that?
 

yion

Member

Hero":3126wrhq said:
For some reason, your HP and MP only recharge if you get attacked when using this in conjunction with RPG Tanketai's sideview battle system. Is there a way to change that?

i got the same problem!
anyway to fix it?
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top