#==========================================================================================
#=================================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