Hola, escribo para pedir ayuda. Resulta que he estado trabajando sobre el ZTBS en secreto (muajajajajaja) con la intención de corregir varios errores sencillos que contiene y ampliar su utilidad. Pero me he topado con un error que me gustaría solucionar y es:

Quiero que cuando un personaje (aliado o enemigo) pierda todos sus HP no desaparezca del campo de batalla, si no, que cambie su imagen por alguna otra (dígase por ejemplo una donde este "caído"). Pero no logro solucionarlo...

Dejo la parte del script donde se que ocurre el error:

#==============================================================================

# Zenith Tactical Battle System

# Cursor Interpreter

#------------------------------------------------------------------------------

# Cursor Commands and Control

#==============================================================================

class Interpreter

#--------------------------------------------------------------------------

# ● Define cursor to move a event by ID

#--------------------------------------------------------------------------

def cursor_moveto_event(event_id)

if $game_system.in_tactics

event = $game_map.events[event_id]

$game_player.moveto(event.x, event.y)

# Get the cursor to the battler

$scene.get_cursor_battler

# Battler acts with cursor using info

$scene.set_battler_info

end

return true

end

#--------------------------------------------------------------------------

# ● Define cursor to move a position using x and y axis

#--------------------------------------------------------------------------

def cursor_moveto_position(x, y)

if $game_system.in_tactics

$game_player.moveto(x, y)

# Get the cursor to the battler

$scene.get_cursor_battler

# Battler acts with cursor using info

$scene.set_battler_info

end

return true

end

#--------------------------------------------------------------------------

# ● Deal damage to battlers via events by commands

#--------------------------------------------------------------------------

def add_damage(event_id, damage)

# In tactic battle battlers become events

if $game_system.tactics_actors.keys.include?(event_id)

event = $game_map.events[event_id]

battler = $game_system.tactics_actors[event_id]

# Event damage becomes battler damage

battler.hp -= damage

event.damage = damage

event.damage_pop = true

if $game_player.x == event.x and $game_player.y == event.y

$scene.refresh_battler_info

end

# Battler dissapear upon defeat

$scene.set_erase_battler

# Event gains battlers powers and statistics

elsif $game_system.tactics_enemies.keys.include?(event_id)

event = $game_map.events[event_id]

battler = $game_system.tactics_enemies[event_id]

# Event damage becomes battler damage

battler.hp -= damage

event.damage = damage

event.damage_pop = true

if $game_player.x == event.x and $game_player.y == event.y and

!battler.dead?

$scene.refresh_battler_info

end

# Battler dissapear upon defeat

$scene.set_erase_battler

end

return true

end

#--------------------------------------------------------------------------

# ● Add state to event actor

#--------------------------------------------------------------------------

def add_state(event_id, state_id)

# In tactic battle battlers become events

if $game_system.tactics_actors.keys.include?(event_id)

event = $game_map.events[event_id]

battler = $game_system.tactics_actors[event_id]

# Battler inflicted states become actor inflicted states

battler.add_state(state_id)

if $game_player.x == event.x and $game_player.y == event.y

$scene.refresh_battler_info

end

# Battler dissapear upon defeat

$scene.set_erase_battler

# In tactic battle enemy battlers become events

elsif $game_system.tactics_enemies.keys.include?(event_id)

event = $game_map.events[event_id]

battler = $game_system.tactics_enemies[event_id]

# Battler inflicted states become actor inflicted states

battler.add_state(state_id)

if $game_player.x == event.x and $game_player.y == event.y

$scene.refresh_battler_info

end

# Battler dissapear upon defeat

$scene.set_erase_battler

end

return true

end

#--------------------------------------------------------------------------

# ● Remove State

#--------------------------------------------------------------------------

def remove_state(event_id, state_id)

# In tactic battle battlers become events

if $game_system.tactics_actors.keys.include?(event_id)

event = $game_map.events[event_id]

battler = $game_system.tactics_actors[event_id]

# When battler state is removed so is the actors

battler.remove_state(state_id)

if $game_player.x == event.x and $game_player.y == event.y

$scene.refresh_battler_info

end

# Battler dissapear upon defeat

$scene.set_erase_battler

# When battlers are subdue so do the events

elsif $game_system.tactics_dead_actors.keys.include?(event_id)

event = $game_map.events[event_id]

battler = $game_system.tactics_dead_actors[event_id]

# When the KO state is removed they are revived on the spot chosen

battler.remove_state(state_id)

if $game_player.x == event.x and $game_player.y == event.y

$scene.refresh_battler_info

end

# Battler dissapear upon defeat

$scene.set_erase_battler

# In tactic battle battlers become events

elsif $game_system.tactics_enemies.keys.include?(event_id)

event = $game_map.events[event_id]

battler = $game_system.tactics_enemies[event_id]

# When the KO state is removed they are revived on the spot chosen

battler.remove_state(state_id)

if $game_player.x == event.x and $game_player.y == event.y

$scene.refresh_battler_info

end

# Battler dissapear upon defeat

$scene.set_erase_battler

end

return true

end

#--------------------------------------------------------------------------

# ● Transform Event to Actor

#--------------------------------------------------------------------------

def transform_to_actor(event_id, actor_id)

# If map event is erased return

if $game_map.events[event_id].erased

return

end

# In tactic battle battlers become events

if $game_system.tactics_enemies.keys.include?(event_id)

$game_system.tactics_enemies.delete(event_id)

end

if $game_actors[actor_id].dead?

$game_map.events[event_id].erase

# Dead actor is still classified as game actor

$game_system.tactics_dead_actors[event_id] = $game_actors[actor_id]

else

# Game actors are still game actors

$game_system.tactics_actors[event_id] = $game_actors[actor_id]

end

return true

end

#--------------------------------------------------------------------------

# ● Transform Event to Enemy Actor

#--------------------------------------------------------------------------

def transform_to_enemy(event_id, enemy_id)

# If map event is erased return

if $game_map.events[event_id].erased

return

end

# If dead actor is included as event return

if $game_system.tactics_dead_actors.keys.include?(event_id)

return

end

# If tactics actor is included, delete.

if $game_system.tactics_actors.keys.include?(event_id)

$game_system.tactics_actors.delete(event_id)

end

# Create a new Enemy refer to database enemy id

$game_system.tactics_enemies[event_id] = Game_Enemy.new(0, enemy_id)

return true

end

end

end

Ahora, he descubierto, que el problema ocurre cuando aparece este código. Pero no se que linea poner para obtener el resultado que deseo...

$scene.set_erase_battler

Agradezco cualquier ayuda que me puedan brindar ¡Gracias!