아무도 한글로 이름 입력하는 스크립트를 안올려주셔서요.ㅠㅠ 아방스 님께서 올려주신 영문 rpg 만들기 vx에 있는 스크립트를 아주 약간만 손봤습니다. - 제가 루비언어를 모르는 관계로...ㅠㅠ 그냥 추측하면서 고쳐봤는데, 잘 되었는지 모르겠네요.ㅠ
누군가가 제대로 된 한글 이름 입력 스크립트 만들어주셨으면 합니다.^^;
#==============================================================================
# ■ Window_NameInput
#------------------------------------------------------------------------------
# 이름 입력 화면에서, 문자를 선택하는 윈도우입니다.
# 영문으로 수정하였습니다.
#==============================================================================
class Window_NameInput < Window_Base
#--------------------------------------------------------------------------
# ● 문자표
#--------------------------------------------------------------------------
ENG = [ "가","나","다","라","마",
"갸","냐","댜","랴","먀",
"거","너","더","러","머",
"겨","녀","뎌","려","며",
"고","노","도","로","모",
"교","뇨","됴","료","묘",
"구","누","누","루","무",
"규","뉴","듀","류","뮤",
"그","느","드","르","므",
"기","니","니","리","미",
"바","사","아","자","차",
"뱌","샤","야","쟈","챠",
"버","서","어","저","처",
"벼","셔","여","져","쳐",
"보","소","오","조","초",
"뵤","쇼","요","죠","쵸",
"부","수","우","주","추",
"뷰","슈","유","쥬",'OK']
TABLE = [ENG]
#--------------------------------------------------------------------------
# ● 오브젝트 초기화
# mode : 초기 입력 모드 (0 = 히라가나, 1 = 카타카나)
#--------------------------------------------------------------------------
def initialize(mode = 0)
super(88, 148, 368, 248)
@mode = mode
@index = 0
refresh
update_cursor
end
#--------------------------------------------------------------------------
# ● 문자의 취득
#--------------------------------------------------------------------------
def character
if @index < 88
return TABLE[@mode][@index]
else
return ""
end
end
#--------------------------------------------------------------------------
# ● 커서 위치 모드 변환 판정 (히라가나/카타카나)
#--------------------------------------------------------------------------
def is_mode_change
return (@index == 88)
end
#--------------------------------------------------------------------------
# ● 커서 위치 결정 판정
#--------------------------------------------------------------------------
def is_decision
return (@index == 89)
end
#--------------------------------------------------------------------------
# ● 항목을 묘화 하는 구형의 취득
# index : 항목 번호
#--------------------------------------------------------------------------
def item_rect(index)
rect = Rect.new(0, 0, 0, 0)
rect.x = index % 10 * 32 + index % 10 / 5 * 16
rect.y = index / 10 * WLH
rect.width = 32
rect.height = WLH
return rect
end
#--------------------------------------------------------------------------
# ● 리프레쉬
#--------------------------------------------------------------------------
def refresh
self.contents.clear
for i in 0..89
rect = item_rect(i)
rect.x += 2
rect.width -= 4
self.contents.draw_text(rect, TABLE[@mode][i], 1)
end
end
#--------------------------------------------------------------------------
# ● 커서의 갱신
#--------------------------------------------------------------------------
def update_cursor
self.cursor_rect = item_rect(@index)
end
#--------------------------------------------------------------------------
# ● 커서를 아래에 이동
# wrap : rack-around 허가
#--------------------------------------------------------------------------
def cursor_down(wrap)
if @index < 80
@index += 10
elsif wrap
@index -= 80
end
end
#--------------------------------------------------------------------------
# ● 커서를 위에 이동
# wrap : rack-around 허가
#--------------------------------------------------------------------------
def cursor_up(wrap)
if @index >= 10
@index -= 10
elsif wrap
@index += 80
end
end
#--------------------------------------------------------------------------
# ● 커서를 오른쪽으로 이동
# wrap : rack-around 허가
#--------------------------------------------------------------------------
def cursor_right(wrap)
if @index % 10 < 9
@index += 1
elsif wrap
@index -= 9
end
end
#--------------------------------------------------------------------------
# ● 커서를 왼쪽으로 이동
# wrap : rack-around 허가
#--------------------------------------------------------------------------
def cursor_left(wrap)
if @index % 10 > 0
@index -= 1
elsif wrap
@index += 9
end
end
#--------------------------------------------------------------------------
# ● 커서를 결정에 이동
#--------------------------------------------------------------------------
def cursor_to_decision
@index = 89
end
#--------------------------------------------------------------------------
# ● 다음의 페이지로 이동
#--------------------------------------------------------------------------
def cursor_pagedown
@mode = (@mode + 1) % TABLE.size
refresh
end
#--------------------------------------------------------------------------
# ● 전의 페이지로 이동
#--------------------------------------------------------------------------
def cursor_pageup
@mode = (@mode + TABLE.size - 1) % TABLE.size
refresh
end
#--------------------------------------------------------------------------
# ● 프레임 갱신
#--------------------------------------------------------------------------
def update
super
last_mode = @mode
last_index = @index
if Input.repeat?(Input::DOWN)
cursor_down(Input.trigger?(Input::DOWN))
end
if Input.repeat?(Input::UP)
cursor_up(Input.trigger?(Input::UP))
end
if Input.repeat?(Input::RIGHT)
cursor_right(Input.trigger?(Input::RIGHT))
end
if Input.repeat?(Input::LEFT)
cursor_left(Input.trigger?(Input::LEFT))
end
if Input.trigger?(Input::A)
cursor_to_decision
end
if Input.trigger?(Input::R)
cursor_pagedown
end
if Input.trigger?(Input::L)
cursor_pageup
end
if Input.trigger?(Input::C) and is_mode_change
cursor_pagedown
end
if @index != last_index or @mode != last_mode
Sound.play_cursor
end
update_cursor
end
end