Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

[RMXP] Equipar tres accesorios

Ver el tema anterior Ver el tema siguiente Ir abajo

[RMXP] Equipar tres accesorios

Mensaje por carlos55 el 2011-06-30, 16:50

Hola
aporto este script para que puedan equipar tres accesorios
Autor:XRXS
Código:
#====================================
# 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


Última edición por carlos55 el 2011-07-03, 20:57, editado 2 veces (Razón : Agregado el autor)
avatar
carlos55
Moderador
Moderador

0/3

Créditos 1129

Gracias : 11

Volver arriba Ir abajo

Re: [RMXP] Equipar tres accesorios

Mensaje por Clark-CLK el 2011-06-30, 17:07

Recuerdo este script, creo que lo intenté usar una vez pero me dió error. (creo que es el mismo xD) bueno, si no da error, gran aporte, y si no, la intención era aportar, así que gran aporte igualmente xD

Wong Wong!!
avatar
Clark-CLK
Veterano
Veterano

0/3

Créditos 1346

Gracias : 3

Volver arriba Ir abajo

Re: [RMXP] Equipar tres accesorios

Mensaje por PROmaster el 2011-07-01, 08:47

¿Se puede hacer también para que puedas llevar 2 accesorios en vez de 3?
Por lo que veo a primera vista, quitando uno de los tres 4 que hay sería suficiente para empezar, ¿verdad?
avatar
PROmaster
Principiante
Principiante

0/3

Créditos 322

Gracias : 0

Volver arriba Ir abajo

Re: [RMXP] Equipar tres accesorios

Mensaje por orochii el 2011-07-02, 09:20

Autor: XRXS. Ese es.
Y si, los 3 4's están dentro de la sección de configuración. DEBERÍA FUNCIONAR, sino es que está mal hecho.

En fin, lindo aporte,
Orochii Zouveleki
avatar
orochii
Reportero

0/3

Créditos 7343

Gracias : 477

Volver arriba Ir abajo

Re: [RMXP] Equipar tres accesorios

Mensaje por -Luisgi- el 2011-07-03, 17:05

Una pregunta, a parte de 3 accesorios se podrian poner 2 armas, 2 escudos...? Si se puede lo intentare i si no tambien.
avatar
-Luisgi-
Iniciado
Iniciado

0/3

Créditos 36

Gracias : 2

Volver arriba Ir abajo

Re: [RMXP] Equipar tres accesorios

Mensaje por jehyknaria el 2011-07-03, 20:38

@-Luisgi- escribió:Una pregunta, a parte de 3 accesorios se podrian poner 2 armas, 2 escudos...? Si se puede lo intentare i si no tambien.

Lo de dos armas, hay scripts aparte para ello (este es sólo para accesorios). Lo de los dos escudos, pues es un poco extraño, ¿no?
avatar
jehyknaria
Principiante
Principiante

0/3

Créditos 487

Gracias : 16

Volver arriba Ir abajo

Re: [RMXP] Equipar tres accesorios

Mensaje por -Luisgi- el 2011-07-04, 16:57

Si que es extraño lo de los 2 escudos si lo piensas xD! Pero lo decia como ejemplo.
avatar
-Luisgi-
Iniciado
Iniciado

0/3

Créditos 36

Gracias : 2

Volver arriba Ir abajo

Re: [RMXP] Equipar tres accesorios

Mensaje por marconando90 el 2015-04-03, 22:38

Hola, tengo un problemilla con este script, me es incompatible con el script de 2 armas y llevo un tiempo intentando solucionarlo sin resultados. Ademas, depende de que script ponga encima del otro me sale un problema diferente, ¿podria ayudarme alguien?
avatar
marconando90
Iniciado
Iniciado

0/3

Créditos 28

Gracias : 7

Volver arriba Ir abajo

Re: [RMXP] Equipar tres accesorios

Mensaje por Wecoc el 2015-07-01, 22:13

Veo que pasaron unos meses y nadie te respondió... ¿Sigues interesado en ésto?

Dado que ámbos scripts son largos y retocan lo mismo de forma distinta, es difícil combinarlos para hacerlos compatibles conjuntamente (de hecho sería casi como hacer otro script de 0).

Pero tienes alternativas, los scripts de alteración de slots de equipo son bastante frecuentes con sus variantes de modo que seguro que puedes encontrar uno que se adapte a tu juego.

Yo hice el Wecoc's Equip System, que era solo una base pero tiene suficiente como para hacer múltiples slots... Pero su configuración no es sencilla, te aviso. Luego está el Equipment Overhaul, más concreto con esa funcionalidad. De éste último hay otra versión aquí, no conozco las diferencias: Equipment Overhaul (2).
avatar
Wecoc
Administrador
Administrador



Créditos 12314

Gracias : 655

Volver arriba Ir abajo

Re: [RMXP] Equipar tres accesorios

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.