Barre de progression

Publié le par Cid6

Ce scribt permettra de faire aparaître une jauge qui représentera le niveau d'expérience ! Je ne l'ai pas encore testé parce ke je travail sur un projet ou la compatibilité des scribts est assez.....emmerdante mais bon, peu importe !

Mettez ce scribt en Bas de Window_Base:

Code:

#=====================================
#Gradient Bars with customizable lengths, thicknesses, types and Colors
#By AcedentProne
#=====================================

def draw_normal_barz(x, y, type, length, thick, e1, e2, c1 = Color.new(255,0,0,255), c2 = Color.new(0,0,0,255))
if type == "horizontal"
width = length
height = thick
self.contents.fill_rect(x-1, y - 1, width+2, height + 3, Color.new(255, 255, 255, 255))
self.contents.fill_rect(x, y, width, height + 1, Color.new(0, 0, 0, 255))
w = width * e1 / e2
for i in 0..height
r = c1.red + (c2.red - c1.red) * (height -i)/height + 0 * i/height
g = c1.green + (c2.green - c1.green) * (height -i)/height + 0 * i/height
b = c1.blue + (c2.blue - c1.blue) * (height -i)/height + 0 * i/height
a = c1.alpha + (c2.alpha - c1.alpha)* (height -i)/height + 255 * i/height
self.contents.fill_rect(x, y+i, w, 1, Color.new(r, g, b, a))
end
elsif type == "vertical"
width = thick
height = length
self.contents.fill_rect(x-1, y - 1, width+3, height + 2, Color.new(255, 255, 255, 255))
self.contents.fill_rect(x, y, width+1, height , Color.new(0, 0, 0, 255))
h = height * e1 / e2
for i in 0..width
r = c1.red + (c2.red - c1.red) * (width -i)/width + 0 * i/width
g = c1.green + (c2.green - c1.green) * (width -i)/width + 0 * i/width
b = c1.blue + (c2.blue - c1.blue) * (width -i)/width + 0 * i/width
a = c1.alpha + (c2.alpha - c1.alpha)* (width -i)/width + 255 * i/width
self.contents.fill_rect(x+i, y, 1, h, Color.new(r, g, b, a))
end
end
end
def draw_actor_barz(actor,x, y, type, length, thick, e1, e2, c1 = Color.new(255,0,0,255), c2 = Color.new(0,0,0,255))
if type == "horizontal"
width = length
height = thick
self.contents.fill_rect(x-1, y - 1, width+2, height + 3, Color.new(255, 255, 255, 255))
self.contents.fill_rect(x, y, width, height + 1, Color.new(0, 0, 0, 255))
w = width * e1 / e2
for i in 0..height
r = c1.red + (c2.red - c1.red) * (height -i)/height + 0 * i/height
g = c1.green + (c2.green - c1.green) * (height -i)/height + 0 * i/height
b = c1.blue + (c2.blue - c1.blue) * (height -i)/height + 0 * i/height
a = c1.alpha + (c2.alpha - c1.alpha)* (height -i)/height + 255 * i/height
self.contents.fill_rect(x, y+i, w, 1, Color.new(r, g, b, a))
end
elsif type == "vertical"
width = thick
height = length
self.contents.fill_rect(x-1, y - 1, width+3, height + 2, Color.new(255, 255, 255, 255))
self.contents.fill_rect(x, y, width+1, height , Color.new(0, 0, 0, 255))
h = height * e1 / e2
for i in 0..width
r = c1.red + (c2.red - c1.red) * (width -i)/width + 0 * i/width
g = c1.green + (c2.green - c1.green) * (width -i)/width + 0 * i/width
b = c1.blue + (c2.blue - c1.blue) * (width -i)/width + 0 * i/width
a = c1.alpha + (c2.alpha - c1.alpha)* (width -i)/width + 255 * i/width
self.contents.fill_rect(x+i, y, 1, h, Color.new(r, g, b, a))
end
end
end


Puis creer un nouveau scrîpt au dessus de Main nommé [Scene_Progress]
Mettez ce Code:

Code:

#Game Progress Screen made by osbornecreations A.K.A Lewis Osborne
#This was made by an englishman!!! (thats me) go on son!
#Just put in a new screen above main. it shouldn't interfere with anything.
#To call the scrîpt, use $scene = Scene_Progress.new and to change the
#game progress bar, it is assigned using $game_variables[1] so through the game
#call a scrîpt and type in something like $game_variables[1] =10 to make the game 10% complete.
#===================================================
# Scene_Progress
#===================================================
class Scene_Progress

#---------------------------------------------------------------------------------
def initialize
end
#---------------------------------------------------------------------------------

def main
@window1 = Window_Progress.new
@window1.x =160
@window1.y =200
@window1.height = 100
@window1.width = 341
#@window1.z = 200

Graphics.transition
loop do
Graphics.update
Input.update
if Input.trigger?(Input::B)
# LZ SE t
$game_system.se_play($data_system.cancel_se)
# }bvハノリヨヲ
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.panorama("", 0)
$scene = Scene_Menu.new
end
#update
if $scene != self
break
end
end

Graphics.freeze
@window1.dispose

end
#---------------------------------------------------------------------------------

#---------------------------------------------------------------------------------
def update
end
#---------------------------------------------------------------------------------

end
class Window_Progress < Window_Base

#---------------------------------------------------------------------------------
def initialize
super(0, 0, 341,100)
self.contents = Bitmap.new(width - 50, height - 32)
self.contents.font.name = "Tahoma"
self.contents.font.size = 24
self.contents.font.color = text_color(0)
self.contents.draw_text(20, 0, 33, 33, "Progré")
self.contents.draw_text(55, 0, 33, 33, "du")
self.contents.draw_text(88, 0, 33, 33, "Jeu ")
self.contents.draw_text(110, 0, 33, 33, "% ")
draw_actor_barz(0,20,35, "horizontal", 255, 28,$game_variables[1],100)
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.panorama("004-CloudySky01", 0)
end
#---------------------------------------------------------------------------------
end

Puis pour Utiliser ce scrîpt Mettez:

Code:

$scene = Scene_Progress.new

Utilisation:

Ligne 62:Specifiez La police Du message
Ligne 63:Specifiez La Taille Du message
Ligne 64:Specifiez La couleur Du message
Lignes 65,66,67,68:Le contenu du Message
Ligne 69:Specifiez L'id de Lavariable[Si vous voulez que la barre soit affichée verticalement changez"horizontal"par"vertical"]
Ligne 71:Specifiez le nom du panorama.


C'est fini

 
Publicité

Publié dans Scripts RPG Makers XP

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
M
<br /> <br /> ou faut-il mettre ce dernier morceau de script?<br /> <br /> <br />  <br /> <br /> <br /> "Code:<br /> <br /> <br /> $scene = Scene_Progress.new"<br /> <br /> <br /> <br />
Répondre
C
<br /> <br /> Il faut l'ouvrir avec la fonction "script" avec un évènement. Il permet d'ouvrir la fenêtre dans laquelle apparait la progression.<br /> <br /> <br /> <br />
S
<br /> <br /> le dernier code, on le met où<br /> <br /> <br /> <br />
Répondre
C
<br /> Il faut le mettre dans l'appel de script, grâce aux évènements. Cela appelle la "scène", d'où la syntaxe du script.<br /> <br /> <br />
S
Euh, moi j'ai un problème, il me dit que ce qui yavait a la base a un problème dedans ..     @windowskin_name = $game_system.windowskin_namesi je le met en commentaire ainsi de suite il me met plein d'autres erreurs...
Répondre
C
<br /> cela peut dépendre de la version d'RPG Maker que tu utilises... Apparament, le problème vient du nom du skin des fenêtres... (le system), et ce n'est peut-être pas un problème de script...<br /> Si tu as mis d'autres scripts qui modifient le script windowskin, ça peut venir de là...<br /> <br /> <br />
C
Oui, il marche trés bien, d'ailleurs je l'ai trafiqué afin d'avoir trois barres simultanément, mais celui là n'affiche qu'une barre et elle devrais marcher.<br /> Maintenant, si tu as un probléme tu pourais me contacter en écrivant le motif du probléme.
Répondre
H
salut je voudrai savoir si vous avez reussi a faire marchez ce scripts ??<br /> merci car jai quelque probleme.merci de me répondre
Répondre