조회 수 1523 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
라이센스 기타 라이센스
출처 본문삽입
강의종류 텍스트
사용/적용순서 main위에 붙여넣기 하시면됌

예예예!!

이것이바로 한글자씩 나오는 스크립트 xp용!

이 스크립트는 vx의 덱스트와 흡사하도록 만들어졋습니다 그러니까

vx의 덱스트기능을 사용할수 있는것이죠

"\!"=문장에서 한번더 스페이스바를 누를때까지 대기

"\."=한번씩당"0.25"초간 문장대기

"\"=한번씩당"1"초간 대기

뭐...제가아는것은 이정도이고요 알아서 꺠우쳐서쓰시길..

아래부터 복사해서 쓰시면됍니다

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

#==============================================================================
# ■ Window_Message_Plus v3.1 수정버전:psh4989(네이버 wmftit)
# 128x128 픽쳐 수정 : killarot(네이버 dust_mite)
#==============================================================================
class Window_Message < Window_Selectable
# 한 글자씩 묘사
DEFAULT_TYPING_ENABLE = true # false로 하면(자) 순간 표시
#--------------------------------------------------------------------------
# ● 오브젝트 초기화
#--------------------------------------------------------------------------
alias xrxs9_initialize initialize
def initialize
xrxs9_initialize
# 재생 사운드명이 없는 경우는""으로 하는
if $soundname_on_speak == nil then
$soundname_on_speak = ""
end
# 외자 파일 패스 설정
$gaiji_file = "./Graphics/Gaiji/sample.png"
# 외자 데이터 읽기
if FileTest.exist?($gaiji_file)
@gaiji_cache = Bitmap.new($gaiji_file)
else
@gaigi_cache = nil
end
# 문자 투과 전송용 버퍼
@opacity_text_buf = Bitmap.new(32, 32)
end
#--------------------------------------------------------------------------
# ● 메세지 종료 처리
#--------------------------------------------------------------------------
alias xrxs9_terminate_message terminate_message
def terminate_message
if @name_window_frame != nil
@name_window_frame.dispose
@name_window_frame = nil
end
if @name_window_text != nil
@name_window_text.dispose
@name_window_text = nil
end
xrxs9_terminate_message
end
#--------------------------------------------------------------------------
# ● 리프레쉬
#--------------------------------------------------------------------------
def refresh
# 초기화
self.contents.clear
self.contents.font.color = normal_color
self.contents.font.size = Font.default_size
@x = @y = @max_x = @max_y = @indent = @lines = 0
@face_indent = 0
@opacity = 255
@cursor_width = 0
@write_speed = 0
@write_wait = 0
@mid_stop = false
@face_file = nil
# @popchar 가 -2 의 경우 , 표준 위치. -1의 경우 , 문자 센터.
# 0이상의 경우 캐릭터 팝. 0(은)는 주인공 ,1이후는 이벤트.
@popchar = -2
# 선택사항이라면 인덴트를 실시하는
if $game_temp.choice_start == 0
@x = 8
end
# 표시 기다리는 메세지가 있는 경우
if $game_temp.message_text != nil
@now_text = $game_temp.message_text
# 얼굴 표시 지정\F이 있을까?
if (/\A\\[Ff]\[(.+?)\]/.match(@now_text))!=nil then
# 얼굴 그라를 묘화
@face_file = $1 + ".png"
self.contents.blt(0, 1, RPG::Cache.picture(@face_file), Rect.new(0, 0, 128, 128))
# 전행 128픽셀의 인덴트를 넣는다.
@x = @face_indent = 128
@now_text.gsub!(/\\[Ff]\[(.*?)\]/) { "" }
end
# 제어 문자 처리
begin
last_text = @now_text.clone
# \V를 독자 루틴으로 변경(추가 부분)
@now_text.gsub!(/\\[Vv]\[([IiWwAaSs]?)([0-9]+)\]/) { convart_value($1, $2.to_i) }
end until @now_text == last_text
@now_text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
$game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
end
# \name이 있을까?
name_window_set = false
if (/\\[Nn]ame\[(.+?)\]/.match(@now_text)) != nil
# 값을 설정
name_window_set = true
name_text = $1
# \name[]부분을 삭제
@now_text.sub!(/\\[Nn]ame\[(.*?)\]/) { "" }
end
# 윈도우 위치 판정
if (/\\[Pp]\[([-1,0-9]+)\]/.match(@now_text))!=nil then
@popchar = $1.to_i
if @popchar == -1
@x = @indent = 48
@y = 4
end
@now_text.gsub!(/\\[Pp]\[([-1,0-9]+)\]/) { "" }
end
# 윈도우폭의 취득
@max_choice_x = 0
if @popchar >= 0
@text_save = @now_text.clone
@max_x = 0
@max_y = 4
for i in 0..3
line = @now_text.split(/\n/)[3-i]
@max_y -= 1 if line == nil and @max_y <= 4-i
next if line == nil
line.gsub!(/\\\w\[(\w+)\]/) { "" }
cx = contents.text_size(line).width
@max_x = cx if cx > @max_x
if i >= $game_temp.choice_start
@max_choice_x = cx if cx > @max_choice_x
end
end
self.width = @max_x + 32 + @face_indent
self.height = (@max_y - 1) * 32 + 64
@max_choice_x -= 68
@max_choice_x -= @face_indent*216/128
else
@max_x = self.width - 32 - @face_indent
for i in 0..3
line = @now_text.split(/\n/)[i]
next if line == nil
line.gsub!(/\\\w\[(\w+)\]/) { "" }
cx = contents.text_size(line).width
if i >= $game_temp.choice_start
@max_choice_x = cx if cx > @max_choice_x
end
end
@max_choice_x += 8
end
# 선택사항이라면 커서의 폭을 갱신
@cursor_width = 0
#if @lines >= $game_temp.choice_start
# @cursor_width = [@cursor_width, @max_choice_x - @face_indent].max
#end
# 편의상 ,"\\\\" 을 "\000" 에 변환
@now_text.gsub!(/\\\\/) { "\000" }
# "\\C" 을 "\001" 에 ,"\\G" 를 "\002" 에 ,
# "\\S" 를 "\003" 에 ,"\\A" 를 "\004" 에 변환
@now_text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
@now_text.gsub!(/\\[Gg]/) { "\002" }
@now_text.gsub!(/\\[Ss]\[([0-9]+)\]/) { "\003[#{$1}]" }
@now_text.gsub!(/\\[Aa]\[(.*?)\]/) { "\004[#{$1}]" }
@now_text.gsub!(/\\[.]/) { "\005" }
@now_text.gsub!(/\\[|]/) { "\006" }
# 경합 하면(자) 무엇인가 거북하기 때문에 ,\016이후를 사용하는
@now_text.gsub!(/\\[>]/) { "\016" }
@now_text.gsub!(/\\[<]/) { "\017" }
@now_text.gsub!(/\\[!]/) { "\020" }
@now_text.gsub!(/\\[~]/) { "\021" }
@now_text.gsub!(/\\[Ee]\[([0-9]+)\]/) { "\022[#{$1}]" }
# 인덴트 설정(추가 부분)
@now_text.gsub!(/\\[Ii]/) { "\023" }
# 텍스트 투과율 지정(추가 부분)
@now_text.gsub!(/\\[Oo]\[([0-9]+)\]/) { "\024[#{$1}]" }
# 텍스트 사이즈 지정(추가 부분)
@now_text.gsub!(/\\[Hh]\[([0-9]+)\]/) { "\025[#{$1}]" }
# 공백 삽입(추가 부분)
@now_text.gsub!(/\\[Bb]\[([0-9]+)\]/) { "\026[#{$1}]" }
# 루비 표시(추가 부분)
@now_text.gsub!(/\\[Rr]\[(.*?)\]/) { "\027[#{$1}]" }
# 여기서 일단 윈도우 위치 갱신
reset_window
# \name이 있을까?
if name_window_set
# 오프셋(offset) 위치
off_x = 0
off_y = -10
# 범위만 윈도우의 작성(margin를 2 로 설정)
space = 2
x = self.x + off_x - space / 2
y = self.y + off_y - space / 2
w = self.contents.text_size(name_text).width + 8 + space
h = 26 + space
@name_window_frame = Window_Frame.new(x, y, w, h)
@name_window_frame.z = self.z + 1
# 의사적인 공중 문자 묘사 윈도우를 작성
x = self.x + off_x + 4
y = self.y + off_y
@name_window_text = Air_Text.new(x, y, name_text)
@name_window_text.z = self.z + 2
end
end
# 윈도우를 갱신
reset_window
# 선택사항의 경우
if $game_temp.choice_max > 0
@item_max = $game_temp.choice_max
self.active = true
self.index = 0
end
# 수치 입력의 경우
if $game_temp.num_input_variable_id > 0
digits_max = $game_temp.num_input_digits_max
number = $game_variables[$game_temp.num_input_variable_id]
@input_number_window = Window_InputNumber.new(digits_max)
@input_number_window.number = number
@input_number_window.x = self.x + 8
@input_number_window.y = self.y + $game_temp.num_input_start * 32
end
end
#--------------------------------------------------------------------------
# ● 프레임 갱신
#--------------------------------------------------------------------------
def update
super
# 용명의 경우
if @fade_in
self.contents_opacity += 24
if @input_number_window != nil
@input_number_window.contents_opacity += 24
end
if self.contents_opacity == 255
@fade_in = false
end
return
end
@now_text = nil if @now_text == "" # 변환
# 표시 기다리는 메세지가 있는 경우
if @now_text != nil and @mid_stop == false
if @write_wait > 0
@write_wait -= 1
return
end
text_not_skip = DEFAULT_TYPING_ENABLE
while true
# 최대 x y 의 보존.
@max_x = @x if @max_x < @x
@max_y = @y if @max_y < @y
# c 에 1 문자를 취득 (문자를 취득할 수 없게 될 때까지 루프)
if (c = @now_text.slice!(/./m)) != nil
# \\ 의 경우
if c == "\000"
# 본래의 문자에 되돌리는
c = "\\"
end
# \C[n] 의 경우
if c == "\001"
# 문자색을 변경
@now_text.sub!(/\[([0-9]+)\]/, "")
color = $1.to_i
if color >= 0 and color <= 7
self.contents.font.color = text_color(color)
if @opacity != nil
color = self.contents.font.color
self.contents.font.color = Color.new(color.red, color.green, color.blue, color.alpha * @opacity / 255)
end
end
# 다음의 문자에
c = ""
end
# \G 의 경우
if c == "\002"
# 골드 윈도우를 작성
if @gold_window == nil and @popchar <= 0
@gold_window = Window_Gold.new
@gold_window.x = 560 - @gold_window.width
if $game_temp.in_battle
@gold_window.y = 192
else
@gold_window.y = self.y >= 128 ? 32 : 384
end
@gold_window.opacity = self.opacity
@gold_window.back_opacity = self.back_opacity
end
# 다음의 문자에
c = ""
end
# \S[n] 의 경우
if c == "\003"
# 문자색을 변경
@now_text.sub!(/\[([0-9]+)\]/, "")
speed = $1.to_i
if speed >= 0 and speed <= 19
@write_speed = speed
end
# 다음의 문자에
c = ""
end
# \A[soundname] 의 경우
if c == "\004"
# 재생 파일을 변경하기 위한 준비
@now_text.sub!(/\[(.*?)\]/, "")
buftxt = $1.dup.to_s
# 재생 파일명에"/"가 있을까?
if buftxt.match(/\//) == nil and buftxt != "" then
# 없으면"Audio/SE/"을 결합하는
$soundname_on_speak = "Audio/SE/" + buftxt
else
# 있으면 그대로 카피
$soundname_on_speak = buftxt.dup
end
# 다음의 문자에
c = ""
elsif c == "\004"
# 다음의 문자에
c = ""
end
# \. 의 경우
if c == "\005"
@write_wait += 5
c = ""
end
# \| 의 경우
if c == "\006"
@write_wait += 20
c = ""
end
# \> 의 경우
if c == "\016"
text_not_skip = false
c = ""
end
# \<의 경우
if c == "\017"
text_not_skip = true
c = ""
end
# \!의 경우
if c == "\020"
@mid_stop = true
c = ""
end
# \~의 경우
if c == "\021"
terminate_message
return
end
# \I의 경우(추가 부분)
if c == "\023"
# 지금의@x를 인덴트 위치로 설정
@indent = @x
c = ""
end
# \O의 경우(추가 부분)
if c == "\024"
@now_text.sub!(/\[([0-9]+)\]/, "")
@opacity = $1.to_i
color = self.contents.font.color
self.contents.font.color = Color.new(color.red, color.green, color.blue, color.alpha * @opacity / 255)
c = ""
end
# \H의 경우(추가 부분)
if c == "\025"
@now_text.sub!(/\[([0-9]+)\]/, "")
self.contents.font.size = [[$1.to_i, 6].max, 32].min
c = ""
end
# \B의 경우(추가 부분)
if c == "\026"
@now_text.sub!(/\[([0-9]+)\]/, "")
@x += $1.to_i
c = ""
end
# \R의 경우(추가 부분)
if c == "\027"
@now_text.sub!(/\[(.*?)\]/, "")
# 문자를 묘화
@x += ruby_draw_text(self.contents, @x, @y * line_height + (line_height - self.contents.font.size), $1, @opacity)
# 문자 묘사의 것SE을 연주
if $soundname_on_speak != ""
Audio.se_play($soundname_on_speak)
end
c = ""
end
# 아이콘 묘화용 순서의 경우(추가 부분)
if c == "\030"
# 아이콘 파일명을 취득
@now_text.sub!(/\[(.*?)\]/, "")
# 아이콘을 묘화
self.contents.blt(@x , @y * line_height + 8, RPG::Cache.icon($1), Rect.new(0, 0, 24, 24))
# 문자 묘사의 것SE을 연주
if $soundname_on_speak != ""
Audio.se_play($soundname_on_speak)
end
@x += 24
# 다음의 문자에
c = ""
end
# 개행 문자의 경우
if c == "\n"
# y 에 1 를 가산
@lines += 1
@y += 1
@x = 0 + @indent + @face_indent
# 선택사항이라면 인덴트를 실시하는
if @lines >= $game_temp.choice_start
@x = 8 + @indent + @face_indent
# 커서의 갱신
@cursor_width = @max_choice_x
end
# 다음의 문자에
c = ""
end
# 외자 표시의 경우
if c == "\022"
# []부분의 제거
@now_text.sub!(/\[([0-9]+)\]/, "")
# 외자를 표시
@x += gaiji_draw(4 + @x, @y * line_height + (line_height - self.contents.font.size), $1.to_i)
# 다음의 문자에
c = ""
end
if c != ""
# 문자를 묘화
self.contents.draw_text(4+@x, 32 * @y, 40, 32, c)
@x += self.contents.text_size(c).width
# 문자 묘사의 것SE을 연주
if $soundname_on_speak != "" then
Audio.se_play($soundname_on_speak)
end
end
# B버튼이 밀렸을 경우
if Input.press?(Input::B)
text_not_skip = false
end
else
text_not_skip = true
break
end
# 종료 판정
if text_not_skip
break
end
end
@write_wait += @write_speed
return
end
# 수치 입력중의 경우
if @input_number_window != nil
@input_number_window.update
# 결정
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
$game_variables[$game_temp.num_input_variable_id] =
@input_number_window.number
$game_map.need_refresh = true
# 수치 입력 윈도우를 해방
@input_number_window.dispose
@input_number_window = nil
terminate_message
end
return
end
# 메세지 표시중의 경우
if @contents_showing
# 선택사항의 표시중이 아니면 포즈 싸인을 표시
if $game_temp.choice_max == 0
self.pause = true
end
# 캔슬
if Input.trigger?(Input::B)
if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0
$game_system.se_play($data_system.cancel_se)
$game_temp.choice_proc.call($game_temp.choice_cancel_type - 1)
terminate_message
end
end
# 결정
if Input.trigger?(Input::C)
if $game_temp.choice_max > 0
$game_system.se_play($data_system.decision_se)
$game_temp.choice_proc.call(self.index)
end
if @mid_stop
@mid_stop = false
return
else
terminate_message
end
end
return
end
# 페이드아웃중 이외로 표시 기다리는 메세지나 선택사항이 있는 경우
if @fade_out == false and $game_temp.message_text != nil
@contents_showing = true
$game_temp.message_window_showing = true
refresh
Graphics.frame_reset
self.visible = true
self.contents_opacity = 0
if @input_number_window != nil
@input_number_window.contents_opacity = 0
end
@fade_in = true
return
end
# 표시해야 할 메세지가 없지만 , 윈도우가 가시 상태의 경우
if self.visible
@fade_out = true
self.opacity -= 48
if self.opacity == 0
self.visible = false
@fade_out = false
$game_temp.message_window_showing = false
end
return
end
end
#--------------------------------------------------------------------------
# ● 캐릭터의 취득
# parameter : 파라미터
#--------------------------------------------------------------------------
def get_character(parameter)
# 파라미터로 분기
case parameter
when 0 # 플레이어
return $game_player
else # 특정의 이벤트
events = $game_map.events
return events == nil ? nil : events[parameter]
end
end
#--------------------------------------------------------------------------
# ● 윈도우의 위치와 불투명도의 설정
#--------------------------------------------------------------------------
def reset_window
# 판정
if @popchar >= 0
events = $game_map.events
if events != nil
character = get_character(@popchar)
x = [[character.screen_x - 0 - self.width / 2, 4].max, 636 - self.width].min
y = [[character.screen_y - 48 - self.height, 4].max, 476 - self.height].min
self.x = x
self.y = y
end
elsif @popchar == -1
self.x = -4
self.y = -4
self.width = 648
self.height = 488
else
if $game_temp.in_battle
self.y = 16
else
case $game_system.message_position
when 0 # 상
self.y = 16
when 1 # 안
self.y = 160
when 2 # 하
self.y = 304
end
self.x = 80
if @face_file == nil
self.width = 480
else
self.width = 600
self.x -= 60
end
self.height = 160
end
end
self.contents = Bitmap.new(self.width - 32, self.height - 32)
if @face_file != nil
self.contents.blt(0, 1, RPG::Cache.picture(@face_file), Rect.new(0, 0, 128, 128))
end
if @popchar == -1
self.opacity = 255
self.back_opacity = 0
elsif $game_system.message_frame == 0
self.opacity = 255
self.back_opacity = 160
else
self.opacity = 0
self.back_opacity = 160
end
end
#--------------------------------------------------------------------------
# ● 외자 묘화
#--------------------------------------------------------------------------
# x   :x 좌표
# y   :y 좌표
# num  :외자 번호
# 돌아가 값:외자폭(@x증가치)
#--------------------------------------------------------------------------
def gaiji_draw(x, y, num)
# 외자 데이터가 존재하지 않는 경우는 굳이 하지 않는
if @gaiji_cache == nil
return 0
else
# 지정한 외자가 캐쉬 범위를 넘고 있는 경우는 굳이 하지 않는
if @gaiji_cache.width < num * 24
return 0
end
# 문자 사이즈를 계산
if self.contents.font.size >= 20 and self.contents.font.size <= 24
size = 24
else
size = self.contents.font.size * 100 * 24 / 2200
end
# 외자 데이터를stretch_blt로 전송
self.contents.stretch_blt(Rect.new(x, y, size, size), @gaiji_cache, Rect.new(num * 24, 0, 24, 24))
# 문자 묘사의 것SE을 연주
if $soundname_on_speak != "" then
Audio.se_play($soundname_on_speak)
end
# 문자 사이즈를 돌려주는
return size
end
end
#--------------------------------------------------------------------------
# ● line_height
#--------------------------------------------------------------------------
# 돌아가 치:행의 높이(@y증가치)를 돌려줍니다.
#--------------------------------------------------------------------------
def line_height
# 현상 , 선택사항등 에 대응을 할 수 없기 때문에 , 자동적으로32를 돌려줍니다.
return 32
# 문자 사이즈를 계산
if self.contents.font.size >= 20 and self.contents.font.size <= 24
return 32
else
return self.contents.font.size * 15 / 10
end
end
#--------------------------------------------------------------------------
# ● 루비 문자 묘화
#--------------------------------------------------------------------------
# target :묘화 대상. Bitmap클래스를 지정.
# x :x좌표
# y :y좌표
# str  :묘화 캐릭터 라인. 본문,루비의 형식에서 입력.
#      ,단락이2개 이상 있었을 경우는 자동적으로 무시된다.
# opacity:투과율(0~255)
# 돌아가 값 :문자폭(@x증가치).
#--------------------------------------------------------------------------
def ruby_draw_text(target, x, y, str,opacity)
# font size를 백업 해 두는
sizeback = target.font.size
# 루비 사이즈의 계산
target.font.size * 3 / 2 > 32 ? rubysize = 32 - target.font.size : rubysize = target.font.size / 2
rubysize = [rubysize, 6].max

# opacity에 규정치 이상의 값이 들어가 있는 경우는 수정.
opacity = [[opacity, 0].max, 255].min
# str(을)를split로 분할해 ,split_s에 격납
split_s = str.split(/,/)
# split_s이nil의 경우는""으로 해 두는(오동작 방지)
split_s[0] == nil ? split_s[0] = "" : nil
split_s[1] == nil ? split_s[1] = "" : nil
# height와width를 계산
height = sizeback + rubysize
width = target.text_size(split_s[0]).width
# 버퍼용의 폭 계산(루비의 폭이 본문의 폭을 넘을 가능성이 있기 때문에(위해))
target.font.size = rubysize
ruby_width = target.text_size(split_s[1]).width
target.font.size = sizeback
buf_width = [target.text_size(split_s[0]).width, ruby_width].max
# 본문의 묘화폭과 루비의 묘화폭의 차이를1/2로 해 변수에 격납(다음에 사용)
width - ruby_width != 0 ? sub_x = (width - ruby_width) / 2 : sub_x = 0
# opacity이255(투과 없음)의 경우는 통상 묘화
if opacity == 255
# 루비의 묘화
target.font.size = rubysize
target.draw_text(x + sub_x, y - target.font.size, target.text_size(split_s[1]).width, target.font.size, split_s[1])
target.font.size = sizeback
# 본문의 묘화
target.draw_text(x, y, width, target.font.size, split_s[0])
return width
else
# 표시 텍스트의height,width가 버퍼 사이즈를 웃도는 경우는
# 버퍼를 재생성한다.
if @opacity_text_buf.width < buf_width or @opacity_text_buf.height < height
@opacity_text_buf.dispose
@opacity_text_buf = Bitmap.new(buf_width, height)
# 그렇지 않은 경우는 버퍼 클리어.
else
@opacity_text_buf.clear
end
# 버퍼에 텍스트 묘화
# 루비의 묘화
@opacity_text_buf.font.size = rubysize
@opacity_text_buf.draw_text(0 , 0, buf_width, rubysize, split_s[1], 1)
@opacity_text_buf.font.size = sizeback
# 본문의 묘화
@opacity_text_buf.draw_text(0 , rubysize, buf_width, sizeback, split_s[0], 1)
# 루비의 폭이 본문의 폭을 밑도는 경우
if sub_x >= 0
target.blt(x, y - rubysize, @opacity_text_buf, Rect.new(0, 0, buf_width, height), opacity)
# 루비의 폭이 본문의 폭을 웃도는 경우
else
target.blt(x + sub_x, y - rubysize, @opacity_text_buf, Rect.new(0, 0, buf_width, height), opacity)
end
# 문자 사이즈를 돌려주는
return width
end
end
#--------------------------------------------------------------------------
# ● \V변환
#--------------------------------------------------------------------------
# option :옵션. 무 지정 또는 규정외의 경우는index의 유저 변수치를 돌려준다.
# index :인덱스
# 돌아가 값 :변환 결과(아이콘 표시용 순서 포함)
#--------------------------------------------------------------------------
def convart_value(option, index)
# option이nil의 경우는""으로 고치는(오동작 방지)
option == nil ? option = "" : nil
# option는downcase해 둔다.
option.downcase!
# \030(은)는 아이콘 표시용의 순서. \030[아이콘 파일명]으로 정의.
case option
when "i"
unless $data_items[index].name == nil
r = sprintf("\030[%s]%s", $data_items[index].icon_name, $data_items[index].name)
end
when "w"
unless $data_weapons[index].name == nil
r = sprintf("\030[%s]%s", $data_weapons[index].icon_name, $data_weapons[index].name)
end
when "a"
unless $data_armors[index].name == nil
r = sprintf("\030[%s]%s", $data_armors[index].icon_name, $data_armors[index].name)
end
when "s"
unless $data_skills[index].name == nil
r = sprintf("\030[%s]%s", $data_skills[index].icon_name, $data_skills[index].name)
end
else
r = $game_variables[index]
end
r == nil ? r = "" : nil
return r
end
#--------------------------------------------------------------------------
# ● 해방
#--------------------------------------------------------------------------
def dispose
terminate_message
# 외자 캐쉬 개방
if @gaiji_cache != nil
unless @gaiji_cache.disposed?
@gaiji_cache.dispose
end
end
# 문자 투과 전송용 버퍼 개방
unless @opacity_text_buf.disposed?
@opacity_text_buf.dispose
end
$game_temp.message_window_showing = false
if @input_number_window != nil
@input_number_window.dispose
end
super
end
#--------------------------------------------------------------------------
# ● 커서의 구형 갱신
#--------------------------------------------------------------------------
def update_cursor_rect
if @index >= 0
n = $game_temp.choice_start + @index
self.cursor_rect.set(8 + @indent + @face_indent, n * 32, @cursor_width, 32)
else
self.cursor_rect.empty
end
end
end
#==============================================================================
# ■ Window_Frame (범위만으로 내용이 없는 윈도우)
#==============================================================================
class Window_Frame < Window_Base
#--------------------------------------------------------------------------
# ● 오브젝트 초기화
#--------------------------------------------------------------------------
def initialize(x, y, width, height)
super(x, y, width, height)
self.contents = nil
#self.back_opacity = 240
end
#--------------------------------------------------------------------------
# ● 해방
#--------------------------------------------------------------------------
def dispose
super
end
end
#==============================================================================
# ■ Air_Text (굳이 없는 곳에 문자 묘사 = 범위가 없는 순간 표시 메세지 윈도우)
#==============================================================================
class Air_Text < Window_Base
#--------------------------------------------------------------------------
# ● 오브젝트 초기화
#--------------------------------------------------------------------------
def initialize(x, y, designate_text)
super(x-16, y-16, 32 + designate_text.size * 12, 56)
self.opacity = 0
self.back_opacity = 0
self.contents = Bitmap.new(self.width - 32, self.height - 32)
w = self.contents.width
h = self.contents.height
self.contents.draw_text(0, 0, w, h, designate_text)
end
#--------------------------------------------------------------------------
# ● 해방
#--------------------------------------------------------------------------
def dispose
self.contents.clear
super
end
end


List of Articles
분류 제목 글쓴이 날짜 조회 수 추천 수
긴급상황 발생시 연락처 안내 독도2005 2012.11.28 2174 0
니오팅 이용 규칙 (2013.01.05 3차 개정) 7 file 소녀쿤 2012.01.15 15373 0
여러분의 의견을 받습니다. 20 file 니오팅 2010.01.29 4195 2
공지사항 일본어 스크립트를 번역하기 좋은 번역사이트 두곳입니다 ruby 2010.01.09 21421 0
공지사항 스크립트 게시판 관리자' ruby ' 입니다 ruby 2010.01.09 20476 0
공지사항 일본 스크립트/소스 공유 포럼 4 니오티 2010.01.05 21899 0
대화관련 한글자씩 글자 나오는거 완전판!!(오류 하나도 없음) 만원만주라 2013.07.09 1523 0
전투관련 누구나 쉽게 만드는 액션알피지 6 펜릴 2012.11.25 3846 0
공통 Script 화면이 부드럽게 이동돼는 스크립트 2 ★Best갱신★ 2012.09.27 1502 0
맵관련 혹시나해서 일정키로 스크롤X 화면 부드럽게만...(스크립트를 삭제를 조금 했습니다) 호호리터엉 2012.02.13 1666 0
장르변경 2D 로 가는길! 횡스크롤 이닷! 공냑군 2012.01.24 1930 0
기타 게이지바 스크립트!! 최고!! 12 file 코아 코스튬 2011.08.08 3747 0
대화관련 대화 창에 얼굴 넣기 스크립트 4 file 노르 2011.08.08 2964 0
맵관련 조금 다른 맵표시 스크립트 file 노르 2011.08.08 1789 0
시각적 효과 NPC 위에 이름표시 하기 스크립트 2 file 노르 2011.08.08 2350 0
전투관련 초간단 XAS 오리지널. 1 file 호호리터엉 2011.08.04 2508 0
스킬관련 전투 비슷??????????? 아오오오오옹니 2011.07.29 1765 0
기능추가 전체키 스크립트 8 닉네임이없습니다 2011.07.19 2103 0
기타 이름입력 스크립트 2 닉네임이없습니다 2011.07.16 2075 0
맵관련 맵이름 띄우기 (오류없이 진짜나옵니다) 6 지나가던개 2011.07.06 2158 0
메뉴관련 간단한 링 메뉴 스크립트(처음올리는 스크립트) 1 lts1503 2011.05.22 2051 0
온라인 이것은약간온라인이랑섞인듯? 어쨋든 클릭스크립트!! 2 file 호호리터엉 2011.02.23 2125 0
맵관련 W키눌러서 미니맵표시 12 호호리터엉 2011.01.22 2674 1
맵관련 Shift키누르고 방향키누르면 화면스크롤되는것 7 file 호호리터엉 2011.01.21 2466 0
맵관련 맵이름 띄우기, 케릭터 ID띄우기 15 file 꼬마쟁이 2011.01.05 7230 0
기타 중복일것 같은데;; [한글 이름 입력] 1 꼬마쟁이 2011.01.05 4395 0
Board Pagination Prev 1 2 3 4 5 6 Next
/ 6

Copyright ⓒ Nioting All Rights Reserved. (since 1999)   개인정보취급방침