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 3763 miembros registrados.
El último usuario registrado es Carlos Rodriguez.

Nuestros miembros han publicado un total de 85780 mensajes en 12216 argumentos.

[RMXP] State Animation in Map

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP [RMXP] State Animation in Map

Mensaje por Eron el 2017-05-05, 13:05

Muestra la animación del estado alterado actual en el mapa. He hecho dos versiones, una muestra solo el estado que se tenga con más prioridad tal como ocurre en la batalla normal, mientras que la otra los muestra todos en cadena. Además en ámbos se puede poner si solo mira los del actor principal o los de todo el grupo.

Version Basic:
Código:
#==============================================================================
# ** [XP] State Animation in Map - Version: Basic
#------------------------------------------------------------------------------
#  Creado por: Eron (libre de uso)
#  Muestra la animación del estado alterado actual en el mapa
#  (solo muestra el de mayor prioridad)
#==============================================================================

class Game_System
  attr_accessor :map_states
  alias map_states_ini initialize unless $@
  def initialize
    map_states_ini
    @map_states = true
  end
end

class Sprite_Character < RPG::Sprite
 
  # ID estados que muestran el efecto en el jugador
  STATES_MAP_EFFECT = [2, 3, 4, 5, 6, 7, 8, 9]
 
  alias map_states_upd update unless $@
  def update
    map_states_upd
    if @character.is_a?(Game_Player)
      if $game_system.map_states == true
        update_player_states
      end
    end
  end
 
  def update_player_states
    state_id = 0
    states = STATES_MAP_EFFECT.sort do |b, a|
      $data_states[b].rating - $data_states[a].rating
    end
    for i in states.reverse
      #------------------------------------------------------------------------
      # Si solo quieres mirar los estados del prota cambia lo siguiente por:
      # if $game_party.actors[0].state?(i)
      if $game_party.actors.any? {|actor| actor.state?(i)}
      #------------------------------------------------------------------------
        state_id = i
        break
      end
    end
    if state_id > 0
      animation_id = $data_states[state_id].animation_id
      loop_animation($data_animations[animation_id])
    else
      loop_animation(nil)
    end
  end
end

Version Advanced:
Código:
#==============================================================================
# ** [XP] State Animation in Map - Version: Advanced
#------------------------------------------------------------------------------
#  Creado por: Eron (libre de uso)
#  Muestra la animación del estado alterado actual en el mapa
#  (si hay más de una, las muestra una detrás de otra)
#==============================================================================

class Game_System
  attr_accessor :map_states
  alias map_states_ini initialize unless $@
  def initialize
    map_states_ini
    @map_states = []
  end
end

class Game_Actor < Game_Battler
 
  # ID estados que muestran el efecto en el jugador
  STATES_MAP_EFFECT = [2, 3, 4, 5, 6, 7, 8, 9]
 
  # Mostrar los estados de todo el grupo (o bien solo los del actor principal)
  SHOW_ALL_PARTY_STATES = true
 
  alias map_states_add_state add_state
  def add_state(state_id, force=false)
    map_states_add_state(state_id, force)
    return if (SHOW_ALL_PARTY_STATES == false) && $game_party.actors[0] != self
    if STATES_MAP_EFFECT.include?(state_id)
      $game_system.map_states.push(state_id)
      $game_system.map_states.uniq!
      $game_system.map_states.sort do |b, a|
        $data_states[b].rating - $data_states[a].rating
      end
    end
  end
 
  alias map_states_remove_state remove_state
  def remove_state(state_id, force=false)
    map_states_remove_state(state_id, force)
    return if (SHOW_ALL_PARTY_STATES == false) && $game_party.actors[0] != self
    if SHOW_ALL_PARTY_STATES == false
      $game_system.map_states.delete(state_id)
    elsif !$game_party.actors.any? {|actor| actor.state?(state_id)}
      $game_system.map_states.delete(state_id)
    end
  end
end


class Sprite_Character < RPG::Sprite
  alias map_states_ini initialize unless $@
  def initialize(*args)
    @map_states = []
    @loop_index = 0
    @loop_animation_counter = 0
    map_states_ini(*args)
  end
 
  alias map_states_upd update unless $@
  def update
    map_states_upd
    if @character.is_a?(Game_Player)
      update_player_states
    end
  end
 
  def update_player_states
    if @loop_animation_counter > 0
      @loop_animation_counter -= 1
      return
    end
    if @map_states != $game_system.map_states
      @map_states = $game_system.map_states
      @loop_index = 0
      loop_animation(nil)
      return
    end
    return if @map_states.size == 0
    @loop_index += 1
    @loop_index = 0 if @loop_index >= @map_states.size
    animation_id = $data_states[@map_states[@loop_index]].animation_id
    return if animation_id == 0
    state_animation = $data_animations[animation_id]
    loop_animation(state_animation)
    @loop_animation_counter = state_animation.frame_max * 2
  end
end

Mi opinión es que puede ser una buena alternativa al efecto de veneno que viene en el maker, para indicar que álguien del grupo tiene ese estado.
Siendo algo creativos seguro que con ésto se puede lograr algún efecto guay =)
avatar
Eron
Principiante
Principiante

0/3

Créditos 1995

Gracias : 56

Volver arriba Ir abajo

RPG Maker XP Re: [RMXP] State Animation in Map

Mensaje por orochii el 2017-05-06, 01:34

De hecho mucho mejor, que dependiendo el flashazo te deja ciego, xD.

Buen aporte.
avatar
orochii
Reportero

0/3

Créditos 6798

Gracias : 356

Volver arriba Ir abajo

RPG Maker XP Re: [RMXP] State Animation in Map

Mensaje por Wecoc el 2017-05-16, 21:10

Me gusta el arreglo del script Advanced. Ese círculo de animaciones de estado si se tiene más de uno a la vez creo que podría estar bien implementarlo en batalla, ya que por defecto si no me equivoco funciona como en tu versión Basic, y ahora mismo el arreglo que has hecho solo se implementa en mapa.
avatar
Wecoc
Administrador
Administrador



Créditos 9370

Gracias : 517

Volver arriba Ir abajo

RPG Maker XP Re: [RMXP] State Animation in Map

Mensaje por Hk Diamond el 2017-06-09, 21:37

Hola chicos que tal, sry si estoy haciendo necro ( que no creo ), pero es que la posicion de las fechas me enreda, no se cual es el dia ni el mes XD. En fin venia a comentarle a Eron que no se ven las animaciones en todos los personajes a mi solo se me ve en el principal sin importar si lo tengo en true o false, ayuda porfa ¿que podria estar fallando?
avatar
Hk Diamond
Iniciado
Iniciado

0/3

Créditos 10

Gracias : 2

Volver arriba Ir abajo

RPG Maker XP Re: [RMXP] State Animation in Map

Mensaje por Wecoc el 2017-06-10, 21:50

He probado el Advanced y me funciona bien lo de tener en cuenta todos los personajes. De hecho como dato curioso tiene en cuenta incluso los que no estan en la party en ese momento, pero no creo que importe porque en general si no estan en la party uno no va añadiéndoles o quitándoles estados a lo loco.

Si dejaste SHOW_ALL_PARTY_STATES como true y aún así no te funciona bien casi seguro que es una incompatibilidad con otro script. Asegúrate de ponerlo encima de main pero debajo de otros scripts personalizados y si sigue haciendo cosas raras busca sobretodo scripts que modifiquen def add_state o def remove_state. También asegúrate de que los estados que no se te visualizan no sea porque no estan en la lista del principio del script; hay que definirlos en STATES_MAP_EFFECT.
avatar
Wecoc
Administrador
Administrador



Créditos 9370

Gracias : 517

Volver arriba Ir abajo

RPG Maker XP Re: [RMXP] State Animation in Map

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.