Nouveau menu
Mar 11 Mar 2008 - 12:03
Bonjour
Voici un script qui, à la base, n'est pas de moi. il à été créé par Mog et à été modifié par emixam2 et TheLSSJ
Script à placer au dessus de Main et à nommé ''new_menu''
Screen:
Script:
Voilà. au plaisir d'avoir aidé certain d'entre vous
Voici un script qui, à la base, n'est pas de moi. il à été créé par Mog et à été modifié par emixam2 et TheLSSJ
Script à placer au dessus de Main et à nommé ''new_menu''
Screen:
Script:
- Code:
###################################
#Créer par Mog.
#modifier par emixam2 et TheLSSJ
##############
#===============================================================
#
# rpgmakervx.1fr1.net
#
#===============================================================
# 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
###############
# Window_Base #
###############
class Window_Base < Window
def draw_actor_level_menu(actor, x, y)
self.contents.font.color = system_color
self.contents.draw_text(x-199, y+50, 32, WLH, Vocab::level_a)
self.contents.font.color = normal_color
self.contents.draw_text(x-160, y+50, 24, WLH, actor.level, 2)
end
def draw_actor_class_menu(actor, x, y)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 85, WLH, actor.class.name)
end
def exp_gauge_color1
return text_color(10)
end
def exp_gauge_color2
return text_color(10)
end
def draw_actor_exp_meter(actor, x, y, width = 100)
if actor.next_exp != 0
exp = actor.now_exp
else
exp = 1
end
gw = width * exp / [actor.next_exp, 1].max
gc1 = exp_gauge_color1
gc2 = exp_gauge_color2
self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 30, WLH, "Exp")
self.contents.font.color = normal_color
xr = x + width
self.contents.draw_text(xr - 60, y, 60, WLH, actor.next_rest_exp_s, 2)
end
end
#####################
# Window_MenuStatus #
#####################
class Window_MenuStatus < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# x : ウィンドウの X 座標
# y : ウィンドウの Y 座標
#--------------------------------------------------------------------------
def initialize(x, y)
super(x, y, 544, 275)
refresh
self.active = false
self.index = -1
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
self.contents.clear
@item_max = $game_party.members.size
for actor in $game_party.members
draw_actor_face(actor, actor.index * 130, 0, 96)
x = actor.index * 130
y = 105
draw_actor_name(actor, x, y)
draw_actor_class(actor, x, y + 20)
draw_actor_level(actor, x, y + 40)
draw_actor_state(actor, x, y + 60)
draw_actor_hp(actor, x, y + 80)
draw_actor_mp(actor, x, y + 100)
draw_actor_exp_meter(actor, x , y+35 + WLH * 1)
end
end
#--------------------------------------------------------------------------
# ● カーソルの更新
#--------------------------------------------------------------------------
def update_cursor
if @index < 0 # カーソルなし
self.cursor_rect.empty
elsif @index < @item_max # 通常
if Input.repeat?(Input::RIGHT)
cursor_down(Input.trigger?(Input::RIGHT))
end
if Input.repeat?(Input::LEFT)
cursor_up(Input.trigger?(Input::LEFT))
end
self.cursor_rect.set(@index * 130 - 2, 0, 125, 230)
elsif @index >= 100 # 自分
self.cursor_rect.set(0, (@index - 100) * 96, contents.width, 96)
else # 全体
self.cursor_rect.set(0, 0, contents.width, @item_max * 96)
end
end
end
############
# Game_Map #
############
class Game_Map
attr_reader :map_id
def mpname
$mpname = load_data("Data/MapInfos.rvdata")
$mpname[@map_id].name
end
end
###############
# Window_map_name #
###############
class Window_Mapname < Window_Base
def initialize(x, y)
super(x, y+32, 190, WLH + 50)
refresh
end
def refresh
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(4, -8, 120, 32, "Localisation")
self.contents.font.color = normal_color
self.contents.draw_text(4, 15, 120, 32, $game_map.mpname.to_s, 2)
end
end
###############
# Window_Time #
###############
class Window_Time < Window_Base
def initialize(x, y)
super(x, y+7, 190, WLH + 50)
refresh
end
def refresh
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(4, -8, 120, 32, "Temps de jeu")
@total_sec = Graphics.frame_count / Graphics.frame_rate
hour = @total_sec / 60 / 60
min = @total_sec / 60 % 60
sec = @total_sec % 60
text = sprintf("%02d:%02d:%02d", hour, min, sec)
self.contents.font.color = normal_color
self.contents.draw_text(4, 15, 120, 32, text, 2)
end
def update
super
if Graphics.frame_count / Graphics.frame_rate != @total_sec
refresh
end
end
end
##############
# Scene_Menu #
##############
class Scene_Menu
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(menu_index = 0)
@menu_index = menu_index
end
def create_menu_background
@menuback_sprite = Sprite.new
@menuback_sprite.bitmap = $game_temp.background_bitmap
@menuback_sprite.color.set(16, 16, 16, 128)
update_menu_background
end
def create_menu_background
@menuback_sprite = Sprite.new
@menuback_sprite.bitmap = $game_temp.background_bitmap
@menuback_sprite.color.set(16, 16, 16, 128)
update_menu_background
end
def dispose_menu_background
@menuback_sprite.dispose
end
def update_menu_background
end
def perform_transition
Graphics.transition(10)
end
def start
create_menu_background
create_command_window
@gold_window = Window_Gold.new(0, 360)
@status_window = Window_MenuStatus.new(0, 75)
@playtime_window = Window_Time .new(160, 336)
@mapname_window = Window_Mapname.new(350, 311)
@status_window.openness = 0
@playtime_window.openness = 0
@mapname_window.openness = 0
@gold_window.openness = 0
@status_window.open
@playtime_window.open
@mapname_window.open
@gold_window.open
end
def pre_terminate
@status_window.close
@playtime_window.close
@mapname_window.close
@gold_window.close
@command_window.close
begin
@status_window.update
@playtime_window.update
@mapname_window.update
@gold_window.update
@command_window.update
Graphics.update
end until @status_window.openness == 0
end
def terminate
dispose_menu_background
@command_window.dispose
@gold_window.dispose
@status_window.dispose
@playtime_window.dispose
@mapname_window.dispose
end
def update
update_menu_background
@command_window.update
@gold_window.update
@status_window.update
@mapname_window.update
@playtime_window.update
if @command_window.active
update_command_selection
elsif @status_window.active
update_actor_selection
end
end
def create_command_window
s1 = Vocab::item
s5 = Vocab::skill
s2 = Vocab::equip
s3 = Vocab::status
s4 = Vocab::save
s6 = Vocab::game_end
@command_window = Window_Command.new(544, [s1, s2, s3, s4, s5, s6],4 ,2)
@command_window.index = @menu_index
@command_window.openness = 0
@command_window.open
if $game_party.members.size == 0
@command_window.draw_item(0, false)
@command_window.draw_item(1, false)
@command_window.draw_item(2, false)
@command_window.draw_item(3, false)
end
if $game_system.save_disabled
@command_window.draw_item(4, false)
end
end
def update_command_selection
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
elsif Input.trigger?(Input::C)
if $game_party.members.size == 0 and @command_window.index < 4
Sound.play_buzzer
return
elsif $game_system.save_disabled and @command_window.index == 4
Sound.play_buzzer
return
end
Sound.play_decision
case @command_window.index
when 0
$scene = Scene_Item.new
when 4,1,2
start_actor_selection
when 3
$scene = Scene_File.new(true, false, false)
when 5
$scene = Scene_End.new
end
end
end
def start_actor_selection
@command_window.active = false
@status_window.active = true
if $game_party.last_actor_index < @status_window.item_max
@status_window.index = $game_party.last_actor_index
else
@status_window.index = 0
end
end
def end_actor_selection
@command_window.active = true
@status_window.active = false
@status_window.index = -1
end
def update_actor_selection
if Input.trigger?(Input::B)
Sound.play_cancel
end_actor_selection
elsif Input.trigger?(Input::C)
$game_party.last_actor_index = @status_window.index
Sound.play_decision
case @command_window.index
when 4
$scene = Scene_Skill.new(@status_window.index)
when 1
$scene = Scene_Equip.new(@status_window.index)
when 2
$scene = Scene_Status.new(@status_window.index)
end
end
end
end
$mogscript = {} if $mogscript == nil
$mogscript["basic_menu_plus"] = true
Voilà. au plaisir d'avoir aidé certain d'entre vous
- MurasameMembre
- Nombre de messages : 40
Age : 35
Distinction : aucune
Date d'inscription : 24/02/2008
Re: Nouveau menu
Mar 11 Mar 2008 - 16:59
Un script vraiment sympatoche, merci
- GamnorMembre
- Nombre de messages : 172
Age : 33
Distinction : aucune
Date d'inscription : 24/02/2008
Re: Nouveau menu
Mar 11 Mar 2008 - 19:44
il y aurait-il la possibilité de modifier ce script pour avoir plus de 4 perso dans l'équipe, car je l'ai testé et je le trouve sympatique. Le seul problème c'est que j'utilise plus de 4 perso dans mon jeu et que lorsque je veut me déplacer sur le 5eme et les suivant le curseur sort de l'écran ^^'. Ce que je voudrais donc c'est que quand je me déplace vers la droite pour séléctionner les autres persos les faceset défile. J'espere que vous m'avez bien compris.(et j'espere que sa sera posibble aussi.)
Re: Nouveau menu
Mar 11 Mar 2008 - 19:48
Je comprend se que tu veux dire, mais je ne suis pas capable de t'aider. moi-même je ne savais pas comment faire pour disposé mes perso de gauche à droite au lieu de haut en bas. Ses la que TheLSSJ à participé à la modification du script. Désolé
- NostalGeekMembre
- Nombre de messages : 107
Distinction : aucune
Date d'inscription : 02/03/2008
Re: Nouveau menu
Mar 11 Mar 2008 - 20:22
je trouce ce menu superbe quoique un peu trop surchargé...
Re: Nouveau menu
Mar 11 Mar 2008 - 22:53
Par contre, il est facile d'enlever certaine chose comme la barre d'expérience. il suffit d'enlever la ligne 84 du script.
- GamnorMembre
- Nombre de messages : 172
Age : 33
Distinction : aucune
Date d'inscription : 24/02/2008
Re: Nouveau menu
Mar 18 Mar 2008 - 19:12
personne a de réponse a mon problème?
parce que si quelqu'un pouvait le résoudre sa m'aiderai beaucoup^^
et je viens de remarquer qu'il n'était pas compatible avec le script du PHS, décidément j'ai pas de chance
parce que si quelqu'un pouvait le résoudre sa m'aiderai beaucoup^^
et je viens de remarquer qu'il n'était pas compatible avec le script du PHS, décidément j'ai pas de chance
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum