이벤트 스크립트 창에
hud(true)
이걸 적으니까 스크립트를 불러오는 중에 Syntax오류가 발생했다고 오류 메시지만 뜹니다.
사용한 스크립트는 다음과 같습니다.
--------------------------------------------------------------------
# A list of colors that you may use to configure the font and gauge
################################################################################
# #
# ~~~~~ Copyright 2009 SojaBird ~~~~~ #
# #
################################################################################
# To toggle the hud's display, just do a callscript "hud"
# To set the hud's display, just do a callscript "hud(true)" or "hud(false)"
module HUD_HP_MP_EXP_NAME_FACE_LEVEL
HUD_WIDTH = 126 # The width of the HUD (when 126, face will be drawn)
FACE_OPACITY = 100 # The opacity of the background face (when HUD_WIDTH = 126)
BG_DISPLAY = true # Show or hide the backgroundwindow [true/false]
EXP_NAME = "Exp" # What should be displayed for the EXP
ACTOR_ID = 0 # Id of actor to show data of (actor1=0, actor2=1...actorN=N-1)
HIDE = true # Hide if player is beneath the HUD [true/false]
OPACITY = 100 # Opacity when hidden [0-255]
HUD_START_DISPLAY = true # Wheter to display the HUD at start [true/false]
CYCLE = true # Wheter to enable to cyle through actors with L&R buttons
end
################################################################################
def hud(arg = nil)
$game_system.hud_display = !$game_system.hud_display if arg == nil
$game_system.hud_display = arg if arg != nil
end
################################################################################
class Window_HUD_HP_MP_EXP_NAME_FACE_LEVEL < Window_Base
include HUD_HP_MP_EXP_NAME_FACE_LEVEL
attr_reader :index
def initialize(index)
@index = index
super(0, 0, HUD_WIDTH, WLH * 4 + 32)
self.visible = $game_system.hud_display
self.opacity = OPACITY
self.opacity = 0 if !BG_DISPLAY
@actor = $game_party.members[@index]
@width = HUD_WIDTH - 32
hide_status
refresh
end
def refresh
contents.clear
@hp = @actor.hp
@mp = @actor.mp
@exp = @actor.exp
@name = @actor.name
@level = @actor.level
@face = [@actor.face_name, @actor.face_index]
draw_actor_face_picture(@actor, 0, 0, FACE_OPACITY) if HUD_WIDTH == 126
draw_actor_name_and_level(@actor, 0, WLH * 0)
draw_actor_hp(@actor, 0, WLH * 1, @width)
draw_actor_mp(@actor, 0, WLH * 2, @width)
draw_actor_exp(@actor, 0, WLH * 3, @width)
end
def hide_status
if HIDE == true
if $game_player.screen_x + 16 > self.x and
$game_player.screen_y + 4 > self.y and
$game_player.screen_x - 16 < self.x + self.width and
$game_player.screen_y - 28 < self.y + self.height
self.opacity = OPACITY if BG_DISPLAY
self.contents_opacity = OPACITY
else
self.opacity = 255 if BG_DISPLAY
self.contents_opacity = 255
end
end
end
def draw_actor_face_picture(actor, x, y, opacity, size = 94)
bitmap = Cache.face(actor.face_name)
rect = Rect.new(0, 0, 0, 0)
rect.x = actor.face_index % 4 * 96 + (96 - size) / 2
rect.y = actor.face_index / 4 * 96 + (96 - size) / 2
rect.width = size
rect.height = size
self.contents.blt(x, y, bitmap, rect, opacity)
bitmap.dispose
end
def draw_actor_name_and_level(actor, x, y)
self.contents.font.color = hp_color(actor)
self.contents.draw_text(x, y, @width - 32 - 24, WLH, actor.name)
self.contents.font.color = system_color
x = @width / 2
width = (@width.to_f / 2) / (32 + 24)
self.contents.draw_text(x, y, width * 32, WLH, Vocab::level_a)
self.contents.font.color = normal_color
self.contents.draw_text(x + width * 32, y, width * 24, WLH, actor.level, 2)
end
def draw_actor_exp(actor, x, y, width)
s1 = actor.exp_s
s2 = actor.next_rest_exp_s + s1
if s1.is_a? String or s2.is_a? String
s1 = actor.exp
s2 = actor.exp
end
draw_actor_exp_gauge(actor, x, y, s1, s2, width)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 30, WLH, EXP_NAME)
self.contents.font.color = normal_color
last_font_size = self.contents.font.size
xr = x + width
if width < 120
self.contents.draw_text(xr - 44, y, 44, WLH, s1, 2)
else
self.contents.draw_text(xr - 99, y, 44, WLH, s1, 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, s2, 2)
end
end
def draw_actor_exp_gauge(actor, x, y, s1, s2, width)
gw = width * s1 / s2
gc1 = text_color(31)
gc2 = text_color(27)
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
def update
self.visible = $game_system.hud_display
return if !self.visible
if @hp != @actor.hp or
@mp != @actor.mp or
@exp != @actor.exp or
@name != @actor.name or
@level != @actor.level or
@face != [@actor.face_name, @actor.face_index]
refresh
end
hide_status
end
end
#------------------------------------------------------------
# * Scene_Map: Attach HUD to map
#------------------------------------------------------------
class Scene_Map < Scene_Base
alias start_hmexp_name_face_lvl start
alias terminate_hmexp_name_face_lvl terminate
alias update_hmexp_name_face_lvl update
def start
start_hmexp_name_face_lvl
@index = HUD_HP_MP_EXP_NAME_FACE_LEVEL::ACTOR_ID
new_hud
end
def terminate
@hp_mp_exp_name_face_hud.dispose
terminate_hmexp_name_face_lvl
end
def update
update_hmexp_name_face_lvl
@hp_mp_exp_name_face_hud.update
return if !HUD_HP_MP_EXP_NAME_FACE_LEVEL::CYCLE
return if !@hp_mp_exp_name_face_hud.visible
if Input.trigger?(Input::R)
if @index == $game_party.members.size - 1
@index = 0
else
@index += 1
end
elsif Input.trigger?(Input::L)
if @index == 0
@index = $game_party.members.size - 1
else
@index -= 1
end
end
new_hud if @index != @hp_mp_exp_name_face_hud.index
end
def new_hud
@hp_mp_exp_name_face_hud.dispose if !@hp_mp_exp_name_face_hud.nil?
@hp_mp_exp_name_face_hud = Window_HUD_HP_MP_EXP_NAME_FACE_LEVEL.new(@index)
end
end
#------------------------------------------------------------
# * Game_System: Check for display
#------------------------------------------------------------
class Game_System
alias hud_initialize initialize
attr_accessor :hud_display
def initialize
hud_initialize
@hud_display = HUD_HP_MP_EXP_NAME_FACE_LEVEL::HUD_START_DISPLAY
end
end
제가 제대로 적용한 것이 맞나요?