Mundo Maker
¡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
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 3818 miembros registrados.
El último usuario registrado es Srand.

Nuestros miembros han publicado un total de 86252 mensajes en 12295 argumentos.

[XP] Mapa con zonas de sombra

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP [XP] Mapa con zonas de sombra

Mensaje por Wecoc el 2017-11-21, 16:44

Este script tan corto hace que algunas zonas del mapa estén en sombra.
Se define con una ID de terreno (podéis usar áreas si usáis el script de soporte para áreas) y simplemente afecta al tono de los eventos tal como se ve a continuación.



Ese sistema se usa en el juego Suikoden 2 y solo sirve para eso, como algo puramente visual, pero pueden aplicarse otras propiedades como enemigos que solo aparecen en las sombras y cosas así si se combina con otros efectos de terreno. Puede ser útil por ejemplo para escenas de sigilo también.

Código:
#==============================================================================
# ** [XP] Mapas con zonas de sombra
# Autor: Wecoc (no requiere créditos)
#==============================================================================

module Shadow
  TERRAIN_ID = 7
  COLOR = Color.new(0, 0, 0, 48)
end

class Game_Character
  attr_accessor :shadow_effect
  alias shadow_ini initialize unless $@
  def initialize(*args)
    shadow_ini(*args)
    @shadow_effect = true
  end
  
  def in_shadow?
    return false if @shadow_effect == false
    return false if self.terrain_tag != Shadow::TERRAIN_ID
    return false if @tile_id > 0
    return true
  end
end

class Sprite_Character < RPG::Sprite
  alias shadow_ini initialize unless $@
  def initialize(*args)
    shadow_ini(*args)
    @shadow_mode = false
  end
  
  alias shadow_upd update unless $@
  def update
    shadow_upd
    shadow = @character.in_shadow?
    if shadow && @shadow_mode == false
      @shadow_mode = true
      self.color = Shadow::COLOR
    elsif !shadow && @shadow_mode == true
      @shadow_mode = false
      self.color = Color.new(0, 0, 0, 0)
    end
  end
end

Al principio del script se define la ID de terreno que se usa como sombra, y el color que se le aplica al personaje, por defecto negro translúcido.
Puse que los eventos cuyo gráfico es un tile no queden afectados por eso.

A continuación pongo las llamadas de evento que podéis usar para controlar mejor el sistema.

Se aplican a un chara es decir por ejemplo al personaje con $game_player o a un evento con $game_map.events[ID EVENTO] definiendo ahí el ID que corresponde. Si usáis $game_map.events[@event_id] se aplicará al evento actual. En los ejemplos lo haré con el personaje.

- Definir si el chara puede ser afectado o no por las sombras, por defecto sí
$game_player.shadow_effect = true / false

- Obtener si un chara está en sombra actualmente (y además tiene como condición que le afecte)
$game_player.in_shadow?

Espero que le sirva de algo a alguien. Es compatible con prácticamente todo.
avatar
Wecoc
Administrador
Administrador



Créditos 12104

Gracias : 522

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Mapa con zonas de sombra

Mensaje por xXIsrael0499Xx el 2017-11-22, 01:28

Interesante, se puede aplicar lo mismo para hacer un sistema de anti-detección así como en Horizon Zero Dawn, que la prota se pone en unas hiervas que le permite ocultarse de las maquinas y eso, bueno se pueden hacer muchas cosas con esto y utilizando las probabilidades que dan las ID de terreno y eso.

Bueno gracias por el script señor montaña, estas a tope :3.
avatar
xXIsrael0499Xx
Veterano
Veterano

0/3

Créditos 859

Gracias : 60

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.