HUNTERDom Jun 24, 2012 11:10 am
Super Usuario
Ha pedido de Diegodrax aqui os traigo un Script que muestra los HP del Enemigo
CREDITOS:Jens009
FECHA:Febrero 1, 2010
SCREENSHOT:
SCRIPT:
CREDITOS:Jens009
FECHA:Febrero 1, 2010
SCREENSHOT:
SCRIPT:
- Código:
#======================================================================
# Barra de enemigos de Jens009
# Version 1.2a
# Log: Julio 29, 2008
# - Version 1.0: Show Enemy Hp Bars
# Agosto 5, 2008
# - Version 1.1: Enable On/Off feature Using a $game_system instance
# : Enable On/Off feature using an in-game switch
# Agosto 8, 2008
# - Version 1.2: Add New Options
# : Change Default Window Size
# : Add Enemy States
# Febrero 1, 2010
# - Version 1.2a: Translation to spannish
#
# Credits to:
# Jens009 (Traducción al inglés y modificación)
# Puppeto4 (Alias tutorial y x buggearme para crear el script)
# VR0 (Traducción al español)
# just kidding puppeto =p
# 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 * 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
# NO ES APTO PARA RPGXP NI PARA XAS