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 4193 miembros registrados.
El último usuario registrado es Godot.

Nuestros miembros han publicado un total de 85222 mensajes en 12132 argumentos.

[Tutorial] Cómo hacer que un evento se ilumine al hablar con él

Ver el tema anterior Ver el tema siguiente Ir abajo

[Tutorial] Cómo hacer que un evento se ilumine al hablar con él

Mensaje por Wecoc el 2014-05-04, 19:57

Nota: Lo hice para XP pero para VX y Ace es muy similar, así que creo que éste tutorial puede serviros igualmente.

Hay tres casos posibles.

CASO 1) Quieres que se ilumine con un flash una sola vez.

Éste es el caso más sencillo, solo tienes que crear una animación vacía llamada "Flash" o como quieras y ponerle un flash de objetivo.



Luego a la hora de hablar aplicas la animación (usando Mostrar Animación en Mapa) a quien quieras y ya está.



CASO 2) Quieres que se ilumine intermitentemente con un flash y ese efecto se repita hasta terminar el mensaje (efecto similar a cuando tienes un battler seleccionado en batalla)

Tienes que hacer la misma animación que en el primer caso, exactamente igual.

Pero además tienes que poner un script encima de main para dar soporte a animaciones que loopeen en mapa:

Código:
class Sprite_Character
  alias loop_animation_update update unless $@
  def update
    loop_animation_update
    animation = $data_animations[@character.loop_animation_id]
    loop_animation(animation)
  end
end

class Game_Character
  attr_accessor :loop_animation_id
  alias loop_animation_initialize initialize unless $@
  def initialize
    loop_animation_initialize
    @loop_animation_id = 0
  end 
end


En ese caso luego debes llamar al script a principio y final del mensaje. Quedará así:



La llamada como puedes ver es:

$game_map.events[(Nº del evento)].loop_animation_id = (Nº de la animación)

O bien en el caso particular del personaje:

$game_player.loop_animation_id = (Nº de la animación)

Si el número de la animación es 0 no se dibujará ninguna (por defecto)

CASO 3) Quieres que se ilumine no de modo intermitente sino simplemente cambie el color, y eso hasta terminar el mensaje.

En ese caso no necesites animación porque lo harás por color directamente.
Para ello tienes que poner éste script encima de main:

Código:
class Sprite_Character
  alias color_update update unless $@
  def update
    color_update
    self.color = @character.color
  end
end

class Game_Character
  attr_accessor :color
  alias color_initialize initialize unless $@
  def initialize
    color_initialize
    @color = Color.new(0, 0, 0, 0)
  end
 
  def color=(color)
    if color.is_a?(Array)
      color.push(255) if color.size == 3
      color = Color.new(color[0], color[1], color[2], color[3])
    end
    @color = color
  end
end


La llamada en éste caso se vuelve más compleja



color = Color.new(rojo, verde, azul, alpha)
$game_map.events[(Nº del evento)].color = color
return true


Como puedes ver; rojo, verde, azul y alpha se correponden a los valores de la primera imagen que puse arriba del todo. En el de debajo el mensaje siempre valdran todos 0
Ese último return true es necesario solo si no usas el Interpreter Script Call Fix. Si lo usas (recomendado), puedes obviarlo.

En el caso particular del personaje:

color = Color.new(rojo, verde, azul, alpha)
$game_player.color = color
return true


Y hasta aquí el tutorial :D
avatar
Wecoc
Administrador
Administrador



Créditos 9272

Gracias : 503

Volver arriba Ir abajo

Re: [Tutorial] Cómo hacer que un evento se ilumine al hablar con él

Mensaje por orochii el 2014-05-04, 20:24

Se puede sentir un poco retrógrada (?), viendo que "oh sí, scripts para modificar tu juego a tu gusto FTW!". Pero yo recomiendo el caso 1. Un simple flash al iniciar el diálogo.

Y en todo caso, recomiendo aparte que el efecto usado sea sutil.

Ese sería mi pequeño aporte xd.
avatar
orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6689

Gracias : 337

Volver arriba Ir abajo

Re: [Tutorial] Cómo hacer que un evento se ilumine al hablar con él

Mensaje por Wecoc el 2014-05-04, 21:44

Orochii: No te creas que no estoy de acuerdo xD Pero es bueno tener las 3 opciones.
avatar
Wecoc
Administrador
Administrador



Créditos 9272

Gracias : 503

Volver arriba Ir abajo

Re: [Tutorial] Cómo hacer que un evento se ilumine al hablar con él

Mensaje por LuuchooColla el 2014-05-04, 22:32

Me sirvió, muchísimas gracias.
avatar
LuuchooColla
Novato
Novato

1/3

Créditos 117

Gracias : 6

Volver arriba Ir abajo

Re: [Tutorial] Cómo hacer que un evento se ilumine al hablar con él

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.