HUD

맵명을 표시하는 스크립트 한글로 번역한것

by 백호 posted Feb 21, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
흠..메인위에 넣으시고요
오류날시에는 코멘트(리플) 달아주세요^^


# ▼▲▼ XRXS20. 맵명 표시 윈도우 ver.1.04 ▼▲▼
# by , 앵아 재흙, fukuyama
#
# 맵명의 선두에 피리어드 「.」이 있으면(자) 맵명을 표시하지 않는다.
#
module XRXS20_Config
# true (이)라면 전투후 , 맵으로 돌아왔을 경우도 표시한다
SCENE_BATTLE_TO_SCENE_MAP = true
end

#==============================================================================
# ■ Window_Map_Name
#------------------------------------------------------------------------------
#  맵명을 표시하는 윈도우입니다.
#==============================================================================
class Window_Map_Name < Window_Base
attr_accessor :text

#--------------------------------------------------------------------------
# ● 오브젝트 초기
#--------------------------------------------------------------------------
def initialize
super(8, -8, 640, 64)
self.contents = Bitmap.new(self.width - 32, self.height - 32)
@align = 2
@showing_time = -1
@text_color = Color.new(255, 255, 0, 255) # 지명:묘사 문자색
end
#--------------------------------------------------------------------------
# ● 텍스트 설정
# text : 윈도우에 표시하는 캐릭터 라인
# align : alignment (0..왼쪽 가지런히 해1..centering ,2..오른쪽맞춤)
#--------------------------------------------------------------------------
def set_text(text, align = 2)
# 텍스트와 alignment의 적어도 한편이 전회와 다른 경우
if text != @text or align != @align
@text = text
@align = align
if text.empty? or text =~ /^./
@showing_time = -1
self.contents_opacity = 0
self.visible = false
else
@showing_time = 100
self.contents_opacity = 255
self.visible = true
self.contents.clear
x = 4
y = 0
width = self.contents.width - 8
str = "-"+@text+"-"
self.contents.font.color = Color.new( 0, 0, 0, 192)
self.contents.draw_text(x+2, y+2, width, 32, str, @align)
self.contents.font.color = Color.new( 64, 64, 64, 192)
self.contents.draw_text(x-1, y-1, width, 32, str, @align)
self.contents.draw_text(x+1, y-1, width, 32, str, @align)
self.contents.draw_text(x-1, y+1, width, 32, str, @align)
self.contents.draw_text(x+1, y+1, width, 32, str, @align)
self.contents.font.color = @text_color
self.contents.draw_text(x, y, width, 32, str, @align)
end
end
end
#--------------------------------------------------------------------------
# ● 재묘화
#--------------------------------------------------------------------------
def update
return if @showing_time < 0
@showing_time -= 1
if @showing_time < 16
# 페이드아웃 하기 시작하는
self.contents_opacity = @showing_time * 16
if @showing_time == 0
self.visible = false
self.contents.clear
return
end
end
#이 부분을 지워주면 맵 이름이 사라지지 않습니다.
end
end
#==============================================================================
# ■ Scene_Map
#==============================================================================
class Scene_Map
def initialize_map_name_window(text = nil)
if @map_name_window.nil?
@map_name_window = Window_Map_Name.new
@map_name_window.opacity = 0
@map_name_window.text = text if not text.nil?
end
end
#--------------------------------------------------------------------------
# ● 메인 처리
#--------------------------------------------------------------------------
alias xrxs20_main main
def main
# 지명 윈도우를 작성
initialize_map_name_window
# 되돌리는
xrxs20_main
# 지명 윈도우를 해방
@map_name_window.dispose
end
#--------------------------------------------------------------------------
# ● 프레임 갱신
#--------------------------------------------------------------------------
alias xrxs20_update update
def update
# 지명 윈도우의 갱신
@map_name_window.set_text($game_map.name)
@map_name_window.update
xrxs20_update
end
end
#==============================================================================
# ■ Game_Map
#==============================================================================
class Game_Map
#--------------------------------------------------------------------------
# ● 맵명을 취득
#--------------------------------------------------------------------------
def name
$map_infos = load_data("Data/MapInfos.rxdata") if $map_infos.nil?
$map_infos[@map_id].name
end
end
#==============================================================================
# ■ Scene_Battle
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ● 메인 처리
#--------------------------------------------------------------------------
alias xrxs20_main main
def main
xrxs20_main
if $scene.is_a?(Scene_Map) and (not XRXS20_Config::SCENE_BATTLE_TO_SCENE_MAP)
$scene.initialize_map_name_window($game_map.name)
end
end
end