Changelog# v1.03b(GMT 1400 10-5-2016): |
# 1. timing while won't replace but will combine the state's existing |
# features with all stax meeting the corresponding stcx |
# v1.03a(GMT 1500 9-5-2016): |
# 1. adding the timing while to <timing state trigger: stcx, stax> |
# v1.02a(GMT 1300 26-2-2016): |
# 1. stcx and stax take the state calling them as an argument as well |
# v1.01b(GMT 0300 7-11-2015): |
# 1. Notetag values are now symbols of methods in the configuration regions |
# 2. This script doesn't need DoubleX RMVXA State Triggers Compatibility to |
# be compatible with all its addressed scripts |
# 3. Further improved this script's compatibility, efficiency and simplicity|
# v1.01a(GMT 1100 8-5-2015): |
# 1. Lets users use state triggers with timings set by them |
# v1.00g(GMT 1600 4-5-2015): |
# 1. Improved this script's efficiency |
# v1.00f(GMT 0300 25-4-2015): |
# 1. Improved this script's effectiveness |
# v1.00e(GMT 1400 21-4-2015): |
# 1. Further improved this script's robustness |
# v1.00d(GMT 1500 14-4-2015): |
# 1. Improved this script's robustness |
# v1.00c(GMT 0200 12-4-2015): |
# 1. Fixed triggering remove actions upon adding state resists bug |
# 2. Fixed not triggering remove actions upon death, escape and recovery bug|
# v1.00b(GMT 1400 11-4-2015): |
# 1. Fixed not supporting multiple notetags on the same state bug |
# v1.00a(GMT 1100 11-4-2015): |
# 1. 1st version of this script finished |
AuthorsDoubleX
CreditsDoubleX(Optional)
PurposeSets some states to trigger additional effects when conditions are met
Games using this scriptNone so far
Notetag# * State Notetags: |
# 1. <timing state trigger: stcx, stax> |
# - Sets a state to trigger stax when timing and stcx are met |
# - timing can be add, turn, remove or custom timings set by you |
# - add means the state's just added |
# - turn means the state's remaining turn's just reduced by 1 |
# - remove means the state's just removed |
# - while means the stax effects are active as long as the state's active|
# - timing must only consist of alphanumeric characters |
# - stcx can be set in State Trigger Condition Notetag Values |
# - stax can be set in State Trigger Action Notetag Values |
#--------------------------------------------------------------------------|
# State Trigger Condition Notetag Values |
# - Setups stcx used by this script's notetags |
#--------------------------------------------------------------------------|
# stcx are read at:
# 1. RPG::State
# - (@state_triggers[$1.downcase.to_sym] ||= []).push(
# [$2.downcase, $3.downcase]) in load_state_triggers_notes
# stcx are used at:
# 1. Game_BattlerBase
# - triggers.any? { |trigger| st.send(trigger[0], self, state) } in
# meet_any_state_trigger?
# - st.send(trigger[0], self, state) in state_trigger_features
# 2. Game_Battler
# - st.send(trigger[1], self) if st.send(trigger[0], self) in
# exec_state_triggers
# stcx are strings names of methods under DoubleX_RMVXA::State_Triggers
# stcx names can only use alphanumeric characters and can't use uppercase
# letters
# battler is the battler calling the stcx
# state is the state using the stcx
# The below stcx are examples added to help you set your stcx
# You can freely use, rewrite and/or delete these examples
# Sets the state trigger condition as always true
def self.stc1(battler, state)
true
end
# Sets the state trigger condition as always false
def self.stc2(battler, state)
false
end
# Sets the state trigger condition as needing switch with id x to be on
def self.stc3(battler, state)
$game_switches[x]
end
# Sets the state trigger condition as needing the state using this stcx to
# have its number of remaining turns greater than x
def self.stc4(battler, state)
battler.instance_exec { @state_turns[state_id] > x }
end
# Adds new stcx here
#--------------------------------------------------------------------------|
# State Trigger Action Notetag Values |
# - Setups stax used by this script's notetags |
#--------------------------------------------------------------------------|
# stax are read at:
# 1. RPG::State
# - (@state_triggers[$1.downcase.to_sym] ||= []).push(
# [$2.downcase, $3.downcase]) in load_state_triggers_notes
# stax are used at:
# 1. Game_BattlerBase
# - }.collect! { |trigger| st.send(trigger[1], self, state) }.flatten! in
# state_trigger_features
# 2. Game_Battler
# - st.send(trigger[1], self) if st.send(trigger[0], self) in
# exec_state_triggers
# stax are strings of names of methods under DoubleX_RMVXA::State_Triggers
# stax names can only use alphanumeric characters and can't use uppercase
# letters
# battler is the battler calling the stax
# state is the state using the stax
# If the timing using the stax is while, the stax must return an array of
# RPG::BaseItem::Feature
# You can refer to Game_BattlerBase and RPG::BaseItem::Feature for more info
# The below stax are examples added to help you set your stax
# You can freely use, rewrite and/or delete these examples
# Sets the state trigger action as what Special Effect Escape does
# This stax's not supposed to work with the timing while as it doesn't
# return an array of RPG::BaseItem::Feature
def self.sta1(battler, state)
battler.hide
end
# Sets the state trigger action as calling common event with id
# common_event_id
# This stax's not supposed to work with the timing while as it doesn't
# return an array of RPG::BaseItem::Feature
def self.sta2(battler, state)
$game_temp.reserve_common_event(common_event_id)
end
# Sets the state trigger action as executing damage equal to the value of
# game variable with id x to self with type equal to that of skill with id
# equal to y
# This stax's not supposed to work with the timing while as it doesn't
# return an array of RPG::BaseItem::Feature
def self.sta3(battler, state)
battler.result.clear
battler.result.make_damage($game_variables[x], $data_skills[y])
battler.execute_damage(battler)
end
# Sets the state trigger action as multiplying the battler's atk by x * 100%
# This stax's supposed to work with the timing while as it returns an array
# of RPG::BaseItem::Feature
def self.sta4(battler, state)
[RPG::BaseItem::Feature.new(21, 2, x)]
end
# Adds new stax here
Script Call# * Battler manipulations |
# 1. exec_state_triggers(state_id, timing) |
# - Executes all state triggers with timing timing of state with id |
# state_id |
# 2. meet_any_state_trigger?(state, timing) |
# - Checks if any stcx with timing timing of state state is met |
# 3. state_trigger_features(state, timing) |
# - Returns an array of features returned by all stax meeting stcx with |
# timing timing of state |
# - This script call's not supposed to work with timing add, turn nor |
# remove but supposed to work with timing while |
PrerequisitesAbilities:
1. Decent 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.