#============================================================================== # ■ RGSS3 ステート・強化・弱体カウント表示 # LNX11b_リフォーム・バトルステータス併用化 Ver1.00 by 星潟 #------------------------------------------------------------------------------ # ステート・強化・弱体カウント表示のスクリプトと # LNX11b_リフォーム・バトルステータスを併用化する為のスクリプトです。 # ステートスクロールで表示されるステートアイコンに # 正常にステートカウントが描写されるようになります。 #============================================================================== class Window_BattleStatus < Window_Selectable #-------------------------------------------------------------------------- # [再定義]:項目の描画 #-------------------------------------------------------------------------- def draw_item(index) actor = $game_party.battle_members[index] a_status = status(actor) @stc_array = {} if @stc_array == nil @buf_array = {} if @buf_array == nil # ステータスが変化した場合のみ描画する return if @actor_last_status[index] == a_status && (@stc_array[actor] == actor.state_rest_array && @buf_array[actor] == actor.buff_rest_array) @actor_last_status[index] = a_status @stc_array[actor] = actor.state_rest_array @buf_array[actor] = actor.buff_rest_array contents.clear_rect(item_rect(index)) draw_basic_area(basic_area_rect(index), actor) draw_gauge_area(gauge_area_rect(index), actor) end end class Sprite_StateIcon < Sprite_BattleStatus #-------------------------------------------------------------------------- # オブジェクト初期化 #-------------------------------------------------------------------------- alias initialize_rest_draw initialize def initialize(battler, bufwindow, format, viewport = nil) @stc_array = [] @buf_array = [] initialize_rest_draw(battler, bufwindow, format, viewport) end #-------------------------------------------------------------------------- # [再定義]:リフレッシュ #-------------------------------------------------------------------------- def refresh i = icons return if @icons == i && (@stc_array == @battler.state_rest_array && @buf_array == @battler.buff_rest_array) @icons = i @stc_array = @battler.state_rest_array @buf_array = @battler.buff_rest_array i_size = icons_size # ビットマップの作成 bitmap_dispose if self.bitmap && !self.bitmap.disposed? return if i_size == 0 self.visible = true self.bitmap = Bitmap.new(i_size * 24, 24) self.src_rect.set(0, 0, @size * 24, 24) # バッファウィンドウにアイコンの描画 @bufwindow.contents.clear @bufwindow.draw_actor_icons(@battler, 0, 0, @bufwindow.contents_width) # 描画したアイコンをビットマップに転送 self.bitmap.fill_rect(self.bitmap.rect, @background_color) self.bitmap.blt(0, 0, @bufwindow.contents, self.bitmap.rect) @bufwindow.contents.clear reset_scroll end end