#============================================================================== # ■ RGSS3 HP/MP/TP無限化特徴 Ver1.00 by 星潟 #------------------------------------------------------------------------------ # HP/MP/TPが最大値に固定される特徴を作成します。 #============================================================================== # 特徴を有する項目のメモ欄に設定。 #------------------------------------------------------------------------------ # # # HPを無限化します。この状態ではHPが最大値に固定され # いくらダメージを受けても倒される事がなくなります。 # ステートの付与で戦闘不能が付与されても即座に蘇ります。 # 表示上不都合がある場合、ステートの無効で戦闘不能の有効度を0にする等で # 戦闘不能そのものにならなくさせる事で対策を取るのが良いと思います。 #------------------------------------------------------------------------------ # # # MPを無限化します。この状態ではMPが最大値に固定され # いくらMPを消費しても尽きる事が無くなります。 # MP無消費化との大きな違いは以下の通りとなります。 # # - 最大MPを超えるスキルは使用出来ない。 # - MPダメージによってMPが減る事が無い。(無限にMPを吸収出来る) #------------------------------------------------------------------------------ # # # TPを無限化します。この状態ではTPが最大値に固定され # いくらTPを消費しても尽きる事が無くなります。 #============================================================================== module InfinityHMT #空の配列を用意。 Words = [] #HP無限化用のキーワードを指定。 Words.push("HP無限化") #MP無限化用のキーワードを指定。 Words.push("MP無限化") #TP無限化用のキーワードを指定。 Words.push("TP無限化") end class Game_BattlerBase #-------------------------------------------------------------------------- # リフレッシュ #-------------------------------------------------------------------------- alias refresh_hmt_infinity refresh def refresh @hp_infinity = nil @mp_infinity = nil @tp_infinity = nil feature_objects.each {|f| @hp_infinity ||= f.hmt_infinity?[0] @mp_infinity ||= f.hmt_infinity?[1] @tp_infinity ||= f.hmt_infinity?[2]} if @hp_infinity @last_mhp = mhp @hp = @last_mhp.to_i end if @mp_infinity @last_mmp = mmp @mp = @last_mmp.to_i end if @tp_infinity @last_mtp = max_tp @tp = @last_mtp.to_i end refresh_hmt_infinity end #-------------------------------------------------------------------------- # 現在HPを取得 #-------------------------------------------------------------------------- alias hp_hmt_infinity hp def hp @hp_infinity ? @last_mhp : hp_hmt_infinity end #-------------------------------------------------------------------------- # 現在MPを取得 #-------------------------------------------------------------------------- alias mp_hmt_infinity mp def mp @mp_infinity ? @last_mmp : mp_hmt_infinity end #-------------------------------------------------------------------------- # 現在TPを取得 #-------------------------------------------------------------------------- alias tp_hmt_infinity tp def tp @tp_infinity ? @last_mtp : tp_hmt_infinity end #-------------------------------------------------------------------------- # HP割合を取得 #-------------------------------------------------------------------------- alias hp_rate_hmt_infinity hp_rate def hp_rate @hp_infinity ? 1.0 : hp_rate_hmt_infinity end #-------------------------------------------------------------------------- # MP割合を取得 #-------------------------------------------------------------------------- alias mp_rate_hmt_infinity mp_rate def mp_rate @mp_infinity ? 1.0 : mp_rate_hmt_infinity end #-------------------------------------------------------------------------- # TP割合を取得 #-------------------------------------------------------------------------- alias tp_rate_hmt_infinity tp_rate def tp_rate @tp_infinity ? 1.0 : tp_rate_hmt_infinity end end class RPG::BaseItem #-------------------------------------------------------------------------- # HP/MP/TPの無限化フラグを取得 #-------------------------------------------------------------------------- def hmt_infinity? @hmt_infinity ||= create_hmt_infinity end #-------------------------------------------------------------------------- # HP/MP/TPの無限化フラグを作成 #-------------------------------------------------------------------------- def create_hmt_infinity a = [] InfinityHMT::Words.each {|w| a.push(/<#{w}>/ =~ note ? true : nil)} a end end