Partagez
Aller en bas
avatar
Azuma-01
Membre

Nombre de messages : 94
Age : 26
Localisation : Amos
Distinction : aucune
Date d'inscription : 22/09/2009

Gestion des Transitions entre les scènes ou de combat

le Jeu 26 Jan 2012 - 0:08
Hello tous!
Voici un script offrant une gestion sur les transitions. (un remake de mon premier script)
Dans un premier temps, entres les scènes, sois une aléatoire prise dans Aza::TransitionsAléatoire::Set_Menu par défaut ou dans la variable @transitions si défini. Par exemple vous voulez que la scène quitter (Scene_End) aie une liste différente des autres scènes. Vous ajouter "@transitions=["liste", 'de nom', 'des transitions']" dans la méthode "start" de Scene_End ex:
Code:
  def start
    super
    create_command_window
    @transitions=["Casse"]
  end
Notez que cette variable sera plus utile pour les développeurs qui voudrons ajouter une compatibilité à ce script.

Dans un deuxième temps, ce système gèrent les transitions de combat:
elles sont prisent aléatoire selon la map (voir le module configuration)
ou si le combat est par event vous pouvez définir la transition en ajoutant un appelle de script comme ci-dessous et ensuite lancer le combat.
Code:
 $game_map.transition = "nom_de_la_transition"

Donc voilà le script
Code:
=begin #############################
                        Aza_Random_Transitions
                                 
Author: Azuma-01
Version: 2.0
Date: 16 / 03 / 2010
Last Update: 23 / 01 / 2012
=end ##############################
#----------------------------------------------------------- Instructions ------------------------------------------------------------
#Ce script permet d'avoir des transitions aléatoire et/ou en choisir une en particulier.

# Écrivez cette appelle de script avant de lancer un combat pour voir la transition voulue s'exécuter.
#  $game_map.transition = "nom_de_la_transition"

# Pour la partit aléatoire, vous devez la paramétrez dans le module presonalisation.

# Pour Devs : une variable @transitions est utiliser pour des transirions propre à la scene
#----------------------------------------------------------------------------------------------------------------------------------------
#----------------------------------------------------------- Changes ------------------------------------------------------------
#-2.0 (23/01/2012) => VX Ace compatibility
#                  => minor optimisation
#
#=1.0 (16/03/2010) => Original relase for VX
#----------------------------------------------------------------------------------------------------------------------------------------
module Aza
  module TransitionsAléatoire
#=============================================#
#          ? BEGIN Customization ?          #
#=============================================#
   
    Time = 60 #Temps de transtion en frames (1 frame = 1/60 de seconde)
    Net = 100 # Netteté de la transtion en frames (plus que cette valeur est bas, plus c'est claire)
    Dir_Name = "Transitions" # nom du dossier où se trouve les images (il sera crée automatiquement quand vous exécuterez le jeux)
 
    TR_FOR_MENU = true # true = transition aléatoire à l'ouverture/changement du menu, false = méthode normal (fade in)
    Set_Menu = ["Diamond2","fog"] # liste de transitions pour le menu
   
    TR_FOR_TITLE = false # true = transition aléatoire à l'ouverture du titre, false = méthode normal (fade in)
    Set_Title = []
   
    TR_FOR_BATTLE = false # true = transition aléatoire à l'ouverture d'une bataille, false = méthode normal (fade in)
    Set_Battle = []
   
    Default_Set = ["Spirale","oval","Diamond1"] # liste de transitions par défault
   
    # C'est ICI que vous programmez les tableaux de transtions aléatoires
    Transitions_Set = {
   
      1 => {:transitions => ["Blind1","cerce","Diamond2"], # liste de transitions
                :maps => [2]},# ID des maps reliées aux transitions.
               
      2 => {:transitions => ["Flat1","fog","Casse"],
                :maps => [3]},
               
      3 => {:transitions => [],
                :maps => [4]},
               
      4 => {:transitions => [],
                :maps => []},
               
      5 => {:transitions => [],
                :maps => []},
               
      6 => {:transitions => [],
                :maps => []},
               
      7 => {:transitions => [],
                :maps => []},
               
      8 => {:transitions => [],
                :maps => []},
               
      9 => {:transitions => [],
                :maps => []},
               
  #############################################
#      10 => {:transitions => [],
#                :maps => []},

  ### Ajouter ci-dessus les autres sets ###
    } #<-- ne pas modifier
     
#============================================#
#          ? END Customization ?            #
#        Edit below at your one risk        #
#============================================#
  end
end

($AzaScritps ||= {})['Azuma-01_Random_Transitions']=2.0

#==============================================================================
# ¦ Game Map
#==============================================================================
class Game_Map
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :transition
end

#==============================================================================
# ¦ Scene Map
#==============================================================================
class Scene_Map
  #--------------------------------------------------------------------------
  # * Execute Battle Transition
  #--------------------------------------------------------------------------
  def perform_battle_transition
    time = Aza::TransitionsAléatoire::Time
    net = Aza::TransitionsAléatoire::Net
    if $game_map.transition != nil
      start_transition_in_set([$game_map.transition],time,net)
      Graphics.freeze
      $game_map.transition = nil
      return
    end
    Aza::TransitionsAléatoire::Transitions_Set.each_value{|hash|
      if hash[:maps].include?($game_map.map_id)
        start_transition_in_set(hash[:transitions],time,net)
        Graphics.freeze
        return
      end
    }
    start_transition_in_set(Aza::TransitionsAléatoire::Default_Set,time,net)
    Graphics.freeze
  end

end

#==============================================================================
# ¦ Scene Base
#==============================================================================
class Scene_Base
  #--------------------------------------------------------------------------
  # * start a transition from the set
  #    set : array of transitions names
  #--------------------------------------------------------------------------
  def start_transition_in_set(set,time=20,net=80)
    file_path = File.join('Graphics', Aza::TransitionsAléatoire::Dir_Name,'')
    Graphics.transition(time, File.join(file_path, set[rand(set.size)].to_s),net) rescue nil
  end
 
  #--------------------------------------------------------------------------
  # * Alias Execute Transition
  #--------------------------------------------------------------------------
  alias rand_tr_perform_transition perform_transition unless $@
  def perform_transition
    if @transitions && Aza::TransitionsAléatoire::TR_FOR_MENU
      start_transition_in_set(Array(@transitions))
    elsif Aza::TransitionsAléatoire::TR_FOR_MENU
      start_transition_in_set(Aza::TransitionsAléatoire::Set_Menu)
    else
      rand_tr_perform_transition
    end
  end
 
end

#==============================================================================
# ¦ Scene Battle
#==============================================================================
class Scene_Battle
  #--------------------------------------------------------------------------
  # * Execute Transition
  #--------------------------------------------------------------------------
  def perform_transition
    if Aza::TransitionsAléatoire::TR_FOR_BATTLE
      start_transition_in_set(Aza::TransitionsAléatoire::Set_Battle)
    else
      rand_tr_perform_transition
    end
  end
 
end

#==============================================================================
# ¦ Scene Title
#==============================================================================
class Scene_Title
  #--------------------------------------------------------------------------
  # * Execute Transition
  #--------------------------------------------------------------------------
  def perform_transition
    if Aza::TransitionsAléatoire::TR_FOR_TITLE
      start_transition_in_set(Aza::TransitionsAléatoire::Set_Title)
    else
      rand_tr_perform_transition
    end
  end
 
end
 
#--------------------------------------------------------------------------
# * Create Transitions Folder
#--------------------------------------------------------------------------
file_path = File.join('Graphics', Aza::TransitionsAléatoire::Dir_Name,'')
if !FileTest.directory?(file_path)
  Dir.mkdir(file_path)
  msgbox "création du fichier #{file_path}..."
  exit
end

pour un fichier de transition de base
c'est ici c'est le fichier Transitions.zip

avatar
kenta77
Membre

Nombre de messages : 9
Age : 27
Localisation : devant mon ordi
Distinction : aucune
Date d'inscription : 20/02/2009

Re: Gestion des Transitions entre les scènes ou de combat

le Jeu 26 Jan 2012 - 10:37
Euh, juste une qustion par contre, on l'installe où?? lol!
avatar
Azuma-01
Membre

Nombre de messages : 94
Age : 26
Localisation : Amos
Distinction : aucune
Date d'inscription : 22/09/2009

Re: Gestion des Transitions entre les scènes ou de combat

le Jeu 26 Jan 2012 - 15:41
@kenta77 a écrit:Euh, juste une qustion par contre, on l'installe où?? lol!
Où vous voulez, tant qu'il est sous Scene_Battle et au dessus de Main
Note : c'est F11 pour ouvrir l'éditeur de scripts.
avatar
Berka
Administrateur

Nombre de messages : 1831
Age : 28
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

Re: Gestion des Transitions entre les scènes ou de combat

le Jeu 26 Jan 2012 - 16:26
Sympa comme script !

Juste, fais attentions aux conventions: pas d'accent dans les noms de classes et de méthodes. En fait, dans toutes les étiquettes d'objets.
Une petite coquille: $AzaScripts

Et enfin, une question: pourquoi avoir fait un hash indexé pour Transitions_Set ? Un tableau aurait suffi !
avatar
Azuma-01
Membre

Nombre de messages : 94
Age : 26
Localisation : Amos
Distinction : aucune
Date d'inscription : 22/09/2009

Re: Gestion des Transitions entre les scènes ou de combat

le Jeu 26 Jan 2012 - 16:53
@Berka a écrit:Sympa comme script !

Juste, fais attentions aux conventions: pas d'accent dans les noms de classes et de méthodes. En fait, dans toutes les étiquettes d'objets.
Une petite coquille: $AzaScripts

Et enfin, une question: pourquoi avoir fait un hash indexé pour Transitions_Set ? Un tableau aurait suffi !
À la base (v1.0) je voilais utiliser Hash#default ou l'index nil au-lieux de la constante Default_Set et j'ai pas fait l'effort de changer depuis. Evil or Very Mad
avatar
LightNox
Membre

Nombre de messages : 1759
Age : 28
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008

Re: Gestion des Transitions entre les scènes ou de combat

le Jeu 26 Jan 2012 - 16:56
Jolie script azuma je testerais a l'occasion vue que je suis en train de faire mon jeu sous VX Ace.

merci pour le script ^^.
avatar
kenta77
Membre

Nombre de messages : 9
Age : 27
Localisation : devant mon ordi
Distinction : aucune
Date d'inscription : 20/02/2009

Re: Gestion des Transitions entre les scènes ou de combat

le Jeu 26 Jan 2012 - 19:59
Ok merci beaucoup sa va m'être utile ! Very Happy
Contenu sponsorisé

Re: Gestion des Transitions entre les scènes ou de combat

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