Citadin Lv.7
Age : 38 Inscrit le : 12/02/2010 Messages : 204
| Sujet: [VX] Modifier l'apparence des barre de Hp et Mp Mar 16 Mar 2010 - 15:43 | |
| Bonjour, - L'auteur : Doddy (Inspiré de scripts sur Xp) - Explication : Ce script permet de modifier l'apparence des barre de Hp et Mp. - Comment faire marcher le script : Placez ce script au dessus de tout les autres que vous avez ajouté. - La version : V1.0 - La date de sortie du script : 16/03/2010 - Compatibilité : Si les barres de Hp et Mp ont une autre apparence que celle de base dans votre menu alors les barres se superposent. - Screen :- Le Script : - Code:
-
#================================= #Auteur:Doddy #modifie l'apparence des jauge de Hp et mp #Version: 1.0 #date: 16/03/2010 #fait pour : http://rpg-maker-vx.bbactif.com #================================= class Window_Base #================================= # Jauge_Hp #================================= def draw_actor_hp_gauge(actor, x, y, width = 144) if actor.maxhp != 0 rate = actor.hp.to_f / actor.maxhp else rate = 0 end
plus_x = 0 rate_x = 0 plus_y = 23 plus_width = 5 rate_width = 100 height = 10 align1 = 1 align2 = 2 align3 = 0 grade1 = 1 grade2 = 0 color1 = Color.new(0, 0, 0, 192) color2 = Color.new(255, 255, 192, 192) color3 = Color.new(0, 0, 0, 192) color4 = Color.new(64, 0, 0, 192) color5 = Color.new(80 - 24 * rate, 80 * rate, 14 * rate, 192) color6 = Color.new(240 - 72 * rate, 240 * rate, 62 * rate, 192)
if actor.maxhp != 0 hp = (width + plus_width) * actor.hp * rate_width / 100 / actor.maxhp else hp = 0 end
gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y, width, plus_width + width * rate_width / 100, height, hp, align1, align2, align3, color1, color2, color3, color4, color5, color6, grade1, grade2) end #================================= # Jauge_Mp #================================= def draw_actor_mp_gauge(actor, x, y, width = 144)
if actor.maxmp != 0 rate = actor.mp.to_f / actor.maxmp else rate = 1 end
plus_x = 0 rate_x = 0 plus_y = 23 plus_width = 5 rate_width = 100 height = 10 align1 = 1 align2 = 2 align3 = 0 grade1 = 1 grade2 = 0 color1 = Color.new(0, 0, 0, 192) color2 = Color.new(255, 255, 192, 192) color3 = Color.new(0, 0, 0, 192) color4 = Color.new(0, 64, 0, 192) color5 = Color.new(14 * rate, 80 - 24 * rate, 80 * rate, 192) color6 = Color.new(62 * rate, 240 - 72 * rate, 240 * rate, 192)
if actor.maxmp != 0 mp = (width + plus_width) * actor.mp * rate_width / 100 / actor.maxmp else mp = (width + plus_width) * rate_width / 100 end
gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y, width, plus_width + width * rate_width / 100, height, mp, align1, align2, align3, color1, color2, color3, color4, color5, color6, grade1, grade2) end #================================= def gauge_rect(x, y, rect_width, width, height, gauge, align1, align2, align3, color1, color2, color3, color4, color5, color6, grade1, grade2) case align1 when 1 x += (rect_width - width) / 2 when 2 x += rect_width - width end case align2 when 1 y -= height / 2 when 2 y -= height end
self.contents.fill_rect(x, y, width, height, color1) self.contents.fill_rect(x + 1, y + 1, width - 2, height - 2, color2) if align3 == 0 if grade1 == 2 grade1 = 3 end if grade2 == 2 grade2 = 3 end end if (align3 == 1 and grade1 == 0) or grade1 > 0 color = color3 color3 = color4 color4 = color end if (align3 == 1 and grade2 == 0) or grade2 > 0 color = color5 color5 = color6 color6 = color end
self.contents.gradation_rect(x + 2, y + 2, width - 4, height - 4, color3, color4, grade1) if align3 == 1 x += width - gauge end
self.contents.gradation_rect(x + 2, y + 2, gauge - 4, height - 4, color5, color6, grade2) end end #================================= class Bitmap
def gradation_rect(x, y, width, height, color1, color2, align = 0) if align == 0 for i in x...x + width red = color1.red + (color2.red - color1.red) * (i - x) / (width - 1) green = color1.green + (color2.green - color1.green) * (i - x) / (width - 1) blue = color1.blue + (color2.blue - color1.blue) * (i - x) / (width - 1) alpha = color1.alpha + (color2.alpha - color1.alpha) * (i - x) / (width - 1) color = Color.new(red, green, blue, alpha) fill_rect(i, y, 1, height, color) end elsif align == 1 for i in y...y + height red = color1.red + (color2.red - color1.red) * (i - y) / (height - 1) green = color1.green + (color2.green - color1.green) * (i - y) / (height - 1) blue = color1.blue + (color2.blue - color1.blue) * (i - y) / (height - 1) alpha = color1.alpha + (color2.alpha - color1.alpha) * (i - y) / (height - 1) color = Color.new(red, green, blue, alpha) fill_rect(x, i, width, 1, color) end
elsif align == 2 for i in x...x + width for j in y...y + height red = color1.red + (color2.red - color1.red) * ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 green = color1.green + (color2.green - color1.green) * ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 blue = color1.blue + (color2.blue - color1.blue) * ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 alpha = color1.alpha + (color2.alpha - color1.alpha) * ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 color = Color.new(red, green, blue, alpha) set_pixel(i, j, color) end end
elsif align == 3 for i in x...x + width for j in y...y + height red = color1.red + (color2.red - color1.red) * ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 green = color1.green + (color2.green - color1.green) * ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 blue = color1.blue + (color2.blue - color1.blue) * ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 alpha = color1.alpha + (color2.alpha - color1.alpha) * ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2 color = Color.new(red, green, blue, alpha) set_pixel(i, j, color) end end end end end
Dernière édition par Doddy le Mar 16 Mar 2010 - 20:37, édité 1 fois |
|