# ================================================= =============================# +++ MOG - ACTOR PICTURE CM (v2.1) +++# ================================================= =============================# By Moghunter#
Https://atelierrgss.wordpress.com/# ================================================= =============================# Displays the image of the character while selecting commands with animated effects.# ================================================= =============================# ● Setting the name of the images of battlers.# ================================================= =============================# 1 - Images should be saved in the folder## GRAPHICS / PICTURES## 2 - Name the image files as follows.### ACTOR + ID## EG## ACTOR1.png## ================================================= =============================# ● History (Version History)# ================================================= =============================# V2.1 - Improved coding.# V2.0 - Correction of not updating the images of the battlers when you add or remove a battler in the middle of battle.# ================================================= =============================module MOG_ACTOR_PICTURE_CM # Battler image position. (To make adjustments) PICTURE_POSITION = [0, 0] # Definition image opacity. PICTURE_OPACITY = 255 # Speed of slide SLIDE_SPEED = 40 # Enable the effect of breathing image. BREATH_EFFECT = true # Image priority setting on the screen. PICTURE_PRIORITY_Z = 101end$imported = {} if $imported.nil?$imported[:actor_picture_cm] = true#===============================================================================# ■ Game Temp#===============================================================================class Game_Temp attr_accessor :bpicture_cm_need_refresh #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- alias mog_battler_cm_initialize initialize def initialize @bpicture_cm_need_refresh = false mog_battler_cm_initialize end end#===============================================================================# ■ Sprite_Battler_CM#===============================================================================class Sprite_Battler_CM < Sprite include MOG_ACTOR_PICTURE_CM #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- def initialize(viewport = nil,battler_id = -1) super(viewport) filename = "Actor" + battler_id.to_s self.bitmap = Cache.picture(filename) rescue nil self.bitmap = Cache.picture("") if self.bitmap == nil sc = (Graphics.width / 2) - (self.bitmap.width / 2) + PICTURE_POSITION[0] @size = [self.bitmap.width + PICTURE_POSITION[0] ,sc] self.visible = false ; self.opacity = 0 ; self.z = PICTURE_PRIORITY_Z self.ox = 0 ; self.oy = self.bitmap.height ; self.x = -@size[0] self.y = (Graphics.height + 10) + PICTURE_POSITION[1] ; @cm_visible = false @breach_effect = [1.0,0] ; @battler_id = battler_id ; @active = false end #-------------------------------------------------------------------------- # ● Dispose #-------------------------------------------------------------------------- def dispose super self.bitmap.dispose end #-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- def update super update_slide end #-------------------------------------------------------------------------- # ● Active Battler #-------------------------------------------------------------------------- def active_battler(battler_id) @active = @battler_id == battler_id ? true : false self.visible = true if @active ; @cm_visible = false if !@active end #-------------------------------------------------------------------------- # ● Refresh Battler CM #-------------------------------------------------------------------------- def refresh_battler(cm_visible, battler_index) @cm_visible = cm_visible active_battler(battler_index) end #-------------------------------------------------------------------------- # ● Update Slide #-------------------------------------------------------------------------- def update_slide if !@cm_visible self.x -= SLIDE_SPEED if self.x > -@size[0] self.opacity -= 25 if self.x <= -@size[0] or self.opacity == 0 self.visible = false ; self.opacity = 0 ; self.x = -@size[0] end else self.x += SLIDE_SPEED if self.x < @size[1] self.x = @size[1] if self.x > @size[1] self.opacity += 10 if self.opacity < PICTURE_OPACITY self.opacity = PICTURE_OPACITY if self.opacity > PICTURE_OPACITY update_breath_effect end self.visible = false if can_force_hide? end #-------------------------------------------------------------------------- # ● Can Force Hide #-------------------------------------------------------------------------- def can_force_hide? return true if $game_temp.blitz_commands_phase if $imported[:mog_blitz_commands] return true if $game_temp.chain_action_phase if $imported[:mog_active_chain] return false end #-------------------------------------------------------------------------- # ● Update Breath Effect #-------------------------------------------------------------------------- def update_breath_effect return if !BREATH_EFFECT @breach_effect[1] += 1 case @breach_effect[1] when 0..30 ; @breach_effect[0] += 0.0004 when 31..50 ; @breach_effect[0] -= 0.0004 else ; @breach_effect[1] = 0 ; @breach_effect[0] = 1.truncate end self.zoom_y = @breach_effect[0] end #-------------------------------------------------------------------------- # ● Force Hide #-------------------------------------------------------------------------- def force_hide @cm_visible = false ; self.visible = false ; self.x = -@size[0] self.opacity = 0 end end#===============================================================================# ■ Spriteset_Battle#===============================================================================class Spriteset_Battle #-------------------------------------------------------------------------- # ● Create Actors #-------------------------------------------------------------------------- alias mog_battler_cm_create_actors create_actors def create_actors mog_battler_cm_create_actors create_battler_pictures end #-------------------------------------------------------------------------- # ● Dispose #-------------------------------------------------------------------------- alias mog_battler_cm_dispose dispose def dispose mog_battler_cm_dispose dispose_battler_cm end #-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- alias mog_battler_cm_update update def update mog_battler_cm_update update_battler_cm end #-------------------------------------------------------------------------- # ● Create Battler Pictures #-------------------------------------------------------------------------- def create_battler_pictures @battler_pictures = [] for i in $game_party.battle_members @battler_pictures.push(Sprite_Battler_CM.new(nil,i.id)) end end #-------------------------------------------------------------------------- # ● Dispose Battler CM #-------------------------------------------------------------------------- def dispose_battler_cm return if @battler_pictures == nil @battler_pictures.each {|sprite| sprite.dispose if sprite != nil } end #-------------------------------------------------------------------------- # ● Update Battler CM #-------------------------------------------------------------------------- def update_battler_cm refresh_battler_cm if $game_temp.bpicture_cm_need_refresh return if @battler_pictures == nil @battler_pictures.each {|sprite| sprite.update } end #-------------------------------------------------------------------------- # ● Update CM Pictures #-------------------------------------------------------------------------- def update_cm_picture(cm_visible, battler_index) return if @battler_pictures == nil @battler_pictures.each {|sprite| sprite.refresh_battler(cm_visible, battler_index) } end #-------------------------------------------------------------------------- # ● CM Force Hide #-------------------------------------------------------------------------- def cm_force_hide return if @battler_pictures == nil @battler_pictures.each {|sprite| sprite.force_hide } end #-------------------------------------------------------------------------- # ● Refresh Battler CM #-------------------------------------------------------------------------- def refresh_battler_cm $game_temp.bpicture_cm_need_refresh = false dispose_battler_cm ; create_battler_pictures end end#===============================================================================# ■ Scene_Battle#===============================================================================class Scene_Battle < Scene_Base if $imported["YEA-CommandEquip"] #-------------------------------------------------------------------------- # * Command Equip #-------------------------------------------------------------------------- alias mog_yfcm_command_equip command_equip def command_equip @spriteset.cm_force_hide mog_yfcm_command_equip end end #-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- alias mog_cm_picture_update_basic update_basic def update_basic mog_cm_picture_update_basic update_picture_visible end #-------------------------------------------------------------------------- # ● Update Battler CM Active #-------------------------------------------------------------------------- def update_picture_visible return if @actor_command_window.nil? cm_visible = can_cm_picture_visible? cm_id = BattleManager.actor.id rescue -1 @spriteset.update_cm_picture(cm_visible, cm_id) end #-------------------------------------------------------------------------- # ● Can CM Picture Visible #-------------------------------------------------------------------------- def can_cm_picture_visible? if $imported[:mog_atb_system] return false if $game_system.atb_type != 0 return false if $game_message.visible return false if $game_temp.battle_end return false if $game_temp.end_phase_duration[1] > 0 end return false if $imported[:mog_active_chain] and $game_temp.active_chain return false if $imported[:mog_blitz_commands] and $game_temp.blitz_commands_phase return false if @party_command_window.active return false if BattleManager.actor.nil? return false if @actor_window.active return false if @enemy_window.active return true if @actor_command_window.active return true if @item_window.active return true if @skill_window.active return false end end#==============================================================================# ** Game Interpreter#==============================================================================class Game_Interpreter #-------------------------------------------------------------------------- # ● Command_129 #-------------------------------------------------------------------------- alias mog_bpic_cm_command_129 command_129 def command_129 mog_bpic_cm_command_129 $game_temp.bpicture_cm_need_refresh = true if SceneManager.scene_is?(Scene_Battle) end #-------------------------------------------------------------------------- # ● Command 335 #-------------------------------------------------------------------------- alias mog_bpic_cm_command_335 command_335 def command_335 mog_bpic_cm_command_335 $game_temp.bpicture_cm_need_refresh = true if SceneManager.scene_is?(Scene_Battle) end end#==============================================================================# ** Game Party#==============================================================================class Game_Party < Game_Unit #-------------------------------------------------------------------------- # ● Swap Order #-------------------------------------------------------------------------- alias mog_bpic_cm_swap_order swap_order def swap_order(index1, index2) mog_bpic_cm_swap_order(index1, index2) $game_temp.bpicture_cm_need_refresh = true if SceneManager.scene_is?(Scene_Battle) end end