Le Deal du moment : -20%
Ecran PC GIGABYTE 28″ LED M28U 4K ( IPS, 1 ms, ...
Voir le deal
399 €

Aller en bas
Rhydan
Rhydan
Membre

Nombre de messages : 249
Age : 29
Localisation : Grenoble
Distinction : aucune
Date d'inscription : 16/11/2013
https://www.youtube.com/channel/UCFGbrXwKcYmj1OZaodTXo1w

Résolu [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 ^^'


Dernière édition par Rhydan le Dim 22 Juin 2014 - 12:59, édité 1 fois
Gelarto
Gelarto
Gelato 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

Résolu 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 Smile

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)
Rhydan
Rhydan
Membre

Nombre de messages : 249
Age : 29
Localisation : Grenoble
Distinction : aucune
Date d'inscription : 16/11/2013
https://www.youtube.com/channel/UCFGbrXwKcYmj1OZaodTXo1w

Résolu 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 Smile
Gelarto
Gelarto
Gelato 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

Résolu 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 Wink
Rhydan
Rhydan
Membre

Nombre de messages : 249
Age : 29
Localisation : Grenoble
Distinction : aucune
Date d'inscription : 16/11/2013
https://www.youtube.com/channel/UCFGbrXwKcYmj1OZaodTXo1w

Résolu Re: [résolu]Besoin de script

Lun 24 Fév 2014 - 0:15
J'ai test le script de Yami, voila le resultat :
[résolu]Besoin de script 113

[résolu]Besoin de script 213

J'ai donc viré le script qui pose problème et voila le resultat :

[résolu]Besoin de script 311

[résolu]Besoin de script 410

Et pour le script de Victor, je l'installe et cela me dis que c'est le meme script (image 2) qui pose problème.
Spytje
Spytje
Administrateur

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

Résolu 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à ?
Rhydan
Rhydan
Membre

Nombre de messages : 249
Age : 29
Localisation : Grenoble
Distinction : aucune
Date d'inscription : 16/11/2013
https://www.youtube.com/channel/UCFGbrXwKcYmj1OZaodTXo1w

Résolu 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
Spytje
Spytje
Administrateur

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

Résolu 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.
Rhydan
Rhydan
Membre

Nombre de messages : 249
Age : 29
Localisation : Grenoble
Distinction : aucune
Date d'inscription : 16/11/2013
https://www.youtube.com/channel/UCFGbrXwKcYmj1OZaodTXo1w

Résolu Re: [résolu]Besoin de script

Dim 2 Mar 2014 - 0:36
Donc aucun moyen ?
Spytje
Spytje
Administrateur

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

Résolu 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 ?
Rhydan
Rhydan
Membre

Nombre de messages : 249
Age : 29
Localisation : Grenoble
Distinction : aucune
Date d'inscription : 16/11/2013
https://www.youtube.com/channel/UCFGbrXwKcYmj1OZaodTXo1w

Résolu 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 !

Anonymous
Invité
Invité

Résolu 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/
Ewaldar
Ewaldar
Membre

Nombre de messages : 1386
Age : 30
Localisation : Suisse
Distinction : aucune
Date d'inscription : 29/12/2011
http://ewaldar.wixsite.com/les-ames-perdues

Résolu 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

Rhydan
Rhydan
Membre

Nombre de messages : 249
Age : 29
Localisation : Grenoble
Distinction : aucune
Date d'inscription : 16/11/2013
https://www.youtube.com/channel/UCFGbrXwKcYmj1OZaodTXo1w

Résolu Re: [résolu]Besoin de script

Dim 22 Juin 2014 - 12:59
résolu
Contenu sponsorisé

Résolu Re: [résolu]Besoin de script

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum