¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Últimos temas
» Hola mucho gusto
por Hk Diamond Hoy a las 13:49

» [AYUDA]Hootshot de moghunter
por Rudy_kinneas Hoy a las 12:03

» Holaaa a tod@s!!!
por nacho Hoy a las 09:47

» SoraDeathss se presenta!
por chronoMxx Hoy a las 07:50

» {AYUDA}Blizz-ABS Script
por chronoMxx Hoy a las 06:45

» las cosas como son...
por Bleuw Hoy a las 04:18

» Busco artistas graficos para proyecto serio
por Rudy_kinneas Ayer a las 20:52

» Duda con música en RPG MV
por Fleabass Ayer a las 20:25

» Recopilación de páginas con recursos RPG Maker
por RiKennedy-Maker Ayer a las 20:00

» [DUDA] Titulo de RPGM XP con varias imagenes
por Wecoc Ayer a las 08:38

Afiliados
Estadísticas
Tenemos 3381 miembros registrados.
El último usuario registrado es Hk Diamond.

Nuestros miembros han publicado un total de 79749 mensajes en 11244 argumentos.
Navega con Google Chrome
[DESCARGA]

¿Algún script para poner sombras debajo e los eventos?

 :: RPG Maker :: Ayuda RPG

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP ¿Algún script para poner sombras debajo e los eventos?

Mensaje por Noctámbulo el 2015-10-05, 12:11

Pues eso, estoy buscando un script que ponga una pequeña sombra circular debajo de todos los eventos/personaje, algo así


Pero para XP.

Me he planteado editar una sombra en todos mis charas pero lo veo inviable por la cantidad de charas que tengo a estas alturas, ¿existe un script+gráfico de sombra que pueda hacer eso automaticamente? Muchísimas gracias.

Noctámbulo
Principiante
Principiante

1/3

Créditos 300

Gracias : 27

Volver arriba Ir abajo

RPG Maker XP Re: ¿Algún script para poner sombras debajo e los eventos?

Mensaje por orochii el 2015-10-05, 16:49

Bueno he hecho este basado en lo que había hecho para mi juego xd...
Código:
=begin
OZ Character Shadow v0.1
====================
Pone una sombra bajo el personaje. La sombra se separa del personaje si este salta.

Instrucciones:
  Colocar sobre main en un script aparte.
  Pueden cambiarse los valores predeterminados en este script para el nombre del
  gráfico de sombra, y el "offset" en las coordenadas X/Y.
  Para cambiar gráfico de sombra en un evento, utilizar una ruta de movimiento:
    <>Mover evento: -Script: shadow_name="sombra_nueva"
 
=end

#==============================================================================
#                INICIO DE CONFIGURACIÓN
#==============================================================================

class Game_Character
 
  #Valor por defecto para el nombre del gráfico de sombra.
  SPRITE_SHADOW = "shadow_char"
 
  #Desplazamiento en coordenada X (horizontal, en pixeles) respecto a la posición
  #actual del evento.
  SPRITE_OFFSET_X = 0
 
  #Desplazamiento en coordenada Y (vertical, en pixeles) respecto a la posición
  #actual del evento.
  SPRITE_OFFSET_Y = 0
 
end

#==============================================================================
#                    FIN DE CONFIGURACIÓN
#==============================================================================

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

class Game_Character
 
  #Setters
  def shadow_name=(n)
    @shadow_name=n
  end
  def shadow_offset_x=(n)
    @shadow_offset_x=n
  end
  def shadow_offset_y=(n)
    @shadow_offset_y=n
  end
 
  #Getters
  def shadow_name
    @shadow_name.nil? ? SPRITE_SHADOW : @shadow_name
  end
  def shadow_offset_x
    @shadow_offset_x.nil? ? SPRITE_OFFSET_X : @shadow_name
  end
  def shadow_offset_y
    @shadow_offset_y.nil? ? SPRITE_OFFSET_Y : @shadow_name
  end
 
  #--------------------------------------------------------------------------
  # * Get Screen Y-Coordinates with no jump variation
  #--------------------------------------------------------------------------
  def raw_screen_y
    return (@real_y - $game_map.display_y + 3) / 4 + 32
  end
end

#==============================================================================
# ** Sprite_Character
#------------------------------------------------------------------------------
#  This sprite is used to display the character.It observes the Game_Character
#  class and automatically changes sprite conditions.
#==============================================================================

class Sprite_Shadow < RPG::Sprite
 
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :character                # character
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    viewport  : viewport
  #    character : character (Game_Character)
  #--------------------------------------------------------------------------
  def initialize(viewport, character = nil)
    super(viewport)
    @character = character
    update
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    # If tile ID, file name, or hue are different from current ones
    if (@tile_id != @character.tile_id ||
            check_character_properties ||
            check_shadow_properties)
     
      reset_character_properties
     
      # If tile ID value is valid
      if (@tile_id!=nil)&&(@tile_id >= 384)
        self.opacity = 0
      # If tile ID value is invalid
      else
        self.bitmap = RPG::Cache.character(@shadow_name,0)
        @cw = bitmap.width
        @ch = bitmap.height
        self.ox = @cw / 2
        self.oy = @ch
      end
    end
   
    # Set visible situation
    self.visible = (not @character.transparent)
   
    # Set sprite coordinates
    self.x = @character.screen_x + @shadow_offset_x
    self.y = @character.raw_screen_y + @shadow_offset_y
    self.z = @character.screen_z(@ch)
   
    # Set opacity level, blend method, and bush depth
    self.opacity = @character.opacity
    self.blend_type = @character.blend_type
    self.bush_depth = @character.bush_depth
  end
 
  #=============================================================================
  #Helpers
  #=============================================================================
  def check_character_properties
    return (@character_name != @character.character_name ||
            @character_hue != @character.character_hue)
  end
  def check_shadow_properties
    return (@shadow_name != @character.shadow_name ||
            @shadow_offset_x != @character.shadow_offset_x ||
            @shadow_offset_y != @character.shadow_offset_y )
  end
  def reset_character_properties
    @character_name = @character.character_name
    @character_hue = @character.character_hue
    @shadow_name = @character.shadow_name
    @shadow_offset_x = @character.shadow_offset_x
    @shadow_offset_y = @character.shadow_offset_y
  end
 
end

#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
#  This class brings together map screen sprites, tilemaps, etc.
#  It's used within the Scene_Map class.
#==============================================================================

class Spriteset_Map
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  alias oz_shadow_initialize initialize unless $@
  def initialize
    oz_shadow_initialize
    for i in $game_map.events.keys.sort
      sprite = Sprite_Shadow.new(@viewport1, $game_map.events[i])
      @character_sprites.push(sprite)
    end
    @character_sprites.push(Sprite_Shadow.new(@viewport1, $game_player))
    update
  end
end

Viene con instrucciones, espero que me hayan quedado entendibles xD!. Salut.

orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6045

Gracias : 266

http://drekirokr.weebly.com/

Volver arriba Ir abajo

RPG Maker XP Re: ¿Algún script para poner sombras debajo e los eventos?

Mensaje por Wecoc el 2015-10-05, 17:05

Me he planteado editar una sombra en todos mis charas pero lo veo inviable por la cantidad de charas que tengo a estas alturas, ¿existe un script+gráfico de sombra que pueda hacer eso automaticamente? Muchísimas gracias.

En realidad es mejor usar el script de Orochii porque así cuando salta la sombra se queda en el suelo.

Para cambiar gráfico de sombra en un evento, utilizar una ruta de movimiento:
<>Mover evento: -Script: shadow_name="sombra_nueva"

He visto que no es automático, pasan unos segundos antes que la sombra cambie, a no ser que la frecuencia de evento sea 6. Es decir, tarda lo que tardaría en andar si la ruta fuera Mover Abajo.

Creo que hay modos mejores de definir la sombra del evento, lo de las Anotaciones de Evento suele dar mejor resultado.

Wecoc
Administrador
Administrador



Créditos 8263

Gracias : 372

Volver arriba Ir abajo

RPG Maker XP Re: ¿Algún script para poner sombras debajo e los eventos?

Mensaje por Ledai el 2015-10-05, 17:17

Está muy bien, pero necesita algo para evitar que eventos con opacidad  0 o sin gráficos o borrados temporalmente tengan sombra, pues queda raro que desaparezca un evento y se quede la sombra como de la nada; por lo demás creo que se ve bien.

Gracias por compartir, lo mismo y lo uso en Ahura... si me dejan y se arregla ese detalle de la opacidad (?) ^_^

Edt: Ah! y la prioridad de la sombra queda por encima de los eventos, supongo que al ser una "sombra" debería de quedar como por debajo No?? XDD

Ledai
Aventurero
Aventurero

0/3

Créditos 1360

Gracias : 124

http://ahurallg.blogspot.com.es/

Volver arriba Ir abajo

RPG Maker XP Re: ¿Algún script para poner sombras debajo e los eventos?

Mensaje por Ledai el 2015-10-06, 19:23

Siento el doble Post... pero es en serio...  ¿¿Alguien sabe cómo arreglarlo o es que solo me pasa a mí @~@?? Ah! a lo mejor es mi proyecto...

Edt: Nop, no es mi proyecto, acabo de probarlo en uno nuevo, y en efecto, los errores mencionados en mi anterior post, siguen presentes aun sin ningún otro script.

Ledai
Aventurero
Aventurero

0/3

Créditos 1360

Gracias : 124

http://ahurallg.blogspot.com.es/

Volver arriba Ir abajo

RPG Maker XP Re: ¿Algún script para poner sombras debajo e los eventos?

Mensaje por Wecoc el 2015-10-06, 20:51

En principio ya arreglé lo que decías, pero no lo que decía yo xD

Código:
=begin
OZ Character Shadow v0.1
====================
Pone una sombra bajo el personaje. La sombra se separa del personaje si este salta.

Instrucciones:
  Colocar sobre main en un script aparte.
  Pueden cambiarse los valores predeterminados en este script para el nombre del
  gráfico de sombra, y el "offset" en las coordenadas X/Y.
  Para cambiar gráfico de sombra en un evento, utilizar una ruta de movimiento:
    <>Mover evento: -Script: shadow_name="sombra_nueva"
  
=end

#==============================================================================
#                INICIO DE CONFIGURACIÓN
#==============================================================================

class Game_Character
  
  #Valor por defecto para el nombre del gráfico de sombra.
  SPRITE_SHADOW = "shadow_char"
  
  #Desplazamiento en coordenada X (horizontal, en pixeles) respecto a la posición
  #actual del evento.
  SPRITE_OFFSET_X = 0
  
  #Desplazamiento en coordenada Y (vertical, en pixeles) respecto a la posición
  #actual del evento.
  SPRITE_OFFSET_Y = 0
  
end

#==============================================================================
#                    FIN DE CONFIGURACIÓN
#==============================================================================

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

class Game_Character
  
  attr_accessor :shadow_name
  attr_accessor :shadow_offset_x
  attr_accessor :shadow_offset_y
  
  alias ozwecshadow_ini initialize unless $@
  def initialize
    ozwecshadow_ini
    @shadow_name =     SPRITE_SHADOW
    @shadow_offset_x = SPRITE_OFFSET_X
    @shadow_offset_y = SPRITE_OFFSET_Y
  end

  #--------------------------------------------------------------------------
  # * Get Screen Y-Coordinates with no jump variation
  #--------------------------------------------------------------------------
  def raw_screen_y
    return (@real_y - $game_map.display_y + 3) / 4 + 32
  end
end

#==============================================================================
# ** Sprite_Character
#------------------------------------------------------------------------------
#  This sprite is used to display the character.It observes the Game_Character
#  class and automatically changes sprite conditions.
#==============================================================================

class Sprite_Shadow < RPG::Sprite
  
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :character                # character
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    viewport  : viewport
  #    character : character (Game_Character)
  #--------------------------------------------------------------------------
  def initialize(viewport, character = nil)
    super(viewport)
    @character = character
    update
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    # If tile ID, file name, or hue are different from current ones
    if (@tile_id != @character.tile_id ||
        check_character_properties ||
        check_shadow_properties)
      
      reset_character_properties
      
      # If tile ID value is valid
      if (@tile_id != nil) && (@tile_id >= 384)
        self.opacity = 0
      # If tile ID value is invalid
      else
        self.bitmap = RPG::Cache.character(@shadow_name, 0) rescue nil
        return if self.bitmap.nil?
        @cw = bitmap.width
        @ch = bitmap.height
        self.ox = @cw / 2
        self.oy = @ch
      end
    end
    
    # Set visible situation
    self.visible = (not @character.transparent)
    
    if @character.character_name == "" or @character.opacity == 0
      self.visible = false
    end
    
    # Set sprite coordinates
    self.x = @character.screen_x + @shadow_offset_x
    self.y = @character.raw_screen_y + @shadow_offset_y
    self.z = 0 # @character.screen_z(@ch)
    
    # Set opacity level, blend method, and bush depth
    self.opacity = @character.opacity
    self.blend_type = @character.blend_type
    self.bush_depth = @character.bush_depth
  end
  
  #=============================================================================
  #Helpers
  #=============================================================================
  def check_character_properties
    return (@character_name != @character.character_name ||
            @character_hue != @character.character_hue)
  end
  
  def check_shadow_properties
    return (@shadow_name != @character.shadow_name ||
            @shadow_offset_x != @character.shadow_offset_x ||
            @shadow_offset_y != @character.shadow_offset_y )
  end
  
  def reset_character_properties
    @character_name = @character.character_name
    @character_hue = @character.character_hue
    @shadow_name = @character.shadow_name
    @shadow_offset_x = @character.shadow_offset_x
    @shadow_offset_y = @character.shadow_offset_y
  end
  
end

#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
#  This class brings together map screen sprites, tilemaps, etc.
#  It's used within the Scene_Map class.
#==============================================================================

class Spriteset_Map
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  alias oz_shadow_initialize initialize unless $@
  def initialize
    oz_shadow_initialize
    for i in $game_map.events.keys.sort
      sprite = Sprite_Shadow.new(@viewport1, $game_map.events[i])
      @character_sprites.push(sprite)
    end
    @character_sprites.push(Sprite_Shadow.new(@viewport1, $game_player))
    update
  end
end

Wecoc
Administrador
Administrador



Créditos 8263

Gracias : 372

Volver arriba Ir abajo

RPG Maker XP Re: ¿Algún script para poner sombras debajo e los eventos?

Mensaje por Ledai el 2015-10-06, 21:47

Ohh!!! Te lo agradeceré toda la vida, así tampoco me tengo que volver loca para editar todos los charas XDD!!! GRACIAS!!!
+1

Ledai
Aventurero
Aventurero

0/3

Créditos 1360

Gracias : 124

http://ahurallg.blogspot.com.es/

Volver arriba Ir abajo

RPG Maker XP Re: ¿Algún script para poner sombras debajo e los eventos?

Mensaje por orochii el 2015-10-06, 23:08

¿Cómo arreglar un script?
Paso 1: Hacer el script.
Paso 2: Postearlo en Mundo Maker.
Paso 3: Esperar a que Wec postee xD!.
Paso 4: ???
Paso 5: Profit.

xDDDD. Es broma. He implementado lo de sombras por anotaciones. También incluyo en las instrucciones el código para cambiarlas por un Llamar Script normal. Y jugué un poco más con el Z (prioridad) de la sombra, es que observé que algunos tiles pasaban por encima cuando creo no debían xd.

Igual pueden devolverlo al comportamiento que le dio Wec en la configuración, donde dice...
Código:
SHADOW_ZFIX = true
ponen...
Código:
SHADOW_ZFIX = false

Código:
=begin
OZ Character Shadow v0.1
====================
Pone una sombra bajo el personaje. La sombra se separa del personaje si este salta.

Instrucciones:
  Colocar sobre main en un script aparte.
  Pueden cambiarse los valores predeterminados en este script para el nombre del
  gráfico de sombra, y el "offset" en las coordenadas X/Y.
 
  Para cambiar gráfico de sombra en un evento, utilizar una ruta de movimiento:
    <>Mover evento: -Script: shadow_name="sombra_nueva"
 
  También se puede cambiar usando un Llamar Script normal con lo siguiente:
 
    Eventos:
      ev = $game_map.events[@event_id]
      ev.shadow_name = "sombra_nueva"
    Personaje:
      $game_player.shadow_name = "sombra_nueva"
     
  Por último, se puede especificar una sombra por página de evento. Basta con
  poner una anotación en los comandos del evento que diga lo siguiente:
   
    SPRITE_SHADOW nombre_sombra_nueva
 
=end

#==============================================================================
#                INICIO DE CONFIGURACIÓN
#==============================================================================

class Game_Character
 
  #Valor por defecto para el nombre del gráfico de sombra.
  SPRITE_SHADOW = "shadow_char"
 
  #Desplazamiento en coordenada X (horizontal, en pixeles) respecto a la posición
  #actual del evento.
  SPRITE_OFFSET_X = 0
 
  #Desplazamiento en coordenada Y (vertical, en pixeles) respecto a la posición
  #actual del evento.
  SPRITE_OFFSET_Y = 0
 
  #Arreglo Z. Cambia a false si la sombra se te pone sobre cosas que no debía.
  SHADOW_ZFIX = true
end

#==============================================================================
#                    FIN DE CONFIGURACIÓN
#==============================================================================

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

class Game_Character
 
  attr_accessor :shadow_name
  attr_accessor :shadow_offset_x
  attr_accessor :shadow_offset_y
 
  alias ozwecshadow_ini initialize unless $@
  def initialize
    ozwecshadow_ini
    @shadow_name =    SPRITE_SHADOW
    @shadow_offset_x = SPRITE_OFFSET_X
    @shadow_offset_y = SPRITE_OFFSET_Y
  end

  #--------------------------------------------------------------------------
  # * Get Screen Y-Coordinates with no jump variation
  #--------------------------------------------------------------------------
  def raw_screen_y
    return (@real_y - $game_map.display_y + 3) / 4 + 32
  end
end

class Game_Event < Game_Character
  attr_reader :page
end

#==============================================================================
# ** Sprite_Character
#------------------------------------------------------------------------------
#  This sprite is used to display the character.It observes the Game_Character
#  class and automatically changes sprite conditions.
#==============================================================================

class Sprite_Shadow < RPG::Sprite
 
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :character                # character
  #--------------------------------------------------------------------------
  # * Object Initialization
  #    viewport  : viewport
  #    character : character (Game_Character)
  #--------------------------------------------------------------------------
  def initialize(viewport, character = nil)
    super(viewport)
    @character = character
    @page = nil
    update
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    ev = @character.page rescue nil
    if (ev != nil)
      check_page_note if (@page != ev)
    end
   
    # If tile ID, file name, or hue are different from current ones
    if (@tile_id != @character.tile_id ||
        check_character_properties ||
        check_shadow_properties)
     
      reset_character_properties
     
      # If tile ID value is valid
      if (@tile_id != nil) && (@tile_id >= 384)
        self.opacity = 0
      # If tile ID value is invalid
      else
        self.bitmap = RPG::Cache.character(@shadow_name, 0) rescue nil
        return if self.bitmap.nil?
        @cw = bitmap.width
        @ch = bitmap.height
        self.ox = @cw / 2
        self.oy = @ch
      end
    end
   
    # Set visible situation
    self.visible = (not @character.transparent)
   
    if @character.character_name == "" or @character.opacity == 0
      self.visible = false
    end
   
    # Set sprite coordinates
    self.x = @character.screen_x + @shadow_offset_x
    self.y = @character.raw_screen_y + @shadow_offset_y
    self.z = Game_Character::SHADOW_ZFIX ? @character.screen_z(16) : 0
   
    # Set opacity level, blend method, and bush depth
    self.opacity = @character.opacity
    self.blend_type = @character.blend_type
    self.bush_depth = @character.bush_depth
  end
 
  #=============================================================================
  #Helpers
  #=============================================================================
  def check_character_properties
    return (@character_name != @character.character_name ||
            @character_hue != @character.character_hue)
  end
 
  def check_shadow_properties
    return (@shadow_name != @character.shadow_name ||
            @shadow_offset_x != @character.shadow_offset_x ||
            @shadow_offset_y != @character.shadow_offset_y )
  end
 
  def reset_character_properties
    @character_name = @character.character_name
    @character_hue = @character.character_hue
    @shadow_name = @character.shadow_name
    @shadow_offset_x = @character.shadow_offset_x
    @shadow_offset_y = @character.shadow_offset_y
  end
 
  def check_page_note
    @character.page.list.each { |eventcommand|
      next unless (eventcommand.code==108 || eventcommand.code==408)
      eventcommand.parameters[0].gsub(/SPRITE_SHADOW[ ](.+)/) { @character.shadow_name=$1 }
    }
    @page = @character.page
  end
end

#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
#  This class brings together map screen sprites, tilemaps, etc.
#  It's used within the Scene_Map class.
#==============================================================================

class Spriteset_Map
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  alias oz_shadow_initialize initialize unless $@
  def initialize
    oz_shadow_initialize
    for i in $game_map.events.keys.sort
      sprite = Sprite_Shadow.new(@viewport1, $game_map.events[i])
      @character_sprites.push(sprite)
    end
    @character_sprites.push(Sprite_Shadow.new(@viewport1, $game_player))
    update
  end
end

Salut!

orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6045

Gracias : 266

http://drekirokr.weebly.com/

Volver arriba Ir abajo

RPG Maker XP Re: ¿Algún script para poner sombras debajo e los eventos?

Mensaje por Contenido patrocinado Hoy a las 15:37


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 :: RPG Maker :: Ayuda RPG

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