Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

Ayuda con el EQUIPAMIENTO VISIBLE de Rataime

Ver el tema anterior Ver el tema siguiente Ir abajo

Ayuda con el EQUIPAMIENTO VISIBLE de Rataime

Mensaje por XDHMPGA el 2012-02-20, 02:22

Hola a todos. En mi proyecto de RMXP estoy usando el script de Equipo Visible en el mapa de Rataime (ver tema http://www.mundo-maker.com/t457-rmxp-equipamiento-visible) y ahora estoy haciendo las posadas y necesito que No se vea lo equipado. Ahora tengo las siguientes opciones:

1º: No usar ese script. Cosa que no voy a haces XDDDDDD XP

2º: Poner un interruptor de encendido y apagado al script. Cosa que NO SE HACER.

3º: Usar otro script de equipamiento visible que no sea hecho por Rataime.

Help me. Diganme si conocen otro script de equipamiento visible o si alguien puede modificar el script para ponerle un interruptor de On Off. Please, Help.

Desde ya, muxas graxias a todos.
avatar
XDHMPGA
Iniciado
Iniciado

1/3

Créditos 22

Gracias : 2

Volver arriba Ir abajo

Re: Ayuda con el EQUIPAMIENTO VISIBLE de Rataime

Mensaje por orochii el 2012-02-20, 06:52

Liiiisto al fin lo logré 8'D, me costó porque soy un inepto y me costó encontrar dónde era ='DD. Ya veo que DerVVulfman es muy pro =DD (no sólo por su avatar del lobo ese que sale en Slayers xD).
En fin, primero explico porqué cito a DerVVulfman. Usé una versión modificada de ese script para el cambio. Tiene muchos bugs arreglados y creo no te vendrá mal, así que te la pongo por acá ;P...
Spoiler:
Código:
#==============================================================================
# ** Visual_Equipment Re-Edited (version Kappa)
#------------------------------------------------------------------------------
#    Written by Rataime
#    New Edits by DerVVulfman
#    February 10, 2008
#------------------------------------------------------------------------------
#
#------------------------------------------------------------------------------
# Revisions to note:
#  1) Added formatted headers and comments throughout the script.
#  2) Encapsulated the working code in a Visual Equipment module.
#  3) Set the equipment array into an instance value to lower resource costs.
#  4) Discovered a 'nil' $game_party bug.  Added 'return if...' statements.
#  5) Removed unnecessary Window_SaveFile edit.
#  6) Interpreter routine for 'Change Equipment' now aliased.
#  7) Interpreter routine for 'Change Equipment' now changes visible equipment.
#  8) Support for 'Change Party Members' now works, even w/ Large Party systems.
#  9) 'Change Equipment' now compatible with Fukuyama's Train Actor script.
# 10) System should now be usable with or without RMXP SDK.
#------------------------------------------------------------------------------
# ** Changing party members or equipment while still visible on the map will
# ** force the map to refresh, giving a slight pause.
#==============================================================================



#==============================================================================
# ** module Visual Equipment
#------------------------------------------------------------------------------
#  This module handles the image name and equipment drawing process.
#==============================================================================

module Visual_Equipment
  module_function
  #--------------------------------------------------------------------------
  # * Update Visual Equipment
  #--------------------------------------------------------------------------
  def equip_update
    @visual_equipment = Array.new
    for i in 0..$game_party.actors.size
      @visual_equipment[i+1] = []
    end

  #========================================================================
  #  **  C  O  N  F  I  G  U  R  A  T  I  O  N      S  Y  S  T  E  M  **  #
  #========================================================================
  #
  # Syntax to set weapons or armors in this script are as follows:
  #      add_weapon_sprite(weaponID, characterset)
  # -or- add_armor_sprite(armorID, characterset)
  #
  # The ID number is the same as the ID number in the database.
  # The charactersets are the extra graphics for the weapon/armor that is
  # stored in the 'Graphics\Characterset' folder of your project.
 
    # WEAPON LISTINGS
      #add_weapon_sprite(33, "tpl_helmet_1")  # <-didn't make a weapon image :P
   
    # ARMOR LISTINGS
      add_armor_sprite( 6, "tpl_helmet_1")
      add_armor_sprite( 7, "tpl_helmet_2")
      add_armor_sprite(20, "tpl_armor_white")
      add_armor_sprite(15, "tpl_armor_blue")
      add_armor_sprite(21, "tpl_armor_cape")
   
  #========================================================================
  #  ****  E N D  O F  C O N F I G U R A T I O N  S Y S T E M  ****  #
  #========================================================================
 
    #------------------------------------------------------------------------
    # * Visual Equipment Functions
    #------------------------------------------------------------------------
    RPG::Cache.clear
    return if $game_party == nil
    for i in 0...$game_party.actors.size
      for img in @visual_equipment[i+1]
        bitmap = RPG::Cache.character($game_party.actors[i].character_name,
                      $game_party.actors[i].character_hue)
        if img!=true and img!=false
          add_equip(bitmap,img,i)
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Add Equipment
  #    sprite    : Original sprite bitmap
  #    to_add    : Equipment characterset
  #    character : Member in party
  #--------------------------------------------------------------------------
  def add_equip(sprite, to_add, character)
    return if $game_party == nil
    bmp = Sprite.new
    bmp.visible = false
    bmp.bitmap  = RPG::Cache.character(to_add,
                      $game_party.actors[character].character_hue)
    color = bmp.bitmap.get_pixel(0, 0)
    x = sprite.width
    y = sprite.height
    if @visual_equipment[0]
      x = x/4
      y = y/4
    end
    for i in 0..x
      for j in 0..y
        color_get = bmp.bitmap.get_pixel(i, j)
        if color_get != color
          sprite.set_pixel(i, j ,color_get)
        end
      end
    end
    bmp = nil
  end
  #--------------------------------------------------------------------------
  # * Add Weapon Sprite
  #    id        : Weapon ID
  #    sprite    : Weapon characterset
  #--------------------------------------------------------------------------
  def add_weapon_sprite(id, sprite)
    return if $game_party == nil
    for i in 0...$game_party.actors.size
      if $game_party.actors[i].weapon_id == id
        @visual_equipment[i+1].push(sprite)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Add Armor Sprite
  #    id        : Armor ID
  #    sprite    : Armor characterset
  #--------------------------------------------------------------------------
  def add_armor_sprite(id, sprite)
    return if $game_party == nil   
    for i in 0...$game_party.actors.size
      if $game_party.actors[i].armor1_id == id or
        $game_party.actors[i].armor2_id == id or
        $game_party.actors[i].armor3_id == id or
        $game_party.actors[i].armor4_id == id
        @visual_equipment[i+1].push(sprite)
      end
    end
  end
end 



#==============================================================================
# ** Game_Temp
#------------------------------------------------------------------------------
#  This class handles temporary data that is not included with save data.
#  Refer to "$game_temp" for the instance of this class.
#==============================================================================

class Game_Temp
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :visual_transfer          # Equipment changed in field switch
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  alias visual_initialize initialize
  def initialize
    # Perform the original call
    visual_initialize
    @visual_transfer = false              # Equipment changed in field
  end
end



#==============================================================================
# ** Scene_Equip
#------------------------------------------------------------------------------
#  This class performs equipment screen processing.
#==============================================================================

class Scene_Equip
  #--------------------------------------------------------------------------
  # * Alias Listings
  #-------------------------------------------------------------------------- 
  alias visual_update_right update_right
  #--------------------------------------------------------------------------
  # * Frame Update (when right window is active)
  #--------------------------------------------------------------------------
  def update_right
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Update with the equipment
      Visual_Equipment.equip_update
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to menu screen
      $scene = Scene_Menu.new(2)
      return
    end
    # Perform the original call
    visual_update_right
  end
end



#==============================================================================
# ** Game_Player
#------------------------------------------------------------------------------
#  This class handles the player. Its functions include event starting
#  determinants and map scrolling. Refer to "$game_player" for the one
#  instance of this class.
#==============================================================================

class Game_Player < Game_Character
  #--------------------------------------------------------------------------
  # * Alias Listings
  #-------------------------------------------------------------------------- 
  alias visual_update update
  #--------------------------------------------------------------------------
  # * Frame Update
  #-------------------------------------------------------------------------- 
  def update
    # Do not perform during equipment transfer
    return if $game_temp.visual_transfer == true
    # Perform the original call
    visual_update
  end
end



#==============================================================================
# ** Interpreter
#------------------------------------------------------------------------------
#  This interpreter runs event commands. This class is used within the
#  Game_System class and the Game_Event class.
#==============================================================================
class Interpreter
  #--------------------------------------------------------------------------
  # * Alias Listings
  #-------------------------------------------------------------------------- 
  alias visual_command_129 command_129
  alias visual_command_319 command_319
  #--------------------------------------------------------------------------
  # * Change Party Member
  #--------------------------------------------------------------------------
  def command_129
    # Perform the original call
    visual_command_129
    # Update with the equipment
    Visual_Equipment.equip_update
    # Continue
    return true   
  end
  #--------------------------------------------------------------------------
  # * Change Equipment
  #--------------------------------------------------------------------------
  def command_319
    # Perform the original call
    visual_command_319
    # Update with the equipment
    Visual_Equipment.equip_update
    # Turns the transfer system on
    $game_temp.visual_transfer = true
    # Switch to map screen
    $scene = Scene_Map.new   
    # Continue
    return true
  end
end



#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
#  This class performs map screen processing.
#==============================================================================

class Scene_Map
  #--------------------------------------------------------------------------
  # * Alias Listings
  #-------------------------------------------------------------------------- 
  alias visual_update update
  #--------------------------------------------------------------------------
  # * Frame Update
  #-------------------------------------------------------------------------- 
  def update
    # Perform the original call
    visual_update
    # Turns equipment transfer system off
    $game_temp.visual_transfer = false if $game_temp.visual_transfer == true
  end
end



#==============================================================================
# ** Game_Character
#------------------------------------------------------------------------------
#  This class deals with characters. It's used as a superclass for the
#  Game_Player and Game_Event classes.
#==============================================================================

class Game_Character
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #-------------------------------------------------------------------------- 
  attr_accessor :character_hue
end



#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
#  This class handles the actor. It's used within the Game_Actors class
#  ($game_actors) and refers to the Game_Party class ($game_party).
#==============================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # * Alias Listings
  #-------------------------------------------------------------------------- 
  alias visual_setup setup
  #--------------------------------------------------------------------------
  # * Setup
  #    actor_id : actor ID
  #-------------------------------------------------------------------------- 
  def setup(actor_id)
    # Perform the original call
    visual_setup(actor_id)
    @character_hue = (@character_hue+1)%256
  end
end



#==============================================================================
# ** Scene_Load
#------------------------------------------------------------------------------
#  This class performs load screen processing.
#==============================================================================

class Scene_Load < Scene_File
  #--------------------------------------------------------------------------
  # * Alias Listings
  #-------------------------------------------------------------------------- 
  alias visual_read_save_data read_save_data
  alias visual_on_cancel on_cancel
  #--------------------------------------------------------------------------
  # * Cancel Processing
  #-------------------------------------------------------------------------- 
  def on_cancel
    # Update with the equipment
    Visual_Equipment.equip_update
    # Perform the original call
    visual_on_cancel
  end
  #--------------------------------------------------------------------------
  # * Read Save Data
  #    file : file object for reading (opened)
  #--------------------------------------------------------------------------
  def read_save_data(file)
    # Perform the original call
    visual_read_save_data(file)
    # Update with the equipment
    Visual_Equipment.equip_update
  end
end



#==============================================================================
# ** Scene_Save
#------------------------------------------------------------------------------
#  This class performs save screen processing.
#==============================================================================

class Scene_Save < Scene_File
  #--------------------------------------------------------------------------
  # * Alias Listings
  #-------------------------------------------------------------------------- 
  alias visual_on_decision on_decision
  alias visual_on_cancel on_cancel
  #--------------------------------------------------------------------------
  # * Cancel Processing
  #-------------------------------------------------------------------------- 
  def on_cancel
    # Update with the equipment
    Visual_Equipment.equip_update
    # Perform the original call
    visual_on_cancel
  end
  #--------------------------------------------------------------------------
  # * Decision Processing
  #-------------------------------------------------------------------------- 
  def on_decision(file)
    # Update with the equipment
    Visual_Equipment.equip_update
    # Perform the original call
    visual_on_decision(file)
  end
end



#==============================================================================
# ** Scene_Title
#------------------------------------------------------------------------------
#  This class performs title screen processing.
#==============================================================================

class Scene_Title
  #--------------------------------------------------------------------------
  # * Alias Listings
  #-------------------------------------------------------------------------- 
  alias visual_command_new_game command_new_game
  #--------------------------------------------------------------------------
  # * Command: New Game
  #-------------------------------------------------------------------------- 
  def command_new_game
    # Perform the original call
    visual_command_new_game
    # Update with the equipment
    Visual_Equipment.equip_update
  end
end
Acá está el cambiecillo entonces, basándome en ese script.
Código:
module OZ_ADD_VE
  SWITCH = 1
end

module Visual_Equipment
  include OZ_ADD_VE
 
  module_function
  def add_armor_sprite(id, sprite)
    return if $game_party == nil   
    return if $game_switches[1]#OZ_ADD_VE::SWITCH]
    for i in 0...$game_party.actors.size
      if $game_party.actors[i].armor1_id == id or
        $game_party.actors[i].armor2_id == id or
        $game_party.actors[i].armor3_id == id or
        $game_party.actors[i].armor4_id == id
        @visual_equipment[i+1].push(sprite)
      end
    end
  end
end

#==============================================================================
# ** Interpreter
#------------------------------------------------------------------------------
#  This interpreter runs event commands. This class is used within the
#  Game_System class and the Game_Event class.
#==============================================================================
class Interpreter
  #--------------------------------------------------------------------------
  # * Alias Listings
  #-------------------------------------------------------------------------- 
  alias ex_visual_command_121 command_121
  #--------------------------------------------------------------------------
  # * Change Party Member
  #--------------------------------------------------------------------------
  def command_121
    # Perform the original call
    ex_visual_command_121
    # Update with the equipment
    Visual_Equipment.equip_update
    # Turns the transfer system on
    $game_temp.visual_transfer = true
    # Switch to map screen
    $scene = Scene_Map.new   
    # Continue
    return true
  end
end
Ahora al cambiar un switch CON el comando "cambiar switch" se pone/quita la visibilidad del equipo (si lo quieres hacer por script fíjate en el código, es nada más una cuestión de tres líneas para que refresque la pantalla y demás cosas de caché).
ON es "no visible" y OFF es para visible. Es porque todo juego empieza con switches en OFF, entonces por "comodidad"... en fin.

Ese script es genial, más aún por ser del super DerVVulfman (que creo que se dedicó algún tiempo a mejorar/dar respaldo o soporte a códigos xD, como los AnimatedBattler de Minkoff).

Y bueno, ya basta de... prolongaciones inútiles xD, salut,
Orochii Zouveleki
avatar
orochii
Reportero

0/3

Créditos 7792

Gracias : 461

Volver arriba Ir abajo

Re: Ayuda con el EQUIPAMIENTO VISIBLE de Rataime

Mensaje por XDHMPGA el 2014-02-24, 03:15

Oh, muchisimas gracias (perdon por no responder en tantos años ._.)
avatar
XDHMPGA
Iniciado
Iniciado

1/3

Créditos 22

Gracias : 2

Volver arriba Ir abajo

Re: Ayuda con el EQUIPAMIENTO VISIBLE de Rataime

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.