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

Project1

 找回密码
 注册会员
搜索

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

查看数: 4015 | 评论数: 11 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-3-4 19:56

正文摘要:

本帖最后由 一瞬间的幻觉 于 2013-3-4 20:00 编辑 跪求一种绿色的,无冲突的alias方式的解决方法。 可以让其中一个或者几个选项改变颜色。 因为我们游戏中经常会碰到这种情况“某个选项暂时还未开放”但是由于 ...

回复

OCTSJimmy 发表于 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
一瞬间的幻觉 发表于 2013-3-14 22:41:45
OCTSJimmy 发表于 2013-3-4 19:56
您提供的脚本看了下,发现脚本是用Window_Command来做选项的,并且Window_Command中的 draw_item方法并没有 ...

伤不起啊,,,被禁上网十天。。。。

今天偷偷上,来把多天未解决的帖子解决了

非常赞的脚本,,,小瞬竟然可以请动前辈为我专门写一个脚本,太受宠若惊啦
神秘来客3 发表于 2013-3-9 20:52:38
本帖最后由 神秘来客3 于 2013-3-9 20:56 编辑

\C[n]就行啦,不过第二个还要\C[0]。(LZ游戏第一个选项亮了)
黄亦天 发表于 2013-3-9 13:21:00
嘛 如果是别人的脚本的话 就不知道怎么做了
如果是重新做一个的话倒是好办
一瞬间的幻觉 发表于 2013-3-5 19:38:22
protosssonny 发表于 2013-3-5 09:52
这样的话,我们需要你现有工程的这个菜单呀。如果方便的话,上上现有的工程。
这个问题比较简单,暂时看看 ...

可以直接改沉影大大的脚本。。。反正我是无耻的伸手党,,,,嘿嘿

点评

好的、、、、  发表于 2013-3-5 20:03
那么先看看大家是否愿意来帮,反正你这问题也不急的,离你制作完成应该还有很长时间吧?若真没人回答,P叔再来搞定它!  发表于 2013-3-5 19:41
咕噜 发表于 2013-3-5 18:23:12
改造自沉影大大的对话框加强版,我在期待,我在伸手,我在等待,不是,我是来问小瞬用的是什么字体的……(会被扣分的= =

点评

华康童童体  发表于 2013-3-5 19:39
一瞬间的幻觉 发表于 2013-3-5 17:18:49
本帖最后由 一瞬间的幻觉 于 2013-3-14 22:36 编辑
protosssonny 发表于 2013-3-5 09:52
这样的话,我们需要你现有工程的这个菜单呀。如果方便的话,上上现有的工程。
这个问题比较简单,暂时看看 ...


这个选项的工程,只是加了选择项的坐标,以及选项的背景图

应该没什么关系把,,,

改造自沉影大大的对话框加强版,呵呵

点评

连版主都不晓得怎么弄,我们这些平民百姓怎么可能知道!  发表于 2013-3-8 12:35
那么说,直接用沉影大的范例来改造也是可以的了?  发表于 2013-3-5 17:28
怪蜀黍 发表于 2013-3-5 09:52:45
本帖最后由 protosssonny 于 2013-3-5 09:54 编辑

这样的话,我们需要你现有工程的这个菜单呀。如果方便的话,上上现有的工程。
这个问题比较简单,暂时看看有不由人愿意接手,P叔先观察一下情况,实在没人的话P叔再考虑接。
简单的饭菜向来是要留给大家吃的。
一瞬间的幻觉 发表于 2013-3-4 21:10:13
Password 发表于 2013-3-4 21:05
小瞬啊……
用图片代替不行么?

图片的话,我也有想过,但是感觉不是很方便,,,还是伸手更加方便啊

点评

绝对同意结城的话,如果是我的话,我宁愿麻烦点换个方法,也不愿做伸手党。。。  发表于 2013-3-14 23:01
壕无人性可言!  发表于 2013-3-4 22:15
Password 发表于 2013-3-4 21:05:06
小瞬啊……
用图片代替不行么?

原理就像事件标题不行么? = =|
(理论上这绝对可行!绝对!)
yangjunyin2002 发表于 2013-3-4 19:59:54
对了喵,选项里貌似不是可以用代码么、应该可以\c[n]的。不过貌似前面会空出来一点,可以这样解决(虽然是VA的,不过貌似VX是可以用的。。。)http://rpg.blue/forum.php?mod=viewthread&tid=233548
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-12-23 02:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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