05-21-2016, 03:06 AM
I extraced the MP shield code out of a larger script. I think I messed it up. ^^"
This is the full script.
Thank you for the Dot fix.
This is the full script.
Content Hidden
Code:
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Rain of Add-ons by Xelias
# Version: 1.00
# Type: Add-on Collection Control Script
# Date v1.00b: 26.11.2009
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
#
#
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# This work is protected by the following license:
# #----------------------------------------------------------------------------
# #
# # Creative Commons - Attribution-NonCommercial-ShareAlike 3.0 Unported
# # ( http://creativecommons.org/licenses/by-nc-sa/3.0/ )
# #
# # You are free:
# #
# # to Share - to copy, distribute and transmit the work
# # to Remix - to adapt the work
# #
# # Under the following conditions:
# #
# # Attribution. You must attribute the work in the manner specified by the
# # author or licensor (but not in any way that suggests that they endorse you
# # or your use of the work).
# #
# # Noncommercial. You may not use this work for commercial purposes.
# #
# # Share alike. If you alter, transform, or build upon this work, you may
# # distribute the resulting work only under the same or similar license to
# # this one.
# #
# # - For any reuse or distribution, you must make clear to others the license
# # terms of this work. The best way to do this is with a link to this web
# # page.
# #
# # - Any of the above conditions can be waived if you get permission from the
# # copyright holder.
# #
# # - Nothing in this license impairs or restricts the author's moral rights.
# #
# #----------------------------------------------------------------------------
#
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
class Game_System
alias init_rain_of_addons_later initialize
def initialize
init_rain_of_addons_later
@OIL_STATUS = false
@SHELL_STATUS = false
@PROTECT_STATUS = false
@VIRUS_STATUS = true
@MP_SHIELD_STATUS = true
@SPIKES_STATUS = true
end
attr_accessor :OIL_STATUS
attr_accessor :SHELL_STATUS
attr_accessor :PROTECT_STATUS
attr_accessor :VIRUS_STATUS
attr_accessor :MP_SHIELD_STATUS
attr_accessor :SPIKES_STATUS
end
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Oil Status Effect by Xelias
# Version: 1.0b
# Type: Enhanced Status
# Date: 24.9.2006
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# Allows to create a status increasing damage taken by Fire Element.
#
#
# Configuration:
#
# OIL_IDS - the IDs of the Oil status effects
# FIRE_ELEMENT_ID - the ID of the fire element
# FIRE_MULTIPLIER : How much times Fire Attacks should be stronger
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
OIL_IDS = [19]
FIRE_ELEMENT_ID = 1
FIRE_MULTIPLIER = 3
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#==============================================================================
# Game_Battler
#==============================================================================
class Game_Battler
alias attack_effect_oil_later attack_effect
def attack_effect(attacker)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
result = attack_effect_oil_later(attacker)
oil_effect(last_hp, last_sr, attacker) if self.damage.is_a?(Numeric)
return result
end
alias skill_effect_oil_later skill_effect
def skill_effect(user, skill)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
result = skill_effect_oil_later(user, skill)
oil_effect(last_hp, last_sr, skill) if self.damage.is_a?(Numeric)
return result
end
alias item_effect_oil_later item_effect
def item_effect(item, battler = nil)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
if battler == nil
result = item_effect_oil_later(item)
else
result = item_effect_oil_later(item, battler)
end
oil_effect(last_hp, last_sr, item) if self.damage.is_a?(Numeric)
return result
end
def oil_effect(last_hp, last_sr, object)
if $game_system.OIL_STATUS && OIL_IDS.any? {|i| @states.include?(i)}
self.hp = last_hp
self.hp = self.hp
self.sr = last_sr if last_sr != nil
if object.element_set.include?(FIRE_ELEMENT_ID)
self.damage = (self.damage * FIRE_MULTIPLIER).to_i
end
self.hp -= self.damage
end
end
end
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Shell Status by Xelias
# Version: 1.00
# Type: Enhanced Status
# Date: 26.11.2009
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
#
# Compatibility:
#
# 99% compatible with SDK v1.x. 90% compatible with SDK v2.x. Could cause
# problems with exotic CBS-es.
#
#
# Instructions:
#
# - Explanation:
#
# Thanks to this, you can create a "Shell Status" that halves all Magic Damage you take.
# You can put an animation on the character affected with Shell just before the magic hits
# - Configuration
#
# SHELL_IDS - include any IDs of Shell Statuses and separate them with
# commas (i.e. [52, 53, 54])
# SHELL_ANIMATION_ID - Put the animation id. If you don't want any, make it 0.
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
SHELL_IDS = [30]
SHELL_ANIMATION_ID = 64
#==============================================================================
# Game_Battler
#==============================================================================
class Game_Battler
alias skill_effect_shell_skill_later skill_effect
def skill_effect(user, skill)
last_hp = self.hp
last_sr = self.sr if $crls && self.is_a?(Game_Actor)
result = skill_effect_shell_skill_later(user, skill)
if $game_system.SHELL_STATUS
self.hp = last_hp
self.hp = self.hp
self.sr = last_sr if $crls && self.is_a?(Game_Actor)
if self.damage.is_a?(Numeric)
if skill.int_f > 0 && SHELL_IDS.any? {|i| @states.include?(i)}
self.damage = (self.damage/2).to_i
self.animation_id = SHELL_ANIMATION_ID
end
self.hp -= self.damage
end
end
return result
end
end
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Protect Status by Xelias
# Version: 1.00
# Type: Enhanced Status
# Date: 26.11.2009
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
#
# Compatibility:
#
# 99% compatible with SDK v1.x. 90% compatible with SDK v2.x. Could cause
# problems with exotic CBS-es.
#
#
# Instructions:
#
# - Explanation:
#
# Thanks to this, you can create a "Protect Status" that halves all Physical Damage you take.
# This includes both physical attacks and skills with an intelligence influence of 0.
# You can put an animation on the character affected with Protect just before the magic hits
# - Configuration
#
# PROTECT_IDS - include any IDs of Protect Statuses and separate them with
# commas (i.e. [29])
# PROTECT_ANIMATION_ID - Put the animation id. If you don't want any, make it 0.
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
PROTECT_IDS = [28]
PROTECT_ANIMATION_ID = 210
#==============================================================================
# Game_Battler
#==============================================================================
class Game_Battler
alias skill_effect_protect_skill_later skill_effect
def skill_effect(user, skill)
last_hp = self.hp
last_sr = self.sr if $crls && self.is_a?(Game_Actor)
result = skill_effect_protect_skill_later(user, skill)
if $game_system.PROTECT_STATUS
self.hp = last_hp
self.hp = self.hp
self.sr = last_sr if $crls && self.is_a?(Game_Actor)
if self.damage.is_a?(Numeric)
if skill.int_f == 0 && PROTECT_IDS.any? {|i| @states.include?(i)}
self.damage = (self.damage/2).to_i
self.animation_id = PROTECT_ANIMATION_ID
end
self.hp -= self.damage
end
end
return result
end
alias attack_effect_protect_later attack_effect
def attack_effect(attacker)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
result = attack_effect_protect_later(attacker)
protect_effect(last_hp, last_sr, attacker) if self.damage.is_a?(Numeric)
return result
end
def protect_effect(last_hp, last_sr, object)
if $game_system.PROTECT_STATUS && PROTECT_IDS.any? {|i| @states.include?(i)}
self.hp = last_hp
self.hp = self.hp
self.sr = last_sr if last_sr != nil
self.damage = (self.damage/2)
self.animation_id = PROTECT_ANIMATION_ID
self.hp -= self.damage
end
end
end
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Virus Status Effect by Xelias
# Version: 1.00
# Type: Game Experience Improvement
# Date: 26.9.2006
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# Allows to create a status preventing healing.
#
#
# Configuration:
#
# VIRUS_IDS - the IDs of the Virus status effects
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
VIRUS_IDS = [12]
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#==============================================================================
# Game_Battler
#==============================================================================
class Game_Battler
alias skill_effect_virus_later skill_effect
def skill_effect(user, skill)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
result = skill_effect_virus_later(user, skill)
virus_effect(last_hp, last_sr, skill) if self.damage.is_a?(Numeric)
return result
end
alias item_effect_virus_later item_effect
def item_effect(item, battler = nil)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
if battler == nil
result = item_effect_virus_later(item)
else
result = item_effect_virus_later(item, battler)
end
virus_effect(last_hp, last_sr, item) if self.damage.is_a?(Numeric)
return result
end
def virus_effect(last_hp, last_sr, object)
if $game_system.VIRUS_STATUS && VIRUS_IDS.any? {|i| @states.include?(i)}
self.hp = last_hp
self.hp = self.hp
self.sr = last_sr if last_sr != nil
if self.damage < 0
self.damage = (self.damage*0).to_i
end
self.hp -= self.damage
end
end
end
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# MP Shield Status Effect by Xelias
# Version: 1.00
# Type: Game Experience Improvement
# Date: 26.9.2006
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# When under this status, you never lose HP. However, you lose SP instead. When
# your SP reach 0, this status becomes ineffective.
#
# Configuration:
#
# MP_SHIELD_IDS - the IDs of the MP Shield status effects
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
MP_SHIELD_IDS = [14]
MP_SHIELD_ANIMATION_ID = 210
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#==============================================================================
# Game_Battler
#==============================================================================
class Game_Battler
alias attack_effect_mpshield_later attack_effect
def attack_effect(attacker)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
result = attack_effect_mpshield_later(attacker)
mpshield_effect(last_hp, last_sr, attacker) if self.damage.is_a?(Numeric)
return result
end
alias skill_effect_mpshield_later skill_effect
def skill_effect(user, skill)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
result = skill_effect_mpshield_later(user, skill)
mpshield_effect(last_hp, last_sr, skill) if self.damage.is_a?(Numeric)
return result
end
alias item_effect_mpshield_later item_effect
def item_effect(item, battler = nil)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
if battler == nil
result = item_effect_mpshield_later(item)
else
result = item_effect_mpshield_later(item, battler)
end
mpshield_effect(last_hp, last_sr, item) if self.damage.is_a?(Numeric)
return result
end
def mpshield_effect(last_hp, last_sr, object)
if $game_system.MP_SHIELD_STATUS && MP_SHIELD_IDS.any? {|i| @states.include?(i)}
self.hp = last_hp
self.hp = self.hp
self.sr = last_sr if last_sr != nil
if self.sp > 0 && self.damage > 0
self.animation_id = MP_SHIELD_ANIMATION_ID
self.sp -= self.damage
else
self.hp -= self.damage
end
end
end
end
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Spike Status by Xelias
# Version: 1.00
# Type: Enhanced Status
# Date: 26.11.2009
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
#
# Compatibility:
#
# 99% compatible with SDK v1.x. 90% compatible with SDK v2.x. Could cause
# problems with exotic CBS-es.
#
#
# Instructions:
#
# - Explanation:
#
# This allows to create a Spike Status. It inflicts damage to your opponent every time
# he or she attacks or uses a special skill. You can also set a special animation to hit
# the opponent
# - Configuration
#
# SPIKES_IDS - include any IDs of Spikes Statuses and separate them with
# commas (i.e. [29])
# SPIKES_ANIMATION_ID - Put the animation id. If you don't want any, make it 0.
# SPIKES_PROTECTION - Set to true if you want to lower the damage taken by the
# damage inflected by the spikes. Set false if you don't.
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
SPIKES_IDS = [13]
SPIKES_ANIMATION_ID = 210
SPIKES_PROTECTION = false
#==============================================================================
# Game_Battler
#==============================================================================
class Game_Battler
alias skill_effect_spikes_skill_later skill_effect
def skill_effect(user, skill)
last_hp = self.hp
last_sr = self.sr if $crls && self.is_a?(Game_Actor)
result = skill_effect_spikes_skill_later(user, skill)
if $game_system.SPIKES_STATUS
self.hp = last_hp
self.hp = self.hp
self.sr = last_sr if $crls && self.is_a?(Game_Actor)
if self.damage.is_a?(Numeric)
if skill.int_f == 0 && SPIKES_IDS.any? {|i| @states.include?(i)}
user.damage = ( ( [self.pdef - user.pdef / 2, 0].max )* (20 + self.str) / 20 ) /10
user.hp -= user.damage
user.animation_id = SPIKES_ANIMATION_ID
if SPIKES_PROTECTION
self.damage -= user.damage
end
end
self.hp -= self.damage
end
end
return result
end
alias attack_effect_spikes_later attack_effect
def attack_effect(attacker)
last_hp = self.hp
last_sr = (($crls && self.is_a?(Game_Actor)) ? self.sr : nil)
result = attack_effect_spikes_later(attacker)
spikes_effect(last_hp, last_sr, attacker) if self.damage.is_a?(Numeric)
return result
end
def spikes_effect(last_hp, last_sr, object)
if $game_system.SPIKES_STATUS && SPIKES_IDS.any? {|i| @states.include?(i)}
self.hp = last_hp
self.hp = self.hp
self.sr = last_sr if last_sr != nil
object.damage = ( ( [self.pdef - object.pdef / 2, 0].max )* (20 + self.str) / 20 ) /10
object.hp -= object.damage
object.animation_id = SPIKES_ANIMATION_ID
if SPIKES_PROTECTION
self.damage -= object.damage
end
self.hp -= self.damage
end
end
end
Thank you for the Dot fix.