¡Bienvenido a Universo Maker!
¿Es esta la primera vez que visitas el foro? Si es así te recomendamos que te registres para tener completo acceso a todas las áreas y secciones del foro, así también podrás participar activamente en la comunidad. Si ya tienes una cuenta, conectate cuanto antes.
Iniciar Sesión Registrarme

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo Mensaje [Página 1 de 1.]

#1 [VX] Barra de PV de los enemigos el Mar Ene 31, 2012 10:03 am

D.A.C.

avatar
Script: Barra de PV de los enemigos
Autor: Jens009
Versión: 1.2a

Código:
#======================================================================
#  Nota de D.A.C.: Pendiente de revisión y corrección.
#  Barra de PV de los enemigos                                 
#  Créditos                                                       
#  Jens009 (Traducción al inglés y modificación)                                           
#  Puppeto4 (Alias tutorial)
#  VR0 (Traducción al español)                                         
# Author\'s Note:                                                     
# 9 Metodos que hicimos alias. Vea lineas 101-121                   
# hay 4 que no necesitamos, pero es requisito para la ventana de enemigos       
#    cuando no estan presentes cuando eliges objetos o tecnicas.                 
#                                                                   
#                                                                   
# Modificacion:                                                     
#  Si quieres modificar las barras, vea las lineas 34-68. Verás que cuando vés
#      draw_actor_hp, lo cambiamos a draw_enemy_hp para que veas que son
#      barras de enemigos. 
#    Verás que puedes crear barras para que sea lo correcto
#         
#-----------------------------------------------------------------------------
# CONFIG:
#
# I. Activar o apagar ventana de enemigos durante el juego:
#
#  hay 2 especies de interruptores que puedes usar dependiendo
#    de lo que te guste.
#
#  Si quieres usar script mediante interruptor:
#    -pon USE_GSWITCH en \"false\" (sin comillas)
#    -usa llamar script, $game_system.enemy_window = true/false
#        True = Ventana de enemigos activado, False = no habrá ventana
#
#  Si quieres usar interruptor del juego:
#    -pon USE_GSWITCH en \"true\" (sin comillas)
#    -Decide que ID del interruptor del juego vas a usarlas
#        en ENEMY_WINDOW_SWITCH
#    -Usa ese interruptor para mostrar ventana de HP
#        True = Ventana de enemigos activado, False = no habrá ventana
#
#
#  X DEFECTO, USE_GSWITCH está en false.
#    So you are using a script Switch
#
#  II.  ALWAYS_UPDATE
#        True = Siempre actualiza en todo el juego
#            pero produce tanto lag.
#        False = Actualizala ventana solo al final del turno
#
# III. Spacing X and Y change
#    SPACING_X = cambia el Nº del eje X de la ventana
#    SPACING_Y = cambia el Nº del eje Y de la ventana
# IV. COLUMNS
#    COLUMNS = Muestra la cantidad de columnas, MAX = 4
# V. SHOW_STATES
#    true: muestra estados a enemigos.
#======================================================================
module JCONFIG
  USE_GSWITCH = false      # false: usa el interruptor $game_system.enemy_hp.
                            # true: usa interruptor dentro del juego
  ENEMY_WINDOW_SWITCH = 1 # usa el ID del interruptor para activar la
                          # ventana de enemigos, cuando el interruptor es activado
  ALWAYS_UPDATE = true    # True = Siempre actualiza
                            # False = Actualiza al final del turno
  SPACING_X = 90          # Eje X
  SPACING_Y = 44          # Eje Y
  COLUMNS = 4            # x defecto, usa 4 Columnas.
  SHOW_STATES = true      # true muestra estados
                          # false oculta estados
end
                     
#======================================================================
# Empezamos a editar Game_System
#======================================================================
class Game_System
  attr_accessor :enemy_hp      # Muesta HP de enemigo en batalla
 
  alias jens009_system_initialize_enemy_hp initialize
#=============================================
# Inicialización
#=============================================
  def initialize
    # inicializa ventana de enemigo si es \"true\"
    @enemy_hp = true
    # Llama metodos anteriores
    jens009_system_initialize_enemy_hp
  end
 
end # Termina edición del sistema de juego
 
class Window_Base
#====================================
# Define fuente de enemigos           
#====================================
  def draw_enemy_name(enemy, x, y)
    self.contents.font.color = normal_color
    self.contents.draw_text (x, y, 120, 32, enemy.name)
  end
#==========================
# Define estados de enemigos
#========================
  def draw_enemy_state(enemy, x, y)
    count = 0
    for state in enemy.states
      draw_icon(state.icon_index, x  24 * count, y)
      count  += 1
      break if (24 * count > width - 24)
    end
  end
#--------------------------------------------------------------------------
# * Draw Enemy HP
#    actor : actor
#    x    : Marcación eje X
#    y    : Marcación eje Y
#    width : largo
#--------------------------------------------------------------------------
  def draw_enemy_hp(enemy, x, y, width = 120)
    draw_enemy_hp_gauge(enemy, x, y, width)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 30, WLH, Vocab::hp_a)
    last_font_size = self.contents.font.size
    xr = x + width
    if width < 120
      self.contents.draw_text(xr - 44, y, 44, WLH, enemy.hp, 2)
    else
      self.contents.draw_text(xr - 99, y, 44, WLH, enemy.hp, 2)
      self.contents.font.color = normal_color
      self.contents.draw_text(xr - 55, y, 11, WLH, \"/\", 2)
      self.contents.draw_text(xr - 44, y, 44, WLH, enemy.maxhp, 2)
    end
  end
  #--------------------------------------------------------------------------
  # * Marcador HP
  #    actor : actor
  #    x    : Marcación eje X
  #    y    : Marcación eje Y
  #    width : largo
  #--------------------------------------------------------------------------
  def draw_enemy_hp_gauge(enemy, x, y, width = 120)
    gw = width * enemy.hp / enemy.maxhp
    gc1 = hp_gauge_color1
    gc2 = hp_gauge_color2
    self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
    self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
  end
 
end

#=============================================#
# Window_EnemyHP                              #
# Clase para marcar ventana de HP de enemigos #
#=============================================#
class Window_EnemyHP < Window_Selectable
  def initialize
    super ( 0, 0, 545, 300)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity = 0
    @column_max = JCONFIG::COLUMNS
    refresh
  end
 
  def refresh
    self.contents.clear
    for i in 0...$game_troop.members.size
      enemy = $game_troop.members[i]
      x = i % @column_max * (JCONFIG::SPACING_X + @spacing)
    if JCONFIG::SHOW_STATES
      y = (i / @column_max * (JCONFIG::SPACING_Y + WLH) )
    else
      y = (i / @column_max * ((JCONFIG::SPACING_Y - 34) + WLH) )
    end
 
      #========================================
      # Si usas Game_Switch
      #=========================================
      if JCONFIG::USE_GSWITCH and $game_switches[JCONFIGENEMY_WINDOW_SWITCH]
        draw_enemy_hp(enemy, x, y+20, 90)
        draw_enemy_name(enemy, x, y)
        if JCONFIG::SHOW_STATES
        draw_enemy_state(enemy, x, y +44)
        end
      end
      #==========================================
      # Si usas interruptor de scripts
      #==========================================
      if JCONFIG::USE_GSWITCH == false
        if $game_system.enemy_hp == true # Start check if Window Flag is On
          draw_enemy_hp(enemy, x, y+20, 90)
          draw_enemy_name(enemy, x, y)
          if JCONFIG::SHOW_STATES
          draw_enemy_state(enemy, x, y +44)
          end # END CHECK
        end #End flag check
      end # END game switche check
    end
  end #End Refresh
end #End of Window_EnemyHP Class


#====================================#
# Scene_Battle                      #
# Nuevos metodos que pusimos alias:  #
#====================================#
class Scene_Battle
 
alias jens009_create_info_viewport create_info_viewport
alias jens009_dispose_info_viewport dispose_info_viewport
alias jens009_start_item_selection start_item_selection
alias jens009_start_skill_selection start_skill_selection
alias jens009_end_item_selection end_item_selection
alias jens009_end_skill_selection end_skill_selection
alias jens009_process_victory process_victory

alias jens009_update_info_viewport update_info_viewport

alias jens009_start_party_command_selection start_party_command_selection
alias jens009_execute_action execute_action
alias jens009_turn_end turn_end

# Crear infos
def create_info_viewport
  jens009_create_info_viewport
  @enemy_window = Window_EnemyHP.new
end
# proporcionar infos
def dispose_info_viewport
  jens009_dispose_info_viewport
  @enemy_window.dispose
end

#=============================================
# Siempre actualizar ventana
#============================================
def update_info_viewport
  if JCONFIG::ALWAYS_UPDATE == true
    @enemy_window.refresh
    jens009_update_info_viewport
  else
    jens009_update_info_viewport
  end
end

#=============================================
# Actualizar solo si el turno parte y termina
#============================================
def start_party_command_selection
  if JCONFIG::ALWAYS_UPDATE == true
    jens009_start_party_command_selection
    else
    @enemy_window.visible = true
    @enemy_window.refresh
    jens009_start_party_command_selection
  end
end

def execute_action
  if JCONFIG::ALWAYS_UPDATE == true
    jens009_execute_action
  else
    @enemy_window.visible = false
    jens009_execute_action
  end
end

def turn_end
  if JCONFIG::ALWAYS_UPDATE == true
    jens009_turn_end
  else
    @enemy_window.refresh
    jens009_turn_end
  end
end
#============================================
# TERMINA VERIFICACIÓN DE MEJORA
#===========================================

#=====================================
# Quitar ventana durante selección (ITEM-PACK)
def start_item_selection
  @enemy_window.visible = false
  jens009_start_item_selection
end
# Quitar ventana durante selección (Tecs.)
def start_skill_selection
  @enemy_window.visible = false
  jens009_start_skill_selection
end
# Visible durante selección (ITEM-PACK)
def end_item_selection
  jens009_end_item_selection
  @enemy_window.visible = true
end
# Visible durante selección (Tecs.)
def end_skill_selection
  jens009_end_skill_selection
  @enemy_window.visible = true
end
# Actualizar al ganar
def process_victory
  @enemy_window.refresh
  jens009_process_victory
  end

#=====================================#
# Termina edición de Scene_Battle    #
#=====================================#

end

Instrucciones de uso:
Solo debes copiar el script encima de 'Main'.

Imágenes:




Si quieres verlo, haz click aquí.

#2 Re: [VX] Barra de PV de los enemigos el Mar Ene 31, 2012 10:12 am

Jon_Maker

avatar
¿Seria compatible con todos los sistemas de batalla?

#3 Re: [VX] Barra de PV de los enemigos el Mar Ene 31, 2012 10:54 am

D.A.C.

avatar
@Jon_Maker escribió:¿Seria compatible con todos los sistemas de batalla?
La verdad es que no tengo ni idea, aunque me imagino que será incompatible con muchos de ellos. Por ejemplo, puedes descartar el XAS con toda seguridad. Si alguien lo intenta, que diga con cuáles le funciona y con cuáles no.




Si quieres verlo, haz click aquí.

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.