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!