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

Project1

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

[已经解决] 【专业伸手党】求一个能让选项颜色变成其他颜色的方法...

[复制链接]

Lv1.梦旅人

匿·蹤

梦石
0
星屑
65
在线时间
99 小时
注册时间
2006-3-19
帖子
456
1
发表于 2013-3-4 19:56:12 | 显示全部楼层
本帖最后由 OCTSJimmy 于 2013-3-20 09:52 编辑

您提供的脚本看了下,发现脚本是用Window_Command来做选项的,并且Window_Command中的 draw_item方法并没有被改写。
我尝试写了个脚本,您试试行不:

RUBY 代码复制
  1. #==============================================================================
  2. # ■ Window_Command
  3. #------------------------------------------------------------------------------
  4. #  一般的命令选择行窗口。
  5. #==============================================================================
  6. class Window_Command < Window_Selectable
  7.    attr_reader :temp # [url=home.php?mod=space&uid=263426]@temp[/url] 用于增强
  8.    attr_reader :frozen_char # 特殊字符处理
  9.   #--------------------------------------------------------------------------
  10.   # ● 绘制项目
  11.   #     index   : 项目位置
  12.   #     enabled : 有效标志,false时项目半透明化
  13.   #     By OCTSJimmy(风星剑仙)
  14.   #        做了增强,1、可使用\v[x]引用变量
  15.   #                  2、可使用\n[x]引用角色名字
  16.   #                  3、可使用\c[x]定义颜色
  17.   #                  4、可以使用\g来显示金钱窗口
  18.   #                  5、可以使用\s[x]来引用技能
  19.   #                  6、可以使用\i[x]来引用物品
  20.   #                  7、可以使用\w[x]来引用武器
  21.   #                  8、可以使用\a[x]来引用防具
  22.   #                  9、可以使用\f[sx]来改变字号\f[nx]来改变字体\f[cx]与\c一致,定义颜色
  23.   #                  10、可以使用\f[c#x]来依据rgb定义颜色
  24.   #                  11、可以使用\f[ax]来使用字体的附加效果
  25.   #                  12、可以使用\a[x]来使用角色动画
  26.   #                  13、可以使用\b[x]来使用心情动画
  27.   #         使用方法:main以上插入,其他请参见上面部分,另外设置成无效的选项,自动强制透明度为128需注意。
  28.   #         可能的冲突:所有重定义Window_Command中draw_item方法的脚本均会发生冲突。
  29.   #--------------------------------------------------------------------------
  30.   def draw_item(index, enabled = true)
  31.     rect = item_rect(index)
  32.     rect.x += 4
  33.     rect.width -= 8
  34.     h = nil
  35.     self.contents.clear_rect(rect)
  36.     self.contents.font.color = normal_color
  37.     if @commands[index].frozen?
  38.          @temp= @commands[index].clone
  39.     else
  40.          @temp = @commands[index].dup #这个东东是最坑的,假如不使用dup各种蛋疼
  41.     end
  42.  
  43.     ## 特定字符处理
  44.     @temp.gsub!(/#\[(.*?)\]/)    {@frozen_char.push($1); "\xff"}
  45.     @temp.gsub!(/#\<(.*?)\>/)    {""}
  46.     ## 默认控制符
  47.     @temp.gsub!(/\\V\[(\d+)\]/i) {$game_variables[$1.to_i]}
  48.     @temp.gsub!(/\\V\[(\d+)\]/i) {$game_variables[$1.to_i]}
  49.     @temp.gsub!(/\\N\[(\d+)\]/i) {$game_actors[$1.to_i].name}
  50.     @temp.gsub!(/\\C\[(\d+)\]/i) {"\x01[#{$1}]"}
  51.     @temp.gsub!(/\\G/)           {"\x02"}
  52.     @temp.gsub!(/\\\\/)          {"\\"}
  53.     ## 更改不透明度
  54.     @temp.gsub!(/\\O\[(\d+)\]/i) {"\x09[#{$1}]"}
  55.     ## 显示数据库元素
  56.     @temp.gsub!(/\\S\[(\d+)\]/i) {"\x0a[#{$1}]" + $data_skills[$1.to_i].name}
  57.     @temp.gsub!(/\\I\[(\d+)\]/i) {"\x0b[#{$1}]" + $data_items[$1.to_i].name}
  58.     @temp.gsub!(/\\W\[(\d+)\]/i) {"\x0c[#{$1}]" + $data_weapons[$1.to_i].name}
  59.     @temp.gsub!(/\\A\[(\d+)\]/i) {"\x0d[#{$1}]" + $data_armors[$1.to_i].name}
  60.     ## 更改字体
  61.     @temp.gsub!(/\\F\[S(\d+)\]/i){"\x0e[#{$1}]"}
  62.     @temp.gsub!(/\\F\[N(\d+)\]/i){"\x0f[#{$1}]"}
  63.     @temp.gsub!(/\\F\[C(\d+)\]/i){"\x01[#{$1}]"}
  64.     ## 16进制颜色
  65.     @temp.gsub!(/\\F\[C\#([a-f0-9]+)\]/i) {"\x10[#{$1}]"}
  66.     ## 字体附加效果
  67.     @temp.gsub!(/\\F\[A(\d+)\]/i){"\x11[#{$1}]"}
  68.     ## 提取动画对象和 ID
  69.     @temp.gsub!(/\\A\[(\S+)\,(\d+)\]/i) {"\x15[#{$1},#{$2}]"}
  70.     @temp.gsub!(/\\B\[(\S+)\,(\d+)\]/i) {"\x16[#{$1},#{$2}]"}
  71.    loop do
  72.       c = @temp.slice!(/./m)
  73.       case c
  74.       when nil                          # 没有可以显示的文字
  75.         break
  76.       when "\x01"                       # \C[n]  (更改文字色)
  77.         @temp.sub!(/\[([0-9]+)\]/, "")
  78.         self.contents.font.color = text_color($1.to_i)
  79.         next
  80.       when "\x02"                       # \G  (显示所持金)
  81.         @gold_window.refresh
  82.         @gold_window.open
  83.       ## 更改不透明度的情况下
  84.       when "\x09"
  85.         @temp.sub!(/\[(\d+)\]/, "")
  86.         self.contents.font.color.alpha = $1.to_i
  87.       ## 显示技能情况下
  88.       when "\x0a"
  89.         @temp.sub!(/\[(\d+)\]/, "")
  90.         draw_icon($data_skills[$1.to_i].icon_index, rect.x, rect.y)
  91.         ## 横坐标增加图标宽度
  92.         rect.x += 24
  93.       ## 显示物品情况下
  94.       when "\x0b"
  95.         @temp.sub!(/\[(\d+)\]/, "")
  96.         draw_icon($data_items[$1.to_i].icon_index, rect.x, rect.y)
  97.         ## 横坐标增加图标宽度
  98.         rect.x += 24
  99.       ## 显示武器情况下
  100.       when "\x0c"
  101.         @temp.sub!(/\[(\d+)\]/, "")
  102.         p $1
  103.         draw_icon($data_weapons[$1.to_i].icon_index, rect.x, rect.y)
  104.         ## 横坐标增加图标宽度
  105.         rect.x += 24
  106.       ## 显示防具情况下
  107.       when "\x0d"
  108.         @temp.sub!(/\[(\d+)\]/, "")
  109.         draw_icon($data_armors[$1.to_i].icon_index, rect.x, rect.y)
  110.         ## 横坐标增加图标宽度
  111.         rect.x += 24
  112.       ## 更改字体的情况下
  113.       when "\x0e"
  114.         @temp.sub!(/\[(\d+)\]/, "")
  115.         self.contents.font.size = $1.to_i
  116.       when "\x0f"
  117.         @temp.sub!(/\[(\d+)\]/, "")
  118.         name = Font_Lib[$1.to_i]
  119.         self.contents.font.name = Font.exist?(name) ? name : Font.default_name
  120.       ## 16进制颜色
  121.       when "\x10"
  122.         @temp.sub!(/\[(\w+)\]/, "")
  123.         r,g,b = $1.scan(/../)
  124.         self.contents.font.color = Color.new(r.hex, g.hex, b.hex)
  125.       ## 字体附加效果
  126.       when "\x11"
  127.         @temp.sub!(/\[(\d+)\]/, "")
  128.         ## 获取字体附加效果
  129.         @font_adj = $1.to_i
  130.       ## 显示角色动画
  131.       when "\x15"
  132.         @temp.sub!(/\[(\S+)\,(\d+)\]/, "")
  133.         character = interpreter.get_character($1.to_i)
  134.         character.animation_id = $2.to_i unless character.nil?
  135.         next
  136.       ## 显示心情动画
  137.       when "\x16"
  138.         @temp.sub!(/\[(\S+)\,(\d+)\]/, "")
  139.         character = interpreter.get_character($1.to_i)
  140.         character.balloon_id = $2.to_i unless character.nil?
  141.         next
  142.       ## 特定字符处理
  143.       when "\xff"
  144.         @temp.insert(0, @frozen_char.shift)
  145.       else
  146.         c_width = self.contents.text_size(c).width
  147.         if h.nil?
  148.           h = c_width
  149.         end
  150.         self.contents.font.color.alpha = enabled ? 255 : 128
  151.         self.contents.draw_text(rect,c)
  152.         rect.x += h
  153.         rect.width = h
  154.       end
  155.     end
  156.     rect.x = 0
  157.   end
  158. end
         

点评

非常不好意思,被老妈禁网好多时间  发表于 2013-3-14 22:05
卐忍 → 解忍 → 元忍 → 隐忍 → 卍忍 → 匿踪(最终)
完全退步到了卐忍阶段
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-6-8 20:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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