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

Project1

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

[已经过期] ITEM_LV By.Clov。绘色脚本的兼容问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
138
在线时间
304 小时
注册时间
2014-4-11
帖子
419
跳转到指定楼层
1
发表于 2014-10-4 14:14:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
这个物品绘色的基本不兼容所有的技能脚本 比如技能升级
其他不兼容的脚本也特别多 只要是有绘色的好像都不太对
有木有人能帮忙改一下或者告诉我怎么解决?
附上脚本

RUBY 代码复制
  1. #————————————————————————————————————————
  2. # ●ITEM_LV By.Clov
  3. #  *物品等级颜色描绘
  4. #  *Ver1.1 Date:2013.9.17
  5. #  *Ver1.2 Date:2013.9.24
  6. #  *Ver1.3 Date:2013.9.24
  7. #  *Ver1.4 Date:2013.10.10
  8. #  *Ver1.5 Date:2013.10.12
  9. #  *Ver1.6 Date:2013.10.17
  10. #————————————————————————————————————————
  11. module ITEM_LV
  12.   ITEM_NAME = true                #物品名是否也绘色 关闭的话建议关闭ITEM_GFR
  13.   ITEM_GFR = :UD                  #物品名绘色使用渐变色:LR 左右/:UD 上下/nil关闭
  14.   ITEM_ENA = true                 #物品名、图标没有“无效透明”
  15.   ITEM_TYPE = nil#:W                  #背景描绘类型:W 横向 :H纵向
  16.   ITEM_SYM = ["[]",nil]           #设置取得等级的头尾字符 nil为内部字符
  17.   ITEM_BACK_WIDTH = 172          #背景显示宽度(nil同步物品名宽度)
  18.   ITEM_BACK_BBL = 0.5            #背景透明渐变的长度(0.1-0.5)
  19.   ITEM_COLOR={
  20.   "wh"=>Color.new(230,230,230,160),  #等级1 白色
  21.   "bl"=>Color.new(1,108,254,160),    #等级2 蓝色
  22.   "gr"=>Color.new(2,224,33,160),     #等级3 绿色
  23.   "go"=>Color.new(246,255,3,160),    #等级4 金色
  24.   "pe"=>Color.new(234,3,255,160),    #等级5 紫色
  25.   "bo"=>Color.new(254,37,52,160),    #等级6 红色
  26.   "cj"=>Color.new(2,253,209,160),   #等级0 成就徽章-湖蓝色
  27.   "神话"=>Color.new(rand(255),rand(255),rand(255),160)  #神话级 测试颜色
  28.   }
  29. end
  30. #————————————————————————————————————————
  31. # ●Window_Base
  32. #————————————————————————————————————————
  33. class Window_Base < Window
  34.   #———————————————————————————————————————
  35.   #绘制物品名称
  36.   #enabled : 有效的标志。false 的时候使用半透明效果绘制
  37.   #———————————————————————————————————————
  38.   def draw_item_name(item, x, y, enabled=true, width=ITEM_LV::ITEM_BACK_WIDTH)
  39.     return unless item
  40.     #有效度总开关
  41.     enabled = ITEM_LV::ITEM_ENA ? ITEM_LV::ITEM_ENA : enabled
  42.     #·等级绘制
  43.     f1 = ITEM_LV::ITEM_SYM[0] ; f2 = ITEM_LV::ITEM_SYM[-1]
  44.     item_lv = item.note.sten(f1, f2) ; if item_lv
  45.     #等级背景宽为设定值
  46.     if width ; w = width
  47.     #等级背景宽同步物品名
  48.     else ; w = contents.text_size(item.name).width+24 ; end
  49.     #绘制等级背景
  50.     item_lv =  item_lv.to_i != 0 ? item_lv.to_i : item_lv
  51.     color = ITEM_LV::ITEM_COLOR[item_lv]
  52.     case ITEM_LV::ITEM_TYPE
  53.     when:W;contents.back_w(x,y,w,line_height,ITEM_LV::ITEM_BACK_BBL,color)
  54.     when:H;contents.back_h(x,y,w,line_height,ITEM_LV::ITEM_BACK_BBL,color);end
  55.     #物品名绘色
  56.     contents.font.color = ITEM_LV::ITEM_NAME ? color : normal_color
  57.     contents.font.color.alpha = enabled ? 255 : 160
  58.     #·默认绘制
  59.     else ; w = width ; change_color(normal_color, enabled) ; end
  60.     #绘制图标
  61.     draw_icon(item.icon_index, x, y, enabled)
  62.  
  63.     #绘制物品名
  64.     case ITEM_LV::ITEM_GFR
  65.     when nil ; draw_text(x + 24, y, w, line_height, item.name)
  66.     when :LR ; item_name_gfr_text(x + 24, y, item.name,false)
  67.     when :UD ; item_name_gfr_text(x + 24, y, item.name,true) ; end
  68.   end
  69.   #———————————————————————————————————————
  70.   #绘制渐变物品名称
  71.   #———————————————————————————————————————
  72.   def item_name_gfr_text(x, y, text, vertical)
  73.     color1 = contents.font.color
  74.     color2 = Color.new(color1.red+80,color1.green+80,color1.blue+80)
  75.     contents.gfr_text_pix(x, y,color1,color2, text, vertical)
  76.   end
  77. end
  78. #————————————————————————————————————————
  79. # ●String
  80. #  *提取指定字符内容
  81. #  *使用 "<name:abc123>".sten("<>","name:") >> "abc123"
  82. #  -se为起始终点字符 必须指定两个字符字符作为起始点
  83. #  -sym为内容标识字符 忽略的话只读第一个匹配sn的内容
  84. #————————————————————————————————————————
  85. class String
  86.   #———————————————————————————————————————
  87.   def sten(se,sym=nil)
  88.     if sym ; s,e = se[0]<<sym,se[1] ; f = self.split(s)[1]
  89.     return nil unless f && f.index(e) ; f[0,f.index(e)] ; else
  90.     s,e = se[0],se[1] ; f = self ; i0 = f.index(s) ; i1 = f.index(e)
  91.     return nil unless i0 && i1 ; f[i0+1,i1-i0-1] ; end
  92.   end
  93.   #———————————————————————————————————————
  94.   def resten ; /<SYM(.*?)>/ =~ self ; $1 ; end
  95.   #———————————————————————————————————————
  96. end
  97. #————————————————————————————————————————
  98. # ●位图的追加绘制方法
  99. #  *渐透明描绘以及RGSS1用gradient_fill_rect
  100. #————————————————————————————————————————
  101. class Bitmap
  102.   #———————————————————————————————————————
  103.   # ● 渐透明描绘(宽)
  104.   #———————————————————————————————————————
  105.   def back_w(x,y,w,h,bl=0.3,c=Color.new(0,200,230,128))
  106.     r = c.red ; g = c.green ; b = c.blue ; o = c.alpha
  107.     l = (w*bl).round
  108.     all = [l,w-l*2,l]
  109.     all.each_index {|i| ; w2 = all[i]
  110.     case i
  111.     when 0 ; x2 = 0 ; o1 = 0 ; o2 = o
  112.     when 1 ; x2 = all[0] ; o1 = o2 = o
  113.     when 2 ; x2 = all[0] + all[1] ; o1 = o ; o2 = 0 ; end
  114.     c1 = Color.new(r,g,b,o1) ; c2 = Color.new(r,g,b,o2)
  115.     gradient_fill_rect(x+x2, y, w2, h, c1, c2) if w2 > 0 }
  116.   end
  117.   #———————————————————————————————————————
  118.   # ● 渐透明描绘(高)
  119.   #———————————————————————————————————————
  120.   def back_h(x,y,w,h,bl=0.3,c=Color.new(0,200,230,128))
  121.     r = c.red ; g = c.green ; b = c.blue ; o = c.alpha
  122.     l = (h*bl).round
  123.     all = [l,h-l*2,l]
  124.     all.each_index {|i| ; h2 = all[i]
  125.     case i
  126.     when 0 ; y2 = 0 ; o1 = 0 ; o2 = o
  127.     when 1 ; y2 = all[0] ; o1 = o2 = o
  128.     when 2 ; y2 = all[0] + all[1] ; o1 = o ; o2 = 0 ; end
  129.     c1 = Color.new(r,g,b,o1) ; c2 = Color.new(r,g,b,o2)
  130.     gradient_fill_rect(x, y+y2, w, h2, c1, c2, true) if h2 > 0 }
  131.   end
  132. end
  133. #————————————————————————————————————————
  134. # ●GFR_TEXT(VA) By.Clov
  135. #  *横向、纵向渐变描绘文字
  136. #  -Ver:1.0 Date:2013.10.12
  137. #  -Ver:1.1 Date:2013.10.17 优化gfr_text_pix
  138. #  *使用:
  139. #  -gfr_text_pix(x, y, color1, color2, text, vertica)
  140. #  -gfr_text_blt(x, y, color1, color2, text, vertica)
  141. #  -x:x坐标 y:y坐标 color1:左、上颜色 color2:右、下颜色
  142. #  -text:字符串 vertica:false/左右渐变 true/上下渐变
  143. #  *gfr_text_pix效率优先取消了渐变透明功能 gfr_text_blt保留全部功能
  144. #————————————————————————————————————————
  145. class Bitmap
  146.   def gfr_text_pix(x, y, color1, color2, text, vertical = false)
  147.     r1 = color1.red;g1 = color1.green;b1 = color1.blue;o1 = color1.alpha
  148.     r2 = color2.red;g2 = color2.green;b2 = color2.blue;o2 = color2.alpha
  149.     case vertical
  150.     when false
  151.       ts = text_size(text) ; width,height = ts.width+2,ts.height
  152.       bit = self.dup ; bit.font = font.dup ; bit.font.outline = false
  153.       bit.clear ; bit.draw_text(x, y, width, height, text)
  154.       if font.outline ; fc = font.color.dup ; font.color = Color.new(0,0,0)
  155.       draw_text(x, y, width, height, text) ; font.color = fc ; end
  156.       w = (width-1).to_f;plus_r = (r2-r1)/w;plus_g = (g2-g1)/w
  157.       plus_b = (b2-b1)/w;plus_o = (o2-o1)/w;width.times {|k|
  158.       height.times {|i| o = bit.get_pixel(x+k,y+i).alpha
  159.       bit.set_pixel(x+k,y+i,Color.new(r1,g1,b1,o)) if o > 0}
  160.       r1+=plus_r;g1+=plus_g;b1+=plus_b;o1+=plus_o}
  161.       blt(x, y ,bit,Rect.new(x,y,width,height)) ; bit.dispose
  162.     when true
  163.       ts = text_size(text) ; width,height = ts.width+2,ts.height
  164.       bit = self.dup ; bit.font = font.dup ; bit.font.outline = false
  165.       bit.clear ; bit.draw_text(x, y, width, height, text)
  166.       if font.outline ; fc = font.color.dup ; font.color = Color.new(0,0,0)
  167.       draw_text(x, y, width, height, text) ; font.color = fc ; end
  168.       h = (height-1).to_f;plus_r = (r2-r1)/h;plus_g = (g2-g1)/h
  169.       plus_b = (b2-b1)/h;plus_o = (o2-o1)/h;height.times {|i|
  170.       width.times {|k| o = bit.get_pixel(x+k,y+i).alpha
  171.       bit.set_pixel(x+k,y+i,Color.new(r1,g1,b1,o)) if o > 0}
  172.       r1+=plus_r;g1+=plus_g;b1+=plus_b;o1+=plus_o}
  173.       blt(x, y ,bit,Rect.new(x,y,width,height)) ; bit.dispose
  174.     end
  175.   end
  176.   #———————————————————————————————————————
  177.   def gfr_text_blt(x, y, color1, color2, text, vertical = false)
  178.     r1 = color1.red;g1 = color1.green;b1 = color1.blue;o1 = color1.alpha
  179.     r2 = color2.red;g2 = color2.green;b2 = color2.blue;o2 = color2.alpha
  180.     case vertical
  181.     when false
  182.       ts = text_size(text) ; width,height = ts.width+2,ts.height
  183.       bit = self.dup ; bit.font = font.dup
  184.       w = (width-1).to_f;plus_r = (r2-r1)/w;plus_g = (g2-g1)/w
  185.       plus_b = (b2-b1)/w;plus_o = (o2-o1)/w;width.times {|k|
  186.       bit.font.color = Color.new(r1,g1,b1,o1)
  187.       bit.draw_text(x, y, width, height, text)
  188.       blt(x+k, y ,bit,Rect.new(x+k,y,1,height))
  189.       bit.clear;r1+=plus_r;g1+=plus_g;b1+=plus_b;o1+=plus_o};bit.dispose
  190.     when true
  191.       ts = text_size(text) ; width,height = ts.width+2,ts.height
  192.       bit = self.dup ; bit.font = font.dup
  193.       h = (height-1).to_f;plus_r = (r2-r1)/h;plus_g = (g2-g1)/h
  194.       plus_b = (b2-b1)/h;plus_o = (o2-o1)/h;height.times {|i|
  195.       bit.font.color = Color.new(r1,g1,b1,o1)
  196.       bit.draw_text(x, y, width, height, text)
  197.       blt(x, y+i ,bit,Rect.new(x,y+i,width,1))
  198.       bit.clear;r1+=plus_r;g1+=plus_g;b1+=plus_b;o1+=plus_o};bit.dispose
  199.     end
  200.   end
  201. end
人生是一场漫长的自杀。

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2014-10-4 14:18:57 | 只看该作者
本帖最后由 taroxd 于 2014-10-4 14:21 编辑

把这个脚本放在下面试试。不行的话就没辙,只能自行解决了。

点评

↓ 一个一个都试试。试完不行建议删掉~  发表于 2014-10-4 14:32
按理说没有设置的地方是普通的白色 T T 我就是不想删这个脚本才来问的……  发表于 2014-10-4 14:29
设置方法请去脚本的说明里面找。找不到就问作者。问不到就把常量设置中的物品名绘色设成 false,再不行就删了这个脚本。  发表于 2014-10-4 14:28
你有没有设置物品等级?  发表于 2014-10-4 14:25
不管放在哪里都会报错呢 57行TypError Can't convert NilClass into color  发表于 2014-10-4 14:21
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-6 08:10

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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