Versión imprimible del tema: Problema en Script de Cambio de lider al morir
URL: https://anterior.mundodeluxe.com/1254725/10861236-problema-en-script-de-cambio-de-lider-al-morir/

De la comunidad de foros: MundoDeluxe
URL: https://anterior.mundodeluxe.com


Autor: Windwarrior7.0, 12/Oct/2012, 13:27


Me he encontrado con un fallo en el Script de Cambio de Personaje derrotado.

Este script hace que cuando te muere el heroe el character que se ve en el juego pase al siguiente personaje del grupo (Es ilogico ir po rel mapa con un grafico de un personaje muerto), y que cuando lo resucites se vuelva a actualizar sólo.

Spoiler:

#========================================================================== ====
# ** Game_Player (Death Switch)
#-------------------------------------------------------------------------- ----
# Descripcion:
# - Cuando el personaje principal muere, cambia el sprite por el del
#   personaje que esta vivo.
# - Cuando cambias de personaje, se actualiza automáticamente
#========================================================================== ====
class Game_Player < Game_Character
alias switch_refresh refresh
  def refresh
   switch_refresh
   if $game_party.actors.size == 0
     @character_name = ""
     @character_hue = 0
     return
   end
#-------------------------------------------------------------------------- ----
# Si el personaje principal esta muerto
#-------------------------------------------------------------------------- ----
 for actor in $game_party.actors
  lead = actor unless actor.hp == 0    
  break unless lead.nil?
end
#-------------------------------------------------------------------------- ----
       @character_name = lead.character_name
       @character_hue = lead.character_hue
   @opacity = 255
   @blend_type = 0
 end
end

class Game_Player < Game_Character
 alias switch_update update
 def update
  switch_update
#-------------------------------------------------------------------------- ----
# Si el personaje principal esta muerto
#-------------------------------------------------------------------------- ----
for actor in $game_party.actors
  lead = actor unless actor.hp == 0
  break unless lead.nil?
end
#-------------------------------------------------------------------------- ----
# Si todos los personajes estan muertos
#-------------------------------------------------------------------------- ----
 if $game_party.all_dead? or $game_party.actors.size == 0
   $scene = Scene_Gameover.new
     return
   end
$game_temp.gameover unless !lead.nil?
  @character_name = lead.character_name
  @character_hue = lead.character_hue
#-------------------------------------------------------------------------- ----
end
end

El problema lo he encontrado en la siguiente situación:

Mi personaje hace un combate de entrenamiento con su maestro. si gana sigue el juego de la forma normal, pero si pierde, el Maestro te da la charla, resucitas y vuelves a combatir. Esto lo he hecho en el Evento con "Permitir comandos en caso de derrota"

El problema que me sucede es que al perder el combate, me da error en la línea 26 del script de cambio de Personaje. Y no se como solucionarlo:

@character_name = lead.character_name

Esto antes no me fallaba en el juego, pero como perdí varios discos duros, y continué el proyecto quizás esta versión no tenía eso resuelto, o era anterior a dicho script. Se me ha ocurrido que en la batalla ponga que si la vida del personaje llega a 0 se active un evento de batalla que le resucite en el mismo combate, de esa forma no saldrá ni siquiera y me evito la incompativilidad.

Pero vamos, lo que más me interesa es una solución en el propio script. ¿Qué creeis que puedo hacer?


Autor: kyonides-arkanthos, 12/Oct/2012, 17:35


Reemplace lead por @lead al presionar Ctrl+H (Reemplazar) y ya después de guardados los cambios eso debería de funcionar, siempre y cuando no estén todos muertos.


Autor: Windwarrior7.0, 13/Oct/2012, 02:48


@kyonides-arkanthos,

Muchas gracias!

Aunque no comprendí lo de CTRL+H donde debo pulsarlo?