This is a really useful Script I found on 66RPG.com and edited slightly
What it Does
This script shows the enemies' name, HP and SP in battle.
Advice for Usage
I Advise you use some form of HP/SP bar with this script to make the HP and SP stand out.
Something like the CogWheel Plug 'n' Play Menu Bars.
If you do use bars that alias themselves to the HP and SP you have to put the code below this one.
Screenies
http://i25.photobucket.com/albums/c66/R ... ostbar.jpg[/IMG]
The Script
Credit
Credit to which ever bit of Japanese is a name in the comments, otherwise just to 66RPG.com
And mini credit to me if you're kind :D
Enjoy :D
What it Does
This script shows the enemies' name, HP and SP in battle.
Advice for Usage
I Advise you use some form of HP/SP bar with this script to make the HP and SP stand out.
Something like the CogWheel Plug 'n' Play Menu Bars.
If you do use bars that alias themselves to the HP and SP you have to put the code below this one.
Screenies
http://i25.photobucket.com/albums/c66/R ... ostbar.jpg[/IMG]
The Script
Code:
#==============================================================================
# 本脚本æ¥è‡ªwww.66RPG.com,使用和转载请ä¿ç•™æ¤ä¿¡æ¯
#==============================================================================
# ■エãƒãƒŸãƒ¼HP&SP(ver 0.98)
# â–¡ カスタマイズãƒã‚¤ãƒ³ãƒˆ
#==============================================================================
module PLAN_HPSP_DRAW
FONT_NAME = ["Arial"] # フォント
FONT_SIZE = 18 # フォントサイズ
FONT_BOLD = true # 太å—
FONT_ITALIC = true # 斜体
DRAW_NAME = true # åå‰ã®æç”»
DRAW_HP = true # HP ã®æç”»
DRAW_SP = true # SP ã®æç”»
DRAW_WIDTH = 80 # æ画幅
DRAW_HEIGHT = 3 * 32 # æ画高ã•
DRAW_SPACE = 0 # 行間
DRAW_Y = 24 # Y 座標修æ£å€¤
end
#==============================================================================
# â– Sprite_Battler
#==============================================================================
class Sprite_Battler < RPG::Sprite
#--------------------------------------------------------------------------
# ◠オブジェクトåˆæœŸåŒ–
#--------------------------------------------------------------------------
alias plan_enemy_hpsp_draw_initialize initialize
def initialize(viewport, battler = nil)
# å…ƒã®ãƒ¡ã‚½ãƒƒãƒ‰ã«æˆ»ã™
plan_enemy_hpsp_draw_initialize(viewport, battler)
# エãƒãƒŸãƒ¼ã®å ´åˆ
if @battler.is_a?(Game_Enemy)
width = PLAN_HPSP_DRAW::DRAW_WIDTH + 32
height = PLAN_HPSP_DRAW::DRAW_HEIGHT + 32
x = @battler.screen_x - width / 2
y = @battler.screen_y - height + 32 + PLAN_HPSP_DRAW::DRAW_Y
@enemy_hpsp_window = Window_Base.new(x, y, width, height)
@enemy_hpsp_window.contents = Bitmap.new(width - 32, height - 32)
@enemy_hpsp_window.contents.font.name = PLAN_HPSP_DRAW::FONT_NAME
@enemy_hpsp_window.contents.font.size = PLAN_HPSP_DRAW::FONT_SIZE
@enemy_hpsp_window.contents.font.bold = PLAN_HPSP_DRAW::FONT_BOLD
@enemy_hpsp_window.contents.font.italic = PLAN_HPSP_DRAW::FONT_ITALIC
y = 0
@old_enemy_hpsp = []
one_line = ((PLAN_HPSP_DRAW::FONT_SIZE * 100 / 28) * 32) / 100
if PLAN_HPSP_DRAW::DRAW_NAME
@enemy_hpsp_window.draw_actor_name(@battler, 0, y, width - 32)
y += one_line + PLAN_HPSP_DRAW::DRAW_SPACE
@old_enemy_hpsp.push(@battler.name)
end
if PLAN_HPSP_DRAW::DRAW_HP
@enemy_hpsp_window.draw_actor_hp(@battler, 0, y, width - 32)
y += one_line + PLAN_HPSP_DRAW::DRAW_SPACE
@old_enemy_hpsp.push(@battler.hp)
end
if PLAN_HPSP_DRAW::DRAW_SP
@enemy_hpsp_window.draw_actor_sp(@battler, 0, y, width - 32)
@old_enemy_hpsp.push(@battler.sp)
end
@enemy_hpsp_window.opacity = 0
@enemy_hpsp_window.contents_opacity = 0
@enemy_hpsp_window.z = -2
end
end
#--------------------------------------------------------------------------
# ◠解放
#--------------------------------------------------------------------------
alias plan_enemy_hpsp_draw_dispose dispose
def dispose
# エãƒãƒŸãƒ¼ã®å ´åˆ
if @battler.is_a?(Game_Enemy)
@enemy_hpsp_window.dispose
end
# å…ƒã®ãƒ¡ã‚½ãƒƒãƒ‰ã«æˆ»ã™
plan_enemy_hpsp_draw_dispose
end
#--------------------------------------------------------------------------
# ◠フレーム更新
#--------------------------------------------------------------------------
alias plan_enemy_hpsp_draw_update update
def update
# å…ƒã®ãƒ¡ã‚½ãƒƒãƒ‰ã«æˆ»ã™
plan_enemy_hpsp_draw_update
# エãƒãƒŸãƒ¼ã®å ´åˆ
if @battler.is_a?(Game_Enemy)
@enemy_hpsp_window.visible = @battler_visible
# スプライトã®åº§æ¨™ã‚’è¨å®š
width = PLAN_HPSP_DRAW::DRAW_WIDTH + 32
@enemy_hpsp_window.x = self.x - width / 2
@now_enemy_hpsp = []
if PLAN_HPSP_DRAW::DRAW_NAME
@now_enemy_hpsp.push(@battler.name)
end
if PLAN_HPSP_DRAW::DRAW_HP
@now_enemy_hpsp.push(@battler.hp)
end
if PLAN_HPSP_DRAW::DRAW_SP
@now_enemy_hpsp.push(@battler.sp)
end
if @old_enemy_hpsp != @now_enemy_hpsp and $game_temp.enemy_hpsp_refresh
@old_enemy_hpsp = @now_enemy_hpsp
@enemy_hpsp_window.contents.clear
y = 0
width = PLAN_HPSP_DRAW::DRAW_WIDTH + 32
one_line = ((PLAN_HPSP_DRAW::FONT_SIZE * 100 / 28) * 32) / 100
if PLAN_HPSP_DRAW::DRAW_NAME
@enemy_hpsp_window.draw_actor_name(@battler, 0, y, width - 32)
y += one_line + PLAN_HPSP_DRAW::DRAW_SPACE
end
if PLAN_HPSP_DRAW::DRAW_HP
@enemy_hpsp_window.draw_actor_hp(@battler, 0, y, width - 32)
y += one_line + PLAN_HPSP_DRAW::DRAW_SPACE
end
if PLAN_HPSP_DRAW::DRAW_SP
@enemy_hpsp_window.draw_actor_sp(@battler, 0, y, width - 32)
end
Graphics.frame_reset
end
end
end
#--------------------------------------------------------------------------
# â— visible ã®è¨å®š
#--------------------------------------------------------------------------
if !method_defined?("plan_enemy_hpsp_draw_visible=")
alias plan_enemy_hpsp_draw_visible= visible=
end
def visible=(bool)
# エãƒãƒŸãƒ¼ã®å ´åˆ
if @battler.is_a?(Game_Enemy)
@enemy_hpsp_window.visible = bool
end
# å…ƒã®ãƒ¡ã‚½ãƒƒãƒ‰ã«æˆ»ã™
self.plan_enemy_hpsp_draw_visible=(bool)
end
#--------------------------------------------------------------------------
# â— ä¸é€æ˜Žåº¦ã®è¨å®š
#--------------------------------------------------------------------------
if !method_defined?("plan_enemy_hpsp_draw_opacity=")
alias plan_enemy_hpsp_draw_opacity= opacity=
end
def opacity=(n)
# å…ƒã®ãƒ¡ã‚½ãƒƒãƒ‰ã«æˆ»ã™
self.plan_enemy_hpsp_draw_opacity=(n)
# エãƒãƒŸãƒ¼ã®å ´åˆ
if @battler.is_a?(Game_Enemy)
@enemy_hpsp_window.contents_opacity = n
end
end
#--------------------------------------------------------------------------
# ◠ダメージ
#--------------------------------------------------------------------------
def damage(value, critical)
super(value, critical)
bitmap = @_damage_sprite.bitmap
@_damage_sprite.dispose
@_damage_sprite = ::Sprite.new(Viewport.new(0, 0, 640, 480))
@_damage_sprite.bitmap = bitmap
@_damage_sprite.ox = 80
@_damage_sprite.oy = 20
@_damage_sprite.x = self.x
@_damage_sprite.y = self.y - self.oy / 2
@_damage_sprite.viewport.z = self.viewport.z + 1
@_damage_sprite.z = 3000
@_damage_duration = 40
end
#--------------------------------------------------------------------------
# ◠ダメージ解放
#--------------------------------------------------------------------------
def dispose_damage
if @_damage_sprite != nil
@_damage_sprite.viewport.dispose
end
super
end
end
#==============================================================================
# â– Game_Temp
#==============================================================================
class Game_Temp
#--------------------------------------------------------------------------
# ◠公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :enemy_hpsp_refresh
#--------------------------------------------------------------------------
# ◠オブジェクトåˆæœŸåŒ–
#--------------------------------------------------------------------------
alias plan_enemy_hpsp_draw_initialize initialize
def initialize
# å…ƒã®ãƒ¡ã‚½ãƒƒãƒ‰ã«æˆ»ã™
plan_enemy_hpsp_draw_initialize
@enemy_hpsp_refresh = false
end
end
#==============================================================================
# â– Scene_Battle
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ◠プレãƒãƒˆãƒ«ãƒ•ã‚§ãƒ¼ã‚ºé–‹å§‹ (エãƒãƒŸãƒ¼å+アルファベット用)
#--------------------------------------------------------------------------
alias plan_enemy_hpsp_draw_start_phase1 start_phase1
def start_phase1
$game_temp.enemy_hpsp_refresh = true
# å…ƒã®ãƒ¡ã‚½ãƒƒãƒ‰ã«æˆ»ã™
plan_enemy_hpsp_draw_start_phase1
end
#--------------------------------------------------------------------------
# ◠パーティコマンドフェーズ開始 (エãƒãƒŸãƒ¼å+アルファベット用)
#--------------------------------------------------------------------------
alias plan_enemy_hpsp_draw_start_phase2 start_phase2
def start_phase2
$game_temp.enemy_hpsp_refresh = false
# å…ƒã®ãƒ¡ã‚½ãƒƒãƒ‰ã«æˆ»ã™
plan_enemy_hpsp_draw_start_phase2
end
#--------------------------------------------------------------------------
# ◠フレーム更新 (メインフェーズ ステップ 5 : ダメージ表示)
#--------------------------------------------------------------------------
alias plan_enemy_hpsp_draw_update_phase4_step5 update_phase4_step5
def update_phase4_step5
# å…ƒã®ãƒ¡ã‚½ãƒƒãƒ‰ã«æˆ»ã™
plan_enemy_hpsp_draw_update_phase4_step5
$game_temp.enemy_hpsp_refresh = true
end
#--------------------------------------------------------------------------
# ◠フレーム更新 (メインフェーズ ステップ 6 : リフレッシュ)
#--------------------------------------------------------------------------
alias plan_enemy_hpsp_draw_update_phase4_step6 update_phase4_step6
def update_phase4_step6
# å…ƒã®ãƒ¡ã‚½ãƒƒãƒ‰ã«æˆ»ã™
plan_enemy_hpsp_draw_update_phase4_step6
$game_temp.enemy_hpsp_refresh = false
end
end
#==============================================================================
# â– Window_Base
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# â— åå‰ã®æç”»
#--------------------------------------------------------------------------
def draw_actor_name(actor, x, y, width = 220, align = 0)
if $scene.is_a?(Scene_Battle)
flag = actor.name.sub!(/\*f/, '').nil? ? false : true
self.contents.font.color = Color.new(0, 0, 0, 192)
self.contents.draw_text(x+1, y, width, 32, actor.name, align)
self.contents.draw_text(x, y+1, width, 32, actor.name, align)
end
self.contents.font.color = normal_color
self.contents.draw_text(x, y, width, 32, actor.name, align)
end
alias draw_actor_hp_original draw_actor_hp
def draw_actor_hp(actor, x, y, width = 144)
# Calculate if there is draw space for MaxHP
if width - 32 >= 108
hp_x = x + width - 108
flag = true
elsif width - 32 >= 48
hp_x = x + width - 48
flag = false
end
# Draw Shadow Effects for Battles
if $scene.is_a?(Scene_Battle)
self.contents.font.color = Color.new(0, 0, 0, 192)
self.contents.draw_text(x, y+1, 32, 32, $data_system.words.hp)
self.contents.draw_text(x+1, y, 32, 32, $data_system.words.hp)
self.contents.draw_text(hp_x, y+1, 48, 32, actor.hp.to_s, 2)
self.contents.draw_text(hp_x+1, y, 48, 32, actor.hp.to_s, 2)
if flag
self.contents.draw_text(hp_x + 49, y, 12, 32, "/", 1)
self.contents.draw_text(hp_x + 48, y+1, 12, 32, "/", 1)
self.contents.draw_text(hp_x + 60, y+1, 48, 32, actor.maxhp.to_s)
self.contents.draw_text(hp_x + 61, y, 48, 32, actor.maxhp.to_s)
end
end
# Draw "HP" text string
self.contents.font.color = system_color
self.contents.draw_text(x, y, 32, 32, $data_system.words.hp)
# Draw HP
self.contents.font.color = actor.hp == 0 ? knockout_color :
actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
self.contents.draw_text(hp_x, y, 48, 32, actor.hp.to_s, 2)
# Draw MaxHP
if flag
self.contents.font.color = normal_color
self.contents.draw_text(hp_x + 48, y, 12, 32, "/", 1)
self.contents.draw_text(hp_x + 60, y, 48, 32, actor.maxhp.to_s)
end
end
alias draw_actor_sp_original draw_actor_sp
def draw_actor_sp(actor, x, y, width = 144)
# Calculate if there is draw space for MaxHP
if width - 32 >= 108
sp_x = x + width - 108
flag = true
elsif width - 32 >= 48
sp_x = x + width - 48
flag = false
end
# Draw Shadow Effects for Battles
if $scene.is_a?(Scene_Battle)
self.contents.font.color = Color.new(0, 0, 0, 192)
self.contents.draw_text(x, y+1, 32, 32, $data_system.words.sp)
self.contents.draw_text(x+1, y, 32, 32, $data_system.words.sp)
self.contents.draw_text(sp_x, y+1, 48, 32, actor.sp.to_s, 2)
self.contents.draw_text(sp_x+1, y, 48, 32, actor.sp.to_s, 2)
if flag
self.contents.draw_text(hp_x + 49, y, 12, 32, "/", 1)
self.contents.draw_text(hp_x + 48, y+1, 12, 32, "/", 1)
self.contents.draw_text(hp_x + 60, y+1, 48, 32, actor.maxsp.to_s)
self.contents.draw_text(hp_x + 61, y, 48, 32, actor.maxsp.to_s)
end
end
# Draw "SP" text string
self.contents.font.color = system_color
self.contents.draw_text(x, y, 32, 32, $data_system.words.sp)
# Draw SP
self.contents.font.color = actor.sp == 0 ? knockout_color :
actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
self.contents.draw_text(sp_x, y, 48, 32, actor.sp.to_s, 2)
# Draw MaxSP
if flag
self.contents.font.color = normal_color
self.contents.draw_text(sp_x + 48, y, 12, 32, "/", 1)
self.contents.draw_text(sp_x + 60, y, 48, 32, actor.maxsp.to_s)
end
end
#--------------------------------------------------------------------------
# ◠ステートã®æç”»
#--------------------------------------------------------------------------
def draw_actor_state(actor, x, y, width = 120)
# å…ƒã®ãƒ¡ã‚½ãƒƒãƒ‰ã«æˆ»ã™
text = make_battler_state_text(actor, width, true)
self.contents.draw_text(x, y, width, 32, text, 1)
end
end
Credit
Credit to which ever bit of Japanese is a name in the comments, otherwise just to 66RPG.com
And mini credit to me if you're kind :D
Enjoy :D