- Zephyr_1.2Membre
- Nombre de messages : 158
Localisation : Scénariste érrant...
Distinction : aucune
Date d'inscription : 13/02/2008
Mog Menu_Status_Aya V 1.0
Mer 13 Fév 2008 - 23:33
Voici un script qui vous permet de modifier l'apparence de votre menu statut.
Ici, un screen :
Vous trouverez les images dans la démo: DEMO
Ici, un screen :
- Code:
##################################################
# Mog Menu_Status_Aya V 1.0
##################################################
# By Moghunter
# http://www.atelier-rgss.com
# Traduit par: Ouroboros [metalic_puppets@hotmail.fr] pour RPG MAKER VX
# Exclusivité RPG MAKER VX http://rpgmakervx.1fr1.net
##################################################
# Le Menu statut nécéssite des images.
# Il est nécessaire de garder les mêmes nom
# Créer dans le dossier Graphics, un nouveau dossier nommé Menus et mettez y les image du menu.
# Vous pourrez personnaliser votre menu en éditant les images à l'aide d'un logiciel de retouche.
#-------------------------------------------------
#===============================================================
#
# rpgmakervx.1fr1.net
#
#===============================================================
module MOG_VX07
# Configuration des paramètres maximum.
MAX_PARAMETER = 999
end
##############
# Game_Actor #
##############
class Game_Actor < Game_Battler
def now_exp
return @exp - @exp_list[@level]
end
def next_exp
return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
end
end
###############
# module Cache #
###############
module Cache
def self.menu(filename)
load_bitmap("Graphics/Menus/", filename)
end
end
##############
# Window_Base #
##############
class Window_Base < Window
def draw_actor_atk_menu_status(actor, x, y)
back = Cache.menu("Parameter_Bar_Back")
cw = back.width
ch = back.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch + 30, back, src_rect)
meter = Cache.menu("Parameter_Bar")
cw = meter.width * actor.atk / MOG_VX07::MAX_PARAMETER
ch = meter.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch + 30, meter, src_rect)
self.contents.font.size = 14
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 70, y + 5 , 80, 32, actor.atk.to_s , 2)
end
def draw_actor_def_menu_status(actor, x, y)
back = Cache.menu("Parameter_Bar_Back")
cw = back.width
ch = back.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch + 30, back, src_rect)
meter = Cache.menu("Parameter_Bar")
cw = meter.width * actor.def / MOG_VX07::MAX_PARAMETER
ch = meter.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch + 30, meter, src_rect)
self.contents.font.size = 14
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 70, y + 5 , 80, 32, actor.def.to_s , 2)
end
def draw_actor_spi_menu_status(actor, x, y)
back = Cache.menu("Parameter_Bar_Back")
cw = back.width
ch = back.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch + 30, back, src_rect)
meter = Cache.menu("Parameter_Bar")
cw = meter.width * actor.spi / MOG_VX07::MAX_PARAMETER
ch = meter.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch + 30, meter, src_rect)
self.contents.font.size = 14
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 70, y + 5 , 80, 32, actor.spi.to_s , 2)
end
def draw_actor_agi_menu_status(actor, x, y)
back = Cache.menu("Parameter_Bar_Back")
cw = back.width
ch = back.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch + 30, back, src_rect)
meter = Cache.menu("Parameter_Bar")
cw = meter.width * actor.agi / MOG_VX07::MAX_PARAMETER
ch = meter.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch + 30, meter, src_rect)
self.contents.font.size = 14
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 70, y + 5 , 80, 32, actor.agi.to_s , 2)
end
def draw_item_name_menu_status(item, x, y, enabled = true)
if item != nil
draw_icon(item.icon_index, x, y, enabled)
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(x + 30, y, 155, WLH, item.name)
end
end
def draw_equipments_menu_status(actor, x, y)
draw_item_name_menu_status(actor.equips[0], x , y)
draw_item_name_menu_status(actor.equips[1], x , y + 45)
draw_item_name_menu_status(actor.equips[2], x , y + 90)
draw_item_name_menu_status(actor.equips[3], x + 125, y + 20)
draw_item_name_menu_status(actor.equips[4], x + 125, y + 65)
end
def draw_actor_hp_menu_status(actor, x, y)
back = Cache.menu("MeterBack")
cw = back.width
ch = back.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch + 30, back, src_rect)
meter = Cache.menu("HPMeter")
cw = meter.width * actor.hp / actor.maxhp
ch = meter.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch + 30, meter, src_rect)
self.contents.font.size = 14
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 22, y + 5 , 80, 32, actor.hp.to_s + " / " + actor.maxhp.to_s, 1)
end
def draw_actor_mp_menu_status(actor, x, y)
back = Cache.menu("MeterBack")
cw = back.width
ch = back.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch + 30, back, src_rect)
meter = Cache.menu("MPMeter")
cw = meter.width * actor.mp / actor.maxmp
ch = meter.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch + 30, meter, src_rect)
self.contents.font.size = 14
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 22, y + 5 , 80, 32, actor.mp.to_s + " / " + actor.maxmp.to_s, 1)
end
def draw_actor_class_menu_status(actor, x, y)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 90, WLH, actor.class.name, 1)
end
def draw_actor_level_menu_status(actor, x, y)
self.contents.font.color = normal_color
self.contents.draw_text(x + 32, y, 24, WLH, actor.level, 1)
end
def draw_menu_status_obj(x,y)
lay = Cache.menu("Menu_Status_OBJ")
cw = lay.width
ch = lay.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch, lay, src_rect)
end
def draw_actor_exp_meter_status_menu(actor, x, y)
if actor.next_exp != 0
rate = actor.now_exp.to_f / actor.next_exp
else
rate = 1
end
back = Cache.menu("MeterBack")
cw = back.width
ch = back.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch , back, src_rect)
bitmap = Cache.menu("EXPMeter")
if actor.level < 99
cw = bitmap.width * rate
else
cw = bitmap.width
end
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch , bitmap, src_rect)
if actor.next_exp != 0
self.contents.draw_text(x + 30, y - 20, 80, 32, actor.next_rest_exp_s, 2)
else
self.contents.draw_text(x + 30, y - 20, 80, 32, "Max", 2)
end
self.contents.draw_text(x - 30, y + 10, 120, 32, actor.exp_s.to_s, 2)
end
end
####################
# Window_Status_Left #
####################
class Window_Status_Left < Window_Base
def initialize(actor)
super(0, 0, 560, 430)
@actor = actor
self.opacity = 0
self.contents.font.bold = true
self.contents.font.shadow = true
refresh
end
def refresh
self.contents.clear
draw_actor_face(@actor, 350, 90)
draw_actor_class_menu_status(@actor, 350, 195)
draw_actor_level_menu_status(@actor, 450, 195)
draw_actor_hp_menu_status(@actor, 350, 213)
draw_actor_mp_menu_status(@actor, 380, 240)
draw_actor_exp_meter_status_menu(@actor, 350, 300)
draw_actor_atk_menu_status(@actor, 50, 170)
draw_actor_def_menu_status(@actor, 70, 200)
draw_actor_spi_menu_status(@actor, 90, 230)
draw_actor_agi_menu_status(@actor, 110, 260)
draw_equipments_menu_status(@actor, 30, 40)
draw_actor_state(@actor,190, 320)
end
end
#####################
# Window_Status_Right #
#####################
class Window_Status_Right < Window_Base
def initialize(actor)
super(0, 0, 560, 430)
@actor = actor
self.opacity = 0
self.contents.font.bold = true
self.contents.font.shadow = true
refresh
end
def refresh
self.contents.clear
draw_actor_name(@actor, 55, 367)
draw_menu_status_obj(0, 380)
end
end
###############
# Scene_Status #
###############
class Scene_Status
def main
start
perform_transition
Input.update
loop do
Graphics.update
Input.update
update
break if $scene != self
end
Graphics.update
pre_terminate
Graphics.freeze
terminate
end
def initialize(actor_index = 0)
@actor_index = actor_index
end
def start
@actor = $game_party.members[@actor_index]
@status_window_right = Window_Status_Right.new(@actor)
@status_window_right.x = 544
@status_window_right.contents_opacity = 0
@status_window_left = Window_Status_Left.new(@actor)
@status_window_left.x = -544
@status_window_left.contents_opacity = 0
@menu_back = Plane.new
@menu_back.bitmap = Cache.menu("Background")
@menu_layout = Sprite.new
@menu_layout.bitmap = Cache.menu("Menu_Status_Layout")
end
def perform_transition
Graphics.transition(0)
end
def pre_terminate
for i in 0..25
@status_window_right.x += 25
@status_window_left.x -= 25
@status_window_right.contents_opacity -= 15
@status_window_left.contents_opacity -= 15
@menu_back.ox += 1
Graphics.update
end
end
def terminate
@status_window_right.dispose
@status_window_left.dispose
@menu_back.dispose
@menu_layout.dispose
end
def return_scene
$scene = Scene_Menu.new(3)
end
def next_actor
@actor_index += 1
@actor_index %= $game_party.members.size
$scene = Scene_Status.new(@actor_index)
end
def prev_actor
@actor_index += $game_party.members.size - 1
@actor_index %= $game_party.members.size
$scene = Scene_Status.new(@actor_index)
end
def update
@menu_back.ox += 1
@status_window_right.contents_opacity += 10
@status_window_left.contents_opacity += 10
if @status_window_right.x > 0
@status_window_right.x -= 25
elsif @status_window_right.x <= 0
@status_window_right.x = 0
@status_window_right.contents_opacity = 255
end
if @status_window_left.x < 0
@status_window_left.x += 25
elsif @status_window_left.x >=0
@status_window_left.x = 0
@status_window_left.contents_opacity = 255
end
@status_window_right.update
if Input.trigger?(Input::B)
Sound.play_cancel
return_scene
elsif Input.trigger?(Input::R) or Input.trigger?(Input::RIGHT)
Sound.play_cursor
next_actor
elsif Input.trigger?(Input::L) or Input.trigger?(Input::LEFT)
Sound.play_cursor
prev_actor
end
super
end
end
#-------------------------------------------------
$mogscript = {} if $mogscript == nil
$mogscript["menu_status_aya"] = true
#-------------------------------------------------
Vous trouverez les images dans la démo: DEMO
Re: Mog Menu_Status_Aya V 1.0
Mer 13 Fév 2008 - 23:39
Merci à toi, et merci à Mog !
Vivement la suite du menu....
Vivement la suite du menu....
_________________
- Mister GeekStaffeux retraité
- Nombre de messages : 719
Age : 30
Localisation : Vosges
Distinction : aucune
Date d'inscription : 20/12/2007
Re: Mog Menu_Status_Aya V 1.0
Sam 16 Fév 2008 - 12:16
Pour ceux qui souhaitent un screen :
- Zephyr_1.2Membre
- Nombre de messages : 158
Localisation : Scénariste érrant...
Distinction : aucune
Date d'inscription : 13/02/2008
Re: Mog Menu_Status_Aya V 1.0
Sam 16 Fév 2008 - 12:25
Merci pour le screen ^^
- GummyStaffeux retraité
- Nombre de messages : 2666
Age : 33
Localisation : Belgique
Distinction : Modérateur imprévisible
Papy Lolo' [Nabots Nimousse]
Date d'inscription : 27/01/2008
Re: Mog Menu_Status_Aya V 1.0
Dim 17 Fév 2008 - 12:23
Impressionnant... Un peu trop flashy à mon goût mais on peut modifier les images à sa guise, donc tout va bien
Re: Mog Menu_Status_Aya V 1.0
Dim 17 Fév 2008 - 12:29
Gamemaker a écrit:Impressionnant... Un peu trop flashy à mon goût mais on peut modifier les images à sa guise, donc tout va bien
Oui, flashy il est aussi a mon gout.
Mais bien fait, il est.
- morutoMembre
- Nombre de messages : 20
Distinction : aucune
Date d'inscription : 23/02/2008
Re: Mog Menu_Status_Aya V 1.0
Jeu 28 Fév 2008 - 6:13
Ou sinon c'est normal qu'il marche pas chez moi?
- AlbalrogueMembre
- Nombre de messages : 33
Age : 32
Localisation : Dans mon petit monde...
Distinction : aucune
Date d'inscription : 19/02/2008
Re: Mog Menu_Status_Aya V 1.0
Jeu 28 Fév 2008 - 14:19
Moi non plus ça ne marche pas.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum