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

Project1

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

[已经解决] 使用增强文字脚本更改字体颜色失效

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
36 小时
注册时间
2011-12-27
帖子
38
跳转到指定楼层
1
发表于 2012-2-2 02:49:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 V叶雨 于 2012-2-2 02:51 编辑

输入文字,我顺便想让几个角色名为深蓝,我作如下输入:\c[1]叶雨\c[0]拿起这把武器看了看
按f2预览“叶雨”有颜色变化,但测试的时候就没有~不知怎么回事~求指教

评分

参与人数 1星屑 +10 收起 理由
R-零 + 10 好的提问奖励

查看全部评分

Lv2.观梦者

梦石
0
星屑
777
在线时间
1270 小时
注册时间
2011-2-14
帖子
5589
2
发表于 2012-2-2 08:24:55 | 只看该作者
那是因为可能window_massage这个脚本被改动,或者是Window_Base这个脚本被改动

附上默认代码覆盖尝试,若不行的话,线上解决。将下面的代码插入main前面
  1. class Window_Base < Window

  2.   def text_color(n)
  3.     case n
  4.     when 0
  5.       return Color.new(255, 255, 255, 255)
  6.     when 1
  7.       return Color.new(128, 128, 255, 255)
  8.     when 2
  9.       return Color.new(255, 128, 128, 255)
  10.     when 3
  11.       return Color.new(128, 255, 128, 255)
  12.     when 4
  13.       return Color.new(128, 255, 255, 255)
  14.     when 5
  15.       return Color.new(255, 128, 255, 255)
  16.     when 6
  17.       return Color.new(255, 255, 128, 255)
  18.     when 7
  19.       return Color.new(192, 192, 192, 255)
  20.     else
  21.       normal_color
  22.     end
  23.   end
  24. end
  25. class Window_Message < Window_Selectable
  26.   def refresh
  27.     self.contents.clear
  28.     self.contents.font.color = normal_color
  29.     x = y = 0
  30.     @cursor_width = 0
  31.     # 到选择项的下一行字
  32.     if $game_temp.choice_start == 0
  33.       x = 8
  34.     end
  35.     # 有等待显示的文字的情况下
  36.     if $game_temp.message_text != nil
  37.       text = $game_temp.message_text
  38.       # 限制文字处理
  39.       begin
  40.         last_text = text.clone
  41.         text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
  42.       end until text == last_text
  43.       text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
  44.         $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
  45.       end
  46.       # 为了方便、将 "\\\\" 变换为 "\000"
  47.       text.gsub!(/\\\\/) { "\000" }
  48.       # "\\C" 变为 "\001" 、"\\G" 变为 "\002"
  49.       text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
  50.       text.gsub!(/\\[Gg]/) { "\002" }
  51.       # c 获取 1 个字 (如果不能取得文字就循环)
  52.       while ((c = text.slice!(/./m)) != nil)
  53.         # \\ 的情况下
  54.         if c == "\000"
  55.           # 还原为本来的文字
  56.           c = "\\"
  57.         end
  58.         # \C[n] 的情况下
  59.         if c == "\001"
  60.           # 更改文字色
  61.           text.sub!(/\[([0-9]+)\]/, "")
  62.           color = $1.to_i
  63.           if color >= 0 and color <= 7
  64.             self.contents.font.color = text_color(color)
  65.           end
  66.           # 下面的文字
  67.           next
  68.         end
  69.         # \G 的情况下
  70.         if c == "\002"
  71.           # 生成金钱窗口
  72.           if @gold_window == nil
  73.             @gold_window = Window_Gold.new
  74.             @gold_window.x = 560 - @gold_window.width
  75.             if $game_temp.in_battle
  76.               @gold_window.y = 192
  77.             else
  78.               @gold_window.y = self.y >= 128 ? 32 : 384
  79.             end
  80.             @gold_window.opacity = self.opacity
  81.             @gold_window.back_opacity = self.back_opacity
  82.           end
  83.           # 下面的文字
  84.           next
  85.         end
  86.         # 另起一行文字的情况下
  87.         if c == "\n"
  88.           # 刷新选择项及光标的高
  89.           if y >= $game_temp.choice_start
  90.             @cursor_width = [@cursor_width, x].max
  91.           end
  92.           # y 加 1
  93.           y += 1
  94.           x = 0
  95.           # 移动到选择项的下一行
  96.           if y >= $game_temp.choice_start
  97.             x = 8
  98.           end
  99.           # 下面的文字
  100.           next
  101.         end
  102.         # 描绘文字
  103.         self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
  104.         # x 为要描绘文字的加法运算
  105.         x += self.contents.text_size(c).width
  106.       end
  107.     end
  108.     # 选择项的情况
  109.     if $game_temp.choice_max > 0
  110.       @item_max = $game_temp.choice_max
  111.       self.active = true
  112.       self.index = 0
  113.     end
  114.     # 输入数值的情况
  115.     if $game_temp.num_input_variable_id > 0
  116.       digits_max = $game_temp.num_input_digits_max
  117.       number = $game_variables[$game_temp.num_input_variable_id]
  118.       @input_number_window = Window_InputNumber.new(digits_max)
  119.       @input_number_window.number = number
  120.       @input_number_window.x = self.x + 8
  121.       @input_number_window.y = self.y + $game_temp.num_input_start * 32
  122.     end
  123.   end
  124. end
复制代码

评分

参与人数 1星屑 +200 梦石 +2 收起 理由
「旅」 + 200 + 2 认可答案

查看全部评分

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
36 小时
注册时间
2011-12-27
帖子
38
3
 楼主| 发表于 2012-2-2 14:41:39 | 只看该作者
谢谢~成功解决~·
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-28 11:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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