질문과 답변

Extra Form
종류 스크립트 사용

ddddddddddd.PNG


메세지 창에 초상화를 띄우는 스크립트를 사용중인데 본래 96x96 사이즈였던 초상화를 128x128로 사용하고 싶어 늘렸더니

초상화와 메세지 사이 간격이 굉장히 좁아져버렸습니다.

간격을 늘리고 싶어서 짐작이 가는 숫자들을 수정중인데 너무 많아 어디를 수정해야할지 잘 모르겠어서 질문 올립니다.


 

 #==============================================================================

# ■ Window_Message

#==============================================================================

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 = 200

    @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

        # ファイルチェック

        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

      else

        @max_x = self.width - 32 - @face_indent

        for i in 0..3

          line = @now_text.split(/\n/)[3-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

      end

      @max_choice_x -= 128

      # 便宜上、"\\\\" を "\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

        # オフセット位置

        off_x =  1

        off_y =  -26

        # ?だけウィンドウの作成(余白を 2 に設定)

        space = 10

        x = self.x + off_x - space / 10

        y = self.y + off_y - space / 2

        w = self.contents.text_size(name_text).width + 35 + 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 + 20

        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"

            # 選?肢ならカ?ソルの幅を更新

            if @lines >= $game_temp.choice_start

              @cursor_width = [@cursor_width, @max_choice_x - @face_indent].max

            end

            # y に 1 を加算

            @lines += 1

            @y += 1

            @x = 0 + @indent + @face_indent

            # 選?肢なら字下げを行う

            if @lines >= $game_temp.choice_start

              @x = 8 + @indent + @face_indent

            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, 4+ 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, 0, 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)

    # フォントサイズをバックアップしておく

    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(4 + @indent + @face_indent, n * 32 + 4, @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 


 

 

 

 

■ 질문전 필독!
  • 질문할 내용이 이 게시판이나 강좌에 이미 있는지 확인합니다.
  • 하나의 게시물에는 하나의 질문만 합니다.
  • 제목은 질문의 핵심 내용으로 작성합니다.
  • 질문 내용은 답변자가 쉽게 이해할 수 있도록 최대한 상세하게 작성합니다.
  • 스크립트의 전문이 필요할 경우 txt 파일 등으로 첨부해 주시기 바랍니다.
  • 답변받은 게시물은 삭제하지 않습니다.
  • 답변이 완료된 경우 해당 답변해주신 분들께 감사의 댓글을 달아줍니다.
    • 처음 오신 분들은 공지 게시물을 반드시 읽어주세요!

※ 미준수시 사전경고 없이 게시물을 삭제합니다.

Comment '2'
  • ?
    DevSquare 2020.05.18 08:08
    스크립트를 다뤄보지 않아서 잘은 모르겠지만, 변수명이나 주석 설명을 봤을 땐

    # 全行 128ピクセルのインデントを入れる。
    @x = @face_indent = 128

    이부분인 것 같아요.
  • profile
    빈군 2020.05.18 14:57
    감사합니다. 해결 됐습니다!

List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 13184
플러그인 추천 RMMV Hp와 TP 바 등등 그래픽 수정하는 법/텍스트 효과음 BLT 2020.05.19 156
기타 기타 아방스 게시판 플래시 제외 예정이 있나요? DevSquare 2020.05.18 43
스크립트 추천 RMVXA 이런 스크립트 있을까요? 2 file 설님 2020.05.18 188
스크립트 사용 RMXP 메세지 스크립트 관련하여 질문 드립니다. 2 file 빈군 2020.05.18 163
이벤트 작성 RMMV 이벤트 만들때 스위치를 넣으면 테스트게임이 멈춰요... 1 암풀 2020.05.18 81
게임 번역 RMVX 일본어 암호창을 한글로 어떻게 바꾸나요? 1 file 아모건 2020.05.16 161
플러그인 추천 RMMV 전투중 적 개개인마다 애니메이션 위치를 바꿔주는 플러그인이 있을까요 2 PPPL 2020.05.15 134
기타 RMMV 공동개발 방법에 대해 3 마픽스 2020.05.14 398
기본툴 사용법 RMMV 공격 성공후 확률로 계속해서 발동하는 스킬을 만들 수 있을까요? PPPL 2020.05.12 59
기타 RMVXA ace pc 빌드 방법 2 배be 2020.05.11 52
플러그인 추천 RMMV 라이브 어 라이브같은 배틀시스템을 구현해주는 플러그인이 있나요? 레기우스州 2020.05.11 89
에러 해결 RMVXA 파일이 안 열려요 file 설님 2020.05.11 66
스크립트 작성 RMVXA 스킬의 일괄 삭제와 특정 변수 값을 가진 스킬을 배우게 하고 싶습니다 김탲누 2020.05.11 48
기본툴 사용법 RMMV 캐릭터가 6픽셀 위로 뜨지 않게 하는 방법이 있나요? 2 우엉조림 2020.05.11 102
턴제 전투 RMVXA 공격 회피하는 방법 1 Wolfclaw 2020.05.10 118
기타 RMMV rpg maker mv 게임속도가 너무 빨라요 ㅠㅠ 한글자3 2020.05.10 375
스크립트 사용 RMVXA 혹시 이런 오류는 어떻게 수정하는지 알 수 있을까요? file hoshigami 2020.05.07 663
기본툴 사용법 RMVXA rpg maker vx ace 기본 타일셋좀 주실 분... 4 mkccip 2020.05.06 152
플러그인 추천 RMMV 날짜나 시간등을 다루는 플러그인이 있나요? JDG 2020.05.06 110
기타 RMVXA TP 회복방식을 바꾸고싶습니다. 루네코 2020.05.06 110
Board Pagination Prev 1 ... 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 ... 517 Next
/ 517