RPG Maker Détente
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.



 
RechercherDernières imagesPortailAccueilAccueilForumPraline au mielS'enregistrerConnexion


 

 Sélection vérticale des personnages dans le menu.

Aller en bas 
5 participants
AuteurMessage
Tasslehoff

Tasslehoff


Messages : 284


Sélection vérticale des personnages dans le menu. Empty
MessageSujet: Sélection vérticale des personnages dans le menu.   Sélection vérticale des personnages dans le menu. Icon_minitimeMer 9 Fév - 19:45

Voilà un petit script qui permet d'avoir une sélection verticale des personnages dans le menu.
La largeur de la sélection est automatique, mais vous pouvez désactiver ça pour spécifier une largeur.

Code:
#=====================================================================
# ■ Window_MenuStatus redéfini
# Permet d'avoir une séléction vérticale des personnages dans le menu.
#=====================================================================
# Auteur:  Tasslehoff
# Version: 2.0
# Date:    14/05/2011
#=====================================================================
#
# La taille de la séléction est réglée automatiquement selon le nombre de
# personnages dans l'équipe.
# Vous pouvez cependant désactiver cette option à la ligne 30 et choisir
# une largeur à la ligne 33.
# Vous pouvez également activer ou désactiver les barres de séparation entre
# les personnages à la ligne 36.
#
#======================================================================
 
 
#Définit la classe (Window_MenuStatus) et la classe parente (Window_Selectable).
#Window_MenuStatus hérite ainsi des variables de classe et des méthodes de Window_Selectable.
class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # * Initialize (ce qui se passe au début)
  #--------------------------------------------------------------------------
 
  def initialize
    ######################
    #                    # 
      largeur_auto = true    # Taille automatique de la séléction.
    #                    #  # true = activé    et    false = désactivé
    #                    # 
      @largeur = 114        # Largeur de la séléction (conseillé : entre 76 et 448
    #                    #  # selon le nombre de personnages maximum dans l'équipe)
    #                    #   
      @lignes = true        # Barres de séparation entre les personnages
    #                    #  # true = activé    et    false = désactivé
    ######################
   
    #Crée la fenêtre.
    super(0, 0, 480, 480)
    self.contents = Bitmap.new(width - 32, height - 32)
 
    if largeur_auto
      largeur = (width - 32) / $game_party.actors.size
      @largeur = largeur.to_i
    end
     
    #Si @largeur est impair, ajoute 1.
    if @largeur%2 == 1
      @largeur += 1
    end
   
    #Spécifie le nombre maximum de colonnes (=le nombre de personnages dans l'équipe).
    @column_max = $game_party.actors.size
   
    #Appel la méthode refresh.
    refresh
   
    #Désactive le clignotement du curseur.
    self.active = false
   
    #Place le curseur sur -1.
    self.index = -1
   
  end
 
  #--------------------------------------------------------------------------
  # * Refresh (ce qui se passe à chaque frame, 1 seconde = 20 frames)
  #--------------------------------------------------------------------------
  def refresh
   
    #Efface le contenu.
    self.contents.clear
   
    #Rends le nombre d'item (de séléctions) égal au nombre de personnages dans l'équipe.
    @item_max = $game_party.actors.size
   
    #Affiche les informations du personnage i en remplacant chaque fois i par un nombre
    #compris entre 0 et le nombre de personnages dans l'équipe.
    for i in 0...$game_party.actors.size
      x = i * @largeur
      actor = $game_party.actors[i]                                                    #Rend "actor" égal au personnage numéro i.
      draw_actor_graphic(actor, x + @largeur/2, 112)                                    #Déssine le sprite de "actor". 
      draw_actor_name(actor, x + @largeur/2-32, 0)                                      #Ecrit le nom de "actor".
      draw_actor_class(actor, x + @largeur/2-32, 32)                                    #Ecrit la classe de "actor".
      self.contents.draw_text(x+6+@largeur/2, 86, @largeur/2-32, 32, actor.level.to_s)  #Ecrit le niveau de "actor".
      draw_actor_state(actor, x + @largeur/2-32, 112)                                  #Ecrit l'état de "actor".
      draw_actor_exp_bis(actor, x, 244)                                                #Ecrit l'expérience de "actor".
      draw_actor_hp_bis(actor, x, 156)                                                  #Ecrit les pv de "actor".
      draw_actor_sp_bis(actor, x, 200)                                                  #Ecrit les mp de "actor".
      draw_actor_equipement(actor, x, 300)
      if @lignes
      self.contents.fill_rect((i + 1) * @largeur, 0, 1, 480, Color.new(255, 255, 255))
      end
   
    end
   
  end
  #--------------------------------------------------------------------------
  # * Update Cursor Rect (met à jour le rectangle du curseur)
  #--------------------------------------------------------------------------
  def update_cursor_rect
   
    #Si le curseur est en dessous de 0, l'éfface, sinon le met au bon endroit.
    if @index < 0
      self.cursor_rect.empty
    else
      self.cursor_rect.set(@index * @largeur, 0, @largeur, self.height - 32)
    end
   
  end
  #--------------------------------------------------------------------------
  # * Modifications de l'affichage des informations
  #--------------------------------------------------------------------------
 
 
  ############################
  #Affichage de l'expérience.#
  ############################
 
  def draw_actor_exp_bis(actor, x, y)
   
    #Fixe la couleur à system_color.
    self.contents.font.color = system_color
   
    #Ecrit "Exp :". Entre parenthèses : (position x, position y, largeur, hauteur, texte).
    self.contents.draw_text(x+4, y, contents.text_size("Exp :").width, 32, "Exp :")
 
    #Fixe la couleur à normal_color.
    self.contents.font.color = normal_color
   
   
    #Ecrit l'expérience. Entre parenthèses : (position x, position y, largeur, hauteur, texte, alignement).
    self.contents.draw_text(x+contents.text_size("Exp :").width+6, y, @largeur-contents.text_size("Exp :").width - 14, 32, actor.exp_s, 2)
   
    #Dessine la barre d'expérience.
    self.contents.fill_rect(x+5, y+25, @largeur - 11, 6, Color.new(20, 20, 20, 150))
    self.contents.fill_rect(x+4, y+24, @largeur - 12, 5, Color.new(0, 0, 0, 200))
    self.contents.fill_rect(x+5, y+25, (@largeur-14)*actor.exp_s.to_i/actor.next_exp_s.to_i, 3, Color.new(100, 100, 220, 255))
   
  end
 
 
  ###################
  #Affichage des PV.#
  ###################
 
  def draw_actor_hp_bis(actor, x, y)
   
    self.contents.font.color = system_color
    self.contents.draw_text(x+4, y, contents.text_size($data_system.words.hp+" :").width, 32, $data_system.words.hp+" :")
   
   
    self.contents.font.color = actor.hp == 0 ? knockout_color :
      actor.hp <= actor.maxhp / 3 ? crisis_color : normal_color
    self.contents.draw_text(x+contents.text_size($data_system.words.hp+" :").width+6, y, @largeur-contents.text_size($data_system.words.hp+" :").width - 14, 32, actor.hp.to_s, 2)
   
    if actor.hp <= actor.maxhp / 3
    couleur_barre = Color.new(230, 230, 0, 255)
    else
    couleur_barre = Color.new(80, 230, 20, 255)
    end
     
    self.contents.fill_rect(x+5, y+25, @largeur - 11, 6, Color.new(20, 20, 20, 150))
    self.contents.fill_rect(x+4, y+24, @largeur - 12, 5, Color.new(0, 0, 0, 200))
    self.contents.fill_rect(x+5, y+25, (@largeur-14)*actor.hp/actor.maxhp, 3, couleur_barre)
   
  end
 
  ###################
  #Affichage des SP.#
  ###################
 
  def draw_actor_sp_bis(actor, x, y)
   
    self.contents.font.color = system_color
    self.contents.draw_text(x+4, y, contents.text_size($data_system.words.sp+" :").width, 32, $data_system.words.sp+" :")
   
   
    self.contents.font.color = actor.sp == 0 ? knockout_color :
      actor.sp <= actor.maxhp / 3 ? crisis_color : normal_color
    self.contents.draw_text(x+contents.text_size($data_system.words.sp+" :").width+6, y, @largeur-contents.text_size($data_system.words.sp+" :").width - 14, 32, actor.sp.to_s, 2)
   
    if actor.sp <= actor.maxsp / 3
    couleur_barre = Color.new(165, 118, 100, 255)
    else
    couleur_barre = Color.new(100, 40, 160, 255)
    end
     
    self.contents.fill_rect(x+5, y+25, @largeur - 11, 6, Color.new(20, 20, 20, 150))
    self.contents.fill_rect(x+4, y+24, @largeur - 12, 5, Color.new(0, 0, 0, 200))
    self.contents.fill_rect(x+5, y+25, (@largeur-14)*actor.sp/actor.maxsp, 3, couleur_barre)
   
  end
 
 
  ############################
  #Affichage de l'équipement.#
  ############################
 
  def draw_actor_equipement(actor, x, y)
   
    draw_item($data_weapons[actor.weapon_id], x, y)
    draw_item($data_armors[actor.armor1_id], x+48, y)
    draw_item($data_armors[actor.armor2_id], x, y+48)
    draw_item($data_armors[actor.armor3_id], x+48, y+48)
    draw_item($data_armors[actor.armor4_id], x+24, y+96)
   
  end
 
  def draw_item(item, x, y)
   
    if item == nil
      return
    end
    bitmap = RPG::Cache.icon(item.icon_name)
    self.contents.blt(x+@largeur/2-36, y, bitmap, Rect.new(0, 0, 24, 24))
   
  end
 
end

Screen :

Spoiler:

Enjoy ! (ou pas)




Dernière édition par Tasslehoff le Sam 14 Mai - 20:49, édité 11 fois
Revenir en haut Aller en bas
Organ

Organ


Messages : 700


Sélection vérticale des personnages dans le menu. Empty
MessageSujet: Re: Sélection vérticale des personnages dans le menu.   Sélection vérticale des personnages dans le menu. Icon_minitimeMer 9 Fév - 20:13

Alors ça, c'est mieux qu'avant.
Revenir en haut Aller en bas
Invité
Invité




Sélection vérticale des personnages dans le menu. Empty
MessageSujet: Re: Sélection vérticale des personnages dans le menu.   Sélection vérticale des personnages dans le menu. Icon_minitimeMer 9 Fév - 20:42

Ouais... ça rend moins tâche qu'avant, mais bon...c'est juste des changements de positions des objets en fait. x)
Revenir en haut Aller en bas
chaipokoi

chaipokoi


Messages : 438


Sélection vérticale des personnages dans le menu. Empty
MessageSujet: Re: Sélection vérticale des personnages dans le menu.   Sélection vérticale des personnages dans le menu. Icon_minitimeMer 9 Fév - 20:50

tu pourrais essayer de faire un tableau ? parce que là je trouve que ça fait un peu brouillon
Revenir en haut Aller en bas
Tasslehoff

Tasslehoff


Messages : 284


Sélection vérticale des personnages dans le menu. Empty
MessageSujet: Re: Sélection vérticale des personnages dans le menu.   Sélection vérticale des personnages dans le menu. Icon_minitimeMer 9 Fév - 20:52

@LeM-x : Ouep, mais c'est modifié automatiquement en fonction du nombre de personnages dans l'équipe. ^^

@chaipakoi: Qu'entends tu par tableau ?
Revenir en haut Aller en bas
Léo

 
Léo


Messages : 6241


Sélection vérticale des personnages dans le menu. Empty
MessageSujet: Re: Sélection vérticale des personnages dans le menu.   Sélection vérticale des personnages dans le menu. Icon_minitimeMer 9 Fév - 21:39

Perso j'ai toujours trouvé les menu de RM (toutes versions confondues) très moches. Désolé

Enfin bon, si ça peut servir tant mieux. Naïf
Revenir en haut Aller en bas
Tasslehoff

Tasslehoff


Messages : 284


Sélection vérticale des personnages dans le menu. Empty
MessageSujet: Re: Sélection vérticale des personnages dans le menu.   Sélection vérticale des personnages dans le menu. Icon_minitimeMer 9 Fév - 21:51

Et j'ai essayé de commenter au maximum le code, donc peut-être que ça peut aussi servir au débutants apprenant le RGSS. ^^
Revenir en haut Aller en bas
Invité
Invité




Sélection vérticale des personnages dans le menu. Empty
MessageSujet: Re: Sélection vérticale des personnages dans le menu.   Sélection vérticale des personnages dans le menu. Icon_minitimeJeu 10 Fév - 0:20

Léo => Je suis d'accord Clin d\'oeil
Revenir en haut Aller en bas
chaipokoi

chaipokoi


Messages : 438


Sélection vérticale des personnages dans le menu. Empty
MessageSujet: Re: Sélection vérticale des personnages dans le menu.   Sélection vérticale des personnages dans le menu. Icon_minitimeDim 13 Fév - 9:57

>Tasslehoff je veut dire essaie de placer des barres de séparation entre les personnages. ^^
Revenir en haut Aller en bas
Tasslehoff

Tasslehoff


Messages : 284


Sélection vérticale des personnages dans le menu. Empty
MessageSujet: Re: Sélection vérticale des personnages dans le menu.   Sélection vérticale des personnages dans le menu. Icon_minitimeDim 13 Fév - 16:09

C'est fait ^^.
Revenir en haut Aller en bas
chaipokoi

chaipokoi


Messages : 438


Sélection vérticale des personnages dans le menu. Empty
MessageSujet: Re: Sélection vérticale des personnages dans le menu.   Sélection vérticale des personnages dans le menu. Icon_minitimeDim 13 Fév - 16:17

chouette merci ^^

EDIT: il y a un problème, la barre de séparation est bien là mais les stats du perso non ?!
Revenir en haut Aller en bas
Tasslehoff

Tasslehoff


Messages : 284


Sélection vérticale des personnages dans le menu. Empty
MessageSujet: Re: Sélection vérticale des personnages dans le menu.   Sélection vérticale des personnages dans le menu. Icon_minitimeDim 13 Fév - 16:24

Citation :
EDIT: il y a un problème, la barre de séparation est bien là mais les stats du perso non ?!
Oui, il y a effectivement un problème...
Il n'y a rien du tout qui apparait ?
Revenir en haut Aller en bas
chaipokoi

chaipokoi


Messages : 438


Sélection vérticale des personnages dans le menu. Empty
MessageSujet: Re: Sélection vérticale des personnages dans le menu.   Sélection vérticale des personnages dans le menu. Icon_minitimeDim 13 Fév - 17:56

juste l'aperçu du héro
Revenir en haut Aller en bas
Tasslehoff

Tasslehoff


Messages : 284


Sélection vérticale des personnages dans le menu. Empty
MessageSujet: Re: Sélection vérticale des personnages dans le menu.   Sélection vérticale des personnages dans le menu. Icon_minitimeDim 13 Fév - 19:17

Essai de rajouter ça dans le script "Main", en dessous de "begin":
Code:
Font.default_name = $fontface = "Arial"
Font.default_size = $fontsize = 22

Tu dois pas utiliser la bonne version de rmxp (celle de Zeus).

Revenir en haut Aller en bas
chaipokoi

chaipokoi


Messages : 438


Sélection vérticale des personnages dans le menu. Empty
MessageSujet: Re: Sélection vérticale des personnages dans le menu.   Sélection vérticale des personnages dans le menu. Icon_minitimeDim 13 Fév - 20:24



a non j'utilise la vieille toute pourries ça change beaucoup de choses au niveau du rgss ?

j'ai déjà regardé, et je n'ai pas modifier le script racine main donc je pense que le problème viens biens de la versions du logiciel.
Revenir en haut Aller en bas
Kaila
  
  
Kaila


Messages : 4254


Sélection vérticale des personnages dans le menu. Empty
MessageSujet: Re: Sélection vérticale des personnages dans le menu.   Sélection vérticale des personnages dans le menu. Icon_minitimeDim 13 Fév - 20:57

Prends la version de Zeus81. Tous les bugs créés par RPG-Advocate dans les scripts de base lors de la traduction japonais/anglais de l'ancienne version ont étés retirés.
Revenir en haut Aller en bas
chaipokoi

chaipokoi


Messages : 438


Sélection vérticale des personnages dans le menu. Empty
MessageSujet: Re: Sélection vérticale des personnages dans le menu.   Sélection vérticale des personnages dans le menu. Icon_minitimeMar 15 Fév - 18:25

je pourrais reprendre mes projets de l'ancienne version ?
Revenir en haut Aller en bas
Kaila
  
  
Kaila


Messages : 4254


Sélection vérticale des personnages dans le menu. Empty
MessageSujet: Re: Sélection vérticale des personnages dans le menu.   Sélection vérticale des personnages dans le menu. Icon_minitimeMar 15 Fév - 19:47

Waip, mais ça ne modifiera pas les scripts, les changements n'étant effectifs que pour les nouveaux projets, sauf si tu copie/colle le script.rxdata de la version de Zeus dans tes anciens projets (en y ajoutant tes scripts persos, s'il y en a).
Revenir en haut Aller en bas
Tasslehoff

Tasslehoff


Messages : 284


Sélection vérticale des personnages dans le menu. Empty
MessageSujet: Re: Sélection vérticale des personnages dans le menu.   Sélection vérticale des personnages dans le menu. Icon_minitimeSam 14 Mai - 20:23

Up: J'ai amélioré le script, jetez un coup d'œil aux screens. ^^
Revenir en haut Aller en bas
Contenu sponsorisé





Sélection vérticale des personnages dans le menu. Empty
MessageSujet: Re: Sélection vérticale des personnages dans le menu.   Sélection vérticale des personnages dans le menu. Icon_minitime

Revenir en haut Aller en bas
 
Sélection vérticale des personnages dans le menu.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Customiser le menu
» Menu en event (RPG Maker XP)
» [rm2k3] menu de base et position des héros
» Enlever une caractéristique du menu statut (RMVxAce)
» Galerie de personnages

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker Détente :: Entrepôt :: Scripts :: Scripts Xp-
Sauter vers: