Partagez
Aller en bas
Skillo
Skillo
Staffeux retraité

Nombre de messages : 526
Age : 30
Localisation : Rennes
Distinction : J'aime ce gars :P
(by Coco')
Scripteur apprenti, futur Berka !
(par Tretian)
Membre anonyme de la communauté, caché derrière son PC
(???)
super prof de script
[Dudu']
Résident permanent de la Chat Box
[Autoproclamé]
Adepte du XDDD [Yak' Very Happy]
Fanatique hystérique de Raymond le français [Un connu]
Date d'inscription : 19/01/2008

Nouveau Menu Compétence Empty Nouveau Menu Compétence

le Lun 31 Aoû 2009 - 2:10
Voilà je vais partager ici, le menu de compétence de mon jeu:

Un petit screen:
Nouveau Menu Compétence Compd

Le premier script à placer au dessus de main (appelez le comme vous voulez):
Spoiler:

Code:

#==============================================================================
# ** Window_Selectable
#------------------------------------------------------------------------------
#  This window contains cursor movement and scroll functions.
#==============================================================================

class Window_Selectable < Window_Base
  #--------------------------------------------------------------------------
  # * Selection
  #--------------------------------------------------------------------------
  def selection
    return @commands[self.index]
  end
end

#==============================================================================
# ** Window_Skill
#------------------------------------------------------------------------------
#  This window displays a list of usable skills on the skill screen, etc.
#==============================================================================

class Window_Skill < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    x      : window x-coordinate
  #    y      : window y-coordinate
  #    width  : window width
  #    height : window height
  #    actor  : actor
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height, actor, column_max = 2)
    super(x, y, width, height)
    @actor = actor
    @column_max = column_max
    self.index = 0
    refresh
  end
end
 
#==============================================================================
# ** Window_SkillStatus
#------------------------------------------------------------------------------
#  This window displays the skill user's status on the skill screen.
#==============================================================================

class Window_SkillStatus < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    x    : window X coordinate
  #    y    : window Y corrdinate
  #    actor : actor
  #--------------------------------------------------------------------------
  def initialize(x, y, actor)
    super(x, y, 416, 56)
    @actor = actor
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    draw_actor_level(@actor, 10, 0)
    draw_actor_hp(@actor, 100, 0)
    draw_actor_mp(@actor, 242, 0)
  end
end

#==============================================================================
# ** Window_SkillStatus2
#------------------------------------------------------------------------------
#  This window displays the skill user's status on the skill screen.
#==============================================================================

class Window_SkillStatus2 < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    x    : window X coordinate
  #    y    : window Y corrdinate
  #    actor : actor
  #--------------------------------------------------------------------------
  def initialize(x, y, actor)
    super(x, y, 128, 360)
    @actor = actor
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    draw_actor_name(@actor, 5, 0)
    draw_actor_graphic(@actor, 45, 320)
    draw_actor_face(@actor, 0, 40)
    draw_parameters(10, 160)
  end
  #--------------------------------------------------------------------------
  # * Draw Parameters
  #    x : Draw spot X coordinate
  #    y : Draw spot Y coordinate
  #--------------------------------------------------------------------------
  def draw_parameters(x, y)
    draw_parameter(@actor, x, y + WLH * 0, 0)
    draw_parameter(@actor, x, y + WLH * 1, 1)
    draw_parameter(@actor, x, y + WLH * 2, 2)
    draw_parameter(@actor, x, y + WLH * 3, 3)
  end
  #--------------------------------------------------------------------------
  # * Draw Parameters
  #    actor : actor
  #    x    : draw spot x-coordinate
  #    y    : draw spot y-coordinate
  #    type  : Type of parameters (0-3)
  #--------------------------------------------------------------------------
  def draw_parameter(actor, x, y, type)
    case type
    when 0
      parameter_name = "ATK:"
      parameter_value = actor.atk
    when 1
      parameter_name = "DEF:"
      parameter_value = actor.def
    when 2
      parameter_name =  "ESP:"
      parameter_value = actor.spi
    when 3
      parameter_name = "AGI:"
      parameter_value = actor.agi
    end
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 120, WLH, parameter_name)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 30, y, 36, WLH, parameter_value, 2)
  end
end
Skillo
Skillo
Staffeux retraité

Nombre de messages : 526
Age : 30
Localisation : Rennes
Distinction : J'aime ce gars :P
(by Coco')
Scripteur apprenti, futur Berka !
(par Tretian)
Membre anonyme de la communauté, caché derrière son PC
(???)
super prof de script
[Dudu']
Résident permanent de la Chat Box
[Autoproclamé]
Adepte du XDDD [Yak' Very Happy]
Fanatique hystérique de Raymond le français [Un connu]
Date d'inscription : 19/01/2008

Nouveau Menu Compétence Empty Re: Nouveau Menu Compétence

le Lun 31 Aoû 2009 - 2:11
Le deuxieme script à placer au dessus de main (pareil, appelez le comme vous voulez):
Spoiler:

Code:

module MenuSkill
   
  #------------------------------------------------------------------------
    # * Help Text
    #------------------------------------------------------------------------
    # Attak description
    ATK = "Inflige des dégats à l'adversaire."
    # Skill description
    SKILL = "Compétences du héros"
    # Guard description
    GUARD = "Permet de se défendre lors d'un combat."
    # Item description
    ITEM = "Permet d'accéder aux objets."

end

#==============================================================================
# ** Scene_Skill
#------------------------------------------------------------------------------
#  This class performs the skill screen processing.
#==============================================================================

class Scene_Skill < Scene_Base
  include MenuSkill
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    actor_index : actor index
  #--------------------------------------------------------------------------
  def initialize(actor_index = 0, equip_index = 0)
    @actor_index = actor_index
  end
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    @actor = $game_party.members[@actor_index]
    @viewport = Viewport.new(0, 0, 544, 416)
    @help_window = Window_Help.new
    @help_window.viewport = @viewport
    @help_window.y = 360
    @status_window = Window_SkillStatus.new(128, 0, @actor)
    @status_window.viewport = @viewport
    @status2_window = Window_SkillStatus2.new(0, 0, @actor)
    @status2_window.viewport = @viewport
    @window_command = Window_ActorCommand.new
    @window_command.setup(@actor)
    @commands = @window_command.commands
    @window_command.dispose
    @actor_command_window = Window_Command.new(150, @commands)
    @actor_command_window.refresh
    @actor_command_window.viewport = @viewport
    @actor_command_window.x = 394
    @actor_command_window.y = 56
    #@actor_command_window.height = 32 + (24*@actor_command_window.commands.size)   
    @target_window = Window_MenuStatus.new(0, 0)
    hide_target_window_enter
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @help_window.dispose
    @status_window.dispose
    @status2_window.dispose
    @actor_command_window.dispose
    @target_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Return to Original Screen
  #--------------------------------------------------------------------------
  def return_scene
    $scene = Scene_Menu.new(1)   
  end
  #--------------------------------------------------------------------------
  # * Switch to Next Actor Screen
  #--------------------------------------------------------------------------
  def next_actor
    @actor_index += 1
    @actor_index %= $game_party.members.size
    $scene = Scene_Skill.new(@actor_index)
  end
  #--------------------------------------------------------------------------
  # * Switch to Previous Actor Screen
  #--------------------------------------------------------------------------
  def prev_actor
    @actor_index += $game_party.members.size - 1
    @actor_index %= $game_party.members.size
    $scene = Scene_Skill.new(@actor_index)
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @status_window.update
    @status2_window.update
    @help_window.update
    @target_window.update
    @actor_command_window.update
    if @actor_command_window.active
      update_help_window
      update_actor_command_selection
    elsif @skill_window.active   
      @skill_window.update
      update_skill_selection
    elsif @target_window.active
      update_target_selection
    end
  end
  #--------------------------------------------------------------------------
  # * Update Help Window
  #--------------------------------------------------------------------------
  def update_help_window
      case @actor_command_window.selection
      when Vocab::attack
        @help_window.set_text(ATK, 1)       
      when Vocab::skill
        @help_window.set_text(SKILL, 1)
      when Vocab::guard
        @help_window.set_text(GUARD, 1)
      when Vocab::item
        @help_window.set_text(ITEM, 1)
    end 
  end 
  #--------------------------------------------------------------------------
  # * Update Actor Command Selection
  #--------------------------------------------------------------------------
  def update_actor_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      return_scene
    elsif Input.trigger?(Input::R)
      Sound.play_cursor
      next_actor
    elsif Input.trigger?(Input::L)
      Sound.play_cursor
      prev_actor
    elsif Input.trigger?(Input::C)
      case @actor_command_window.selection
      when Vocab::attack  # Attack
        Sound.play_buzzer
      when Vocab::skill, @actor.class.skill_name
        Sound.play_decision
        start_skill_selection
      when Vocab::guard  # Guard
        Sound.play_buzzer
      when Vocab::item  # Item
        Sound.play_decision
        $scene = Scene_Item.new
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Start Skill Selection
  #--------------------------------------------------------------------------
  def start_skill_selection
    @skill_window = Window_Skill.new(128, 56, 266, 304, @actor, 1)
    @skill_window.viewport = @viewport
    @skill_window.help_window = @help_window
    @actor_command_window.active = false
    @skill_window.active = true
    @skill_window.index = 0
  end
  #--------------------------------------------------------------------------
  # * End Skill Selection
  #--------------------------------------------------------------------------
  def end_skill_selection
    @actor_command_window.active = true
    @skill_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Update Skill Selection
  #--------------------------------------------------------------------------
  def update_skill_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      end_skill_selection
    elsif Input.trigger?(Input::R)
      Sound.play_cursor
      next_actor
    elsif Input.trigger?(Input::L)
      Sound.play_cursor
      prev_actor
    elsif Input.trigger?(Input::C)
      @skill = @skill_window.skill
      if @skill != nil
        @actor.last_skill_id = @skill.id
      end
      if @actor.skill_can_use?(@skill)
        Sound.play_decision
        determine_skill
      else
        Sound.play_buzzer
      end
    end
  end
 
  #--------------------------------------------------------------------------
  # * Confirm Skill
  #--------------------------------------------------------------------------
  def determine_skill
    if @skill.for_friend?
      show_target_window(@skill_window.index % 2 == 0)
      if @skill.for_all?
        @target_window.index = 99
      elsif @skill.for_user?
        @target_window.index = @actor_index + 100
      else
        if $game_party.last_target_index < @target_window.item_max
          @target_window.index = $game_party.last_target_index
        else
          @target_window.index = 0
        end
      end
    else
      use_skill_nontarget
    end
  end
  #--------------------------------------------------------------------------
  # * Update Target Selection
  #--------------------------------------------------------------------------
  def update_target_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      hide_target_window_select
    elsif Input.trigger?(Input::C)
      if not @actor.skill_can_use?(@skill)
        Sound.play_buzzer
      else
        determine_target
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Confirm Target
  #    If there is no effect (such as using a potion on an incapacitated
  #    character), play a buzzer SE.
  #--------------------------------------------------------------------------
  def determine_target
    used = false
    if @skill.for_all?
      for target in $game_party.members
        target.skill_effect(@actor, @skill)
        used = true unless target.skipped
      end
    elsif @skill.for_user?
      target = $game_party.members[@target_window.index - 100]
      target.skill_effect(@actor, @skill)
      used = true unless target.skipped
    else
      $game_party.last_target_index = @target_window.index
      target = $game_party.members[@target_window.index]
      target.skill_effect(@actor, @skill)
      used = true unless target.skipped
    end
    if used
      use_skill_nontarget
    else
      Sound.play_buzzer
    end
  end
  #--------------------------------------------------------------------------
  # * Show Target Window
  #    right : Right justification flag (if false, left justification)
  #--------------------------------------------------------------------------
  def show_target_window(right)
    @skill_window.active = false
    width_remain = 544 - @target_window.width
    @target_window.x = right ? width_remain : 0
    @target_window.visible = true
    @target_window.active = true
    if right
      @viewport.rect.set(0, 0, width_remain, 416)
      @viewport.ox = 0
    else
      @viewport.rect.set(@target_window.width, 0, width_remain, 416)
      @viewport.ox = @target_window.width
    end
  end
  #--------------------------------------------------------------------------
  # * Hide Target Window Enter
  #--------------------------------------------------------------------------
  def hide_target_window_enter
    @actor_command_window.active = true
    @target_window.visible = false
    @target_window.active = false
    @viewport.rect.set(0, 0, 544, 416)
    @viewport.ox = 0
  end
  #--------------------------------------------------------------------------
  # * Hide Target Window Select
  #--------------------------------------------------------------------------
  def hide_target_window_select
    @actor_command_window.active = false
    @skill_window.active = true
    @target_window.visible = false
    @target_window.active = false
    @viewport.rect.set(0, 0, 544, 416)
    @viewport.ox = 0
  end
  #--------------------------------------------------------------------------
  # * Use Skill (apply effects to non-ally targets)
  #--------------------------------------------------------------------------
  def use_skill_nontarget
    Sound.play_use_skill
    @actor.mp -= @actor.calc_mp_cost(@skill)
    @status_window.refresh
    @status2_window.refresh
    @skill_window.refresh
    @target_window.refresh
    if $game_party.all_dead?
      $scene = Scene_Gameover.new
    elsif @skill.common_event_id > 0
      $game_temp.common_event_id = @skill.common_event_id
      $scene = Scene_Map.new
    end
  end
end

Voilà laissez vos commentaires.
Azaki
Azaki
Modérateur

Nombre de messages : 1742
Age : 26
Localisation : Dans ton cul(stom), t'as vu, tarba? é_è
Distinction : Commentateur sportif
Indépendantiste Breton
Chevalier de lumière
Membre du Haruhi fan-club
Membre du Tsukasa Nishino fan-club.
[Chou n°3]
Mist' Wink

Fils caché de Francis L'Alan
[Coco' Smile]
Chevalier Noir
Ex-Empereur d'Erem Vehyx (ou pas!! x) )

Date d'inscription : 14/05/2008

Nouveau Menu Compétence Empty Re: Nouveau Menu Compétence

le Lun 31 Aoû 2009 - 2:40
Il est sympa! Je trouve qu'il fait old-school ^o^

Par contre, pourquoi tes commentaires dans le script sont en anglais?
Skillo
Skillo
Staffeux retraité

Nombre de messages : 526
Age : 30
Localisation : Rennes
Distinction : J'aime ce gars :P
(by Coco')
Scripteur apprenti, futur Berka !
(par Tretian)
Membre anonyme de la communauté, caché derrière son PC
(???)
super prof de script
[Dudu']
Résident permanent de la Chat Box
[Autoproclamé]
Adepte du XDDD [Yak' Very Happy]
Fanatique hystérique de Raymond le français [Un connu]
Date d'inscription : 19/01/2008

Nouveau Menu Compétence Empty Re: Nouveau Menu Compétence

le Lun 31 Aoû 2009 - 2:43
Pourquoi? parce que ce sont les commentaires de base, que j'ai la flemme de les modifiés et l'Anglais est une très belle langue. J'aime l'anglais Very Happy

De toute façon pour ce script les commentaires ne sont vraiment pas nécessaire.

Edit: Ah j'oubliais, le 3/4 des mots et des phrase sont plus courtes en anglais.
Coco'
Coco'
Staffeux retraité

Nombre de messages : 6577
Age : 26
Localisation : Nord/Douai
Distinction : EL DICTATOR COCO'
Coco-Dieu en puissance

Nouveau Menu Compétence Magikarpe Grand gourou suppléant de la secte des MAGIKARP
Leader charismatique des 2beStaffieux

N°1 du forum
Président, vice-présidents et membres honoraires de la cour suprême du forum
Président de l'association des grosses distinctions CMB
Date d'inscription : 02/07/2008
http://www.rpgmakervx-fr.com

Nouveau Menu Compétence Empty Re: Nouveau Menu Compétence

le Lun 31 Aoû 2009 - 2:48
Il est sympa ton script, mais bon, t'aurais pu mettre un peu plus de toi dedans, car tout ce que je vois, c'est un copier/coller avec une positions des fenêtres persos (avec un rajout du nom/vie je pense Wink ).

Si tu es un débutant, c'est du bon, bravo Wink
Skillo
Skillo
Staffeux retraité

Nombre de messages : 526
Age : 30
Localisation : Rennes
Distinction : J'aime ce gars :P
(by Coco')
Scripteur apprenti, futur Berka !
(par Tretian)
Membre anonyme de la communauté, caché derrière son PC
(???)
super prof de script
[Dudu']
Résident permanent de la Chat Box
[Autoproclamé]
Adepte du XDDD [Yak' Very Happy]
Fanatique hystérique de Raymond le français [Un connu]
Date d'inscription : 19/01/2008

Nouveau Menu Compétence Empty Re: Nouveau Menu Compétence

le Lun 31 Aoû 2009 - 2:55
Bah déja il y a la fenêtre des commandes dans laquelle tu peux te baladé avec information dans la window_help en temps réel de plus la window_skill n'apparait qu'un fois avoir valider le curseur sur compétence. Je le partage juste avant qu'il ne soit utilisable par personne à part moi.

Mais attention ne vous méprenez pas!!! Cette version est comme qui dirait "grand publique". Pour mon jeu ça sera tout autre chose.
Avec tri des competences.
Overdrives.
Fond de menu, etc..

Ps: je veux pas me vanter mais j'ai plus grand chose d'un débutant. Je make depuis que RPG Maker 200 est sorti et j'ai commencer à apprendre à bidouillé le rgss depuis la sorti de Xp.
Contenu sponsorisé

Nouveau Menu Compétence Empty Re: Nouveau Menu Compétence

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum