- Azuma-01Membre
- Nombre de messages : 94
Age : 32
Localisation : Amos
Distinction : aucune
Date d'inscription : 22/09/2009
Gestion des Transitions entre les scènes ou de combat
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:
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.
Donc voilà le script
pour un fichier de transition de base
c'est ici c'est le fichier Transitions.zip
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
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
- kenta77Membre
- Nombre de messages : 9
Age : 33
Localisation : devant mon ordi
Distinction : aucune
Date d'inscription : 20/02/2009
Re: Gestion des Transitions entre les scènes ou de combat
Jeu 26 Jan 2012 - 10:37
Euh, juste une qustion par contre, on l'installe où??
- Azuma-01Membre
- Nombre de messages : 94
Age : 32
Localisation : Amos
Distinction : aucune
Date d'inscription : 22/09/2009
Re: Gestion des Transitions entre les scènes ou de combat
Jeu 26 Jan 2012 - 15:41
Où vous voulez, tant qu'il est sous Scene_Battle et au dessus de Mainkenta77 a écrit:Euh, juste une qustion par contre, on l'installe où??
Note : c'est F11 pour ouvrir l'éditeur de scripts.
Re: Gestion des Transitions entre les scènes ou de combat
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 !
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 !
- Azuma-01Membre
- Nombre de messages : 94
Age : 32
Localisation : Amos
Distinction : aucune
Date d'inscription : 22/09/2009
Re: Gestion des Transitions entre les scènes ou de combat
Jeu 26 Jan 2012 - 16:53
À 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.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 !
- LightNoxMembre
- Nombre de messages : 1759
Age : 34
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008
Re: Gestion des Transitions entre les scènes ou de combat
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 ^^.
merci pour le script ^^.
- kenta77Membre
- Nombre de messages : 9
Age : 33
Localisation : devant mon ordi
Distinction : aucune
Date d'inscription : 20/02/2009
Re: Gestion des Transitions entre les scènes ou de combat
Jeu 26 Jan 2012 - 19:59
Ok merci beaucoup sa va m'être utile !
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum