Illuminati3301 0 Posted July 18, 2018 So I've downloaded Moghunter's Battler Motion script, and I really love the standby and entrance animations, but there is a problem. I've noticed that every time an attack hits the enemy, it starts to shake voilently, and what I don't like about it is that the shaking is very irregular (it always moves the battler sprite from center to right, never to the left) since I am using the defult RPGM Vx Ace battle engine. And unfortunately, I can't seem to figure out how to either edit that motion so it shakes to both sides of the screen, or remove it altogether. Any clues or help would be greatly appreciated. Here's the script that I'm talking about: # By Moghunter # ===================================================== ============================= # Add animation effects to battler sprites. # ● Initial animation (entry) of battle. # ● Hold animation. # ● Action Animation. # ● Damage animation. # ● Animation of collapse. # ===================================================== ============================= # ===================================================== ============================= # ● History (Version History) # ===================================================== ============================= # v2.1 - Improvement in system animation. # v2.0 - Improved coding. # ===================================================== ============================= # ===================================================== ============================= # ● CONFIGURATION # ===================================================== ============================= # ■ Initial input animation when beginning the battle. # ===================================================== ============================= # Put the following tags in the notes box of the enemies or characters. # # <Motion Appear = X> # # X = 0 # Battler slides horizontally. # # X = 1 # Battler slides vertically. # # X = 2 # Battler rolls (Shift O_o) through the screen. # # X = 3 # Zoom IN # # X = 4 # Zoom Out # # X = 5 # Effect of emerging from the soil. # # ===================================================== ============================= # ■ Battler animations in standby mode. # ===================================================== ============================= # Put the following tags in the notes box of the enemies or characters. # # <Motion Standby = X> # # X = 0 # Activates the battler's breathing effect. # # X = 1 # Activate the levitating battler effect. # # X = 2 # Activate the battler effect by moving sideways. # # ===================================================== ============================= # ■ Battler animations in action mode. # ===================================================== ============================= # Put the following tags in the item or skills notes box. # # <Motion Action = X> # # X = 0 # Activates the zoom action effect. # # X = 1 # Activates the jumping action effect. # # X = 2 # Activates the spin effect to the left. # # X = 3 # Activates the spin effect to the right. # # X = 4 # Activates the shaking effect. # # X = 5 # Activates the front action effect. # # X = 6 # Activate the effect of taking a step to the left. # # X = 7 # Activates the effect of taking a step to the right. # # ===================================================== ============================= # ■ Animations of collapsing battlers. # ===================================================== ============================= # Put the following tags in the notes box of the enemies or characters. # # <Motion Collapse = X> # # X = 0 # Activates vertical collapse. # # X = 1 # Activates collapse horizontally. # # X = 2 # Enables collapse in Zoom OUT. # # X = 3 # Enables collapse in Zoom IN. # # X = 4 # Enables collapse in Zoom IN and Zoom OUT. # # X = 5 # Activates the collapse in Boss Mode. # # X = 6 # Do not trigger collapse. (Do nothing) # # ===================================================== ============================= # ■ Enable damage animation in evil conditions. # ===================================================== ============================= # Put the following tag in the condition notes box to activate the effect # of damage. # # <Bad State> # # ===================================================== ============================= module MOG_BATTLER_MOTION #Enable the effect on allies. ENABLE_ACTOR_MOTION = false #Enable the effect on enemies ENABLE_ENEMY_MOTION = true # Defining the speed of the breathing effect. BREATH_EFFECT_SPEED = 1 #Default 1 # Setting the zoom limit of the effect of breathing. BREATH_EFFECT_RANGE = [0.92, 1.00] #Default [0.92, 1.00] end $imported = {} if $imported.nil? $imported[:mog_battler_motion] = true #============================================================================== # ■ Game_Temp #============================================================================== class Game_Temp attr_accessor :battler_in_motion #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- alias mog_battler_motion_initialize initialize def initialize @battler_in_motion = false mog_battler_motion_initialize end end #============================================================================== # ■ Game_Battler #============================================================================== class Game_Battler < Game_BattlerBase attr_accessor :motion_start attr_accessor :motion_stand attr_accessor :motion_action attr_accessor :motion_damage attr_accessor :motion_collapse attr_accessor :motion_move attr_accessor :motion_org_pos #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- alias mog_motion_animation_initialize initialize def initialize mog_motion_animation_initialize @motion_start = -1 @motion_stand = [-1,0] @motion_action = [-1,0] @motion_collapse = [7,0] @motion_damage = [0,0] @motion_move = [false,0,0] @motion_org_pos = [0,0] end #-------------------------------------------------------------------------- # ● Added New State #-------------------------------------------------------------------------- alias mog_motion_animation_add_new_state add_new_state def add_new_state(state_id) mog_motion_animation_add_new_state(state_id) self.motion_damage[0] = 1 if $data_states[state_id].note =~ /<Bad State>/ end #-------------------------------------------------------------------------- # ● Move To #-------------------------------------------------------------------------- def move_to(x,y) return if self.dead? @motion_move = [true,x,y] end #-------------------------------------------------------------------------- # ● Set Original Position #-------------------------------------------------------------------------- def set_org_pos scx = self.screen_x rescue 0 scy = self.screen_y rescue 0 @motion_opos = [scx,scy] end #-------------------------------------------------------------------------- # ● Return Org #-------------------------------------------------------------------------- def return_org return if self.dead? @motion_move = [true,@motion_opos[0],@motion_opos[1]] end end #============================================================================== # ■ Game_Enemy #============================================================================== class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- alias mog_motion_animation_enemy_initialize initialize def initialize(index, enemy_id) mog_motion_animation_enemy_initialize(index, enemy_id) setup_motion_animation(enemy_id) end #-------------------------------------------------------------------------- # ● Setup Motion Animation #-------------------------------------------------------------------------- def setup_motion_animation(enemy_id) self.motion_stand[0] = $1.to_i if enemy.note =~ /<Motion Standby = (\d+)>/i self.motion_collapse[0] = $1.to_i if enemy.note =~ /<Motion Collapse = (\d+)>/i self.motion_start = $1.to_i if enemy.note =~ /<Motion Appear = (\d+)>/i end end #============================================================================== # ■ Game Actor #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # ● Setup #-------------------------------------------------------------------------- alias mog_motion_animation_actor_setup setup def setup(actor_id) mog_motion_animation_actor_setup(actor_id) self.motion_stand[0] = $1.to_i if actor.note =~ /<Motion Standby = (\d+)>/i self.motion_collapse[0] = $1.to_i if actor.note =~ /<Motion Collapse = (\d+)>/i self.motion_start = $1.to_i if actor.note =~ /<Motion Appear = (\d+)>/i end end #============================================================================== # ■ Game_Battler #============================================================================== class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # ● Execute Damage #-------------------------------------------------------------------------- alias mog_battler_motion_execute_damage execute_damage def execute_damage(user) mog_battler_motion_execute_damage(user) self.motion_damage[0] = 1 if @result.hp_damage > 0 end end #============================================================================== # ■ Spriteset Battle #============================================================================== class Spriteset_Battle #-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- alias mog_battler_motion_update update def update $game_temp.battler_in_motion = false mog_battler_motion_update end #-------------------------------------------------------------------------- # * Animation? #-------------------------------------------------------------------------- alias mog_battler_motion_animation? animation? def animation? return true if $game_temp.battler_in_motion mog_battler_motion_animation? end #-------------------------------------------------------------------------- # * Effect? #-------------------------------------------------------------------------- alias mog_battler_motion_effect? effect? def effect? return true if $game_temp.battler_in_motion mog_battler_motion_effect? end end #============================================================================== #============================================================================== # ● INITIAL ● #============================================================================== #============================================================================== #============================================================================== # ■ Sprite Battler #============================================================================== class Sprite_Battler < Sprite_Base #-------------------------------------------------------------------------- # ● Can Update Motion? #-------------------------------------------------------------------------- def can_update_motion? return true end #-------------------------------------------------------------------------- # ● Update Position #-------------------------------------------------------------------------- alias mog_motion_animation_update_position update_position def update_position active_battler_motion if @battler_motion_active update_motion_animation self.z = @battler.screen_z rescue nil return end mog_motion_animation_update_position end #-------------------------------------------------------------------------- # ● Active Battler Motion #-------------------------------------------------------------------------- def active_battler_motion return if @motion_initial_base != nil or bitmap == nil return if @battler == nil return if !@battler.exist? @motion_initial_base = true @battler_motion_active = true if can_update_battler_motion? end #-------------------------------------------------------------------------- # ● Can Update Battler Motion #-------------------------------------------------------------------------- def can_update_battler_motion? return false if @battler == nil return false if !@battler.use_sprite? return false if @battler.screen_x == nil return false if @battler.is_a?(Game_Actor) and !MOG_BATTLER_MOTION::ENABLE_ACTOR_MOTION return false if @battler.is_a?(Game_Enemy) and !MOG_BATTLER_MOTION::ENABLE_ENEMY_MOTION return true end #-------------------------------------------------------------------------- # ● Update Motion Animation #-------------------------------------------------------------------------- def update_motion_animation setup_initial_motion execute_start_animation return if @wait_motion_start if can_execute_collapse? execute_motion_collapse else if can_update_motion? execute_motion_move_to if can_update_move_to? execute_motion_damage execute_motion_idle if can_update_idle? execute_motion_action if can_update_action? end end end #-------------------------------------------------------------------------- # ● Setup Initial Motion #-------------------------------------------------------------------------- def setup_initial_motion return if @motion_initial != nil @motion_initial = true @collapse_done = false @motion_speed = 0 @start_speed = [0,0] @battler.motion_collapse[1] = 0 self.x = @battler.screen_x rescue 0 self.y = @battler.screen_y rescue 0 self.z = @battler.screen_z rescue 100 @battler.set_org_pos setup_motion_stand @original_set = [self.x, self.y, self.zoom_x,self.zoom_y,self.mirror,self.angle,255] setup_motion_start setup_motion_damage setup_motion_action end #-------------------------------------------------------------------------- # ● Return Set #-------------------------------------------------------------------------- def return_set(value) self.x = value[0] self.y = value[1] self.zoom_x = value[2] self.zoom_y = value[3] self.mirror = value[4] self.angle = value[5] self.opacity = value[6] end #-------------------------------------------------------------------------- # ● setup_motion_start #-------------------------------------------------------------------------- def setup_motion_start @wait_motion_start = true @scr_rect_speed = 1 case @battler.motion_start when 0 self.x = 0 - (self.bitmap.width + rand(100)) when 1 self.y = 0 - (self.bitmap.height + rand(100)) when 2 self.angle = 360 self.x = 0 - self.bitmap.width when 3 self.zoom_x = 1.5 + (rand(10) / 100.0) self.zoom_y = self.zoom_x self.opacity = 0 when 4 self.zoom_x = 0.2 + (rand(10) / 100.0) self.zoom_y = self.zoom_x self.opacity = 0 when 5 self.src_rect.y = -self.bitmap.height @scr_rect_speed = self.bitmap.height / 40 @scr_rect_speed = 1 if @scr_rect_speed <= 0 else @wait_motion_start = false end end #-------------------------------------------------------------------------- # ● Execute Start Animation #-------------------------------------------------------------------------- def execute_start_animation return if !@wait_motion_start $game_temp.battler_in_motion = true s_x = 1 + ((self.x - @original_set[0]).abs / (20 + @start_speed[0])) s_y = 1 + ((self.y - @original_set[1]).abs / (20 + @start_speed[1])) if self.x < @original_set[0] self.x += s_x self.x = @original_set[0] if self.x >= @original_set[0] elsif self.x > @original_set[0] self.x -= s_x self.x = @original_set[0] if self.x <= @original_set[0] end if self.y < @original_set[1] self.y += s_y self.y = @original_set[1] if self.y > @original_set[1] elsif self.y > @original_set[1] self.y -= s_y self.y = @original_set[1] if self.y < @original_set[1] end if self.zoom_x != @original_set[2] if self.zoom_x > @original_set[2] self.zoom_x -= 0.01 self.zoom_x = @original_set[2] if self.zoom_x < @original_set[2] elsif self.zoom_x < @original_set[2] self.zoom_x += 0.01 self.zoom_x = @original_set[2] if self.zoom_x > @original_set[2] end end if self.zoom_y != @original_set[3] if self.zoom_y > @original_set[3] self.zoom_y -= 0.01 self.zoom_y = @original_set[3] if self.zoom_y < @original_set[3] elsif self.zoom_y < @original_set[3] self.zoom_y += 0.01 self.zoom_y = @original_set[3] if self.zoom_y > @original_set[3] end end self.opacity += 10 if self.angle > 0 self.angle -= 5 self.angle = @original_set[5] if self.angle < @original_set[5] end if self.src_rect.y != 0 self.src_rect.y += @scr_rect_speed self.src_rect.y = 0 if self.src_rect.y > 0 end if sprite_original_set? @wait_motion_start = false self.src_rect.y = 0 end end #-------------------------------------------------------------------------- # ● Sprite original Set? #-------------------------------------------------------------------------- def sprite_original_set? return false if self.x != @original_set[0] return false if self.y != @original_set[1] return false if self.zoom_x != @original_set[2] return false if self.zoom_y != @original_set[3] return false if self.mirror != @original_set[4] return false if self.angle != @original_set[5] return false if self.opacity != @original_set[6] return false if self.src_rect.y != 0 return true end end #============================================================================== #============================================================================== # ● MOVE TO ● #============================================================================== #============================================================================== #============================================================================== # ■ Sprite Battler #============================================================================== class Sprite_Battler < Sprite_Base #-------------------------------------------------------------------------- # ● Can Update Move_to #-------------------------------------------------------------------------- def can_update_move_to? return false if !@battler.motion_move[0] return true end #-------------------------------------------------------------------------- # ● Execute Motion Move_to #-------------------------------------------------------------------------- def execute_motion_move_to $game_temp.battler_in_motion = true execute_motion_mv(0,self.x,@battler.motion_move[1]) execute_motion_mv(1,self.y,@battler.motion_move[2]) mv_clear end #-------------------------------------------------------------------------- # ● MV Clear #-------------------------------------------------------------------------- def mv_clear return if self.x != @battler.motion_move[1] return if self.y != @battler.motion_move[2] @battler.motion_move[0] = false end #-------------------------------------------------------------------------- # ● Execute Motion Mv #-------------------------------------------------------------------------- def execute_motion_mv(type,cp,np) sp = 2 + ((cp - np).abs / 20) if cp > np cp -= sp cp = np if cp < np elsif cp < np cp += sp cp = np if cp > np end self.x = cp if type == 0 self.y = cp if type == 1 end end #============================================================================== #============================================================================== # ● DAMAGE ● #============================================================================== #============================================================================== #============================================================================== # ■ Sprite Battler #============================================================================== class Sprite_Battler < Sprite_Base #-------------------------------------------------------------------------- # ● Can Update Damage #-------------------------------------------------------------------------- def can_update_damage? return false if @battler.motion_damage[1] == 0 return false if @battler.motion_move[0] return true end #-------------------------------------------------------------------------- # ● Setup Initial Motion #-------------------------------------------------------------------------- def execute_motion_damage damage_refresh update_motion_damage if can_update_damage? end #-------------------------------------------------------------------------- # ● Setup Motion Damage #-------------------------------------------------------------------------- def setup_motion_damage @battler.motion_damage = [0,0] @damage_pre_set = [self.x, self.y, self.zoom_x,self.zoom_y,self.mirror,self.angle,self.opacity] end #-------------------------------------------------------------------------- # ● Damage Refresh #-------------------------------------------------------------------------- def damage_refresh return if @battler.motion_damage[0] == 0 if @battler.motion_damage[1] == 0 @damage_pre_set = [self.x, self.y, self.zoom_x,self.zoom_y,self.mirror,self.angle,self.opacity] end @battler.motion_damage[0] = 0 @battler.motion_damage[1] = 45 end #-------------------------------------------------------------------------- # ● Update Motion Damage #-------------------------------------------------------------------------- def update_motion_damage self.x = @damage_pre_set[0] + rand(@battler.motion_damage[1]) @battler.motion_damage[1] -= 1 if @battler.motion_damage[1] == 0 if $imported[:mog_battle_hud_ex] != nil and @battler.is_a?(Game_Actor) return_set(@original_set) else return_set(@damage_pre_set) end end end end #============================================================================== #============================================================================== # ● IDLE ● #============================================================================== #============================================================================== #============================================================================== # ■ Sprite Battler #============================================================================== class Sprite_Battler < Sprite_Base #-------------------------------------------------------------------------- # ● Can Update idle #-------------------------------------------------------------------------- def can_update_idle? return false if @old_motion_action != -1 return false if @battler.motion_damage[1] > 0 return false if @battler.motion_move[0] return true end #-------------------------------------------------------------------------- # ● Setup Motion Stand #-------------------------------------------------------------------------- def setup_motion_stand @breath_range = [MOG_BATTLER_MOTION::BREATH_EFFECT_RANGE[0], MOG_BATTLER_MOTION::BREATH_EFFECT_RANGE[1],0, MOG_BATTLER_MOTION::BREATH_EFFECT_SPEED] @float_range = [@battler.screen_y - 10, @battler.screen_y + 10] @side_range = [@battler.screen_x - 10, @battler.screen_x + 10] @battler.motion_stand[1] = 0 case @battler.motion_stand[0] when 0 self.zoom_y = @breath_range[0] + (rand(10) / 100.0) @battler.motion_stand[1] = rand(2) when 1 self.y += 10 - rand(20) @battler.motion_stand[1] = rand(2) when 2 self.x += 10 - rand(20) @battler.motion_stand[1] = rand(2) end end #-------------------------------------------------------------------------- # ● Execute Motion Animation #-------------------------------------------------------------------------- def execute_motion_idle case @battler.motion_stand[0] when 0 update_motion_breath when 1 update_motion_float when 2 update_motion_side end end #-------------------------------------------------------------------------- # ● Update Motion Breath #-------------------------------------------------------------------------- def update_motion_breath @breath_range[2] += 1 return if @breath_range[2] < @breath_range[3] @breath_range[2] = 0 case @battler.motion_stand[1] when 0 self.zoom_y -= 0.002 if self.zoom_y <= @breath_range[0] @battler.motion_stand[1] = 1 self.zoom_y = @breath_range[0] end when 1 self.zoom_y += 0.002 if self.zoom_y >= @breath_range[1] @battler.motion_stand[1] = 0 self.zoom_y = @breath_range[1] end end end #-------------------------------------------------------------------------- # ● Update Motion Float #-------------------------------------------------------------------------- def update_motion_float @motion_speed += 1 return if @motion_speed < 5 @motion_speed = 0 case @battler.motion_stand[1] when 0 self.y -= 1 if self.y < @float_range[0] self.y = @float_range[0] @battler.motion_stand[1] = 1 end when 1 self.y += 1 if self.y > @float_range[1] self.y = @float_range[1] @battler.motion_stand[1] = 0 end end end #-------------------------------------------------------------------------- # ● Update Motion Side #-------------------------------------------------------------------------- def update_motion_side @motion_speed += 1 return if @motion_speed < 5 @motion_speed = 0 case @battler.motion_stand[1] when 0 self.x -= 1 if self.x < @side_range[0] self.x = @side_range[0] @battler.motion_stand[1] = 1 end when 1 self.x += 1 if self.x > @side_range[1] self.x = @side_range[1] @battler.motion_stand[1] = 0 end end end end #============================================================================== #============================================================================== # ● ACTION ● #============================================================================== #============================================================================== #============================================================================== # ■ Game Action #============================================================================== class Game_Action #-------------------------------------------------------------------------- # ● Prepare #-------------------------------------------------------------------------- alias mog_motion_action_prepare prepare def prepare mog_motion_action_prepare set_motion_action end #-------------------------------------------------------------------------- # ● Set Motion Action #-------------------------------------------------------------------------- def set_motion_action return if @item.object == nil or subject == nil subject.motion_action[0] = $1.to_i if @item.object.note =~ /<Motion Action = (\d+)>/i end end #============================================================================== # ■ Sprite Battler #============================================================================== class Sprite_Battler < Sprite_Base #-------------------------------------------------------------------------- # ● Can Update Action #-------------------------------------------------------------------------- def can_update_action? return false if @battler.motion_damage[1] > 0 return false if @battler.motion_move[0] return true end #-------------------------------------------------------------------------- # ● Setup Motion Action #-------------------------------------------------------------------------- def setup_motion_action @battler.motion_action = [-1,0] @old_motion_action = @battler.motion_action[0] @pre_set = [self.x, self.y, self.zoom_x,self.zoom_y,self.mirror,self.angle,self.opacity] end #-------------------------------------------------------------------------- # ● Refresh Action #-------------------------------------------------------------------------- def refresh_action return if @old_motion_action == @battler.motion_action[0] if @old_motion_action == -1 @pre_set = [self.x, self.y, self.zoom_x,self.zoom_y,self.mirror,self.angle,self.opacity] end @battler.motion_action[1] = 0 return_set(@pre_set) @old_motion_action = @battler.motion_action[0] self.src_rect.y = 0 end #-------------------------------------------------------------------------- # ● Execute Motion Action #-------------------------------------------------------------------------- def execute_motion_action refresh_action update_motion_action end #-------------------------------------------------------------------------- # ● Update Motion Action #-------------------------------------------------------------------------- def update_motion_action return if @battler.motion_action[0] == -1 $game_temp.battler_in_motion = true @battler.motion_action[1] += 1 case @battler.motion_action[0] when -2 end_action when 0 update_motion_zoom when 1 update_motion_jump when 2 update_motion_round_right when 3 update_motion_round_left when 4 update_motion_shake when 5 update_motion_front when 6 update_motion_step_left when 7 update_motion_step_right end end #-------------------------------------------------------------------------- # ● Update Motion Step Left #-------------------------------------------------------------------------- def update_motion_step_left case @battler.motion_action[1] when 1..20 self.x -= 2 when 21..40 self.x += 2 else end_action end end #-------------------------------------------------------------------------- # ● Update Motion Step Right #-------------------------------------------------------------------------- def update_motion_step_right case @battler.motion_action[1] when 1..20 self.x += 2 when 21..40 self.x -= 2 else end_action end end #-------------------------------------------------------------------------- # ● Update Motion Shake #-------------------------------------------------------------------------- def update_motion_shake self.x = @pre_set[0] + rand(@battler.motion_action[1]) if can_update_motion_shake? end_action if @battler.motion_action[1] > 40 end #-------------------------------------------------------------------------- # ● Can Update Motion Shake? #-------------------------------------------------------------------------- def can_update_motion_shake? if $imported[:mog_battle_hud_ex] !=nil return false if @battler.is_a?(Game_Actor) end return true end #-------------------------------------------------------------------------- # ● Update Motion Zoom #-------------------------------------------------------------------------- def update_motion_zoom case @battler.motion_action[1] when 1..20 self.zoom_x += 0.01 self.zoom_y += 0.01 when 21..40 self.zoom_x -= 0.01 self.zoom_y -= 0.01 else end_action end end #-------------------------------------------------------------------------- # ● Update Motion Jump #-------------------------------------------------------------------------- def update_motion_jump case @battler.motion_action[1] when 1..20 self.y -= 9 self.zoom_x += 0.01 self.zoom_y += 0.01 self.mirror = true self.angle += 9 when 21..40 self.y += 9 self.zoom_x -= 0.01 self.zoom_y -= 0.01 self.mirror = false self.angle += 9 else self.angle = 0 end_action end end #-------------------------------------------------------------------------- # ● Update Motion Front #-------------------------------------------------------------------------- def update_motion_front case @battler.motion_action[1] when 1..20 self.y += 3 self.zoom_x += 0.02 self.zoom_y += 0.02 when 21..40 self.y -= 3 self.zoom_x -= 0.02 self.zoom_y -= 0.02 else end_action end end #-------------------------------------------------------------------------- # ● Update Motion Round Left #-------------------------------------------------------------------------- def update_motion_round_left case @battler.motion_action[1] when 1..15 self.y += 3 self.x -= 3 self.mirror = false when 16..30 self.x += 6 self.mirror = true when 31..45 self.y -= 3 self.x -= 3 self.mirror = false else end_action end end #-------------------------------------------------------------------------- # ● Update Motion Round Right #-------------------------------------------------------------------------- def update_motion_round_right case @battler.motion_action[1] when 1..15 self.y += 3 self.x += 3 self.mirror = true when 16..30 self.x -= 6 self.mirror = false when 31..45 self.y -= 3 self.x += 3 self.mirror = true else end_action end end #-------------------------------------------------------------------------- # ● End Action #-------------------------------------------------------------------------- def end_action if $imported[:mog_battle_hud_ex] != nil and @battler.is_a?(Game_Actor) return_set(@original_set) else return_set(@pre_set) end @battler.motion_action = [-1,0] end end #============================================================================== #============================================================================== # ● COLLAPSE ● #============================================================================== #============================================================================== #============================================================================== # ■ Sprite Battler #============================================================================== class Sprite_Battler < Sprite_Base #-------------------------------------------------------------------------- # ● Can Update Action #-------------------------------------------------------------------------- def can_update_collapse? return true end #-------------------------------------------------------------------------- # ● Update Blink #-------------------------------------------------------------------------- alias mog_motion_animation_update_blink update_blink def update_blink return if @battler.dead? mog_motion_animation_update_blink end #-------------------------------------------------------------------------- # ● Update Collapse #-------------------------------------------------------------------------- def update_collapse end #-------------------------------------------------------------------------- # ● Execute Motion Collapse #-------------------------------------------------------------------------- def execute_motion_collapse collapse_end if self.opacity == 0 @battler.motion_collapse[1] += 1 case @battler.motion_collapse[0] when 0; update_collapse_vertical when 1; update_collapse_horizontal when 2; update_collapse_zoom_out when 3; update_collapse_zoom_in when 4; update_collapse_zoom_in_out when 5; update_collapse_boss_2 when 6; update_collpase_do_nothing else ; update_collapse_normal end end #-------------------------------------------------------------------------- # ● Can Execute Collapse #-------------------------------------------------------------------------- def can_execute_collapse? return false if !@battler.dead? return false if @collapse_done return true end #-------------------------------------------------------------------------- # ● Update Collapse Vertical #-------------------------------------------------------------------------- def update_collapse_vertical self.zoom_y += 0.1 self.zoom_x -= 0.02 self.opacity -= 3 end #-------------------------------------------------------------------------- # ● Update Collapse Horizontal #-------------------------------------------------------------------------- def update_collapse_horizontal self.zoom_x += 0.1 self.zoom_y -= 0.02 self.opacity -= 3 end #-------------------------------------------------------------------------- # ● Update Collapse Zoom Out #-------------------------------------------------------------------------- def update_collapse_zoom_out self.zoom_x += 0.02 self.zoom_y += 0.02 self.opacity -= 4 end #-------------------------------------------------------------------------- # ● Update Collapse Zoom IN #-------------------------------------------------------------------------- def update_collapse_zoom_in self.zoom_x -= 0.01 self.zoom_y -= 0.01 self.opacity -= 4 end #-------------------------------------------------------------------------- # ● Update Collapse Zoom IN OUT #-------------------------------------------------------------------------- def update_collapse_zoom_in_out case @battler.motion_collapse[1] when 0..30 self.zoom_x += 0.1 self.zoom_y -= 0.02 self.opacity -= 2 else self.zoom_y += 0.5 self.zoom_x -= 0.2 self.opacity -= 10 end end #-------------------------------------------------------------------------- # ● Update Collapse Boss 2 #-------------------------------------------------------------------------- def update_collapse_boss_2 self.x = @original_set[0] + rand(10) self.src_rect.y -= 1 self.opacity = 0 if self.src_rect.y < -self.bitmap.height end #-------------------------------------------------------------------------- # ● Update Collapse do nothing #-------------------------------------------------------------------------- def update_collpase_do_nothing end #-------------------------------------------------------------------------- # ● Update Collapse Normal #-------------------------------------------------------------------------- def update_collapse_normal self.opacity -= 3 self.blend_type = 1 end #-------------------------------------------------------------------------- # ● Collapse End #-------------------------------------------------------------------------- def collapse_end @collapse_done = true return_set(@original_set) self.src_rect.y = -self.bitmap.height unless @battler.motion_collapse[0] == 6 end #-------------------------------------------------------------------------- # ● Revert to Normal #-------------------------------------------------------------------------- alias mog_battler_motion_revert_to_normal revert_to_normal def revert_to_normal if @collapse_done @collapse_done = false return_set(@original_set) end mog_battler_motion_revert_to_normal end end P.S. Please let me know if posting that script here is allowed, so I can edit it out if it isn't. Share this post Link to post Share on other sites