Changelog# v1.00b(GMT 0400 8-11-2015): |
# 1. Notetag values are now symbols of methods in the configuration regions |
# 2. This script doesn't need DoubleX RMVXA Linked Battlers Compatibility to|
# be compatible with all its addressed scripts |
# 3. Further improved this script's compatibility, efficiency and simplicity|
# v1.00a(GMT 1500 7-8-2015): |
# 1. 1st version of this script finished |
AuthorsDoubleX
CreditsDoubleX(Optional)
PurposeLets users set some states to make their owners share some stats together
Games using this scriptNone so far
Notetag# * State Notetags: |
# 1. <linked battlers: lbcx, lbsx, lbwx> |
# - Sets the owners of this state meeting lbcx to share stats included in|
# lbsx with weight lbwx applied to each of them when any included stat |
# of any included battler changes |
# - Only the 1st applicable notetag of the state with the highest |
# priority will be applied to the stat change of the linked battler |
# - If a linked battler can't take all of that battler's share due to |
# hitting the minimum or maximum stat value, thost not being taken by |
# that battler will be shared by the rest of the linked battlers also |
# - The battler having a stat to be changed is the last linked battler |
# taking that battler's share |
# - lbcx can be set in Linked Battler Condition Notetag Values |
# - lbsx can be set in Linked Battler Stat Notetag Values |
# - lbwx can be set in Linked Battler Weight Notetag Values |
#--------------------------------------------------------------------------|
# Linked Battler Condition Notetag Values |
# - Setups lbcx used by <linked battlers: lbcx, lbsx, lbwx> |
#--------------------------------------------------------------------------|
# lbcx are read at:
# 1. RPG::State
# - @linked_battlers << [$1.downcase.to_sym, $2.downcase.to_sym,
# $3.downcase.to_sym] in load_linked_battlers_notes
# lbcx are used at:
# 1. Game_BattlerBase
# - mem.state?(state_id) && lb.send(cond, mem, self) in
# get_linked_battlers
# lbcx are strings of names of methods under DoubleX_RMVXA::Linked_Battlers
# lbcx names can only use alphanumeric characters and can't use uppercase
# letters
# The battler having a stat to be changed can be referenced by target
# Each of the rest of the linked battlers can be referenced by battler
# The below lbcx are examples added to help you set your lbcx
# You can freely use, rewrite and/or delete these examples
# Sets the linked battler condition to include all linked battlers
def self.lbc1(battler, target)
true
end
# Sets the linked battler condition to include all and no linked battlers if
# switch with id x is on and off respectively
def self.lbc2(battler, target)
$game_switches[x]
end
# Sets the linked battler condition to include all linked battlers that are
# opponents of the battler having a stat to be changed
def self.lbc3(battler, target)
target.opposite?(battler)
end
# Adds new lbcx here
#--------------------------------------------------------------------------|
# Linked Battler Stat Notetag Values |
# - Setups lbsx used by <linked battlers: lbcx, lbsx, lbwx> |
#--------------------------------------------------------------------------|
# lbsx are read at:
# 1. RPG::State
# - @linked_battlers << [$1.downcase.to_sym, $2.downcase.to_sym,
# $3.downcase.to_sym] in load_linked_battlers_notes
# lbsx are used at:
# 1. Game_BattlerBase
# - return [l_b, state_id] if lb.send(l_b[1], self).include?(stat) in
# linked_battler_state_id
# lbsx are strings of names of methods under DoubleX_RMVXA::Linked_Battlers
# lbsx names can only use alphanumeric characters and can't use uppercase
# letters
# The battler having a stat to be changed can be referenced by battler
# It must return an array, which should include strings of a getter method
# of each stat to be included
# The below lbsx are examples added to help you set your lbsx
# You can freely use, rewrite and/or delete these examples
# Sets the linked battler stat to include hp, mp and tp
def self.lbs1(battler)
["hp", "mp", "tp"]
end
# Sets the linked battler stat to always include hp and mp, and include tp
# only if it's displayed in battle
def self.lbs2(battler)
["hp", "mp", $data_system.opt_display_tp ? "tp" : nil]
end
# Sets the linked battler stat to include nothing
def self.lbs3(battler)
[]
end
# Adds new lbsx here
#--------------------------------------------------------------------------|
# Linked Battler Weight Notetag Values |
# - Setups lbwx used by <linked battlers: lbcx, lbsx, lbwx> |
#--------------------------------------------------------------------------|
# lbwx are read at:
# 1. RPG::State
# - @linked_battlers << [$1.downcase.to_sym, $2.downcase.to_sym,
# $3.downcase.to_sym] in load_linked_battlers_notes
# lbwx are used in methods included in LINKED_STAT
# lbwx are strings of names of methods under DoubleX_RMVXA::Linked_Battlers
# lbwx names can only use alphanumeric characters and can't use uppercase
# letters
# It must return a real number
# The battler having a stat to be changed can be referenced by target
# Each of the rest of the linked battlers can be referenced by battler
# The below lbwx are examples added to help you set your lbwx
# You can freely use, rewrite and/or delete these examples
# Sets the linked battler weight to be the same for all linked battlers
def self.lbw1(battler, target)
1
end
# Sets the linked battler weight to be multiplied by x if the linked battler
# is the one having a stat to be changed
def self.lbw2(battler, target)
battler == target ? x : 1
end
# Sets the linked battler weight to be 0 for all linked battlers
def self.lbw3(battler, target)
0
end
# Adds new lbwx here
# Sets the battler methods to be used by linked battlers
# Its keys must be the battler stat getter method string
# Its values must be an array containing the battler stat setter method,
# its argument list, the one being modified, and the minimum and maximum
# value of that battler stat of each linked battler
# The methods returning those minimum and maximum values must be referenced
# by battler
# Methods with name method_name will be aliased to
# linked_battlers_method_name
LINKED_STATS = {
# General form:
# [:def_class, :super_class] => {
# "getter" => ["setter", "args", "mod arg", "stat_min", "stat_max"]
# }
[:Game_BattlerBase] => {
# General form:
# "getter" => ["setter", "args", "mod arg", "stat_min", "stat_max"]
"hp" => ["hp=", "hp", "hp", "0", "battler.mhp"],
"mp" => ["mp=", "mp", "mp", "0", "battler.mmp"],
"tp" => ["tp=", "tp", "tp", "0", "battler.max_tp"]
# Adds new methods here
}
# Adds new classes here
}
Compatibility FixComing Soon
PrerequisitesAbilities:
1. Some RGSS3 scripting proficiency to fully utilize this script
Terms Of UseYou shall:
1. Keep this script's Script Info part's contents intact
You shalln't:
1. Claim that this script is written by anyone other than DoubleX or his aliases
None of the above applies to DoubleX or his/her aliases
InstructionsOpen the script editor and put this script into an open slot between Materials and Main. Save to take effect.