#============================================================================== # ■ RGSS3 TP最大時SE Ver1.00 by 星潟 #------------------------------------------------------------------------------ # TPが最大値になった際に、指定したSEを演奏します。 #============================================================================== # アクター/エネミーのメモ欄に指定。 #------------------------------------------------------------------------------ # # # この場合、このアクター/エネミーはTP100になった際 # SE名「Flash1」を音量80、ピッチ100で演奏します。 # SE名には半角スペースを含まないように注意して下さい。 #============================================================================== module TPMaxSE #TP最大時SEの設定用キーワードを指定。 Word = "TP最大時SE" #戦闘中限定にするかを指定。 #trueで戦闘中限定。 #falseでどこでも。 BattleOnly = true #アクターについて有効にするかを指定。 #trueで有効。 #falseで無効。 ActorValid = true #アクターのデフォルトSEを指定。 #アクターのメモ欄に個別に指定されていない場合はこのSEになります。 #SEファイル名、音量、ピッチの順に指定。 Actor = ["Flash2",80,100] #アクターについて、戦闘メンバーのみにするかを指定。 #trueで戦闘メンバーのみ。 #falseで戦闘メンバー外のアクターでも演奏。 BattleMemberOnly = true #エネミーについて有効にするかを指定。 #trueで有効。 #falseで無効。 EnemyValid = true #エネミーのデフォルトSEを指定。 #エネミーのメモ欄に個別に指定されていない場合はこのSEになります。 #SEファイル名、音量、ピッチの順に指定。 Enemy = ["Flash1",80,100] #行動可能な場合(ステート制限「行動しない」が付与されていない場合)のみ #SEを演奏するかを指定。 #trueで行動可能な場合のみ演奏。 #falseで行動不能な場合でも演奏。 MovableOnly = false #生存扱い(戦闘不能であったり隠れていたりしない)場合のみSEを演奏するかを指定。 #戦闘不能ステートは行動不能ステートとして扱われていると思われるので #基本的にMovableOnlyがfalseの場合でなければ意味を為さないので注意。 #trueで生存扱いの場合のみ演奏。 #falseで生存扱いの場合でなくても演奏。 AliveOnly = false end class Game_BattlerBase #-------------------------------------------------------------------------- # TPの変更 #-------------------------------------------------------------------------- alias tp_change_max_play_se tp= def tp=(tp) flag = @tp && @tp < max_tp tp_change_max_play_se(tp) if flag && @tp && @tp == max_tp se = tp_max_se_data RPG::SE.new(se[0],se[1],se[2]).play if se && !(se.empty? or se[0].empty?) end end #-------------------------------------------------------------------------- # TP最大時SE #-------------------------------------------------------------------------- def tp_max_se_data nil end #-------------------------------------------------------------------------- # TPが最大になった時のアクター・エネミーの共通判定 #-------------------------------------------------------------------------- def tp_max_se_common_condition return nil if TPMaxSE::BattleOnly && $game_party && !$game_party.in_battle return nil if TPMaxSE::MovableOnly && !movable? return nil if TPMaxSE::AliveOnly && !alive? true end end class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # TP最大時SE #-------------------------------------------------------------------------- def tp_max_se_data return nil if !tp_max_se_common_condition or !TPMaxSE::ActorValid or (TPMaxSE::BattleMemberOnly && !battle_member?) a = actor.tp_max_se_data a.empty? ? TPMaxSE::Actor : a end end class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # TP最大時SE #-------------------------------------------------------------------------- def tp_max_se_data return nil if !tp_max_se_common_condition or !TPMaxSE::EnemyValid a = enemy.tp_max_se_data a.empty? ? TPMaxSE::Enemy : a end end class RPG::BaseItem #-------------------------------------------------------------------------- # TP最大時SE #-------------------------------------------------------------------------- def tp_max_se_data @tp_max_se_data ||= /<#{TPMaxSE::Word}[::](\S+),(\d+),(\d+)>/ =~ note ? [$1.to_s,$2.to_i,$3.to_i] : [] end end