Invité Invité
| Sujet: [RPG MAKER VX/XP]MOG VX - Battler L Effects Dim 09 Oct 2011, 10:45 | |
| Bonjour à tous, voici un script de combat qui pourras donner un petit effet à vos combat, ce script est de Moghunter. (Pardon si il y ai déja, mais je l'ai pas trouver sur ce site) Une vidéo : https://www.youtube.com/watch?feature=player_embedded&v=QY4RyauRoTsLe script : - Spoiler:
- Code:
-
#============================================================================== # +++ MOG VX - Battler L Effects (v1.0) +++ #============================================================================== # By Moghunter # http://www.atelier-rgss.com/ #============================================================================== # Adiciona alguns efeitos de animação no sprite do Battler. # - Efeito de respirar. # - Efeito de flutuar. # - Efeito de mover-se para os lados. #============================================================================== module MOG_BATTLER_L_EFFECTS #Vitesse de la respiration (1-9) BREATH_SPEED = 1 #Définition des ennemis qui ont l'effet de la respiration BREATH_EFFECT_ENEMY_ID = [] #Définition des battlers qui aura l'effet de flottement. FLOAT_EFFECT_ENEMY_ID = [] #Définition des battlers qui aura pour effet de se déplacer latéralement. MOVESIDE_EFFECT_ENEMY_ID = [] #Conditions qui annulent l'effet du sprite. (Exp - Arrêt / Paralyze) STATES_CANCEL_EFFECT = [7,50,54,60,6,8] end
#=============================================================================== # ■ Game_Battler #=============================================================================== class Game_Battler include MOG_BATTLER_L_EFFECTS #-------------------------------------------------------------------------- # ● Add State #-------------------------------------------------------------------------- alias breath_effect_add_state add_state def add_state(state_id) breath_effect_add_state(state_id) if self.is_a?(Game_Enemy) for i in STATES_CANCEL_EFFECT if @states.include?(i) @breath_effect = false @float_effect = false @moveside_effect = false end end end end
#-------------------------------------------------------------------------- # ● Remove_State #-------------------------------------------------------------------------- alias breath_effect_remove_state remove_state def remove_state(state_id) breath_effect_remove_state(state_id) if self.is_a?(Game_Enemy) sce = false for i in STATES_CANCEL_EFFECT sce = true if @states.include?(i) end if sce == false @breath_effect = true if BREATH_EFFECT_ENEMY_ID.include?(@enemy_id) @float_effect = true if FLOAT_EFFECT_ENEMY_ID.include?(@enemy_id) @moveside_effect = true if MOVESIDE_EFFECT_ENEMY_ID.include?(@enemy_id) end end end end
#=============================================================================== # ■ Game_Enemy #=============================================================================== class Game_Enemy < Game_Battler include MOG_BATTLER_L_EFFECTS attr_accessor :breath_effect attr_accessor :float_effect attr_accessor :moveside_effect #-------------------------------------------------------------------------- # ● Setup #-------------------------------------------------------------------------- alias breath_effect_initialize initialize def initialize(index, enemy_id) breath_effect_initialize(index, enemy_id) @breath_effect = false @float_effect = false @moveside_effect = false @breath_effect = true if BREATH_EFFECT_ENEMY_ID.include?(@enemy_id) @float_effect = true if FLOAT_EFFECT_ENEMY_ID.include?(@enemy_id) @moveside_effect = true if MOVESIDE_EFFECT_ENEMY_ID.include?(@enemy_id) end end
#=============================================================================== # ■ Sprite_Battler #=============================================================================== class Sprite_Battler < Sprite_Base include MOG_BATTLER_L_EFFECTS #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- alias breath_effect_initialize initialize def initialize(viewport, battler = nil) breath_effect_initialize(viewport, battler ) breath_effect_setup(battler) float_effect_setup(battler) modeside_effect_setup(battler) end #-------------------------------------------------------------------------- # ● Moveside Effect #-------------------------------------------------------------------------- def modeside_effect_setup(battler) @moveside_duration = rand(30) @moveside_speed = 0 end #-------------------------------------------------------------------------- # ● Float Effect Setup #-------------------------------------------------------------------------- def float_effect_setup(battler) @float_duration = rand(40) @float_speed = rand(3) end #-------------------------------------------------------------------------- # ● Breath Effect Setup #-------------------------------------------------------------------------- def breath_effect_setup(battler) @breath_phase = 0 @breath_effect = false @breath_effect_speed = 0 if @battler.is_a?(Game_Enemy) and @battler.breath_effect initial_breath = 1.00 + (@battler.screen_x * 0.001) - (@battler.screen_y * 0.001) initial_breath = 1.1 if initial_breath > 1.1 initial_breath = 0.9 if initial_breath < 0.9 self.zoom_y = initial_breath ex_speed = [[BREATH_SPEED, 1].max, 9].min speed = ex_speed * 0.001 @breath_effect_speed = speed + (rand(99) * 0.00001) end end #-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- alias breath_effect_update update def update breath_effect_update if @battler.is_a?(Game_Enemy) update_breath_effect update_float_effect update_move_side_effect end end #-------------------------------------------------------------------------- # ● Update Moveside Effect #-------------------------------------------------------------------------- def update_move_side_effect return if @battler == nil return unless @battler.moveside_effect @moveside_speed += 1 return if @moveside_speed < 4 @moveside_speed = 0 @moveside_duration += 1 case @moveside_duration when 0..10 self.ox += 2 when 11..15 self.ox += 1 when 16..25 self.ox -= 2 when 26..30 self.ox -= 1 else @moveside_duration = 0 end end #-------------------------------------------------------------------------- # ● Update Float Effect #-------------------------------------------------------------------------- def update_float_effect return if @battler == nil return unless @battler.float_effect @float_speed += 1 return if @float_speed < 2 @float_speed = 0 @float_duration += 1 case @float_duration when 0..15 self.oy += 2 when 16..20 self.oy += 1 when 21..35 self.oy -= 2 when 36..40 self.oy -= 1 else @float_duration = 0 end end #-------------------------------------------------------------------------- # ● Update Breaht Effect #-------------------------------------------------------------------------- def update_breath_effect return if @battler == nil return unless @battler.breath_effect if @breath_effect_speed == 0 ex_speed = [[BREATH_SPEED, 1].max, 9].min speed = ex_speed * 0.001 @breath_effect_speed = speed + (rand(99) * 0.00001) self.zoom_y = 1 + rand(10) * 0.01 end if @breath_phase == 0 self.zoom_y += @breath_effect_speed @breath_phase = 1 if self.zoom_y >= 1.05 else self.zoom_y -= @breath_effect_speed @breath_phase = 0 if self.zoom_y <= 1.01 end end end
$mog_rgss2_battler_l_effects = true
Et voici le code pour xp : - Spoiler:
- Code:
-
#============================================================================== # +++ MOG XP - Battler L Effects (v1.0) +++ #============================================================================== # By Moghunter # http://www.atelier-rgss.com/ #============================================================================== # Adiciona alguns efeitos de animação no sprite do Battler. # - Efeito de respirar. # - Efeito de flutuar. # - Efeito de mover-se para os lados. #============================================================================== module MOG_BATTLER_L_EFFECTS #Velocidade da respiração(de 1 a 9) BREATH_SPEED = 2 #Definição dos battlers que terão o efeito de respiração BREATH_EFFECT_ENEMY_ID = [1,5,7,32] BREATH_EFFECT_ACTOR_ID = [1,7] #Definição dos battlers que terão o efeito flutuar. FLOAT_EFFECT_ENEMY_ID = [2,4] FLOAT_EFFECT_ACTOR_ID = [2] #Definição dos battlers que terão o efeito movimentar se para os lados. MOVESIDE_EFFECT_ENEMY_ID = [6,9] MOVESIDE_EFFECT_ACTOR_ID = [8] #Condições que cancelam os efeito do sprite. (Exp - Stop / Paralyze) STATES_CANCEL_EFFECT = [8,50,54,60] end
#=============================================================================== # ■ Game_Battler #=============================================================================== class Game_Battler include MOG_BATTLER_L_EFFECTS #-------------------------------------------------------------------------- # ● Add State #-------------------------------------------------------------------------- alias breath_effect_add_state add_state def add_state(state_id, force = false) breath_effect_add_state(state_id, force) check_breath = false if self.is_a?(Game_Enemy) check_breath = true if BREATH_EFFECT_ENEMY_ID.include?(self.id) check_breath = true if FLOAT_EFFECT_ENEMY_ID.include?(self.id) check_breath = true if MOVESIDE_EFFECT_ENEMY_ID.include?(self.id) else check_breath = true if BREATH_EFFECT_ACTOR_ID.include?(self.id) check_breath = true if FLOAT_EFFECT_ACTOR_ID.include?(self.id) check_breath = true if MOVESIDE_EFFECT_ACTOR_ID.include?(self.id) end if check_breath for i in STATES_CANCEL_EFFECT if @states.include?(i) @breath_effect = false @float_effect = false @moveside_effect = false end end end end
#-------------------------------------------------------------------------- # ● Remove_State #-------------------------------------------------------------------------- alias breath_effect_remove_state remove_state def remove_state(state_id, force = false) breath_effect_remove_state(state_id, force) sce = false for i in STATES_CANCEL_EFFECT sce = true if @states.include?(i) end if sce == false if self.is_a?(Game_Enemy) @breath_effect = true if BREATH_EFFECT_ENEMY_ID.include?(self.id) @float_effect = true if FLOAT_EFFECT_ENEMY_ID.include?(self.id) @moveside_effect = true if MOVESIDE_EFFECT_ENEMY_ID.include?(self.id) else @breath_effect = true if BREATH_EFFECT_ACTOR_ID.include?(self.id) @float_effect = true if FLOAT_EFFECT_ACTOR_ID.include?(self.id) @moveside_effect = true if MOVESIDE_EFFECT_ACTOR_ID.include?(self.id) end end end end
#=============================================================================== # ■ Game_Actor #=============================================================================== class Game_Actor < Game_Battler include MOG_BATTLER_L_EFFECTS attr_accessor :breath_effect attr_accessor :float_effect attr_accessor :moveside_effect #-------------------------------------------------------------------------- # ● Setup #-------------------------------------------------------------------------- alias breath_effect_setup setup def setup(actor_id) @breath_effect = true if BREATH_EFFECT_ACTOR_ID.include?(actor_id) @float_effect = true if FLOAT_EFFECT_ACTOR_ID.include?(actor_id) @moveside_effect = true if MOVESIDE_EFFECT_ACTOR_ID.include?(actor_id) breath_effect_setup(actor_id) end end #=============================================================================== # ■ Game_Enemy #=============================================================================== class Game_Enemy < Game_Battler include MOG_BATTLER_L_EFFECTS attr_accessor :breath_effect attr_accessor :float_effect attr_accessor :moveside_effect #-------------------------------------------------------------------------- # ● Setup #-------------------------------------------------------------------------- alias breath_effect_initialize initialize def initialize(troop_id, member_index) breath_effect_initialize(troop_id, member_index) @breath_effect = true if BREATH_EFFECT_ENEMY_ID.include?(@enemy_id) @float_effect = true if FLOAT_EFFECT_ENEMY_ID.include?(@enemy_id) @moveside_effect = true if MOVESIDE_EFFECT_ENEMY_ID.include?(@enemy_id) end end
#=============================================================================== # ■ Sprite_Battler #=============================================================================== class Sprite_Battler < RPG::Sprite include MOG_BATTLER_L_EFFECTS #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- alias breath_effect_initialize initialize def initialize(viewport, battler = nil) breath_effect_initialize(viewport, battler ) breath_effect_setup(battler) float_effect_setup(battler) modeside_effect_setup(battler) end #-------------------------------------------------------------------------- # ● Moveside Effect #-------------------------------------------------------------------------- def modeside_effect_setup(battler) @moveside_duration = rand(30) @moveside_speed = 0 end #-------------------------------------------------------------------------- # ● Float Effect Setup #-------------------------------------------------------------------------- def float_effect_setup(battler) @float_duration = rand(40) @float_speed = rand(3) end #-------------------------------------------------------------------------- # ● Breath Effect Setup #-------------------------------------------------------------------------- def breath_effect_setup(battler) @breath_phase = 0 @breath_effect = false @breath_effect_speed = 0 if @battler.is_a?(Game_Enemy) and @battler.breath_effect initial_breath = 1.00 + (@battler.screen_x * 0.001) - (@battler.screen_y * 0.001) initial_breath = 1.1 if initial_breath > 1.1 initial_breath = 0.9 if initial_breath < 0.9 self.zoom_y = initial_breath ex_speed = [[BREATH_SPEED, 1].max, 9].min speed = ex_speed * 0.001 @breath_effect_speed = speed + (rand(99) * 0.00001) end end #-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- alias breath_effect_update update def update breath_effect_update update_breath_effect update_float_effect update_move_side_effect end #-------------------------------------------------------------------------- # ● Update Moveside Effect #-------------------------------------------------------------------------- def update_move_side_effect return if @battler == nil return unless @battler.moveside_effect return if @_collapse_duration > 0 @moveside_speed += 1 return if @moveside_speed < 3 @moveside_speed = 0 @moveside_duration += 1 case @moveside_duration when 0..10 self.ox += 2 when 11..15 self.ox += 1 when 16..25 self.ox -= 2 when 26..30 self.ox -= 1 else @moveside_duration = 0 end end #-------------------------------------------------------------------------- # ● Update Float Effect #-------------------------------------------------------------------------- def update_float_effect return if @battler == nil return unless @battler.float_effect return if @_collapse_duration > 0 @float_speed += 1 return if @float_speed < 2 @float_speed = 0 @float_duration += 1 case @float_duration when 0..15 self.oy += 2 when 16..20 self.oy += 1 when 21..35 self.oy -= 2 when 36..40 self.oy -= 1 else @float_duration = 0 end end #-------------------------------------------------------------------------- # ● Update Breaht Effect #-------------------------------------------------------------------------- def update_breath_effect return if @battler == nil return unless @battler.breath_effect return if @_collapse_duration > 0 if @breath_effect_speed == 0 ex_speed = [[BREATH_SPEED, 1].max, 9].min speed = ex_speed * 0.001 @breath_effect_speed = speed + (rand(99) * 0.00001) self.zoom_y = 1 + rand(10) * 0.01 end if @breath_phase == 0 self.zoom_y += @breath_effect_speed @breath_phase = 1 if self.zoom_y >= 1.05 else self.zoom_y -= @breath_effect_speed @breath_phase = 0 if self.zoom_y <= 1.01 end end end
$mog_rgss_battler_l_effects = true
Instruction : Mettre dans - Code:
-
BREATH_EFFECT_ENEMY_ID = [] l'id des ennemis qui auront l'effet de respirations. Mettre dans - Code:
-
FLOAT_EFFECT_ENEMY_ID = [] L'id des ennemis qui auront l'effet de Flottement. Mettre dans - Code:
-
MOVESIDE_EFFECT_ENEMY_ID = [] L'id des ennemis qui auront l'effet de mouvement de gauche à droite. Mettre dans - Code:
-
STATES_CANCEL_EFFECT = [] L'id des états qui annulerons l'effet (ex : sommeil etc...) Voila, bon making |
|