10-09-2006, 01:00 PM
On Map Regeneration
by Caldaron
Version: 1.09
Introduction
This script lets ur actors recover HP/SP while moving on the Map
Features
no way...
Script
Instructions
Put the Script above main
The descriptions should be sufficient
Incompatibility
not known...
Credits and Thanks
Credits to me...
by Caldaron
Version: 1.09
This is a locked, single-post thread from Creation Asylum. Archived here to prevent its loss.
No support is given. If you are the owner of the thread, please contact administration.
No support is given. If you are the owner of the thread, please contact administration.
Introduction
This script lets ur actors recover HP/SP while moving on the Map
Features
- Recover HP/SP or percentage of MAXHP/MAXSP
- Individual Regeneration Rate for Actors
- Choose Maps enabling/disabling the Regeneration
- Choose states to stop the HP/SP Regeneration
- The higher the MAXHP/MAXSP the faster the Regeneration
- Regeneration Speed can be edited in Game Progress (e.g. as reward)
- Regeneration enabled by Switches or for several Times
no way...
Script
On Map Regeneration
Code:
#==============================================================================
# On Map Regeneration Script v. 1.09
# by Caldaron (01.11.2006)
#==============================================================================
# DESCRIPTIONS
#==============================================================================
#--------------------------------------------------------------------------
# USE_HP/SP_MAPS: true: HP/SP Regeneration except for HP/SP_MAPS
# false: HP/SP Regeneration only on HP/SP_MAPS
# HP/SP_MAPS: Map_IDs which enable/disable HP/SP Regeneration
# HP/SP_WEAPONS: Weapon ID enables HP/SP Regeneration
# HP/SP_ARMORS: Armor ID enables HP/SP Regeneration
# HP/SP_WAIT: Max Wait Time
# Should be Max achivable HP/SP
# HP/SP_REG: Value of HP/SP Regeneration
# HP/SP_PERCENT: true: HP/SP_REG is %
# HP/SP_STOP: State ID which prevents Regeneration
# $game_map.
# hp/sp_switch[ID]=: true: enables HP/SP Regeneration
# hp/sp_time[ID]=x: enables x-times HP/SP Regeneration
# hp/sp_mod[ID]=x: x% HP/SP Regeneration Speed
# ID = actor.id-1
#--------------------------------------------------------------------------
#==============================================================================
SDK.log('On Map Regeneration', 'Caldaron', 1.09, '2006-11-01')
if SDK.state('On Map Regeneration')
#==============================================================================
module Regenerate
USE_HP_MAPS = false
USE_SP_MAPS = false
HP_MAPS = []
SP_MAPS = []
HP_WEAPONS = []
SP_WEAPONS = []
HP_ARMORS = []
SP_ARMORS = []
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_Map
#--------------------------------------------------------------------------
attr_accessor :hp_mod
attr_accessor :sp_mod
attr_accessor :hp_switch
attr_accessor :sp_switch
attr_accessor :hp_time
attr_accessor :sp_time
attr_accessor :hp_wait
attr_accessor :sp_wait
#--------------------------------------------------------------------------
alias map_reg_init initialize
def initialize
@hp_mod = []
@sp_mod = []
@hp_switch = []
@sp_switch = []
@hp_time = []
@sp_time = []
@hp_wait = []
@sp_wait = []
($data_actors.size-1).times do
@hp_mod.push(100)
@hp_switch.push(false)
@hp_wait.push(0)
@hp_time.push(0)
@sp_mod.push(100)
@sp_switch.push(false)
@sp_wait.push(0)
@sp_time.push(0)
end
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_HP_MAPS and not Regenerate::HP_MAPS.include?(@map_id)) or
Regenerate::HP_WEAPONS.include?(actor.weapon_id) or
Regenerate::HP_ARMORS.include?(actor.armor1_id) or
Regenerate::HP_ARMORS.include?(actor.armor2_id) or
Regenerate::HP_ARMORS.include?(actor.armor3_id) or
Regenerate::HP_ARMORS.include?(actor.armor4_id) or
@hp_switch or @hp_time[i] > 0 or
(Regenerate::USE_HP_MAPS == false and Regenerate::HP_MAPS.include?(@map_id))
if @hp_wait[i] < 1
@hp_time[i] -= 1 if @hp_time[i] > 0
@actor.hp_reg
if Regenerate::HP_PERCENT
@hp_wait[i] = Regenerate::HP_WAIT/(@actor.maxhp * (@actor.maxhp/(Regenerate::HP_REG*100)) * (@hp_mod[i]/100.00))
else
@hp_wait[i] = Regenerate::HP_WAIT/(@actor.maxhp * Regenerate::HP_REG * (@hp_mod[i]/100.00))
end
end
end
if (Regenerate::USE_SP_MAPS and not Regenerate::SP_MAPS.include?(@map_id)) or
Regenerate::SP_WEAPONS.include?(actor.weapon_id) or
Regenerate::SP_ARMORS.include?(actor.armor1_id) or
Regenerate::SP_ARMORS.include?(actor.armor2_id) or
Regenerate::SP_ARMORS.include?(actor.armor3_id) or
Regenerate::SP_ARMORS.include?(actor.armor4_id) or
@sp_switch or @sp_time[i] > 0 or
(Regenerate::USE_SP_MAPS == false and Regenerate::SP_MAPS.include?(@map_id))
if @sp_wait[i] < 1
@sp_time[i] -= 1 if @sp_time[i] > 0
@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)) * (@sp_mod[i]/100.00))
else
@sp_wait[i] = Regenerate::SP_WAIT/(@actor.maxsp * Regenerate::SP_REG * (@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_map.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_map.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
#==============================================================================
end
Instructions
Put the Script above main
The descriptions should be sufficient
Incompatibility
not known...
Credits and Thanks
Credits to me...