Partagez
Aller en bas
alexansre
alexansre
Membre

Nombre de messages : 45
Age : 24
Localisation : Rueil Malmaison
Distinction : aucune
Date d'inscription : 01/12/2008

Nouvelles options dans le menu Empty Nouvelles options dans le menu

le Sam 9 Mai 2009 - 0:14
Voici mon premier tutoriel :
Il va permettre d'ajouter une option dans le menu (Pour ce tuto, j'utiliserait le chargement d'une partie)

Pour ça, ouvrez le repertoir de scripts et allez ligne 53 à 99 dans le script "Scene_Menu"
Vous avez :
Code:

  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Vocab::save
    s6 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # If number of party members is 0
      @command_window.draw_item(0, false)    # Disable item
      @command_window.draw_item(1, false)    # Disable skill
      @command_window.draw_item(2, false)    # Disable equipment
      @command_window.draw_item(3, false)    # Disable status
    end
    if $game_system.save_disabled            # If save is forbidden
      @command_window.draw_item(4, false)    # Disable save
    end
  end
  #--------------------------------------------------------------------------
  # * Update Command Selection
  #--------------------------------------------------------------------------
  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      # Item
        $scene = Scene_Item.new
      when 1,2,3  # Skill, equipment, status
        start_actor_selection
      when 4      # Save
        $scene = Scene_File.new(true, false, false)
      when 5      # End Game
        $scene = Scene_End.new
      end
    end
  end

Dabord, regardez cette partie-ci :
Code:

    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Vocab::save
    s6 = Vocab::game_end
Rajoutez une ligne de cette façon :
Code:

    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Vocab::save
    s6 = Vocab::game_end
    s7 = "Nom_de_l'option"
Mettez le nom de la nouvelle option au lieu de Nom_de_l'option (ici : "Charger")
Puis en dessous il y a :
Code:

    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
Entre crochets, se sont les différentes options qui apparaitront dans le menu et leur ordre
ATTENTION! La commande d'évenement "interdir l'acces aux sauvegardes" n'interdit pas les sauvegardes mais l'utilisation de la 5e option!
Si on écrit "@command_window = Window_Command.new(160, [s1, s2, s3, s4, s7, s5, s6])", la commande empêchera l'accès au chargement, mais le joueur pourra sauvegarder!


Esuite, vous avez :
Code:

      when 0      # Item
        $scene = Scene_Item.new
      when 1,2,3  # Skill, equipment, status
        start_actor_selection
      when 4      # Save
        $scene = Scene_File.new(true, false, false)
      when 5      # End Game
        $scene = Scene_End.new

Chaque "when X" symbolis la commande X + 1 du menu, puis à la ligne est écrit l'action enclenchée
Voici divers appels pour vous aider :

$scene = Scene_Item.new #Utilisation des objets
start_actor_selection #Selection d'un personnage
$scene = Scene_Skill.new(X) #Fenêtre des compétences du personnage de place X - 1 dans l'équipe
$scene = Scene_Equip.new(X) #Fenêtre de l'équipement du personnage de place X - 1 dans l'équipe
$scene = Scene_Status.new(X) #Fenêtre de l'état du personnage de place X - 1 dans l'équipe
$scene = Scene_File.new(true, false, false) #Sauvegarde de la partie
$scene = Scene_File.new(false, true, false) #Chargement d'une partie
command_shutdown #Quitter le jeu
command_to_title #Retour à l'écran titre

Vous pouvez aussi mettre un appel d'un script importé (comme le bestiaire)

Pour notre cas, nous obtenons :

Code:

  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Vocab::save
    s6 = Vocab::game_end
    s7 = "Charger"
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s7, s6])
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # If number of party members is 0
      @command_window.draw_item(0, false)    # Disable item
      @command_window.draw_item(1, false)    # Disable skill
      @command_window.draw_item(2, false)    # Disable equipment
      @command_window.draw_item(3, false)    # Disable status
    end
    if $game_system.save_disabled            # If save is forbidden
      @command_window.draw_item(4, false)    # Disable save
    end
  end
  #--------------------------------------------------------------------------
  # * Update Command Selection
  #--------------------------------------------------------------------------
  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      # Item
        $scene = Scene_Item.new
      when 1,2,3  # Skill, equipment, status
        start_actor_selection
      when 4      # Save
        $scene = Scene_File.new(true, false, false)
      when 5      # Chargement
        $scene = Scene_File.new(false, true, false)
      when 6      # End Game
        $scene = Scene_End.new
      end
    end
  end

J'espère que ce tutoriel vous sera utile!
zoneneutre
zoneneutre
Membre

Nombre de messages : 129
Age : 31
Distinction : aucune
Date d'inscription : 17/03/2008

Nouvelles options dans le menu Empty Re: Nouvelles options dans le menu

le Sam 9 Mai 2009 - 2:36
Très bien !

Mais qui dit option dit plusieurs éléments pour créer comme un sac à différents items ?
Anonymous
Invité
Invité

Nouvelles options dans le menu Empty Re: Nouvelles options dans le menu

le Sam 9 Mai 2009 - 8:35
Très jolie tuto mais tes balise sont fausse et on peut pas voir la dernière partit du script bien
alexansre
alexansre
Membre

Nombre de messages : 45
Age : 24
Localisation : Rueil Malmaison
Distinction : aucune
Date d'inscription : 01/12/2008

Nouvelles options dans le menu Empty Re: Nouvelles options dans le menu

le Sam 9 Mai 2009 - 9:57
désolé, mais je croyait que les balises étaient bonnes

Mais qui dit option dit plusieurs éléments pour créer comme un sac à différents items ?

J'ai pas très bien compris...
Le tuto sert à ajouter une commande comme le bestiaire, le chargement d'une partie, la fusion de sorts ou autre commande appelant un script(j'éspère que c'est plus clair maintenant)

PS:J'ai oublié de préciser:un script pour un autre menu que celui "par défaut" de VX peut ne pas prendre en compte la commande ajoutée: il faut faire cette manip dans le script de menu importé!
avatar
Az'
Membre

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

Nouvelles options dans le menu Empty Re: Nouvelles options dans le menu

le Sam 9 Mai 2009 - 10:51
Voilà, j'ai corrigé les balises Wink
Merci de ta contribution Wink
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum