Chaos Project

RPG Maker => RPG Maker Scripts => Script Troubleshooting => Topic started by: Bernkastel on February 02, 2011, 12:39:02 am

Title: [XP] Blizz's ton's of add-ons regen help.
Post by: Bernkastel on February 02, 2011, 12:39:02 am
I was wondering, if possible, I could make small changes into Blizz's Regen script from Tons of Add-ons and turn it into Poison.

I know I sound like a moron wanting to create something that already exists, but for some reason "poison" doesn't work if I use tons of add-ons with the CBS I'm using. I tested the regen and it worked, so I assumed if I made it opposite, it would work and turn into poison.

Help will be greatly appreciated. I pasted the regen part of the script here.

Also, I didn't put this in the scripts' thread because it was already stated that it had problems with exotic CBS.

#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Regen Status Effect by Blizzard
# Version: 2.0b
# Type: Game Experience Improvement
# Date: 4.5.2006
# Date v1.1b: 12.1.2007
# Date v2.0: 22.10.2007
# Date v2.0b: 13.11.2007
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# new in v1.1b:
#   - fixed glitches, improved code and made it possible to have Regen and
#     Poison at the same time (they nullificate each other on the map, but not
#     in battle)
#
# new in v2.0:
#   - overworked system
#   - added SP Regen effect
#   - added SP Poison effect
#  
# new in v2.0b:
#   - fixed eventual bugs
#   - now possible to have more than one Regen status effect
#   - now beta
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

HP_REGEN_IDS = [18] # add any status effect IDs that will be HP Regen
SP_REGEN_IDS = [19] # add any status effect IDs that will be SP Regen
SP_POISON_IDS = [20] # add any status effect IDs that will be SP Poison

#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

#==============================================================================
# Game_Party
#==============================================================================

class Game_Party
 
 alias check_map_slip_damage_regen_later check_map_slip_damage
 def check_map_slip_damage
   check_map_slip_damage_regen_later
   if $game_system.REGEN_STATUS
     @actors.each {|actor|
         if actor.hp > 0
           if HP_REGEN_IDS.any? {|i| actor.states.include?(i)}
             actor.hp += [actor.maxhp / 100, 1].max
           end
           if SP_REGEN_IDS.any? {|i| actor.states.include?(i)}
             actor.sp += [actor.maxsp / 100, 1].max
           end
           if SP_POISON_IDS.any? {|i| actor.states.include?(i)}
             actor.sp -= [actor.maxsp / 100, 0].max
           end
         end}
   end
 end
 
end

#==============================================================================
# Game_Battler
#==============================================================================

class Game_Battler

 alias slip_damage_regen_later? slip_damage?
 def slip_damage?
   if $game_system.REGEN_STATUS && !$scene.is_a?(Scene_Map) &&
       (HP_REGEN_IDS + SP_REGEN_IDS + SP_POISON_IDS).any? {|i| @states.include?(i)}
     return true
   end
   return slip_damage_regen_later?
 end
 
 alias slip_damage_effect_regen_later slip_damage_effect
 def slip_damage_effect
   if $game_system.REGEN_STATUS
     if !(HP_REGEN_IDS.any? {|i| @states.include?(i)}) &&
         slip_damage_regen_later?
       slip_damage_effect_regen_later
     elsif (HP_REGEN_IDS.any? {|i| @states.include?(i)}) &&
         !slip_damage_regen_later?
       dam = -self.maxhp / 10
       if dam.abs > 0
         amp = [dam.abs * 15 / 100, 1].max
         dam -= rand(amp+1) + rand(amp+1) - amp
       end
       self.hp -= dam
       self.damage = 0 if self.damage == nil
       self.damage += dam
     end
     if (SP_REGEN_IDS.any? {|i| @states.include?(i)}) !=
         (SP_POISON_IDS.any? {|i| @states.include?(i)})
       dam = self.maxsp / 10
       if dam > 0
         amp = [dam * 15 / 100, 1].max
         dam += rand(amp+1) + rand(amp+1) + amp
       end
       dam = -dam if SP_REGEN_IDS.any? {|i| @states.include?(i)}
       self.sp -= dam
       self.damage = 0 if self.damage == nil
       self.damage += dam
     end
   else
     slip_damage_effect_regen_later
   end
 end

end
Title: Re: [XP] Blizz's ton's of add-ons regen help.
Post by: ForeverZer0 on February 02, 2011, 07:18:57 pm
Why modify that? I would attempt to fix whatever bug you got going on, not add an extra script to add a functionality that should already be there.