设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2655|回复: 2
打印 上一主题 下一主题

[已经解决] 66加强对话框名字字体加粗?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
40 小时
注册时间
2009-9-3
帖子
64
跳转到指定楼层
1
发表于 2010-9-5 15:57:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

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

x
本帖最后由 鬼火 于 2010-9-5 16:46 编辑

1、名字颜色默认为白色怎样调整成黑色?
2、另外怎么把名字字体加粗?
66加强对话框脚本:
  1. =begin

  2. ============================================================================
  3. 66加强对话框--66rpg
  4. ============================================================================

  5. 默认为一个字一个字的方式,如果需要一次全部显示,
  6. 请在游戏中使用脚本:$game_system.typing = true
  7.   
  8. 默认对话字没有声音,如果需要声音,请在游戏中使用脚本:$game_system.soundname_on_speak = "这里输入文件名"
  9. 我唯一一个见过“胡乱配音”的游戏是天使帝国2代,该游戏说话的时候每个字符随机发一个外星语音

  10. 其他在对话中可以使用的功能:

  11. \n[1]:显示1号角色的姓名

  12. \name[李逍遥]:显示一个“李逍遥”方框,表示说话人姓名

  13. \p[1]:对话框出现在1号事件的上方
  14. \p[0]:主人公上方出现对话框
  15. 使用\p功能后可以自动调整对话框大小

  16. \\:显示"\"这个符号

  17. \v[1] :显示变量1

  18. \v[a1] :显示防具1

  19. \v[w1] :显示武器1

  20. # \v[i1] :显示物品1

  21. # \v[s1] :显示特技1

  22. # \c[1-8]:更改颜色
  23. #1:深蓝色
  24. #2:浅红色
  25. #3:青色
  26. #4:浅蓝色
  27. 5:紫色
  28. 6:黄色
  29. 7:灰色
  30. 0:白色

  31. \g:显示金钱窗口

  32. \a[SE文件名]:对话的时候播放SE

  33. \s[1-19]:更改弹字的速度

  34. \.   :停顿一刹那(1、2帧)
  35. \|   :停顿片刻(20帧)

  36. \>   :文字不用打字方式
  37. \<   :文字使用打字方式

  38. \!   :等待玩家按回车再继续
  39. \~   :文字直接消失

  40. \I   :下一行从这个位置开始

  41. \o[123]:文字透明度改为123,模拟将死之人(汗)

  42. \h[12]:改用12号字

  43. \b[50]:空50象素

  44. \L[001]:在左边显示图片“Graphics/battlers/66rpg_001_h.png”
  45. \R[001]:在右边显示图片“Graphics/battlers/66rpg_001_h.png”

  46. \Lk:清除左边的图像
  47. \Rk:清除右边的图像

  48. =end

  49. #==============================================================================
  50. # ■ Window_Message
  51. #------------------------------------------------------------------------------

  52. class Game_System
  53. attr_accessor :typing
  54. attr_accessor :soundname_on_speak
  55. alias carol3_ini initialize
  56. def initialize
  57.    carol3_ini
  58.    @typing = true
  59.    @soundname_on_speak = nil
  60. end
  61. end
  62. #=================================
  63. #==============================================================================
  64. # ■ Window_Message
  65. #------------------------------------------------------------------------------
  66. class Window_Message < Window_Selectable
  67. #--------------------------------------------------------------------------
  68. # ● 初始化状态
  69. #--------------------------------------------------------------------------
  70. def initialize
  71.    super(80, 304, 480, 160)
  72.    self.contents = Bitmap.new(width - 32, height - 32)
  73.    self.visible = false
  74.    self.z = 9998
  75.    @fade_in = false
  76.    @fade_out = false
  77.    @contents_showing = false
  78.    @cursor_width = 0
  79.    @autoclosetime = -1
  80.    self.active = false
  81.    self.index = -1
  82.    if $game_system.soundname_on_speak == nil then
  83.      $game_system.soundname_on_speak = ""
  84.    end
  85.    @opacity_text_buf = Bitmap.new(32, 32)
  86. end
  87. #--------------------------------------------------------------------------
  88. # ● 释放
  89. #--------------------------------------------------------------------------
  90. def dispose
  91.    terminate_message
  92.    $game_temp.message_window_showing = false
  93.    if @input_number_window != nil
  94.      @input_number_window.dispose
  95.    end
  96.    super
  97. end
  98. #--------------------------------------------------------------------------
  99. # ● 处理信息结束
  100. #--------------------------------------------------------------------------
  101. def terminate_message
  102.    self.active = false
  103.    self.pause = false
  104.    self.index = -1
  105.    self.contents.clear
  106.    # 清除显示中标志
  107.    @contents_showing = false
  108.    # 呼叫信息调用
  109.    if $game_temp.message_proc != nil
  110.      $game_temp.message_proc.call
  111.    end
  112.    # 清除文章、选择项、输入数值的相关变量
  113.    $game_temp.message_text = nil
  114.    $game_temp.message_proc = nil
  115.    $game_temp.choice_start = 99
  116.    $game_temp.choice_max = 0
  117.    $game_temp.choice_cancel_type = 0
  118.    $game_temp.choice_proc = nil
  119.    $game_temp.num_input_start = 99
  120.    $game_temp.num_input_variable_id = 0
  121.    $game_temp.num_input_digits_max = 0
  122.    # 开放金钱窗口
  123.    if @gold_window != nil
  124.      @gold_window.dispose
  125.      @gold_window = nil
  126.    end
  127.    if @name_window_frame != nil
  128.      @name_window_frame.dispose
  129.      @name_window_frame = nil
  130.    end
  131.    if @name_window_text != nil
  132.      @name_window_text.dispose
  133.      @name_window_text = nil
  134.    end
  135.    if @right_picture != nil and @right_keep == true
  136.      @right_picture.dispose
  137.    end   
  138.    if @left_picture != nil and @left_keep == true
  139.      @left_picture.dispose
  140.    end
  141. end
  142. def refresh
  143.    # 初期化
  144.    self.contents.clear
  145.    self.contents.font.color = normal_color
  146.    self.contents.font.size = Font.default_size
  147.    @x = @y = @max_x = @max_y = @indent = @lines = 0
  148.    @left_keep = @right_keep = false
  149.    @face_indent = 0
  150.    @opacity = 255
  151.    @cursor_width = 0
  152.    @autoclosetime = -1
  153.    @write_speed = 0
  154.    @write_wait = 0
  155.    @mid_stop = false
  156.    @face_file = nil
  157.    @popchar = -2
  158.    if $game_temp.choice_start == 0
  159.      @x = 8
  160.    end
  161.    if $game_temp.message_text != nil
  162.      @now_text = $game_temp.message_text
  163.      #——头像设置
  164.      if (/\\[Ff]\[(.+?)\]/.match(@now_text))!=nil then
  165.        @face_file = $1 + ".png"
  166.        @x = @face_indent = 128
  167.        if FileTest.exist?("Graphics/Pictures/" + $1 + ".png")
  168.          self.contents.blt(16, 16, RPG::Cache.picture(@face_file), Rect.new(0, 0, 96, 96))
  169.        end
  170.        @now_text.gsub!(/\\[Ff]\[(.*?)\]/) { "" }
  171.      end
  172.      #——左半身像设置
  173.      if (/\\[Ll]\[(.+?)\]/.match(@now_text))!=nil then
  174.        @face = "66rpg_" + $1 + "_h.png"
  175.        if $加密 == true
  176.          if @left_picture != nil
  177.            @left_picture.dispose
  178.          end
  179.          @left_picture = Sprite.new
  180.          @left_picture.bitmap = Bitmap.new("Graphics/battlers/#{@face}")
  181.          @left_picture.y = 15
  182.          @left_picture.x = -10
  183.          @left_picture.mirror = true
  184.          @now_text.gsub!(/\\[Ll]\[(.*?)\]/) { "" }
  185.        else         
  186.          if FileTest.exist?("Graphics/battlers/#{@face}")
  187.            if @left_picture != nil
  188.              @left_picture.dispose
  189.            end
  190.            @left_picture = Sprite.new
  191.            @left_picture.bitmap = Bitmap.new("Graphics/battlers/#{@face}")
  192.            @left_picture.y = 15
  193.            @left_picture.x = -10
  194.            @left_picture.mirror = true
  195.            @now_text.gsub!(/\\[Ll]\[(.*?)\]/) { "" }
  196.          end
  197.        end        
  198.      end
  199.      #——右半身像设置
  200.      if (/\\[Rr]\[(.+?)\]/.match(@now_text))!=nil then
  201.        @face = "66rpg_" + $1 + "_h.png"
  202.        if $加密 == true
  203.          if @right_picture != nil
  204.            @right_picture.dispose
  205.          end
  206.          @right_picture = Sprite.new
  207.          @right_picture.bitmap = Bitmap.new("Graphics/battlers/#{@face}")
  208.          @right_picture.y = 300
  209.          @right_picture.x = 490
  210.          @now_text.gsub!(/\\[Rr]\[(.*?)\]/) { "" }
  211.        else
  212.          if FileTest.exist?("Graphics/battlers/#{@face}")
  213.            if @right_picture != nil
  214.              @right_picture.dispose
  215.            end
  216.            @right_picture = Sprite.new
  217.            @right_picture.bitmap = Bitmap.new("Graphics/battlers/#{@face}")
  218.            @right_picture.y = 300
  219.            @right_picture.x = 490
  220.            @now_text.gsub!(/\\[Rr]\[(.*?)\]/) { "" }
  221.          end
  222.        end
  223.      end
  224.      if (/\\[Rr]k/.match(@now_text)) != nil
  225.        @right_keep = true
  226.        @now_text.sub!(/\\[Rr]k/) { "" }
  227.      end
  228.      if (/\\[Ll]k/.match(@now_text)) != nil
  229.        @left_keep = true
  230.        @now_text.sub!(/\\[Ll]k/) { "" }
  231.      end
  232.      # 显示人物姓名
  233.      name_window_set = false
  234.      if (/\\[Nn]ame\[(.+?)\]/.match(@now_text)) != nil
  235.        name_window_set = true
  236.        name_text = $1
  237.        @now_text.sub!(/\\[Nn]ame\[(.*?)\]/) { "" }
  238.      end
  239.      
  240.      # 文字位置的判定
  241.      if (/\\[Pp]\[([-1,0-9]+)\]/.match(@now_text))!=nil then
  242.        @popchar = $1.to_i
  243.        if @popchar == -1
  244.          @x = @indent = 48
  245.          @y = -4
  246.        end
  247.        @now_text.gsub!(/\\[Pp]\[([-1,0-9]+)\]/) { "" }
  248.      end
  249.      
  250.      # 开始
  251.      begin
  252.        last_text = @now_text.clone
  253.        @now_text.gsub!(/\\[Vv]\[([IiWwAaSs]?)([0-9]+)\]/) { convart_value($1, $2.to_i) }
  254.      end until @now_text == last_text
  255.      @now_text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
  256.      $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
  257.    end
  258.    @now_text.gsub!(/\\\\/) { "\000" }
  259.    @now_text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
  260.    @now_text.gsub!(/\\[Gg]/) { "\002" }
  261.    @now_text.gsub!(/\\[Ss]\[([0-9]+)\]/) { "\003[#{$1}]" }
  262.    @now_text.gsub!(/\\[Aa]\[(.*?)\]/) { "\004[#{$1}]" }
  263.    @now_text.gsub!(/\\[.]/) { "\005" }
  264.    @now_text.gsub!(/\\[|]/) { "\006" }
  265.    @now_text.gsub!(/\\[Mm]\[([0-9]+)\]/) { "\050[#{$1}]" }
  266.    
  267.    @now_text.gsub!(/\\[>]/) { "\016" }
  268.    @now_text.gsub!(/\\[<]/) { "\017" }
  269.    @now_text.gsub!(/\\[!]/) { "\020" }
  270.    @now_text.gsub!(/\\[~]/) { "\021" }
  271.    
  272.    @now_text.gsub!(/\\[Ii]/) { "\023" }
  273.    @now_text.gsub!(/\\[Oo]\[([0-9]+)\]/) { "\024[#{$1}]" }
  274.    @now_text.gsub!(/\\[Hh]\[([0-9]+)\]/) { "\025[#{$1}]" }
  275.    @now_text.gsub!(/\\[Bb]\[([0-9]+)\]/) { "\026[#{$1}]" }
  276.    @now_text.gsub!(/\\[Kk]\[(.*?)\]/) { "\027[#{$1}]" }
  277.    if @popchar >= 0
  278.      @text_save = @now_text.clone
  279.      @max_x = 0
  280.      @max_y = 4
  281.      for i in 0..3
  282.        line = @now_text.split(/\n/)[3-i]
  283.        @max_y -= 1 if line == nil and @max_y <= 4-i
  284.        next if line == nil
  285.        cx = contents.text_size(line).width
  286.        @max_x = cx if cx > @max_x
  287.      end
  288.      self.width = @max_x + 48 + @face_indent
  289.      self.height = (@max_y - 1) * 32 + 64
  290.    else
  291.      @max_x = self.width - 32 - @face_indent
  292.    end
  293.    reset_window
  294.      if name_window_set
  295.        off_x = 0
  296.        off_y = -40
  297.        space = 2
  298.        x = self.x + off_x - space / 2
  299.        y = self.y + off_y - space / 2
  300.        w = self.contents.text_size(name_text).width + 26 + space
  301.        h = 40 + space
  302.        @name_window_frame = Window_Frame.new(x, y, w, h)
  303.        @name_window_frame.z = self.z + 1
  304.        x = self.x + off_x + 16
  305.        y = self.y + off_y+26
  306.       
  307.        @name_window_text = Air_Text.new(x+4, y+6, name_text)
  308.        @name_window_text.z = self.z + 2
  309.      end
  310.    end
  311.    reset_window
  312.    if $game_temp.choice_max > 0
  313.      @item_max = $game_temp.choice_max
  314.      self.active = true
  315.      self.index = 0
  316.    end
  317.    if $game_temp.num_input_variable_id > 0
  318.      digits_max = $game_temp.num_input_digits_max
  319.      number = $game_variables[$game_temp.num_input_variable_id]
  320.      @input_number_window = Window_InputNumber.new(digits_max)
  321.      @input_number_window.number = number
  322.      @input_number_window.x = self.x + 8
  323.      @input_number_window.y = self.y + $game_temp.num_input_start * 32
  324.    end
  325. end
  326. #--------------------------------------------------------------------------
  327. # ● 更新
  328. #--------------------------------------------------------------------------
  329. def update
  330.    super
  331.    if @autoclosetime == 0
  332.      @autoclosetime = -1
  333.      terminate_message
  334.   end
  335.    if @autoclosetime >= 1
  336.      @autoclosetime -= 1
  337.    end
  338.    if @fade_in
  339.      self.contents_opacity += 24
  340.      if @input_number_window != nil
  341.        @input_number_window.contents_opacity += 24
  342.      end
  343.      if self.contents_opacity == 255
  344.        @fade_in = false
  345.      end
  346.      return
  347.    end
  348.    @now_text = nil if @now_text == ""
  349.    
  350.    if @now_text != nil and @mid_stop == false
  351.      if @write_wait > 0
  352.        @write_wait -= 1
  353.        return
  354.      end
  355.      text_not_skip = $game_system.typing
  356.      while true
  357.        @max_x = @x if @max_x < @x
  358.        @max_y = @y if @max_y < @y
  359.        if (c = @now_text.slice!(/./m)) != nil
  360.          if c == "\000"
  361.            c = "\\"
  362.          end
  363.          if c == "\001"
  364.            @now_text.sub!(/\[([0-9]+)\]/, "")
  365.            color = $1.to_i
  366.            if color >= 0 and color <= 7
  367.              self.contents.font.color = text_color(color)
  368.            end
  369.            c = ""
  370.          end
  371.          if c == "\002"
  372.            if @gold_window == nil and @popchar <= 0
  373.              @gold_window = Window_Gold.new
  374.              @gold_window.x = 560 - @gold_window.width
  375.              if $game_temp.in_battle
  376.                @gold_window.y = 192
  377.              else
  378.                @gold_window.y = self.y >= 128 ? 32 : 384
  379.              end
  380.              @gold_window.opacity = self.opacity
  381.              @gold_window.back_opacity = self.back_opacity
  382.            end
  383.            c = ""
  384.          end
  385.          if c == "\003"
  386.            @now_text.sub!(/\[([0-9]+)\]/, "")
  387.            speed = $1.to_i
  388.            if speed >= 0 and speed <= 19
  389.              @write_speed = speed
  390.            end
  391.            c = ""
  392.          end
  393.          if c == "\004"
  394.            @now_text.sub!(/\[(.*?)\]/, "")
  395.            buftxt = $1.dup.to_s
  396.            if buftxt.match(/\//) == nil and buftxt != "" then
  397.              $game_system.soundname_on_speak = "Audio/SE/" + buftxt
  398.            else
  399.              $game_system.soundname_on_speak = buftxt.dup
  400.            end
  401.            c = ""
  402.          elsif c == "\004"
  403.            c = ""
  404.          end
  405.          if c == "\005"
  406.            @write_wait += 5
  407.            c = ""
  408.          end
  409.          if c == "\006"
  410.            @write_wait += 20
  411.            c = ""
  412.          end
  413.          if c == "\016"
  414.            text_not_skip = false
  415.            c = ""
  416.          end
  417.          if c == "\017"
  418.            text_not_skip = true
  419.            c = ""
  420.          end
  421.          if c == "\020"
  422.            @mid_stop = true
  423.            c = ""
  424.          end
  425.          if c == "\021"
  426.            terminate_message
  427.            return
  428.          end
  429.          if c == "\023"
  430.            @indent = @x
  431.            c = ""
  432.          end
  433.          if c == "\024"
  434.            @now_text.sub!(/\[([0-9]+)\]/, "")
  435.            @opacity = $1.to_i
  436.            c = ""
  437.          end
  438.          if c == "\025"
  439.            @now_text.sub!(/\[([0-9]+)\]/, "")
  440.            self.contents.font.size = [[$1.to_i, 6].max, 32].min
  441.            c = ""
  442.          end
  443.          if c == "\026"
  444.            @now_text.sub!(/\[([0-9]+)\]/, "")
  445.            @x += $1.to_i
  446.            c = ""
  447.          end
  448.          if c == "\027"
  449.            @now_text.sub!(/\[(.*?)\]/, "")
  450.            @x += ruby_draw_text(self.contents, @x, @y * line_height + (line_height - self.contents.font.size), $1, @opacity)
  451.            if $game_system.soundname_on_speak != ""
  452.              Audio.se_play($game_system.soundname_on_speak)
  453.            end
  454.            c = ""
  455.          end
  456.          if c == "\030"
  457.            @now_text.sub!(/\[(.*?)\]/, "")
  458.            self.contents.blt(@x , @y * line_height + 8, RPG::Cache.icon($1), Rect.new(0, 0, 24, 24))
  459.           if $game_system.soundname_on_speak != ""
  460.              Audio.se_play($game_system.soundname_on_speak)
  461.            end
  462.            @x += 24
  463.            c = ""
  464.          end
  465.          if c == "\050"

  466.          @now_text.sub!(/\[([0-9]+)\]/, "")

  467.          @autoclosetime = $1.to_i

  468.          next

  469.        end
  470.          if c == "\n"
  471.            if @lines >= $game_temp.choice_start
  472.              @cursor_width = [@cursor_width, @max_x - @face_indent].max
  473.            end
  474.            @lines += 1
  475.            @y += 1
  476.            @x = 0 + @indent + @face_indent
  477.            if @lines >= $game_temp.choice_start
  478.              @x = 8 + @indent + @face_indent
  479.            end
  480.            c = ""
  481.          end
  482.          if c != ""
  483.            # 文字描画
  484.            @x += opacity_draw_text(self.contents, @x, @y * line_height + (line_height - self.contents.font.size), c, @opacity)
  485.            if $game_system.soundname_on_speak != "" then
  486.            Audio.se_play($game_system.soundname_on_speak)
  487.            end
  488.          end
  489.          if Input.press?(Input::B)
  490.            text_not_skip = false
  491.          end
  492.        else
  493.          text_not_skip = true
  494.          break
  495.        end
  496.        # 終了判定
  497.        if text_not_skip
  498.          break
  499.        end
  500.      end
  501.      @write_wait += @write_speed
  502.      return
  503.    end
  504.    if @input_number_window != nil
  505.      @input_number_window.update
  506.      # 決定
  507.      if Input.trigger?(Input::C)
  508.        $game_system.se_play($data_system.decision_se)
  509.        $game_variables[$game_temp.num_input_variable_id] =
  510.        @input_number_window.number
  511.        $game_map.need_refresh = true
  512.        @input_number_window.dispose
  513.        @input_number_window = nil
  514.        terminate_message
  515.      end
  516.      return
  517.    end
  518.    if @contents_showing
  519.      if $game_temp.choice_max == 0
  520.        self.pause = true
  521.      end
  522.      # 取消
  523.      if Input.trigger?(Input::B)
  524.        if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0
  525.          $game_system.se_play($data_system.cancel_se)
  526.          $game_temp.choice_proc.call($game_temp.choice_cancel_type - 1)
  527.          terminate_message
  528.        end
  529.      end
  530.      # 決定
  531.      if Input.trigger?(Input::C)
  532.        if $game_temp.choice_max > 0
  533.          $game_system.se_play($data_system.decision_se)
  534.          $game_temp.choice_proc.call(self.index)
  535.        end
  536.        if @mid_stop
  537.          @mid_stop = false
  538.          return
  539.        else
  540.          terminate_message
  541.        end
  542.      end
  543.      return
  544.    end
  545.    if @fade_out == false and $game_temp.message_text != nil
  546.      @contents_showing = true
  547.      $game_temp.message_window_showing = true
  548.      refresh
  549.      Graphics.frame_reset
  550.      self.visible = true
  551.      self.contents_opacity = 0
  552.    if @input_number_window != nil
  553.      @input_number_window.contents_opacity = 0
  554.    end
  555.      @fade_in = true
  556.      return
  557.    end
  558.    if self.visible
  559.      @fade_out = true
  560.      self.opacity -= 48
  561.      if self.opacity == 0
  562.        self.visible = false
  563.        @fade_out = false
  564.        $game_temp.message_window_showing = false
  565.      end
  566.      return
  567.    end
  568. end
  569. #--------------------------------------------------------------------------
  570. # ● 获得字符
  571. #--------------------------------------------------------------------------
  572. def get_character(parameter)
  573.    case parameter
  574.    when 0
  575.      return $game_player
  576.    else
  577.      events = $game_map.events
  578.      return events == nil ? nil : events[parameter]
  579.    end
  580. end

  581. #--------------------------------------------------------------------------
  582. # ● 设定窗口位置和不透明度
  583. #--------------------------------------------------------------------------
  584. def reset_window
  585. if $game_switches[33]
  586.    #........................................................................
  587.    # 判定
  588.    if @popchar >= 0
  589.      events = $game_map.events
  590.      if events != nil
  591.        character = get_character(@popchar)
  592.        x = [[character.screen_x - 0 - self.width / 2, 4].max, 636 - self.width].min
  593.        y = [[character.screen_y - 48 - self.height, 4].max, 476 - self.height].min
  594.        self.x = x
  595.        self.y = y
  596.      end
  597.    elsif @popchar == -1
  598.      self.x = -4
  599.      self.y = -4
  600.      self.width = 648
  601.      self.height = 488
  602.    else
  603.      if $game_temp.in_battle
  604.        self.y = 16
  605.      else
  606.        case $game_system.message_position
  607.        when 0 # 上
  608.          self.y = 16
  609.        when 1 # 中
  610.          self.y = 160
  611.        when 2 # 下
  612.          self.y = 365
  613.        end
  614.        self.x = $game_variables[21]
  615.        if @face_file == nil
  616.          self.width = 480
  617.        else
  618.          self.width = 600
  619.          self.x -= 58
  620.        end
  621.        self.height = 160
  622.      end
  623.    end
  624.    self.contents = Bitmap.new(self.width - 32, self.height - 32)
  625.    if @face_file != nil
  626.      self.contents.blt(16, 16, RPG::Cache.picture(@face_file), Rect.new(0, 0, 96, 96))
  627.    end
  628.    if @popchar == -1
  629.      self.opacity = 255
  630.      self.back_opacity = 0
  631.    elsif $game_system.message_frame == 0
  632.      self.opacity = 255
  633.      self.back_opacity = 200
  634.    else
  635.      self.opacity = 0
  636.      self.back_opacity = 200
  637.    end
  638.    #........................................................................
  639. else
  640.   if $game_temp.in_battle
  641.     self.y = 16
  642.   else
  643.     case $game_system.message_position
  644.     when 0  # 上
  645.       self.y = 16
  646.     when 1  # 中
  647.       self.y = 160
  648.     when 2  # 下
  649.       self.y = 320
  650.     end
  651.   end
  652.   if $game_system.message_frame == 0
  653.     self.opacity = 255
  654.   else
  655.     self.opacity = 0
  656.   end
  657.   self.back_opacity = FUKI::MES_OPACITY
  658. end
  659. end


  660. #--------------------------------------------------------------------------
  661. # ● line_height
  662. #--------------------------------------------------------------------------
  663. # 返回値:行高
  664. #--------------------------------------------------------------------------
  665. def line_height
  666.    return 32
  667.    if self.contents.font.size >= 20 and self.contents.font.size <= 24
  668.      return 32
  669.    else
  670.      return self.contents.font.size * 15 / 10
  671.    end
  672. end
  673. #--------------------------------------------------------------------------
  674. # ● 透過文字描画
  675. #--------------------------------------------------------------------------
  676. # target :描画対象。Bitmapクラスを指定。
  677. # x :x座標
  678. # y :y座標
  679. # str  :描画文字列
  680. # opacity:透過率(0~255)
  681. # 返回値 :文字幅(@x増加値)。
  682. #--------------------------------------------------------------------------
  683. def opacity_draw_text(target, x, y, str,opacity)
  684.    height = target.font.size
  685.    width = target.text_size(str).width
  686.    opacity = [[opacity, 0].max, 255].min
  687.    if opacity == 255
  688.      target.draw_text(x, y, width, height, str)
  689.      return width
  690.    else
  691.      if @opacity_text_buf.width < width or @opacity_text_buf.height < height
  692.        @opacity_text_buf.dispose
  693.        @opacity_text_buf = Bitmap.new(width, height)
  694.      else
  695.        @opacity_text_buf.clear
  696.      end
  697.      @opacity_text_buf.font.size = target.font.size
  698.      @opacity_text_buf.draw_text(0, 0, width, height, str)
  699.      target.blt(x, y, @opacity_text_buf, Rect.new(0, 0, width, height), opacity)
  700.    return width
  701.    end
  702. end
  703. def ruby_draw_text(target, x, y, str,opacity)
  704.    sizeback = target.font.size
  705.    target.font.size * 3 / 2 > 32 ? rubysize = 32 - target.font.size : rubysize = target.font.size / 2
  706.    rubysize = [rubysize, 6].max
  707.    
  708.    opacity = [[opacity, 0].max, 255].min
  709.    split_s = str.split(/,/)
  710.    
  711.    split_s[0] == nil ? split_s[0] = "" : nil
  712.    split_s[1] == nil ? split_s[1] = "" : nil
  713.    
  714.    height = sizeback + rubysize
  715.    width = target.text_size(split_s[0]).width
  716.    
  717.    target.font.size = rubysize
  718.    ruby_width = target.text_size(split_s[1]).width
  719.    target.font.size = sizeback
  720.    
  721.    buf_width = [target.text_size(split_s[0]).width, ruby_width].max
  722.    
  723.    width - ruby_width != 0 ? sub_x = (width - ruby_width) / 2 : sub_x = 0
  724.    
  725.    if opacity == 255
  726.      target.font.size = rubysize
  727.      target.draw_text(x + sub_x, y - target.font.size, target.text_size(split_s[1]).width, target.font.size, split_s[1])
  728.      target.font.size = sizeback
  729.      target.draw_text(x, y, width, target.font.size, split_s[0])
  730.      return width
  731.    else
  732.      if @opacity_text_buf.width < buf_width or @opacity_text_buf.height < height
  733.        @opacity_text_buf.dispose
  734.        @opacity_text_buf = Bitmap.new(buf_width, height)
  735.      else
  736.        @opacity_text_buf.clear
  737.      end
  738.      @opacity_text_buf.font.size = rubysize
  739.      @opacity_text_buf.draw_text(0 , 0, buf_width, rubysize, split_s[1], 1)
  740.      @opacity_text_buf.font.size = sizeback
  741.      @opacity_text_buf.draw_text(0 , rubysize, buf_width, sizeback, split_s[0], 1)
  742.      if sub_x >= 0
  743.        target.blt(x, y - rubysize, @opacity_text_buf, Rect.new(0, 0, buf_width, height), opacity)
  744.      else
  745.        target.blt(x + sub_x, y - rubysize, @opacity_text_buf, Rect.new(0, 0, buf_width, height), opacity)
  746.      end
  747.      return width
  748.    end
  749. end
  750. #--------------------------------------------------------------------------
  751. # ● \V 变换
  752. #--------------------------------------------------------------------------
  753. def convart_value(option, index)
  754.    option == nil ? option = "" : nil
  755.    option.downcase!
  756.    case option
  757.      when "i"
  758.        unless $data_items[index].name == nil
  759.          r = sprintf("\030[%s]%s", $data_items[index].icon_name, $data_items[index].name)
  760.        end
  761.      when "w"
  762.        unless $data_weapons[index].name == nil
  763.          r = sprintf("\030[%s]%s", $data_weapons[index].icon_name, $data_weapons[index].name)
  764.        end
  765.      when "a"
  766.        unless $data_armors[index].name == nil
  767.          r = sprintf("\030[%s]%s", $data_armors[index].icon_name, $data_armors[index].name)
  768.        end
  769.      when "s"
  770.        unless $data_skills[index].name == nil
  771.          r = sprintf("\030[%s]%s", $data_skills[index].icon_name, $data_skills[index].name)
  772.        end
  773.      else
  774.      r = $game_variables[index]
  775.    end
  776.    r == nil ? r = "" : nil
  777.    return r
  778. end
  779. #--------------------------------------------------------------------------
  780. # ● 解放
  781. #--------------------------------------------------------------------------
  782. def dispose
  783.    terminate_message
  784.    if @gaiji_cache != nil
  785.      unless @gaiji_cache.disposed?
  786.        @gaiji_cache.dispose
  787.      end
  788.    end
  789.    unless @opacity_text_buf.disposed?
  790.      @opacity_text_buf.dispose
  791.    end
  792.    $game_temp.message_window_showing = false
  793.    if @input_number_window != nil
  794.      @input_number_window.dispose
  795.    end
  796.    super
  797. end
  798. #--------------------------------------------------------------------------
  799. # ● 矩形更新
  800. #--------------------------------------------------------------------------
  801. def update_cursor_rect
  802.    if @index >= 0
  803.      n = $game_temp.choice_start + @index
  804.      self.cursor_rect.set(4 + @indent + @face_indent, n * 32 + 4, @cursor_width, 32)
  805.    else
  806.      self.cursor_rect.empty
  807.    end
  808. end
  809. end
  810. #==============================================================================
  811. # ■ Window_Frame (枠だけで中身の無いウィンドウ)
  812. #==============================================================================
  813. class Window_Frame < Window_Base
  814. #--------------------------------------------------------------------------
  815. # ● オブジェクト初期化
  816. #--------------------------------------------------------------------------
  817. def initialize(x, y, width, height)
  818.    super(x, y, width, height)
  819.    self.contents = nil
  820.    self.back_opacity = 100
  821. end
  822. #--------------------------------------------------------------------------
  823. # ● 解放
  824. #--------------------------------------------------------------------------
  825. def dispose
  826.    super
  827.    end
  828. end
  829. #==============================================================================
  830. # ■ Air_Text (何も無いところに文字描写 = 枠の無い瞬間表示メッセージウィンドウ)
  831. #==============================================================================
  832. class Air_Text < Window_Base
  833. #--------------------------------------------------------------------------
  834. # ● オブジェクト初期化
  835. #--------------------------------------------------------------------------
  836. def initialize(x, y, designate_text)
  837.    super(x-16, y-16, 32 + designate_text.size * 12, 56)
  838.    self.opacity = 0
  839.    self.back_opacity = 0
  840.    self.contents = Bitmap.new(self.width - 32, self.height - 32)
  841.    w = self.contents.width
  842.    h = self.contents.height
  843.    self.contents.draw_text(0, 0, w, h, designate_text)
  844. end
  845. #--------------------------------------------------------------------------
  846. # ● 解放
  847. #--------------------------------------------------------------------------
  848. def dispose
  849.    self.contents.clear
  850.    super
  851. end
  852. end



  853. #==============================================================================
  854. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  855. #==============================================================================
复制代码

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42438
在线时间
7603 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

2
发表于 2010-9-5 16:34:25 | 只看该作者
情从代码35行注释开始看

点评

那只是解决文章的颜色,改不了名字的颜色。 不过名字的颜色我自己解决了  发表于 2010-9-5 16:40
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
40 小时
注册时间
2009-9-3
帖子
64
3
 楼主| 发表于 2010-9-5 16:46:02 | 只看该作者
ok了,自己解决了
  1. def initialize(x, y, designate_text)
  2.    super(x-16, y-16, 32 + designate_text.size * 12, 56)
  3.    self.opacity = 0
  4.    self.back_opacity = 0
  5.    self.contents = Bitmap.new(self.width - 32, self.height - 32)
  6.    w = self.contents.width
  7.    h = self.contents.height
  8.     self.contents.font.bold = true
  9.    self.contents.font.color = Color.new(0,0,0,200)
  10.    self.contents.draw_text(0, 0, w, h, designate_text)
  11.    self.contents.font.bold = false
  12. end
复制代码
自我结贴

点评

噢,我没看清楚  发表于 2010-9-5 18:00
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-27 13:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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