Langage : Ruby
Posté le 30 décembre 2011
Télécharger | Reposter
#========================================================================================== #=================================Scene_Metier============================================== #========================================================================================== ######Auteur:Black974 - Red-Seeds ######Commencement du script:Jeudi 22Décembre 2011(22/12/11) ######Fin du script: Jeudi 29Décembre 2011 (29/12/11) ######Remerciment: / # http://rpg-maker-vx.bbactif.com/ ######Difficulté:Moyen ######N°3 ######Version:1.0 #(Partage autorisé, si vous indiqué l'auteur, les remerciements et le lien) #========================================================================================== =begin Permet de faire un systeme de metiers: Une image qui s'affiche, selon le metier Affiche un titre, dont la taille et la couleur est modifiable 5 lignes de description(configurable) au maximum pour chaque metiers 1 icône qui s'affiche à droite de la description.L'ID est configurable Une barre d'exp dont le la couleur(en dégradé) est configurable ainsi que le type(en % ou en normal (x / y)) L'exp est modifiable par une variable En dessous de la barre d'exp, deux texte peut s'afficher, avec une îcone à droite. Ces texte sont modifiables par selon le niveau et le metiers. Le niveau est actualiser automatiquement Bug remarqué: Si l'exp requis est superieur à 110, la barre ne s'affichera pas. Requis: Une connaissance de base sur les Variables 2Variables par choix =end #========================================================================================== #Copier/Coller ce script au dessus de main # #========================================================================================== #=================================CONFIGURATION=========================================== #========================================================================================== module Metier module Blk #Ici, le nom du choix, le titre, l'ID de l'icone et l'ID de la variable qui gère le niveau #ID => ["NmChoix","Titre",Icon, IDvar,IDVarNiv], # Exemple: # 23 => ["Mecanicien", "Roi des outils", 54, 23, 2004] # 23 est L'ID du choix # "Mecanicien" est le titre du choix # "Roi des outils"est le titre dans la fenêtre # 54 est l'ID de l'icône # 1 est L'ID de la variable qui gère l'EXP # 2004 est l'ID de la variable qui gère le niveau # "Bucheron" Lle nom de l'image qui s'affiche en haut du titre(si aucun image mettez nil) Choix ={ 1 => ["Bucheron","Coupe et coupe",25,1,2001], 2 => ["Mineur","Maitre de la pioche",56,2,2002], 3 => ["Alchimiste","Créateur de bijoux", 72,3,2003], 4 => ["Paysan","Recolter, et créer",75,4,2004], } #A ne pas supprimer ! #Ici l'experience requis pour passer au niveau supérieur. Niveau ={ #ID =>[NivR1,NivR2,NivR3................................NivR10], #NivR = Niveau Requis pour aller au niveau... #ID => [TOUJOURS1!,NivR2 etc] 1 => [1,670,790,1120],#Dans le choix n°1(de base), il faudra 670Exp pour aller au niveau2 etc... 2 => [1,120,130,170],#120Exp pour aller au niveau2 3 => [1,20,30,40], 4 => [1,500,600,700], }#A ne pas supprimer ! #Ici, la description de chaque metiers. #5 lignes au Maximum.Chaquee lignes est séparé d'une virgule Description = { 1 => ["Metier qui consiste à couper du bois.",#Ligne1 "Une grande force phisique est requise", #Ligne2 "C'est un metiers qui est ardu.", #Ligne3 "Il faut avoir du courage de l'ambition, du talent", #Ligne4 "pour aimer et pratiquer ce metier."], #Ligne5 2 => ["Piocher trouver des minerai, voila le seul",#Ligne1 "hobbies de Mineurs.Les mineurs ont une grande",#Ligne2 "connaissance et ont une grande force phisique",#Ligne3 "Ils sont même capable, pour leur metiers, d'aller jusqu'a",#Ligne4 "chercher des roches volcaniques."],#Ligne5 3 => ["1",#Ligne1 "2",#Ligne2 "3",#Ligne3 "4",#Ligne4 "5"],#Ligne5 4 => ["I1",#Ligne1 "2",#Ligne2 "3",#Ligne3 "4",#Ligne4 "5"],#Ligne5 }#A ne pas supprimer ! Zone_Texte ={ #ID=>{Niveau[Icon,Texte, Icon, Texte]} 1 => {1=>[23,"Hache en fer" ,54,"Tronçeneuse de film d'horreur"], 2=>[26,"Hache en Acier" ,38,"Tronçeneuse qui coupe tout"], 3 =>[45, "TexteNiveau3(1)" ,20,"TexteNiveau3(2)"], 4 =>[46, "TexteNiveau4(1)" ,24,"TexteNiveau4(2)"], }, #Ne pas supprimer ! 2 => {1=>[18,"TexteNiveau1(1)" ,34,"TexteNiveau1(2)"], 2=>[56,"TexteNiveau2(1)" ,8,"TexteNiveau2(2)"], 3 =>[45, "TexteNiveau3(1)" ,20,"TexteNiveau3(2)"], 4 =>[46, "TexteNiveau4(1)" ,24,"TexteNiveau4(2)"], }, #Ne pas supprimer ! 3 => {1=>[23,"TexteNiveau1(1)" ,54,"TexteNiveau1(2)"], 2=>[26,"TexteNiveau2(1)" ,38,"TexteNiveau2(2)"], 3 =>[45, "TexteNiveau3(1)" ,20,"TexteNiveau3(2)"], 4 =>[46, "TexteNiveau4(1)" ,24,"TexteNiveau4(2)"], },#Ne pas supprimer ! 4 => {1=>[23,"TexteNiveau1(1)" ,54,"TexteNiveau1(2)"], 2=>[26,"TexteNiveau2(1)" ,38,"TexteNiveau2(2)"], 3 =>[45, "TexteNiveau3(1)" ,20,"TexteNiveau3(2)"], 4 =>[46, "TexteNiveau4(1)" ,24,"TexteNiveau4(2)"], },#Ne pas supprimer ! } #Ne pas supprimer ! Taille_T = 54 #Ici, la taille du titre Pos = 1 #La position du titre # 0 = à gauche # 1 = au milieu # 2 = à droite Couleur_T = [150,150,0,255]#Ici la couleur du titre #Couleur_T = [Nuance de Rouge,NV,NB,Intensité] Couleur_Exp1 = Color.new(28,220,28,140)#Couleur de la barre d'exp 1(dégradé) Couleur_Exp2 = Color.new(0,0,0,255) #Couleur de base(Fond) Couleur_Exp3 = Color.new(28,210,28,230)#Couleur de la barre d'exp 1(dégradé) Prcen = false #Si true, affiche le pourcentage des niveaux, sinon false end end #========================================================================================= #============================FIN DE LA CONFIGURATION====================================== #========================================================================================= class Scene_Metier < Scene_Base def start #Def start @commands = [] @choix = [] @nb = Metier::Blk::Choix.size for id in 1..@nb #Boucle @commands.push(Metier::Blk::Choix[id][0]) end #Fin du boucle @choix = Window_Command.new(150, @commands) @choix.x = 0 @choix.y = 0 @fenetre = Window_Metier.new @fenetre.z = 0 end #Fin du def def terminate #Def terminate @choix.dispose end #Fin du def def update #Def update @choix.update if Input.trigger?(Input::B) Sound.play_cancel $scene = Scene_Map.new end @fenetre.set_action(@choix.index) end end #=============================================== #°Window_Metier #=============================================== class Window_Metier < Window_Base def initialize #Def initialize super(150,0,544-150,416) end #Fin du def def set_action(num) @action = num refresh end #=========================================== #°REFRESH #========================================== def refresh case @action when @action #===TITRE= self.contents.clear #On supprime les self.contents self.contents.font.size = Metier::Blk::Taille_T #On modifie la Taille du titre @id = Metier::Blk::Couleur_T #La Var glob sera égale à la couleur self.contents.font.color = Color.new(@id[0],@id[1],@id[2],@id[3]) self.contents.draw_text(0,-150,544-170,416,Metier::Blk::Choix[@action.to_i + 1][1], Metier::Blk::Pos) self.contents.font.size = 18 #TEXTE @taille = -150+54+24 self.contents.font.color = Color.new(255,255,255,255) @texte = 0 while (@texte <=4) #Début de la boucle self.contents.draw_text(0,@taille+(24*@texte),544-220,416,Metier::Blk::Description[@action.to_i + 1][@texte], 0) @texte += 1 end #Fin de la boucle #ICON @icon = Metier::Blk::Choix[@action+1][2] bitmap = Cache.system("Iconset") rect = Rect.new(@icon % 16 * 24, @icon / 16 * 24, 24, 24) self.contents.blt(416-100,25*5, bitmap, rect) #Barre d'exp: @nb1 = Metier::Blk::Niveau[@action.to_i + 1][0] @nb2 = Metier::Blk::Niveau[@action.to_i + 1][1] @gw = 120 * @nb1 / @nb2 Calcul_exp(@niveau) #Variables; @gc1 = Metier::Blk::Couleur_Exp1 @gc2 = Metier::Blk::Couleur_Exp2 @new_color = Metier::Blk::Couleur_Exp1 @new_color2 = Metier::Blk::Couleur_Exp2 @new_color3 = Metier::Blk::Couleur_Exp3 self.contents.fill_rect(130,270, 110, 10, @new_color2) #IF: Calcul_exp(@niveau) if @exp >= @exprequis #Si l'exp est superieur ou égal à l'exp requis Monter_niv(@niveau) #Appeller la def Monter Niveau end if @exp > 0 #Si l'exp est superieur à 1 @calcul = 110/@exprequis.to_i * @exp.to_i self.contents.gradient_fill_rect(130,270, @calcul, 10, @new_color,@new_color3) end #Fin du if self.contents.font.bold = true #Activer le texte en gras self.contents.font.size = 24 #La taille est de 24 #=======Si Prcen est activé============== if Metier::Blk::Prcen #Si Prcen est vrai self.contents.draw_text(0,60,544-170,416, @prcen.to_s + " %", 1) #modifier l'exp en % else #Sinon #========Si Prcen n'est pas activé================= self.contents.draw_text(0,60,544-170,416,@exp.to_s + " / " + @exprequis.to_s, 1) #Texte normal end #Fin du if #============Afficher le niveau========================== self.contents.draw_text(110,60,544-170,416, @niveau.to_i ,0) self.contents.draw_text(260,60,544-170,416, @niveau.to_i+1,0) self.contents.font.bold = false #=============Afficher le texte========================== @z_texte1 = Metier::Blk::Zone_Texte[@action.to_i + 1][@niveau ][1] @z_icon1 = Metier::Blk::Zone_Texte[@action.to_i + 1][@niveau ][0] @z_texte2 = Metier::Blk::Zone_Texte[@action.to_i + 1][@niveau ][3] @z_icon2 = Metier::Blk::Zone_Texte[@action.to_i + 1][@niveau ][2] #Icon: rect = Rect.new(@z_icon1 % 16 * 24, @z_icon1 / 16 * 24, 24, 24) self.contents.blt(0,315, bitmap, rect) rect = Rect.new(@z_icon2 % 16 * 24, @z_icon2 / 16 * 24, 24, 24) self.contents.blt(0,350, bitmap, rect) self.contents.font.size = 18 #La taille est de 24 self.contents.draw_text(40,50,500,550,@z_texte1,0) self.contents.draw_text(40,80,544,560,@z_texte2,0) end #When end #Def #Gerer l'exp def Calcul_exp(niveau) @exp = $game_variables[Metier::Blk::Choix[@action.to_i + 1][3]] @exprequis = Metier::Blk::Niveau[@action.to_i + 1][@niveau.to_i] if Metier::Blk::Prcen then @prcen = @exp * 100 / @exprequis end @niveau = $game_variables[Metier::Blk::Choix[@action.to_i + 1][4]] if $game_variables[Metier::Blk::Choix[@action.to_i + 1][4]] == 0 #Si la variable choisis = 0 $game_variables[Metier::Blk::Choix[@action.to_i + 1][4]] = 1#Mettre 1 end #Si la valeur de la variable choisis est égale à la variable requis pour monter d'un niveau end #Gerer le niveau def Monter_niv(niveau) $game_variables[Metier::Blk::Choix[@action.to_i + 1][4]] += 1#Augmenter le niveau Calcul_exp(@niveau) end end#Fin de la class
x
Éditer le texte

Merci d'entrer le mot de passe que vous avez indiqué à la création du texte.

x
Télécharger le texte

Merci de choisir le format du fichier à télécharger.