Tu peux même pousser un peu plus loin en faisant carrément un array avec les noms de fichier dedans.
Exemple :
- Code:
-
params = ["WinBlue","WinRed","WinDows"]
#Blablabla
self.windowskin = Cache.system(params[$game_variables[IdVariableWindow]])
#Blablabla
Enfin, le gros problème de ton code, c'est simplement qu'il "écrase" tout le reste. C'est à dire que si tu le place après un script qui fait des modifs sur l'initialize de WindowBase, ben ces modifs sont inutiles.
Ruby, permet un truc cool pour les systèmes tels que RPG maker qui est de pouvoir aliaser ses methodes. Cela permet d'utiliser la précédente version de la méthode afin 'd'ajouter' du code. En programation normale, c'est stupide, mais quand on a des systèmes qui s'ajoutent en un script c'est hyper pratique (ça permet d'assurer la compatibilité tout en restant simple pour l'utilisateur final).
Voici ce que tu pourrais faire.
- Code:
-
alias init_old initialize
def initialize(x, y, width, height)
init_old(x, y, width, height)
self.windowskin = Cache.system("Style 10")
# Blablabla
end
En gros, cela fera tous les éléments de la methode initialise PLUS tout ce que tu as ajouté là.
Dernière chose. Par rapport à ça :
- Code:
-
"Window"+$game_variables[IdVariableWindow].to_s
Personellement je préfere faire ça :
- Code:
-
"Window#{$game_variables[IdVariableWindow]"
ou alors
- Code:
-
sprintf("Window%d", $game_variables[IdVariableWindow])
Après, je vais pas dire que c'est un révolution ce script étant donné qu'il en existe plein de même genre. Mais bon, la plupart des gens qui ont commencé sur VX sont passé par là (dont moi).
Bon courage pour la suite !