Always Gain Exact TP on Skill Use
by lilyWhite
VX Ace gives you the option for skills to give the user TP when used, setting a specific value in the Database. There are two particular quirks to this, however, which may not fit everyone's needs. TP is only granted if the skill hits the target—if either the user misses due to their Hit Rate or the skill's Success %, or the target dodges the skill due to Evasion or Magic Evasion, the user will not gain any TP. If a skill hits multiple targets, the user will receive the TP Gain value with each successful hit, and thus a skill gains much more TP on many targets than fewer targets, whether or not its effectiveness or cost is affected by the number of targets.
This script alters how VX Ace gives TP to characters through skill use. The user will receive the TP Gain value (modified by their TP Charge Rate) once upon use of the skill, whether or not it hits or is evaded. The script also allows you to set whether or not actors will gain TP for use of skills outside of battle. By default, it is set to false. (And remember, VX Ace resets actors' TP at the start of battle unless they have the "Preserve TP" trait.)
Free for use in any commercial or non-commercial project! Credit to "lilyWhite"; I reserve the right to be slightly miffed if you get the capitalization wrong. :3
The script is within the spoiler below. Copy into the Script Editor and configure if desired.
=begin
= Always Gain Exact TP on Skill Use, by lilyWhite =
(well, that's a mouthful)
VX Ace allows an actor to gain TP when using an skill. However, by default,
they will only gain TP if the attack hits and isn't evaded, and every
successful hit will add the TP Gain value, resulting in significantly more TP
when there are more enemies.
This simple little scripts alters the way TP is added to an actor. TP will
only be added once upon activation of the skill, regardless of whether or not
the skill successfully hits or is evaded by the target. The user's TP Charge
Rate (TCR) still applies to received TP.
There is an option to allow actors to gain TP when using a skill out of
battle. By default, it is set to false. Remember that, by default, VX Ace
resets actors' TP at the beginning of battle if they do not have the
"Preserve TP" trait.
Usage: Free to use in any commercial or non-commercial project! Credit to
"lilyWhite"; I reserve the right to be slightly miffed if you get the
capitalization wrong. :3
=end
module DumbTpScript
# Will the actor gain TP when a skill is used out of battle? False by default.
GAIN_TP_OUT_OF_BATTLE = false
end
#--------------------------------------------------------------------------
# Don't edit below here, unless you know what you're doing.
# (Then again, even I don't.)
#--------------------------------------------------------------------------
class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# * Use Skill/Item
# Called for the acting side and applies the effect to other than the user.
#--------------------------------------------------------------------------
alias use_item_get_tp use_item
def use_item(item)
use_item_get_tp(item)
get_tp = DumbTpScript::GAIN_TP_OUT_OF_BATTLE
if item.is_a?(RPG::Skill)
if get_tp == true
user_gain_tp(item)
else
user_gain_tp(item) if $game_party.in_battle == true
end
end
end
#--------------------------------------------------------------------------
# * Overwrite item_user_effect...to do NOTHING! To ensure compatibility.
# Hopefully!
#--------------------------------------------------------------------------
def item_user_effect(user, item)
end
#--------------------------------------------------------------------------
# * New method to add TP.
#--------------------------------------------------------------------------
def user_gain_tp(item)
self.tp += item.tp_gain * self.tcr
end
end