じ☆ve冰风 发表于 2026-8-1 13:21:59

Always Gain Exact TP on Skill Use

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.

Spoiler=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






本贴来自国际rpgmaker官方论坛作者:stupid enough to like FF13处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/always-gain-exact-tp-on-skill-use.59031/
页: [1]
查看完整版本: Always Gain Exact TP on Skill Use