バ
ト
ル
ポ
イ
ン
ト
概要
バトルポイント(戦闘後に入手できる謎の値)を導入するスクリプトです。
結構様々なイベントに使える…かも。
(↓はBPの入手処理のみです。用途はユーザーにお任せします)
スクリプト
RGSS
セクション:KGC_BattlePoint
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #_/ ◆バトルポイント − KGC_BattlePoint◆ #_/ ◇ Last update : 2007/05/28 ◇ #_/---------------------------------------------------------------------------- #_/ バトルポイント(戦闘で入手できる特殊な値。以下BP)を導入します。 #_/ (BPを取得するための機能です。用途はお任せします) #_/============================================================================ #_/ ≪リザルト画面改造[ResultAlter]≫より下 (リザルト画面にBPを表示する場合) #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #============================================================================== # ★ カスタマイズ項目 ★ #============================================================================== module KGC # ◆BP総計を保存する変数ID # ここで指定した変数にBPを加算。 BP_TOTAL_VARIABLE = 10 # ◆獲得BPを代入する変数ID # nil の場合はエネミー毎の設定値から取得 BP_VARIABLE = nil # ◆BPのデフォルト値 # BP_VARIABLE が nil の場合のみ使用。 BP_DEFAULT = 1 # ◆リザルト画面で取得BPを表示 BP_SHOW_RESULT = true # ◆BPの名称 # リザルト画面で使用します。 BP_NAME = "BP" end #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ $imported = {} if $imported == nil module KGC::BattlePoint FUNCTION_NAME = "BattlePoint" end #============================================================================== # ■ RPG::Enemy #============================================================================== class RPG::Enemy #-------------------------------------------------------------------------- # ● 名前取得 #-------------------------------------------------------------------------- if !$imported[KGC::BattlePoint::FUNCTION_NAME] alias name_KGC_BattlePoint name def name return name_KGC_BattlePoint.gsub(/\[.*\]/) {""} end end #-------------------------------------------------------------------------- # ● オリジナル名取得 #-------------------------------------------------------------------------- def original_name return @name end #-------------------------------------------------------------------------- # ● 所持BP取得 #-------------------------------------------------------------------------- def has_bp return (original_name =~ /\[BP[ ]*(\d+)\]/i) ? $1.to_i : KGC::BP_DEFAULT end end #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ #============================================================================== # ■ Game_Enemy #============================================================================== class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # ● 所持BP取得 #-------------------------------------------------------------------------- def has_bp return $data_enemies[@enemy_id].has_bp end end #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ #============================================================================== # ■ Window_BattleResult #============================================================================== class Window_BattleResult < Window_Base #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- if KGC::BP_SHOW_RESULT alias refresh_KGC_BattlePoint refresh if $imported["ResultAlter"] def refresh(last_level) refresh_KGC_BattlePoint(last_level) self.contents.font.color = system_color cx = self.contents.text_size(KGC::BP_NAME).width + 8 x = 464 - cx self.contents.draw_shadow_text(x, 0, cx, 32, KGC::BP_NAME) cx = contents.text_size($scene.got_bp.to_s).width + 8 x -= cx self.contents.font.color = normal_color self.contents.draw_shadow_text(x, 0, cx, 32, $scene.got_bp.to_s) end else def refresh self.height = @treasures.size * 32 + 96 self.contents.dispose self.contents = Bitmap.new(width - 32, height - 32) self.y = 160 - height / 2 refresh_KGC_BattlePoint x = 4 y = @treasures.size * 32 + 32 self.contents.font.color = normal_color cx = contents.text_size($scene.got_bp.to_s).width + 8 self.contents.draw_text(x, y, cx, 32, $scene.got_bp.to_s) x += cx self.contents.font.color = system_color cx = contents.text_size(KGC::BP_NAME).width + 8 self.contents.draw_text(x, y, cx, 32, KGC::BP_NAME) end end end end #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ #============================================================================== # ■ Scene_Battle (分割定義 2) #============================================================================== class Scene_Battle attr_reader :got_bp #-------------------------------------------------------------------------- # ● アフターバトルフェーズ開始 #-------------------------------------------------------------------------- alias start_phase5_KGC_BattlePoint start_phase5 def start_phase5 @got_bp = calc_get_bp # BP総計に加算 $game_variables[KGC::BP_TOTAL_VARIABLE] += @got_bp # 元の処理を実行 start_phase5_KGC_BattlePoint end #-------------------------------------------------------------------------- # ● 取得BP計算 #-------------------------------------------------------------------------- def calc_get_bp bp = 0 # 変数が設定されている場合 if KGC::BP_VARIABLE != nil # 指定変数から獲得値を取得 bp = $game_variables[KGC::BP_VARIABLE] else # 敵全体の所持BPを取得 $game_troop.enemies.each { |enemy| # 隠れている場合は無視 unless enemy.hidden bp += enemy.has_bp end } end return bp end end #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ $imported[KGC::BattlePoint::FUNCTION_NAME] = true
導入後、カスタマイズ項目を書き換えてください。
敵のBPを設定するには、敵名に
[BPx]
を追加してください。
<例> ゴブリン[BP2]