¡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] Reflejo en el agua el Miér Mar 02, 2011 1:03 pm

D.A.C.

avatar
Script: Reflejo en el agua
Autor: JmsPlDnl / Rataime
Versión: (Desconocida)

Código:
#================================================================
# ■ Reflejo en el agua
# Basado en Sprite_Mirror, modificado por JmsPlDnl y reescrito por Rataime
# Traducción por: D.A.C.
#================================================================
# Activa la compatibilidad con el 'Caterpillar' (True = Sí / False = No)
CATERPILLAR_COMPATIBLE = true

class Game_Party
 attr_reader :characters
end

class Sprite_Reflection < RPG::Sprite

attr_accessor :character

def initialize(viewport=nil, character=nil,self_angle = 180)
  super(viewport)
  @character = character
  @self_angle=self_angle
  self.opacity=0
  @reflected=false
  @former=false
  @moving=false
  if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+1)==1
  @reflected=true
  @former=true
  end
  update
end

def update
  super
  if @tile_id != @character.tile_id or
  @character_name != @character.character_name or
  @character_hue != @character.character_hue
  @tile_id = @character.tile_id
  @character_name = @character.character_name
  @character_hue = @character.character_hue
  if @tile_id >= 384
  self.bitmap = RPG::Cache.tile($game_map.tileset_name,
  @tile_id, @character.character_hue)
  self.src_rect.set(0, 0, 32, 32)
  self.ox = 16
  self.oy = 32
  else
  self.bitmap = RPG::Cache.character(@character.character_name,
  @character.character_hue)
  @cw = bitmap.width / 4
  @ch = bitmap.height / 4
  self.ox = @cw / 2
  self.oy = @ch
  end
  end
 
  self.visible = (not @character.transparent)
  if @tile_id == 0
  sx = (@character.pattern) * @cw
  sy = (@character.direction - 2) / 2 * @ch
  if @character.direction== 6
    sy = ( 4- 2) / 2 * @ch
  end
  if @character.direction== 4
    sy = ( 6- 2) / 2 * @ch
  end
  if @character.direction != 4 and @character.direction != 6
  sy = (@character.direction - 2) / 2 * @ch
  end
  end
 
  self.x = @character.screen_x
  self.y = @character.screen_y-5
  @moving=!(@character.real_x%128==0 and @character.real_y%128==0)
  @d=@character.direction
  @rect=[sx, sy, @cw, @ch]
  if !(@moving)
  if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+1)==1
  @reflected=true
  @former=true
  else
  @reflected=false
  @former=false
  end
 
  else
  case @d
 
  when 2
  if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+2)==1
  @reflected=true
  if @former==false
    @offset = (@character.screen_y%32)*@ch/32
    @rect=[sx, sy, @cw, @offset]
    self.y=@character.screen_y-5
  end
  else
  @reflected=false
  end
 
  when 4
  if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+1)!=1
  @offset = ((@character.screen_x-@cw/2)%32)*@cw/32
  @rect=[sx, sy, @offset, @ch]
  self.x=@character.screen_x
  else
  @reflected=true
  if @former==false
    @offset = ((@character.screen_x-@cw/2)%32)*@cw/32
    @rect=[sx+@offset, sy, @cw-@offset, @ch]
    self.x=@character.screen_x-@offset
  end
  end
 
  when 6
  if $game_map.terrain_tag(@character.real_x/128+1,@character.real_y/128+1)!=1
  @offset = ((@character.screen_x-@cw/2)%32)*@cw/32
  @rect=[sx+@offset, sy, @cw-@offset, @ch]
  self.x=@character.screen_x-@offset
  else
  @reflected=true
  if @former==false
    @offset = ((@character.screen_x-@cw/2)%32)*@cw/32
    @rect=[sx, sy, @offset, @ch]
    self.x=@character.screen_x
  end
  end
 
  when 8
  if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+2)==1
  @reflected=true
  if $game_map.terrain_tag(@character.real_x/128,@character.real_y/128+1)!=1
    @offset = (@character.screen_y%32)*@ch/32
    @rect=[sx, sy, @cw, @offset]
    self.y=@character.screen_y-5
  end
  else
  @reflected=false
  end
 
  end

  end
  if @reflected
  self.opacity=128
  else
  @rect=[sx, sy, @cw, @ch]
  self.opacity=0
  end
 
  if $game_map.terrain_tag((@character.real_x+64)/128,@character.real_y/128+2)!=1
  if $game_map.terrain_tag((@character.real_x+64)/128,@character.real_y/128+2)!=1
  @rect[1]= @rect[1]+@ch/2
  @rect[3]= @rect[3]/2
  self.y = self.y - @ch/2
  else
  @reflected=false
  end
  end
 
  self.src_rect.set(@rect[0],@rect[1],@rect[2],@rect[3])
 
  @character.is_a?(Game_Player) ? self.z = 9 : self.z = 5
  self.blend_type = @character.blend_type
  self.bush_depth = @character.bush_depth
  if @character.animation_id != 0
  animation = $data_animations[@character.animation_id]
  animation(animation, true)
  @character.animation_id = 0
  end

  self.angle = @self_angle
end
end

#================================================================
# ▼ CLASS Sprite_Character (edición)
#================================================================

class Sprite_Character < RPG::Sprite
 alias reflect_initialize initialize
 
 def initialize(viewport, character = nil)
  @character = character
  @reflection = []
  super(viewport)
  if (character.is_a?(Game_Event) and character.list!=nil and character.list[0].code == 108 and character.list[0].parameters == ["r"])
  @reflection.push(Sprite_Reflection.new(viewport,@character))
  end
  if (character.is_a?(Game_Event) and character.list!=nil and character.list[0].code == 108 and character.list[0].parameters == ["hero_r"])
  @reflection.push(Sprite_Reflection.new(viewport,$game_player))
#================================================================
# ● Compatibilidad con el script 'Caterpillar' de Fukuyama
#================================================================
if CATERPILLAR_COMPATIBLE and $game_party.characters!=nil

 for member in $game_party.characters
  @reflection.push(Sprite_Reflection.new(viewport,member))
 end

end
#================================================================
# ● Fin de compatibilidad
#================================================================
  end
  reflect_initialize(viewport, @character)
 end
 
 alias reflect_update update
 
 def update
  reflect_update
  if @reflection!=nil
  for reflect in @reflection
  reflect.update
  end
  end
 end
 end

Instrucciones de uso:

  1. Copiar el script encima de 'Main'.
  2. Abrir la Base de datos del RPG Maker, ir a la pestaña 'Tilesets' y escoger la opción 'Elegir Terreno'. Una vez ahí, hay que escoger el tile en el que quieras que se reflejen los eventos y cambiarlo a 1.
  3. Para que el personaje se refleje en el tile, hay que crear un evento en 'Proceso paralelo', escoger la opción 'Poner anotación' y escribir: hero_r.
  4. Para que cualquier evento se refleje en el tile, hay que escoger la opción 'Poner anotación' y escribir: r.


Imágenes:
Spoiler:

#2 Re: [RPG Maker XP] Reflejo en el agua el Sáb Mayo 28, 2011 6:09 am

Naxo

avatar
Oye porciacaso el reflejo del cartel esta al reves por si lo puedes arreglar Ópalo Contento Ópalo Contento

#3 Re: [RPG Maker XP] Reflejo en el agua el Dom Mayo 29, 2011 1:00 am

the-terror-of_death

avatar
que bien es lo que estana buscando Ópalo Contento

#4 Re: [RPG Maker XP] Reflejo en el agua el Miér Jun 15, 2011 7:21 pm

Xtream965


Es estupido el cartel esta al reves porque es un reflejo ¬¬

#5 Re: [RPG Maker XP] Reflejo en el agua el Jue Jun 16, 2011 11:02 pm

JohaN.

avatar
Xtream965 escribió:Es estupido el cartel esta al reves porque es un reflejo ¬¬

Eviten este tipo de comentarios, ademas se refiere que el cartel esta al reves de manera horizontal, porqe en forma vertical estan los 2 al reves. (tal como un reflejo)

#6 Re: [RPG Maker XP] Reflejo en el agua el Miér Jul 06, 2011 4:43 am

wicho


hey capo una pregunta vs sabes q no me refleja el personaje y hago todos los pasos como dice ahi pero sabes q no refleja ni el pj ni los evento, me podrias dar una solucion! muchas gracias! Ópalo Sonriente

#7 Re: [RPG Maker XP] Reflejo en el agua el Miér Jul 06, 2011 6:18 pm

Kululu

avatar
@wicho: Es extraño. Podría deberse a algún tipo de incompatibilidad. Podrías, si quieres, subir un archivo (sin encriptar) con los scripts que tienes para ver cual es el problema.

Si decides subir el archivo, sería genial si lo subes simplemente con un mapa donde quieres aplicar el script para ver cual es el motivo de que no funcione.

Salut!



     

¡Visita mis galerías de Tumblr y DeviantArt!

#8 Re: [RPG Maker XP] Reflejo en el agua el Dom Dic 02, 2012 3:37 am

Wasaby

avatar
A mi tampoco se me ve el reflejo y eh echo todo ._.

Contenido patrocinado


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.