赞 | 27 |
VIP | 1 |
好人卡 | 3 |
积分 | 91 |
经验 | 33012 |
最后登录 | 2023-4-30 |
在线时间 | 1860 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 9058
- 在线时间
- 1860 小时
- 注册时间
- 2010-7-18
- 帖子
- 974
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
這個RGSS是進入戰斗執行攻擊的時候上面才會出現狀態信息
哪位可以改成一進入戰斗就顯示阿....- #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
- #_/ ◆ オンスクリーンステータス - KGC_OnScreenStatus ◆ VX ◆
- #_/ ◇ Last update : 2009/01/02 ◇
- #_/----------------------------------------------------------------------------
- #_/ 戦闘行動中、画面上にアクターのステータスを表示します。
- #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
- #==============================================================================
- # ★ カスタマイズ項目 - Customize BEGIN ★
- #==============================================================================
- module KGC
- module OnScreenStatus
- # ◆ ウィンドウの配置
- # 0..左揃え、1..中央揃え、2..右揃え
- WINDOW_ALIGN = 0
- # ◆ アクター一人分の横幅
- WIDTH_PER_ACTOR = 92
- # ◆ MP を表示する
- SHOW_MP = true
- # ◆ ステートを表示する
- SHOW_STATE = false
- # ◆ 消費した MP を反映するタイミング
- # 0..スキル発動時 1..行動終了後
- # 0 にしてバグる場合は 1 を使用してください。
- SKILL_MP_COST_APPLY_TIMING = 0
- end
- end
- #==============================================================================
- # ☆ カスタマイズ項目終了 - Customize END ☆
- #==============================================================================
- $imported = {} if $imported == nil
- $imported["OnScreenStatus"] = true
- #==============================================================================
- # □ Window_OnScreenBattleStatus
- #------------------------------------------------------------------------------
- # 戦闘行動中にパーティメンバーのステータスを表示するウィンドウです。
- #==============================================================================
- class Window_OnScreenBattleStatus < Window_Selectable
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- #--------------------------------------------------------------------------
- def initialize
- wh = 32 + WLH * 2
- wh += WLH if KGC::OnScreenStatus::SHOW_MP
- wh += WLH if KGC::OnScreenStatus::SHOW_STATE
- super(0, 0, 64, wh, 8)
- @item_max = 0
- @column_max = 1
- refresh
- self.back_opacity = 160
- self.openness = 0
- self.active = false
- end
- #--------------------------------------------------------------------------
- # ● 名前の描画
- # actor : アクター
- # x : 描画先 X 座標
- # y : 描画先 Y 座標
- # width : 幅
- #--------------------------------------------------------------------------
- def draw_actor_name(actor, x, y, width = 108)
- if $imported["OverDrive"]
- draw_actor_od_gauge(actor, x, y, width)
- end
- self.contents.font.color = hp_color(actor)
- self.contents.draw_text(x, y, width, WLH, actor.name)
- end
- #--------------------------------------------------------------------------
- # ● 項目を描画する矩形の取得
- # index : 項目番号
- #--------------------------------------------------------------------------
- def item_rect(index)
- rect = Rect.new(0, 0, KGC::OnScreenStatus::WIDTH_PER_ACTOR, height - 32)
- rect.x = index % @column_max * (rect.width + @spacing)
- return rect
- end
- #--------------------------------------------------------------------------
- # ● リフレッシュ
- #--------------------------------------------------------------------------
- def refresh
- last_item_max = @item_max
- @item_max = $game_party.members.size
- if @item_max != last_item_max
- # メンバー数が変化したらウィンドウサイズ変更
- self.width =
- (KGC::OnScreenStatus::WIDTH_PER_ACTOR + @spacing) * @item_max + 32
- @column_max = @item_max
- create_contents
- else
- self.contents.clear
- end
- @item_max.times { |i| draw_item(i) }
- # 表示座標調整
- case KGC::OnScreenStatus::WINDOW_ALIGN
- when 0
- self.x = 0
- when 1
- self.x = (Graphics.width - self.width) / 2
- when 2
- self.x = Graphics.width - self.width
- end
- end
- #--------------------------------------------------------------------------
- # ● 項目の描画
- # index : 項目番号
- #--------------------------------------------------------------------------
- def draw_item(index)
- rect = item_rect(index)
- self.contents.clear_rect(rect)
- self.contents.font.color = normal_color
- actor = $game_party.members[index]
- cw = KGC::OnScreenStatus::WIDTH_PER_ACTOR
- draw_actor_name(actor, rect.x, rect.y, cw)
- rect.y += WLH
- draw_actor_hp(actor, rect.x, rect.y, cw)
- if KGC::OnScreenStatus::SHOW_MP
- rect.y += WLH
- draw_actor_mp(actor, rect.x, rect.y, cw)
- end
- if KGC::OnScreenStatus::SHOW_STATE
- rect.y += WLH
- draw_actor_state(actor, rect.x, rect.y, cw)
- end
- end
- #--------------------------------------------------------------------------
- # ○ 再描画
- # actor : 対象アクター
- #--------------------------------------------------------------------------
- def redraw(actor)
- draw_item(actor.index)
- end
- end
- #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
- #==============================================================================
- # ■ Scene_Battle
- #==============================================================================
- class Scene_Battle < Scene_Base
- #--------------------------------------------------------------------------
- # ● 開始処理
- #--------------------------------------------------------------------------
- alias start_KGC_OnScreenStatus start
- def start
- # オンスクリーンウィンドウを作成
- @onscreen_status_window = Window_OnScreenBattleStatus.new
- @onscreen_status_refresh_request = false
- start_KGC_OnScreenStatus
- end
- #--------------------------------------------------------------------------
- # ● 終了処理
- #--------------------------------------------------------------------------
- alias terminate_KGC_OnScreenStatus terminate
- def terminate
- @onscreen_status_window.dispose
- terminate_KGC_OnScreenStatus
- end
- #--------------------------------------------------------------------------
- # ● 基本更新処理
- # main : メインの update メソッドからの呼び出し
- #--------------------------------------------------------------------------
- alias update_basic_KGC_OnScreenStatus update_basic
- def update_basic(main = false)
- update_basic_KGC_OnScreenStatus(main)
- if $game_troop.interpreter.running?
- @onscreen_status_window.close
- @onscreen_status_refresh_request = true
- end
- @onscreen_status_window.update
- end
- #--------------------------------------------------------------------------
- # ● 戦闘処理の実行開始
- #--------------------------------------------------------------------------
- alias start_main_KGC_OnScreenStatus start_main
- def start_main
- @onscreen_status_window.refresh
- start_main_KGC_OnScreenStatus
- end
- #--------------------------------------------------------------------------
- # ● 戦闘行動の処理
- #--------------------------------------------------------------------------
- alias process_action_KGC_OnScreenStatus process_action
- def process_action
- if @onscreen_status_refresh_request
- @onscreen_status_window.refresh
- @onscreen_status_refresh_request = false
- end
- @onscreen_status_window.open
- process_action_KGC_OnScreenStatus
- update_onscreen_status(@active_battler)
- end
- #--------------------------------------------------------------------------
- # ● ターン終了
- #--------------------------------------------------------------------------
- alias turn_end_KGC_OnScreenStatus turn_end
- def turn_end
- @onscreen_status_window.close
- turn_end_KGC_OnScreenStatus
- end
- #--------------------------------------------------------------------------
- # ● 戦闘行動の実行 : スキル
- #--------------------------------------------------------------------------
- alias execute_action_skill_KGC_OnScreenStatus execute_action_skill
- def execute_action_skill
- # 行動前に MP を反映する場合
- if KGC::OnScreenStatus::SKILL_MP_COST_APPLY_TIMING == 0
- # MP を仮消費してステータスを更新
- last_mp = @active_battler.mp
- skill = @active_battler.action.skill
- @active_battler.mp -= @active_battler.calc_mp_cost(skill)
- update_onscreen_status(@active_battler)
- # 消費前に戻す
- @active_battler.mp = last_mp
- end
- execute_action_skill_KGC_OnScreenStatus
- # 行動後に MP を反映する場合
- if KGC::OnScreenStatus::SKILL_MP_COST_APPLY_TIMING == 1
- update_onscreen_status(@active_battler)
- end
- end
- #--------------------------------------------------------------------------
- # ○ オンスクリーンステータスを更新
- # target : 対象者
- #--------------------------------------------------------------------------
- def update_onscreen_status(target)
- if target.is_a?(Game_Actor)
- @onscreen_status_window.redraw(target)
- elsif $imported["CooperationSkill"] &&
- target.is_a?(Game_CooperationBattler)
- @onscreen_status_window.refresh
- end
- end
- #--------------------------------------------------------------------------
- # ● HP ダメージ表示
- # target : 対象者
- # obj : スキルまたはアイテム
- #--------------------------------------------------------------------------
- alias display_hp_damage_KGC_OnScreenStatus display_hp_damage
- def display_hp_damage(target, obj = nil)
- update_onscreen_status(target)
- if target.absorbed
- # 吸収の場合は行動者も更新
- update_onscreen_status(@active_battler)
- end
- display_hp_damage_KGC_OnScreenStatus(target, obj)
- end
- #--------------------------------------------------------------------------
- # ● MP ダメージ表示
- # target : 対象者
- # obj : スキルまたはアイテム
- #--------------------------------------------------------------------------
- alias display_mp_damage_KGC_OnScreenStatus display_mp_damage
- def display_mp_damage(target, obj = nil)
- update_onscreen_status(target)
- if target.absorbed
- # 吸収の場合は行動者も更新
- update_onscreen_status(@active_battler)
- end
- display_mp_damage_KGC_OnScreenStatus(target, obj)
- end
- #--------------------------------------------------------------------------
- # ● ステート変化の表示
- # target : 対象者
- # obj : スキルまたはアイテム
- #--------------------------------------------------------------------------
- alias display_state_changes_KGC_OnScreenStatus display_state_changes
- def display_state_changes(target, obj = nil)
- update_onscreen_status(target)
- display_state_changes_KGC_OnScreenStatus(target, obj)
- end
- end
复制代码 |
|