Herramientas de usuario

Herramientas del sitio


ayuda:rgss:biblioteca:3accesorios

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

ayuda:rgss:biblioteca:3accesorios [2019/09/23 04:01]
ayuda:rgss:biblioteca:3accesorios [2019/09/23 04:01] (actual)
Línea 1: Línea 1:
 +====== Equipar 3 Accesorios ======
  
 +===== Ficha técnica =====
 +  * **Nombre original:** Accessoire en plus
 +  * **Nombre del autor:** www.rpg-création.com
 +  * **Utilidad:​** Permite equipar hasta tres accesorios a un mismo héroe
 +  * **Dependencia de otros scripts:​** ​ No
 +  * **Incompatibilidad:​** Desconocida
 +
 +
 +
 +===== Instalación =====
 +Crear una nueva clase por encima de "​Main"​ con cualquier nombre y copiad en ella el siguiente código:
 +
 +<code ruby>
 +#​====================================
 +# Accessoire en plus
 +# Script téléchargé sur RPG-création - www.rpg-creation.com
 +#​====================================
 +module XRXS_MP8_Fixed_Valuables
 +  EQUIP_KINDS = [1, 2, 3, 4, 4, 4]
 +  EQUIP_KIND_NAMES = []
 +  WINDOWS_STRETCH = true
 +  STATUS_WINDOW_ARRANGE = true
 +  STATUS_WINDOW_EX_EQUIP_ROW_SIZE = 24
 +  STATUS_WINDOW_EX_EQUIP_X = 336
 +  STATUS_WINDOW_EX_EQUIP_Y = 256
 +end
 +
 +#​====================================
 +# ¡ Game_Actor
 +#​====================================
 +class Game_Actor < Game_Battler
 +  #​--------------------------------
 +  # ? ?​C???​N??​[?​h
 +  #​--------------------------------
 +  include XRXS_MP8_Fixed_Valuables
 +  #​--------------------------------
 +  # ? ?​ö?​J?​C???​X?​^???​X?​ϐ?​
 +  #​--------------------------------
 +  attr_reader :armor_ids
 +  #​--------------------------------
 +  # ? ?​Z?​b?​g?​A?​b?​v
 +  #​--------------------------------
 +  alias xrxs_mp8_setup setup
 +  def setup(actor_id)
 +    xrxs_mp8_setup(actor_id)
 +    @armor_ids = []
 +    # ?​g?​£?​—
 +    for i in 4...EQUIP_KINDS.size
 +      @armor_ids[i+1] = 0
 +    end
 +  end
 +  #​--------------------------------
 +  # ? ?​î–{?​r—Í?​Ì?​æ?​¾
 +  #​--------------------------------
 +  alias xrxs_mp8_base_str base_str
 +  def base_str
 +    n = xrxs_mp8_base_str
 +    for i in 4...EQUIP_KINDS.size
 +      armor = $data_armors[@armor_ids[i+1]]
 +      n += armor != nil ? armor.str_plus : 0
 +      end
 +    return n
 +  end
 +  #​--------------------------------
 +  # ? ?​î–{?​í—p?​³?​Ì?​æ?​¾
 +  #​--------------------------------
 +  alias xrxs_mp8_base_dex base_dex
 +  def base_dex
 +    n = xrxs_mp8_base_dex
 +    for i in 4...EQUIP_KINDS.size
 +      armor = $data_armors[@armor_ids[i+1]]
 +      n += armor != nil ? armor.dex_plus : 0
 +    end
 +    return n
 +  end
 +  #​--------------------------------
 +  # ? ?​î–{?​f?​?​³?​Ì?​æ?​¾
 +  #​--------------------------------
 +  alias xrxs_mp8_base_agi base_agi
 +  def base_agi
 +    n = xrxs_mp8_base_agi
 +    for i in 4...EQUIP_KINDS.size
 +      armor = $data_armors[@armor_ids[i+1]]
 +      n += armor != nil ? armor.agi_plus : 0
 +    end
 +    return n
 +  end
 +  #​--------------------------------
 +  # ? ?​î–{–?​—Í?​Ì?​æ?​¾
 +  #​--------------------------------
 +  alias xrxs_mp8_base_int base_int
 +  def base_int
 +    n = xrxs_mp8_base_int
 +    for i in 4...EQUIP_KINDS.size
 +      armor = $data_armors[@armor_ids[i+1]]
 +      n += armor != nil ? armor.int_plus : 0
 +    end
 +    return n
 +  end
 +  #​--------------------------------
 +  # ? ?​î–{?​¨—–h?​ä?​Ì?​æ?​¾
 +  #​--------------------------------
 +  alias xrxs_mp8_base_pdef base_pdef
 +  def base_pdef
 +    n = xrxs_mp8_base_pdef
 +    for i in 4...EQUIP_KINDS.size
 +      armor = $data_armors[@armor_ids[i+1]]
 +      n += armor != nil ? armor.pdef : 0
 +    end
 +    return n
 +  end
 +  #​--------------------------------
 +  # ? ?​î–{–?​–@–h?​ä?​Ì?​æ?​¾
 +  #​--------------------------------
 +  alias xrxs_mp8_base_mdef base_mdef
 +  def base_mdef
 +    n = xrxs_mp8_base_mdef
 +    for i in 4...EQUIP_KINDS.size
 +      armor = $data_armors[@armor_ids[i+1]]
 +      n += armor != nil ? armor.mdef : 0
 +    end
 +    return n
 +  end
 +  #​--------------------------------
 +  # ? ?​î–{?​ñ?​ðC³?​Ì?​æ?​¾
 +  #​--------------------------------
 +  alias xrxs_mp8_base_eva base_eva
 +  def base_eva
 +    n = xrxs_mp8_base_eva
 +    for i in 4...EQUIP_KINDS.size
 +      armor = $data_armors[@armor_ids[i+1]]
 +      n += armor != nil ? armor.eva : 0
 +    end
 +    return n
 +  end
 +  #​--------------------------------
 +  # ? ???​õ?​Ì?​ύX
 +  # equip_type : ???õ?^?C?v
 +  # id : ??í or –h?ï ID (0 ?​È?​ç???​õ?​ð?​)
 +  #​--------------------------------
 +  alias xrxs_mp8_equip equip
 +  def equip(equip_type,​ id)
 +    xrxs_mp8_equip(equip_type,​ id)
 +    if equip_type >= 5
 +      if id == 0 or $game_party.armor_number(id) > 0
 +        update_auto_state($data_armors[@armor_ids[equip_type]],​ $data_armors[id])
 +        $game_party.gain_armor(@armor_ids[equip_type],​ 1)
 +        @armor_ids[equip_type] = id
 +        $game_party.lose_armor(id,​ 1)
 +      end
 +    end
 +  end
 +end
 +#​====================================
 +# ¡ Window_EquipRight
 +#​====================================
 +class Window_EquipRight < Window_Selectable
 +  #​--------------------------------
 +  # ? ?​C???​N??​[?​h
 +  #​--------------------------------
 +  include XRXS_MP8_Fixed_Valuables
 +  #​--------------------------------
 +  # ? ?​I?​u?​W?​F?​N?​g??​ú?​»
 +  # actor : ?A?N?^[
 +  #​--------------------------------
 +  if WINDOWS_STRETCH
 +    def initialize(actor)
 +      super(272, 64, 368, 192)
 +      h = (EQUIP_KINDS.size + 1) * 32
 +      self.contents = Bitmap.new(width - 32, h)
 +      @actor = actor
 +      refresh
 +      self.index = 0
 +    end
 +  end
 +  #​--------------------------------
 +  # ? ???​t???​b?​V??​
 +  #​--------------------------------
 +  alias xrxs_mp8_refresh refresh
 +  def refresh
 +    xrxs_mp8_refresh
 +    @item_max = EQUIP_KINDS.size + 1
 +    for i in 4...EQUIP_KINDS.size
 +    @data.push($data_armors[@actor.armor_ids[i+1]])
 +    self.contents.font.color = system_color
 +    self.contents.draw_text(5,​ 32 * (i+1), 92, 32, EQUIP_KIND_NAMES[i-4].to_s)
 +    draw_item_name(@data[i+1],​ 92, 32 * (i+1))
 +    end
 +  end
 +end
 +#​====================================
 +# ¡ Window_EquipItem
 +#​====================================
 +class Window_EquipItem < Window_Selectable
 +  #​--------------------------------
 +  # ? ???​õ?​í??​̐Ý?​è
 +  #​--------------------------------
 +  def equip_type=(et)
 +    @equip_type = et
 +    refresh
 +  end
 +  #​--------------------------------
 +  # ? ???​t???​b?​V??​
 +  #​--------------------------------
 +  alias xrxs_mp8_refresh refresh
 +  def refresh
 +    xrxs_mp8_refresh
 +    if @equip_type >= 5
 +      if self.contents != nil
 +        self.contents.dispose
 +        self.contents = nil
 +      end
 +      @data = []
 +      armor_set = $data_classes[@actor.class_id].armor_set
 +      for i in 1...$data_armors.size
 +        if $game_party.armor_number(i) > 0 and armor_set.include?​(i)
 +          type = $data_armors[i].kind + 1
 +          if !@equip_type.to_s.scan(/#​{type}/​).empty?​
 +            @data.push($data_armors[i])
 +          end
 +        end
 +      end
 +      @data.push(nil)
 +      @item_max = @data.size
 +      self.contents = Bitmap.new(width - 32, row_max * 32)
 +      for i in 0...@item_max-1
 +        draw_item(i)
 +      end
 +    end
 +  end
 +end
 +#​====================================
 +# ¡ Window_Status
 +#​====================================
 +class Window_Status < Window_Base
 +  #​--------------------------------
 +  # ? ?​C???​N??​[?​h
 +  #​--------------------------------
 +  include XRXS_MP8_Fixed_Valuables
 +  #​--------------------------------
 +  # ?​J?​X?​^?​}?​C?​Y?​|?​C???​gu?​X?​e[?​^?​X?​æ–?​Ì?​f?​U?​C???​ð?​ύX?​·?​év
 +  #​--------------------------------
 +  if STATUS_WINDOW_ARRANGE
 +    def refresh
 +      self.contents.clear
 +      draw_actor_graphic(@actor,​ 40, 112)
 +      draw_actor_name(@actor,​ 4, 0)
 +      draw_actor_class(@actor,​ 4 + 144, 0)
 +      draw_actor_level(@actor,​ 96, 32)
 +      draw_actor_state(@actor,​ 96, 64)
 +      draw_actor_hp(@actor,​ 96, 112, 172)
 +      draw_actor_sp(@actor,​ 96, 144, 172)
 +      draw_actor_parameter(@actor,​ 96, 192, 0)
 +      draw_actor_parameter(@actor,​ 96, 224, 1)
 +      draw_actor_parameter(@actor,​ 96, 256, 2)
 +      draw_actor_parameter(@actor,​ 96, 304, 3)
 +      draw_actor_parameter(@actor,​ 96, 336, 4)
 +      draw_actor_parameter(@actor,​ 96, 368, 5)
 +      draw_actor_parameter(@actor,​ 96, 400, 6)
 +      self.contents.font.color = system_color
 +      self.contents.draw_text(320,​ 48, 80, 32, "​EXP"​)
 +      self.contents.draw_text(320,​ 80, 80, 32, "​NEXT"​)
 +      self.contents.font.color = normal_color
 +      self.contents.draw_text(320 + 80, 48, 84, 32, @actor.exp_s,​ 2)
 +      self.contents.draw_text(320 + 80, 80, 84, 32, @actor.next_rest_exp_s,​ 2)
 +      self.contents.font.color = system_color
 +      self.contents.draw_text(320,​ 112, 96, 32, "​Equipement"​)
 +      draw_item_name($data_weapons[@actor.weapon_id],​ 320 + 16, 136)
 +      draw_item_name($data_armors[@actor.armor1_id],​ 320 + 16, 160)
 +      draw_item_name($data_armors[@actor.armor2_id],​ 320 + 16, 184)
 +      draw_item_name($data_armors[@actor.armor3_id],​ 320 + 16, 208)
 +      draw_item_name($data_armors[@actor.armor4_id],​ 320 + 16, 232)
 +    end
 +  end
 +  #​--------------------------------
 +  # ? ???​t???​b?​V??​
 +  #​--------------------------------
 +  alias xrxs_mp8_refresh refresh
 +  def refresh
 +    xrxs_mp8_refresh
 +    # ?​g?​£?​—
 +    for i in 4...EQUIP_KINDS.size
 +      armor = $data_armors[@actor.armor_ids[i+1]]
 +      draw_item_name($data_armors[@actor.armor_ids[i+1]],​ STATUS_WINDOW_EX_EQUIP_X,​ STATUS_WINDOW_EX_EQUIP_Y + STATUS_WINDOW_EX_EQUIP_ROW_SIZE * (i-4))
 +    end
 +  end
 +end
 +#​====================================
 +# ¡ Scene_Equip
 +#​====================================
 +class Scene_Equip
 +  #​--------------------------------
 +  # ? ?​C???​N??​[?​h
 +  #​--------------------------------
 +  include XRXS_MP8_Fixed_Valuables
 +  #​--------------------------------
 +  # ? ?​?​C??​?​—
 +  #​--------------------------------
 +  alias xrxs_mp8_main main
 +  def main
 +    @addition_initialize_done = false
 +    xrxs_mp8_main
 +    for i in 4...EQUIP_KINDS.size
 +      @item_windows[i+2].dispose
 +    end
 +  end
 +  #​--------------------------------
 +  # ? ???​t???​b?​V??​
 +  #​--------------------------------
 +  alias xrxs_mp8_refresh refresh
 +  def refresh
 +    unless @addition_initialize_done
 +      @item_windows = []
 +      @item_window2.equip_type = EQUIP_KINDS[0]
 +      @item_window3.equip_type = EQUIP_KINDS[1]
 +      @item_window4.equip_type = EQUIP_KINDS[2]
 +      @item_window5.equip_type = EQUIP_KINDS[3]
 +      for i in 4...EQUIP_KINDS.size
 +        @item_windows[i+2] = Window_EquipItem.new(@actor,​ EQUIP_KINDS[i])
 +        @item_windows[i+2].help_window = @help_window
 +      end
 +      if WINDOWS_STRETCH
 +        @right_window.height = (EQUIP_KINDS.size + 2) * 32
 +        if @left_window.y + @left_window.height == 256
 +          @left_window.height = @right_window.height
 +        end
 +        y_pos = (@right_window.y + @right_window.height)
 +        y_space = 480 - y_pos
 +        @item_window1.y = y_pos
 +        @item_window2.y = y_pos
 +        @item_window3.y = y_pos
 +        @item_window4.y = y_pos
 +        @item_window5.y = y_pos
 +        @item_window1.height = y_space
 +        @item_window2.height = y_space
 +        @item_window3.height = y_space
 +        @item_window4.height = y_space
 +        @item_window5.height = y_space
 +        for i in 4...EQUIP_KINDS.size
 +          @item_windows[i+2].y = y_pos
 +          @item_windows[i+2].height = y_space
 +        end
 +      end
 +    @addition_initialize_done = true
 +    end
 +    for i in 4...EQUIP_KINDS.size
 +      @item_windows[i+2].visible = (@right_window.index == i+1)
 +    end
 +    if @right_window.index >= 5
 +      @item_window = @item_windows[@right_window.index + 1]
 +    end
 +    xrxs_mp8_refresh
 +  end
 +  #​--------------------------------
 +  # ? ?​t??​[??​XV (?​A?​C?​e???​E?​B???​h?​E?​ª?​A?​N?​e?​B?​u?​̏ê?​)
 +  #​--------------------------------
 +  alias xrxs_mp8_update_item update_item
 +  def update_item
 +    xrxs_mp8_update_item
 +    if Input.trigger?​(Input::​C)
 +      @item_window1.refresh
 +      @item_window2.refresh
 +      @item_window3.refresh
 +      @item_window4.refresh
 +      @item_window5.refresh
 +      for i in 4...EQUIP_KINDS.size
 +        @item_windows[i+2].refresh
 +      end
 +      Graphics.frame_reset
 +      return
 +    end
 +  end
 +end
 +</​code>​
ayuda/rgss/biblioteca/3accesorios.txt · Última modificación: 2019/09/23 04:01 (editor externo)