#==============================================================================
# ■ Window_NameInput
#------------------------------------------------------------------------------
# 이름 입력 화면에서, 문자를 선택하는 윈도우입니다.
#==============================================================================
class Window_NameInput < Window_Base
#--------------------------------------------------------------------------
# ● 문자표
#--------------------------------------------------------------------------
HIRAGANA = [ '가','갸','거','겨','고', '교','구','규','그','기',
'냐','냐','너','녀','노', '뇨','누','뉴','느','니',
'다','댜','더','뎌','도', '됴','두','듀','드','디',
'라','랴','러','려','로', '료','루','류','르','리',
'마','먀','머','며','모', '묘','무','뮤','므','미',
'바','뱌','버','벼','보', '뵤','부','뷰','브','비',
'사','샤','서','셔','소', '쇼','수','슈','스','시',
'아','야','어','여','오', '요','우','유','으','이',
'자','쟈','저','져','조', '죠','주','쥬','next','OK']
KATAKANA = [ '차','챠','처','쳐','초', '쵸','추','츄','츠','치',
'카','캬','커','켜','코', '쿄','쿠','큐','크','키',
'타','탸','터','텨','토', '툐','투','튜','트','티',
'파','퍄','퍼','펴','포', '표','푸','퓨','프','피',
'하','햐','허','혀','호', '효','후','휴','흐','히',
'반','즈','지','칼','랄', '엔','에','개','게','알',
'먼','당','테','스','몽', '랜','달','펜','간','장',
'델','질','텔','죤','존', '볼','곤','벨','안','얀',
'골','든','검','심','헌', '게','임','탈','next','OK']
hangul = [ '레','시','온','의','한', '글','화','방','스','에',
'올','림','커','켜','코', '쿄','쿠','큐','크','키',
'타','탸','터','텨','토', '툐','투','튜','트','티',
'파','퍄','퍼','펴','포', '표','푸','퓨','프','피',
'하','햐','허','혀','호', '효','후','휴','흐','히',
'반','즈','지','칼','랄', '엔','에','개','게','알',
'먼','당','테','스','몽', '랜','달','펜','간','장',
'델','질','텔','죤','존', '볼','곤','벨','안','얀',
'골','든','검','심','헌', '게','임','탈','next','OK']
TABLE = [HIRAGANA, KATAKANA, hangul]
#--------------------------------------------------------------------------
# ● 오브젝트 초기화
# 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
=======================================================================================================
위에 제가 편집한 스크립트를 사용하시려면 아래와 같이 하여주시기 바랍니다.
아마 rpg vx를 최신 버전으로 업그레이드 시키셨다면, 스크립트에서 ' ▼소재'부분에 'Windows_NameInput_ENG'라는 스크립트를 보실 것입니다. 그걸 삭제해주세요.
그 다음, '▼윈도우' 부분으로 가주세요. 그곳에 가면 'Windows_NameInput'이라고 적혀져 있을 것입니다. 거기 있는 내용을 다 지우시고, 제가 위에 올린 스크립트를 복사해서 붙여넣기 해주시면 됩니다.
저번에 올린 스크립트는 한글글자수가 너무 적어서 불편했는데, 요번에는 한글 숫자를 늘렸습니다.
Loading images...
ps. 약간만 관찰하시면 아시겠지만,
HIRAGANA = [ '가','갸','거','겨','고', '교','구','규','그','기',
'냐','냐','너','녀','노', '뇨','누','뉴','느','니',
'다','댜','더','뎌','도', '됴','두','듀','드','디',
'라','랴','러','려','로', '료','루','류','르','리',
'마','먀','머','며','모', '묘','무','뮤','므','미',
'바','뱌','버','벼','보', '뵤','부','뷰','브','비',
'사','샤','서','셔','소', '쇼','수','슈','스','시',
'아','야','어','여','오', '요','우','유','으','이',
'자','쟈','저','져','조', '죠','주','쥬','next','OK']
KATAKANA = [ '차','챠','처','쳐','초', '쵸','추','츄','츠','치',
'카','캬','커','켜','코', '쿄','쿠','큐','크','키',
'타','탸','터','텨','토', '툐','투','튜','트','티',
'파','퍄','퍼','펴','포', '표','푸','퓨','프','피',
'하','햐','허','혀','호', '효','후','휴','흐','히',
'반','즈','지','칼','랄', '엔','에','개','게','알',
'먼','당','테','스','몽', '랜','달','펜','간','장',
'델','질','텔','죤','존', '볼','곤','벨','안','얀',
'골','든','검','심','헌', '게','임','탈','next','OK']
hangul = [ '레','시','온','의','한', '글','화','방','스','에',
'올','림','커','켜','코', '쿄','쿠','큐','크','키',
'타','탸','터','텨','토', '툐','투','튜','트','티',
'파','퍄','퍼','펴','포', '표','푸','퓨','프','피',
'하','햐','허','혀','호', '효','후','휴','흐','히',
'반','즈','지','칼','랄', '엔','에','개','게','알',
'먼','당','테','스','몽', '랜','달','펜','간','장',
'델','질','텔','죤','존', '볼','곤','벨','안','얀',
'골','든','검','심','헌', '게','임','탈','next','OK']
TABLE = [HIRAGANA, KATAKANA, hangul]
여기서 table에 이름 몇개를 더해주고, 그 이름에 원하는 한글들을 적어주면, 자신이 원하는 양만큼 한글 입력이 가능하겠죠?^^
예를 들어서 한글을 몇개 더 적고 싶다 싶으면,
TABLE = [HIRAGANA, KATAKANA, hangul, Avans]
'Avans'라는 테이블을 하나 더 만들었습니다.
그리고
hangul = [ '레','시','온','의','한', '글','화','방','스','에',
'올','림','커','켜','코', '쿄','쿠','큐','크','키',
'타','탸','터','텨','토', '툐','투','튜','트','티',
'파','퍄','퍼','펴','포', '표','푸','퓨','프','피',
'하','햐','허','혀','호', '효','후','휴','흐','히',
'반','즈','지','칼','랄', '엔','에','개','게','알',
'먼','당','테','스','몽', '랜','달','펜','간','장',
'델','질','텔','죤','존', '볼','곤','벨','안','얀',
'골','든','검','심','헌', '게','임','탈','next','OK']
이거 밑에다가
Avans = [ '아','방','슈','트','랏', '슈','타','이','의','대',
'모','험','커','켜','코', '쿄','쿠','큐','크','키',
'타','탸','터','텨','토', '툐','투','튜','트','티',
'파','퍄','퍼','펴','포', '표','푸','퓨','프','피',
'하','햐','허','혀','호', '효','후','휴','흐','히',
'반','즈','지','칼','랄', '엔','에','개','게','알',
'먼','당','테','스','몽', '랜','달','펜','간','장',
'델','질','텔','죤','존', '볼','곤','벨','안','얀',
'골','든','검','심','헌', '게','임','탈','next','OK']
이런 식으로 추가해주시면 됩니다.^^
ps2. 참고로 문장 삽입해서 같이 이용하실 때, 'c[n]'과 같은 명령어는 사용하지 말아주세요. 제가 올린 스크립트뿐만 아니라, 기본으로 되어 있는 스크립트에서 이름 입력할 때도, 같이 사용하니까 에러나더라고요-_-;;; 저도 이런 에러가 왜 발생하는지 찾는 과정에서 위에 처럼 스크립트 변경하는 방법을 알게 된거고요 ㅋㅋ