출처 : http://falcaorgss.wordpress.com/
이대로 실행하면 hp, mp, exp가 현재 몇인지 숫자가 보이는데,
숫자 없이 바만 보이도록 만들고 싶습니다.. 스크립트 제작자 님께서는 모니터링하지 않은지 몇 년이 지나셨더라고요
혹시 도움 주실 분 있으신가요?
class Sprite_LifeBars < Sprite
include PearlBars
def initialize(viewport, character)
super(viewport)
@character = character
self.bitmap = Bitmap.new(boss? ? 640 : 300, 120)
@old_hp = battler.hp
@old_mp = battler.mp
@erasetimer = 180
@state_checker = []
@buff_checker = []
refresh_contents
@view = viewport
update
end
def boss?
return true if battler.is_a?(Game_Enemy) && battler.boss_hud
return false
end
def battler
return @character.battler
end
def refresh_contents
self.bitmap.clear
self.bitmap.font.size = 19
@erasetimer = 180
self.opacity = 255
if battler.is_a?(Game_Actor)
@old_exp = battler.exp
@old_tp = battler.tp
self.x = ScreenPos_X
self.y = ScreenPos_Y
h = HP_BarDimentions ; m = MP_BarDimentions ; e = EX_BarDimentions
if PearlBars::ActorsHp != ""
@pimg = Cache.picture(PearlBars::ActorsHp) if @pimg.nil?
@bimg = Cache.picture(PearlBars::ActorsBack) if @bimg.nil?
@pimp = Cache.picture(PearlBars::ActorsMp) if @pimp.nil?
PearlKernel.image_hp(self.bitmap, h[0] + 4, h[1],@bimg,
@pimg, battler,true)
PearlKernel.image_mp(self.bitmap, m[0] + 4, m[1], @bimg, @pimp, battler)
if PearlBars::ActorsExp != ""
@piexp = Cache.picture(PearlBars::ActorsExp) if @piexp.nil?
PearlKernel.image_exp(self.bitmap,e[0] + 4,e[1],@bimg,@piexp, battler)
end
else
hc = HP_Color ; mc = MP_Color ; ec = EX_Color
PearlKernel.draw_hp(self.bitmap,battler, h[0], h[1], h[2], h[3], hc)
PearlKernel.draw_mp(self.bitmap,battler, m[0], m[1], m[2], m[3], mc)
PearlKernel.draw_exp(self.bitmap,battler, e[0], e[1], e[2], e[3], ec)
end
else battler.is_a?(Game_Enemy)
if boss?
self.x = BeScreenPos_X
self.y = BeScreenPos_Y
h = BHP_BarDimentions ; hc = BHP_Color
if PearlBars::BossEne != ""
@n_img = Cache.picture(PearlBars::BossEne) if @n_img.nil?
@n_back = Cache.picture(PearlBars::BossBack) if @n_back.nil?
PearlKernel.image_hp(self.bitmap, h[0] + 4, h[1],@n_back,
@n_img, battler,true)
else
PearlKernel.draw_hp(self.bitmap,battler, h[0],h[1],h[2], h[3],hc,true)
end
else
self.x = NeScreenPos_X
self.y = NeScreenPos_Y
h = EHP_BarDimentions ; hc = EHP_Color
if PearlBars::NormalEne != ""
@n_img = Cache.picture(PearlBars::NormalEne) if @n_img.nil?
@n_back = Cache.picture(PearlBars::NormalBack) if @n_back.nil?
PearlKernel.image_hp(self.bitmap, h[0] + 4, h[1],@n_back,
@n_img, battler,true)
else
PearlKernel.draw_hp(self.bitmap,battler,h[0],h[1],h[2], h[3], hc,true)
end
end
end
end
def update
super
if battler.nil?
dispose
return
end
if @old_hp != battler.hp
refresh_contents
@old_hp = battler.hp
end
if @old_mp != battler.mp
refresh_contents
@character.actor.apply_usability if @character.is_a?(Game_Player)
@old_mp = battler.mp
end
if battler.is_a?(Game_Actor)
if @old_exp != battler.exp
@old_exp = battler.exp
refresh_contents
end
if @old_tp != battler.tp
@old_tp = battler.tp
@character.actor.apply_usability if @character.is_a?(Game_Player)
refresh_contents
end
elsif battler.is_a?(Game_Enemy)
if boss?
dispose if battler.dead?
else
if @erasetimer > 0
@erasetimer -= 1
self.opacity -= 10 if @erasetimer <= 25
@states.opacity = self.opacity if !@states.nil?
dispose if @erasetimer == 0
end
end
update_enemy_status_icons
end
end
# 적 상태 아이콘 엔진
def update_enemy_status_icons
display_status? ? create_states_icons : dispose_state_icons
4.times.each {|i| refresh_states_icons if
@state_checker[i] != battler.state_icons[i]}
2.times.each {|i| refresh_states_icons if
@buff_checker[i] != battler.buff_icons[i]}
end
def display_status?
return true if !battler.state_icons.empty?
return true if !battler.buff_icons.empty?
return false
end
def create_states_icons
return if disposed?
return if !@states.nil?
@states = ::Sprite.new(@view)
@states.bitmap = Bitmap.new(144, 24)
@n_back.nil? ? y_plus = BHP_BarDimentions[3] : y_plus = @n_back.height
pos = [BeScreenPos_X, BeScreenPos_Y, y_plus] if boss?
pos = [NeScreenPos_X, NeScreenPos_Y, y_plus] if !boss?
@states.x = pos[0] + 10
@states.y = pos[1] + pos[2] + 24
@states.zoom_x = 0.8
@states.zoom_y = 0.8
refresh_states_icons
end
def dispose_state_icons
return if @states.nil?
@states.bitmap.dispose
@states.dispose
@states = nil
end
def refresh_states_icons
4.times.each {|i| @state_checker[i] = battler.state_icons[i]}
2.times.each {|i| @buff_checker[i] = battler.buff_icons[i]}
return if @states.nil?
@states.bitmap.clear
x = 0
battler.state_icons.each {|icon| draw_icon(icon, x, 0) ; x += 24
break if x == 96}
count = 0
battler.buff_icons.each {|icon| draw_icon(icon, x, 0) ; x += 24 ; count += 1
break if count == 2}
end
def draw_icon(icon_index, x, y, enabled = true)
bit = Cache.system("Iconset")
rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
@states.bitmap.blt(x, y, bit, rect, enabled ? 255 : 150)
end
def dispose
self.bitmap.dispose
dispose_state_icons
super
end
end
- 질문할 내용이 이 게시판이나 강좌에 이미 있는지 확인합니다.
- 하나의 게시물에는 하나의 질문만 합니다.
- 제목은 질문의 핵심 내용으로 작성합니다.
- 질문 내용은 답변자가 쉽게 이해할 수 있도록 최대한 상세하게 작성합니다.
- 스크립트의 전문이 필요할 경우 txt 파일 등으로 첨부해 주시기 바랍니다.
- 답변받은 게시물은 삭제하지 않습니다.
- 답변이 완료된 경우 해당 답변해주신 분들께 감사의 댓글을 달아줍니다.
- 처음 오신 분들은 공지 게시물을 반드시 읽어주세요!
※ 미준수시 사전경고 없이 게시물을 삭제합니다.