XP 스크립트

십자군의 rpg세상에서 퍼왔습니다.. 한글자씩뜬다군요.. 소리도나오고 #============================================================================== # ■ Window_Message #------------------------------------------------------------------------------ #  문장 표시에 사용하는 메세지 윈도우입니다. #============================================================================== class Window_Message < Window_Selectable #-------------------------------------------------------------------------- # ● 오브젝트 초기화 #-------------------------------------------------------------------------- def initialize super(80, 304, 480, 160) self.contents = Bitmap.new(width - 32, height - 32) self.visible = false self.z = 9998 @update_text = true #★ @fade_in = false @fade_out = false @contents_showing = false @cursor_width = 0 self.active = false self.index = -1 end #-------------------------------------------------------------------------- # ● 해방 #-------------------------------------------------------------------------- def dispose terminate_message $game_temp.message_window_showing = false if @input_number_window != nil @input_number_window.dispose end super end #-------------------------------------------------------------------------- # ● 메세지 종료 처리 #-------------------------------------------------------------------------- def terminate_message self.active = false self.pause = false self.index = -1 self.contents.clear @update_text = true #★ # 표시중 플래그를 클리어 @contents_showing = false # 메세지 콜백을 부르는 if $game_temp.message_proc != nil $game_temp.message_proc.call end # 문장 , 선택사항 , 수치 입력에 관한 변수를 클리어 $game_temp.message_text = nil $game_temp.message_proc = nil $game_temp.choice_start = 99 $game_temp.choice_max = 0 $game_temp.choice_cancel_type = 0 $game_temp.choice_proc = nil $game_temp.num_input_start = 99 $game_temp.num_input_variable_id = 0 $game_temp.num_input_digits_max = 0 # 골드 윈도우를 개방 if @gold_window != nil @gold_window.dispose @gold_window = nil end end #-------------------------------------------------------------------------- # ★ 리프레쉬 #-------------------------------------------------------------------------- def refresh self.contents.clear self.contents.font.color = normal_color @x = @y = 0 @cursor_width = 0 # 선택사항이라면 인덴트를 실시하는 if $game_temp.choice_start == 0 @x = 8 end # 표시 기다리는 메세지가 있는 경우 if $game_temp.message_text != nil @text = $game_temp.message_text # 제어 문자 처리 begin last_text = @text.clone @text.gsub!(/\[Vv][([0-9]+)]/) { $game_variables[$1.to_i] } end until @text == last_text @text.gsub!(/\[Nn][([0-9]+)]/) do $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : "" end # 편의상 ,"\\" 을 "00" 에 변환 @text.gsub!(/\\/) { "00" } # "\C" 을 "01" 에 ,"\G" 를 "02" 에 변환 @text.gsub!(/\[Cc][([0-9]+)]/) { "01[#{$1}]" } @text.gsub!(/\[Gg]/) { "02" } end end #-------------------------------------------------------------------------- # ● 윈도우의 위치와 불투명도의 설정 #-------------------------------------------------------------------------- def reset_window 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 end if $game_system.message_frame == 0 self.opacity = 255 else self.opacity = 0 end self.back_opacity = 160 end #-------------------------------------------------------------------------- # ★ 문자의 갱신 #-------------------------------------------------------------------------- def update_text # 표시 기다리는 메세지가 있는 경우 if @text != nil # c 에 1 문자를 취득 (문자를 취득할 수 없게 될 때까지 루프) while ((c = @text.slice!(/./m)) != nil) # \ 의 경우 if c == "00" # 본래의 문자에 되돌리는 c = "\" end # C[n] 의 경우 if c == "01" # 문자색을 변경 @text.sub!(/[([0-9]+)]/, "") color = $1.to_i if color >= 0 and color <= 7 self.contents.font.color = text_color(color) end end # G 의 경우 if c == "02" # 골드 윈도우를 작성 if @gold_window == nil @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 # 다음의 문자에 next end # 개행 문자의 경우 if c == "n" # 선택사항이라면 커서의 폭을 갱신 if @y >= $game_temp.choice_start @cursor_width = [@cursor_width, @x].max end # y 에 1 를 가산 @y += 1 @x = 0 # 선택사항이라면 인덴트를 실시하는 if @y >= $game_temp.choice_start @x = 8 end # 다음의 문자에 next end # 문자를 묘화 self.contents.draw_text(4 + @x, 32 * @y, 40, 32, c) # x 에 묘화 한 문자의 폭을 가산 @x += self.contents.text_size(c).width # 결정 SE 을 연주 $game_system.se_play($data_system.decision_se) return end end # 선택사항의 경우 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 @update_text = false #★ end #-------------------------------------------------------------------------- # ● 프레임 갱신 #-------------------------------------------------------------------------- def update super # 용명의 경우★ if @fade_in self.contents_opacity = 255 if @input_number_window != nil @input_number_window.contents_opacity = 255 end if self.contents_opacity == 255 @fade_in = false end 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 @update_text update_text return end # 선택사항의 표시중이 아니면 포즈 싸인을 표시 if $game_temp.choice_max == 0 self.pause = true end if self.pause == true && Input.dir4 != 0 terminate_message 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 terminate_message if self.pause == true 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 terminate_message end return end # 페이드아웃중 이외로 표시 기다리는 메세지나 선택사항이 있는 경우 if @fade_out == false and $game_temp.message_text != nil @contents_showing = true $game_temp.message_window_showing = true reset_window 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 = 0 if self.opacity == 0 self.visible = false @fade_out = false $game_temp.message_window_showing = false end return end end #-------------------------------------------------------------------------- # ● 커서의 구형 갱신 #-------------------------------------------------------------------------- def update_cursor_rect if @index >= 0 n = $game_temp.choice_start + @index self.cursor_rect.set(8, n * 32, @cursor_width, 32) else self.cursor_rect.empty end end end

Who's 백호

?

이상혁입니다.

http://elab.kr

Comment '6'
  • ?
    요소보니따 2009.08.21 09:54
    뭔 스크립트를 이렇게 써줘요..다 직접쓰란 소린가
  • ?
    카이어덱터 2010.01.02 01:36

    컥... 엔터 누르면서 수정해야 될듯 ㅠ.ㅠ

  • profile
    lksnmkl97 2010.02.14 21:40

    수정부탁//

  • ?
    백영군 2012.12.28 02:12
    헐 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
  • ?
    마니아(홍담) 2013.02.08 07:21

    제가 그 노가다 개행 처리를 해줬습니다. -_-


    출처 : 유니트릭 - 마니아 님
    XP/VX/Ace 스크립트 - 한 글자 씩 말을 띄우는 스크립트 (고전 게임 형식, 역전재판, 대화, 띄우기) (http://unitrick.co.kr/pdsrmscr/9722)

  • ?
    크로커(K) 2013.05.26 12:48
    감사합니다.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 6153
21 기타 한글 입력 스크립트 입니다. (vx -> xp) 23 file 헤르코스 2009.04.18 3397
20 메시지 한글 채팅 스크립트 32 file こなた 2009.01.22 4947
19 이름입력 한글이름 입력기 스크립트 14 백호 2009.02.22 4205
18 키입력 한글입력기 6 백호 2009.02.22 4299
17 키입력 한글입력기(자음, 모음 분리. 아마 중복일 듯...) 11 캉쿤 2011.09.13 3225
16 키입력 한글입력스크립트 16 file 아방스 2007.11.09 11823
» 메시지 한글자씩 뜨는 스크립트 6 백호 2009.02.21 3001
14 이름입력 한글조합입력기(영어가능) file 조규진1 2019.11.10 497
13 기타 현재 맵BGM을 그대로 전투 BGM으로 연결 from phylomortis.com 백호 2009.02.22 1180
12 기타 현재시간표시 33 file 코아 코스튬 2010.10.09 2528
11 메뉴 혹시있나해서-_-.. 대화창에 테두리치기 스크립트 7 백호 2009.02.22 2592
10 기타 홈페이지 띄우기 (VX 상관없음.) 6 KNAVE 2009.08.25 2137
9 화면에 축소된 맵을 표시하는 스크립트 7 file 백호 2009.02.21 2394
8 미니맵 화면에 축소된 미니맵을 표시하는 스크립트 - 한글 번역 - 6 file 백호 2009.02.21 2560
7 그래픽 화면을 부드럽게 해주는스크립트[ 아주 유용] 56 file - 하늘 - 2009.08.05 6561
6 메뉴 화살표 모양 셀렉트 커서 사용 2 백호 2009.02.22 2118
5 기타 회복으로 데미지를 받는 좀비 스크립트 7 백호 2009.02.22 2004
4 기타 횡스크롤 스크립트 한국말 번역. 15 file 백호 2009.02.21 3311
3 전투 횡스크롤형식의 스크립트 7 백호 2009.02.21 2972
2 전투 흠.. 아직도 이 스크립트가 없군요 ㅋㅋ(제가올림..) 1 file 백호 2009.02.21 3335
Board Pagination Prev 1 ... 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 Next
/ 52