[résolu]Besoin de script
Sam 22 Fév 2014 - 0:50
Salut tout le monde (oui je sais je demande beaucoup en ce moment =X)
Alors voilà, étant nul en script, j'aurais besoin de :
- Un script permettant de supprimer l'ATB (et de rajouter par exemple un systeme de tour par tour).
- Un script permettant d'afficher l'attaque du personnage (lors du combat le personnage avance, et la sa serais cool qu'il puisse sortir son arme et taper avec)
- Un script (ou un autre moyen) de pouvoir afficher des monstres (ennemis) animé et non juste des photos !
Priorité ? 3eme demande en first xD
Merci d'avance ^^'
Alors voilà, étant nul en script, j'aurais besoin de :
- Un script permettant de supprimer l'ATB (et de rajouter par exemple un systeme de tour par tour).
- Un script permettant d'afficher l'attaque du personnage (lors du combat le personnage avance, et la sa serais cool qu'il puisse sortir son arme et taper avec)
- Un script (ou un autre moyen) de pouvoir afficher des monstres (ennemis) animé et non juste des photos !
Priorité ? 3eme demande en first xD
Merci d'avance ^^'
- GelartoGelato Della Mamma
- Nombre de messages : 2919
Age : 29
Distinction : Grand bêta-testeur de la communauté Curse
Personne avec du goût
Je ne suis pas une glace italienne, bordel de merde! [Gel']
Mon plus grand fan [Yama']
Mon ptit bichon [encore Yama']
Jeau-Paul II[Mist']
Saint-Gelato Le Frais [Mist']
Écrivain du dimanche [Amal']
FF IV Fanatic [LaCommu']
Collectionneur de distinctions de merde [Yama]
ModoGel [Un staffieux mais lequel?]
RNGel 2.0 [Zeal']
Date d'inscription : 31/07/2012
Re: [résolu]Besoin de script
Sam 22 Fév 2014 - 10:50
1 - L'ATB est affiché par un script, tu as donc juste à supprimer ce dernier pour l'enlever
Pour les questions 2 et 3, tu veux un combat en vue de côté ou ennemis et alliés de déplacent ?
Pour cela y a le Sbs de Yami : http://symphonyan.org/battle-symphony-introduction/
Ou celui de Victor (un peu plus complexe) : http://victorscripts.wordpress.com/rpg-maker-vx-ace/ (il faut prendre juste 3 script : Basic Module, Atocor Battlers et Animated Battle)
Pour les questions 2 et 3, tu veux un combat en vue de côté ou ennemis et alliés de déplacent ?
Pour cela y a le Sbs de Yami : http://symphonyan.org/battle-symphony-introduction/
Ou celui de Victor (un peu plus complexe) : http://victorscripts.wordpress.com/rpg-maker-vx-ace/ (il faut prendre juste 3 script : Basic Module, Atocor Battlers et Animated Battle)
Re: [résolu]Besoin de script
Dim 23 Fév 2014 - 11:15
Quel est le nom du script de l'ATB ? :O car je ne le voie pas ^^'
Sinon je vais test le Sbs de Yami et de victor pour les questions 2 et 3 et je donnerais des new's après
Sinon je vais test le Sbs de Yami et de victor pour les questions 2 et 3 et je donnerais des new's après
- GelartoGelato Della Mamma
- Nombre de messages : 2919
Age : 29
Distinction : Grand bêta-testeur de la communauté Curse
Personne avec du goût
Je ne suis pas une glace italienne, bordel de merde! [Gel']
Mon plus grand fan [Yama']
Mon ptit bichon [encore Yama']
Jeau-Paul II[Mist']
Saint-Gelato Le Frais [Mist']
Écrivain du dimanche [Amal']
FF IV Fanatic [LaCommu']
Collectionneur de distinctions de merde [Yama]
ModoGel [Un staffieux mais lequel?]
RNGel 2.0 [Zeal']
Date d'inscription : 31/07/2012
Re: [résolu]Besoin de script
Dim 23 Fév 2014 - 12:23
Pour l'ATB, je ne sais pas quel script tu utilises mais c'est surement celle de Formar ou celle de Yami.
Prend un screen tes scripts rajoutés que je vois duquel il s'agit
Prend un screen tes scripts rajoutés que je vois duquel il s'agit
Re: [résolu]Besoin de script
Lun 24 Fév 2014 - 0:15
- SpytjeAdministrateur
- Nombre de messages : 5935
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008
Re: [résolu]Besoin de script
Lun 24 Fév 2014 - 0:22
Tu aurais pas par hasard plusieurs script de combat dans ton projet là ?
Re: [résolu]Besoin de script
Lun 24 Fév 2014 - 0:39
Aaahhh c'est fort possible ... mais que dois-je faire de scene battle alors ? car ce n'est pas un rajouter
- SpytjeAdministrateur
- Nombre de messages : 5935
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008
Re: [résolu]Besoin de script
Lun 24 Fév 2014 - 0:45
Non ça c'est un script de base il ne faut pas l'enlever mais vérifie plutot dans ceux que tu as ajoutés dans ton projet.
- SpytjeAdministrateur
- Nombre de messages : 5935
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008
Re: [résolu]Besoin de script
Dim 2 Mar 2014 - 0:44
D'après ce que je vois sur ton screen il doit y avoir plusieurs script de combat dans ton projet, vérifie.
Le premier script, c'est quoi "ace battle engine" ?
Pour finir j'ai l'impression que c'est un peu le bordel dans tes scripts non ?
Le premier script, c'est quoi "ace battle engine" ?
Pour finir j'ai l'impression que c'est un peu le bordel dans tes scripts non ?
Re: [résolu]Besoin de script
Ven 14 Mar 2014 - 21:15
Désolé du retard, petit up ça fera pas de mal ^^
Oui c'etais un beau bordel les scripts ^^
Mais j'ai fait le ménage donc je récapitule :
Modification/Supprimer l'ATB => Résolu
Script d'animation d'attaque de notre personnage => Non résolu (Un de mes scripts me fait chier, je vais donc revoir ça et je posterais le résultat voir si quelqu'un peut me réglé le soucis)
Ennemis animé à la place de simple photo => Non résolu !
Oui c'etais un beau bordel les scripts ^^
Mais j'ai fait le ménage donc je récapitule :
Modification/Supprimer l'ATB => Résolu
Script d'animation d'attaque de notre personnage => Non résolu (Un de mes scripts me fait chier, je vais donc revoir ça et je posterais le résultat voir si quelqu'un peut me réglé le soucis)
Ennemis animé à la place de simple photo => Non résolu !
- InvitéInvité
Re: [résolu]Besoin de script
Dim 30 Mar 2014 - 11:54
T'as le Victor Engine => Animated Battle. C'est celui que j'utilise ^^
EDIT : Voilà le lien : http://victorscripts.wordpress.com/rpg-maker-vx-ace/battle-scripts/animated-battle/
Pour le faire fonctionner, t'auras besoin du Basic Module : http://victorscripts.wordpress.com/rpg-maker-vx-ace/basic-scripts/basic-module/
Et si tu veux que ton héros soit visible, il te faudra Actor Battlers => http://victorscripts.wordpress.com/rpg-maker-vx-ace/battle-scripts/actors-battlers/
Voili voilou
Hésite pas si tu as besoin, parce que c'est un peu usine à gaz ^^'
Ceci dit, j'ai trouvé un guide sympa. Il est en anglais par contre. Tu le trouveras à cette adresse : http://www.rpgmakervxace.net/topic/6605-rmvxa-installing-victors-animated-battles-from-scratch-for-beginners/
EDIT : Voilà le lien : http://victorscripts.wordpress.com/rpg-maker-vx-ace/battle-scripts/animated-battle/
Pour le faire fonctionner, t'auras besoin du Basic Module : http://victorscripts.wordpress.com/rpg-maker-vx-ace/basic-scripts/basic-module/
Et si tu veux que ton héros soit visible, il te faudra Actor Battlers => http://victorscripts.wordpress.com/rpg-maker-vx-ace/battle-scripts/actors-battlers/
Voili voilou
Hésite pas si tu as besoin, parce que c'est un peu usine à gaz ^^'
Ceci dit, j'ai trouvé un guide sympa. Il est en anglais par contre. Tu le trouveras à cette adresse : http://www.rpgmakervxace.net/topic/6605-rmvxa-installing-victors-animated-battles-from-scratch-for-beginners/
Re: [résolu]Besoin de script
Dim 30 Mar 2014 - 13:08
Pour animer les ennemis simplement, j'utilise ce script de Moghunter (excellent scripteur) :
- Code:
#==============================================================================
# +++ MOG - Battler Motion (v1.8) +++
#==============================================================================
# By Moghunter
# http://www.atelier-rgss.com/
#==============================================================================
# Adiciona efeitos de animações nos sprites dos battlers.
# ● Animação inicial (entrada)de batalha.
# ● Animação de espera.
# ● Animação de ação.
# ● Animação de dano.
# ● Animação de colapso.
#==============================================================================
#==============================================================================
# ● Histórico (Version History)
#==============================================================================
# v 1.8 - Corrigido o erro não ativar o sistema em inimigos ocultos.
# - Melhoria no efeito de respirar e a opção de configurar o efeito.
# v 1.7 - Compatibilidade com o script de Aura Effect.
# v 1.6 - Melhoria no código e performance.
# v 1.5 - Opção de ativar ou desativar os efeitos nos alidados ou inimigos.
# Essa opção serve para resolver problemas de compatibilidade.
# v 1.4 - Correção do bug de apresentar 1 de dano na caixa de Log.
# v 1.3 - Correção na posição do battler após receber o dano. (Actor)
# v 1.2 - Melhoria na codificação do script. (Melhor compatibilidade.)
# - Adição do colapso tipo 6.
# - Adição do efeito de ação tipo 6 e 7.
# - Adição do efeito de animação inicial tipo 5.
# v 1.1 - Ativar animação em battler abatidos. (Ex - Animações de Reviver.)
# - Opção de ativar ou não efeito de colapso para os personagens.
# v 1.0 - Primeiro lançamento.
#==============================================================================
#==============================================================================
# ● CONFIGURAÇÃO
#==============================================================================
# ■ Animação inicial de entrada ao começar a batalha.
#==============================================================================
# Coloque as seguintes Tags na caixa de notas dos inimigos ou personagens.
#
# <Motion Appear = X>
#
# X = 0
# Battler desliza horizontalmente.
#
# X = 1
# Battler desliza verticalmente.
#
# X = 2
# Battler rola (Cambalhota O_o) pela tela.
#
# X = 3
# Zoom IN
#
# X = 4
# Zoom Out
#
# X = 5
# Efeito de emergir do solo.
#
#==============================================================================
# ■ Animações dos battlers em modo espera.
#==============================================================================
# Coloque as seguintes Tags na caixa de notas dos inimigos ou personagens.
#
# <Motion Standby = X>
#
# X = 0
# Ativa o efeito do battler respirando.
#
# X = 1
# Ativa o efeito do battler levitando.
#
# X = 2
# Ativa o efeito do battler movimentando para os lados.
#
#==============================================================================
# ■ Animações dos battlers em modo de ação.
#==============================================================================
# Coloque as seguintes Tags na caixa de notas de itens ou habilidades.
#
# <Motion Action = X>
#
# X = 0
# Ativa o efeito de ação de zoom.
#
# X = 1
# Ativa o efeito de ação de pular.
#
# X = 2
# Ativa o efeito de girar para a esquerda.
#
# X = 3
# Ativa o efeito de girar para a direita.
#
# X = 4
# Ativa o efeito de tremer.
#
# X = 5
# Ativa o efeito de ação frontal.
#
# X = 6
# Ativa o efeito de dar um passo para esquerda.
#
# X = 7
# Ativa o efeito de de dar um passo para direita.
#
#==============================================================================
# ■ Animações dos battlers em Colapso.
#==============================================================================
# Coloque as seguintes Tags na caixa de notas dos inimigos ou personagens.
#
# <Motion Collapse = X>
#
# X = 0
# Ativa colapso na vertical.
#
# X = 1
# Ativa o colapso na horizontal.
#
# X = 2
# Ativa o colapso em Zoom OUT.
#
# X = 3
# Ativa o colapso em Zoom IN.
#
# X = 4
# Ativa o colapso em Zoom IN e Zoom OUT.
#
# X = 5
# Ativa o colapso em Modo Boss.
#
# X = 6
# Não ativa colapso.(Do nothing)
#
#==============================================================================
# ■ Ativar animação de dano em condições maléficas.
#==============================================================================
# Coloque a seguinte Tag na caixa de notas de condições para ativar o efeito
# de dano.
#
# <Bad State>
#
#==============================================================================
module MOG_BATTLER_MOTION
#Ativar o efeito no aliados.
ENABLE_ACTOR_MOTION = false
#Ativar o efeito nos inimigos
ENABLE_ENEMY_MOTION = true
#Definição da velocidade do efeito de respirar.
BREATH_EFFECT_SPEED = 1 #Default 1
#Definição do limite de zoom do efeito de respirar.
BREATH_EFFECT_RANGE = [0.92, 1.00] #Default [0.92, 1.00]
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
#--------------------------------------------------------------------------
# ● 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]
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
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
#==============================================================================
# ■ Sprite Battler
#==============================================================================
class Sprite_Battler < Sprite_Base
#--------------------------------------------------------------------------
# ● 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
if $mog_rgss3_aura_effect != nil
update_aura
end
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
execute_motion_damage
execute_motion_animation
execute_motion_action
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
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
#--------------------------------------------------------------------------
# ● 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
#--------------------------------------------------------------------------
# ● Execute Start Animation
#--------------------------------------------------------------------------
def execute_start_animation
return if !@wait_motion_start
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
#--------------------------------------------------------------------------
# ● Setup Initial Motion
#--------------------------------------------------------------------------
def execute_motion_damage
damage_refresh
update_motion_damage
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
return if @battler.motion_damage[1] == 0
self.x = @damage_pre_set[0] + rand(@battler.motion_damage[1])
@battler.motion_damage[1] -= 1
if @battler.motion_damage[1] == 0
if $mog_rgss3_battle_hud != nil and @battler.is_a?(Game_Actor)
return_set(@original_set)
else
return_set(@damage_pre_set)
end
end
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_animation
return if @old_motion_action != -1
return if @battler.motion_damage[1] > 0
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
#==============================================================================
# ■ 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
#--------------------------------------------------------------------------
# ● 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
return if @battler.motion_damage[1] > 0
refresh_action
update_motion_action
end
#--------------------------------------------------------------------------
# ● Update Motion Action
#--------------------------------------------------------------------------
def update_motion_action
return if @battler.motion_action[0] == -1
@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 $mog_rgss3_battle_hud !=nil
return false if @battler.is_a?(Game_Actor) and MOG_BATTLE_HUD::BATTLER_FACE_ENABLE
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 $mog_rgss3_battle_hud != nil and @battler.is_a?(Game_Actor)
return_set(@original_set)
else
return_set(@pre_set)
end
@battler.motion_action = [-1,0]
end
end
#==============================================================================
# ■ Sprite Battler
#==============================================================================
class Sprite_Battler < Sprite_Base
#--------------------------------------------------------------------------
# ● 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
$mog_rgss3_battler_motion = true
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|