조회 수 177 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

알려주세요!

  • profile
    은하계 2011.07.03 11:14

    아래 스크립트를 불여넣기하시고 문장뒤에 !\|\~를 불여넣으시면 될겁니다....

    #       RPG XP MASSAGE PLUS●제어 문자 기능에 대해
    #현재 , 이하의 제어 문자를 서포트하고 있습니다.
    #
    #\f[file] file그리고 지정한 얼굴 그래픽을 표시합니다.
    #     얼굴 그래픽의 규격은 트크르2000/2003의 배로96×96.
    #     이것을 하나의 파일로 준비합니다.
    #     장소는Graphics/Pictures/을 자동적으로 참조합니다.
    #     .png(은)는 생략 가능합니다.
    #     .png이외를 사용하는 경우 , 문자를 고쳐 써 주세요.
    #     그리고 이\f[]의 지정은 반드시 문장의 최초로 가 주세요.
    #     "\f[Graphics/Pictures/파일명.png"이 아니고 ,
    #     단순하게"\f[파일명]"으로 지정. 할 수 있습니다.
    #
    #\name[]  []안으로 텍스트를 작은 네임 윈도우로 표시합니다.
    #\p[]   \p[-1]그리고  , 전체 표시(문자만으로 중앙에)를 합니다.
    #     \p[0]그리고 , 지정한 주인공 위에 팝 합니다.
    #     \p[ID]그리고 , 그ID를 가지는 이벤트 위에 팝 합니다.
    #
    #
    #
    #\\    문자?8?표시합니다.
    #\V[n]   변수n차례에 격납된 내용을 표시합니다.
    #     그리고 , 번호의 전에 특정의 문자를 넣는 일로 , 지정id의 아이템 , 장비품 ,
    #     스킬의 이름을 설정된 아이콘과 함께 표시하는 것이 가능합니다.
    #     i(item) :아이템
    #     w(weapon):무기
    #     a(armor) :방어용 기구
    #     s(skill) :스킬
    #
    #
    #\N[n]   지정id의 엑터의 이름을 표시합니다.
    #\C[n]   표시하는 문자색을n차례로 변경합니다.
    #     디폴트의 문자색은 본체 메뉴얼을 참조해 주세요.
    #\G    소지금의 윈도우를 표시합니다.
    #\s[n]   문장의 표시 스피드를 변경합니다(0~19).
    #     숫자가 커질수록 늦어집니다.
    #\H[n]   표시하는 문자의 사이즈를 변경합니다(6~32).
    #\O[n]   표시하는 문자의 투과율을 지정합니다(0~255).
    #\a[file] 문자 표시시에 재생하는SE을 지정한 파일로 변경합니다.
    #     데이터는./Audio/SE/으로 읽으러 갑니다. 폴더 지정은 생략 가능합니다.
    #
    #
    #\.    다음의 문자 표시까지1/4초간 웨이트 합니다.
    #\|    다음의 문자 표시까지1초간 웨이트 합니다.
    #\>    「\<」이 올 때까지 , 순간 표시합니다.
    #\<    「\>」으로부터 시작된 순간 표시를 종료합니다.
    #\!    결정 키의 입력을 그 자리에서 기다립니다.
    #\~    키 입력을 기다리지 않고 , 그대로 윈도우를 닫습니다.
    #\e[n]   n차례의 외자를 표시합니다.
    #     외자 데이터는 세로폭24Pixel * 가로 무제한(24 * n)의png형식 화상으로 ,
    #     디폴트 설정에서는./Graphics/Gaiji/sample.png을 참조하고 있습니다.
    #     외자 파일의 참조처는 글로벌 변수$gaiji_file로 설정되어 있습니다.
    #     문자 사이즈가 디폴트와 다른 경우는 사이즈 조정을 실시합니다만 ,
    #     화상이 엉성해져 버리는(문자 사이즈가20~24의 경우는 변경하지 않습니다).
    #
    #
    #\I    현재의 문자 표시 위치를 인덴트(인덴트 위치)로 설정합니다.
    #\B[n]   지정Pixel분의 공백을 삽입합니다.
    #\R[$1,$2] 루비 첨부의 문자를 표시합니다. $1하지만 본문 ,$2이 루비가 됩니다.
    #     $1그리고 지정한 캐릭터 라인은1프레임으로 표시됩니다.
    #     한 글자씩 표시시키고 싶은 경우는 , 본문을 한 글자씩에 단락짓고 나서 루비를
    #     할당해 주세요.
    #     루비의 사이즈는 문자 사이즈의 것1/2입니다.
    #     문자 사이즈와 루비의 사이즈의 합계가32를 넘는 경우 ,
    #     루비 사이즈는32 - 문자 사이즈가 됩니다. 주의해 주세요.
    #     그리고 , 루비 사이즈의 최소치는6이 됩니다.
    #
    #==============================================================================
    # ¡á Window_Message_Plus v3.1
    #==============================================================================
    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ÀÌ»óÀÇ °æ¿ì ij¸¯ÅÍ ÆË. 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
            # ÆÄÀÏ Ã¼Å©
            if FileTest.exist?("Graphics/Pictures/" + $1 + ".png")
              # ¾ó±¼ ±×¶ó¸¦ ¹¦È­
              @face_file = $1 + ".png"
              self.contents.blt(16, 16, RPG::Cache.picture(@face_file), Rect.new(0, 0, 96, 96))
              # ÀüÇà 128Çȼ¿ÀÇ Àε§Æ®¸¦ ³Ö´Â´Ù.
              @x = @face_indent = 128
            end
            @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
      #--------------------------------------------------------------------------
      # ¡Ü ij¸¯ÅÍÀÇ Ãëµæ
      #     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(16, 16, RPG::Cache.picture(@face_file), Rect.new(0, 0, 96, 96))
        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
     
    #SCRIPT
    #--------------------------------------------------------------------------
      # ¡Ü ¿ÜÀÚ ¹¦È­
      #--------------------------------------------------------------------------
      # x¡¡¡¡ £ºx ÁÂÇ¥
      # y¡¡¡¡ £ºy ÁÂÇ¥
      # num¡¡ £º¿ÜÀÚ ¹øÈ£
      # µ¹¾Æ°¡ °ª£º¿ÜÀÚÆø(@xÁõ°¡Ä¡)
      #--------------------------------------------------------------------------
      def gaiji_draw(x, y, num)
        # ¿ÜÀÚ µ¥ÀÌÅÍ°¡ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì´Â ±»ÀÌ ÇÏÁö ¾Ê´Â
        if @gaiji_cache == nil
          return 0
        else
          # ÁöÁ¤ÇÑ ¿ÜÀÚ°¡ ij½¬ ¹üÀ§¸¦ ³Ñ°í ÀÖ´Â °æ¿ì´Â ±»ÀÌ ÇÏÁö ¾Ê´Â
          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¡¡  £º¹¦È­ ij¸¯ÅÍ ¶óÀÎ. º»¹®,·çºñÀÇ Çü½Ä¿¡¼­ ÀÔ·Â.
      # ¡¡¡¡¡¡¡¡ ,´Ü¶ôÀÌ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 2009.05.14 597
481 캐릭터 편집에 대한 질문 1 jjolla22 2011.07.27 194
480 RPG게임만들기.. 1 부들이 2011.07.25 563
479 아이템에 관해서... 제발 답해주셈 1 짜식 2011.07.24 286
478 [RPG XP] 장비없이 때리면 뎀지가 0 뜹니다. 1 file BrigadierGeneral 2011.07.21 349
477 조건분기 버튼에서 C버튼, 방향키 말고는 눌러도 실행이 안되요 2 지나가던개 2011.07.20 342
476 [RPG만들기XP] 스킬 질문 1 file BrigadierGeneral 2011.07.19 599
475 몬스터 포획법좀 1 하이오니 2011.07.17 280
474 RPG질문입니다!!꼭 들어주세요~!!!!!!!!! 1 종혀기 2011.07.16 287
473 부탁합니닫ㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷㄷ 1 file progreamer 2011.07.15 343
472 SRPG를 만드려는 초보자입니다. 1 ZMEN 2011.07.15 268
471 문이 드르륵하며 천천히 열리게 하는 방법 1 착시현상 2011.07.14 359
470 RPG 실행 오류인데..... 메리엘 2011.07.13 353
469 정품 1 쿠헿헤 2011.07.13 578
468 액알에서 모션을 넣었는데 캐릭터가 돌아가요 1 감사 2011.07.09 285
467 네트워크 rpg2000 방만들기 2 교보 뮨고 2011.07.09 459
466 게임 암호화 1 웅이아버지 2011.07.03 349
465 2003게임을 시작했는데꺼지면서파티초기위치설정이되지않았다고뜨는데어떻게해야하죠 1 정민규 2011.07.03 294
» 문장이 자동으로 넘어가게 하기 1 초코빵! 2011.07.02 177
463 RPG Maker XP 프로젝트 암호화하기 1 쿠헿헤 2011.07.02 456
462 제가 전투 캐릭터를 직접 만들건데... 초코빵! 2011.06.30 242
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 30 Next
/ 30

Copyright ⓒ Nioting All Rights Reserved. (since 1999)    개인정보
        

Fatal error: Cannot access property sessionController::$lifetime in /web/old/xe/modules/session/session.controller.php on line 45