비밀소년님이 제작하신 XP용 작은게이지 스크립트입니다.
#=================================================
# ■ Sprite_Character > 작은게이지
#-------------------------------------------------
# Author: Bimilist(비밀소년)
# Desc: 케릭터에 작은 게이지를 표시합니다.
#=================================================
class Sprite_Character < Sprite_Character
def update
super
if @_gauge_setup then
@_gauge_duration = [@_gauge_duration - 5, 0].max
@_gauge_sprite_b.x = self.x
@_gauge_sprite_b.y = self.y - self.oy
@_gauge_sprite_b.opacity = @_gauge_duration
@_gauge_sprite.x = self.x
@_gauge_sprite.y = self.y - self.oy
@_gauge_sprite.opacity = @_gauge_duration
end
end
def gauge(p)
setup_gauge if not @_gauge_setup
@_gauge_sprite.src_rect = Rect.new(0, 0, p * 30, 2)
@_gauge_duration = 255
end
def setup_gauge
dispose_gauge
@_gauge_setup = true
@_gauge_sprite = Sprite.new(self.viewport)
@_gauge_sprite.bitmap = Bitmap.new(30, 2)
@_gauge_sprite.bitmap.fill_rect(0, 0, 30, 2, Color.new(255, 255, 0))
@_gauge_sprite.ox = 15
@_gauge_sprite.oy = -1
@_gauge_sprite.z = 1000
@_gauge_sprite_b = Sprite.new(self.viewport)
@_gauge_sprite_b.bitmap = Bitmap.new(32, 4)
@_gauge_sprite_b.bitmap.fill_rect(0, 0, 32, 4, Color.new(0, 0, 0))
@_gauge_sprite_b.bitmap.fill_rect(1, 1, 30, 2, Color.new(255, 0, 0))
@_gauge_sprite_b.ox = 16
@_gauge_sprite_b.oy = 0
@_gauge_sprite_b.z = 999
end
def dispose_gauge
return if not @_gauge_setup
@_gauge_setup = false
@_gauge_sprite.dispose
@_gauge_sprite_b.dispose
end
def dispose
dispose_gauge
super
end
end
#=================================================
# ■ 작은게이지 > 커맨드사용
#-------------------------------------------------
# Author: Bimilist(비밀소년)
# Desc: 작은게이지를 커맨드에서 사용합니다.
#=================================================
class Game_Character
attr_accessor :gauge_value # 불사신 플래그
end
# 쉬운 사용으로의 수정
class Sprite_Character < Sprite_Character
def update
super
if character.methods.include?("gauge_value") and character.gauge_value != nil
gauge(character.gauge_value)
character.gauge_value = nil
end
end
end
# 케릭터 아이디경우 -1 대입시 주인공이 적용됩니다.
# 수치는 0.00~1.00 사이의 수 입니다. 1.00이 꽉찬 게이지.
def 작은게이지_표시! (케릭터아이디, 생명지수)
case 케릭터아이디
when -1 # 플레이어
케릭터 = $game_player
when 0
return # 0번은 호출하시면 안됩니다.
else # 특정의 이벤트
케릭터 = $game_map.events[케릭터아이디]
end
케릭터.gauge_value = 생명지수
end
이 스크립트를 MV에서도 사용 가능하게 플러그인으로 변환할 수 있다면 좋겠습니다.