¡Bienvenido a Universo Maker!
¿Es esta la primera vez que visitas el foro? Si es así te recomendamos que te registres para tener completo acceso a todas las áreas y secciones del foro, así también podrás participar activamente en la comunidad. Si ya tienes una cuenta, conectate cuanto antes.
Iniciar Sesión Registrarme

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo Mensaje [Página 1 de 1.]

#1 [RPG Maker XP] Limite de Objetos el Vie Dic 16, 2011 1:15 am

Razor

avatar
Script: Limite en Objetos
Autor: Northro
Versión: 1.0
Descripción: Limita la máxima capacidad de objetos, armas, armaduras y dinero.


Código:

#===============================================================================
# Creado por: Northro
# Para: RPG Maker XP
# Nombre del Script: Game Limit
# Versión del Script: 1.0
#===============================================================================

#===============================================================================
# Instrucciones: Copiar y pegar sobre main.
#===============================================================================

#===============================================================================
# Modulo "Gam_Lim"
#===============================================================================
module Gam_Lim
#-------------------------------------------------------------------------------
# * Máxima capacidad de dinero que ocupara el grupo.
#-------------------------------------------------------------------------------
  MAX_GOLD = [50]
#-------------------------------------------------------------------------------
# * Máxima capacidad de objetos por defecto que ocuparan los objetos.
#-------------------------------------------------------------------------------
  MAX_DEFAULT_ITEM = 99
#-------------------------------------------------------------------------------
# * Máxima capacidad de un objeto definido.
#
#  A = Id del objeto.
#  B = Máxima capacidad que puede ser llevada el objeto.
#
#  MAX_ITEM = {A => B}
#-------------------------------------------------------------------------------
  MAX_ITEM = {
  1 => 2,
  2 => 3
  }
#-------------------------------------------------------------------------------
# * Máxima capacidad de armas por defecto que ocuparan las armas.
#-------------------------------------------------------------------------------
  MAX_DEFAULT_WEAPON = 99
#-------------------------------------------------------------------------------
# * Máxima capacidad de un arma definida.
#
#  A = Id del arma.
#  B = Máxima capacidad que puede ser llevada el arma.
#
#  MAX_WEAPON = {A => B}
#-------------------------------------------------------------------------------
  MAX_WEAPON = {
  1 => 3,
  2 => 4
  }
#-------------------------------------------------------------------------------
# * Máxima capacidad de armaduras por defecto que ocuparan las armaduras.
#-------------------------------------------------------------------------------
  MAX_DEFAULT_ARMOR = 99
#-------------------------------------------------------------------------------
# * Máxima capacidad de un armadura definida.
#
#  A = Id del armadura.
#  B = Máxima capacidad que puede ser llevada el armadura.
#
#  MAX_ARMOR = {A => B}
#-------------------------------------------------------------------------------
  MAX_ARMOR = {
  1 => 1,
  2 => 5
  }
#-------------------------------------------------------------------------------
# * Colores que se usan para saber cuando se ha llegado al maximo de dinero, de
#  una arma, de una armadura y de un objeto.
#
#  A = Color de llegada a la máxima de capacidad.
#  B = Color de no llegada a la máxima de capacidad.
#
#  MAX_MIN_COLORS = [A, B]
#
#  Colores: 0 = Blanco, 1 = Azul, 2 = Rojo, 3 = Verde, 4 = Azul Celeste,
#          5 = Morado, 6 = Amarillo y 7 = Gris.
#-------------------------------------------------------------------------------
  MAX_MIN_COLORS = [3, 0]
end

#===============================================================================
# Clase "Game_Party"
#===============================================================================

class Game_Party
  def gain_gold(n)
    @gold = [[@gold + n, 0].max, Gam_Lim::MAX_GOLD[0]].min
  end
 
  def gain_item(item_id, n)
    max_item = Gam_Lim::MAX_DEFAULT_ITEM
    max_item = Gam_Lim::MAX_ITEM[item_id] if Gam_Lim::MAX_ITEM.include?(item_id)
    if item_id > 0
      @items[item_id] = [[item_number(item_id) + n, 0].max, max_item].min
    end
  end
 
  def gain_weapon(weapon_id, n)
    max_weapon = Gam_Lim::MAX_DEFAULT_WEAPON
    max_weapon = Gam_Lim::MAX_WEAPON[weapon_id] if Gam_Lim::MAX_WEAPON.include?(weapon_id)
    if weapon_id > 0
      @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, max_weapon].min
    end
  end
 
  def gain_armor(armor_id, n)
    max_armor = Gam_Lim::MAX_DEFAULT_ARMOR
    max_armor = Gam_Lim::MAX_ARMOR[armor_id] if Gam_Lim::MAX_ARMOR.include?(armor_id)
    if armor_id > 0
      @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, max_armor].min
    end
  end
end

#===============================================================================
# Modulo "Gam_Lim"
#===============================================================================

module Gam_Lim
  def self.change_max_gold(max_gold)
    MAX_GOLD[0] = max_gold
    $game_party.gain_gold(1) if $game_party.gold > max_gold
  end
end

#===============================================================================
# Clase "Window_Item"
#===============================================================================

class Window_Item < Window_Selectable
  def draw_item(index)
    item = @data[index]
    case item
    when RPG::Item
      number = $game_party.item_number(item.id)
    when RPG::Weapon
      number = $game_party.weapon_number(item.id)
    when RPG::Armor
      number = $game_party.armor_number(item.id)
    end
    if item.is_a?(RPG::Item) and
      $game_party.item_can_use?(item.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    x = 4 + index % 2 * (288 + 32)
    y = index / 2 * 32
    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    bitmap = RPG::Cache.icon(item.icon_name)
    opacity = self.contents.font.color == normal_color ? 255 : 128
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
    self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
    color = Gam_Lim::MAX_MIN_COLORS
    self.contents.font.color = max_item?(item) ? text_color(color[0]) : text_color(color[1])
    self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
  end
 
  def max_item?(item)
    case item
    when RPG::Item
      max_item = Gam_Lim::MAX_DEFAULT_ITEM
      max_item = Gam_Lim::MAX_ITEM[item.id] if Gam_Lim::MAX_ITEM.include?(item.id)
      return ($game_party.item_number(item.id) >= max_item)
    when RPG::Weapon
      max_weapon = Gam_Lim::MAX_DEFAULT_WEAPON
      max_weapon = Gam_Lim::MAX_WEAPON[item.id] if Gam_Lim::MAX_WEAPON.include?(item.id)
      return ($game_party.weapon_number(item.id) >= max_weapon)
    when RPG::Armor
      max_armor = Gam_Lim::MAX_DEFAULT_ARMOR
      max_armor = Gam_Lim::MAX_ARMOR[item.id] if Gam_Lim::MAX_ARMOR.include?(item.id)
      return ($game_party.armor_number(item.id) >= max_armor)
    end
  end
end

#===============================================================================
# Clase "Window_EquipItem"
#===============================================================================

class Window_EquipItem < Window_Selectable
  def draw_item(index)
    item = @data[index]
    x = 4 + index % 2 * (288 + 32)
    y = index / 2 * 32
    case item
    when RPG::Weapon
      number = $game_party.weapon_number(item.id)
    when RPG::Armor
      number = $game_party.armor_number(item.id)
    end
    bitmap = RPG::Cache.icon(item.icon_name)
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
    self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
    color = Gam_Lim::MAX_MIN_COLORS
    self.contents.font.color = max_item?(item) ? text_color(color[0]) : text_color(color[1])
    self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
  end
  def max_item?(item)
    case item
    when RPG::Weapon
      max_weapon = Gam_Lim::MAX_DEFAULT_WEAPON
      max_weapon = Gam_Lim::MAX_WEAPON[item.id] if Gam_Lim::MAX_WEAPON.include?(item.id)
      return ($game_party.weapon_number(item.id) >= max_weapon)
    when RPG::Armor
      max_armor = Gam_Lim::MAX_DEFAULT_ARMOR
      max_armor = Gam_Lim::MAX_ARMOR[item.id] if Gam_Lim::MAX_ARMOR.include?(item.id)
      return ($game_party.armor_number(item.id) >= max_armor)
    end
  end
end

#===============================================================================
# Clase "Window_Gold"
#===============================================================================

class Window_Gold < Window_Base
  def refresh
    self.contents.clear
    cx = contents.text_size($data_system.words.gold).width
    max_gold = Gam_Lim::MAX_GOLD[0]
    color = Gam_Lim::MAX_MIN_COLORS
    self.contents.font.color = $game_party.gold >= max_gold ? text_color(color[0]) : text_color(color[1])
    self.contents.draw_text(4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(124-cx, 0, cx, 32, $data_system.words.gold, 2)
  end
end


Instrucciones de uso:
  1. Adicionar el script encima de main
  2. Modificar el script una vez adicionado en su juego para poner limites.
  3. Demás instrucciones pertinentes/relacionadas para hacerlo funcionar vienen en la demostración



Demostración
No Necesaria


Y Con esto termino mi flood de aportes por el día de hoy.
Un Saludo.
Out~





Todos mis aportes por Mediafire tienen contraseña, esa es: www.universomaker.net
Esto es para evitar plagio, asegúrense de copiar y pegar la contraseña.

#2 Re: [RPG Maker XP] Limite de Objetos el Vie Dic 16, 2011 2:30 am

JMB GISOKA

avatar
Jode... que pena que es para RMXP pero intentare pasarlo al RMVX haver si puedo
y si puedo lo posteo muy bueno voy haver que puedo hacer

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

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