Partagez
Aller en bas
avatar
Az'
Membre

Nombre de messages : 3317
Age : 74
Date d'inscription : 22/12/2007

[RGSS3]Menu FFIII-Like Empty [RGSS3]Menu FFIII-Like

le Dim 25 Déc 2011 - 1:42
Mon premier script sous Ace. Autant dire que je commence doucement :

Menu FFIII-Like, à placer au dessus de main. Je rajouterais des extensions à ce script, qui, par ailleurs, est le premier d'une série de scripts d'interface que je compte coder, par la suite, selon ce que je programme.

C'est un menu pour trois personnages. Affichage du temps par interrupteur (si activé, le temps aussi, et inversement).
Modifier l'ID de l'interrupteur utilisé avec la Constante SWITCH_ID = 11 (11 étant l'ID de votre interrupteur).
Je pense que c'est tout! Wink

~ Screens ~

[RGSS3]Menu FFIII-Like Sanstitredo

~ Script ~

Code:
#==============================================================================
# ▼ Scene_Menu
#------------------------------------------------------------------------------
#  Menu FFIII-Like.
# Par Mist'
# Le 25/12/11
# http://www.rpgmakervx-fr.com/
#==============================================================================
# Variable constante
SWITCH_ID = 11
#
#==============================================================================
class Scene_Menu < Scene_MenuBase
  alias mist_cms_ffiii_str start
  alias mist_cms_ffiii_cr_cwin create_command_window
  #--------------------------------------------------------------------------
  # ● ALIAS ~
  #--------------------------------------------------------------------------
  def start
    mist_cms_ffiii_str
    create_mapname_window
  end
  #--------------------------------------------------------------------------
  # ● ALIAS ~
  #--------------------------------------------------------------------------
  def create_command_window
    mist_cms_ffiii_cr_cwin
    @command_window.z = 9999
  end
  #--------------------------------------------------------------------------
  # ● MODIF ~
  #--------------------------------------------------------------------------
  def create_gold_window
    @gold_window = Window_Gold.new
    @gold_window.x = 340 # EDIT
    @gold_window.y = Graphics.height - @gold_window.height - 20 # EDIT
    @gold_window.z = 9999 # AJOUT
  end
  #--------------------------------------------------------------------------
  # ● AJOUT ~
  #--------------------------------------------------------------------------
  def create_mapname_window
    @mapname_window = Window_NomMap.new
    @mapname_window.x = 340
    @mapname_window.y = @gold_window.y - @mapname_window.height
    @mapname_window.z = 9999
  end
  #--------------------------------------------------------------------------
  # ● MODIF ~
  #--------------------------------------------------------------------------
  def create_status_window
    @status_window = Window_MenuStatus.new(@command_window.width, 0)
    @status_window.x = 20 # EDIT
    @status_window.y = Graphics.height - @status_window.height - 20 # EDIT
    @status_window.z = 9998 # AJOUT
  end
end

#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
#  Modification /ajout des méthodes d'affichage
#==============================================================================
class Window_Base
  #--------------------------------------------------------------------------
  # ● MODIF / "AJOUT" ~
  # [draw_currency_value modifié si besoin de réutilisation de l'affichage]
  #--------------------------------------------------------------------------
  def draw_time_value(value, unit, x, y, width)
    cx = text_size(unit).width
    change_color(system_color) # EDIT
    draw_text(x, y, width - cx - 2, line_height, value, 2)
    change_color(normal_color) # EDIT
    draw_text(x, y, width, line_height, unit, 2)
  end
  #--------------------------------------------------------------------------
  # ● MODIF ~
  #--------------------------------------------------------------------------
  def draw_map_name(x, y, width)
    cx = text_size( $game_map.map_name).width
    change_color(system_color) # EDIT
    draw_text(x, y, width - cx - 2, line_height, $game_map.map_name, 2)
  end
 
  #--------------------------------------------------------------------------
  # ● MODIF ~
  #--------------------------------------------------------------------------
  def draw_actor_simple_status(actor, x, y)
    draw_actor_name(actor, x, y)
    draw_actor_level(actor, x, y + line_height * 1) # EDIT
    draw_actor_icons(actor, x, y + line_height * 2)
    draw_actor_class(actor, x + 90, y + line_height * 1) # EDIT
    new_draw_actor_hp(actor, x, y + line_height * 2) # EDIT
    new_draw_actor_mp(actor, x, y + line_height * 3) # EDIT
  end
  #--------------------------------------------------------------------------
  # ● MODIF ~
  #--------------------------------------------------------------------------
  def new_draw_actor_hp(actor, x, y, width = 124)
    change_color(system_color)
    draw_text(x, y, 30, line_height, Vocab::hp_a)
    draw_current_and_max_values(x, y, width, actor.hp, actor.mhp,
      hp_color(actor), normal_color)
  end
  #--------------------------------------------------------------------------
  # ● MODIF ~
  #--------------------------------------------------------------------------
  def new_draw_actor_mp(actor, x, y, width = 124)
    change_color(system_color)
    draw_text(x, y, 30, line_height, Vocab::mp_a)
    draw_current_and_max_values(x, y, width, actor.mp, actor.mmp,
      mp_color(actor), normal_color)
  end
end

#==============================================================================
# ■ Window_Gold + Time
#------------------------------------------------------------------------------
#  Affichage de la monnaie possédée ainsi que du temps passé sur le jeu
# en temps réel.
#==============================================================================

class Window_Gold < Window_Base
  alias mist_cms_ffiii_refr refresh
  #--------------------------------------------------------------------------
  # ● REDEF ~
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, window_width, fitting_height(1) + 20)
    refresh
  end
  #--------------------------------------------------------------------------
  # ● ALIAS ~
  #--------------------------------------------------------------------------
  def refresh
    mist_cms_ffiii_refr
    draw_time_value(temps, unit2, 4, 16, contents.width - 8) unless not $game_switches[SWITCH_ID]
  end
  #--------------------------------------------------------------------------
  # ● AJOUT ~
  #--------------------------------------------------------------------------
  def temps
    @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)
  end
  #--------------------------------------------------------------------------
  # ● MODIF ~
  #--------------------------------------------------------------------------
  def unit2
    "Temps"
  end
  #--------------------------------------------------------------------------
  # ● AJOUT ~
  #--------------------------------------------------------------------------
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end

#==============================================================================
# ■ Window_MenuCommand
#------------------------------------------------------------------------------
#  Position des commandes du menu
#==============================================================================

class Window_MenuCommand < Window_Command

  #--------------------------------------------------------------------------
  # ● REDEF ~
  #--------------------------------------------------------------------------
  def initialize
    super(340, 20)
    select_last
  end
end

#==============================================================================
# ■ Window_NomMap
#------------------------------------------------------------------------------
#  Affichage du nom de la carte
#==============================================================================

class Window_NomMap < Window_Base

  def initialize
    super(0, 0, window_width, fitting_height(1))
    refresh
  end

  def window_width
    return 160
  end

  def refresh
    contents.clear
    change_color(system_color)
    draw_map_name(4, 0, contents.width - 8)
  end

  def open
    refresh
    super
  end
end
#==============================================================================
# ■ Window_MenuStatus
#------------------------------------------------------------------------------
#  Affichage des statuts des héros.
#==============================================================================

class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # ● MODIF ~
  #--------------------------------------------------------------------------
  def window_width
    Graphics.width - 224
  end
  #--------------------------------------------------------------------------
  # ● MODIF ~
  #--------------------------------------------------------------------------
  def window_height
    Graphics.height - 40
  end
  #--------------------------------------------------------------------------
  # ● MODIF ~
  #--------------------------------------------------------------------------
  def item_height
    (height - standard_padding * 2) / 3
  end
  #--------------------------------------------------------------------------
  # ● MODIF ~
  #--------------------------------------------------------------------------
  def draw_item(index)
    actor = $game_party.members[index]
    enabled = $game_party.battle_members.include?(actor)
    rect = item_rect(index)
    draw_item_background(index)
    draw_actor_face(actor, rect.x + 1, rect.y + 1, enabled)
    draw_actor_simple_status(actor, rect.x + 108, rect.y)
  end
end

#==============================================================================
# ■ Game_Map
#------------------------------------------------------------------------------
#  Modification pour récupérer le nom de la carte
#==============================================================================
class Game_Map
  #--------------------------------------------------------------------------
  # ● Variables d'instance
  #--------------------------------------------------------------------------
  attr_reader  :map_name
  #--------------------------------------------------------------------------
  # ● MODIF ~
  #--------------------------------------------------------------------------
  def map_name
    map = load_data("Data/MapInfos.rvdata2")
    map[@map_id].name
  end
end

Enjoy!
freezia
freezia
Staffeux retraité

Nombre de messages : 1734
Distinction : Elu membre de l'année 2009 haut la main.
Inventeur du Mapping Show.

caricaturatationeur de la comu'
[ Dudu']
Date d'inscription : 18/02/2008

[RGSS3]Menu FFIII-Like Empty Re: [RGSS3]Menu FFIII-Like

le Dim 25 Déc 2011 - 12:55
Félicitation, bon travail pour une première ...+ 5 points . Very Happy
Dishi
Dishi
Membre

Nombre de messages : 632
Age : 21
Localisation : Marseille
Distinction : Alias Dichie
Aussi alias Sherifa Luna de la commu' (je suis dichie et d'ailleurs )

Co-créateur du Nyan Xak
[Tétété]

Apprenti Pedobear
[Mémé nova]

Keupiteur de ponctuation.
[un sombre inconnu.]
Date d'inscription : 07/07/2011
https://github.com/paul-roman

[RGSS3]Menu FFIII-Like Empty Re: [RGSS3]Menu FFIII-Like

le Lun 26 Déc 2011 - 17:04
xD

Merci, Mist :3
Il me parait basique, mais sympa et élégant !
Llednar
Llednar
Membre

Nombre de messages : 11
Distinction : aucune
Date d'inscription : 09/04/2011

[RGSS3]Menu FFIII-Like Empty Re: [RGSS3]Menu FFIII-Like

le Mar 10 Avr 2012 - 19:22
Beau travail! chez moi ca marche nikel ^^ continue!
Elisa'
Elisa'
Staffeux retraité

Nombre de messages : 2924
Age : 22
Localisation : Par là-bas !
Distinction : Mon héritière que je chéris [RGSS3]Menu FFIII-Like 344805[RGSS3]Menu FFIII-Like 344805
[Coco' Smile]
Plus que 2 ans avant d'épouser Coco' ! Compte à rebours lancé !
[Auto-distinction]

Adepte du "Je le savais" alors qu'elle le savait pas.
Date d'inscription : 30/05/2009

[RGSS3]Menu FFIII-Like Empty Re: [RGSS3]Menu FFIII-Like

le Mar 10 Avr 2012 - 19:49
Fais attention aux nécroposts Llednar. Ce n'est pas la première fois que l'on de le dit, tu écopes donc d'un avertissement, c'est ton premier donc il n'y a pas de problème, mais je t'invite à aller (re)lire le règlement.
Bonne journée !
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum