Project1

标题: 求教:如何改变战斗信息里的数字颜色 [打印本页]

作者: 小兵的大刀    时间: 2008-2-16 03:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: Beside    时间: 2008-2-16 03:38
颜色全改的话。window_battlemessage里119行把normal_color改成需要的颜色。

作者: 小兵的大刀    时间: 2008-2-16 03:40
提示: 作者被禁止或删除 内容自动屏蔽
作者: 越前リョーマ    时间: 2008-2-16 03:46
把对话框上的那个颜色改掉……
作者: 小兵的大刀    时间: 2008-2-16 03:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: 越前リョーマ    时间: 2008-2-16 03:55
以下引用小兵的大刀于2008-2-15 19:54:46的发言:


以下引用越前リョーマ于2008-2-15 19:46:47的发言:

把对话框上的那个颜色改掉……


呃,能否具体点呢?有点摸不着头脑

对话框右下角不是有一堆颜色块吗……
作者: 小兵的大刀    时间: 2008-2-16 04:04
提示: 作者被禁止或删除 内容自动屏蔽
作者: 越前リョーマ    时间: 2008-2-16 04:06
以下引用小兵的大刀于2008-2-15 20:04:17的发言:


以下引用越前リョーマ于2008-2-15 19:55:14的发言:


以下引用小兵的大刀于2008-2-15 19:54:46的发言:


以下引用越前リョーマ于2008-2-15 19:46:47的发言:

把对话框上的那个颜色改掉……


呃,能否具体点呢?有点摸不着头脑


对话框右下角不是有一堆颜色块吗……


刚才我看了一下,那个好像是把所有的颜色都改了,不能针对角色名和数字分别更改吧,还是说要自己加几个变量?请指教
本人脚本刚开始学不久,还很菜

如果那些颜色是在这里控制的话,
改一下就能变色……

但哪个控制哪个我不大清楚……(不负责 《——)
作者: 小兵的大刀    时间: 2008-2-16 04:15
提示: 作者被禁止或删除 内容自动屏蔽
作者: 雪流星    时间: 2008-2-16 04:21
感觉小柯有点不知所云

我看过Window_BattleMessage的脚本了
虽然是继承Window_Message,但是MS没有继承到变色功能
是遗传问题吗?{/tp}

先研究研究再回帖
作者: 雪流星    时间: 2008-2-16 11:56
{/cy}修改完成
Window_BattleMessage倒数最後两句

  1.     self.contents.font.color = normal_color
  2.     self.contents.draw_text(rect, @lines[index])
复制代码

替换成

  1.    while ((c = text.slice!(/./m)) != nil)
  2.      # \C[n] 的情況下
  3.      if c == "\001"
  4.        # 更改文字色
  5.        text.sub!(/\[([0-9]+)\]/, "")
  6.        color = $1.to_i
  7.        if color >= 0 and color <= 31
  8.          self.contents.font.color = text_color(color)
  9.        else
  10.          self.contents.font.color = text_color(0)
  11.        end
  12.        # 下面的文字
  13.        next
  14.      end
  15.      if c == "\n"
  16.        y += [24, 0].max
  17.        x = 0
  18.        next
  19.      end
  20.      if x+22 > 353
  21.        y += [24, 0].max
  22.        x = 0
  23.      end
  24.      x+= 22
  25.      self.contents.draw_text(x, y, 348, 24, c)
  26.    end
复制代码


然後在要修改的字串前面加上\\c[n]
n为窗口外观下面两格的颜色代号(0~31)
超出0~31的范围会自动用白色显示

效果图:
[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 小兵的大刀    时间: 2008-2-16 11:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: 雪流星    时间: 2008-2-16 12:04
不好意思,修改一下,之前那个是包含了我自己在用的换行功能,
如果LZ不需要的话就用下面这个吧:

  1.    while ((c = text.slice!(/./m)) != nil)
  2.      # \C[n] 的情況下
  3.      if c == "\001"
  4.        # 更改文字色
  5.        text.sub!(/\[([0-9]+)\]/, "")
  6.        color = $1.to_i
  7.        if color >= 0 and color <= 31
  8.          self.contents.font.color = text_color(color)
  9.        else
  10.          self.contents.font.color = text_color(0)
  11.        end
  12.        # 下面的文字
  13.        next
  14.      end
  15.      self.contents.draw_text(rect, 348, 24, c)
  16.    end
复制代码

作者: 小兵的大刀    时间: 2008-2-16 12:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: 雪流星    时间: 2008-2-16 13:18
不好意思,没有经过极限测试
出现了些许BUG
请用这个(替代上面那个脚本)


  1.     self.contents.font.color = normal_color
  2.    text = @lines[index].clone
  3.    while ((c = text.slice!(/./m)) != nil)
  4.      # \C[n] 的情況下
  5.      if c == "\001"
  6.        # 更改文字色
  7.        text.sub!(/\[([0-9]+)\]/, "")
  8.        color = $1.to_i
  9.        if color >= 0 and color <= 31
  10.          self.contents.font.color = text_color(color)
  11.        else
  12.          self.contents.font.color = text_color(0)
  13.        end
  14.        # 下面的文字
  15.        next
  16.      end
  17.      c_width = contents.text_size(c).width
  18.      rect.x+= c_width
  19.      self.contents.draw_text(rect.x, rect.y, 348, 24, c)
  20.    end   
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1