幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1655|回复: 1

[求助]高人帮一下忙(已明白是怎么回事了)

[复制链接]

5

主题

38

帖子

345

积分

④见习

天空也有传说

积分
345
发表于 2005-1-10 11:08:31 | 显示全部楼层 |阅读模式
谁能给我解释一下白的这个吗?它是怎么显示角色名字的?而且我发现它只能显示最后一名队员的名字!




#==============================================================================
# ■ Window_Message : 再定義
#==============================================================================

class Window_Message < Window_Selectable
  def initialize
#独自弄り
    super(80+64, 336, 480, 128)
    @my_bitmap1=RPG::Cache.picture("MenuSozai03")

    self.contents = Bitmap.new(width - 32, height - 32)
    self.visible = false
    self.z = 9998
    @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

#独自弄り
    @my_bitmap1.dispose

  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
      # 便宜上、"\\C" を "\001" に、"\\G" を "\002" に変換
      text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
      text.gsub!(/\\[Gg]/) { "\002" }
      text.gsub!(/\\\\/) { "\\" }

#独自変更箇所 数値弄り
    if $game_temp.choice_start != 0
      self.contents.font.color.set(255,255,139)
      self.contents.draw_text(4+x,24*y-7,256,32,$game_party.actors[3].name)
      self.contents.font.color = normal_color
      self.contents.blt(4+x,24*y+22,@my_bitmap1,Rect.new(0,0,441,2))
    end

      # c に 1 文字を取得 (文字が取得できなくなるまでループ)
      while ((c = text.slice!(/./m)) != nil)
        # \C[n] の場合
        if c == "\001"
          # 文字色を変更
          text.sub!(/\[([0-9]+)\]/, "")
          color = $1.to_i
          if color >= 0 and color <= 15
            self.contents.font.color = text_color(color)
          end
          # 次の文字へ
          next
        end
        # \G の場合
        if c == "\002"
          # ゴールドウィンドウを作成
          if @gold_window == nil
            @gold_window = Window_Gold.new
            @gold_window.x = 560 - @gold_window.width
            @gold_window.y = self.y >= 128 ? 32 : 384
            @gold_window.opacity = self.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
        # 文字を描画

#独自変更箇所 数値弄り
      if $game_temp.choice_start != 0
        self.contents.draw_text(4+x,25*y+20,40,32,c)
      else
        self.contents.draw_text(4+x,32*y,40,32,c)
      end

        # 全角スペースの場合
        if c == " "
          # x に "「" 文字の幅を加算
          x += self.contents.text_size("「").width
        else
          # x に描画した文字の幅を加算
          x += self.contents.text_size(c).width
        end
      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
  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 = 336

      end
    end
    if $game_system.message_frame == 0
      self.opacity = 255
    else
      self.opacity = 0
    end
    self.back_opacity = 160
  end
end


[此贴子已经被作者于2005-1-12 19:12:19编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
最快的进步方法就是向前辈们学习
回复

使用道具 举报

122

主题

3954

帖子

24万

积分

超级版主

传说中的Bunny坑神~!

Rank: 8Rank: 8

积分
244543

声命组铜赏

发表于 2005-1-10 12:46:06 | 显示全部楼层
看一下白的对话事件.不停的在改4号角色姓名...反正白的选单都是自制的,角色名字怎么改都没事...
http://www.nvlmaker.net/
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2025-6-19 00:51 , Processed in 0.010781 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表